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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2008, 12:46   #1
ReWiR
 
Регистрация: 27.11.2008
Сообщений: 7
Восклицание Люди помогите срочно пожалуйста!

До 15.00 срочно нужен текст программы работающей. Мыслей вообще никаких.

Найти все числа,каждое из которых встречается в каждой строке матрицы A(m,n)
Написать надо через процедуры и функции
вот здесь уже написали otvet.mail.ru/question/19939799/ но там она не работает(даже если массивы указать)и ничего не понятно.
ReWiR вне форума Ответить с цитированием
Старый 27.11.2008, 13:05   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию Надеюсь разберетесь

Код:
uses crt;
const m=10;n=10;
var   i,j,ind:integer;
      a:array[1..m,1..n] of integer;
      b:array[1..100] of integer;

function Exist(x:integer):boolean;
var i,j:integer;
    ex,flag:boolean;
begin
ex:=true;{ex - элемент есть во всех строках}
exist:=false;{exist - элемент нужно добавить}
 for i:=1 to m do
 begin
  flag:=false;{flag - элемент есть в строке}
  for j:=1 to n do
   if x=a[i,j] then flag:=true;
 if not flag then ex:=false;{элемента нет в строке}
 end;
flag:=true;
if ex then{если есть во всех строках}
 begin
  if ind=0 then begin{если первый элемент в выходном массиве}
                 inc(ind);
                 Exist:=true;
                end
    else
   begin
      for i:=1 to ind do
       if x=b[i] then flag:=false;{если в выходном массиве нет еще такого элемента}
   if flag then begin
                  inc(ind);
                  exist:=true;
                end;
   end;
  end;

end;

procedure Init;
begin
for i:=1 to m do
 begin
  for j:=1 to n do
 begin
 a[i,j]:=random(3);
 write(a[i,j],' ');
 end;
writeln;
end;
end;

begin
clrscr;
randomize;
ind:=0;
Init;{инициализируем матрицу рандомом}
for i:=1 to m do
 for j:=1 to n do
  if Exist(a[i,j]) then b[ind]:=a[i,j];
writeln;
for i:=1 to ind do
 write(b[i],' ');
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 27.11.2008 в 13:16.
alex_fcsm вне форума Ответить с цитированием
Старый 27.11.2008, 13:11   #3
ReWiR
 
Регистрация: 27.11.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от alex_fcsm Посмотреть сообщение
Код:
uses crt;
const m=10;n=10;
var   i,j,ind:integer;
      a:array[1..m,1..n] of integer;
      b:array[1..100] of integer;

function Exist(x:integer):boolean;
var i,j:integer;
    ex,flag:boolean;
begin
ex:=true;
exist:=false;
 for i:=1 to m do
 begin
  flag:=false;
  for j:=1 to n do
   if x=a[i,j] then flag:=true;
 if not flag then ex:=false;
 end;
flag:=true;
if ex then
 begin
  if ind=0 then begin
                 inc(ind);
                 Exist:=true;
                end
    else
   begin
      for i:=1 to ind do
       if x=b[i] then flag:=false;
   if flag then begin
                  inc(ind);
                  exist:=true;
                end;
   end;
  end;

end;

procedure Init;
begin
for i:=1 to m do
 begin
  for j:=1 to n do
 begin
 a[i,j]:=random(3);
 write(a[i,j],' ');
 end;
writeln;
end;
end;

begin
clrscr;
randomize;
ind:=0;
Init;
for i:=1 to m do
 for j:=1 to n do
  if Exist(a[i,j]) then b[ind]:=a[i,j];
writeln;
for i:=1 to ind do
 write(b[i],' ');
end.
а можно обьясни что да как и для чего. а то я в программировании пока новичёк.
ReWiR вне форума Ответить с цитированием
Старый 27.11.2008, 13:17   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Посмотрите комментарии вверху и если что-то непонятно, то спрашивайте поконкретнее
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 27.11.2008, 13:27   #5
ReWiR
 
Регистрация: 27.11.2008
Сообщений: 7
По умолчанию

Ну хотелось бы по порядку понять.
a:array[1..m,1..n] of integer;
b:array[1..100] of integer;
вот что это мы за массивы обьявляем?
function Exist(x:integer):boolean;
это как я понял функция поиска. а x что такое?
ReWiR вне форума Ответить с цитированием
Старый 27.11.2008, 13:31   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от ReWiR Посмотреть сообщение
Ну хотелось бы по порядку понять.
a:array[1..m,1..n] of integer;
b:array[1..100] of integer;
вот что это мы за массивы обьявляем?
function Exist(x:integer):boolean;
это как я понял функция поиска. а x что такое?
a- матрица по которой ищем
b- массив выходных элементов - которые есть в каждой строчке
Exist - функция, входной параметр - элемент матрицы
принимает true - если элемент есть в каждой строке и не повторяется в b
принимает false если элемент не присутствует в каждой строке или он уже есть в выходном массиве
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 27.11.2008, 13:43   #7
ReWiR
 
Регистрация: 27.11.2008
Сообщений: 7
По умолчанию

a:array[1..m,1..n] of integer; но ведь так обьявляется массив а не матрица
x:integer это что?
ex:=true;{ex - элемент есть во всех строках}
exist:=false;{exist - элемент нужно добавить} это так и не понял
ReWiR вне форума Ответить с цитированием
Старый 27.11.2008, 13:52   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

матрица - двумерный массив
x:параметр передаваемый в функцию
ex - логическая перенная
exist - функция возвращающая значение типа boolean(тоже логическое)
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 27.11.2008, 13:53   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но ведь так обьявляется массив а не матрица
И что же по твоему матрицу нельзя массивом двумерным назвать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2008, 13:56   #10
ReWiR
 
Регистрация: 27.11.2008
Сообщений: 7
По умолчанию

ну так у нас же матрица 10 на 10 получается
ReWiR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди помогите !!! Очень срочно нужно. (ПАСКАЛЬ) Jey_RO Помощь студентам 2 27.05.2008 18:52
Люди добрые,помогите пожалуйста решить задачки!!! Мартышонок Паскаль, Turbo Pascal, PascalABC.NET 4 22.05.2008 08:00
Люди пожалуйста помогите с написанием ФАЙЛ МЕНЕДЖЕРА nash Помощь студентам 1 11.12.2007 21:35
Срочно,помогите,пожалуйста! Валентина07 Помощь студентам 0 01.12.2007 11:27
Люди помогите пожалуйста найти NoCD! Stason_007 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 10.10.2007 20:25