Файл: КурсРаб_АлгоритмПрогр_КОНОНОВА_230400.625_ИСиТ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.06.2021

Просмотров: 1010

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

16 

и район, где она расположена. Создайте программу ведения базы данных 
альпинистского  клуба,  включающую  в  себя:  а)  ввод  и  корректирование 
исходных данных; б) вывод информации по запросам. Запросы: Фамилии и 
адреса альпинистов, покоривших самую высокую вершину. Наименование 
вершины,  потребовавшей  самого  длительного  восхождения,  а  также 
страны,  где  данная  вершина  расположена.  Фамилия  и  адрес  альпиниста, 
совершившего  наибольшее  количество  восхождений.  Для  хранения 
информации использовать два файла. 

6.  Разработать программу ведения базы данных риэлторской фирмы. 

Данные  о  продаже  квартир  хранятся  в  двух  файлах  -  основном  и 
справочном.  Основной  файл  содержит  сведения  о  сделках  и  имеет 
следующие  поля:  дата  сделки,  покупатель,  идентификационный  номер 
продаваемой  квартиры,  цена.  Файл-справочник  содержит  следующую 
информацию  об  уже  проданных  квартирах:  общую  площадь  квартиры, 
число комнат. 

Номер 

записи 

в 

файле-справочнике 

соответствует 

идентификационному 

номеру 

квартиры. 

Предусмотреть 

ввод/корректирование  исходной  информации  и  вывод  ведомости  о  сумме 
продаж,  совершенных  в  каком-либо  году  или  в  каком-либо  месяце. 
Ведомость о сумме продаж имеет вид: 
Месяц 

Сумма 
продаж 

По числу комнат в квартире 

Январь 

Итого: 

7.   Напишите  программу,  которая  генерирует  или  считывает 

шахматную  позицию  и определяет,  не находится  ли один из  королей под 
шахом  и  не  является  ли  шах  матом.  В  программе  предусмотреть  два 
варианта  ввода  исходных  данных:  шахматная  позиция  генерируется  с 
помощью  датчиков  случайных  чисел  и  шахматная  позиции  вводится  с 
клавиатуры ЭВМ. 

8.  Поле шахматной доски задается парой натуральных чисел: первое 

указывает  номер  вертикали  при  счете  слева  направо,  второе  -  номер 
Горизонта  пи  при  счете  снизу  вверх.  Расстановка  фигур  задается  таким 
образом, что в начале указываются поля, на которых стоят перечисленные 
белые  фигуры,  затем  -  поля,  на  которых  стоят  перечисленные  черные 
фигуры. 

·  На доске стоят два ферзя. Указать поля, на которые может пойти 

белый ферзь так, чтобы не попасть под удар черного ферзя. 

·  У белых на доске остался только король, у черных - король, конь, 

слон. Охарактеризовать положение белых с помощью слов: мат, шах, пат, 
обыкновенная позиция. 


background image

17 

·   Получить  m  расстановок  8  ферзей  на  шахматной  доске,  при 

которых ни один из ферзей не угрожает другому. 

9.   Напишите  программу  составления  кроссвордов.  Исходными 

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

10.   Разработать  программу,  моделирующую  игру.  Игра  имеет 

следующие  правила.  Перед  Вами  большое  число  ящиков  с  деньгами. 
Сумма  денег  в  каждом  ящике  -  случайная  величина,  равномерно 
распределенная  на  отрезке  [0,  1].  Вы  выбираете  ящик,  открываете  его  и 
или  берете  деньги  из  ящика,  или  отказываетесь  от  них.  Если  Вы  берете 
деньги,  игра  кончается.  В  противном  случае  Вы  можете  выбрать  другой 
ящик.  Эта  процедура  повторяется  максимум  до  пяти  ящиков  (деньги 
из/пятого ящика должны быть взяты, если он открыт). 

11.   Разработайте  программу,  моделирующую  игру.  Два  игрока, 

