[ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |
Тест
|
|
|
|
|
|
|
|
|
Школьный АЯ
(в этом алгоритме отражены процессы ввода исходных данных и вывода результатов ) алг Модификация(арг цел 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
[ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |