ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Пример 6.4. Дана матрица A(N, N). Если хотя бы один элемент строки матрицыОтрицателен, то все элементы этой строки заменить нулями. Тест
Алгоритмический язык (в этом алгоритме отражены процессы ввода исходных данных и вывода результатов) алг Модификация(арг цел 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] Кц Кц Кон Исполнение алгоритма Обозначение проверяемого условия: (j<=N) и (Flag = "Нет")=> (1)
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. Не нашли, что искали? Воспользуйтесь поиском:
|