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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2015, 01:29   #1
tina22222
Пользователь
 
Регистрация: 28.01.2014
Сообщений: 34
По умолчанию Описать функцию или процедуру, которая по файлу f, все элементы которого различны, строит соответствующее дерево t

Привет всем, помогите пожалуйста разобраться с задачкой
Задание было такое:
Описать функцию или процедуру, которая по файлу f, все элементы которого различны, строит соответствующее дерево t
Просто у меня подобная задача, а я с этой никак разобраться не могу(
помогите пожалуйста...
Это тело:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Unit1 in 'Unit1.pas';
  var l:int;

begin
 failik(l);
Vivod(d, 0);//вывод структуры дерева
readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Это модуль:
Код:
unit Unit1;

interface

Type  Int = integer;
      svd = ^zvd;
      zvd = record
              key: Integer;
              info: Int;
              Left: svd;
              Right: svd;
      end;
Var D:svd;



  function failik(l:int): integer;// файл
  Procedure Add(k: integer; {ключ }i:integer;{информация звена}var d:svd{указатель});
  Procedure Vivod(d:svd; L:integer);//вывод структуры дерева



implementation



Procedure Add( k: integer; {ключ  звена}
                 i:int;{информация звена}
                 var d:svd{указатель});
  begin
    if d=nil then
            begin
              new(d);
              d^.key:=k;
              d^.info:=i;
              d^.Left:=nil;
              d^.Right:=nil;
            end
        else
    if k<d^.key then Add(k,i,d^.Left)
        else
    if k>d^.key then Add(k,i,d^.Right);
  end;



 Procedure Vivod(d:svd; L:integer);//вывод  дерева
 var i:integer;
 begin

   if d<>nil then
      begin
        Vivod(d^.Right,L+1);
        for I := 1 to L do write('       ');
        writeln('*',d^.key,'[',d^.info,']');
        Vivod(d^.Left,L+1);
      end;
 end;




function failik(l:int): integer;// файл
var f:text;
    per, zn,i,j,k:integer;
     z:array [0..11,0..11] of integer;
     c:char;


begin
assign(f,'file.txt');
reset(f);

   for i := 0 to 11 do
    begin
       for j := 0 to 11 do
        read(f,z[i,j]);
      Add( z[0,i],z[1,i],D);
    end;

close(f);

end;

end.

Последний раз редактировалось Stilet; 25.04.2015 в 06:29.
tina22222 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деревья Praud Помощь студентам 2 11.02.2015 04:44
деревья Лиляля Помощь студентам 2 03.06.2012 16:55
Деревья Си++ СветОК Общие вопросы C/C++ 1 25.05.2012 07:52
С++ Деревья DenSyntax Фриланс 3 24.06.2010 16:50
Деревья Chudo4258 Помощь студентам 3 29.04.2009 14:46