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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 19:55   #1
scoprion
 
Регистрация: 12.03.2010
Сообщений: 6
Восклицание Сортировка в двумерном массиве

В школе №230 ученики, помимо других предметов, изучают алхимию. Известно, что химические вещества состоят из отдельных элементов. Однажды на уроке алхимии Алия Сакеновна выдала ученикам набор из N химических веществ и для каждого вещества выписала список составляющих его элементов. Элемент задается своим номером в таблице Менделеева (маги тоже ею пользуются!). Известно, что существует элемент, входящий в состав всех веществ. Помогите ученикам найти его. Для простоты считаем, что все вещества состоят из одинакового числа элементов. Всего в таблице Менделеева 250 элементов

Формат входных данных:
В первой строке входного файла записаны через пробел два целых числа: N – количество веществ, M – число элементов в веществе. В следующих N строках записаны через пробел по M целых чисел – номера составляющих элементов. Всего задано не более 30000 веществ.
Важно, что все строки упорядочены по возрастанию номеров элементов.

Формат выходных данных:
В выходной файл вывести номер найденного элемента.

Пример:

А.in A.out
3 4 5
1 2 5 64
2 3 4 5
1 5 57 85

Решал задачу через одномерный массив вот что получилось

Код:
program z2;
uses crt;
var
n,m,i,j,k:integer;
f,f1:text;
mas:array [1..250] of byte;
begin
 ClrScr;
 assign(f,'C:\pascal\b.in');
 reset(f);
 read(f,n);
 read(f,m);
 for i:=1 to n do
 begin
  for j:=1 to m do
  begin
   read(f,k);
   mas[k]:=mas[k]+1;
  end;
  readln(f);
 end;
 close(f);
 assign(f1,'C:\pascal\b.out');
 rewrite(f1);
 for i:=1 to 250 do if mas[i]=n then write(f1,i);
 close(f1);
end.
Второе решение:
Код:
Program zB;
type SetElem = SET OF Byte;
var i,j,k,x,p,m,n:longint;
    t:text;
    A: SetElem;
    B:array[1..1000] of SetElem;
begin
   assign(t,'A.in');
   Reset(t);
   ReadLn(T,M,n);
   for i:=1 to M do begin
      B[i]:=[];
      for j:=1 to n do begin
         Read(T,x);
         B[i]:=B[i] + [x];
      end;
      ReadLn(T);
   end;
   Close(T);
   A:=B[1];
   for i:=2 to M do A:=A*B[i];
   assign(t,'A.out');
   ReWrite(T);
   for i:=1 to 250 do
      if i in A then writeln(T,i);
   close(t);
end.

Но мне нужно решить через двухмерный массив, но я с ним не очень дружу т.к ещё его не проходил и пытаюсь понять его структуру(
вот то что у меня получилось, помогите исправить или написать с нуля)

Код:
Program zd2;
const
n=3;
m=4;
var
k,i,j,x,y:integer;
f,f1:text;
A:array[1..n, 1..m] of integer;
Begin
assign(f,'C:\pascal\1.txt'); reset(f);
assign(f1,'C:\pascal\2.txt'); rewrite(f1);
Readln(f,a[i,j]);
for y:=1 to m begin
m:=A(1,a);
k:=0;
for i:=1 to m do
for j:=1 to n do
begin
if a[i,j]=m then k:=k+1;
if k=0 then goto;
readln;
writeln(f1,a);
 
end;
close(f);
close(f1);
end.
scoprion вне форума Ответить с цитированием
Старый 12.01.2011, 20:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Загляни на http://yandex.ua/yandsearch?date=&te...oc=10&lr=20554
в часности http://www.programmersforum.ru/showthread.php?t=62335 тут последниц пост показывает сортировку. Те циклы где if (a[m,i]>a[m,n]) then.
Возьми ее на вооружение
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить сумму в двумерном массиве vesada Помощь студентам 1 31.10.2010 19:22
Повторы в двумерном массиве rusasha Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2010 08:26
Игра на двумерном массиве Serg-Grin Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 19.02.2010 20:51
Random в двумерном массиве. Lazio Помощь студентам 7 01.11.2009 22:53
Сортировка отр. элементов в двумерном массиве SWAT Паскаль, Turbo Pascal, PascalABC.NET 3 02.04.2009 21:43