Изучение команды режима OPTIONS (до ENVIROMENT) среды Turbo Pascal. Правила работы с переменными типа массив языка программирования Pascal (Отчет по лабораторной работе № 15)

Страницы работы

Содержание работы

Министерство образования Республики Беларусь

Учреждение образования «Гомельский государственный университет имени

Франциска Скорины»

Физический факультет

Кафедра радиофизики и электроники

Отчет

по лабораторной работе № 15

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СИСТЕМЕ

TURBO PASCAL.

РАБОТА С ГЛАВНЫМ МЕНЮ СИСТЕМЫ.

ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ МАССИВОВ.

МЕТОДЫ СОРТИРОВКИ

Выполнил

студент группы Ф-11                                                                 В. Н. Карась

Проверил

доцент кафедры общей физики                                                В. В. Свиридова

Гомель

2008

Цель: Изучить команды режима OPTIONS (до ENVIROMENT) среды Turbo Pascal версии 7.0.  Усвоить правила работы с переменными типа массив языка программирования Pascal. Изучить методы сортировки. Приобрести дальнейшие навыки по отладке программ.

Задание: Отсортировать массив всеми известными методами сортировки. Построить таблицу анализа скорости и количества сравнений методов

program lab_15;

uses crt;

var

 buf,i,n,j,d:integer;

 switch: boolean;

 k:char;

 a,b:array [1..20] of integer;

 schetchik: array [1..4] of byte;

 skorost: array [1..4] of real;

begin

clrscr;

writeln('введите число элементов массива <=20');

readln(n);

writeln('введите элементы массива');

for i:=1 to n do

readln(b[i]);

writeln('сортировка по неубыванию? (y/n)');

readln(k);

 schetchik[1]:=0;

 for i:=1 to n do

 a[i]:=b[i];

 if k='y' then

  repeat

   schetchik[1]:=schetchik[1]+1;

   switch:=false;

   for i:=1 to n-1 do

   if a[i]>a[i+1] then

    begin

      switch:=true;

      buf:=a[i];

      a[i]:=a[i+1];

      a[i+1]:=buf;

    end;

  until switch=false;

 if k='n' then

  repeat

   schetchik[1]:=schetchik[1]+1;

   switch:=false;

   for i:=1 to n-1 do

   if a[i]<a[i+1] then

    begin

      switch:=true;

      buf:=a[i];

      a[i]:=a[i+1];

      a[i+1]:=buf;

    end;

  until switch=false;

 schetchik[2]:=0;

 for i:=1 to n do

 a[i]:=b[i];

 if k='y' then

 for j:=1 to n-1 do

  for i:=1 to n-j do

  begin

   schetchik[2]:=schetchik[2]+1;

   if a[i]>a[i+1] then

    begin

     buf:=a[i];

     a[i]:=a[i+1];

     a[i+1]:=buf;

    end;

  end;

 if k='n' then

 for j:=1 to n-1 do

  for i:=1 to n-j do

  begin

   schetchik[2]:=schetchik[2]+1;

   if a[i]<a[i+1] then

    begin

     buf:=a[i];

     a[i]:=a[i+1];

     a[i+1]:=buf;

    end;

  end;

 schetchik[3]:=0;

 for i:=1 to n do

 a[i]:=b[i];

 if k='y' then

  for j:=2 to n do

   begin

    d:=a[j];

    i:=j-1;

    while d<a[i] do

     begin

      schetchik[3]:=schetchik[3]+1;

      a[i+1]:=a[i];

      i:=i-1;

     end;

    a[i+1]:=d;

   end;

 if k='n' then

  for j:=2 to n do

   begin

    d:=a[j];

    i:=j-1;

    while d>a[i] do

     begin

      schetchik[3]:=schetchik[3]+1;

      a[i+1]:=a[i];

      i:=i-1;

     end;

    a[i+1]:=d;

   end;

 schetchik[4]:=0;

 for i:=1 to n do

 a[i]:=b[i];

 if k='y' then

  for i:=1 to n-1 do

  for j:=1 to n-1 do

  begin

   schetchik[4]:=schetchik[4]+1;

   if a[j]>a[j+1] then

   begin

      buf:=a[j];

      a[j]:=a[j+1];

      a[j+1]:=buf;

   end;

  end;

 if k='n' then

 for i:=1 to n-1 do

  for j:=1 to n-1 do

  begin

   schetchik[4]:=schetchik[4]+1;

   if a[j]<a[j+1] then

   begin

      buf:=a[j];

      a[j]:=a[j+1];

      a[j+1]:=buf;

   end;

  end;

  for i:=1 to 4 do

  skorost[i]:=n/schetchik[i];

writeln('отсортированный массив:');

for i:=1 to n do

write(a[i],' ');

writeln;

writeln(' ':38,'количество сравнений', ' ':5, 'скорость');

writeln('методом попарного сравнения', ' ':20, schetchik[1], ' ':17, skorost[1]:2:2);

writeln('методом простого обмена', ' ':24, schetchik[2], ' ':17, skorost[2]:2:2);

writeln('методом вставки', ' ':32, schetchik[3], ' ':17, skorost[3]:2:2);

writeln('простым методом попарного сравнения',

        ' ':12, schetchik[4], ' ':17, skorost[4]:2:2);

readln;

end.

Похожие материалы

Информация о работе