Понедельник, Июль 5th, 2010

Структуры и алгоритмы обработки данных

процедура, осуществляющая исследование методов сортировок  для
***********  заданного массива чисел  ***********************
**********************************************************}
procedure make(x1,n:integer;a,a1:array of integer;k:byte);
var
{количество перестановок}
kol_pr_ins, kol_pr_obm,kol_pr_choose:longint;
{количество сравнений}
kol_sr_ins, kol_sr_obm,kol_sr_choose:longint;
s:string;
begin
case k of
1:s:=’упорядоченных по возрастанию’;
2:s:=’неупорядоченных (случайных)’;
3:s:=’упорядоченных по убыванию’;
end;
{———метод прямого включения———}
pr_ins(a,a1,kol_pr_ins,kol_sr_ins);
{———метод прямого обмена (метод пузырька)———}
pr_obm(a,a1,kol_pr_obm,kol_sr_obm);
{———метод прямого выбора———-}
pr_choose(a,a1,kol_pr_choose,kol_sr_choose);
{** вывод результата исследования **}
{вывод шапки таблицы}
gotoxy(3,x1);textcolor(cyan);textbackground(1);
writeln(‘Для ‘,high(a)+1,’ ‘,s,’ элементов:’);
gotoxy(3,x1+1);textcolor(lightgreen);textbackground(1);
writeln(‘Методы:    прямого включения    прямого обмена     прямого выбора’);
{вывод полученных при исследовании данных}
gotoxy(3,x1+2);textcolor(white);write(‘перест.’);
gotoxy(17,wherey);write(kol_pr_ins);
gotoxy(37,wherey);write(kol_pr_obm);
gotoxy(58,wherey);writeln(kol_pr_choose);
gotoxy(3,x1+3);write(‘сравн.’);
gotoxy(17,wherey);write(kol_sr_ins);
gotoxy(37,wherey);write(kol_sr_obm);
gotoxy(58,wherey);writeln(kol_sr_choose);
str(high(a)+1,s);box(1,19,80,24,1,15,double,s+’ элементов’);
gotoxy(4,20);write(‘Сортировка ‘,s,’ элементов по убыванию’);
gotoxy(4,21);write(‘Сортируются ‘,s,’ упорядоченных(по возрастанию) элементов’);
gotoxy(4,22);write(‘Сортируются ‘,s,’ неупорядоченных(случайных) элементов’);
textbackground(lightgray);
textcolor(red);gotoxy(3,25);write(‘Esc — главное меню’);
end;
{*********************************************
Пример сортировки методом прямого включения
Дан массив записей, содержащий:
-имя студента;
-кол-во баллов (рейтинг).
Необходимо отсортировать данный массив по
убыванию  количества  баллов  у  студента.
*********************************************}
procedure example;
type
{rec — запись, содержащая:
name — имя студента;
num  — кол-во баллов (рейтинг).}
rec=record
name:string;
num:byte;
end;
var
{mas — массив записей rec}
mas:array[1..20] of rec;
{счетчики в циклах}
i,j:integer;
x:rec;
{переменные для подсчета количества сравнений и перемещений
во время сортировки}
k_sr,k_p:integer;
key:char;
begin
{переменные для подсчета количества сравнений и перемещений
во время сортировки}
k_sr:=0;k_p:=0;
randomize;
{Данный массив, содержащий имена студентов}
mas[1].name:=’Иван’;mas[2].name:=’Петр’;mas[3].name:=’Сидор’;
mas[4].name:=’Василий’;mas[5].name:=’Денис’;mas[6].name:=’Геннадий’;
mas[7].name:=’Борис’;mas[8].name:=’Марат’;mas[9].name:=’Казбек’;
mas[10].name:=’Алексей’;mas[11].name:=’Владимир’;mas[12].name:=’Сидор’;

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

Категория: Учебники