Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы домашнего задания.doc
Скачиваний:
4
Добавлен:
06.09.2019
Размер:
65.54 Кб
Скачать

Темы домашнего задания по дисциплине «Информатика и программирование»

Первая группа тем – работа с записями в конкретной предметной области

Каждая запись представляется собой экземпляр структуры. Все записи хранятся в массиве. Функциональность программы должна включать [1]:

  • Добавление записи, введенной с клавиатуры

  • Удаление указанной записи

  • Поиск записей по некоторому критерию

  • Сортировку записей

  • Печать всех записей

  • Сохранение всех записей в файл*

  • Чтение всех записей из файла*

Пункты, помеченные *, не обязательны для выполнения. Однако, в случае их невыполнения максимальная оценка за домашнее задание – 4.

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

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

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

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

  5. Журнал видеопроката. Каждая запись о видеопрокате характеризуется фамилией, именем, отчеством, названием фильма, залогом и оплатой за прокат.

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

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

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

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

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

  11. Записи о процессорах. Каждый процессор характеризуется наименованием, количеством ядер, размером кэша L2, частотой, ценой.

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

  13. Записи о видеокартах. Каждая видеокарта характеризуется названием, максимальным поддерживаемым разрешением экрана и частотой, объемом встроенной памяти, ценой.

  14. Записи о флеш-накопителях. Каждая запись характеризуется названием, объемом памяти, максимальной скоростью чтения, максимальной скоростью записи, ценой.

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

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

  17. Записи о принтерах. Каждый принтер характеризуется названием, типом (струйный или лазерный), вертикальным и горизонтальным разрешением, скоростью печати, ценой.

  18. Записи о сканерах. Каждый сканер характеризуется названием, типом (CIS, CCD), вертикальным и горизонтальным разрешением, глубиной цвета, ценой.

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

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

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

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

  23. Записи о товарах. Каждый товар характеризуется названием, строкой с характеристиками, названием магазина-продавца, ценой.

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

  25. Записи о преподавателях. Каждая запись характеризуется фамилией, именем, отчеством, размером ставки (0.25, 0.5. 0.75, 1.0), количеством проводимых лекционных и лабораторных академических часов в неделю.

  26. … (можно предложить преподавателю свой вариант)

Вторая группа тем – задачи разной тематики

  1. Программа обработки матриц (выполнение операций сложения, вычитания и умножения матриц)

  2. Калькулятор многочленов (сложение, вычитание, умножение, деление с остатком, вычисление значения для заданного x).

  3. Калькулятор комплексных чисел (выполнение операций сложения, вычитания, умножение, деление). Максимальная оценка 4.

  4. Калькулятор рациональных дробей (выполнение операций сложения, вычитания, умножения, деления). Максимальная оценка 4.

  5. Конвертер величин (преобразование величин длины (сантиметры, метры, километры, дюймы, футы, ярды, мили), веса (граммы, килограммы, тонны, унции, фунты) и площади (кв. сантиметры, кв. метры, кв. метры, кв. дюймы, акры, гектары). Максимальная оценка 4.

  6. Тестирование студентов по некоторой дисциплине. Программа предлагает пользователю ответить на определенное количество вопросов (не менее 10). Каждый вопрос включает несколько вариантов ответа (не менее 4-х). Программа последовательно предъявляет пользователю вопросы и варианты ответов и ожидает ввода от пользователя выбранного варианта. В конце программа отображает процент правильных ответов, а для каждого неправильного ответа выводит правильный вариант. Также желательно хранение списка вопросов в текстовом файле.

  7. Шифрование/дешифрование строки с использованием шифра Виженера. См. http://ru.wikipedia.org/wiki/Шифр_Виженера

  8. Шифрование/дешифрование строки с помощью шифра Цезаря. См. http://ru.wikipedia.org/wiki/Шифр_Цезаря.

  9. Игра в крестики-нолики.

  10. Игра «Жизнь». См. http://ru.wikipedia.org/wiki/Жизнь_(игра).

  11. Игра в морской бой с компьютером.

  12. Игра в кости с компьютером. Для игры используются две одинаковые игральные кости. Каждая игральная кость представляет собой куб, на гранях которого написаны все натуральные числа от 1 до 6. Перед каждым ходом игры пользователь и компьютер загадывают сумму чисел, которые могут выпасть на игральных костях. Угадавший получает одно очко. Игра останавливается по достижению заданного числа ходов. Выигрывает набравший максимальную сумму очков.

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

  14. Игра в текстовый квест по любой тематике (предварительно обсудить с преподавателем).

  15. … (можно предложить преподавателю свой вариант)

Третья группа тем – Задачи повышенной сложности

  1. Нахождение кратчайшего выхода из двумерного лабиринта. Карта двумерного лабиринта задана в виде массива символов. Например:

################# #

# # # #

# ### ### ####### #

# # * # # #

# ## # ### #### # #

# # # # #

###################

Здесь символ # обозначает стену, пробел – проход, * – Ваше текущее положение в лабиринте. Вам необходимо написать программу, находящую кратчайший выход из лабиринта. Результатом программы может быть схема кратчайшего пути, ведущего от текущего положения в лабиринте к выходу:

#################+#

# #+++++ # +#

# ###+###+#######+#

# # + # +++++++#+#

# ## # ### ####+#+#

# # # #+++#

###################

Для решения задачи можно использовать волновой алгоритм, или, как его еще называют, алгоритм поиска в ширину. См. http://ru.wikipedia.org/wiki/Волновой_алгоритм, также книги [2-3].