Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 14:50   #1
Vadim228
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 16
По умолчанию Задана целочисленная таблица Аm,n, строки которой упорядочены по неубыванию.

Задана целочисленная таблица Аm,n, строки которой упорядочены по неубыванию. Требуется найти и вывести на экран числа, которые встречаются во всех строках. Если таких чисел нет, вывести соответствующее сообщение.
Vadim228 вне форума Ответить с цитированием
Старый 25.12.2015, 15:53   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const m=10;
      n=8;
      count=30;
var a:array[1..m,1..n] of integer;
    i,j,k,c:integer;
begin
   Randomize;
   For i:=1 to m do
   begin
      For j:=1 to n do
      begin
         a[i,j]:=Random(count);
         Write(a[i,j],'  ');
      end;
      Writeln;
   end;
   Writeln;
   For c:=0 to count-1 do
   begin
      k:=0;
      For i:=1 to m do
         For j:=1 to n do
            If a[i,j]=c then
            begin
               k:=k+1;
               Break;
            end;
      If k=0 then
         Writeln('no ',c) else
         Writeln(c,' --> ',k);
   end;
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 25.12.2015, 16:28   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

newerow1989, не сочтите за придирку, но...прошу комментарий к коду. Что он делает?

Мы, наверное, опять по разному поняли задание
Код:
uses crt;
const m=5; n=5;
var a:array[1..m,1..n]of integer;
i,j,k,ch:byte;f:boolean; s:set of byte;
BEGIN
clrscr;
s:=[];
randomize;
for i:=1 to m do
begin
for j:=1 to n do
 begin
  a[i,j]:=random(25);
  write(a[i,j]:5);
 end;

writeln;
end;
writeln('----------');
for i := 1 to n do
begin
  ch:=0;
  for j:= 2 to m do
   begin
    f:=false;
    for k := 1 to n do
      if a[1,i] = a[j,k] then begin f:=true; break; end;
    if f then inc(ch)
   end;
  if (ch=m-1) and (not (a[1,i] in s)) then begin writeln(a[1,i]); include(s,a[1,i]) end;
end;
if s = [] then writeln('NET');
readln;
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.12.2015, 16:36   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Я подсчитывал каждое число (от 0 до count-1)! Т.е. сколько раз встречается хотя бы 1 раз в строках. Если имеется такое число, выхожу сразу из цикла Break;
Цитата:
встречаются во всех строках
немножко не доглядел, тогда подкорректировать:
Код:
       If k=m then
         Writeln(c) else
         Writeln('no ',c);
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 25.12.2015, 17:19   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Непонимаю

Какой ответ будет для матрицы
Код:
((1,1,1)
(2,2,2)
(3,3,3))
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.12.2015, 17:27   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const m=3;
      n=3;
      count=3;
var a:array[1..m,1..n] of integer;
    i,j,k,c:integer;
begin
   Randomize;
   For i:=1 to m do
   begin
      For j:=1 to n do
      begin
         a[i,j]:=i;//Random(count);
         Write(a[i,j],'  ');
      end;
      Writeln;
   end;
   Writeln;
   For c:=0 to count-1 do
   begin
      k:=0;
      For i:=1 to m do
         For j:=1 to n do
            If a[i,j]=c then
            begin
               k:=k+1;
               Break;
            end;
      If k=m then
         Writeln(c) else
         Writeln('no ',c);
   end;
   Readln;
end.
Безымянный.jpg
У меня правда с нуля отсчет идет - ничего страшного, суть такая же
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 25.12.2015 в 17:29.
newerow1989 вне форума Ответить с цитированием
Старый 25.12.2015, 19:42   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А как с условием?
Цитата:
Сообщение от Vadim228 Посмотреть сообщение
Требуется найти и вывести на экран числа, которые встречаются во всех строках.

имхо для
((1,1,1)
(2,2,2)
(3,3,3))
ответ "НЕТ".
Для
((1,1,1)
(1,2,2)
(3,1,2))
ответ "1" потому что "1" есть в каждой строке

Или я не правильно условие понял и к чему условие "строки которой упорядочены по неубыванию. "? Какие это строки "по неубиванию": каждый i+1 елемент больше i-го или сумма элементов первой строки больше суммы элементов второй строки?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 25.12.2015 в 19:49.
Aleksandr H. вне форума Ответить с цитированием
Старый 27.12.2015, 05:22   #8
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const m=3;
      n=3;
      count=3;
var a:array[1..m,1..n] of integer;
    i,j,k,c:integer;
    d:boolean;
begin
   Randomize;
   For i:=1 to m do
   begin
      For j:=1 to n do
      begin
         a[i,j]:=i;//Random(count);
         Write(a[i,j],'  ');
      end;
      Writeln;
   end;
   Writeln;
   d:=false;
   For c:=0 to count do
   begin
      k:=0;
      For i:=1 to m do
         For j:=1 to n do
            If a[i,j]=c then
            begin
               k:=k+1;
               Break;
            end;
      If k=m then
      begin
         d:=true;
         Writeln(c);
      end;
   end;
   If not d then
      Writeln('no!');
   Readln;
end.
Так что ли?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана целочисленная матрица порядка 8, в которой элемент равен 0, если соответствующая клетка принадлежит какому-либо прямоугольник LM23 C# (си шарп) 5 13.03.2015 11:06
C++ Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки Анатолий171 Помощь студентам 123 04.07.2014 18:46
Дана матрица действительных чисел A размера MxN, элементы строк которой упорядочиваются по неубыванию. Получить одномерный массив Tramchik Паскаль, Turbo Pascal, PascalABC.NET 7 23.06.2013 13:08
Дана матрица размером NxM/ Определить упорядочены ли её строки по неубыванию суммы их элементов пожрать_бы Помощь студентам 3 12.12.2012 15:46
Ввести строку символов,в которой задана последовательность целых чисел (возможно со знаком), разделенных killoff1234 Помощь студентам 0 16.05.2010 18:37