| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |
Тест
|
|
|
|
|
|
|
|
|
|
![]() |
![]() |
| Школьный АЯ
(в этом алгоритме отражены процессы ввода исходных данных и вывода результатов ) алг Модификация(арг цел N, арг рез вещ таб A[1:N, 1:N]) дано | N>0 надо | элементы строк, содержащих отрица- | тельные числа, заменены на нули нач цел i, j, лит Flag ввод N нц для i от 1 до N нц для j от 1 до N ввод A[i,j] кц кц нц для i от 1 до N | цикл по строкам j := 1; Flag := "Нет" нц пока (j<=N) и (Flag = "Нет") |цикл до если A[i, j]<0 |первого отрицат. то Flag := "Да" |элемента строки иначе j:=j+1 все кц если Flag = "Да" |обнуление строки то нц для j от 1 до N A[i, j]:=0 кц все кц нц для i от 1 до N нц для j от 1 до N вывод A[i,j] кц кц кон |
![]() |
|
|
|
|
|
|
|
|
|
|
"Да" |
2 1 2 3 |
+ -(кц) |
+ |
|
A[1,1]=0 A[1,2]=0 A[1,3]=0 |
|
|
|
2 3 4 |
+ + -(кц) |
- - |
|
|
|
|
"Да" |
1 2 3 |
-(кц) |
|
|
A[3,2]=0 A[3,3]=0 |
Turbo Pascal
Program Modify;
Uses Crt;
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.
QBasic
CLS : INPUT "Количество строк и столбцов - ", N
DIM A(N, N)
FOR i = 1 TO N ’ввод матрицы
FOR j = 1 TO N
PRINT "A(" ; i ; ", " ; j ; ") = " ;
INPUT A(i, j)
NEXT j
NEXT i : CLS
PRINT "Исходная матрица :" : PRINT FOR i = 1 TO N ’вывод матрицы FOR j = 1 TO N PRINT A(i, j) ; NEXT j PRINT NEXT i : PRINT
FOR i = 1 TO N ’цикл по строкам матрицы j = 1 : Flag=0 WHILE (j <= N) AND (Flag = 0) ’цикл до первого отрицательного IF A(i, j) < 0 THEN Flag = 1 ELSE j = j + 1 ’элемента строки WEND
IF Flag = 1 THEN ’обнуление строки, содержащей FOR j = 1 TO N ’отрицательные элементы A(i, j) = 0 NEXT j END IF NEXT i
PRINT "Матрица-результат :" : PRINT ’вывод матрицы-результата FOR i = 1 TO N FOR j = 1 TO N PRINT A(i, j) ; NEXT j : PRINT NEXT i END
| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |