ргр. методичка15КП (2). Учебнометодическое пособие по проектированию программ и выполнению ргр и курсового проекта по дисциплине Программирование
Скачать 112.55 Kb.
|
Управляющаяпрограмма Заглушка 1Заглушка 2Заглушка 3 1 2 Рисунок 1.4 – Схема алгоритма на I этапе отладки а) б) Рисунок 1.5 – Схемы тестирования программных модулей II уровня, не содержащих подзадач Далее протестируем модули второго уровня, не содержащие вызовов других программных модулей (или подпрограмм). Следующей ликвидируем третью заглушку. Для этого разработаем алгоритм и программу для игровой задачи (рис.1.5,б). Чтобы подключить модуль для решения математических задач (заглушка 2), необходимо вызываемые им подпрограммы для подзадач 2.1 и 2.2 заменить своими заглушками (рис.1.6,а), запрограммировать и отладить общие функции – действия, не включенные в подзадачи 2.1 и 2.2. Таким образом, при отладке подпрограмм, содержащих вызовы других подпрограмм, первоначально ставятся “заглушки” в подпрограммы на уровень ниже тестируемого, а затем они поочередно снимаются или переносятся с коррекцией текста на более низкий уровень. Так после проектирования алгоритма для подзадачи 2.1, он программируется и тестируется, заглушка 2.2 при этом сохраняется (рис.1.6,б). После замены последней заглушки производится отладка и тестирование программного модуля подзадачи 2.2. а) б) Рисунок 1.6 – Схемы тестирования сложных программных модулей II и простых последнего III уровня На этом процесс проектирования и комплексного тестирования программного комплекса завершается. Следует подчеркнуть, что при нисходящем программировании помимо отладки и тестирования каждого программного модуля одновременно ведется отладка и тестирование программного комплекса в целом. 1.3 Повышение качества проектирования программ При разработке программ рекомендуется придерживаться основных этапов рис.1.9. Рисунок 1.9. Краткая схема разработки программы Алгоритм относится к фундаментальным понятиям информатики. На основе алгоритма составляются программы для реализации на компьютере. Алгоритм – это определенная последовательность, которая за конечное число шагов приводит к решению поставленной задачи [6]. Он характеризуется следующими свойствами: однозначностью, дискретностью, связностью, результативностью, конечностью, массовостью. Для описания алгоритмов известно несколько способов: запись на естественном языке, схемы алгоритмов, структурограммы, псевдокоды. Каждый проектировщик программы может выбрать наиболее удобный для себя способ, с точки зрения наглядности, простоты правил построения. Автор является сторонником применения схем алгоритмов в процессе обучения с использованием структуризации. Структурированными считаются алгоритмы и программы, составленные только с использованием трех правил структурной композиции 8 (в схемах алгоритмов они имеют графическое изображение): альтернативный выбор (блок “решение”); циклический повтор (два типа блоков для циклов); вспомогательные алгоритмы (подпрограммы). Неструктурированными считаются программы, в которых используются операторы goto… или отсутствует ступенчатая запись циклов и альтернатив. Алгоритм считается правильным и грамотным, если он дает правильные результаты при любых допустимых исходных данных и выдает диагностические сообщения при появлении запрещенных ситуаций и данных. Структурный подход снижает количество ошибок в алгоритмах. Структурная форма записи упрощает поиск и исправление ошибок при отладке программы. Гарантии отсутствия ошибок сам по себе структурный подход не дает 2Абра. О правильности программ нельзя утверждать ничего, если неизвестны предъявляемые к нему требования. Только при наличии строгих и четких спецификаций, систематическом их использовании для анализа проектируемых алгоритмов и программ, можно судить о правильности работы созданной программы. Отладка программы – это процесс поиска и исправления ошибок в программе. Синтаксические ошибки обнаруживаются и локализуются компилятором, а семантические (смысловые или алгоритмические) находятся в процессе тестирования. Тестирование – это проверка программ на компьютере с помощью некоторого набора тестовых примеров (теста) с целью выявления ошибок [5]. Спецификация программы – это точная и полная формулировка задачи, содержащая информацию, необходимую для разработки алгоритма (программы) ее решения 9, включающая описание характеристик, свойств и выполняемых ею функций. Для разработки программ на любом языке программирования полезно предварительное проектирование реализуемых в них алгоритмов. Эти описания алгоритмов вместе со спецификациями позволяют в полной мере оценивать правильность написанных в дальнейшем программ с точки зрения семантики (или смыслового значения). Разработка программ с доказательством их правильности называется доказательным программированием 7, 8. Для формирования заключения о наличии ошибок в алгоритмах или программе достаточно указать входной набор, при котором получаются неправильные результаты. В доказательном программировании необходимо показать, что правильные результаты будут получаться для всех допустимых данных путем исчерпывающего анализа результатов выполнения программы при любых допустимых данных. Существуют два подхода к проверке программ: прагматический и доказательный. При прагматическом подходе проверка программ реализуется на компьютере путем тестирования. При доказательном – предполагается составление спецификаций и доказательство правильности алгоритмов и программ по отношению к этим спецификациям. Рекомендуется применять комплексный подход к доказательству правильности программы. Сначала обосновывается полнота спецификаций. Затем доказывается правильность алгоритма по отношению к этим спецификациям. Доказательство правильности алгоритмов следует проводить за два этапа: при проектировании алгоритмов; после окончания разработки алгоритмов. На первом этапе показывается, что алгоритм является корректной реализацией метода решения, и доказывает, что метод - правильный. На втором этапе производится программирование [5,10, 13] и проводится исчерпывающий анализ результатов выполнения алгоритмов на соответствие постановке решаемых задач для любых допустимых данных. Далее программа тестируется. При этом тест для каждой функции должен включать такие тестовые наборы, которые охватывают все спецификации, тестируют все условия, и предполагают выполнение всех ветвей алгоритма, а также каждого оператора программы [5,7]. Для сложных программ дополнительно тестируются межмодульные интерфейсы [5]. Программа, отвечающая всем спецификациям и формирующая правильные результаты для всех тестовых наборов разработанного теста, считается отлаженной. 2ОРГАНИЗАЦИЯ ВЫПОЛНЕНИЯ КУРСОВГО ПРОЕКТА Целью выполнения курсового проекта является закрепление теоретических знаний и отработка практических навыков работы на компьютере. Выполнение курсового проекта рассчитано на один семестр и предполагает самостоятельную работу студентов. Каждому студенту выдается индивидуальное задание. 2.1 Этапы выполнения курсового проекта Процесс выполнения курсового проекта разбит на пять этапов: - математическая постановка задачи, - разработка оптимального алгоритма ее решения, - написание программы, реализующей данный алгоритм на компьютере, - отладка программы, - оформление пояснительной записки. Все этапы должны быть отражены в пояснительной записке (ПЗ). 2.2 Требования к пояснительной записке Общий объем ПЗ к курсовому проекту не должен превышать 25-30 листов, в том числе введение - не более 2 листов. ПЗ должна давать полное представление о принципе решения поставленной задачи с обоснованием выбранного алгоритма решения, форм представления входных и выходных данных, набора контрольных примеров, на которых проверялась программа. Записка должна содержать основные сведения о разработанной программе, необходимые для ее эксплуатации, модификации, и иллюстрироваться схемами алгоритмов, выполненными соблюдением всех требований ЕСПД. Схемы алгоритмов и тексты программ (листинги) входят в общий объем ПЗ и нумеруются. ПЗ к курсовому проекту должна включать в указанной последовательности титульный лист; аннотацию (реферат); бланк задания, подписанный руководителем; оглавление с указанием страниц; введение; разделы и подразделы основной части; заключение; список использованной литературы; приложения [1]. Заглавие "АННОТАЦИЯ" пишется на отдельной строке прописными буквами. Аннотация состоит из текста аннотации и сведений об объеме ПЗ, в том числе о количестве страниц, иллюстраций и таблиц. Текст аннотации должен раскрывать сущность выполненной работы, сведения об использованных методах решения задачи и программирования, языке программирования и объеме программы в байтах и в строках операторов [3]. ОГЛАВЛЕНИЕ включает введение, наименование всех разделов курсового проекта, а также подразделов и пунктов, если они имеют наименование, с указанием страниц, на которых размещается начало разделов, подразделов, пунктов. Размещается на отдельной (пронумерованной) странице и снабжается заголовком "ОГЛАВЛЕНИЕ", не нумеруется как раздел и включается в общее количество страниц ПЗ. Наименования, включенные в содержание, записываются строчными буквами. Прописными указываются только заглавные буквы и аббревиатуры. ВВЕДЕНИЕ содержит анализ задания, содержательное описание задачи, которая вытекает из задания, ее актуальность для народного хозяйства и область использования полученных результатов. Дается краткий анализ возможных методов решения поставленной задачи. Указываются сноски на литературные источники, по которым делается обзор. Введение снабжается заголовком "ВВЕДЕНИЕ" и не нумеруется как раздел.ОСНОВНАЯ ЧАСТЬ ПЗ должна отражать процесс проектирования и включать разделы- анализ задания и математическая формулировка задачи; - разработку логической структуры (алгоритма); - особенности разработки программы; - входные и выходные данные; - характеристики программы; - инструкция пользователя; - результаты тестирования. В разделе "АНАЛИЗ ЗАДАНИЯ" указываются общие принципы решения задачи, анализируются и обосновываются физические и математические методы ее решения, производится формализация задачи и подзадач. В разделе "РАЗРАБОТКА ЛОГИЧЕСКОЙ СТРУКТУРЫ" должны быть обоснованы выбранные методы решения задачи, описан алгоритм. Описание алгоритма иллюстрируется схемами алгоритмов, которые оформляются в виде рисунков и размещаются по тексту. Правила оформления схем алгоритмов регламентируются ГОСТ [ 4]. В разделе "ОСОБЕННОСТИ РАЗРАБОТКИ ПРОГРАММЫ" отражаются особенности реализации программы, ее структурe с указанием функций составных частей и связей между ними. В разделе "ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ" приводятся состав, типы, диапазон изменения входных и выходных данных, описание организации данных на внешних носителях (структура входных и выходных записей, форматы ввода и вывода, обоснование формы представления данных). В разделе "ХАРАКТЕРИСТИКИ ПРОГРАММЫ" содержатся основные характеристики и особенности программы (временные характеристики, режимы работы, объем необходимой памяти, технические средства и средства контроля правильности...). В разделе "ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ" должна быть указана последовательность действий, обеспечивающих загрузку, запуск, выполнение и завершение программы. В ″ЗАКЛЮЧЕНИИ″ делаются выводы по выполненной работе, возможностях ее использования и дальнейшем совершенствовании. В зависимости от особенностей задания на курсовой проект некоторые из указанных разделов могут отсутствовать или могут вводиться дополнительные разделы, позволяющие более точно описать специфику выполненного задания. Список использованной литературы содержит перечень источников, использованных при выполнении курсового проекта. Заглавие "БИБЛИОГРАФИЧЕСКИЙ СПИСОК" пишется на отдельной строке прописными буквами, а ниже следует перечень библиографических ссылок. Правила записи библиографических ссылок определены ГОСТ [2]. Примерами их записи может служить библиография настоящих методических указаний. ПРИЛОЖЕНИЯ содержат листинг программ, результаты тестирования выполнения программы на контрольных примерах и другой вспомогательный материал. ПЗ является основным документом, предъявляемым студентом при защите курсового проекта. Она печатается студентом на одной стороне листа бумаги формата А4 (210*297 мм) через 1 интервал. Текст должен быть представлен в виде распечатки. Сокращение слов не допускается за исключением общепринятых в русском языке сокращений. Если в ПЗ принята особая система сокращения слов или наименований, то в ней должен быть приведен перечень принятых сокращений. Изложение текста должно быть кратким, четким и вестись в совершенной форме, например: сделано, разработано и т.п. Весь текст ПЗ делят на разделы. Каждый раздел следует начинать с новой страницы. Разделы и подразделы имеют порядковые номера, обозначенные арабскими цифрами, например: 1 первый раздел; 2 второй раздел; 2.1 первый подраздел второго раздела. Заголовки разделов пишут прописными буквами и размещают симметрично относительно правой и левой границ текста. Заголовки подразделов записываются с абзаца строчными буквами (кроме первой прописной). Точку в конце заголовка не ставят. Если заголовок состоит из двух предложений, то их разделяют точкой. Иллюстрация (рисунки) располагаются в тексте после их первого упоминания. Иллюстрации, если их более одной, нумеруются арабскими цифрами в текстовом редакторе Microsoft Word, шрифтом размера 14 с указанием раздела и номера рисунка в разделе. Ссылки на иллюстрации дают по типу: "на рисунке 2.2". Ссылки на ранее упомянутые иллюстрации дают с сокращением «см.», например "см. рис. 2.2". Номер рисунка помещают под поясняющим текстом в виде "Рисунок 1.2 Наименование". Цифровой материал для достижения лучшей наглядности следует оформлять в виде таблицы. Таблица может иметь заголовок, который следует выполнять строчными буквами (кроме первой прописной). На все таблицы должны быть ссылки в тексте, при этом слово "Таблица" пишут полностью. Формулы в ПЗ, если их более одной, нумеруются арабскими цифрами, номер ставят с правой стороны страницы в круглых скобках на уровне формулы. Ссылки на формулу указывают порядковым номером формулы в круглых скобках, например, "в формуле (6)". При ссылке в тексте на используемую литературу указывают порядковый номер из библиографического списка, выделенный двумя квадратными скобками, например, [13]. Приложения оформляют как продолжение ПЗ на последующих страницах. Каждое приложение должно начинаться с новой страницы с указанием в середине слова "ПРИЛОЖЕНИЕ" и иметь тематический заголовок, который записывают симметрично тексту прописными буквами. При наличии более одного приложения все нумеруются русскими буквами. На приложения должны быть ссылки в тексте. В приложения выносятся фрагменты программ дополнительная информация (например, распечатки файлов исходных данных). В ПЗ все страницы, в том числе титульный лист, аннотация, бланк задания, содержание, введение, текст разделов с рисунками и таблицами, листы приложений нумеруются. На титульном листе номер не ставят, на последующих страницах номер проставляют сверху симметрично тексту. Общее оформление ПЗ должно быть выполнено в соответствии с требованиями к текстовым документам [1]. Оформленная ПЗ подписывается студентом и руководителем и сдается на проверку. На защиту курсового проекта представляется проверенная руководителем ПЗ, отлаженная программа, выполнение которой демонстрируется, и делается доклад со слайдами. 3 ЗАДАНИЯ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ 3.1 Числовые задачи 1. Сформировать календарь на любой интервал времени: месяц, семестр, календарный или учебный год, по дате определить день недели. По дню недели числа в определенном интервале дат. 2. Сформировать календарь на учебный год, семестр с указанием номера недели (I,II,III,IY). Предусмотреть в программе подсчет числа однотипных дней недели, количество занятий (часов) по каждому предмету за семестр. 3. Спроектировать программу расчета биоритмов. 4. Программа с помощью нестандартного датчика случайных чисел выбирает число в диапазоне от 0 до N. Угадать это число с ограничением числа попыток и без ограничения. После каждой попытки сообщается, больше или меньше названное число задуманного. Использовать для выдачи чисел графику и звуковые сигналы. Реализовать несколько вариантов угадывания многозначных чисел. 5. Разработать программу, которая обучает различным операциям над матрицами и их преобразованиям. Предусмотреть вывод задачи, правила выполнения, демонстрацию решения задачи(возможно и фрагмента программы). 6. Разработать программу «калькулятор» (в виде калькулятора на экране). 7. Спроектировать программу решения определенного класса математических задач с графической интерпретацией. 8. Разработать программу для решения комбинаторных задач. 9. Спроектировать программу работы с матрицами. 10. Разработать программу «Сортировка и поиск чисел в массивах». 3.2 Создание и введение баз данных. Справочники 1. С использованием структурированного типа (struct) сформировать данные "Тематический список литературы". Список должен включать тематику, название книги, методических указаний или др. издания, автора (составителя), год издания, полное количество страниц, наличие в фондах (УФ, НФ, ЧЗ) с указанием числа экземпляров. Разработанная программа должна предусматривать выборки всех изданий по теме в алфавитном порядке; по теме и по годам; по наличию в фондах библиотеки. Распечатываться список должен с соблюдением ГОСТа по оформлению библиографии [2]. 2. Сформировать данные по курсовому (дипломному) проектированию студентов в группе (на курсе), указав ФИО студента, группу, наименование предметов, по которым выполняется курсовое проектирование, если их несколько; раздел, тему, наличие ПК. Программа должна предусматривать выдачу всего списка тем по разделам, по учебным группам в алфавитном порядке студентов, отдельно списка студентов группы. 3. Разработать электронную "записную книжку", содержащую фамилии, имена, отчества; номера телефонов, адрес; год, месяц и день рождения. По запросу должен выдаваться на экран ПК номер телефона, фамилия по номеру телефона или другая информация; список лиц с днями рождения в одном месяце в порядке возрастания дат. 4. Создать базу данных "студенты группы", включающую ФИО, дату рождения, домашний адрес, номера телефонов, место работы (если работает), тематику научных исследований, руководитель, наличие ПК. Для иногородних студентов указать постоянное место жительства. Предусмотреть формирование файлов списка группы (для ведомости сдачи экзаменов), работающих студентов и занимающихся научной работой. 5. Сформировать список владельцев ПК в группе (на курсе) с указанием типа ПК, домашнего телефона, если он есть, знания языков и систем программирования. Предусмотреть выборки по списку студентов в группе, по владельцам ПК, знаниям ТП, С,С++ и др. 6. Разработать электронный телефонный справочник, включающий телефоны и адреса предприятий с подразделениями, служб города и некоторых абонентов. 7. Разработать программу создания и ведения базы данных "выпускники кафедры ИВТ (ЭВМ)". Предусмотреть следующие поля: год выпуска, ФИО, группу, тему дипломного проекта, ФИО руководителя и рецензента, дату защиты, место работы, раздел примечаний. Если есть руководитель от предприятия, то указать его ФИО и предприятие. 8. Справочник "Лекарственные средства", включающий сведения о составе, показаниях к применению, противопоказания, время приема, особенности применения (для детей) и т.п. 9. Электронный справочник «Лекарственные растения». 10. Разработать программу-справочник калорийности пищевых продуктов и их совместимости. По названию продукта программа должна выдавать группу, к которой он относится и список продуктов из базы данных, с которыми он совместим. В режиме по двум продуктам должна определяться их совместимость. Учесть, что белки и углеводы несовместимы, а жиры и белки и также жиры и углеводы совместимы. 12. Компьютерный Справочник содержания витаминов и микроэлементов в пищевых продуктах и их смесях, а также их характеристики и свойства. Предусмотреть в меню пользователя пункты редактирования, пополнения, поиска, получения справки. 13. Электронный справочник минералов (состав, характеристики, свойства...). 14. Электронный справочник исторических дат. 15. Программу-справочник «Цвета. Свойства, влияние на организм». 16. Электронный справочник праздников года. 17. Электронный справочник «Писатели». 18. Компьютерный справочник «Музыканты». 19. Электронный справочник «Поэты». 20. Компьютерные гороскопы. 21. Справочник «Планеты солнечной системы». 22. Электронный справочник «Созвездия и звезды». 23. Справочник химика (вещества, элементы). 24. Электронный справочник для абитуриентов омских вузов. 25. Компьютерный справочник «Поступающему в ОмГТУ», содержащий поля: направление (шифр и наименование), специальность (профиль), проходные баллы за последние три года, экзамены, профессия, другие сведения. 26. Электронный справочник «Личная библиотека». 3.3 Контролирующие и обучающие программы 1. Элементы языка С/С++. Алфавит языка, ключевые слова с переводом, константы. Если используется ключевое слово в операторе, то выдать его структуру. Примеры программа должна выдавать при наличии запроса. 2. Классификация типов. Порядковые типы (структура типа, выполняемые в нем операции, функции). Структурированные типы. 4. Операторы языка. Ввод-вывод (В/В) в языке С/С++. Шаблоны В/В, функции. 5. Библиотеки функций в С/С++.Функции для работы со строками. 6. Функции для работы с графикой. Озвучивание символов клавиатуры. 7. Составить программу для обучения устному счету. На каждом шаге должны предлагаться числа и арифметические действия, которые следует выполнить над этими числами. Числа должны быть крупными, верный и неверный ответ - сопровождаться разными звуковыми сигналами и соответствующими сообщениями. 9. Операции в языке С/С++. Вид, назначение, приоритет, примеры использования. 10. Тест-контрольная "Аксиомы алгебры логики". 11. Тест-экзамен по программированию. 12. Составить программу обучения работе с клавиатурой. Программа должна выдавать на экран буквы, цифры, слова и фразы, которые следует набрать на клавиатуре; анализировать время выполнения задания и сообщать оценку и рекомендации. 13. Разработать программу для тренировки памяти. На экране должно высвечиваться несколько точек (фигур), тренирующийся должен указать, в каком порядке (месте) эти точки (фигуры) располагались. Координаты точек выбираются с помощью датчика случайных чисел. Количество точек (фигур) на каждом новом уровне тренировки должно возрастать. 14. Расчет траектории полета движущегося объекта с демонстрацией попадания в определенную область экрана. 15. Разработать программу для демонстрация ряда физических законов. 3.4 Звукогенерация, графика, движение, мультипликация 1. Составить игровую программу "Музыкальная шкатулка". Программа должны воспроизводить по выбору одну из нескольких популярных мелодий. 2. Составить программу для воспроизведения мелодии, сыгранной на клавиатуре компьютера. Каждой клавише ставится в соответствие некоторая нота, длительность звучания ноты определяется длительностью нажатия клавиши. 3. Выполнить задание 2 с изображением фортепианной клавиатуры и курсором указывать звучащую клавишу. 4. Разработать программму-генератор случайных чисел от 1 до 6. Выдачу числа производить на грани кубика (или вертушки). Предусмотреть повторные бросания, вращение кубика (вертушки) и угадывание числа. 5. Получить мультфильм "круги на воде", используя семь концентрических окружностей. 6. В рисованных мультфильмах иллюзия движения создается последовательной сменой кадров, каждый из которых фиксирует очередное положение движущегося объекта. Используя этот принцип, получить мультфильм, показывающий бегущего, затем идущего человечка, далее второго человечка, двигающегося навстречу первому и их приветствие друг другу со звуковыми сигналами. 7. Получить звуковой мультфильм "Танцующий человечек". Танец может заключаться в выполнении самых простых движений, например, притопывание ногой или приседании, в такт мелодии, воспроизводимой по звукогенератору. 8. Изобразить на экране доску Гальтона c движущимися по ней шариками. Одновременно по доске должно двигаться несколько шариков. Закончившие движение шарики остаются в нижней части доски. Использовать датчик случайных чисел для выбора пути шарика при прохождении через препятствие. 9. Разработать программу расчета и построения траектории полета шара с демонстрацией попадания заданную область. 3.5 Помехоустойчивое кодирование 1. Коррекция ошибок блочным кодом с проверкой на четность строк и столбцов (кодирование, декодирование). 2. Кодирование двоичных данных непрерывным двухстепенным кодом и исправление одиночных ошибок. 3. Исправление многократных ошибок непрерывным двухстепенным кодом с проверкой четностей слов и диагоналей. 4. Коррекция ошибок блочным двумерным кодом. 5. Коррекция ошибок модифицированным блочным двумерным кодом. 6. Применение помехоустойчивого непрерывного двух векторного кода для повышения достоверности передачи данных. 7. Коррекция ошибок непрерывным трех векторным кодом. 8. Исправление ошибок непрерывным 3мин-вектор-кодом. 9. Коррекция ошибок блочным трех векторным кодом. 10. Кодирование и исправление ошибки в двоичном слове данных СВ-кодом. 3.7. Игровые задачи 1. "Семь лунок". Вдоль доски расположено семь лунок, в которых лежат слева 3 черных, а справа 3 белых шара. Передвинуть черные шары на место белых, а белые на место черных. Шар можно передвинуть либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром. 2. "Прыгающие шарики". Эта игра похожа на предыдущую. Исходная позиция - 8 лунок, в которых расставлены 4 черных (слева) и 3 белых (справа) шара. Поменять местами черные и белые шары. В отличие от предыдущей игры черные шары можно передвигать только вправо, а белые только влево. 3. Вдоль доски расположены девять лунок и в каждой лунке лежит красный, белый или синий шар. Одним ходом разрешается менять местами два любых шара. Добиться того, чтобы все красные шары шли первыми, все синие - последними, белые - посередине. Если общее число лунок равно N, то для решения задачи достаточно сделать не более N-1 хода. 4. "Пятнадцать". На квадратном поле размером 4х4 с помощью датчика случайных чисел расставлены 15 фишек с номерами от 1 до 15. Имеется одна свободная позиция. Расставить фишки по возрастанию их номеров. Передвигать фишки можно только на свободную соседнюю позицию. 5. "Ипподром". Играющий выбирает одну их трех лошадей, состязающихся в бегах, и выигрывает, если его лошадь приходит первой. Скорость передвижения лошадей на разных этапах выбирается программой с помощью датчика случайных чисел. 6. Игра в слова. Программа выбирает слово и рисует на экране столько прочерков (прямоугольников), сколько букв в этом слове. Отгадать, какое слово загадано программой. В каждый ход играющий указывает одну букву. Если названа буква, входящая в состав слова, она подставляется вместо соответствующего прочерка (прямоугольника). В противном случае играющий теряет одно очко. В начальный момент у играющего 15 очков. 7. Программа должна выбирать с помощью датчика случайных чисел четырехзначное число с разными цифрами. Угадать это число. На каждом шаге играющий называет четырехзначное число, а программа сообщает, сколько цифр числа угадано и сколько цифр угадано и стоит на нужном месте. Количество угадываний ограничить. Предусмотреть варианты для другой разрядности. 8. "Жизнь". Игра моделирует жизнь поколений гипотетической колонии живых клеток, которые выживают, размножаются или погибают в соответствии со следующими правилами. Клетка выживает, если и только если она имеет двух или трех соседей из восьми возможных. Если у клетки только один сосед или вовсе ни одного, она погибает в изоляции. Если клетка имеет четырех или более соседей, она погибает от перенаселения. В любой пустой позиции, у которой ровно три соседа, в следующем поколении появляется новая клетка. 9. Требуется ввести курсор в область экрана (небольшой круг), расположение которого неизвестно играющему. Передвижение курсора сопровождается звуковым сигналом: если курсор приближается к области, то звуковой сигнал выше, если удаляется - ниже. 10. "Морской бой". На поле 10х10 позиций стоят невидимые корабли: 4 корабля по одной клетке, 3 корабля по две клетке, 2 корабля по три клетки и один корабль в четыре клетки. Необходимо поразить каждую из клеток кораблей. Позиции указываются русскими буквами от А до К (по строкам) и цифрами от 1 до 10 (по столбцам). Конфигурация и положение кораблей на поле выбираются с помощью датчика случайных чисел. Если клетка корабля угадана играющим верно, она отмечается крестиком; в противном случае точкой. 11. Разработать программу «тетрис». 3.8. Психологическое тестирование Разработать программу, выполняющую тестирование для нескольких тестов [11], либо реализующую психологическое тестирование и какую-либо математическую или другую задачу. Примеры тестов: Тип твоей психики. Отношение к жизни. Эмоциональная стойкость. Надежный ли вы человек? Умеете ли вы контролировать себя? Общительный ли вы человек? Ваше отношение к проблемам. Выносливый ли вы человек? 3.8 Моделирование арифметических операций Разработать программную модель потактового выполнения арифметических операций, заданных индивидуальным кодом (таблица 1). Таблица 1 – Варианты заданий
Наименования пунктов в коде: - Арифметические операции 1. Сложение. 2. Вычитание. 3. Умножение, начиная с младших разрядов множимого. 4. Умножение, начиная со старших разрядов множимого. 5. Ускоренное умножение с анализом групп нулей и единиц. 6. Ускоренное умножение с обработкой за один такт двух разрядов множителя. 7. Ускоренное умножение с обработкой за один такт трех разрядов множителя. 8. Деление с восстановлением остатка. 9. Деление без восстановления остатка 10. Ускоренное деление. 11. Деление с неподвижным сумматором. 12. Извлечение квадратного корня. - Форма представления числа 1. С фиксированной запятой. 2. С плавающей запятой. - Тип используемого двоичного кода 1. Прямой. 2. Обратный код. 3. Дополнительный. 4. Обратный модифицированный. 5. Дополнительный модифицированный. 3.9 Олимпиадные задачи 1. Даны два куба одного размера с раскрашенными разными цветами гранями. Можно ли совместить кубы таким образом, чтобы совмещенные грани были одного цвета? На этот вопрос должна давать ответ ваша программа. 2. В трехмерном пространстве задано множество материальных точек. Найти разбиение этого множества такое, чтобы их центры тяжести находились наиболее близко друг к другу. 3. Составить программу, которая позволяет определить, являются ли линейно независимыми три заданных вектора целых чисел размерностью 30. БИБЛИОГРАФИЧЕСКИЙ СПИСОК ГОСТ 2.105-95. ЕСКД. Общие требования к тестовым документам. – Минск: ИПК Изд-во стандартов, 1996. – 38с. ГОСТ 7.1-2003. Библиографическая запись. Библиографическое описание документа. Общие требования и правила составления. – М.: Стандартинформ, 2006. – 48 с. ГОСТ 7.9-95. СИБИД. Реферат и аннотация. – Минск: ИПК Изд-во стандартов, 2001. – 4 с. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. – М.: Изд-во стандартов, 1991. – 26с. Иванова Г.С. Технология программирования. – М.: Изд-во МГТУ им.Баумана, 2011 – 333 с. Крылов, Е.В. Техника разработки программ: Кн.2. Технология, надежность и качество программного обеспечения: Учебник / Е.В. Крылов, В.А. Острейковский, Н.Г. Типикин. – М.: Высш. шк., 2008. – 469 с. Липаев, В.В. Тестирование компонентов и комплексов программ: Учебник – / В.В. Липаев. – М.: Синтег, 2010. - 392с. Методы проектирования программ: Метод. указания/ Сост.: О.П. Шафеева. – Омск: Изд-во ОмГТУ, 2004. – 32с. Першиков, В. И. Толковый словарь по информатике / В. И. Першиков, В.М. Савинков. – М .: Финансы и статистика, 1995. – 544с. Программирование на языке Си: Метод. указания / Сост. О. П. Шафеева: Изд-во ОмГТУ. 2008. – 72 с. Сборник психологических тестов. Часть I: Пособие / Сост. Е.Е. Миронова – Мн.: ЭНВИЛА, 2005. –155 с. Системы программирования: Метод. указания / Сост. О.П. Шафеева, И.А. Волчкова, С.А.Гончаров. Омск: ОмГТУ, 2012. – 32 с. Шафеева О.П. Технологии программирования. С++. Учебное пособие. – Омск, Изд-во ОмГТУ. 2007. – 80 с. ПРИЛОЖЕНИЕ А Пример оформления титульного листа к пояснительной записке Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Омский государственный технический университет Кафедра Информатики и вычислительной техники Направление 09 03 01 – Информатика и вычислительная техника Профиль «Вычислительные машины, комплексы, системы и сети» КУРСОВОЙ ПРОЕКТ на тему: Разработка программы помехоустойчивой передачи данных _________________________________________________________ по дисциплине «Программирование» Студент(ка) Панова Александра Николаевна группы В-115 (Ф.И.О. полностью) Пояснительная запискаШифр проекта (работы)_________________________ |