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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 14:45   #1
Алена_=)))
Пользователь
 
Аватар для Алена_=)))
 
Регистрация: 13.05.2010
Сообщений: 42
Печаль Деревья паскаль - ошибка

всем здрасти!задача сост в том чтоб создать дерево и вывести его копию я сделала, но когда запускаю программу выдает ошибку - несовместимость типов!пожалуйста посмотрите в чем здесь проблема!
за ранее спасибо!
ОСНОВНАЯ ПРОГРАММА
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,
Unit1 in 'Unit1.pas';
var k:integer; p,root1,root2:svd;
begin
p:=nil;
writeln('vvedite elementbI dereva=');
readln(k);
while k<>0 do
begin
search_tree(p,k);
readln(k);
end;
writeln('Derevo= ');
k:=0;
print_tree(p,k);
writeln;
writeln('novoe derevo=');
root2:=copy(root1);--------здесь выдает ошибку!!!!!root1 указывает на корень исходного дерева root2 указывает на корень дерева копии

print_tree(p,k);
readln;
end.

МОДУЛЬ
unit Unit1;

interface
type svd=^zvd;
zvd=record
key,info:integer;
left,right:svd;
end;
procedure search_tree(var p:svd; k:integer);
procedure print_tree(p:svd; k:integer);

implementation
procedure search_tree(var p:svd; k:integer);
begin
if p=nil then
begin
new(p);
p^.key:=k;
p^.info:=1;
p^.left:=nil;
p^.right:=nil;
end
else if (k<p^.key) then search_tree(p^.left,k)
else if (k>p^.key) then search_tree(p^.right,k)
else p^.info:=p^.info+1;

end;

procedure print_tree(p:svd;k:integer);
var i:integer;
begin
if p<>nil then begin
print_tree(p^.right,k+1);
for i:=1 to k do
write(' ');
writeln(' * ',p^.key);
print_tree(p^.left,k+1);
end;

end;
function copy(p:svd):svd;
var t:svd;
begin
if p<>nil then
begin
new(t);
t^.info := p^.info;
t^.left:= copy(p^.left);
t^.right:= copy(p^.right);
result:=t;
end
else result:= nil;
end;
Алена_=))) вне форума Ответить с цитированием
Старый 17.06.2010, 15:06   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ты попробуй свою функцию Copy() как-нить иначе обозвать... хотя бы для начала, дабы не путать ее со строковой функцией Copy....
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 17.06.2010, 16:36   #3
Алена_=)))
Пользователь
 
Аватар для Алена_=)))
 
Регистрация: 13.05.2010
Сообщений: 42
По умолчанию

точно, как я так могла!.....
Алена_=))) вне форума Ответить с цитированием
Старый 17.06.2010, 16:40   #4
Алена_=)))
Пользователь
 
Аватар для Алена_=)))
 
Регистрация: 13.05.2010
Сообщений: 42
По умолчанию

ну вот, спасибо, теперьвсе оке!!!!))))
Алена_=))) вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двоичные деревья (паскаль). patisson74 Помощь студентам 2 16.11.2010 23:46
ошибка,паскаль Defender42 Помощь студентам 3 23.05.2010 12:15
паскаль, ошибка wrmarw Помощь студентам 5 10.05.2010 20:45