- •Лабораторная работа №1
- •Программирование линейных алгоритмов
- •Общие сведения:
- •Контрольные вопросы:
- •Задачи:
- •Задачи повышенной сложности
- •Составим схему алгоритма
- •Контрольные вопросы
- •Задачи повышенной трудности
- •Лабораторная работа №3 Программирование циклических алгоритмов
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Задачки на смекалку
- •Задачи повышенной сложности
- •Контрольные вопросы
- •Задачи повышенной сложности
- •Лабораторная работа 5
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 6 Программирование с использованием множеств
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 7 Программирование с использованием типа запись
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 8 Программирование с использованием процедур и функций
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 9 Работа с файлами
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Задания:
- •Задачи повышенной сложности
- •Контрольные вопросы
- •Варианты заданий
- •Контрольные вопросы
- •Варианты заданий:
- •Лабораторная работа №3 Сортировка методом прямого включения
- •Общие сведения
- •Контрольное задание
- •Варианты заданий
- •Лабораторная работа №4 Бинарный поиск
- •Общие сведения
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №5 Рекурсия
- •Общие сведения:
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №6 Линейные списки
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №7 Стек
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №8 Двоичные деревья
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Приложения
- •1. Сообщения об ошибках во время компиляции
- •2. Сообщения об ошибках вовремя выполнения программы
Задачи повышенной сложности
Найти площадь пересечения двух многоугольников. Предусмотреть ввод координат и количество вершин с клавиатуры и вывод многоугольников на экран.
Функция Бесселя порядка N имеет вид
Создать текстовый файл, содержащий таблицу функции Бесселя 5-го порядка при x = 3.3, 3.6, 3.9, ...12 с точностью 8 знаков после десятичной точки.
Составить программу шифровки и дешифровки файла методом простой символьной подстановки. Для этого сгенерировать таблицу из N смещений кодов символов и записать ее в файл. Использовать эту таблицу при генерации и расшифровке символов файла пачками по N штук.
Составить программу перемещения по экрану вводимой предварительно с клавиатуры текстовой строки. Перемещение осуществляется по восьми направлениям, направление должно меняться через случайное число циклов. Причем при смене направления движения должен генерироваться короткий звуковой импульс, а в начале нового цикла должен случайно меняться цвет надписи. Можно модернизировать программу организовав по какому-либо принципу процесс "сборки" исходной текстовой строки из "рассыпавшихся" отдельных ее символов.
Царство царя Гороха представляет собой выпуклый N-угольник, внутри которого расположены K селений. Царь решил завещать двум своим сыновьям по полцарства, одинаковые по площади и с равным количеством селений. Для этого он требует разделить царство одной прямолинейной границей. Напишите программу, строящую границу согласно царской воле. Если граница проходит через селение, то оно может быть либо отнесено к одному из полуцарств, либо разделено на два селения, которые будут отнесены к разным полуцарствам (при нечетном K граница, естественно, должна разделить какое-то из селений).
ЧАСТЬ2
Лабораторная работа №1
Сортировка методом простого выбора
Цель работы: Исследовать сортировку массива методом простого выбора и оценить эффективность этого алгоритма.
Общие сведения
Сортировка методом простого выбора сводится к следующим шагам: 1. Установить номер наибольшего элемента массива. 2. Поменять местами наибольший и последний элементы массива. 3. Оставив в покое последний элемент, выполнить пункты 1 и 2 над остатком массива (массивом без последнего элемента). Пункт 3 повторять, пока остаток массива не сократится до одного элемента.
Пример
Опишем процедуру сортировки на языке проектирования программ (псевдокоде).
For i := n downto 2 do
Begin
найти максимальный элемент из а[1], ..., a[i];
запомнить его индекс в переменной k;
если i<>k поменять местами a[i] и a[k];
End;
Вот как изменяется значение массива из пяти элементов (30,20,10,50,40)
30 20 10 50 40
30 20 10 40 50
30 20 10 40 50
10 20 30 40 50
10 20 30 40 50
Подчеркнута область поиска наибольшего элемента.
Контрольные вопросы
1. Что понимается под сортировкой массива?
2. Чем отличается сортировка по убыванию от сортировки по невозрастанию?
3. Сформулировать идею сортировки массива методом простого выбора.
4. Почему время выполнения одного шага прямо пропорционально размеру неупорядоченной части массива?