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

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

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

для специальности 220400

(1 курс, заоч. сокр. отделение)

1 семестр, 2012 г.

преподаватель: Исаева И.Н.

Курсовая работа состоит из одного теоретического вопроса и одного практического задания. Номера варианта вопроса и задания определяется по последним двум цифрам шифра зачётной книжки. Если это число больше 49, то следует отнять от него 50, - полученное число и будет номером варианта.

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

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

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

  1. Принципы разработки алгоритмов: операциональный, структурный и объектно-ориентированный подходы.

  2. Базовые алгоритмические конструкции. Приведите примеры. Структурное программирование.

  3. Метод нисходящего проектирования алгоритма (программы).

  4. Модульное программирование.

  5. Жизненный цикл программного обеспечения.

  6. Этапы создания программы (постановка задачи, разработка внутренних структур данных, проектирование, структурное программирование, нисходящее тестирование).

  7. Классификация языков программирования.

  8. Элементы языка программирования. Алфавит, лексика, синтаксис, семантика С++.

  9. Препроцессор языка С++. Директивы препроцессора. Структура программы на языке С++.

  10. Целочисленные типы данных в C++. Вещественные типы данных в С++.

  11. Переменные в С++. Их принадлежность классу памяти (auto, extern, static, register).

  12. Арифметические операции в С++. Операции поразрядной арифметики в С++.

  13. Логические операции и операции отношения в С++. Операции присваивания. Операция sizeof.

  14. Выражения в С++. Приоритет операций. Последовательность выполнения операций.

  15. Функции ввода : gets, getchar, scanf, sscanf.

  16. Функции вывода : printf, cprintf, sprintf, putchar, puts.

  17. Операторы ввода/вывода ">>" И "<<". Организация ввода/вывода переменной в зависимости от потока ввода/вывода.

  18. Оператор разветвления if . . .else. Вложенные if – else.

  19. Оператор выбора switch. Операторы передачи управления (goto, break, continue).

  20. Циклы. Виды циклов в С++. Цикл for.

  21. Цикл while. Цикл do. . . while.

  22. Вложенные циклы.

  23. Сортировка числовых массивов: метод обратного пузырька (камешка).

  24. Сортировка числовых массивов: метод выбора II.

  25. Сортировка числовых массивов: метод обмена.

  26. Сортировка числовых массивов: метод Шелла.

  27. Сортировка числовых массивов: метод Хоара (метод быстрой сортировки).

  28. Многомерные массивы.

  29. Строки в С++. Примеры программ с использованием строк. Библиотечные функции для работы со строками.

  30. Понятие указателя. Инициализация указателей.

  31. Операции с указателем. Ссылки.

  32. Использование указателей при работе с многомерными массивами.

  33. Функции . Прототип функции (объявление функции), определение функции. Оператор Return. Активизация функции.

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

  35. Указатель на функцию. Передача имён функций в качестве параметров.

  36. Полиморфизм и перегрузка функций.

  37. Обработка в функции массива данных.

  38. Рекурсивные функции. Функции с переменным числом параметров.

  39. Шаблоны функций.

  40. Переименование типов ( typedef). Структуры (struct).

  41. Перечисления (enum). Объединения (union).

  42. Доступ к полям структуры через указатель. Использование полей битов в структурах.

  43. Динамическое использование памяти. Функции malloc, calloc, realloc, free.

  44. Списки. Типы списков. Линейные списки.

  45. Стек. Программная реализация стека.

  46. Очереди. Программная реализация очереди.

  47. Работа с текстовыми файлами средствами языка СИ. Пример программы.

  48. Работа с бинарными файлами средствами языка СИ. Пример программы.

  49. Деревья. Бинарные деревья.

  50. Области действия идентификаторов. Поименованные области.

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

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

варианты 0-29 ( структуры и текстовые файлы)– см. таблицу 1 . Чтение данных в массив структур должно производиться из входного текстового файла.

таблица 1

Вариант

Задание

0

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

1

Описать структуру IGRUSHKI, содержащую поля: название игрушки, её цену в рублях, возрастные границы (от двух до пяти лет, например). Можно ли подобрать две игрушки: мяч и «не мяч», суммарная стоимость которых не больше 60 рублей и подходящих ребёнку 3 лет? (результат вывести на экран).

2

Описать структуру STUDENT, содержащую поля: фамилия с инициалами, номер группы, успеваемость (массив из 5 элементов). Вывести в выходной файл фамилии и номера групп студентов, имеющих хотя бы одну оценку 2.

3

Описать структуру AEROFLOT, содержащую поля: пункт назначения (город), номер рейса, тип самолёта. Ввести название города с клавиатуры. Вывести на экран номера рейсов и типы самолётов, вылетающих в этот город.

4

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

5

