Подскажите,а то я в этой теме не разобрался еще,вот задача:
type ssilka=^integer;
vector=array[1..100] of ssilka;
Считая, что все элементы вектора Х от nil ,создать консольное приложение, описывающее логическую функцию SAME(x),которая проверяет есть ли в векторе Х хотя бы две одинаковые ссылки.
Зарание спасибо
А можно менять значения ssilka^.integer ?
Тогда можно попробывать пройтись по массиву и при обр. к элементу присваивать ему определенное значение и если при обр. к новому элементу значение его совпадает с нашем значением то получаем ответ на вопрос.
------------
Главное перед этим все обнулить
Можно сделать так но нужно это оформить ввиде функции,а как я не знаю
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
{$R-}
Type
ssilka=integer;
Type
MyArray=Array[1..100] of ssilka;
ssilkaPtr=^MyArray;
Var
DynamicArray: ssilkaPtr;
Count,
I,J,Size: Word;
Begin
Write('Chislo elem massiva: ');
ReadLn(Count);
Size:=Count*SizeOf(ssilka);
GetMem(DynamicArray,Size);
For I:=1 to Count do DynamicArray^[I]:=random(10);
For I:=1 to Count do
Write(DynamicArray^[I]:4);
For I:=1 to Count do
For J:=1 to Count do
if DynamicArray^[I]=DynamicArray^[J] then break;
write(' da est odinakovue ssilki');
FreeMem(DynamicArray,Size);
readln;
end.
во первых добавь randomize, во вторых циклы не верно построены, нужно вот так:
i := 1;
while i < count do begin
j := i + 1;
while (j <= count) and (DynamicArray^[i] <> DynamicArray^[j]) do
inc(j);
if j > count then
inc(i)
else begin
writeln(' Concurrence!');
break;
end;
end;
nblazhko
А можно узнать, что общего имеет твое решение с заданием? Задание было на поиск одинаковых указателей на целое, а не на поиск в массиве целых чисел по указателю... ^integer и просто integer это все-таки разные вещи...