0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
1

Определить, есть ли в массиве столбец, в котором имеются одинаковые элементы

08.06.2010, 13:24. Показов 6801. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан двумерный массив размером n x m (которые вводятся с клавиатуры), заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2010, 13:24
Ответы с готовыми решениями:

Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы
Дан двумерный массив размером n x m, заполненный случайными числами. Определить, есть ли в данном...

Определить, есть ли в заданном массиве столбец, в котором имеются одинаковые элементы
Дан двумерный целочисленный массив в размерности n x m заполненой с клавиатурой числами опред. Есть...

Определить, есть ли в матрице столбец, в котором имеются одинаковые элементы
дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном...

Определить, есть ли в данной матрице столбец, в котором имеются одинаковые элементы
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном...

18
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 13:27 2
С использованием динамического распределения памяти?
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 14:04  [ТС] 3
С использованием динамического распределения памяти?
Честно говоря, не знаю. Я только 10 класс окончил, программированием 1 год занимаюсь!
Сделай, как знаешь. Заранее благодарю!
0
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 14:08 4
Просто если m и n вводятся с клавиатуры, то нельзя объявить матрицу размером mxn
Если память некритична - можно объявить огромный массив, а заполнять и использовать только кусок mxn
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 14:25  [ТС] 5
Можешь плиз сделать, как думаешь, а то мне к завтрашнему дню надо.((
0
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 14:26 6
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
var
i,j,n,m:integer;
result:boolean;
arr:array [1..50,1..50] of integer;
begin
result:=false;
write('pls enter n ');
readln(n);
write('pls enter m ');
readln(m);
for i:=0 to n-1 do
begin
    for j:=0 to m-1 do
    begin
        arr[i,j]:=random(10);
        write(arr[i,j],' ');
    end;
writeln;
for j:=0 to m-1 do
begin
    for i:=0 to n-1 do
        if a[i,j]=a[1,j] then result:=true;
    if result=true then
    begin
    writeln('matrix has a column with the same elements');
    j:=m;
    end;
end;
end.
проверь
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 14:56  [ТС] 7
Спасибо, ща посмотрю!

Добавлено через 16 минут
toxa92, вообщем, я нижимая Ctr+F9 и у меня выдается надпись - "matrix has a column with the same elements", и так на весь лист, я не могу ничего ввести. Не знаешь, в чем трабл?
0
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 15:03 8
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
var
i,j,n,m:integer;
result:boolean;
arr:array [1..50,1..50] of integer;
begin
result:=true;
write('pls enter n ');
readln(n);
write('pls enter m ');
readln(m);
for i:=0 to n-1 do
begin
        for j:=0 to m-1 do
        begin
                arr[i,j]:=random(10);
                write(arr[i,j],' ');
        end;
writeln;
for j:=0 to m-1 do
begin
        for i:=0 to n-1 do
                if (a[i,j]<>a[1,j])and(result=true) then result:=false;
        if result=true then
        begin
        writeln('matrix has a column with the same elements');
        j:=m;
        end;
end;
end.
Была бага. исправил кажется
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 15:20  [ТС] 9
toxa92, если не ошибаюсь, все равно что-то не так)
Надо вывести массив, который получился, и надо вывести ответ "есть" или "нет" такого столбца в массиве.
Я ввожу n и m, и ничего путного не выводит прога)
0
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 16:01 10
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
program qwe;
uses crt;
var
i,j,n,m:integer;
result:boolean;
arr:array [0..50,0..50] of integer;
begin
result:=true;
write('pls enter n ');
readln(n);
write('pls enter m ');
readln(m);
for i:=0 to n-1 do
begin
        for j:=0 to m-1 do
        begin
                arr[i,j]:=random(10);
                write(arr[i,j],' ');
        end;
writeln;
end;
for j:=0 to m-1 do
begin
        for i:=0 to n-1 do
                if (arr[i,j]<>arr[0,j])and(result=true) then result:=false;
        if result=true then
        begin
        writeln('matrix has a column with the same elements');
        j:=m;
        end;
end;
 
end.
У меня вот это работает
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 16:14  [ТС] 11
toxa92, так я не пойму, что она выдает в ответе?
0
167 / 94 / 11
Регистрация: 16.04.2010
Сообщений: 464
08.06.2010, 16:16 12
Он выводит матрицу. Если в ней есть столбец с одинаковыми элементами - выводит сообщение. иначе ничего не выводит
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 16:25  [ТС] 13
toxa92, ща, посмотрю ещё раз...

Добавлено через 4 минуты
toxa92, ввел n=1, m=2, у меня выдало, "matrix has a column with the same elements", но у программы произошло "зацикливание" что ли, или что-то в этом роде. Эта строка каждый на всю страницу, когда я нажимаю Ctr+F9 и ввожу n=1, m=2!
Хз!
0
7 / 6 / 5
Регистрация: 08.12.2009
Сообщений: 105
08.06.2010, 17:00 14
Pascal
1
if (arr[i,j]<>arr[0,j])and(result=true) then result:=false;
Вы сравниваете все элементы столбца с первым? а если например одинаковыми будут 4й и 10й элементы?

Добавлено через 1 минуту
зациливание происходит из за этого

Pascal
1
2
3
4
5
6
7
for i:=0 to n-1 do
                if a[i,j]=a[1,j] then result:=true;
        if result=true then
        begin
        writeln('matrix has a column with the same elements');
        j:=m;
        end;
вот это нужно делать после цикла
Pascal
1
2
if result=true then
        writeln('matrix has a column with the same elements');
Добавлено через 24 минуты
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
63
64
65
const n_max=10;
      m_max=10;
 
type  TArr=array [1..n_max,1..m_max] of integer;
 
function Check (const m:TArr; j,n:integer):boolean;
var i,k:integer;
    fl:boolean;
begin
  i:=0; k:=0; fl:=false;
  for i:=1 to n do
    begin
      for k:=1 to n do
        if (m[i,j]=m[k,j]) and (i<>k) then
          begin
            fl:=true;
            Exit;
          end;
    end;
  Check:=fl;
end;
 
var i,j,n,m:integer;
    mas:TArr;
    fl:boolean;
 
begin
 
  write('Input n: ');
  readln(n);
  while n>=n_max do
    begin
      writeln('Error! Repeat!');
      readln(n);
    end;
 
  write('Input m: ');
  readln(m);
  while m>=m_max do
    begin
      writeln('Error! Repeat!');
      readln(m);
    end;
 
  writeln('Array:');
  Randomize;
  for i:=1 to n do
    begin
      for j:=1 to m do
        begin
          mas[i,j]:=random(10);
          write(mas[i,j],' ');
        end;
      writeln;
    end;
 
  fl:=false;
 
  for j:=1 to m do
    if Check(mas,j,n) then fl:=true;
 
  if fl then
    writeln('Matrix has a columns with the same elements!');
  readln;
end.
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 18:08  [ТС] 15
Ууу)) То, что ты написал самый последним постом (большую программу) я там половину функций не знаю)) Мне учитель не поверит))
0
Почетный модератор
64287 / 47586 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
08.06.2010, 18:37 16
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,k,l,p:byte;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to m do
    begin
     a[i,j]:=random(100);
     write(a[i,j]:4);
    end;
   writeln;
 end;
writeln;
k:=0;{наличие нужного столбца}
j:=1;
while(j<=m) and(k=0) do{идем по столбцам}
 begin
  p:=0;{наличие совпадений}
  for i:=1 to n-1 do{идем вниз по столбцу}
  for l:=i+1 to n do{смотрим впереди}
  if a[i,j]=a[l,j] then p:=1;{если одинаковые, фиксируем}
  if p=1 then k:=1{есть столбец}
  else j:=j+1;{нет, смотрим следующий}
 end;
if k=1 then write('Столбец с одинаковыми элементами есть')
else write('Столбца с одинаковыми элементами нет');
readln
end.
0
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 20
08.06.2010, 22:58  [ТС] 17
Puporev и toxa92 спасибо, респект вам.
0
0 / 0 / 0
Регистрация: 22.12.2014
Сообщений: 11
01.04.2015, 19:41 18
не могли бы вы помочь с оформлением этой программы пожалуйста? мне нужно написать ее через процедуры! я никак не могу понять как это сделать(
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
01.04.2015, 20:10 19
Drynia, Определить, есть ли в массиве столбец, в котором имеются одинаковые элементы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2015, 20:10
Помогаю со студенческими работами здесь

Двумерный массив. Определить, есть ли в данном массиве столбец, в которой имеются одинаковые элементы
Дан двумерный массив размерностью n х m, заполненный случайными числами. Определить, есть ли в...

Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы
Дан двумерный массив размером n × m, заполненный случайными числами. Определить, есть ли в данном...

Определить, есть ли в данном массиве столбец, в котором имеются одинаковые элементы.
помогите сделать пожалуйста(((((((( Дан двумерный массив размером n × m, заполненный...

Определить, есть ли в данной матрице столбец, в котором имеются одинаковые элементы
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru