Programation pascal
loujaine221
Messages postés
6
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
AIDEZ MOA !!!
élaboré ... intitulé VERIF-DATE qui permet de vérifier si une date saisi a partir du clavier sous forme JJ-MM-AA est correct ou non .
le programme doit afficher le message :
« la date JJ-MM-AA est correct « si la date est correct .
« la date JJ-MM-AA n’est correct « si la date n’est pa corect
Exp :
Date saisi 10-20-2003 le message afficher est : n’est correct.
Date saisi 10-01-2003 le message afficher est : correct .
AIDEZ MOA !!!
élaboré ... intitulé VERIF-DATE qui permet de vérifier si une date saisi a partir du clavier sous forme JJ-MM-AA est correct ou non .
le programme doit afficher le message :
« la date JJ-MM-AA est correct « si la date est correct .
« la date JJ-MM-AA n’est correct « si la date n’est pa corect
Exp :
Date saisi 10-20-2003 le message afficher est : n’est correct.
Date saisi 10-01-2003 le message afficher est : correct .
Configuration: Windows XP Firefox 2.0.0.20
2 réponses
-
Déjà si ton format d'année est AA, 2003 ne devrait pas être valide.
Ensuite ton problème se résout avec quelques conditions "if" ou "case of" -
Voici une proposition de code, je pense avoir traité tous les cas de saisies incorrectes.
program loujaine221; function verifDate(s:string):boolean; var boolJ,boolM,boolA:boolean; intJ,intM,intA,errJ,errM,errA:integer; begin if (length(s)=8) and (s[3]='-') and (s[6]='-') then begin val(copy(s,1,2),intJ,errJ); val(copy(s,4,2),intM,errM); val(copy(s,7,2),intA,errA); end else begin writeln('La date "',s,'" n''est pas correcte'); writeln('La date doit etre sous la forme JJ-MM-AA'); result:=false; exit; end; if (errJ=0) and (errM=0) and (errA=0) // JJ then begin boolJ:=(intJ>=1) and (intJ<=31); boolM:=(intM>=1) and (intM<=12); boolA:=(intA>=0) and (intA<=99); // toujours vrai puisque errA=0 end else begin writeln('La date "',s,'" n''est pas correcte'); writeln('JJ, MM, et AA doivent etre des entiers valides'); result:=false; exit; end; if boolJ and boolM and boolA then begin case intM of 1,3,5,7,8,10,12: result:=(intJ<=31); // toujours vrai puisque boolJ 2: result:=(intJ<=29) and ((intA mod 4=0) or (intJ<>29)); 4,6,9,11: result:=(intJ<=30); end; end else result:=false; if result then writeln('La date "',s,'" est correcte') else begin writeln('La date "',s,'" n''est pas correcte'); writeln('JJ, MM, et AA ne peuvent pas etre quelconques'); end; end; ////////////////////////////////////////////////////////// var date:string; begin while true do begin write('Entrez une date au format JJ-MM-AA : '); readln(date); verifDate(date); writeln; end; end.