ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Пример 3.5. В массиве A(N, N) вычислить две суммы элементов, расположенныхНиже и выше главной диагонали.
Тест Алгоритмический язык алг Две суммы (арг цел N, арг вещ таб A[1:N, 1:N], рез вещ S1, S2) надо | S1 = сумма элементов ниже главной диагонали | S2 = сумма элементов выше главной диагонали Блок-схема (фрагмент) нач цел i, j S1:=0; S2:=0 нц для i от 2 до N | циклы по элементам, расположенным нц для j от 1 до i-1 | ниже главной диагонали S1:=S1 + A[i, j] Кц Кц нц для i от 1 до N-1 | циклы по элементам, расположенным нц для j от i+1 до N | выше главной диагонали S2:=S2 + A[i, j] Кц Кц Кон Turbo Pascal Program TwoSums; Uses Crt; Var A: Array [1..10, 1..10] of Real; S1, S2: Real; {S1, S2 - суммы элементов, расположенных ниже и выше главной диагонали, соответственно} 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; WriteLn; ClrScr; 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 Under; Begin {описание процедуры суммирования элементов, } S1:= 0; {расположенных ниже главной диагонали } For i:= 2 to N do For j:= 1 to i-1 do S1:= S1 + A[i, j]; WriteLn('О т в е т:'); WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S1:5:1); End; {--------------------------------------------} Procedure Over; Begin {описание процедуры суммирования элементов,} S2:= 0; {расположенных выше главной диагонали} For i:= 1 to N-1 do For j:= i+1 to N do S2:= S2 + A[i, j]; WriteLn('Сумма элементов, лежащих выше главной диагонали =', S2:5:1); ReadLn; End; {--------------------------------------------} BEGIN InputOutput; {Вызов процедуры ввода-вывода матрицы } Under; {Вычисление суммы элементов, лежащих ниже главной диагонали} Over; {Вычисление суммы элементов, лежащих выше главной диагонали } END. Не нашли, что искали? Воспользуйтесь поиском:
|