Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

samedi 25 avril 2020

Baccalauréat 2011 SI Sujet 3 Corrigé

Program S3; Type nombre = Record nb_dec : string[100]; mention : string[100]; End; fnombre = file Of nombre; Var f : text; fd : fnombre; n : integer; //***************************************** Procedure remplir(Var f:text;n:integer); Var i : integer; ligne : string; Begin assign(f,'chaines.txt'); rewrite(f); For i:=1 To n Do Begin Repeat write('Saisir une chaine: '); readln(ligne); Until (length(ligne) In [1..9]); writeln(f,ligne); End; close(f); End; //***************************************** Function div11(ch:String) : boolean; Var spaire,simpaire,i,v,e : integer; Begin spaire := 0; simpaire := 0; For i:=1 To length(ch) Do Begin val(ch[i],v,e); If (i Mod 2=0) Then spaire := spaire+v Else simpaire := simpaire+v; End; If (abs(spaire-simpaire)Mod 11=0) Then div11 := true Else div11 := false; End; //***************************************** Function extraction(ch:String) : string; Var i : integer; res : string ; Begin res := ''; For i:=1 To length(ch) Do If (ch[i] In ['0'..'9']) Then res := res+ch[i]; extraction := res; End; //***************************************** Procedure extraire(Var f:text; Var fd:fnombre;n:integer); Var nb : nombre; i : integer; ligne,v : string; Begin reset(f); assign(fd,'nombres.dat'); rewrite(fd); For i:=1 To n Do Begin readln(f,ligne); v := extraction(ligne); With nb Do If (v='') Then Begin nb_dec := '1999999999'; mention := 'Ce n''est pas un nombre décimal.'; End Else Begin nb_dec := v; If (div11(v)) Then mention := ' est divisible par 11.' Else mention := ' n''est pas divisible par 11.' End; write(fd,nb); End; close(f); close(fd); End; Procedure affiche(Var fd:fnombre;n:integer); Var i : integer; nb : nombre; Begin reset(fd); For i:=1 To n Do Begin read(fd,nb); With nb Do writeln('Nb_dec: ',nb_dec,' ',mention); End; close(fd); End; //***************************************** Begin Repeat write('Donner le nombre de chaines: '); readln(n); Until (n<50); remplir(f,n); extraire(f,fd,n); writeln; writeln; writeln('----- CONTENU DU FICHIER NOMBRES.DAT -----'); writeln; writeln; affiche(fd,n); End.
 
Back to top