Dev-pascal carnet d'adresse
degseb
Messages postés
353
Date d'inscription
Statut
Contributeur
Dernière intervention
-
grad -
grad -
Bonjour,
J'ai un petit problème, pour mon examen de language de programmation, je dois faire un carnet d'adresses !
j'ai des champ nom, prenom, num téléphonne etc... mais mon champs e-mail bloque pourquoi ??? que dois-je faire ??
merci d'avances voici le code
Ps je sais qu'il est pas très propre ;-) petit problème d'indentation
J'ai un petit problème, pour mon examen de language de programmation, je dois faire un carnet d'adresses !
j'ai des champ nom, prenom, num téléphonne etc... mais mon champs e-mail bloque pourquoi ??? que dois-je faire ??
merci d'avances voici le code
Ps je sais qu'il est pas très propre ;-) petit problème d'indentation
program agenda;
{Réalisation Degreve Sébastien - http://online.freezee.org}
uses crt;
const n = 40;
type adresse = record
rue: string[45];
numero: integer;
codepostal: integer;
ville: string[30];
pays: string[25];
end;
type telephone = record
prefixeloc: integer;
numero: longint;
end;
type personne = record
status :boolean;
nom: string[35];
prenom: string[35];
adr: adresse;
tel: telephone;
end;
type email = record
adresses: string[45]
end;
var agend: array[1..n] of
personne; //table de personne
var index: array[1..n] of
integer; //table d'index pour le tri
var ct,q: integer;
var t,e,z,nn: char;
procedure
affiche(x,y:integer);
var i:integer;
begin
if (y) = 0 then
begin
for i:=1 to x do
begin
if (agend[index[i]].status) then
begin
writeln;
write('#',i);
writeln;
writeln('NOM : ',agend[index[i]].nom,'');
writeln('PRENOM : ',agend[index[i]].prenom,'');
writeln('ADRESSE : ',agend[index[i]].adr.rue,'',agend[index[i]].adr.numero,'');
writeln(' ',agend[index[i]].adr.codepostal,'',agend[index[i]].adr.ville,'');
writeln(' ',agend[index[i]].adr.pays,'');
writeln('TELEPHONE: 0',agend[index[i]].tel.prefixeloc,'/',agend[index[i]].tel.numero,'');
writeln('EMAIL: ',agend[index[i]].email.adresses,'');
writeln;
end;
end;
end
else
begin
writeln;
write('#',y);
writeln;
writeln('NOM : ',agend[index[y]].nom);
writeln('PRENOM : ',agend[index[y]].prenom,'');
writeln('ADRESSE : ',agend[index[y]].adr.rue,'',agend[index[y]].adr.numero,'');
writeln('',agend[index[y]].adr.codepostal,'',agend[index[y]].adr.ville,'');
writeln(' ',agend[index[y]].adr.pays,'');
writeln('TELEPHONE: ',agend[index[y]].tel.prefixeloc,'/',agend[index[y]].tel.numero,'');
writeln('EMAIL: ',agend[index[y]].email.adresses,'');
writeln;
end;
end;
procedure
recherche(x:integer);
var name: string[35];
i: integer;
begin
i:=1;
writeln('Qui voulez-vous chercher ?');
write('NOM: ');
readln(name);
writeln;
while((i) < x)
and ((agend[index[i]].nom)<>(name)) do i:=i+1;
if(agend[index[i]].nom) = (name) then
begin
write('Voici la personne: ');
affiche(0,i);
end
else
write('Personne non trouvee !');
end;
procedure
encodage(x:integer);
var i: integer;
begin
agend[x].status:=true;
write('NOM: ');
readln(agend[x].nom);
for i:=1 to Length(agend[x].nom) do agend[x].nom[i]:=upcase(agend[x].nom[i]);
write('PRENOM: ');
readln(agend[x].prenom);
agend[x].prenom[1]:=upcase(agend[x].prenom[1]);
writeln('');
writeln('ADRESSE ');
writeln('--------');
writeln('');
write('RUE:');
readln(agend[x].adr.rue);
agend[x].adr.rue[1]:=upcase(agend[x].adr.rue[1]);
write('NUMERO :');
readln(agend[x].adr.numero);
write('CODE POSTAL: ');
readln(agend[x].adr.codepostal);
write('VILLE: ');
readln(agend[x].adr.ville);
agend[x].adr.ville[1]:=upcase(agend[x].adr.ville[1]);
write('PAYS: ');
readln(agend[x].adr.pays);
agend[x].adr.pays[1]:=upcase(agend[x].adr.pays[1]);
writeln('');
writeln('NUMERO DE TELEPHONE: ');
Writeln('--------');
writeln('');
write('CODE REGIONAL: ');
readln(agend[x].tel.prefixeloc);
write('NUMERO: ');
readln(agend[x].tel.numero);
writeln;writeln;
Writeln('');
writeln('Adresse email');
readln(agend[index[x]].email.adresses,);
writeln;writeln;
end;
procedure
tri(x:integer; p:char);
var i,j,k,e,min,buffer:
integer;
begin
case (p) of
'n':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
k:=1;
while (agend[index[j]].nom[k])=(agend[index[min]].nom[k]) do k:=k+1;
if (agend[index[j]].nom[k])<(agend[index[min]].nom[k]) then min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//nom
'p':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
if (agend[index[j]].prenom[1])<(agend[index[min]].prenom[1]) then
min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//prenom
'p':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
if (agend[index[j]].prenom[1])<(agend[index[min]].prenom[1]) then
min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//prenom
'e':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
if
(agend[index[j]].email.adresses)<(agend[index[min]].email.adresses)
then min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//adresse email
'v':begin
for i:=1
to x-1 do
begin
min:=i;
for
j:=i+1 to x do
begin
if (agend[index[j]].adr.ville[1])<(agend[index[min]].adr.ville[1])
then min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//ville
'l':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
if (agend[index[j]].adr.pays[1])<(agend[index[min]].adr.pays[1])
then min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;//pays
't':begin
for i:=1 to x-1 do
begin
min:=i;
for j:=i+1 to x do
begin
if
(agend[index[j]].tel.prefixeloc)<(agend[index[min]].tel.prefixeloc)
then min:=j;
end;
if (min)<>(i) then
begin
buffer:=index[i];
index[i]:=index[min];
index[min]:=buffer;
end;
end;
end;
//telephone
end //case
end; //procedure tri
begin
ct:=0;
t:='z';
for q:=1 to n do
index[q]:=q;
writeln('---===PROGRAMME AGENDA ===---');
repeat
begin
writeln;writeln;writeln;
writeln('Que voulez-vous faire ?:');
writeln('------------------------');
writeln;
writeln('A Ajouter une entree dans l''agenda');
if (ct)>0 then
begin
writeln('M Modifier une entre dans l''agenda');
writeln('R Chercher une personne dans l''agenda');
writeln('S Supprimer une entree de l''agenda');
writeln('T Trier l''agenda');
end;
writeln('Q Quitter le programme');
writeln;
writeln;
write('Votre choix: ');
readln(t);
t:=upcase(t);
case (t) of
'A':begin
ct:=ct+1;
encodage(ct);
end;
'M':t:=t;
'R':recherche(ct);
'S':t:=t;
'T':begin
writeln('Quel tri voulez-vous effectuer ?:');
writeln('Par nom(n), par prenom(p), par code postal(c),');
writeln('par ville(v), par pays(l), par telephone(t), par email (e) ?:');
readln(z);
tri(ct,z);
end;
'Q':begin
write('ETES-VOUS SUR ? Oui(1) / Non(2): ');
readln(q);
if (q) = 1
then
nn:='Q';
end;
end;
writeln('L''Agenda contient actuellement: ');
affiche(ct,0);
end;
until (nn) = 'Q';
end.
A voir également:
- Dev-pascal carnet d'adresse
- Turbo pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Adresse mac - Guide
- Massgrave dev - Accueil - Windows
- Darkino nouvelle adresse - Guide
3 réponses
bon je suis pas un ptit génie du pascal je suis en bac +1 donc je galère un peu (j'ai d'ailleurs mon exam demain ca va être un vrai génocide ^^)
mais par hasard... dans tes types t'aurais pas oublier de mettre email ???
mais par hasard... dans tes types t'aurais pas oublier de mettre email ???
bon je suis pas un ptit génie du pascal je suis en bac +1 donc je galère un peu (j'ai d'ailleurs mon exam demain ca va être un vrai génocide ^^)
mais par hasard... dans tes types t'aurais pas oublier de mettre email ???
en tout cas readln(agend[index[x]].email.adresses,); ya une virgule en trop (ligne 198)
mais par hasard... dans tes types t'aurais pas oublier de mettre email ???
en tout cas readln(agend[index[x]].email.adresses,); ya une virgule en trop (ligne 198)
Je crois que dans type il ne faut pas faire les deux points : mais un "égal" =
assi ce programme ne vas faire que stocker les données/résultats temporairement , pour les garder, il faut qu'ils soient en mémoire auxilière ( disque dur) en créent un fichier
si tu ne sais pas comment créer un fichier tu visites ce site ---> site
assi ce programme ne vas faire que stocker les données/résultats temporairement , pour les garder, il faut qu'ils soient en mémoire auxilière ( disque dur) en créent un fichier
si tu ne sais pas comment créer un fichier tu visites ce site ---> site