microbik.ru
1



Олимпиада по информатике – 2008 – вариант 1 (вопросы-ответы)

Группа заданий части A


А1. Если каждый символ (кавычки не считаются) кодируется байтом, то информационный объём предложения "Экзамен сдан успешно." будет равен:

1) 168 бит; 2) 152 бита; 3) 144 бита; 4) 128 бит.

Решение. Кавычки не считаем, а пробелы и точку считаем, поэтому, всего байт - 21. Умножаем на 8 (количество бит в байте) и получаем 168 бит.

Ответ: 1.

А2. Световое табло состоит из лампочек. Каждая лампочка может находиться в одном из трех состояний («включено», «выключено» или «мигает»). Какое наименьшее количество лампочек должно находиться на табло, чтобы с его помощью можно было передать 18 различных сигналов?

1)

6

2)

5

3)

3

4)

4


Решение: С помощью одной лампочки можно 3 сигнала, с помощью двух 32 = 9 сигналов, с помощью трёх 33 = 27 сигналов. Значит, чтобы подать 18 сигналов нужно не менее трёх лампочек.

^ Ответ: 3.

А3. В сообщении длиной 48 битов содержится байтов всего:

1) 5; 2) 6; 3) 7; 4) 8.

Решение. Так как один байт равен 8 бит, то будет 48 : 8 = 6 (байт) в любом сообщении длины 48 битов. Использована кодировка ASCII.

^ Ответ: 2.

А4. Сколько единиц в двоичной записи десятичного числа 194,5?


1)

5

2)

6

3)

3

4)

4
^ Переведём в двоичную систему счисления 194,510=11000010,12. Единиц 4.

Ответ: 4

А5. В двоичной системе сумма 112 + 118 + 1116 равна:

1) 11001; 2) 11100; 3) 11001; 4) 11101.

Решение. Задачу можно решить одним из следующих двух способов:

  • перевести каждое слагаемое в десятичную систему - получим 3 + 9 + 17 = 29 и затем перевести итог в двоичную систему - 11101;

  • перевести все в двоичную систему (меняя каждую цифру триадой 001 для восьмеричной системы и четверкой 0001 - для шестнадцатиричной системы счисления) - получим 11 + 1001 + 10001 = 11101.

Ответ: 4.

А6. Значение с+b после выполнения фрагмента алгоритма вида:




будет равно: 1) 3; 2) 7; 3) 11; 4) 18.

Решение. Вычисляем непосредственно значения переменных, "проходя" по ветвям блок-схемы фрагмента алгоритма. Первый проход даёт значения с=3, b=4. Второй проход даёт значения с=7, b=11. Так как теперь b>10, то на этом выполнение этой структуры (это цикл типа "пока") завершается.

Ответ: 4.

А7. В результате выполнения фрагмента на языке

на языке ШАЯ:

x:=2

y:=5

z:=x + y

x:=div(z,x)

y:=y-x

на языке Паскаль:

x:=2;

y:=5;

z:=x + y;

x:=z div x;

y:=y-x;

на языке Бейсик:

х = 2

y = 5

z = x + y

x = z \ x

y = y - x

(где div(z,x), z div x или z \ х - целая часть от деления целого z на целое х) получим значения:

  1. x=3, y=3, z=5;

  2. x=1, y=2, z=1;

  3. x=2, y=1, z=7;

  4. x=3, y=2, z=7.

Решение. Выполним все инструкции по порядку (вариант ШАЯ):

x:=2

y:=5

z:=x+y | z=7

x:=div(7,2) | x=3

y:=5-3 | y=2

Ответ: 4.

А8. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 100
A(n)=(n-80)*(n-80)
NEXT n
FOR n=1 TO 100
B(101-n)=A(n)
NEXT n

for n:=1 to 100 do
A[n]:= (n-80)*(n-80);
for n:=1 to 100 do
B[101-n]:=A[n];

нц для n от 1 до 100
A[n]=(n-80)*(n-80)
кц
нц для n от 1 до 100
B[101-n]=A[n]
кц

Какой элемент массива B будет наибольшим?

1)

B[1]

2)

B[21]

3)

B[80]

4)

B[100]

Решение: Найдём максимальное A[n]. При n =1 A[1]:=(-79)*(-79) – Это значение самое большое, а т.к. B[101-n]:=A[n], то то максимальным будет B[100].

Ответ: 4.


А9. Условие

(("вторая буква слова гласная")) ("третья буква слова гласная")

