
- •Міністерство освіти і науки україни
- •Лабораторная робота №1 «Строковые переменные»
- •Работа со строковыми переменными
- •Вопросы на защиту:
- •Лабораторная робота №2 «Сортировка выбором»
- •Вопросы на защиту:
- •Лабораторная робота №3 «Стандарт оформления кода. Построение блок-схем.»
- •Вопросы на защиту:
- •Лабораторная робота №4 «Передача массивов в подпрограммы»
- •Вопросы на защиту:
- •Додаток а
Вопросы на защиту:
Какие математические действия можно совершать над переменными типа Char?
Ответ: ____________________________________________ __________________________________________________ __________________________________________________
Какие математические действия можно совершать над переменными типа String?
Ответ: ____________________________________________ __________________________________________________ __________________________________________________
В чём отличие между типами Char и String?
Ответ: ____________________________________________ __________________________________________________ __________________________________________________
Что такое таблица символов ASCII?
Ответ: ____________________________________________ __________________________________________________ __________________________________________________
Работу написал Работу проверил
Лабораторная робота №2 «Сортировка выбором»
Тема работы: Сортировка одномерных массивов методом выбора.
Цель работы: научиться осуществлять сортировку массива методом выбора.
Теоретический материал
Массив – это группа однотипных данных, носящих общее имя и хранящихся в последовательных ячейках памяти, каждая из которых содержит один элемент массива.
Сортировка – это алгоритм для упорядочения элементов в списке (например массиве) по переделённому признаку (например, по возрастанию или убыванию).
Существует множество методов сортировки, отличающихся трудностью реализации и эффективностью. Эти два показателя прямо пропорциональны! Т.е. чем сложнее метод сортировки в реализации, тем он эффективнее.
Сортировка выбором – одна из самых простых и неэффективных, она лишь немного сложнее и эффективнее самого простого метода – сортировки пузырьком.
Алгоритм сортировки выбором:
Находим номер элемента с максимальным значением в массиве.
Меняем местами значения последнего сортируемого элемента и элемента с максимальным значением.
Повторяем действия 1 и 2, исключив из поиска отсортированные элементы.
Рис 2. Сортировка методом выбора
Рис 3. Альтернативный способ сортировки методом выбора
Ход выполнения лабораторной работы
Program Sortirovka_vyborom;
uses crt; // Подключение библиотеки для очистки экрана
const N=20;// Константа для максимально количества элементов в массиве
var i,j, // Переменные счётчиков в циклах
max, // Переменная для поиска максимального числа в массиве
posMax,// Переменная хранящая номер элемента с максимальным числом
lastPos,//Переменная для остановки цикла
temp // Переменная для хранения временных данных
: integer; // Все они integet, т.е. целые числа
Mass: array[1..N] of integer; // Массив из N элементов, тоже integer
begin // Начало програмы
clrscr; // Очистка экрана
randomize; // Запуск полной рандомизации
for i:=1 to N do // Цикл заполняющий массив случайными числами
Mass[i] := random(100); // i-тый элемент массива получает случайное значение (от 0 до 99)
for i:=1 to N do // Цикл выводящий массив на экран
write (Mass[i],' '); // Вывод на экран i-того элемента массива с пробелом
// ТЕПЕРЬ НАЧИНАЕТСЯ САМА СОРТИРОВКА
for j:=1 to N do // Внешний цикл. Задаёт количество полных проходов по массиву (совпадает с количеством его элементов)
begin // Начало внешнего цикла
max := Mass[1]; // Устанавливаем первым кандидатом на максимальное число – первое число в массиве
posMax := 1; // Задаём номер его позиции
lastPos := N-j+1; // Исключаем отсортированные числа из проверки
for i:=2 to lastPos do // Внутренний цикл. Задаёт количество проверяемых элементов массива (каждый следующий полный проход, проверяется на один элемент меньше)
begin // Начало внутреннего цикла
if max < Mass[i] then // Проверка: если кандидат на максимальное число меньше i-того элемента массива, то...
begin // Начало if
max := Mass[i]; // Сделать кандидатом на максимальное число i-тый элемент массива
posMax := i; // Запомнить номер нового кандидата на максимальное число
end; //конец if
end; // Конец внутреннего цикла
temp := Mass[posMax]; // Эта и последующие две строки – меняем местами значения максимально и «последнего» элемента
Mass[posMax] := Mass[lastPos];
Mass[lastPos] := temp;
end; // Конец внешнего цикла
// КОНЕЦ СОРТИРОВКИ
writeln; writeln; // Переход на новую строку (и пропуск пустой строки) для отделения неотсортированного массива от отсортированного
for i:=1 to N do // Цикл выводящий массив на экран
write (Mass[i],' '); // Вывод на экран i-того элемента массива с пробелом
readln; // Остановка перед закрытием программы
end. // Конец программы
Задание:
Внимательно прочесть программу и комментарии к ней, разобраться как всё работает.
Вставить программу в среду Free Pascal.
Переделать программу так, чтобы сортировка в ней осуществлялась альтернативным способом (т.е. через поиск минимального числа и перемещение его в начало, как показано на рисунке 3). Дать пользователю выбор, отсортировать массив по возрастанию или по убыванию.