Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 1

Д. Кнут - Искусство программирования том 1 (1119450), страница 42

Файл №1119450 Д. Кнут - Искусство программирования том 1 (Д. Кнут - Искусство программирования том 1) 42 страницаД. Кнут - Искусство программирования том 1 (1119450) страница 422019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 42)

[85] Выполните трансляцию программы Р вручную. [Это займет не так много времени, как вы лумаете.) Какие числа будут фактически содержаться в оперативной памяти в соответствии с этой символической программой? 5. [11] Почему в программе Р не нужна команда 1ВОЗ для определения времени готовности АЦПУ? 6. [НИЯ0] [а) Покажите, что если и не является простым числом, то п имеет делитель 0, такой, что 1 < 0 <;/п.

(Ъ) Учитывая этот факт, докажите, что проверка на шаге Р7 алгоритма Р показывает, что И вЂ” простое число. 7. [10] (а) Что означает "48" в строке 34 программы Р? (Ь) Каким будет эффект (если он вообще будет), если метку строки 15 заменить меткой "2Н", а адрес строки 20 — адресом "2В"? 8. [24] Что делает следующая программа? [Не запускайте ее на компьютере, найдите ответ "вручную"!) э ЗАГАДОЧНАЯ ОРОГРАИИА ВОР ОНХО э+ЗООО 1Н ЕМТ1 1 ЕИТ2 0 СОХ 4Р 2Н ЕИТЗ 0,1 ЗН ЗТХ ВОР,2 ТИС2 1 ОЕСЗ 1 1ЗР ЗВ ЗТХ ВОР,2 ХИС2 1 ХИС1 1 СИР1 =76 2В ЕММ2 2400 ООТ ВОР+2400,2(18) ХМС2 24 12И э-2 НЬТ 4Н АХР ААААА ЕИО 1В УПРАЖНЕНИЯ (часть 2) Эти упражнения представляют собой небольшие задачи по программированию, иллюстрирующие типичные примеры применения компьютеров и охватывающие широкий диапазон различных методов. Читателю настоятельно рекомендуется решить хотя бы несколько из этих задач, чтобы получить некоторый опыт использования ИХХ, а также достаточно полное представление об основах искусства программирования.

Если хотите, можете проработать эти упражнения одновременно с чтением оставшейся части главы 1. Ниже перечислены используемые в задачах методы программирования. Исполъзование таблиц-переключателей для многовариантных решений: упр, 9, 13 и 23. Использование индексных регистров и двумерных массивов: упр. 10, 21 и 23. Распаковка символов: упр. 13 и 23, Целочисленная и десятичная арифметика и масштабирование: упр.

14, 1б и 18. Использование подпрограмм: упр. 14 и 20. Буферизация ввода: упр. 13, Буферизация вывода: упр. 21 и 23. Обработка списков: упр. 22. Управление в реальном времеви: упр. 20. Графическое отображение: упр. 23. Каждый раз, когда в упражнении из этой книги говорится "напишите программу для МТХ" илн "напишите подпрограмму для М1Х" „следует написать только символический код на языке М1ХАЬ для решения требуемой задачи, Этот код будет представлять собой не законченную программу, а только фрагмент полной (гипс гетической) программы. В фрагменте кода не нужно выполнять ввод или вывод данных, если они должны быть взяты из внешних источников. Необходимо использовать толъко следующие поля строк программы на языке М1ХАЬ: МЕТКА, 00 и АДРЕС, а также снабдить их соответствующими комментариями.

Чисяовое представление транслированных машинных команд, номера строк и колонки с итоговым количеством выполнений различных команд (см. программу М) указывать не нужно, за исключением случаев, когда зто оговаривается особо. Строка ЕМО тоже не нужна. С другой стороны, если в упражнении говорится 'напишите полную программу для М1Х", значит, нужно написать выполняемую программу на языке М1ХАЬ, которая, в частности, должна включать фнналъную строку ЕМО.

Ассемблеры и имитаторы М1Х, на которых можно протестировать полные программы, широко распространены, поэтому проблем возникнуть не должно. 9. [85) В ячейке 1МВТ содержится слово М1Х, которое предположительно является командой МТХ. Напишите программу для М1Х, в которой совершается переход к ячейке 0000, если это слово имеет допустимое С-поле, допустимое ~АА-пале, допустимое 1-поле и допустимое Р-поле в соответствии с табл. 1.3.1 — 1. В противном случае в программе должен быть выполнен переход к ячейке ВАО. Помните, что допустимость Р-поля зависит от С-поля например, если С = 7 (МОЧЕ), то допустимо любое Р-поле, но если С = 8 (ЬОА), то Р-поле должно иметь вид 8Ь+ Н, где 0 < Ь < Н < 5.

шАА-поле считается допустимым, за исключением случая, когда С определяет команду, запрашивающую адрес памяти, 1 = 0 и хАА не является допустимым адресом памяти. Замечание. Неопытные программиста~ склонны решать подобную задачу, программируя длинные серии тестов С-поля, такие как ТАРА О зАХ 1Р ОесА 5; 1АК 2Р, ЗАХ ЗР: ВЕСА 2; 1АМ 4Р; ...". Этот подход никуда не годится! Лучший способ выбрать о шн из многих вариантов — подготовить вспомогательную тлаблицу, содержащую информацию, в которой сосредоточена необходимая логическая схема.

Если бы зта таблица содержала, например, 64 элемента, мы бы написали "Ь01 0; 801 ТАВ1.Е, 1. ЗМР О, 1" и в результате очень быстро перешли бы к нужной программе. В подобной ~аблшк можно хранить и другую полезную информацию. Табличный подход к решению данной задачи лишь ненамного увеличивает длину программы (из-за включения таблицы), но зато существенно повышает скорость ее выполнения и делает более универсальной. э 10. (31) Пусть имеется матрица размера 9 х 8 ам аш а1з ... а|в аю аю авв ... агв аю ащ авв ° ° аэв котоРаЯ хРанитсЯ в памЯти так, что ап находитсЯ в Ячейке 1000+ 8в+ 1, ПоэтомУ Ячейки памяти, в которых хранится эта матрица, выглядят следующим образом: (1009) (1010) (1011) ... (101б) (1017) (1018) (1019) ...

(1024) (1073) (1074) (1075) ... (1080) Говорят,что матрица имеет "седловую точку", если некоторый элемент является минимальным значением в строке и максимальным — в столбце. Математически это можно выразить так: элемент а, является седловой точкой данной матрицы, если а, = ппп а,в = шах ав. г<в<в ' 1<в<в Напишите программу для 81Х, которая определяет адрес седловой точки (если в матрице есть по крайней мере одна такая точка) или выдает нулевое значение (если седловой тачки нет) и заканчивает работу, поместив найденный результат в гП.

11. !Мйэ) Чему равна вероятность того, что матрица из предыдущего упражнения имеет седловую точку, если ее 72 элемента различны и все 72' варианта одинаково возможны? Чему будет равна соответствующая вероятность, если матрица состоит только из нулей и единвщ и все 2гв вариантов таких матриц являются одинаково возможными? 12.

гНМЯ К упр. 10 даны два решения (см. с. 570) и предложено найти еще одно, нане вено какое из них лучше. Проанализируйте эти алгоритмы на основании предположений из упр 11 и решите, какой метод лучше. 13. !38) Дешифровщику необходимо подсчитать частоту появления букв в некотором закодированном тексте. Этот текст перфорирован на бумажной ленте; о его окончании сигнализирует символ "звездочка" Напишите полную программу для Н1Х, которая считывает данные с перфоленты, подсчитывает частоту появления каждого символа вплоть до первой звездочки, а затем печатает результаты в виде А 0010267 3 0000179 0 0794301 и т з .

по одному символу в строке Не нужно подсчитывать количество пробелов, а также печатать результаты для символов, частота появления которых равна нулю (например, для таких, как символ с в нашем примере) В целях эффективности используйте "буферизацию" при вводе во время считывания блока в одну область памяти можно выполнять подсчет символов в другой области Будем предполагать, что на ленте, содержащей входные данные, есть еще один дополнительный блок (следующий за тем, в котором находится заключительная звездочка).

ь 14. [И] Следующий элгорртм, который был получен неаполитанским астрономом Алоизием Лилиусом (А!оуэ1аэ ! 111вэ) и немецким математиком иезуитом Кристоферам Клавиусом (СЬНэсорЬег С!агшв) в конце 1б века, используется большинством западных христианских церквей для определения даты пасхального воскресенья для любого года после 1582.

Алгоритм Е (Овределекас дошм пасхи). Пусть У вЂ” это год, для которого нужно получить дазу пасхи. Е1. [Золотое число.] Присвоить С < — (У шос1 19)+1. (С вЂ” это так называемое "золотое число" года в 19-летнем лунно-солиечиом цикле.) Е2. [Столетие.] Присвоить С <- [У/100] + 1. (Если У не кратно 100, та С вЂ” номер столетия, например 1984 год принадлежит двадцатому атолетию.) ЕЗ.

[Поправки.] Присвоить Х е- (ЗС/4) — 12, Е 4 — ((8С+ 5)/25] — 5. (Здесь Х вЂ” число годов, таких как 1900, когда дополнительный день високосного года не добавляется, чтобы "идти в ногу" с Солнцем; 3 — специальная поправка, предназначенная для синхронизации даты пасхи с орбитой Луны.) Е4. (Поиск воскресенья.) Присвоить Р < — (5У/4] — Х вЂ” 10. [(( — Р) шай 7) марта действительно будет воскресеньем.] Е5. (Эпакта.] Присвоить Е э — (110 ч- 20+ 2 — Х) шо830. Если Е = 25 и золотое числа С больше 11 или если Е = 24, то увеличить Е на 1. (Это число Š— эпактва, которая определяет дату полнолуния.) Еб.

[Поиск полнолуния.] Присвоить Ю <- 44 — Е. Если 1у ( 21, то присвоить А' э- 1э" + 30. (Считается, что пасха — это первое воскресенье, следующее за первым полнолунием, которое произошло ие ранее 21 марта. На самом деле это определение ие является абсолютно точным из-за возмущений лунной орбиты, ио в данном случае нас интересует не реальная, а "календарная" луна. А1-е марта— эта кэлеидарное полнолуние,) Е7. [Перейти к воскресенью.) Присвоить Х 4 — Тт'+ 7 — ((Р+ Х) шоб 7). Е8.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6372
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее