TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

[ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 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]
1 2 3 1 2 1 3 1 3 1 2 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.
 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz