Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки (основы программирования).docx
Скачиваний:
24
Добавлен:
02.02.2015
Размер:
377 Кб
Скачать

Вопросы на защиту:

Какие математические действия можно совершать над переменными типа Char?

Ответ: ____________________________________________ __________________________________________________ __________________________________________________

Какие математические действия можно совершать над переменными типа String?

Ответ: ____________________________________________ __________________________________________________ __________________________________________________

В чём отличие между типами Char и String?

Ответ: ____________________________________________ __________________________________________________ __________________________________________________

Что такое таблица символов ASCII?

Ответ: ____________________________________________ __________________________________________________ __________________________________________________

Работу написал Работу проверил

Лабораторная робота №2 «Сортировка выбором»

  1. Тема работы: Сортировка одномерных массивов методом выбора.

  1. Цель работы: научиться осуществлять сортировку массива методом выбора.

  1. Теоретический материал

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

Сортировка – это алгоритм для упорядочения элементов в списке (например массиве) по переделённому признаку (например, по возрастанию или убыванию).

Существует множество методов сортировки, отличающихся трудностью реализации и эффективностью. Эти два показателя прямо пропорциональны! Т.е. чем сложнее метод сортировки в реализации, тем он эффективнее.

Сортировка выбором – одна из самых простых и неэффективных, она лишь немного сложнее и эффективнее самого простого метода – сортировки пузырьком.

Алгоритм сортировки выбором:

  1. Находим номер элемента с максимальным значением в массиве.

  2. Меняем местами значения последнего сортируемого элемента и элемента с максимальным значением.

  3. Повторяем действия 1 и 2, исключив из поиска отсортированные элементы.

Рис 2. Сортировка методом выбора

Рис 3. Альтернативный способ сортировки методом выбора

  1. Ход выполнения лабораторной работы

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. // Конец программы

Задание:

  1. Внимательно прочесть программу и комментарии к ней, разобраться как всё работает.

  2. Вставить программу в среду Free Pascal.

  3. Переделать программу так, чтобы сортировка в ней осуществлялась альтернативным способом (т.е. через поиск минимального числа и перемещение его в начало, как показано на рисунке 3). Дать пользователю выбор, отсортировать массив по возрастанию или по убыванию.