будет ложным для слова:

  1. АРТ;

  2. ЯМА;

  3. СТО;

  4. КТО.

Решение. По правилу определения импликации ("следует", ) и аксиоме двойного отрицания, то есть по правилам:



можно данное условие записать равносильно в виде:

"вторая буква слова гласная" или "третья буква слова гласная".

Так как дизъюнкция (или) имеет значение "ложь" лишь тогда, когда оба аргумента - "ложь", то получаем, что подходит только слово, у которого вторая и третья буквы - согласные, то есть слово АРТ.

^ Ответ: 1.

А10. Укажите, какое логическое выражение равносильно выражению

¬(A \/ ¬ B \/ C)


1)

¬A \/ B \/ ¬C

2)

A /\ ¬B /\ C

3)

¬A \/ ¬B \/ ¬C

4)

¬A /\ B /\ ¬C


Решение: Используя правило де Моргана единственный ответ 4).


А11. Фрагменту таблицы истинности вида:

x

y

z

f

0

0

1

0

0

1

1

0

1

0

0

1

из приведенных ниже функции f (x, y, z) указанным в таблице значениям может соответствовать лишь функция:

  1. f=(x) или (y) или (не(z)).

  2. f=(x) и (y) и (не(z)).

  3. f=(x) и (y) или (z).

  4. f=(x) и (y) или (не(z)).

Решение. Проще подставлять каждый набор значений x, y, z в ту или иную функцию и сверять построчно со значением f в таблице. Это процедура дает отрицательные результаты (несоответствия значений x, y, z, f) для вариантов ответа 1 (строка 2), 2 (строка 3) и 3 (строка 1).

^ Ответ: 4.

А12 Грунтовая дорога проходит последовательно через населенные пункты А, B, С и D. При этом длина дороги между А и В равна 80 км, между В и С – 50 км, и между С и D – 10 км.

Между А и С построили новое асфальтовое шоссе длиной 40 км. Оцените минимально возможное время движения велосипедиста из пункта А в пункт В, если его скорость по грунтовой дороге – 20 км/час, по шоссе - 40 км/час?


1)

1 час

2)

1,5 часа

3)

3,5 часа

4)

4 часа




Если велосипедист проедет из А в В по грунтовой дороге, время движения будет 80 км : 20 км/ч=4ч.

Если велосипедист проедет из А в В через С , то время будет равно 40км : 40 км/ч+50км:20 км/ч=1ч+2,5ч=3,5ч

Ответ: 3.


А13. Если буквы A, B, C, D, Е имеют, соответственно, коды 10, 11, 111, 000, 1000, то двоичной последовательностью вида 1011111000111000 не может быть закодирована лишь строка:

  1. ABCDCD;

  2. АCBDCD;

  3. ABCDBE;

  4. ABCDBD.

Решение. Так как кодов, начинающихся на 101 нет, то получаем, что первый код - это 10, что соответствует букве А. Следующий код может быть 11 или 111, то есть после первой буквы А может идти лишь ВС или СВ. Так как отсутствует код 00, то следующий код - D. Оставшейся битовой подстроке 111000 может соответствовать аналогично либо BE, либо СD. Таким образом, все приведенные первые три варианта ответов могут быть закодированы данными кодами (правда, с нарушением однозначности кодировки).

^ Ответ: 4.

А14. В формировании цепочки из четырех бусин используются некоторые правила:
В конце цепочки стоит одна из бусин Р, N, Т, O. На первом – одна из бусин P, R, T, O, которой нет на третьем месте. На третьем месте – одна из бусин O, P, T, не стоящая в цепочке последней. Какая из перечисленных цепочек могла быть создана с учетом этих правил?


1)

PORT

2)

TTTO

3)

TTOO

4)

OOPO


Решение: Строим цепочки по правилам 1) P - 1 по условию, R – 3 не по условию

2) T – 1 по условию, T – 3 не по условию.

3) T – 1 по условию, O – 3 по условию O – последняя и O – 3 не по условию.

4) все условия соблюдены.

^ Ответ: 4.


А15. Если каталог K на диске С: с единственным файлом F.txt скопировали в каталог S каталога Т на диске D:, то к скопированному файлу можно обращаться по его новому полному имени:

  1. С:\T\S\K\F.txt;

  2. D:\T\S\K\F.txt;

  3. D:\S\T\K\F.txt;

  4. C:\S\T\F.txt.

