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

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

mas[13].name:=’Виталий’;mas[14].name:=’Александр’;mas[15].name:=’Михаил’;
mas[16].name:=’Евгений’;mas[17].name:=’Артур’;mas[18].name:=’Руслан’;
mas[19].name:=’Мурат’;mas[20].name:=’Аркадий’;
{задание количества баллов у студента случайным образом}
for i:=1 to 20 do
mas[i].num:=random(19)+1;
{вывод пояснений}
getshadow;
textbackground(lightgray);
textcolor(red);gotoxy(15,1);write(‘Пример сортировки по убыванию методом прямого включения’);
textbackground(lightgray);
textcolor(red); gotoxy(3,25);  write(‘Esc — главное меню’);
textcolor(red); gotoxy(65,25); write(‘F1 — задание’);
box(58,0,80,25,1,15,double,’Статистика’);
textcolor(lightmagenta);
gotoxy(59,3); write(‘ Сортировка  методом ‘);
gotoxy(61,4); write(‘прямого включения.’);
textcolor(white); gotoxy(59,5); write(‘———————‘);
box(31,0,57,25,1,15,double,’После сортировки’);
textcolor(lightmagenta); gotoxy(32,3); write(‘ N   Имя           балл’);
box(1,0,30,25,1,15,double,’До сортировки’);
textcolor(lightmagenta); gotoxy(3,3);  write(‘N   Имя              балл’);
{вывод на экран исходного массива}
for i:=1 to 20 do
begin
textcolor(lightcyan); gotoxy(3,i+3);  write(i);
textcolor(yellow);    gotoxy(7,i+3);  write(mas[i].name);
textcolor(lightred);  gotoxy(25,i+3); writeln(mas[i].num);
end;
{сортировка по убыванию количества баллов}
for i := 2 to 20 do
begin
x := mas[i];
for j := i — 1 downto 1 do
begin
{k_sr — счетчик количества сравнений}
k_sr:= k_sr+1;
if x.num > mas[j].num then
begin
{k_p — счетчик количества перемещений}
k_p:=k_p+1;
{обмена содержимым элементов массива mas[j+1] и mas[j]
с помощью переменной x}
mas[j + 1] := mas[j];
mas[j]:=x;
end;
end;
end;

{вывод на экран отсортированного массива}
for i:=1 to 20 do
begin
textcolor(lightcyan); gotoxy(33,i+3);  write(i);
textcolor(yellow);    gotoxy(37,i+3);  write(mas[i].name);
textcolor(lightred);  gotoxy(52,i+3);  writeln(mas[i].num);
end;
{вывод на экран количества сравнений и перестановок
в массиве, осуществленных во время сортировки}
textcolor(lightgreen); gotoxy(61,6); write(‘Сравнений:’);
textcolor(lightgray);  gotoxy(75,6); write(k_sr);
textcolor(lightgreen); gotoxy(61,8); write(‘Перестановок:’);
textcolor(lightgray);  gotoxy(75,8); write(k_p);
repeat
key:=’ ‘;   if keypressed then  key:=readkey;
case key of
{#59 — код клавиши F1}
#59:begin
{вывод окна с заданием для контрольного примера}
{putshadow+box — вывод окна с тенью}
putshadow(15,7,65,15);box(15,7,65,15,lightgray,0,double,’Задание’);
textcolor(red);
gotoxy(21,9);  write(‘Дан список, содержащий фамилии студентов’);
gotoxy(21,10); write(‘и их рейтинговые  баллы. Необходимо от-‘);
gotoxy(21,11); write(‘сортировать данный список  по убыванию ‘);
gotoxy(21,12); write(‘рейтинговых баллов.’);
textcolor(yellow);gotoxy(50,15);write(‘Enter — отмена’);
end;
{#13 — код клавиши Enter}
#13:getshadow;
end;
{#27 — код клавиши Esc}
until key=#27;
end;

Страницы: 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

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