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
- Darkino nouvelle adresse - Guide
- Massgrave dev - Accueil - Windows
- Adresse mac - 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