Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
RamonRa
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 2
1

Поиск числа х в двумерном массиве

30.10.2012, 02:07. Просмотров 990. Ответов 1
Метки нет (Все метки)

Здравствуйте, уважаемые профессионалы! Помогите пожалуйста решить такую задачку:

Элементами массива А[1..N] являются неубывающие массивы [1..M] целых чисел (т.е. получается двумерный массив N*M).Известно, что существует число Х, входящее во все массивы А[i]. Найти одно из таких чисел Х (желательно за M*N действий).

Процесс создания массива у меня сделать получлось, а вот с отбором начались проблемы

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses crt;
const N=3;
const M=3;
var
a,b:array[1..N,1..M] of integer;
i,j,x,k,z:integer;
begin
clrscr;
writeln('Massiv A raven');
For i:=1 to N do begin
                 for j:=1 to M do read(a[i,j]);
                 write;
                 end;
writeln('Massiv B raven');
For i:=1 to N do begin
                 for j:=1 to M do write(a[i,j],' ');
                 writeln;
                 end;
 
{Выполнение самой программы}
Буду благодарен любой помощи! Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 02:07
Ответы с готовыми решениями:

Поиск максимума в двумерном массиве
Рандомом задается двумерный целочисленный массив. Требуется: Найти...

Поиск чисел в двумерном массиве кратных введенным значениям A и B
Дан двухмерный массив целых чисел. В каждом его столбце найти количество...

Нахождение простого числа в двумерном массиве.
Доброго времени суток! Помогите написать условие нахождения простого числа в...

В двумерном массиве вывести числа с нечетными иедексами
Дан двумерный массив. с количеством элементов n. Вывести на печать только те...

Найти в двумерном массиве четные числа и поменять их на единицу
Найти в массиве четные числа и поменять их на единицу

1
Puporev
Модератор
55014 / 42308 / 29214
Регистрация: 18.05.2008
Сообщений: 99,972
30.10.2012, 10:00 2
Попробуйте так, с бинарным поиском.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
uses crt;
const nmax=10;
type mas=array[1..nmax] of integer;//массив
     mtr=array[1..nmax] of mas;//матрица=массив массивов
function Binar(a:mas;d,x:integer):integer; //процедура бинарнви поиском
                            //в отсортированном по неубыванию массиве
var l,s,r,k:integer;//лево, серелина, право и наличие
begin
l:=1;//левый край=1
r:=d; //правый край=длине массива
k:=0;//наличие элемента
while(l<=r)and(k=0) do
 begin
  s:=(l+r)div 2;//середина(примерно)
  if x>a[s] then r:=s-1
  else if x<a[s] then l:=s+1
  else k:=1;
 end;
Binar:=k;{0 или 1}
end;
 
var a:mtr;
    n,m,i,j,x,k:integer;
    f:boolean;
begin
repeat
write('Количество массивов от 2 до ',nmax,' n=');
read(n);
until n in [1..nmax];
repeat
write('Размер массивов от 2 до ',nmax,' m=');
read(m);
until m in [1..nmax];
writeln('Введите ',n,' неубывающих массивов, размером в ',m,' элементов, содкржащих одинаковое число:');
for i:=1 to n do
 begin
  read(a[i][1]);
  for j:=2 to m do
  repeat
   read(a[i][j]);
  until a[i][j]>=a[i][j-1];
 end;
clrscr; {вдруг криво ввели, выведем на чистый экран}
writeln('Полученные массивы:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i][j]:5);
  writeln;
 end;
f:=false;{будем искать первый, который есть во всех}
i:=1; {начнем с первого}
while(i<=m)and not f do
 begin
  x:=a[1][i];
  k:=1;
  for j:=2 to n do
  k:=k+Binar(a[j],m,x);
  if k=n then f:=true else i:=i+1;
 end;
write('Есть во всех массивах элемент=',x)
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 10:00

Поиск наибольшего числа в трехмерном массиве
Поиск наибольшего числа в трехмерном массиве Пусть массив Т имеет размерность...

Поиск двух одинаковых чисел в двумерном массиве
Здравствуйте, уважаемые форумчане. Помогите решить задачу (задачка у нас из...

Поиск нулей в двумерном массиве. Не могу найти ошибку в коде
Дан двумерный массив. Заполнен единицами и нулями. Например такой: 0 0 1 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru