Смекни!
smekni.com

Методические рекомендации по выполнению курсовой работы по дисциплине “Программирование на языке высокого уровня” (стр. 7 из 8)

5. Написать подпрограмму–функцию Form(S, X, Y), где S – строка, Х и Y – вещественные переменные. В строке записано арифметическое выражение, содержащее переменные Х и Y, константы (целые или вещественные), операции +, -, *, /. Порядок операций определен скобками. Подпрограмма–функция возвращает значение арифметического выражения при заданных значениях Х и Y.

6. Задано выражение в постфиксной форме (обратная польская запись). Вычислить значение этого выражения для заданных значений входящих в него переменных.

7. Составить программу решения “задачи коммивояжера”. Необходимо определить минимальную стоимость проезда коммивояжера по N городам с возвращением в исходную точку. Каждый город входит в маршрут только один раз. Предположить, что стоимость проезда из города i в город j такая же, как и из j в i.

8. Разработать программу для составления списка заданий для параллельных процессоров. Три одинаковых центральных процессора могут выполнять М заданий. Каждое задание может быть выполнено на любом процессоре, и, если задание загружено в процессор, оно находится в нем до полного завершения (т.е. задания не могут прерываться или разделяться между двумя или более процессорами). При i = 1, . . ., М задание i требует времени ti для его выполнения. Для любого порядка заданий следующее задание из списка выполняется на первом освободившемся процессоре. Определить оптимальный порядок заданий, т.е. такой, который дает возможность завершить все задания в кратчайшее время.

9. Разработайте программу решения двух задач по работе с мультисписками. Даны две разреженные матрицы, хранящиеся в виде мультисписков. Напишите: 1) процедуру получения третьего мультисписка, являющегося матрицей–суммой первых двух; 2) процедуру удаления N–ой строки матрицы.

10. Разработайте процедуру исключения вершины из двоичного дерева.

11. Напишите программу, удаляющую из матрицы [А] строку и столбец, содержащие наибольший элемент матрицы. Матрица [A] является разряженной и хранится в виде мультисписков.

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

5.5 Игры

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

2. Разработайте программу, моделирующую игру. Игра имеет следующие правила. Перед Вами большое число ящиков с деньгами. Сумма денег в каждом ящике – случайная величина. Вы выбираете ящик, открываете его и или берете деньги из ящика, или отказываетесь от них. Если Вы берете деньги, игра кончается. В противном случае Вы можете выбрать другой ящик. Эта процедура повторяется максимум до пяти ящиков (деньги из пятого ящика должны быть взяты, если он открыт).

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

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

5. Разработайте программу, моделирующую игру “Морской бой”. На поле 10 на 10 позиций стоят невидимые вражеские корабли: 4 корабля по 1 клетке, 3 корабля по 2 клетки, 2 корабля по
3 клетки, 1 корабль в 4 клетки. Необходимо поразить каждую из клеток кораблей. Два игрока вводят позиции кораблей в виде цифр (1, 2, 3, 4) в соответствующие элементы матрицы, тем самым определяя конфигурацию и положение кораблей. Игроки по очереди “наносят удары” по кораблям противника. Если позиция корабля указана верно, то она помечается крестиком на поле. Предусмотреть вариант игры, когда одним из играющих является ЭВМ.

6. Разработайте программу, моделирующую игру “Сбей самолет”. По экрану летят вражеские самолеты. Цель играющего – сбить их. Пусковая установка находится в нижней строке экрана. Пусковую установку можно перемещать по строке вперед и назад.

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

8. Разработайте программу, моделирующую игру “Автомобильные гонки”.

9. Разработайте программу «Будильник». После того, как пользователь введет время сигнала и текст, который должен выводиться на экран в заданное время, как напоминание о наступлении какого-либо события, окно программы должно исчезнуть с экрана. Появление текста-напоминания в указанное время должно сопровождаться звуковым сигналом.

10. Разработайте программу «Будильник». После того, как пользователь введет время сигнала и выберет для него музыкальный фрагмент, как напоминание о наступлении какого-либо события, окно программы должно исчезнуть с экрана. Выбранный звуковой сигнал должен раздаться в заданное время. Предусмотрите возможность задания различных музыкальных фрагментов для различных событий.

11. Разработайте программу, которая выводит на экран результаты экзаменационной сессии группы в виде а) гистограммы; б) круговой диаграммы; в) графика. Выбор формы представления результатов сессии производится пользователем.

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

13. Напишите программу «Угадайка». Компьютер случайным образом загадывает число от 1 до 100. Задача пользователя – за минимальное количество попыток, но не более шести, угадать это число, предлагая компьютеру свои варианты, в ответ на которые программа указывает номер попытки и сообщение о том, больше загаданное число или меньше введенного с клавиатуры. При правильной стратегии (делении интервала чисел пополам) наверняка угадать число можно за семь попыток. Игра состоит из пяти партий. После последней партии выводятся результаты.

14. Напишите программу, реализующую простой калькулятор.

15. Напишите программу перевода чисел из одной системы счисления в другую. Систему счисления (десятичная, двоичная, восьмеричная или шестнадцатеричная) для задания и перевода числа выбирает пользователь.

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

17. Напишите программу MP3 Player. Программа должна обеспечить выбор прослушиваемого файла, регулировку громкости звука, перемотку файла.

6 Литература

1. Архангельский, А. Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и NET [Текст] / А. Я. Архангельский. – М. : Бином-Пресс, 2006.

2. Архангельский, А. Я. Приемы программирования в Delphi на основе VCL [Текст]
/ А. Я. Архангельский. – М. : Бином-Пресс, 2006.

3. Архангельский, А. Я. Программирование в Delphi 7 [Текст] / А. Я. Архангельский. – М. : Бином-Пресс, 2004.

4. Бобровский, С. И. Технологии Delphi 2006. Новые возможности [Текст] / С. И. Боб-ровский. – СПб. : Питер, 2006.

5. Желонкин, А. В. Основы программирования в интегрированной среде DELPHI [Текст] : практикум / А. В. Желонкин. – М. : БИНОМ. Лаборатория знаний, 2006.

6. Зубов, А. В. Программирование на Delphi. Трюки и эффекты [Текст] / А. В. Зубов. – СПб. : Питер, 2005.

7. Культин, Н. Б. Delphi .NET в задачах и примерах [Текст] / Н. Б. Культин. – СПб. : БХВ-Петербург, 2006.

8. Культин, Н. Б. Delphi в задачах и примерах [Текст] / Н. Б. Культин. – СПб. : БХВ-Петербург, 2004.

9. Культин, Н. Б. Основы программирования в Delphi 7 [Текст] / Н. Б. Культин. – СПб. : БХВ-Петербург, 2003.

10. Немнюгин, С. А. Turbo Pascal. Программирование на языке высокого уровня [Текст] : учебник для вузов / С. А. Немнюгин. – 2-е изд., перераб. и доп. – СПб. : Питер, 2006.

11. Немнюгин, С. А. Turbo Pascal: Практикум [Текст] / С. А. Немнюгин. – 2-е изд. Перераб. и доп. – СПб. : Питер, 2006.

12. Павловская, Т. А. Паскаль. Программирование на языке высокого уровня [Текст] : учебник для вузов / Т. А. Павловская. – СПб. : Питер, 2004. (допущен Министерством образования).