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.
Поиск в глубину в консольном приложении через классы(Delphi)
Код:
Можежь с выводом и вводом файл!
Вот теория
Код:
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;
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.
{$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.
Код:
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.
{$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]
[COLOR="Red"]За несоблюдение Правил раздела Студентам - предупреждение,на первый раз.Никто не обязан тебе помагать.[/COLOR]
А для чего тогда этот форум?
Цитата: Naymen
А для чего тогда этот форум?
Если ты думаешь,что форум существует для того чтобы решать задачи вместо студентов - ты глубоко заблуждаешься.Перечитай Дополнения, пункт 8.
Код:
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.
{$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.
Цитата: Naymen
Вот вроде бы почти написали программу, проверьте на ошибки, что я не так сделал?
А что у тебя не так работает?
Код:
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.
{$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.
Цитата: Naymen
Вот этот код нужно проверить, тот не верный.
А что не так работает?
Обычно если просят найти ошибку говорят как она проявляется.
Или ты не знаешь правильный код или нет, а потестить лень?