Главная

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

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

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

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

ТОР 5 статей:

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

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

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

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

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

КАТЕГОРИИ:






Пример 3.3. В заданной матрице A(N, M) поменять местами строки с номерами P и




Q

(1 <= P <= N, 1 <= Q <= N).

Тест

Данные Результат
N=3 M=3 P=1 Q=3

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

алг Поменять местами строки (арг цел N, M, арг цел P, Q, арг рез вещ таб А[1:N, 1:M])

нач цел j, вещ Tmp

нц для j от 1 до M | цикл по элементам строк матрицы

Tmp:=A[P, j]; A[P, j]:=A[Q, j]; A[Q, j]:=Tmp

Кц

Кон

Исполнение алгоритма Блок-схема (фрагмент)

j Tmp A[1,j] A[3,j]
3 1 3 1

Turbo Pascal

Program Exchange;

Uses Crt;

Type Mas = Array [1..10, 1..10] of Real;

Var A: Mas;

N, M, P, Q, i, j: Integer;

Tmp: Real;

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

Procedure InputOutput(Var A:Mas); {описание процедуры ввода-вывода}

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, '] =? ');

Read(A[i, j]);

end; WriteLn;

WriteLn('Номера строк, которые нужно поменять местами:');

Write('P = '); ReadLn(P); Write('Q = '); ReadLn(Q);

WriteLn;

ClrScr; WriteLn('Исходная матрица: ');

For i:= 1 to N do

begin

For j:= 1 to M do Write(A[i, j]: 5: 1);

WriteLn;

end; WriteLn

End; { of InputOutput}

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

Procedure Change(P, Q: Integer); {описание процедуры замены строк }

Begin

For j:= 1 to M do

begin Tmp:=A[P, j]; A[P, j]:=A[Q, j]; A[Q, j]:=Tmp end;

End; { of Change}

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

Procedure OutRes(Var A:Mas); {описание процедуры вывода результатов}

Begin

WriteLn('Матрица-результат:');

For i:= 1 to N do

begin

For j:= 1 to M do Write(A[i, j]: 5: 1);

WriteLn;

end; ReadLn;

End; { of OutRes}

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

BEGIN

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

Change(P, Q); {вызов процедуры замены строк }

OutRes(A); {вызов процедуры вывода результатов}

END.






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

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