"нечетный"  и  "четный",  по  очереди  ставят  единицы  и  нули  в  незанятые 
позиции  поля  N  на  N.  Каждый  из  игроков  может  ставить  1  или  0  в 
произвольную  свободную  позицию,  тем  самым,  занимая  ее.  Игра 
продолжается  до  заполнения  всех  позиций.  После  этого  суммируются 
числа вдоль каждой строки, каждого столбца и главных диагоналей. Число 
ODD  нечетных  сумм  сравнивается  с  числом  EVEN  четных  сумм.  Если 
ODD  >  EVEN,  выигрывает  "нечетный";  если  EVEN  >  ODD,  выигрывает 
"четный"; если ODD = EVEN, результат считается ничейным. Если одним 
из игроков является ЭВМ, то постройте для нее выигрышную стратегию. 

12.  

Разработать  программу,  моделирующую  игру  "Кости". 

Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую 
он  делает  в  этот  ход.  Программа  с  помощью  датчика  случайных  чисел 
дважды  выбирает  числа  от  1  до  6  ("бросает  кубик",  на  гранях  которого 
цифры  от  1  до  6).  Если  сумма  выпавших  цифр  меньше  7  и  играющий 
задумал  число  меньшее  7,  он  выигрывает  сделанную  ставку.  Если  сумма 
выпавших цифр больше 7 и играющий задумал число большее 7, он также 
выигрывает  сделанную  ставку.  Если  играющий  угадал  сумму  цифр,  он 
получает  в  четыре  раза  больше  очков,  чем  сделанная  ставка.  Ставка 
проиграна,  если  не  имеет  место  ни  одна  из  описанных  ситуаций.  В 
начальный  момент  у  играющего  100  очков.  В  программе  должно 
присутствовать графическое изображение поверхности кубика при каждом 
ходе игрока. 

13.  Разработать программу, моделирующую игру "Морской бой". На 

поле 10 на 10 позиций стоят невидимые вражеские корабли: 4 корабля по 1 
клетке, 3 корабля по 2 клетки, 2 корабля по 3 клетки, 1 корабль в 4 клетки. 
Необходимо  поразить  каждую  из  клеток  кораблей.  Два  игрока  вводят 


background image

18 

позиции  кораблей  в  виде  цифр  (1,  2,  3,  4)  в  соответствующие  элементы 
матрицы,  тем  самым  определяя  конфигурацию  и  положение  кораблей. 
Игроки  по  очереди  "наносят  удары"  по  кораблям  противника.  Если 
позиция  корабля  указана  верно,  то  она  помечается  крестиком  на  поле. 
Предусмотреть  вариант  игры,  когда  одним  из  играющих  является 
компьютер. 

14.   Разработать  программу,  моделирующую  игру  "Сбей  самолет". 

По  экрану  летят  вражеские  самолеты.  Цель  играющего  —  сбить  их. 
Пусковая  установка  находится  в  нижней  строке  экрана.  Пусковую 
установку можно перемещать по строке вперед и назад. 

15.   Составить  программу  обучения  работе  с  клавиатурой. 

Программа  должна  выдавать  на  экран  буквы,  цифры,  слова  и  фразы, 
которые  следует  набрать  на  клавиатуре,  и  оценивать  правильность  и 
скорость 

набора. 

В 

программе 

предусмотреть 

три 

уровня 

подготовленности обучающегося. 

16.   Разработать  программу,  моделирующую  игру  "Скачки".  В  игре 

участвуют 10 наездников; за каждый тур игры каждый из них продвигается 
вперед на расстояние от 1 до 5 км случайным образом. Длина дистанции — 
50  км.  Всего  проводится  5  заездов,  победителю  каждого  заезда 
начисляется  5  очков.  Победителем  считается  наездник,  набравший 
наибольшее  количество  очков  во  всех  заездах.  Перед  началом  заездов 
участник  игры  выбирает  номер  наездника,  с  которым  он  будет 
идентифицироваться  во  время  игры.  Количество  участников  игры  не 
превышает 10. В каждом туре с вероятностью 0.1 каждый наездник может 
упасть,  т.  е.  продвинуться  за  этот  тур  на  ноль  км.  Передвижение 
наездников 
отобразить графически на экране. Предусмотреть возможность случайного 
распределения номеров наездников. 

