Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2016, 20:46   #1
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию Сравнение методов упорядочения данных(Pascal)

Разработать диалоговую программную систему, позволяющую оценить время выполнения различных алгоритмов упорядочения числовых массивов. Алгоритмы сортировки оформить в виде подпрограмм.
Вот мой набросок
Код:
program sravnenie;
const
Nmax=100000;
Np=10;
Smax=6;
maststr:array[1..smax] of string=('input','bubble','insert','choice','output','exit');

type
Tvector=array[1..Nmax] of word;
Tstring=array[1..Smax] of string;
Tindex = 1..Nmax;


function menu(s: TString; ns: word): word;
var
  i: word;
  k: word;
begin
  for i := 1 to ns do
    writeln(s[i]);
  writeln('Введите номер пункта');
  readln(k);
  result := k;
end;







procedure input(var a:Tvector; n:word);
var
na:word;
c, d, e: Tvector;
begin
randomize;
writeln('Введите количество элементов массива');
readln(na);
for i:=1 to na do
a[i]:=random(10000);
writeln('unsort.arr.');
for i:=1 to Np do
write(a[i]:8);
writeln;
c[i]:=a[i];
d[i]:=a[i];
e[i]:=a[i];
end;


procedure bubble(var c:Tvector; n:word);
var
z:Tvector;
k:integer;
flag:boolean;
b:word;
begin
 t1 := Milliseconds;
flag:=false;
for k:=1 to n-1 do
if c[k]>c[k+1] then
b:=c[k+1];
c[k+1]:=c[k];
c[k]:=b;
flag:=true;
N:=N-1;
t2 := Milliseconds;
  time_bubble := t2 - t1;
 writeln('После сортировки пузырьком: ');
  for i:=1 to N do
    write(c[i],' ');
  writeln; 
  z[i]:=c[i];
end;



procedure insert(var d:Tvector; n:word);
var
i,R,k:word;
z:Tvector;
i:word;
na:word;
begin
t3 := Milliseconds;
 for i:=2 to na do
 if d[i-1] > d[i] then
 begin
 R:=d[i];
 k:=k-1;
 while (k > 0)and(a[k] > R) do
 begin
 d[k+1]:=d[k];
 k:=k-1;
 end;
 d[k+1]:=R;
 t4 := Milliseconds;
  time_insert := t4 - t3;
 end;
 writeln('После сортировки вставками: ');
  for i:=1 to N do
    write(d[i],' ');
  writeln; 
  z[i]:=d[i];
 end;



procedure choice(var e: Tvector; n: word);
var
k, j, index: word;
min: word;
z: Tvector;
begin
t5 := Milliseconds;
for k:=1 to n-1 do
begin
min:=e[k];
index:=k;
for j:=k+1 to n do
if e[j]<min then
begin
min:=e[j];
index:=j;
end;
e[index]:=e[k];
e[k]:=min;
t6 := Milliseconds;
time_choice := t6 - t5;
end;
writeln('После сортировки выбором: ');
  for i:=1 to N do
    write(e[i],' ');
  writeln; 
  z[i]:=e[i];
end;


procedure output(var a, z:Tvector; i: word);
var
na:word;
time_choice, time_insert, time_bubble: real;
 begin
writeln('unsort_arr:');
for i:=1 to Np do
write(a[i]:8);
writeln;


  
  
  case t_Sort of
    1: begin
    writeln(bubble[2]);
    writeln('Время выполнения ', time_bubble, ' ms');
    end;
    2: begin
    writeln(insert[3]);
    writeln('Время выполнения ', time_insert, ' ms');
    end;
    3: begin
    writeln(choice[4]);
    writeln('Время выполнения ', time_choice, ' ms');
    end;
    5: begin
    writeln('Тип сортировки','  ','Время работы');
    writeln('booble[2]','  ','(time_bubble):10''ms');
    writeln('insert[3]','  ','(time_insert):10''ms');
    writeln('choice[4]','  ','(time_choice):10''ms');
    end;
    
     writeln('sort_arr:');
  for i := 1 to Np do
    write(z[i]:8);
  writeln;
    
    
    
    
    
    
  var
k:word;
begin
if k<6 and k>1 then
repeat
k:=menu(maststr,Smax);
case k of
1: input(a, n);
2: bubble(c, n);
3: insert(d, n);
4: choice(e, n);
5: output;
end;
until k=Smax;
else
writeln('Неправильный номер');
end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось юля123321; 29.11.2016 в 21:01.
юля123321 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal.Реализация задачи (Имплементация методов класса) need help ^^ koudelka Паскаль, Turbo Pascal, PascalABC.NET 1 06.06.2014 22:12
C++ сравнение методов сортировки одномерного массива и таймер Bitter_Schokolade Помощь студентам 13 17.01.2014 22:32
Нужен программист со знанием Pascal и Чис методов Leon4eggg Фриланс 7 17.12.2010 15:45
Сравнение методов сортировок массивов. Семестровая работа Fantom.as Помощь студентам 2 16.12.2010 12:03