|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.10.2017, 15:33 | #1 |
Новичок
Джуниор
Регистрация: 22.10.2017
Сообщений: 2
|
написать комментарий к каждой строчке
program lab3;
const nmax=10; type matrix=array[0..nmax-1,0..nmax-1] of integer; var n:integer; a:matrix; procedure inputn(var n:integer); //Ввод размера матрицы begin {inputn} repeat writeln('Введите размер квадратной матрицы (1<=n<=10):'); readln(n); until n<=10; end; {inputn} procedure printM(a:matrix; n:integer); //Вывод матрицы на экран var i,j:integer; begin {printM} for i:=0 to n-1 do begin for j:=0 to n-1 do write(a[i,j]:4); writeln; end; end; {printM} procedure randommatrix(var a:matrix; n:integer); //Заполнение матрицы СЧ var i,j:integer; begin {randommatrix} randomize; for i:=0 to n-1 do for j:=0 to n-1 do a[i,j]:=random(sqr(n)-1)+1; end; {randommatrix} procedure Coordinates(k, n :integer; var i, j :integer); //Вычисление координат элемента в матрице,заполненной по схеме var m,p:integer; begin {Coordinates} m:=n div 2; if n mod 2 = 0 then if ((n*n)/2 > k) then begin i := n - 1 - k div m; if i mod 2 = 0 then j := n - 1 - k mod n else j := k mod n; end else begin i := k div m - n; if i mod 2 = 0 then j := n - 1 - k mod n else j := k mod n; end else begin if ((((n*n) div 2)+m) >= k) then begin i := n - 1 - k div (m + 1); if i mod 2 <> 0 then j := n - k mod (n+1) else j := k mod (n+1); end else begin i := (k - ((m + 1) * n)) div m; if i mod 2 <> 0 then begin p:=k mod m; if p <> 0 then j := m + p else j:= n-1; end else begin p:=k mod m; if p <> 0 then j := n - p else j:=m+1; end; end; end; end; {Coordinates} procedure fillmatrix(var a: matrix ; n:integer); var i,j,k:integer; begin {fillmatrix} for k:=0 to n*n-1 do begin coordinates(k,n,i,j); //writeln(' ',k:3,i:3,j:3); a[i,j]:=k; end; end; {fillmatrix} procedure InsertSortEnd(var a: matrix; n:integer); //Сортировка вставками с конца массива var i, j, i1, j1, i2, j2, m, buf, k: integer; begin {InsertSortEnd} for k := n*n-2 downto 0 do begin coordinates(k,n,i,j); buf := a[i,j]; m := k + 1; coordinates(m,n,i1,j1); while (m <= (n*n-1)) and (a[i1,j1] < buf) do begin coordinates(m-1,n,i2,j2); //writeln(i2,' ',j2); a[i2,j2] := a[i1,j1]; m := m + 1; coordinates(m,n,i1,j1); end; //writeln(i2,' ',j2); a[i2,j2] := buf; end; end; {InsertSortEnd} begin inputn(n); //writeln('Заполненная по схеме матрица имеет вид:'); //fillmatrix(a,n); //printM(a,n); randommatrix(a,n); writeln('Исходная матрица имеет вид:'); printM(a,n); InsertSortEnd(a,n); writeln('Отсортированная матрица имеет вид:'); printM(a,n); end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пожалуйста,помогите написать коментарий к каждой строчке. | ivan6799 | Помощь студентам | 1 | 15.10.2016 19:15 |
Помогите написать программы на С++. Желательно к каждой команде комментарий. Каждое задание отдельная программа | vadres | Помощь студентам | 0 | 19.12.2013 18:46 |
Как автоматически применить формулу к каждой строчке диапазона | lioon | Microsoft Office Excel | 3 | 24.10.2013 13:40 |
Коментарии к каждой строчке | ganster | Общие вопросы C/C++ | 10 | 09.07.2012 22:42 |
К каждой строчке добавляется фраза | Dominatorsha | Общие вопросы Delphi | 1 | 30.05.2011 16:21 |