Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 27
1

Сортировка матриц

26.04.2012, 17:44. Просмотров 315. Ответов 0
Метки нет (Все метки)

Помогите разобраться с программой, никак не пойму что она делает.
задание:Описать, разработать и запрограммировать два алгоритма сортировки по указанному методу: первый алгоритм - сортировка методом простых вставок, второй - сортировка методом простого выбора. Протестировать программу и выполнить экспериментальное сравнение разработанных алгоритмов сортировки, выявив зависимость среднего времени сортировки от числа сортируемых элементов.
размерность матрицы:50x50,по убыванию,каждого столбца

Pascal
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
uses
  Crt, Dos;
const
  Line = '-----------------------------------';
  Max_Value = 25;
type
  TMatr = Array[1..Max_Value, 1..Max_Value] of Integer;
var
  Matr: TMatr;
  Res: Real;
  Chr: Char;
 
function fGetTime: LongInt;
var
  Hr, Min, Sec, Sec_100: Word;
begin
  GetTime(Hr, Min, Sec, Sec_100);
  fGetTime:=LongInt(Hr)*3600 + LongInt(Min)*600 + Sec*100 + Sec_100;
end;
 
procedure ReadFromTxt(var Matr: TMatr);
const
  Direction = 'C:\File.txt';
var
  FileCh: Text;
  i, j: Byte;
begin
  Assign(FileCh, Direction);
  Reset(FileCh);
  for i:=1 to Max_Value do
    for j:=1 to Max_Value do
      read(FileCh, Matr[i, j]);
  Close(FileCh);
end;
 
procedure PrintMatrix(Matr: TMatr);
var
  i, j: Byte;
begin
  writeln('Матрица: ');
  for i:=1 to Max_Value do
  begin
    for j:=1 to Max_Value do
      write(Matr[i, j]:4);
    writeln;
  end;
end;
 
procedure QuickSort(var Matr: TMatr; var Res: Real);
var
  After, Before: LongInt;
  Temp: Integer;
  i, j, l: Byte;
begin
  Res:=0;
  Before:=fGetTime;
  for l:=1 to Max_Value do
    for i:=1 to Max_Value - 1 do
      for j:=i + 1 to Max_Value do
        if Matr[i, l] > Matr[j, l] then
        begin
          Temp:=Matr[i, l];
          Matr[i, l]:=Matr[j, l];
          Matr[j, l]:=Temp;
        end;
  After:=fGetTime;
  Res:=(After - Before);
end;
 
procedure SecondSort(var Matr: TMatr; var Res: Real);
var
  Before, After: LongInt;
  Temp: Integer;
  i, j, l: Byte;
begin
  Res:=0;
  Before:=fGetTime;
  for l:=1 to Max_Value do
    for i:=2 to Max_Value do
    begin
      Temp:=Matr[i, l];
      j:=i-1;
      while (j>=1) and (Matr[j, l]>Temp) do
      begin
        Matr[j+1, l]:=Matr[j, l];
        j:=j-1;
      end;
      Matr[j+1, l]:=Temp;
    end;
  After:=fGetTime;
  Res:=(After - Before) / 100;
end;
 
begin
  ClrScr;
  repeat
    writeln(Line);
    writeln('menu: ');
    writeln('1. c4itat matr ');
    writeln('2. vuvod matr ');
    writeln('3. vstavka sort ');
    writeln('4. vubor sort ');
    writeln('5. exit ');
    writeln(Line);
    repeat
      write('vvedu pynkt: ');
      readln(Chr);
      case Chr of
        '1': ReadFromTxt(Matr);
        '2': PrintMatrix(Matr);
        '3': begin
               SecondSort(Matr, Res);
               writeln('vrem9: ', Res:0:2);
             end;
        '4': begin
               QuickSort(Matr, Res);
               writeln('vrem9: ', Res:0:2);
             end;
        '5': Exit;
      end;
    until (Chr in ['1'..'4']);
  until (Chr = '5');
end.
Добавлено через 3 часа 10 минут
я просто не могу понять какой он должен мне выводить ответ..помоему программа ничего не меняет, и не засекает время
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2012, 17:44
Ответы с готовыми решениями:

Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере
транспонирование, умножение матриц, сложение матриц; B^3-A^T Реализовать в одной программере....

Даны 2 матрицы. Найти максимальные элементы матриц. Заменить их суммой четных элементов матриц
Даны 2 матрицы. Найти максимальные элементы матриц. Заменить их суммой четных элементов матриц ...

Сортировка матриц
Очень прошу, помогите, пожалуйста)буду очень благодарна... Задание: Упорядочить массив по...

Быстрая рекурсивная сортировка для матриц
Написал для массива. Как организовать сортировку для матриц?

__________________
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2012, 17:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Чтение матриц с внешнего файла, умножение матриц...
Вот не могу составить программу... Необходимо считать матрицы А и В с внешнего файла (input)....

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array ...

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента...

Сортировка Матриц
Дана действительная матрица А размерности. Каждый столбец содержит хотя бы один положительный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.