Информатика. Курс лекций. Громов Ю.Ю - 104 стр.

UptoLike

7. Перепишите следующий фрагмент программы, используя структуру while-do вместо repeat-until. Убедитесь,
что новая версия печатает те же значения, что и исходная.
Счетчик 1;
repeat {напечатать значение переменной Счетчик;
Счетчик Счетчик + 1}
until (Счетчик = 5)
8. Разработайте алгоритм, который получает на входе некую конфигурацию из цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и перестав-
ляет полученные цифры таким образом, чтобы новая конфигурация представляла собой значение, следующее по величине за
исходным, из числа тех, которые могут быть составлены из этих цифр (или сообщает, что такой перестановки не существует,
если никакие перестановки не приводят к большему значению). Например, для исходной конфигурации 5 647 382 901 таким
числом будет 5 647 382 910.
9. В чем отличие формального языка программирования от псевдокода?
10. В чем отличие между синтаксисом и семантикой?
11. Четыре шахтера, которые имеют один фонарь, должны пройти через шахту. Одновременно по шахте могут двигаться
не больше двух человек, и каждый шахтер, двигаясь в шахте, должен иметь фонарь. Шахтеры, имена которых Эндрю, Блэйк,
Джонсон и Келли, могут пройти шахту за одну, две, три и четыре минуты, соответственно. Когда два шахтера идут вместе, они
движутся со скоростью более медленного из них. Каким образом шахтеры могут пройти через шахту за 15 минут? После того
как вы решите задачу, объясните, с чего вы начали решение.
12. Допустим, у нас есть большой и маленький стаканчики для вина. Сначала наполним вином маленький стаканчик и
перельем его в большой стакан. Затем наполним водой маленький стакан, перельем некоторое количество воды в большой
стакан и смешаем его с вином. Теперь будем переливать смесь обратно в маленький стакан, пока он не наполнится. Чего те-
перь больше в маленьком стаканеводы в вине или вина в воде? После того как вы решите задачу, объясните ход ваших
рассуждений.
13. Две пчелы, Ромео и Джульетта, живут в разных ульях, но они встретились и полюбили друг друга. Однажды безвет-
ренным весенним утром они одновременно вылетели из своих ульев, чтобы слетать друг к другу в гости. В 50-ти метрах от
ближайшего улья они встретились, но не заметили друг друга и полетели дальше. Прибыв к месту своего назначения, они
потратили одинаковое время, чтобы выяснить, что того, к кому они прилетели, нет дома, и повернуть назад. На обратном
пути они встретились в точке, находящейся на расстоянии 20 метров от ближайшего улья. На этот раз они увидели друг дру-
га и устроили пикник, прежде чем возвратиться домой. На каком расстоянии друг от друга расположены их улья? Решив
задачу, объясните, с чего вы начали свои рассуждения.
14. Разработайте алгоритм, который получает на входе две строки символов и проверяет, является ли первая строка ча-
стью второй.
15. Следующий алгоритм разработан для того, чтобы напечатать несколько первых чисел Фибоначчи. Определите, что
является телом цикла. Где выполняется операция инициализации управления циклом? Где выполняется операция модифика-
ции? Какая инструкция реализует операцию проверки? Какой список чисел получится в результате работы алгоритма?
Последнее 0;
Текущее 1;
while (Текущее < 100) do
{напечатать значение переменной Текущее;
Временное Последнее;
Последнее Текущее;
Текущее Последнее + Временное}
16. Какую последовательность чисел напечатает следующий алгоритм, если на входе задать значения 0 и 1?
procedure MysteryWrite (Последний, Текущий)
if (Текущий < 100) then
{напечатать значение переменной Текущий;
Временный Текущий + Последний;
применить процедуру MysteryWrite к значениям Текущий и Временный}
17. Преобразуйте процедуру MysteryWrite из предыдущего задания так, чтобы она печатала числа в обратном по-
рядке.
18. Какие буквы будут проверяться, если применить двоичный поиск (см. рис. 4.13) для поиска значения J в списке А,
В, С, D, E, F, G, H, I, J, К, L, M, N, О? А в случае поиска значения Z?
19. Сколько раз в среднем потребуется сравнивать между собой два элемента при поиске значения в списке из 6000
элементов с помощью метода последовательного поиска? А что можно сказать о методе двоичного поиска?
20. Определите тело цикла в следующей структуре и подсчитайте, сколько раз оно будет выполнено. Что произойдет,
если проверяемое условие заменить на выражение "while (Счетчик 6)"?
Счетчик 1;
while (Счетчик 7) do
{напечатать значение переменной Cчетчик;
Счетчик Счетчик + 3}
21. Какие проблемы могут возникнуть при реализации на компьютере следующей программы? (Подсказка. Вспомните
об ошибках округления при выполнении арифметических операций с плавающей точкой.)
Счетчик 0.1;
repeat {напечатать значение переменной Счетчик;
Счетчик Счетчик + 0.1}