Помощь - Поиск - Пользователи - Календарь
Полная версия: МАТРИЦЫ
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
НЕмогуДОЙТИ
Условие: Дан массив А, состоящий из n натуральных чисел. Выберите элементы, встречающиеся более одного раза. Тоесль вывести их на экран.

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

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

НАРОД ВЫРУЧАЙТЕ ПЛЗ, ЗАВТРА СДАТЬ НАД БУДЕТ. БУду весьма признателен.
мисс_граффити
Берешь элемент [i,j] и сравниваешь со всеми элементами, которые идут после него. Если повторы есть - выводишь.
Тогда если элемент повторяется два раза, он выведется один. Правда, если элемент три раза - выведется два.
Определись, как именно тебе нужно поступать в этом случае.
НЕмогуДОЙТИ
Вот а как именно записать это сравнение?

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

И вот я немогу понять с чем сравнивать а[i,j].
trminator
А где написано про матрицу, то бишь двумерный массив? По-моему, речь об одномерном.

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


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



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


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

мисс_граффити
Портить массив - это как-то неконцептуально, имхо...
TarasBer
Портить копию.
trminator
Сортировку, скорее всего, "не проходили", вот и вся концептуальность.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.