Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 80 стр.

UptoLike

Составители: 

Var A : Array[1..10, 1..10] of Real;
N, i, j : Integer;
{-------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода матрицы}
Begin ClrScr;
Write(’Количество строк и столбцов – ’); ReadLn(N);
For i := 1 to N do
For j := 1 to N do
begin Write(’A[’ , i , ’, ’ , j , ’] = ’);
ReadLn(A[i, j])
end; ClrScr;
WriteLn(’ Исходная матрица :’); WriteLn;
For i := 1 to N do
begin
For j := 1 to N do Write(A[i, j] : 5 : 1);
WriteLn
end; WriteLn
End; { of InputOutput }
{-------------------------------------------}
Procedure Line(Var i : Integer); {описание процедуры
обработки}
Var Flag : Boolean; {строки
матрицы }
Begin
j := 1; Flag := FALSE;
While (j<=N) and not Flag do {цикл до первого
отрицательного}
If A[i, j]<0 then Flag:=TRUE else j:=j+1;
{элемента строки}
If Flag then {обнуление строки,
содержашей}
For j := 1 to N do A[i, j] := 0 {отрицательные
элементы }
End;
{-------------------------------------------}
Procedure OutRes; {описание процедуры вывода матрицы-результата}
Begin
WriteLn(’ Матрица-результат :’); WriteLn;
For i := 1 to N do
begin
For j := 1 to N do Write(A[i, j]:5:1);
WriteLn
end; ReadLn
End; { of OutRes }
{-------------------------------------------}
BEGIN
InputOutput; {вызов процедуры ввода-вывода матрицы}
For i := 1 to N do Line(i);{циклический вызов процедуры
обработки строк}
OutRes; {вызов процедуры вывода матрицы-результата}
END.
 Var A       : Array[1..10, 1..10] of Real;
     N, i, j : Integer;
{-------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода матрицы}
 Begin ClrScr;
   Write(’Количество строк и столбцов – ’); ReadLn(N);
   For i := 1 to N do
     For j := 1 to N do
       begin Write(’A[’ , i , ’, ’ , j , ’] = ’);
             ReadLn(A[i, j])
       end; ClrScr;
   WriteLn(’ Исходная матрица :’); WriteLn;
   For i := 1 to N do
     begin
       For j := 1 to N do Write(A[i, j] : 5 : 1);
       WriteLn
     end; WriteLn
 End; { of InputOutput }
{-------------------------------------------}
Procedure Line(Var i : Integer);          {описание процедуры
обработки}
 Var Flag : Boolean;                      {строки
матрицы               }
 Begin
   j := 1; Flag := FALSE;
   While (j<=N) and not Flag do            {цикл до первого
отрицательного}
     If A[i, j]<0 then Flag:=TRUE else j:=j+1;
{элемента строки}
   If Flag then                       {обнуление строки,
содержашей}
     For j := 1 to N do A[i, j] := 0 {отрицательные
элементы       }
End;
{-------------------------------------------}
Procedure OutRes; {описание процедуры вывода матрицы-результата}
 Begin
   WriteLn(’ Матрица-результат :’); WriteLn;
   For i := 1 to N do
     begin
       For j := 1 to N do Write(A[i, j]:5:1);
       WriteLn
     end; ReadLn
 End; { of OutRes }
{-------------------------------------------}
BEGIN
  InputOutput; {вызов процедуры ввода-вывода матрицы}
  For i := 1 to N do Line(i);{циклический вызов процедуры
обработки строк}
  OutRes;       {вызов процедуры вывода матрицы-результата}
END.