Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

samedi 25 avril 2020

Baccalauréat 2012 SI Sujet 1 Corrigé

Program S1; Uses crt; Type fdat = file Of integer; tab = array[1..20] Of string; Var fd : fdat; ft : text; n,p,d : integer; decomp : tab; //**************************************** Function verif(n,p:integer) : boolean; Var chn : string; Begin str(n,chn); verif := (length(chn)=p); End; //**************************************** Procedure remplir(Var fd:fdat; n,p:integer); Var i,v : integer; Begin rewrite(fd); For i:=1 To n Do Begin Repeat write('saisir un entier de ',p, ' chiffres: '); readln(v); Until verif(v,p); write(fd,v); End; End; //**************************************** Procedure affiche1(Var f:fdat); Var ch : string; Begin reset(f); While (Not(eof(f))) Do Begin read(f,n); writeln('---->',n); End; End; //**************************************** Procedure affiche(Var ft:text); Var ch : string; Begin reset(ft); While (Not(eof(ft))) Do Begin readln(ft,ch); writeln('---->',ch); readln; End; End; //**************************************** Procedure decompfact(Var T:tab;Var n:integer;v:integer); Var i : integer; chi : string; Begin i := 2; n := 0; While (v<>1) Do If (v Mod i=0) Then Begin n := n+1; str(i,chi); T[n] := chi; v := v Div i; End Else i := i+1; End; //**************************************** Function genere(T:tab;d:integer) : string; Var c : char; n,i : integer; chg,chn,ch : string; Begin chg := ''; ch := T[1]; n := 1; i := 1; Repeat i := i+1; If (T[i]=ch) Then n := n+1 Else Begin str(n,chn); chg := chg+chn+ch; ch := T[i]; n := 1; End; Until (i>d); genere := chg; End; //**************************************** Procedure decomposition (Var fd:fdat; Var ft:text; n:integer); Var chdecomp,chg : string; v,i,j : integer; Begin reset(fd); rewrite(ft); For i:=1 To n Do Begin read(fd,v); decompfact(decomp,d,v); write(v,' = '); For j:=1 To d-1 Do write(decomp[j],','); writeln(decomp[d]); chg := genere(decomp,d); writeln(ft,chg); End; End; //**************************************** Begin Repeat write('Saisir N: '); readln(n); Until (n>2) And (n<100); Repeat write('Saisir P: '); readln(p); Until (p>2) And (p<6); assign(fd,'nombres.dat'); assign(ft,'facteurs.txt'); remplir(fd,n,p); clrscr; writeln('--------------------------------------------------------'); writeln; writeln('------------ Le contenu du fichier Nombres.dat ---------'); writeln; writeln('--------------------------------------------------------'); decomposition(fd,ft,n); writeln('--------------------------------------------------------'); writeln; writeln('------------ Le contenu du fichier Facteurs.txt ---------'); writeln; writeln('--------------------------------------------------------'); affiche(ft); End.
 
Back to top