Решение. Полное "старое" имя файла - C:\K\F.txt (этот подкаталог является "элементом" корневого каталога C:). "Новое место", куда "отправляется" каталог K с файлом - D:\T\S. Следовательно, полное "новое" имя файла - D:\T\S\K\F.txt.

^ Ответ: 2.

А16 Из правил соревнования по тяжелой атлетике:

Тяжелая атлетика это прямое соревнование, когда каждый атлет имеет три попытки в рывке и три попытки в толчке. Самый тяжелый вес поднятой штанги в каждом упражнении суммируется в общем зачете. Если спортсмен потерпел неудачу во всех трех попытках в рывке, он может продолжить соревнование в толчке, но уже не сможет занять какое-либо место по сумме 2-х упражнений.

Если два спортсмена заканчивают состязание с одинаковым итоговым результатом, высшее место присуждается спортсмену с меньшим весом. Если же вес спортсменов одинаков, преимущество отдается тому, кто первым поднял победный вес.

^ Таблица результатов соревнований по тяжелой атлетике:

Фамилия, И.О.

Вес спортсмена

Взято в рывке

Рывок с попытки

Взято в толчке

Толчок с попытки

Айвазян Г.С.

77,1

150,0

3

200,0

2

Викторов М.П.

79,1

147,5

1

202,5

1

Гордезиани Б.Ш.

78,2

147,5

2

200,0

1

Михальчук М.С.

78,2

147,5

2

202,5

3

Пай С.В.

79,5

150,0

1

200,0

1

Шапсугов М.Х.

77,1

147,5

1

200,0

1

Кто победил в общем зачете (сумме двух упражнений)?


1)

Айвазян Г.С.

2)

Викторов М.П.

3)

Михальчук М.С.

4)

Пай С.В.


Решение:

1) сумма 350, 0 вес 71,1

2) сумма 350, 0 вес 79,1

3) сумма 347, 5 вес 78,2

4) сумма 350, 0 вес 79,5

Самый большой вес у троих – 350 , но самый маленький собственный вес у первого.

^ Ответ: 1.


А17. Сколько минимально бит необходимо, чтобы закодировать в растровом режиме только адрес (без учета кодировки цвета) точки (пиксель) на экране формата 1024 * 512?

1) 20; 2) 19; 3) 18; 4) 16.

Решение. Для растрового режима изображения точек необходимо хранить координаты горизонтали, вертикали (и цвета, который мы здесь не учитываем). Так как , то под адрес минимально необходимо 19 бит.

^ Ответ: 2.

А18. Дан фрагмент электронной таблицы:





А

В

С

1

10

20

=A1+B$1

2

30

40





Чему станет равным значение ячейки С2, если в нее скопировать формулу из ячейки С1?

^ Знак $ обозначает абсолютную адресацию.

1)

40

2)

50

3)

60

4)

70


Решение: A1+B$1=30+20=50. Значения в столбце A меняются, а в В постоянны.

Ответ: 2.


А19. Если для фрагмента электронной таблицы вида:




А

В

1

=B1+2

1

2

=A1+4

2

3

=A1

=А3

4

=B3+3

=В2+2



Решение. После вычисления всех значений таблицы получим таблицу вида:




А

В

1

3

1

2

7

2

3

3

3

4

6

4

Так как активной ячейкой является ячейка А2, то гистограмма будет строиться по значениям первого столбца. Для этого необходимо вызвать в меню Excel режим Мастер диаграмм, затем выбрать "Гистограмма", далее - режим "по столбцам" (то есть по диапазону А1:А4) и нажать на соответствующий рисунок гистограмм (стандартный).

^ Ответ: б.

А20. Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

вверх

вниз

влево

вправо

При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →.

Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:

сверху свободно

снизу свободно

слева свободно

справа свободно
















Цикл
ПОКА < условие > команда

выполняется, пока условие истинно, иначе происходит переход на следующую строку.

Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?

НАЧАЛО

ПОКА < справа свободно > вправо

ПОКА < сверху свободно > вверх

ПОКА < слева свободно > влево

ПОКА < снизу свободно > вниз

КОНЕЦ



1)

1

2)

0

3)

3

4)

4

Решение 1) и 2) и 3) исключаются сразу - нет движения по кругу. Верный ответ 4.
^

Группа заданий части В


В1. Если в некоторой системе счисления десятичное число 47 записывается в виде 52, то чему равно основание этой системы?

Решение. Пусть основание равно р. Тогда (52)р = (5р + 2)10 = (47)10. Решая уравнение 5р + 2 = 47, получаем р = 9.

Ответ: 9.

