19+10БАЛЛОВ!!!!!!!!!!!!!!!!!!!!!! 1. Из массива размером n удалите все элементы, которые...

0 голосов
36 просмотров

19+10БАЛЛОВ!!!!!!!!!!!!!!!!!!!!!!
1. Из массива размером n удалите все элементы, которые встречаются более одного раза.
2. Пользователь вводит массив, предварительно указав его размер. Поменяйте местами максимальный и минимальный элементы массива.
3. Транспортируйте матрицу размером n×m (поменяйте местами строки и столбцы).


Информатика (837 баллов) | 36 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Код Pascal:


Первая программа:


Const
   N = 13;
Var
   A,B:array[1..N] of integer;
   i,j,m:integer;
   k:byte;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(N);
    Write(' ',A[i])
    End;
WriteLn;
Write('Уникальные элементы:');
m:=0;
For i:= 1 to N do
    Begin
    k:=1;
    For j:= 1 to N do
        if i<>j then
           if A[i]=A[j] then k:=0;
    if k=1 then
       Begin
       m:=m+1;
       B[m]:=A[i];
       End
    End;
For m:=1 to m do
    Begin
    A[m]:=B[m];
    Write(' ',A[m])
    End;
End.


Пример работы программы:

Исходный массив: 3 7 11 11 11 0 9 3 9 9 10 1 4
Уникальные элементы: 7 0 10 1 4



Вторая программа:

Var
   A:array[1..10000] of integer;
   n,Min,Max,B:integer;
Begin
Write('Введите размерность массива: ');ReadLn(n);
Write('Введите массив A(',n,'): ');
For n:= 1 to n do
    Read(A[n]);

Min:=1;
Max:=1;
For n:= 2 to n do
    Begin
    if A[n]    if A[n]>Max then Max:=n;
    End;
WriteLn('Min(A) = A[',Min,'] = ',A[Min]);
WriteLn('Max(A) = A[',Max,'] = ',A[Max]);

B:=A[Max];
A[Max]:=A[Min];
A[Min]:=B;

Write('A(',n,'):');
For n:= 1 to n do
    Write(' ',A[n])
End.


Пример работы программы:

Введите размерность массива: 7
Введите массив A(7): 1 3 4 6 7 5 2
Min(A) = A[1] = 1
Max(A) = A[5] = 7
A(7): 7 3 4 6 1 5 2




Третья программа:

Const
   n = 3;
   m = 4;
Var
   A:array[1..n,1..m] of integer;
   B:array[1..m,1..n] of integer;
   i,j:integer;
Begin
Randomize;
WriteLn('Исходная матрица:');
For i:= 1 to N do
    Begin
    For j:= 1 to M do
        Begin
        A[i,j]:=random(21)-10;
        Write(A[i,j]:3,' ')
        End;
    WriteLn;
    End;
WriteLn;
WriteLn('Транспонированная матрица:');
For i:= 1 to M do
    Begin
    For j:= 1 to N do
        Begin
        B[i,j]:=A[j,i];
        Write(B[i,j]:3,' ')
        End;
    WriteLn
    End;
End.


Пример работы программы:

Исходная матрица:
 10   3  10   1
 -4   9  -9   2
 -1   4   2   1

Транспонированная матрица:
 10  -4  -1
  3   9   4
 10  -9   2
  1   2   1

(34.0k баллов)