9 (522380), страница 2
Текст из файла (страница 2)
п. 3.4 книги 8 факультет, 1 курс, 1 семестр, 2007~'08 учебный год Лабораторная работа тУт9 Р. Грэхема, Д. Кнута и О. Паташпика «Конкретная математиках, Поэтому необходимо запрограътъсировать защитные действия по проверке операццов операции шос1 . В цгучае некорректных операндов ъюделировапие прекратить, а итогом движения считать ошибку навигации. Кстати, в МБ Ехсе1 целое деление реализовано «но Кнуту» ! 2. Стандарт языка С 1ЯОт1ЕС 9899:1999 четко определяет поведение при делении целых чисел: ттттЬетз )ттФейсзгв ате с11хЫед, сЬе гевп15 о1 Нте / орегабот тя $)те а18еЬта)с цпойепб гт)ЬЬ апу 1таст1отта1 ратб сйвсатс1ед. 11 11те цпойснт а/Ь та гергевептаЫе, т1те ехргеввюн (а/Ь) «Ь «а%Ь в)таП есзпа) а. Стандарт языка С-ь- 180,'1ЕС 14882:2003 следует стандарту С в вопросах выпо.щения деления целых чисел.
При составлении программы необходимо обосновать выбранный для реализании тип оператора цик,ча, рассмотреть инварианты цикла, пред- и постусловия и другие средства доказательства его завсршимости и корректности (теоретические: анализ уравнений движения, ътетюд математической индукции но числу повторений цикла и др. тт практические: вычерчивание траектории па клетчатой буътаге или визуализация с применением ЭВМ).
Доттолнисгельные задания 1. Вывести траекторию движения в выходной текстовыи файл для визуализации йппр1от. 2. Решить олимниаднуто задачу «Бильярда (щюф. Титов В. К., 1983 г.): Бильярд представляет собой клеточный прямоугольник ш х п., В клетке с координатами (т, т') находится птар. В переътешюй 1г задано значение, ощ>еделяющее направление по диагонали, в котором начинает двигаться шар. Направление коднруетс.'я стлецутощим образом: 1 — вправо-вверх, 2 вправо-вниз, 3 влево-вниз, 4 - влево-вверх.
Шар движется но диагонали до стенки бильярда и отражается от пее, продолжая движение по перпепдикулярпоъту диагональному направлению. Движение шара заканчивается выходом из бильярда, если оп попадает в одну из его луз (угловых клеток). Требуется по заданпыът тьц и, т, т,). определить, выйдет ли шар за край бильярда, и если выйдет, то через какой угол н за сколько ударов о степку бильярда. Если шар пс выйдет за пределы бильярда, надо щюследить его движение до попадания в пачшн,ную точку с цачалытым направлением движения и подсчитать число ударов в одном цикле траектории. Составленная программа должна обрабатывать гесты вплоть до конца файла.
Исходныс данные: В каждой строке входного файла задается отдельный тест: 5 целых чисел, разделенных пробелами: четыре двузначных числа и одно однозначное. Исходпыс дшптые корректны тн,, ст, > 2, 1 < т < пц 1 < /г < пв 1 < )г < 4. Результат гатти каткдого теста долткен содержать число ударов о степку и пазваште угла, если шар попадает в лупку. 3. Прочитать книгу Г.-Г.
Кориолиса, «Математическая теория ятзлепий бильярдной игрыь, 18ВМ: 5- 88988-030-6. 4. Озпакоъптться с совреметппями достижеттиями матеътатической биллиардистикп (по изданиям РЛН). 9 5. Оттестировать программу в системе автоматического тестттрования тевт9э, строго соблюдая заданный формат ввода и вывода. Для выполнения задаштя также весьма полезна книга Г.
Уорретта-ът,т. Ллгоритмические трюктл для программистов. Мл Вильямс, 2004. Задатше подготиовплпт строф. Зайцев В. Е., строф. Титов В. К., доц. Связников Д. В., сто.. претт. Калппин А. Л. и Лебедев А. В.. прют, Перетиягпн О. А. .