birmaga.ru
добавить свой файл

1
Задание к курсовой работе по


программированию и основам алгоритмизации

Курсовая работа состоит из одного теоретического вопроса и одного практического задания.

Теоретический вопрос

Теоретический вопрос посвящён теории алгоритмов и языку программирования С++. Ответ на теоретический вопрос должен содержать не только теоретические сведения, но и примеры программ на языке С++ (или примеры алгоритмов в виде блок-схем).

Содержание теоретического вопроса по вариантам:


  1. Способы обмена информацией между функциями.



Практическое задание

В ходе выполнения практического задания требуется составить алгоритм в виде блок-схемы и программу решения задачи на языке программирования С++. Входные данные в текстовый файл записываются посредством текстового редактора (например, Блокнота).


(одномерные массивы и матрицы) – см. таблицу 2. Вся входная информация должна читаться из текстового файла, выходная – выводиться на экран.

таблица 2

Вариант

Задание

33

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


Оформление курсовой работы
Курсовую работу следует оформить в виде отчёта. К отчёту по курсовой работе необходимо приложить диск, содержащий исходный текст программы, исполняемый файл (ЕХЕ-модуль) ,входные и выходные файлы (по необходимости).

Отчёт по курсовой работе должен быть распечатан на принтере и содержать:

  1. Титульный лист.

  2. Оглавление.
  3. Содержание теоретического вопроса и подробный ответ на него (с примерами программ на С++).


  4. Отчёт по практическому заданию.

  5. Список литературы и Интернет-ресурсов.

Размер шрифта должен быть 12, шрифт Times New Roman, поля: левое - 3см, правое – 1,5 см, нижнее – 2,5 см, верхнее – 2 см. Междустрочный интервал 1,3 , абзацный отступ – 1,25 см, выравнивание текста по ширине. Нумерация страниц по центру снизу.

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

Отчёт по практическому заданию должен включать:

  1. Текст задания.

  2. Краткое словесное описание метода решения поставленной задачи.

  3. Алгоритм выполнения задания в виде блок-схемы.

  4. Исходный текст программы.

  5. Содержание входного файла.

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

  7. Выводы по результатам работы программы.


Рекомендуемая литература:


  1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб: Питер, 2007.

  2. Дэвис С. С++ для «чайников». – К. : Диалектика, 2003.

  3. Подбельский В.В. Фомин С.С. Программирование на языке Си – М.: Финансы и статистика, 2000.

  4. Богуславский А.А., Соколов С.М. Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна: КГПИ, 2002.

  5. Программирование на алгоритмических языках. Лабораторный практикум /Артемьев И.Т./, ЧГУ:Чебоксары, 2005 г.

  6. Демидович Е.М. Основы алгоритмизации и программирования. Язык СИ : учебн. Пособие. – СПб.: БХВ-Петербург, 2006.
  7. Плохотников К.Э. Методы разработки курсовых работ. Моделирование, вычисления, программирование на С/С++ и МАТLAB, виртуализация, образцы лучших студенческих курсовых работ: учебное пособие. – М.: СОЛОН-ПРЕСС, 2006.


Приложение

Приложение содержат краткое описание методов сортировки числовых массивов.

  1. Метод пузырька :

  • Попарно сравниваем элементы с 1-го по N-1 ( N –кол-во элементов массива),

  • Если X[i] > X[i+1], то элементы переставляем местами,

  • Аналогично сравниваем попарно элементы с 1-го по N-2, при необходимости переставляя их,

  • И т.д.

  1. Метод камешка :

  • Попарно сравниваем элементы с N-1-го по 1 ( N –кол-во элементов массива),

  • Если X[i] > X[i+1], то элементы переставляем местами,

  • Аналогично сравниваем попарно элементы с N-2-го по 2, при необходимости переставляя их,

  • И т.д.

  1. Метод выбора I :

    • Находится минимальный элемент среди всех элементов массива. Он переставляется с первым элементом.

    • Среди элементов со второго по последний находится минимальный элемент и переставляется со вторым.

    • И т.д.

  2. Метод выбора II :

    • Находится максимальный элемент среди всех элементов массива. Он переставляется с последним элементом.

    • Среди элементов с первого по предпоследний находится максимальный элемент и переставляется с предпоследним.

    • И т.д.

  3. Метод обмена :

  • Первый элемент массива последовательно сравнивается с элементами со второго по N-ый (N – число элементов массива). Если первый элемент больше, то он меняется местами с очередным элементом.

  • Второй элемент массива сравнивается с элементами с третьего по N-ый и при необходимости переставляется.

  • И т.д.




  1. Метод Шелла :

  • В первом цикле шаг сортировки равен N/2 (N – число элементов массива). Сравниваются первый и N/2 –й элемент и переставляются, если первый больше.


  • Сравниваются второй с N/2+1-м и т.д.

  • Во втором цикле шаг сортировки уменьшаем ещё в два раза : N/4.

  • И т.д. пока шаг сортировки не станет равным 1.

  1. Метод Хоара :

  • Выберем средний элемент массива. Он разбивает массив на левую и правую часть.

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

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

  • Каждое из полученных подмножеств сортируем отдельно аналогичным образом.