Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ МАТРИЦЫ

Автор: НЕмогуДОЙТИ 15.11.2010 3:38

Условие: Дан массив А, состоящий из n натуральных чисел. Выберите элементы, встречающиеся более одного раза. Тоесль вывести их на экран.

Вобщем как задать матрицу я знаю. Не могу додуматься как проверить матрицу на схожие элементы. Подкиньте небольшие идеи дальше сам додумаюсь.

А если вам не лень можите все решение написать smile.gif

НАРОД ВЫРУЧАЙТЕ ПЛЗ, ЗАВТРА СДАТЬ НАД БУДЕТ. БУду весьма признателен.

Автор: мисс_граффити 15.11.2010 13:03

Берешь элемент [i,j] и сравниваешь со всеми элементами, которые идут после него. Если повторы есть - выводишь.
Тогда если элемент повторяется два раза, он выведется один. Правда, если элемент три раза - выведется два.
Определись, как именно тебе нужно поступать в этом случае.

Автор: НЕмогуДОЙТИ 15.11.2010 14:32

Вот а как именно записать это сравнение?

что-то типо этого должно быть For i:=1 to n do For j:=1 to m do IF a[i,j]= then x:=x+1;

И вот я немогу понять с чем сравнивать а[i,j].

Автор: trminator 15.11.2010 16:24

А где написано про матрицу, то бишь двумерный массив? По-моему, речь об одномерном.

Тогда идём по этому массиву, и каждое очередное число проверяем на совпадение со следующими:


for i := 1 to n do
begin
for j := i + 1 to n do
begin
{что-то там сравниваем. A[i] с A[j], вестимо}
end;
{тут ещё какие-то умозаключения}
end;



И, правда что, рассмотри случай, когда у тебя более одного повтора. Например, если нашел число, совпадающее с данным, замени его на -1 (по условию числа натуральные -- отрицательные числа при просмотре массива вообще игнорируй тогда).

Автор: TarasBer 15.11.2010 16:34

Мне кажется, проще сначала отсортировать массив, а потом делать так:


for i := Low(a) to High(a) do begin
if (i = Low(a)) or (a[i] <> a[i - 1]) then WriteLn(A[i]);
end;


Автор: мисс_граффити 15.11.2010 21:12

Портить массив - это как-то неконцептуально, имхо...

Автор: TarasBer 15.11.2010 21:15

Портить копию.

Автор: trminator 15.11.2010 22:08

Сортировку, скорее всего, "не проходили", вот и вся концептуальность.