Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск в глубину в консольном приложении через классы(Delphi)

31K
02 апреля 2008 года
Naymen
12 / / 17.12.2007
помогите напишисать программу поиска в глубину естественного через классы и с выводом и вводом в файл в Delphi.

Код:
program PVG;

{$APPTYPE CONSOLE}

uses
  SysUtils;


Type TArr = array [1..100] of integer;
Type Matrix = array of array of integer;
Type LogMatrix = array of boolean;

type TSArray = class

   Data : TArr ;
   Count : integer;
   Labl : LogMatrix;
   Der : Matrix ;
   Father : TArr;

   constructor Create;
   destructor Free;
   procedure Fill  ;
   procedure Show  ;


 end;

 constructor TSArray.create;
  begin
    inherited create;
  end;

  destructor TSArray.free;
  begin
    free;
  end;

      //Заполнение Массива данных, матрицы смежностей
 procedure TSArray.Fill ;
 var
     k,l,p : integer;
 begin
     writeln('Count=10');
     Count:=10;
     for k:=1 to Count do
        begin
          randomize;
          Data[k]:=random(100);
        end;
 end;



      //Вывод на экран
 procedure TSArray.Show;
 var
     k : integer;
 begin
     write('Data:');
     for k:=1 to Count do write(Data[k]:3);

 end;

       // Головная программа


var
   Ekz: TSArray;
begin
   Ekz:= TSArray.Create;
   Ekz.Fill;
   Ekz.Show;
   readln;
   Ekz.Destroy;
end.


Можежь с выводом и вводом файл!

Вот теория

Код:
Procedure Number;
var m,n:integer;
T,F:textfile;
begin
Assignfile(T,'input.txt');
reset(T);
Assignfile(F,'output.txt');
rewrite(F);
while NOT EOF(T) do
begin
код программы
end;
writeln(f,переменая);
closeFile(F);
closeFile(T);
end;


и вот программа типа сложнеия чисел любового количества это тебе пример. Через классы и с выводом и вводом в файл.

Код:
program Project3;

{$APPTYPE CONSOLE}

uses
SysUtils;

type tsmartArray = class
Private
public
constructor create;
destructor free;
procedure Number;
end;

constructor TSmartArray.create;
begin
inherited create;
end;

destructor TSmartArray.free;
begin
free;
end;

Procedure tsmartArray.Number;
var m,n:integer;
T,F:textfile;
begin
Assignfile(T,'input.txt');
reset(T);
Assignfile(F,'output.txt');
rewrite(F);
n:=0;
while NOT EOF(T) do
begin
read(T,m);
n:=n+m;
end;
writeln(f,n);
closeFile(F);
closeFile(T);
end;
var sarray: tsmartArray;
begin
sarray:= TsmartArray.create;
sarray.Number;
sarray.free;
end.
31K
06 апреля 2008 года
Naymen
12 / / 17.12.2007
Вот еще что мы начали делать тут все с коменнтариями
Код:
program Proba;

{$APPTYPE CONSOLE}

uses
  SysUtils;

       //Типы используемых данных :
            //Тип - Массивы вершин-отцов, индексов и  меток
Type TArray = array of integer;
            //Тип - Матрица смежностей
Type TGraf = array[1..5,1..5] of integer;

           //Задаем МС в константе
const
 Graf:TGraf =((0,1,0,1,0),(1,0,1,0,1),(0,1,0,0,0),(1,0,0,0,0),(0,1,0,0,0));

     //Процедура рекурсивного поиска
procedure  PVG(var v:integer);
var
begin
     //отмечаем в метках что вершина просмотрена
     Met[v]:=1;
     //Просматриваем МС по строкам  ищем смежные вершины
     for i:=1 to 5 do
         begin
           if
     //берем из МС индекс где 1 и сверяемся с метками
     //записываем вершину в отцы
     //направляем ребро
     //начинаем процедуру поиска для смежной вершины
end;   end;
     //Головная программа
var
    FinG : TGraf;
    Met,  Fat : Tarray;
    kor, k : integer;
begin
     //Создаем пустое дерево
    FinG:=Graf;
     //Заполняем массив меток
    for k:=1 to 5 do Met[k]:=0;
     //определяем корень дерева , записываем в его отцы nil
    write ('Wwesti index kornja');
    readln(kor);
    if Met[kor]=0 then
                   begin
                    Fat[kor]:=nil;
                     //начинаем процедуру поиска с этого корня
                    PVG(kor);
                   end
                  else writeln('Dalpaep') ;
    end;
    readln;
end.

[COLOR="Red"]Оформляй код при помощи тегов [COLOR="Navy"][ code ]...[ /code ][/COLOR] ,а не как цитаты.[/COLOR]
31K
07 апреля 2008 года
Naymen
12 / / 17.12.2007
Мне кто нибудь поможет?
[COLOR="Red"]За несоблюдение Правил раздела Студентам - предупреждение,на первый раз.Никто не обязан тебе помагать.[/COLOR]
31K
08 апреля 2008 года
Naymen
12 / / 17.12.2007
А для чего тогда этот форум?
320
08 апреля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: Naymen
А для чего тогда этот форум?



Если ты думаешь,что форум существует для того чтобы решать задачи вместо студентов - ты глубоко заблуждаешься.Перечитай Дополнения, пункт 8.

31K
17 апреля 2008 года
Naymen
12 / / 17.12.2007
Вот вроде бы почти написали программу, проверьте на ошибки, что я не так сделал?

Код:
program Proba2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

//Типы используемых данных :
            //Тип - Массивы вершин-отцов, индексов и  меток
Type TArray = array of integer;
            //Тип - Матрица смежностей
Type TGraf = array[1..5,1..5] of integer;

           //Задаем МС в константе
const
 Graf:TGraf =((0,1,0,1,0),(1,0,1,0,1),(0,1,0,0,0),(1,0,0,0,0),(0,1,0,0,0));
var
     FinG : TGraf;
    Met,  Fat : Tarray;
    kor, k : integer;

     //Процедура рекурсивного поиска
procedure  PVG(var v:integer);
var i,j:integer;
begin
     //отмечаем в метках что вершина просмотрена
     Met[v]:=1;
     //Просматриваем МС по строкам  ищем смежные вершины
     for i:=1 to 5 do
       begin
        for j:=1 to 5 do
        //берем из МС индекс где 1 и сверяемся с метками
         begin
           if Graf[i,j]=0 then
         //записываем вершину в отцы
            begin
               Fat:=j;
             //направляем ребро
              FinG[j,i]:=0;
            end;
          //начинаем процедуру поиска для смежной вершины
        PVG(j);
        end;
      end;
end;
     //Головная программа


begin
     //Создаем пустое дерево
    FinG:=Graf;
     //Заполняем массив меток
    for k:=1 to 5 do Met[k]:=0;
     //определяем корень дерева , записываем в его отцы nil
    write ('Wwesti index kornja');
    readln(kor);
    if Met[kor]=0 then
                   begin
                    Fat[kor]:=0;
                     //начинаем процедуру поиска с этого корня
                    PVG(kor);
                   end
                  else
                    begin
                    writeln('Dalpaep') ;
                    end;

    readln ;
end.
360
17 апреля 2008 года
P*t*
474 / / 15.02.2007
Цитата: Naymen
Вот вроде бы почти написали программу, проверьте на ошибки, что я не так сделал?



А что у тебя не так работает?

31K
18 апреля 2008 года
Naymen
12 / / 17.12.2007
Вот этот код нужно проверить, тот не верный.
Код:
program Proba3;

{$APPTYPE CONSOLE}

uses
  SysUtils;

//Типы используемых данных :
            //Тип - Массивы вершин-отцов, индексов и  меток
Type TArray = array[1..5] of integer;
            //Тип - Матрица смежностей
Type TGraf = array[1..5,1..5] of integer;

           //Задаем МС в константе
const
 Graf:TGraf =((0,1,0,1,0),(1,0,1,0,1),(0,1,0,0,0),(1,0,0,0,0),(0,1,0,0,0));
var
     FinG : TGraf;
    Met,  Fat : Tarray;
    kor, k,l : integer;

     //Процедура рекурсивного поиска
procedure  PVG(var v:integer);
var i,j,w:integer;
begin
     //отмечаем в метках что вершина просмотрена
     Met[v]:=1;
     //Просматриваем МС по строкам  ищем смежные вершины
     for i:=1 to 5 do
       begin
        for j:=1 to 5 do
        //берем из МС индекс где 1 и сверяемся с метками
         begin
           if Graf[i,j]=1 then
         //записываем вершину в отцы
            begin
               w:=j ;
               Fat:=w;
             //направляем ребро
              FinG[w,i]:=0;
            end;
          //начинаем процедуру поиска для смежной вершины
           PVG(w);
        end;
       
      end;
end;
     //Головная программа


begin
     //Создаем пустое дерево
    FinG:=Graf;
     //Заполняем массив меток
    for k:=1 to 5 do Met[k]:=0  ;
    writeln('K=',k);

    for l:=1 to 5 do
    begin
      //определяем корень дерева , записываем в его отцы nil
    kor:=1;
    writeln('kor',kor);
    if Met[kor]=0 then
                   begin
                    writeln('Met[',l,']=',Met[l]);
                    Fat[kor]:=0;
                     //начинаем процедуру поиска с этого корня
                    PVG(kor);
                   end
                  else
                    begin
                    writeln('Dalpaep') ;
                    end;
     end;
   readln ;
end.
360
18 апреля 2008 года
P*t*
474 / / 15.02.2007
Цитата: Naymen
Вот этот код нужно проверить, тот не верный.



А что не так работает?
Обычно если просят найти ошибку говорят как она проявляется.

Или ты не знаешь правильный код или нет, а потестить лень?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог