Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Помогите пожалуйста с программой на Паскаль. Только без нейронки пожалуйста.

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

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

Не совсем понятно, в каком смысле "дан" - введен вручную с клавиатуры или же сгенерирован автоматически при помощи генератора случайных чисел.

Ладно, напишу оба варианта на всякий случай.

1) Ручной ввод массива:

123456789101112131415161718192021222324252627
 Program P2; 
uses crt; 
const m=3; 
      n=3; 
type massiv=array [1..m, 1..n] of real; 
var a: real; 
    i, j, k: integer; 
    mas: massiv; 
begin 
clrscr; 
k:=0; 
writeln ('Заполните массив числами, вводя из с клавиатуры. После ввода каждого из чисел нажимайте клавишу Enter. При вводе дробных чисел целую часть от дробной отделяйте точкой, а не запятой.'); 
for i:=1 to m do 
    for j:=1 to n do begin 
        write ('Введите следующий элемент массива (число): '); 
        readln (mas[i,j]); 
        end; 
write ('Массив заполнен. Теперь введите любое число: '); 
readln (a); 
for i:=1 to m do 
    for j:=1 to n do begin 
        if mas[i,j]=a then k:=k+1; 
    end; 
if k=0 then writeln ('В веденном массиве нет элементов, равных введенному числу.') else writeln ('Количество элементов в массиве, равных введенному числу составляет: ', k); 
write ('Программа завершена. Для выхода нажмите клавишу Enter.'); 
readkey; 
end. 

2) Массив генерируется автоматически:

12345678910111213141516171819202122232425262728293031
 Program P2; 
uses crt; 
const m=3; 
      n=3; 
type massiv=array [1..m, 1..n] of integer; 
var a, i, j, k: integer; 
    mas: massiv; 
begin 
clrscr; 
k:=0; 
randomize; 
for i:=1 to m do 
    for j:=1 to n do mas[i,j]:=random (101); 
writeln ('Был сгенерирован массив:'); 
for i:=1 to m do begin 
    for j:=1 to n do begin 
             write (mas[i,j], ' '); 
             end; 
        writeln (' '); 
        end; 
writeln (' '); 
write ('Введите с клавиатуры любое целое число, после чего нажмите клавишу Enter: '); 
readln (a); 
for i:=1 to m do 
    for j:=1 to n do begin 
        if mas[i,j]=a then k:=k+1; 
    end; 
if k=0 then writeln ('В веденном массиве нет элементов, равных введенному числу.') else writeln ('Количество элементов в массиве, равных введенному числу составляет: ', k); 
write ('Программа завершена. Для выхода нажмите клавишу Enter.'); 
readkey; 
end. 
Аватар пользователя
Высший разум
7мес

—-—

Аватар пользователя
Просветленный
7мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 program CountElementsIn2DArray; 
 
uses crt; 
 
const 
  MAX_ROWS = 10; // Максимальное количество строк 
  MAX_COLS = 10; // Максимальное количество столбцов 
 
var 
  arr: array[1..MAX_ROWS, 1..MAX_COLS] of Integer; // Двумерный массив 
  rows, cols: Integer; // Количество строк и столбцов 
  a, count: Integer; // Заданное число и счетчик 
 
begin 
  clrscr; 
 
  // Ввод количества строк и столбцов 
  Write('Введите количество строк (макс ', MAX_ROWS, '): '); 
  ReadLn(rows); 
  Write('Введите количество столбцов (макс ', MAX_COLS, '): '); 
  ReadLn(cols); 
 
  // Ввод элементов массива 
  WriteLn('Введите элементы массива:'); 
  for var i := 1 to rows do 
    for var j := 1 to cols do 
    begin 
      Write('arr[', i, '][', j, ']: '); 
      ReadLn(arr[i, j]); 
    end; 
 
  // Ввод искомого числа 
  Write('Введите число a: '); 
  ReadLn(a); 
 
  // Подсчет элементов, равных a 
  count := 0; 
  for var i := 1 to rows do 
    for var j := 1 to cols do 
      if arr[i, j] = a then 
        Inc(count); 
 
  // Вывод результата 
  WriteLn('Количество элементов, равных ', a, ': ', count); 
 
  ReadLn; // Ожидание нажатия клавиши 
end.  
Аватар пользователя
Знаток
7мес

const
m = 10;

var
a, i, j, k: integer;
c: array[1..m, 1..m] of integer;

begin
randomize;
writeln('Исходный массив:');
for i := 1 to m do
begin
for j := 1 to m do
begin
c[i, j] := 19 - random(29);
write(c[i, j]:4)
end;
writeln
end;
write('a = ');
readln(a);
k := 0;
writeln('Элементы, равные ', a, ':');
for i := 1 to m do
for j := 1 to m do
if c[i, j] = a then
begin
write('[',i:2, ', ', j:2, '] ');
inc(k)
end;
if k > 0 then
begin
writeln;
write('их количество: ', k)
end
else write('не найдены')
end.
подходит?