Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа ДЛЯ




Язык Схемы вложенных циклов типа для
Алгоритмический язык нц дляi отA1 доB1 тело внешнего цикла ...... нц дляj отA2 доB2 тело внутреннего цикла ...... кц ...... Кц
Pascal Fori:= A1 toB1 do begin...... Forj:= A2 toB2 do begin ...... end; ...... end;

Вложенные циклы типа для особенно часто используются при обработке матриц

(двумерных массивов, прямоугольных таблиц) и векторов (одномерных массивов,

линейных таблиц):

Пример 3.1. Вычислить суммы элементов столбцов заданной матрицы A(N, M).

Тест

Данные Результат
N=2 M=2 S=(6,74)
     

Алгоритмический язык

алг Суммы столбцов (арг цел N, M, арг вещ таб A[1:N, 1:M], рез вещ таб S[1:M])

дано | N>0, M>0

нач цел i, j

нц для j от 1 до M | цикл по столбцам

S[j]:=0

нц для i от 1 до N | цикл по элементам

S[j]:=S[j] + A[i, j] |текущего столбца

кц Блок-схема

кц

Кон

Исполнение алгоритма

J I S[i]
1   2 S1=0 S1=0+2=2 S1=2+4=6
2   2 S2=0 S2=0+1=1 S2=1+3=4

Turbo Pascal

Program SumColumn;

Uses Crt;

Var A: Array [1..10, 1..10] of Real;

N, M, i, j: Integer;

S: Array [1..10] of Real;

{--------------------------------------------}

Procedure InputOutput;

Begin {описание процедуры ввода-вывода исходных данных}

ClrScr;

Write('Количество строк - '); ReadLn(N);

Write('Количество столбцов - '); ReadLn(M);

For i:= 1 to N do {Ввод элементов матрицы}

For j:= 1 to M 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 M do Write(A[i, j]: 5: 1); {вывод i-ой строки}

WriteLn {перенос курсора на начало следующей строки}

end; WriteLn

End; { of InputOutput }

{--------------------------------------------}

Procedure SumCol;

Begin {описание процедуры вычисления сумм элементов столбцов}

For j:= 1 to M do {цикл по столбцам матрицы}

begin

S[j]:= 0; {обнуление суммы элементов j-го столбца}

For i:= 1 to n do S[j]:= S[j] + A[i, j] {накопление суммы}

end;

End; { of SumCol }

{--------------------------------------------}

Procedure OutResult; {описание процедуры вывода результатов}

Begin

Write('О т в е т: Суммы элементов столбцов равны ');

For j:= 1 to M do Write(S[j]: 5: 1); WriteLn; ReadLn

End; { of OutResult }

{--------------------------------------------}

BEGIN

InputOutput; {вызов процедуры ввода-вывода исходных данных }

SumCol; {вызов процедуры вычисления сумм }

OutResult; {вызов процедуры вывода результатов}

END.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных