Сколько раз в матрице встречается заданное число

Задача: 

В двумерном массиве целых чисел определить, сколько раз в нем встречается элемент со значением X.

Программа на языке Паскаль: 

const m = 10;
      n = 5;
var
    arr: array[1..n,1..m] of integer;
    x: integer;
    i,j,k: byte;
 
begin
    randomize;
    writeln('Random matrix:');
    for i:=1 to n do begin
        for j:=1 to m do begin
            arr[i,j] := -10 + random(21); // -10..10
            write(arr[i,j]:4)
        end;
        writeln
    end;
    write('Investigated the number: ');
    readln(x);
 
    k := 0;
    for i:=1 to n do
        for j:=1 to m do
            if arr[i,j] = x then
                k := k + 1;
    writeln('The number is found in the array ', k, ' times');
 
readln;
end.

Комментарии

упорядочить массив таким

упорядочить массив таким образом, чтобы вначале размещались четные цифры в порядке возрастания их значений, а затем нечетные - в порядке убывания их значений.

1) Упорядочить массив так

1) Упорядочить массив так хитро очень сложная задача.

2) Но можно сначала извлечь из исходного массива все четные числа во второй массив и все нечетные - в третий. Затем упорядочить полученные массивы. После чего "перезаполнить" исходный массив, записав туда элементы сначала второго массива, а затем третьего.

Вариант 2) подойдет?

Двумерный массив NxN

Двумерный массив NxN заполнить случайными символами английского алфавита (заглавные). Вывести на экран сколько раз встречается каждый символ.

первую часть задания сделала не могу сообразить как сделать вторую

Думаю вот так

Var 
  a: array [1..30,1..30] Of char;
  c: array [65..90] Of char;
  I,j,n,k,m,s: Byte;
Begin
  //65-90
  randomize;
  writeln('Введите количество строк и столбцов в матрице:');
  read(n,m);
 
 
 
  For I:=1 To n Do
    Begin
      For j:=1 To m Do
      begin
      a[I,j]:=char(65+random(25));
        write(a[I,j],' ');
        end;
      writeln;
    End;
//сама матрица
 
  For k:=65 To 90 Do
    Begin
      s := 0;
      c[k] := char(k);
      Repeat
        For I:=1 To n Do
          For j:=1 To m Do
            If a[I,j]=c[k] Then
              s := s+1;
      Until (I=n) And (j=m);
      If s<>0 Then
        write(c[k],'-',s,' ');
    End;
//кол-во каждого символа в ней
End.

Ну вроде так: Var a: array

Ну вроде так:

Var 
  a: array [1..30,1..30] Of char;
  c: array [65..90] Of char;
  I,j,n,k,m,s: Byte;
Begin
  //65-90
  randomize;
  writeln('Введите количество строк и столбцов в матрице:');
  read(n,m);
 
 
  For I:=1 To n Do
    For j:=1 To m Do
      a[I,j] := char(65+random(25));
 
  For I:=1 To n Do
    Begin
      For j:=1 To m Do
        write(a[I,j],' ');
      writeln;
    End;
 
  For k:=65 To 90 Do
    Begin
      s := 0;
      c[k] := char(k);
      Repeat
        For I:=1 To n Do
          For j:=1 To m Do
            If a[I,j]=c[k] Then
              s := s+1;
      Until (I=n) And (j=m);
      If s<>0 Then
        write(c[k],'-',s,' ');
    End;
End.
<pascal>