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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2010, 23:01   #1
Brabus
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 81
По умолчанию Комментарии к задаче на Delphi

Добрый вечер уважаемые форумчане. Если Вам не сложно напишите пожалуйста комментарии к задаче на Delphi. Не сочтите за наглость, но чем больше тем лучше

1. Дано упорядоченное дерево глубины N (> 0), каждая внутренняя вершина которого имеет K (< 9) непосредственных потомков, которые нумеруются от 1 до K. Корень дерева имеет номер 0. Записать в текстовый файл все пути, ведущие от корня к листьям и удовлетворяющие следующему условию: никакие соседние элементы пути не нумеруются одной и той же цифрой. Каждый путь записывается в отдельной строке файла. Перебирать пути, начиная с "самого левого" и заканчивая "самым правым", при этом первыми заменять конечные элементы пути.

Unit1.pas
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ComCtrls, UntLib;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    TreeView1: TTreeView;
    Button3: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Tree1: TNode;
  arr1: array of integer;

implementation

{$R *.dfm}

procedure ViewTree(p: TNode; t: TTreeNode);
var
  t1: TTreenode;
  i: integer;
begin
  for i:=1 to 9 do begin
    if p^.child[i] <> nil then begin
      t1:=Form1.TreeView1.Items.AddChild(t,IntToStr(p^.child[i].Info));
      ViewTree(p^.child[i],t1);
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i, j,k,l,m,num: integer;
  NewNode:TTreeNode;
begin
  k := StrToIntDef(Edit1.Text,0);
  num := StrToIntDef(Edit2.Text,0);;

  StringGrid1.ColCount := k;

  SetLength(arr1,k);


  for i:=0 to k-1 do
    arr1[i] := i;

  for i:=0 to k-1 do begin
    StringGrid1.Cells[i,0] := IntToStr(arr1[i]);
  end;

  i:=1;
  j:=1;
  l:=0;
  while i <= k div num do begin
    while j<=num do begin
      Ins_Tree(Tree1,arr1[l],j);
      Inc(l);
      Inc(j);
    end;
    j:=1;
    Inc(i);
  end;

  TreeView1.Items.Clear;
  NewNode:=TreeView1.Items.AddFirst(treeview1.Items.GetFirstNode,IntToStr(Tree1^.Info));
  ViewTree(tree1,NewNode);

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  AssignFile(f, 'output.txt');
  Rewrite(f);
  Tree_Route(Tree1);
  CloseFile(f);
end;

end.


UntLib.pas
Код:
unit UntLib;

interface
uses SysUtils;

type
  TData = Integer; // тип поля данных
  TNode=^PNode;
  PNode=record
    Info : TData; // поле данных
    Child: array [1..9] of TNode; // ссылки на левое и правое поддеревья
  end;

var
  f: textfile;

procedure Ins_Tree(var t:TNode; x:Integer; n: integer);
procedure Tree_Route(var t:TNode);

implementation

procedure Ins_Tree(var t:TNode; x:Integer; n: integer);
var
  i:integer;
begin
  if t=Nil then begin
    New(t);
    with t^ do begin
      for i:=1 to 9 do
        child[i] :=nil;

      Info:=x;
    end
  end else Ins_Tree(t^.child[n],x,n);

end;

procedure Tree_Route(var t:TNode);
var
  i:integer;
begin

  if t<> nil then begin
    write(f,IntToStr(t^.Info) + ' ');
  for i:=1 to 9 do begin
    if t^.child[i]<>nil then begin
      Tree_Route(t^.child[i]);
    end;
  end;
  Writeln(f);
  end;
 
end;

end.
Brabus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарии к коду программы на Delphi Asblue Помощь студентам 3 20.11.2010 17:13
Вопрос по задаче Delphi Vla9240 Помощь студентам 2 15.05.2009 16:15
[Delphi] Помогите выявить ошибки в задаче! Пожалуйста! Очень срочно! OtimJ Помощь студентам 3 23.12.2008 13:23
Написать комментарии к коду. Delphi. Дарюха Помощь студентам 1 21.11.2007 16:05