Salut à tous je voulais vous demander comment faire pour concerver les données entrée par un utilisateur.
Mon programme est censé permettre la création d'un arbre généalogique dynamique. Je suis en core au début. Voici le programme.
program projet;
uses crt;
type
ensemble= set of char;
Const CValide : Ensemble= ['+',' ','*','-','/','0','1','2','3','4','5','6','7','8','9','A','a','z','e','r','t','y','u','i',
'o','p','q','s','d','f','g','h','j','k','l','m','—','w','x','c','b','n','B','C','D','E','F'];
type element= string;
ptr = ^sommet;
sommet = record
Pr:ptr;
Pf:ptr;
Fr:ptr;
Gen:integer;
num:integer;
Val:element;
end;
fil= record
deb:ptr;
fin:ptr;
end;
function noms(e:integer):string;
var tab:array[1..10] of char;
c:char;
i:integer;
begin
for i:=1 to 10 do tab[i]:=' ';
i:=1;
writeln('cbon');
c:=' ';
while (c in cvalide) do
begin
write('');
c:= readkey;
if (c in cvalide) then
begin
write(c);
tab[i]:=c;
end;
i:=i+1;
end;
noms:=tab;
end;
procedure defiler( F:fil);
var F1,Aux:ptr;
begin
F1:=@F.deb;
F.deb^:= F.deb^.fr^;
F1^.fr:= nil;
end;
procedure enfiler (A:element;F:fil);
var nouv:sommet;
un_pointeur:ptr;
begin
nouv.Pr:=nil;
nouv.Fr:=nil;
nouv.Pf:=nil;
nouv.val:='';
nouv.num:=0;
nouv.val:=A;
F.deb^.Fr:=@nouv;
F.fin^.Fr:=nil;
F.fin:=@nouv;
end;
function file_vide(F:fil):boolean;
begin
If F.deb =nil then
file_vide:=true
else file_vide:=false;
end;
function existe_fils(f:sommet;A:sommet):boolean;
begin
if f.Pf=nil then
existe_fils:=false
else existe_fils:=true;
end;
function lire(a:string):string;
begin
read(a);
end;
function existe_frere(f:sommet;A:sommet):boolean;
begin
if f.Fr=nil then
existe_frere:=false
else existe_frere:=true;
end;
var nouv:sommet;
function creersommet(a:integer):ptr;
var u:sommet;
p:ptr;
begin
u.val:=' ';
u.pr:=nil;
u.fr:=nil;
u.pf:=nil;
u.num:=0;
p:=@u;
creersommet:=p;
end;
{creer_sommet:
nouv.Pr:=nil;
nouv.Fr:=nil;
nouv.Pf:=nil;
nouv.val:='';
nouv.num:=0;}
var car,car1:char;
k:string;
W,Z,X:sommet;
nb,j:integer;
procedure enfants(nom_pere:string;n:integer);
var nouv:sommet;
begin
end;
begin
clrscr;
writeln('entrer le nom de l ancˆtre');
X.Pr:=nil;
X.Fr:=nil;
X.Pf:=nil;
X.val:=noms(2);
X.num:=0;
k:=X.val;
writeln(k);
writeln('est ce que ',k ,'a eu des enfants:Y / N');
car :=readkey;
if car='y' then
begin
writeln('entrer le nom de son 1er Fils');
W.val:=noms(2);
W.Pr:=nil;
W.Fr:=nil;
W.Pf:=nil;
W.num:=0;
X.Pf:= @W ;
k:=W.val;
writeln('',k,' a t il des freres?:Y / N');
car1 :=readkey ;
if car1='y' then
begin
writeln('entrez le nombre');
read (nb);
j:=1;
while (j<=nb) do
begin
writeln('entrez le nom du ',j,'Šme frŠre de ',k,'');
Z.val:=noms(2);
Z.Pr:=nil;
Z.Fr:=nil;
Z.Pf:=nil;
Z.num:=0;
W:=W.fr^;
j:=j+1;
end;
end;
end;
end.
en fait ce n'est qu'une partie test j'aimerait pouvoir stocker en mémoire les contenues des variables X, W et Z afin de pouvoir les réutilisées, sinon à un individu dans l'arbre crée va correspondre une variable ce qui n'est pas bon du tout.
Aussi j'aimerai savoir si mes syntaxe son bonne.
---------------
prendre conscience de son ignorence c'est le début de la sagesse.