17.  Игра "Ханойская башня" с визуализацией каждого хода. Правила 

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

18.  Игра "Морской бой" с компьютером. 
19.   Составить  программу,  позволяющую  сжимать  текстовую 

информацию,  а  затем  преобразовывать  сжатую  информацию  в  исходное 
состояние.  В  программе  необходимо  предусмотреть  два  варианта.  Для 
хранения  текста  в  сжатом  виде  найти  часто  повторяющиеся 
последовательности  из  двух  букв  и  заменить  их  кодом.  В  качестве  кода 
использовать  символы,  не  встречающиеся  в  тексте.  Составить  таблицу 
кодов.  В  заданном  тексте  найти  слова,  которые  встречаются  более  трех 
раз,  закодировать  их  и  сжать  текст,  заменив  слова  кодами.  Составить 
таблицу кодов. 


background image

19 

20.  

Текстовый  редактор

.  Составить  программное  средство, 

реализующее  стандартные  функции  обработки  текстовых  файлов. 
Реализовать возможность открытия, сохранения и создания новых файлов. 
Предоставить  возможность  пользователю  выполнять  форматирование 
текста  и  абзаца,  создавать  маркированный  список,  вывод  документа  на 
печать, осуществлять поиск и замену символов в тексте. 

21.  

Разработка 

собственного 

Web-браузера

Разработать 

программное средство, реализующее стандартные функции работы с Web-
страницами. Реализовать следующие возможности обозревателя: 

·  выпадающий список, содержащий ранее просмотренные в данном 

сеансе адреса URL; 

·   кнопки  Назад  и  Вперед,  перемещающие  пользователя  по  списку 

ранее просмотренных страниц; 

·   панель  состояния,  отображающую  сведения  о  загружаемом 

документе; 

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

сеанса; 

·   возможность  в  любой  момент  перейти  к  странице  поиска  и, 

возможность настройки адреса этой страницы; 

·  возможность обновить текущую страницу Web; 
·  возможность остановить операцию загрузки или просмотра; 
22.   Построитель  диаграмм.  Составить  программное  средство, 

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

23.   Построение  графика  функции,  введённой  пользователем. 

Пользовательская функция может содержать числа, знаки арифметических 
действий и функции sin, cos. Скобки не допускаются. 

24.   Графический  редактор.  Возможности:  рисование  линий, 

окружностей, квадратов. 

25.   Работа  с  матрицами:  сложение,  умножение,  обращение, 

транспонирование, нахождение дискриминанта (если он определён). 

26.  Решение системы линейных алгебраических уравнений методом 

Гаусса и Крамера. 

27.  Реализация алгоритмов шифрования текстовых данных. 
28.  Построение календаря на заданный год и месяц с указанием дней 

недели. 


background image

20 

3. МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ 

В процессе создания любой программы можно выделить ряд этапов. 

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

3.1. Постановка задачи 

Задача  формулируется  на  естественном  языке.  Постановка  задачи 

включает  определение  сути  задачи,  ее  исходных  данных,  совокупности 
критериев  оценки  качества  процесса  обработки  данных  и  состава 
результатов. 

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

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

Основная  цель  данного  этапа  –  разобраться  в  задаче,  определить  ее 

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

3.2. Математическая модель решения задачи 

После того, как задача поставлена, необходимо ее проанализировать, 

оценить возможные ограничения на значения входных и выходных данных. 
Анализ  задачи  обычно  завершается  ее  формализованным  описанием, 
которое часто предполагает ее математическую формулировку. 

Математическая  модель  ‒  это  описание  метода  решения  задачи, 

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

В  данном  разделе  необходимо  представить  математическую 

формулировку  задачи,  т.е.  показать  этапы  ее  решения  с  точки  зрения 
математики, суть математического метода (все формулы, которые будут в 
дальнейшем использоваться при написании программного кода).  

В  вычислительных  задачах  необходимо  выполнить  расчеты  в 

соответствии  с  вариантом  задания,  основываясь  на  описанной  методике. 
Это делается для того, чтобы в дальнейшем на этапе тестирования сравнить