В2. Сколько различных решений имеет уравнение ((K \/ L) –> (L /\ M /\ N)) = 0

где K, L, M, N – логические переменные?

В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов.

Решение: Импликация ложна, если посылка истинна, а следствие ложно.

Значит K \/ L=1, а это при , K или L истинны или оба одновременно.

Конъюнкция истинна при условии истинности всех высказываний, значит, если L или M или N ложны, то L /\ M /\ N =0 и такие высказывания будут решением.

Решения 1) K=1 L=0 M=0 N=0,2) K=1 L=0 M=1 N=0, 3) K=1 L=0 M=0 N=1, 4)K=1 L=0 M=1 N=1,5)K=1 L=1 M=0 N=1, 6) K=1 L=1 M=1 N=0, 7) K=1 L=1 M=0 N=0, 8) K=0 L=1 M=0 N=0, 9) K=0 L=1 M=1 N=0, 10) K=0 L=1 M=0 N=1. Всего 10 вариантов.

Ответ: 10.

В3. Дан исполнитель "Вычислитель" с единственной командой вида: Удвоить(а) - сложить целое число a с самим собой и заменить значение числа a этой полученной суммой. Запишите наиболее короткую программу исполнителя для получения из a = 2 и b = 3 значений a = 64, b = 96.

Решение. Представим искомые числа в виде:

64 = 2(2(2(2(2(2))))) = Удвоить(Удвоить(Удвоить(Удвоить(Удвоить(а))))),

96 = 2(2(2(2(2(3))))) = Удвоить(Удвоить(Удвоить(Удвоить(Удвоить(b))))).

Тело алгоритма можно составить следующим образом:

нц для i от 1 до 5

Удвоить(a)

Удвоить(b)

кц

Возможны и другие варианты, например:

нц пока (i<64)

Удвоить(a)

Удвоить(b)

кц

Ответ:

алг В3(арг цел a,b, рез цел a,b)

нач

ввод(a,b)

нц для i от 1 до 5

Удвоить(a)

Удвоить(b)

кц

вывод(" значения a и b равны: ",a,b)

кон

B4. Перед началом Турнира Четырех болельщики высказали следующие предположения по поводу своих кумиров:

А) Макс победит, Билл – второй;

В) Билл – третий, Ник – первый;

С) Макс – последний, а первый – Джон.

Когда соревнования закончились, оказалось, что каждый из болельщиков был прав только в одном из своих прогнозов.

Какое место на турнире заняли Джон, Ник, Билл, Макс?

(В ответе перечислите подряд без пробелов места участников в указанном порядке имен.)

Решение: Можно просто рассуждая. А) Макс победит – истина, тогда Билл второй – ложь. С) Макс последний – ложь, значит Джон первый – истина – противоречие А) Макс победит – истина.

Другой вариант. . А) Макс победит – ложь, тогда Билл второй – истина. В) Билл – третий – ложь, Ник – первый – истина. С) Макс – последний – истина, а Джон – первый – ложь. Противоречия нет.

Вывод: Ник – первый, Билл – второй, Джон – третий, Макс – последний.

^ Ответ: 2,3,1,4.


В5. После того, как пользователь интернет по телефонному каналу подключения "скачивает" (с помощью модема, работающего непрерывно со скоростью 16384 бит/сек) каждый раз более 16 Мегабайт, непрерывное подключение к сети прерывается из-за технических ограничений провайдера. Сколько сек. непрерывно может работать в сети пользователь?

Решение. Объем "непрерывной скачиваемой за раз" информации равен 227 бит. Скорость модема равна 214 бит/сек. Время работы равно 213 сек.

^ Ответ: 213 сек. или около 2,5 часа.

В6. Цепочки символов (строки) создаются по следующему правилу:

Первая строка состоит из одного символа – цифры «1». Каждая из последующих цепочек создается такими действиями: в начало записывается число – номер строки по порядку (для i-й строки ставится число «i»), далее дважды подряд записывается предыдущая строка.

Вот первые 4 строки, созданные по этому правилу:

(1) 1

(2) 211

(3) 3211211

(4) 432112113211211

Сколько раз встречается цифра «1» в первых семи строках (суммарно)?

Решение: 1 – 1; 2 – 2; 3 - 4; 4 – 8; 5 – 16 ; 6 – 32.

Геометрическая прогрессия со знаменателем 2. S7 = (27 - 1):(2-1)=127.

Ответ: 127.

В7. Файл с именем f и с наиболее распространенным расширением Word скачивается по протоколу передачи файлов с сервера интернет-узла с доменом второго уровня gsa в коммерческих сетях США. Запишите полностью URL скачиваемого файла, если он не использует других доменов (уровней), кроме как упомянутых в условии.

Решение. Наиболее распространённое расширение в редакторе Word - doc. Протокол передачи (пересылки) файлов - ftp (File Transport Protocol), домен (первого уровня) коммерческих сетей США - com. Так как это интернет-узел, то должен присутствовать в полном имени ресурса и домен www. Итак, полное имя ресурса - ftp://www.gsa.com/f.doc.

^ Ответ: ftp://www.gsa.com/f.doc.

В8. В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу.

Для обозначения логической операции “ИЛИ” в запросе используется символ |, а для логической операции “И” – &.

А

физкультура

Б

физкультура & подтягивания & отжимания

В

физкультура & подтягивания

Г

физкультура | фитнесс




М
О
еньше всего страниц ( ФПО физкультура&подтягивание&отжимание) дальше больше страниц (ФП физкультура&подтягивание) больше страниц (Ф физкультура)и ещё больше (физкультура или фитнес)


Ответ: БВАГ.


^

Группа заданий части С


С1. Требовалось написать алгоритм (программу) подсчета всех натуральных чисел n, кратных 7 и заключенных строго между натуральными числами a и b. Входная информация вводится с клавиатуры, а на выходе должно быть получено сообщение, например, вида "искомое число равно 12" (если есть 12 таких кратных чисел) или "искомое число равно 0" (если нет кратных чисел). Некто, в спешке, написал следующий алгоритм (следующую программу):

Паскаль:

var

a, b, c, n: integer;

begin

write('введите a, b:');

read(a,b);

n:=0;

if (a=b) and (a mod 7=0)

then n:=n+1

else for c:=a to b do

if (с mod 7=0)

then n:=n+1;

write('искомое число равно ',n);

end.

Бейсик:

dim

a, b, c, n as integer

print 'введите a, b:'

input a,b

n = 0

if (a = b) and (a MOD 7=0)

then n = n + 1

else for c = a to b

if (с MOD 7 = 0)

then n = n + 1

end if

next c

end if

print "искомое число равно ", n

end.

^ Для такой программы последовательно выполните три задания:

  1. Укажите набор входных чисел a, b, для которого программа работает неправильно.

  2. Укажите любой вариант доработки программы (удаления, добавления, изменения команд), чтобы не было случаев её неправильной работы.

  3. Укажите вариант доработки программы без использования логических операций (and, or, not).

Решение.

  1. Программа не будет работать для всех тестов, удовлетворяющих условию b

  2. Приводим вариант доработки программы, чтобы не было случаев её неправильной работы.

Паскаль:

var

a, b, c, n: integer;

begin

write('введите a, b:');

read(a,b);

n:=0;

if (a=b) and (a mod 7=0)

then n:=n+1

else if (a<>b)

then begin

if (a>b)

then begin

c:=a;

a:=b;

b:=a

end;

for c:=a to b do

if (с mod 7=0)

then n:=n+1

end;

write('искомое число равно ',n);

end.

Бейсик:

dim

a, b, c, n as integer

print "введите a, b:"

input a,b

n = 0

if (a = b) and (a MOD 7=0)

then n = n + 1

else if (a <> b)

then if (a > b)

then c = a: a = b: b = a

for c = a to b

if (с MOD 7 = 0)

then n = n + 1

end if

next c

end if

end if

end if

print "искомое число равно ", n

end.

  1. Вариант доработки программы без использования логических операций (and, or, not) можно получить из предыдущих вариантов, если заменить условие (например, на Бейсике; для остальных версий - аналогично):

if (a = b) and (a MOD 7=0) then :

на условие вида

if (a = b) then if (a MOD 7=0) then : .

С2. Для заданного числового массива (ряда чисел) составить алгоритм нахождения m - максимума среди элементов массива, находящихся на нечетных местах (то есть среди x1, x3, x5 и т. д.) и k - минимума среди элементов массива, находящихся на четных местах (то есть среди x2, x4, x6 и т. д.).

Решение. Алгоритм запишем на языках ШАЯ, Паскаль, Бейсик.

ШАЯ:

алг С2(арг цел n, таб х[1:n], рез цел m,k)

нач

цел i

ввод(n)

нц для i от 1 до n

ввод(x[i])

кц

i:=1

k:=x[2]

m:=x[1]

нц пока (i
если (m
то m:=x[i]

все

если (k>x[i+1])

то k:=x[i+1]

все

i:=i+2

кц

если (mod(n,2)=1)

то если (m
то m:=x[n]

все

все

вывод(" k=",k," m=",m)

кон

Паскаль:

var

n, k, m: integer;

x: array[1..100] of integer;

begin

readln(n);

for i:=1 to n do

read(x[i]);

i:=1;

k:=x[2];

m:=x[1];

while (i
begin

if (m
then m:=x[i];

if (k>x[i+1])

then k:=x[i+1];

i:=i+2

end;

if (n mod 2=1)

then if (m
then m:=x[n];

writeln(' k=',k,' m=',m);

end.

Бейсик:

dim

k, n, i, x(100) as integer

input n

for i = 1 to n

input x(i)

next i

i = 1

k = x(2)

m = x(1)

while (i < n)

if (m < x(i))

then m = x[i]

end if

if (k > x(i+1))

then k = x(i+1)

end if

i = i + 2

wend

if (n MOD 2 = 1)

then if (m < x(n))

then m = x(n)

end if

end if

print " k=",m, " m=",m

end.


С3. Два игрока играют в игру со следующими правилами: имея достаточный запас монет (диаметром d см), каждый из них кладет по очереди одну монету на стол размером а и b (см). Проигрывает тот игрок, которому некуда класть очередную монету. Монета должна опираться своей полной площадью на стол (не допускается свисание монеты). Можно перемещать монету, соблюдая это условие. Описать стратегию выигрышной игры (как начинать и как ходить игроку для выигрыша).

Решение. Определим, сколько монет поместится максимально (без свисания) на столе. По стороне длины a это количество равно n=int(a/d), а по стороне b - равно m=int(b/d). Общее количество монет равно k=nm. Все зависит от четности (нечетности) этого числа. Если k - нечетно, то выигрывает всегда тот, кто ходит первым, а если k - четно, то он проигрывает всегда. Стратегия хода проста: каждый раз к монете второго игрока (после его хода) нужно приставлять по длине или ширине стола свою монету в этом ряду или начинать новый ряд (если предыдущий ряд уже заполнен).


С4. Составить алгоритм удаления из заданного текста a всех символов, расположенных на нечетных местах другого заданного текста b.

Решение. Алгоритм (ШАЯ, Паскаль, Бейсик) запишется следующим образом.

ШАЯ:

алг C4(арг лит a, b, рез лит a)

дано | текст a и текст b

надо | из текста a удалить все символы, входящие в текст b и расположенные

| на нечетных позициях текста b

нач | начало алгоритма

цел i, | количество символов текста a

j, | количество символов текста b

d, | длина текста b

m | длина текста а

ввод(a,b) | ввод исходных текстов

m:=длина(a) | переменной m присваиваится длина a

d:=длина(b) | переменной d присваиваится длина b

i:=1 | начальный номер символа a

нц пока (i
j:=1 | начальный нечетный номер символа b

нц пока (j
если (a[i]=b[j]) | если символ a совпадает с b

то | организуем цикл удаления i-го символа a:

нц для k от i до m-1 | этот цикл, последовательно сдвигает все

a[k]:=a[k+1] | следующие символы a на 1 позицию вперед

кц | конец цикла удаления символа из a

m:=m-1 | уменьшение длины текста a из-за удаленного символа

все | конец проверки совпадения символов

j:=j+2 | переход к следующему нечетному символу текста b

кц | конец цикла по элементам текста b

i:=i+1 | переход к следующему символу текста a

кц | конец цикла по элементам текста a

вывод("результирующий текст: ", a) | вывод результата

кон | конец алгоритма.


^ Программа на Паскале:

var d, m, i, j: integer;

a, b: string;

begin

readln(a,b);

m:=length(a); d:=length(b);

i:=1;

while (i
begin

j:=1;

while (j
begin

if (a[i]=b[j])

then begin

for k:=i to m-1 do

a[k]:=a[k+1]; m:=m-1

end;

j:=j+2

end;

i:=i+1

end;

writeln('результирующий текст: ', a);

end.

Программа на Бейсике:

dim

d, m, i, j as integer

a, b as string

input a, b

m = length(a)

d = length(b)

i = 1

while (i < m)

j = 1

while (j < d + 1)

if (a(i) = b(j))

then for k = i to m - 1: a(k) = a(k + 1): next k: m = m - 1

end if

j = j + 2

wend

i = i + 1

wend

print("результирующий текст:", a)

end.