Выполнение аналога демоЕГЭ-2007Группа заданий AА1.
Если каждый символ (кавычки не считаются) кодируется байтом, то
информационный объём предложения "Экзамен сдан успешно." будет равен: - 168 бит;
- 152 бита;
- 144 бита;
- 128 бит.
Решение.
Кавычки не считаем, а пробелы и точку считаем, поэтому, всего байт -
21. Умножаем на 8 (количество бит в байте) и получаем 168 бит. Ответ: 1. А2.
Азбука Морзе кодирует каждый символ используемого алфавита комбинацией
точек и тире. Какой максимальный алфавит можно закодировать, используя
азбуку Морзе длиной в 4 или 5 точек и тире? - 16;
- 32;
- 48;
- 64.
Решение. Количество символов кодируемых только 5 точками и тире равно 25=32, а только 4 точками и тире - 24=16. Итого, сумма 4-х и 5-ти знаковых кодов будет 48. Ответ: 3. А3. В сообщении длиной 48 битов содержится байтов всего: - 5;
- 6;
- 7;
- 8.
Решение. Так как один байт равен 8 бит, то будет 48 : 8 = 6 (байт) в любом сообщении длины 48 битов. Использована кодировка ASCII. Ответ: 2. А4. Двоичное изображение десятичного числа 1025 содержит значащих нулей: - 1024;
- 100;
- 11;
- 9.
Решение. Так как 1024=210 и поэтому содержит 1 единицу в старшем разряде и последующие 10 значащих нулей, а для числа 1025=1024+1 добавляется лишь одна единица в младшем разряде, то количество единиц станет равно 2, а значащих нулей будет равно 9. Ответ: 4. А5. В двоичной системе сумма 112 + 118 + 1116 равна: - 11001;
- 11100;
- 11001;
- 11101.
Решение. Задачу можно решить одним из следующих двух способов: - перевести каждое слагаемое в десятичную систему - получим 3 + 9 + 17 = 29 и затем перевести итог в двоичную систему - 11101;
- перевести
все в двоичную систему (меняя каждую цифру триадой 001 для восьмеричной
системы и четверкой 0001 - для шестнадцатиричной системы счисления) -
получим 11 + 1001 + 10001 = 11101.
Ответ: 4. А6. Значение с+b после выполнения фрагмента алгоритма вида:
будет равно: - 3;
- 7;
- 11;
- 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 на целое х) получим значения: - x=3, y=3, z=5;
- x=1, y=2, z=1;
- x=2, y=1, z=7;
- 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. После выполнения фрагмента: нц для i от 1 до 4
нц для j от 1 до 5
x[i,j]=i*j
кц
кц
значение x[3,2] будет равно: - 5;
- 6;
- 19;
- 20.
Решение. Значение любого элемента массива равно, как это видно из тела цикла, произведению его индексов, x[3,2]=3*2=6. Ответ: 2. А9. Условие ( ("вторая буква слова гласная")) ("третья буква слова гласная") будет ложным для слова: - АРТ;
- ЯМА;
- СТО;
- КТО.
Решение. По правилу определения импликации ("следует", ) и аксиоме двойного отрицания, то есть по правилам: 
можно данное условие записать равносильно в виде: "вторая буква слова гласная" или "третья буква слова гласная". Так
как дизъюнкция (или) имеет значение "ложь" лишь тогда, когда оба
аргумента - "ложь", то получаем, что подходит только слово, у которого
вторая и третья буквы - согласные, то есть слово АРТ. Ответ: 1. А10. Выражение равносильно: -
; -
; -
; -
.
Решение. По аксиоме де Моргана получаем: 
Ответ: 3. А11. Фрагменту таблицы истинности вида: из приведенных ниже функции f (x, y, z) указанным в таблице значениям может соответствовать лишь функция: - f=(x) или (y) или (не(z)).
- f=(x) и (y) и (не(z)).
- f=(x) и (y) или (z).
- f=(x) и (y) или (не(z)).
Решение. Проще подставлять каждый набор значений x, y, z в ту или иную функцию и сверять построчно со значением f в таблице. Это процедура дает отрицательные результаты (несоответствия значений x, y, z, f) для вариантов ответа 1 (строка 2), 2 (строка 3) и 3 (строка 1). Ответ: 4. А12. Если дана таблица расстояний между городами вида (прочерк - нет дороги между "городом-строкой" и "городом-столбцом"): | A | B | C | D | Е | | A | 0 | 9 | 5 | - | 3 | | B | | 0 | 2 | 7 | - | | C | | | 0 | - | 3 | | D | | | | 0 | - | | Е | | | | | 0 |
то наиболее длинный путь может быть: - из А в Е;
- из А в D;
- из В в Е;
- из С в А.
Решение. Логическое рассмотрение таблицы позволяет заполнить симметрично пустые клетки таблицы, так как если из города А есть путь в город В и он равен n (км), то и путь из города В в город А также существует и также равен n (км). Получаем таблицу: | A | B | C | D | Е | | A | 0 | 9 | 5 | - | 3 | | B | 9 | 0 | 2 | 7 | - | | C | 5 | 2 | 0 | - | 3 | | D | - | 7 | - | 0 | - | | Е | 3 | - | 3 | - | 0 |
Можно
заменить эту таблицу и рисунком, соединив города-кружочки
путями-линиями без стрелок (или с направленными в каждый из соединяемых
двух городов стрелками). Такие графические структуры называются графами
и имеют большое значение и приложение в информатике. Из такого рисунка
или из последней таблицы непосредственно можно получить, что самый
длинный путь - из А в D, через В (длина 16). Ответ: 2. А13. Если буквы A, B, C, D, Е имеют, соответственно, коды 10, 11, 111, 000, 1000, то двоичной последовательностью вида 1011111000111000 не может быть закодирована лишь строка: - ABCDCD;
- АCBDCD;
- ABCDBE;
- ABCDBD.
Решение. См. замечание к А14 аналога демоварианта ЕГЭ-2005. Так как кодов, начинающихся на 101 нет, то получаем, что первый код - это 10, что соответствует букве А. Следующий код может быть 11 или 111, то есть после первой буквы А может идти лишь ВС или СВ. Так как отсутствует код 00, то следующий код - D. Оставшейся битовой подстроке 111000 может соответствовать аналогично либо BE, либо СD.
Таким образом, все приведенные первые три варианта ответов могут быть
закодированы данными кодами (правда, с нарушением однозначности
кодировки - см. замечание). Ответ: 4. А14. Если текст АРБА закодирован как 0011110001, причем гласные и согласные закодированы различным количеством битов, то закрытому сообщению 1000111 по этому коду соответствует открытое сообщение: - БАР;
- РАБ;
- РАБА;
- АББА.
Решение. Закрытое (открытое) сообщение - см. главу 2. Так Б и Р - согласные и имеют коды одинаковой длины, то из анализа битовой последовательности (с учетом того, что код А в начале и в конце одинаков) видим, что кодом А может быть только 001 (другие комбинации просто невозможны). Следовательно, на текст РБ "остается" 1110, то есть Р и Б закодированы соответственно 11 и 10. Ответ: 1. А15. Если каталог K на диске С: с единственным файлом F.txt скопировали в каталог S каталога Т на диске D:, то к скопированному файлу можно обращаться по его новому полному имени: - С:\T\S\K\F.txt;
- D:\T\S\K\F.txt;
- D:\S\T\K\F.txt;
- C:\S\T\F.txt.
Решение. Полное "старое" имя файла - C:\K\F.txt (этот подкаталог является "элементом" корневого каталога C:). "Новое место", куда "отправляется" каталог K с файлом - D:\T\S. Следовательно, полное "новое" имя файла - D:\T\S\K\F.txt. Ответ: 2. А16. Во фрагменте базы данных вида | Номер | Ученик | Математика | Физика | Информатика | История |
|---|
| 1 | Иванов | 5 | 5 | 4 | 5 | | 2 | Петров | 5 | 3 | 3 | 5 | | 3 | Сидоров | 4 | 4 | 4 | 5 | | 4 | Семенов | 5 | 4 | 5 | 4 | | 5 | Теркин | 3 | 3 | 4 | 3 | | 6 | Демидов | 3 | 2 | 5 | 4 |
записей, удовлетворяющих запросу вида (Математика>4) и (Физика>3) или (Информатика>4) будет всего: - 1;
- 2;
- 3;
- 4.
Решение. Запросу вида (Математика>4) и (Физика>3) удовлетворяют записи номер 1, 4. Запросу вида (Информатика>4) удовлетворяют записи 4, 6. Данному запросу удовлетворяют записи 1, 4, 6. Ответ: 3. А17.
Сколько минимально бит необходимо, чтобы закодировать в растровом
режиме только адрес (без учета кодировки цвета) точки (пиксель) на
экране формата 1024 * 512? - 20;
- 19;
- 18;
- 16.
Решение.
Для растрового режима изображения точек необходимо хранить координаты
горизонтали, вертикали (и цвета, который мы здесь не учитываем). Так
как , то под адрес минимально необходимо 19 бит. Ответ: 2. А18. Если в ячейку Excel-таблицы А1 введена формула f=A2+B2, то после копирования ячейки А1 в ячейку В1, содержимое ячейки B1 будет вычисляться по формуле: - f=B2+C2;
- f=A1+B1;
- f=A2+B1;
- f=A2+B2.
Решение. Содержимое ячейки B будет вычисляться как сумма содержимого ячейки A1 и содержимого ячейки B2. Ответ: 1. А19. Если для фрагмента электронной таблицы вида: | А | В |
|---|
| 1 | =B1+2 | 1 | | 2 | =A1+4 | 2 | | 3 | =A1 | =А3 | | 4 | =B3+3 | =В2+2 |
после вычисления значений с активной ячейкой А2 построить диаграмму типа "гистограмма" по столбцам, то получим рисунок:
Решение. После вычисления всех значений таблицы получим таблицу вида: Так как активной ячейкой является ячейка А2, то гистограмма будет строиться по значениям первого столбца. Для этого необходимо вызвать в меню Excel режим Мастер диаграмм, затем выбрать "Гистограмма", далее - режим "по столбцам" (то есть по диапазону А1:А4) и нажать на соответствующий рисунок гистограмм (стандартный). Ответ: б. А20. Если исполнитель "Робот" может двигаться (из любой клетки лишь в соседнюю, смежную клетку) с помощью команд Вперед (вперед на 1 клетку) и Направо (поворот в текущей клетке направо на ), а из начального положения в клетке А(3;1) (начальный "взгляд" - в направлении луча Oy, y>0) "Робот" перешел в конечную клетку по программе: n:=4
Вперед
нц пока (n>0)
Направо
Вперед
n:=n-1
кц
то "Робот" оказался после выполнения программы в клетке: - В(2;3);
- А(3;1);
- С(3;2);
- D(3;3).
Решение. До выполнения цикла, "Робот" передвинется из точки (3;1) в точку (3;2). После первого выполнения тела цикла "Робот" окажется в точке (4;2). После второго выполнения тела цикла - в точке (4;1). После третьего выполнения тела цикла - в точке (3;1). После четвёртого выполнения тела цикла - в точке (3;2). После четвёртого выполнения тела цикла значение n=0 и выполнение цикла прекращается. Ответ: 3. Группа заданий BВ1. Если в некоторой системе счисления десятичное число 47 записывается в виде 52, то чему равно основание этой системы? Решение. Пусть основание равно р. Тогда (52)р = (5р + 2)10 = (47)10. Решая уравнение 5р + 2 = 47, получаем р = 9. Ответ: 9. В2. Найти число решений уравнения (число различных комбинаций значений логических переменных), сами значения можно не находить: .
Решение.
Выражение представляет произведение двух условий, поэтому будет равно 1
("истине") тогда и только тогда, когда оба множителя равны 1.
Следовательно, t = 1 и выражение в
скобках должно быть равно 1. Так как выражение в скобках представляет
собой сумму двух слагаемых, то для его равенства 1 необходимо, чтобы
хотя бы одно из слагаемых было равно 1. Первое слагаемое равно 0 при
любом значении x, так как t = 1. Второе слагаемое равно и может равняться 1 лишь тогда, когда y = 0 и z = 1. Итак, будет всего два различных решения уравнения, а именно, (x, y, z, t) = (0, 0, 1, 1), (1, 0, 1, 1).
Замечание: можно было бы найти количество всех комбинаций переменных,
равное 16 и отнять от него число решений уравнения с правой частью
равной нулю (сравните эти два подхода по сложности). Ответ: 2. В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. Некто А - отличник, у Б - пятерка или пропуск занятия, у В - четверка или тройка, у Г - возможны все оценки и даже пропуск занятий, у Д
- пропуск или тройка. Какая оценка у каждого из них, если один
отсутствовал на занятии, а все остальные получили различные оценки? Решение. Составим и заполним таблицу всех разрешенных ситуации (таблицу возможностей): | | А | Б | В | Г | Д | | 5 | + | + | - | + | - | | 4 | - | - | + | + | - | | 3 | - | - | + | + | + | | 2 | - | - | - | + | - | | 0 | - | + | - | + | + |
Из этой таблицы видно, что А получил 5, поэтому, Б мог только пропустить занятие, Д - оценка 3, В - оценка 4, Г - оценка 2. Ответ: А - 5, Б - пропуск, Д - 3, В - 4, Г - 2. В5.
После того, как пользователь интернет по телефонному каналу подключения
"скачивает" (с помощью модема, работающего непрерывно со скоростью
16384 бит/сек) каждый раз более 16 Мегабайт, непрерывное подключение к
сети прерывается из-за технических ограничений провайдера. Сколько сек.
непрерывно может работать в сети пользователь? Решение. Объем "непрерывной скачиваемой за раз" информации равен 227 бит. Скорость модема равна 214 бит/сек. Время работы равно 213 сек. Ответ: 213 сек. или около 2,5 часа. В6.
Какое число будет стоять на 9-ом месте в образованной по одному правилу
последовательности битовых сигналов (в каждом следующем битовом сигнале
на одну десятичную цифру больше): 001, 001010, 001010011, 001010011100, .... Решение.
Так как в каждом новом сигнале число десятичных цифр увеличивается на
единицу, то каждая тройка битов кодирует одну десятичную цифру.
Переведем тройки битов в десятичную систему и получим
последовательность сообщений: 1, 12, 123, 1234 и т. д. Ответ: 123456789. В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.
Для поиска в интернет материалов о событиях первенства России с
участием команды "Спартак" или команды "Динамо" были сформулированы 4
запроса: - первенство России & (Спартак | Динамо);
- первенство России & ("Спартак" & "Динамо");
- первенство России & ("Спартак" | "Динамо");
- первенство России | Спартак | Динамо.
Расположить
поисковые запросы по убыванию количества интернет - страниц, которые
будут найдены по этим запросам. Какой из запросов наиболее адекватен
целям поискового запроса? Какую семантическую неточность можете указать
во всех запросах? Решение. Так как & соответствует "и", а |
- "или", то запрос 1) найдёт все ресурсы с информацией о первенстве
России, в которых упоминаются слова Спартак или Динамо. Сюда войдут,
например, и события с упоминанием футболистов по имени Спартак (если
такие найдутся). Запрос 2) найдёт все ресурсы с информацией о
первенстве России, в которых упоминаются команды Спартак и Динамо.
Запрос 3) найдёт все ресурсы с информацией о первенстве России, а также
о команде Спартак или команде Динамо. Запрос 4) найдёт все ресурсы с
информацией или о первенстве России, или о команде Спартак ("о всех
Спартаках"), или о команде Динамо ("о всех Динамо"). Если расположить
эти запросы по убыванию страниц, то получим: 4), 1), 3), 2). Наиболее
адекватный целям поиска запрос - 3). Во всех запросах не указан вид
соревнований (футбол или хоккей, например). Ответ:
ранжированный по убыванию количества найденных страниц ряд запросов
имеет вид - 4), 1), 3), 2), а наиболее адекватный поставленным целям
запрос - 3). Семантическая неточность - не указан вид соревнований. Группа заданий CС1.
Требовалось написать алгоритм (программу) подсчета всех натуральных
чисел n, кратных 7 и заключенных строго между натуральными числами a и b.
Входная информация вводится с клавиатуры, а на выходе должно быть
получено сообщение, например, вида "искомое число равно 12" (если есть
12 таких кратных чисел) или "искомое число равно 0" (если нет кратных
чисел). Некто, в спешке, написал следующий алгоритм (следующую
программу): ШАЯ: алг С1(арг цел a, b, рез цел n)
нач
цел c
вывод("введите a, b:")
ввод(a,b)
n:=0
если (a=b) и (mod(а,7)=0)
то n:=n+1
иначе нц для c от a до b
если (mod(с,7)=0)
то n:=n+1
все
кц
все
вывод("искомое число равно ",n)
кон
Паскаль: 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.
Для такой программы последовательно выполните три задания: - Укажите набор входных чисел a, b, для которого программа работает неправильно.
-
Укажите любой вариант доработки программы (удаления, добавления,
изменения команд), чтобы не было случаев её неправильной работы.
- Укажите вариант доработки программы без использования логических операций (and, or, not).
Решение. - Программа не будет работать для всех тестов, удовлетворяющих условию b<a. Например, для b = 4, a = 20.
- Приводим вариант доработки программы, чтобы не было случаев её неправильной работы.
ШАЯ:
алг С1(арг цел a, b, рез цел n)
нач
цел c
вывод("введите a, b:")
ввод(a,b)
n:=0
если (a=b) и (mod(а,7)=0)
то n:=n+1
иначе если (a?b)
то если (a>b)
то
c:=a
a:=b
b:=a
все
нц для c от a до b
если (mod(с,7)=0)
то n:=n+1
все
кц
все
все
вывод("искомое число равно ", n)
кон
Паскаль:
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.
- Вариант доработки программы без использования логических операций (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<n)
если (m<x[i])
то m:=x[i]
все
если (k>x[i+1])
то k:=x[i+1]
все
i:=i+2
кц
если (mod(n,2)=1)
то если (m<x[n])
то 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<n) do
begin
if (m<x[i])
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<x[n])
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<m) | перебор элементов текста a
j:=1 | начальный нечетный номер символа b
нц пока (j<d+1) | перебор нечетных символов b
если (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<m) do
begin
j:=1;
while (j<d+1) do
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.
|