Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Процедуры - подпрограммы


Автор: ANTON12 28.12.2006, 06:47
   Ввести матрицу А(5, 5). Элементы главной диагонали расположить в порядке убывания в тех же ячейках. Новую матрицу вывести на печать с заголовком «Новая матрица». Все вычисления оформить процедурами. Для В(7, 7) аналогично

Помогите в написании заранее блпгодарю!!!

Автор: PrinceMike 30.12.2006, 17:39
Код

program lab;
uses crt;
type matr1=array[1..5,1..5] of real;
     matr2=array[1..7,1..7] of real;
var
a:matr1;
b:matr2;
i,j,k:integer;
f:text;
Procedure sort1(var x:matr1; n:integer);
var z:array[1..5] of real;
i,j,k:integer;
buf:real;
begin
for i:=1 to n do
  z[i] := x[i,i];
for i:=1 to n do
    for j:=1 to n-i do
      if z[j]>z[j+1] then
    begin
      buf := z[j];
      z[j] := z[j+1];
      z[j+1] := buf;
    end;
begin
for i:=1 to n do
x[i,i]:=z[i];
end;
end;
Procedure sort2(var x:matr2; n:integer);
var z:array[1..7] of real;
i,j,k:integer;
buf:real;
begin
for i:=1 to n do
  z[i] := x[i,i];
for i:=1 to n do
    for j:=1 to n-i do
      if z[j]>z[j+1] then
    begin
      buf := z[j];
      z[j] := z[j+1];
      z[j+1] := buf;
    end;
begin
for i:=1 to n do
x[i,i]:=z[i];
end;
end;
begin
clrscr ;
assign(f,'otv.pas');rewrite(f);
Randomize;
   for i:=1 to 5 do
   for j:=1 to 5 do
   a[i,j]:=random*random(100);
     begin
     sort1(a,5);
     end;
     write(f,'Ќ®ў п Њ ваЁж  A: ');
     writeln(f);
    for i:=1 to 5 do
begin
for j:=1 to 5 do
 write(f,a[i,j]:6:2,' ');
 writeln(f);
 end;
Randomize;
for i:=1 to 7 do
for j:=1 to 7 do
b[i,j]:=random*random(100);
begin
sort2(b,7);
end;
write(f,'Ќ®ў п Њ ваЁж  B: ');
writeln(f);
for i:=1 to 7 do
begin
for j:=1 to 7 do
 write(f,b[i,j]:6:2,' ');
 writeln(f);
 end;
close(f);
 end.



Вот считает ;)
1) абракодабру в скобках оставь! Когда засунешь в блокнот и сделаешь пас, то все будет по-русски
2)сделал 2 мя процедурами, можно и одной но вообще ненавижу процедуры)
3) исходные данные не роспечатывал, но для наглядности можно и роспечатывать.. ну если захочешь подкоректируем)
Смотри и спрашивай если что  smile 

Автор: Zero 30.12.2006, 21:34
Цитата(PrinceMike @  30.12.2006,  17:39 Найти цитируемый пост)
но вообще ненавижу процедуры

Ну в отдельных случаях их можно заменить функциями... Или тебе вообще с подпрограммами не нравиться работать??? smile Если так, то придётся привыкать, в современных языках всё на них основано, и нагляднее смотриться.

Автор: PrinceMike 30.12.2006, 21:56
Подпрограммы в целом ;) у меня с ними часто ничего не работает  smile 
А без них длиннее, зато работает  smile 

Автор: ANTON12 3.1.2007, 13:36
ну давай подредуктируем

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)