Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика алгоритмизации и программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
517.53 Кб
Скачать

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

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

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

END.

   QBasic

CLS

Input "Количество строк - ", n

Input "Количество столбцов - ", m

DIM A(N, M) 'Резервирование памяти для матрицы

FOR i = 1 TO N 'Ввод матрицы

  FOR j = 1 TO M

    PRINT "A(" ; i ; ", " ; j ; ") = " ; : INPUT A(i, j)

  NEXT j

NEXT i : PRINT

INPUT "P = " , P : INPUT "Q = " , Q

CLS : PRINT "Исходная матрица :"

FOR i = 1 TO N 'Вывод матрицы

  FOR j = 1 TO M

    PRINT A(i, j) ;

  NEXT j

  PRINT

NEXT i

FOR j = 1 TO M 'Замена строк

  Tmp=A(P,j):A(P,j)=A(Q,j):A(Q,j)=Tmp

NEXT j

PRINT : PRINT "Матрица-результат :"

FOR i = 1 TO N 'Вывод результата

  FOR j = 1 TO M

    PRINT A(i, j) ;

  NEXT j

  PRINT ' переход на новую строку

NEXT i

END

Результаты работы QBasic-программы   

Исходная матрица:  1 2 1  2 2 2  3 1 3  Матрица-результат:  3 1 3  2 2 2

1 2 1

 

 

Пример 3.4. Элементы заданного числового массива a1, a2, ..., aN упорядочить по возрастанию. Тест

 

 

Данные

Результат

N=4

A=(5, 2, 7, 1)

A=(1, 2, 5, 7)

 

Демонстрация

Начало формы

Конец формы

Школьный АЯ 

алг Возрастание(арг цел N, арг рез 

                вещ таб A[1:N])

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

  нц для i от 1 до N-1

    нц для j от i+1 до N

      ecли A[i] > A[j]

        то Tmp:=A[i]; A[i]:=A[j]; A[j]:=Tmp

      все

    кц

  кц

кон

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

i

j

A[i]>A[j]

Массив A

1

2

3

4

+

-

+

2, 5, 7, 1

 

1, 5, 7, 2

2

3

4

-

+

 

1, 2, 7, 5

3

4

+

1, 2, 5, 7

 

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

Turbo Pascal

Program Regulation;

  Uses Crt;

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

  Var A       : Mas;

      i, j, N : Integer;

      Tmp     : Real;

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

  Procedure Input; {описание процедуры ввода массива }

    Begin

      ClrScr;

      Write('Введите N = '); ReadLn(N);

      WriteLn('Введите элементы массива: ');

      For i := 1 to N do

        begin Write('A [ ' , i , ' ] = ');

              ReadLn(A[i])

        end;

    End; {of Input}

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

  Procedure Regulate; {описание процедуры упорядочения по возрастанию}

    Begin

      For i := 1 to N-1 do

        For j := i+1 to N do

          If A[i] > A[j] then

            begin Tmp:=A[i]; A[i]:=A[j]; A[j]:=Tmp

            end;

    End; {of Regulate}

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

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

    Begin

      WriteLn('Упорядоченный массив :');

      For i:=1 to N do Write( A[i] : 6 : 1);

      WriteLn; ReadLn

    End; {of Output}

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

BEGIN