Описать структуру NOTE, содержащую поля: фамилия с именем, номер телефона, день рождения (массив из трёх чисел). Отсортировать эту информацию по первому полю (в алфавитном порядке) и вывести в выходной файл.

6

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

7

Описать структуру STUDENT, содержащую поля: фамилия с инициалами, оценки по 4 предметам, размер стипендии. Выбрать студентов, имеющих худшую успеваемость из получающих стипендию (результат записать в выходной файл).

8

Описать структуру STUDENT, содержащую поля: фамилия с инициалами, дата рождения, пол. Выбрать младшего из студентов заданного пола (пол вводится с клавиатуры).

9

Описать структуру STUDENT, содержащую поля: фамилия с инициалами, пол, оценки по 4 предметам. Выбрать студентов заданного пола, сдавших сессию на 4 и 5 (пол вводится с клавиатуры). Результат вывести на экран.

10

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

11

Описать структуру BAGAZ, содержащую поля: фамилия пассажира, количество вещей его багажа, общий вес багажа в кг. Найти пассажиров, средний вес одной вещи багажа которого отличается не более, чем на 0,3 кг от общего среднего веса одной вещи. Результат записать в выходной файл.

12

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

13

Описать структуру TOVAR, содержащую поля: наименование товара, страна-производитель, объём партии в штуках. Ввести название товара с клавиатуры. Вывести на экран список стран, поставляющих этот товар и общий объём импорта.

14

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

15

Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде.

16

Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента строку S.

17

Дан входной текстовый файл (одна строка – одно предложение). Вывести в выходной файл строку (строки) с максимальным количеством слов.

18

Дан текстовый файл. Вывести на экран количество символов в самом коротком слове.

19

Дан текстовый файл. Вывести на экран количество предложений в нём и количество слов в каждом предложении.

20

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

21

Дан текстовый файл. Переписать его в новый файл так, чтобы новое каждое предложение начиналось с новой строки.

22

Дан текстовый файл. Перепишите его в выходной файл, удалив все одинаковые слова, идущие друг за другом.

23

Дан текстовый файл. Перепишите его в выходной файл, удалив все знаки препинания.

24

Перепишите из входного файла в выходной только те строки, длина которых меньше 70. Строки длиной меньше 50 перепишите дважды (подряд).

25

Объединить каждую последовательную пару строк входного файла в одну строку, если её общая длина не превышает 80 символов. Объединённые строки записать в выходной файл.

26

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

27

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки.

28

Дан текст программы на С++. Записать в выходной файл текст программы без комментариев (комментарии начинаются с пары символов // и заканчиваются символом конца строки).

29

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

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

таблица 2

Вариант

Задание

30

Дан целочисленный массив размером N. Определить, является ли он экстремальным. Например, массивы { 2, 5, 14, 8, 4, 2} и { 23, 11, 6, 18 } являются экстремальными (т.е. имеют один экстремум).

31

Дан целочисленный массив размером N. Найти в нём наиболее часто встречающееся число.

32

Дан целочисленный массив размером N. Определить, сколько разных чисел содержится в этом массиве.

33

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

34

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

35

Имеется таблица с данными об объёме производства 10 фирм за 5 лет. Определить, есть ли такая фирма, у которой все 5 лет наблюдался рост производства и, если есть, то каков её номер.

36

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

37

В целочисленном массиве размером N найти самую длинную убывающую последовательность элементов (вывести количество этих элементов).

38

Дан целочисленный массив размерностью N. Упорядочить по возрастанию элементы, стоящие на четных местах. Элементы, стоящие на нечетных местах, упорядочить по убыванию.

39

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

40

Дан целочисленный массив размером N. Определить, является ли он биэкстремальным. Например, массивы { 2, 5, 14, 8, 7, 4, 1, 13, 37} и { 23, 10, 6, 12, 18, 25, 16, 9, 5 } являются биэкстремальными (т.е. имеют два экстремума).

41

Дана целочисленная матрица А[8][8]. Найти минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы

42

Элементы вещественного массива размером N содержат результаты забега на 100 м N спортсменов, измеренные в сек. Составить команду из четырёх лучших бегунов для участия в эстафете 4х100 (указать номера четырёх спортсменов).

43

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

44

Упорядочить строки целочисленной матрицы по возрастанию среднего арифметического в строке.

45

Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов.

46

Дана матрица A[10][12], содержащая данные о количестве выпавших в Чебоксарах осадков (в мм) за каждый месяц последних 10 лет. Вычислить среднее количество осадков за 10 лет и отклонение от среднего для каждого года.

47

Дан целочисленный массив из N элементов.

Если элементы массива представляют собой знакочередующуюся последовательность (+, ─ , +, ─, ….), то сообщить об этом. В противном случае сжать массив, оставив лишь положительные элементы (сохранив их порядок).

48

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

49

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]