Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на указатели
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
nblazhko
Подскажите,а то я в этой теме не разобрался еще,вот задача:
type ssilka=^integer;
vector=array[1..100] of ssilka;
Считая, что все элементы вектора Х от nil ,создать консольное приложение, описывающее логическую функцию SAME(x),которая проверяет есть ли в векторе Х хотя бы две одинаковые ссылки.


Зарание спасибо
renesko1
А можно менять значения ssilka^.integer ?
nblazhko
Цитата(renesko1 @ 9.04.2008 22:13) *

А можно менять значения ssilka^.integer ?

Можно
renesko1
Тогда можно попробывать пройтись по массиву и при обр. к элементу присваивать ему определенное значение и если при обр. к новому элементу значение его совпадает с нашем значением то получаем ответ на вопрос.
------------
Главное перед этим все обнулить
nblazhko
Можно сделать так но нужно это оформить ввиде функции,а как я не знаю


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.

klem4
во первых добавь 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;
volvo
nblazhko
А можно узнать, что общего имеет твое решение с заданием? Задание было на поиск одинаковых указателей на целое, а не на поиск в массиве целых чисел по указателю... ^integer и просто integer это все-таки разные вещи...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.