- •Содержание
- •Методические рекомендации по оформлению отчета по практическим и лабораторным работам
- •Тематика практических и лабораторных работ
- •Перечень практических и лабораторных работ
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Методика разработки алгоритмов
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Структура программы на Турбо Паскаль
- •Операторы ввода и вывода Ввод данных:
- •Вывод данных:
- •Оператор условного перехода
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Расположение матрицы в памяти компьютера
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Тема: Организация процедур и функций.
- •Краткие теоретические сведения
- •Передаваемые параметры процедур и функций
- •Параметры-значения
- •Параметры-переменные
- •Краткие теоретические сведения
- •Оператор with
- •Краткие теоретические сведения
- •Стандартные процедуры и функции
- •Краткие теоретические сведения Организация работы с файлом
- •Организация работы с файлом
- •Запись в файл
- •Чтение из файла
- •Общие процедуры работы с файлами
- •Процедура открытия
- •Процедура закрытия
- •Процедура переименования
- •Функция анализа состояния файла
- •Чтение и запись в текстовых файлах
- •Процедуры Write / WriteLn
- •Чтение и запись в компонентном файле
- •Лабораторная работа №15(2 часа)
- •Рекомендуемая литература
Краткие теоретические сведения
Одной из наиболее распространенных операций обработки данных массива – это сортировка. Сортировкой называется распределение элементов множества по группам в соответствии с определенными правилами.
Сортировка отбором (линейная сортировка). Идея такой сортировки по невозрастанию заключается в том, чтобы последовательно просматривая весь массив, отыскать наибольшее число и поместить его на первую позицию. Затем просматриваются все остальные элементы массива и выполняется аналогичная операция по отбору из рассматриваемо части массива максимального элемента и обмену местами этого элемента и первого в рассматриваемо части, и т.д.
Сортировка методом пузырька. Это один из самых популярных методов сортировки. Он основан на том, что в процессе исполнения алгоритма более «легкие» элементы массива постепенно «всплывают». Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по убыванию состоит в последовательном просмотре снизу вверх (от начала к концу) массива. Если для соседних элементов выполняется условие, согласно которому элемент, находящийся справа, больше элемента, находящегося слева, то выполняется обмен значениями этих элементов.
Далее приводятся два алгоритма сортировки первой строки двумерного массива.
Uses CRT;
Comst
N=10;
Type
Massiv=array[1..N,1..N]of integer;
Var
MAS:Massiv;
i,j,buf,min,N_min:integer;
BEGIN
ClrScr;
Randomize;
{======== ввод двумерного массива,
используя генератор случайных чисел =======}
For i:=1 to N do
Begin
Writeln;
For j:=1 to N do
Begin
MAS[i,j]:=random(10);
Write(MAS[i,j]:4);
End;
End;
{======== сортировка элементов
первой строки по возрастанию =======}
For i:=1 to N-1 do
Begin
min:= MAS[1,i];
N_ min:=i;
For j:=i+1 to N do
Begin
If MAS[1,j] <min
Then
Begin
min:= MAS[1,j];
N_ min:=j;
End;
End;
Buf:= MAS[1,i];
MAS[1,i]: =MAS[1,N_ min];
MAS[1,N_ min]:= Buf;
End;
{======== вывод двумерного массива =======}
For i:=1 to N do
Begin
Writeln;
For j:=1 to N do
Write(MAS[i,j]:4);
End;
Readln; END.
Program prim_sortirovka2;
Uses CRT;
Comst
N=10;
Type
Massiv=array[1..N,1..N]of integer;
Var
MAS:Massiv;
i,j,k,buf;
BEGIN
ClrScr;
Randomize;
{======== ввод двумерного массива,
используя генератор случайных чисел =======}
For i:=1 to N do
Begin
Writeln;
For j:=1 to N do
Begin
MAS[i,j]:=random(10);
Write(MAS[i,j]:4);
End;
End;
{======== сортировка элементов первой
строки по возрастанию методом пузырька =======}
For k:=1 to N-1 do
For j:=1 to N-k do
If MAS[1,j] < MAS[1,j+1]
Then
Begin
Buf:= MAS[1,j];
MAS[1,j]: =MAS[1,j|+1];
MAS[1,j+1]:= Buf;
End;
{======== вывод двумерного массива =======}
For i:=1 to N do
Begin
Writeln;
For j:=1 to N do
Write(MAS[i,j]:4);
End;
Readln;
END.
Лабораторная работа №5(2 часа)
Тема: Составление и запись алгоритмов заполнения двумерного массива по схеме в виде программы. Компиляция и тестирование программы.
Цель: Приобрести навыки составления и анализа алгоритмов заполнения двумерного массива по схеме и обработки его элементов, проведение компиляции и тестирования программы.
Задание: Разработать алгоритм решения задачи согласно варианту(см. практическую работу №4, только заполнение массивов по схеме), представить его в виде программы на языке программирования Turbo Pascal. Провести компиляцию и тестирование программы.