Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

mercredi 22 avril 2020

Baccalauréat 2017 Sujet 9 Corrigé

Program S9; Type tableau = array [1..100] Of string; tab = array[1..100] Of real; Var TC : tableau; TN : tab; N : integer; //******************************************** Procedure saisir(Var n:integer); Begin Repeat write('donner le nombre de participants :'); readln(n); Until n In [5..100]; End; //******************************************** Function verifgov(ch:String) : boolean; Var i : integer; test : boolean; Begin i := 0; If ch='' Then test := False Else Begin Repeat i := i+1; If upcase(ch[i]) In ['A'..'Z'] Then test := True Else test := false; Until Not(test) Or (i>=length(ch)); End; verifgov := test And (length(ch)<=15); End; {********************************************} Function verif(ch:String) : boolean; Var i : integer; test1,test2,testotal : boolean; Begin i := 0; Repeat i := i+1; If ch[i] In ['A'..'Z'] Then test1 := True Else test1 := false; Until (i>=3) Or Not(test1); If test1=false Then testotal := False Else Begin Repeat i := i+1; If ch[i] In ['0'..'9'] Then test2 := True Else test2 := false; Until Not(test2) Or (i>=length(ch)); testotal := test1 And test2; End; verif := (length(ch)=6) And testotal; End; //******************************************** Function npr(TN:tab;n:integer) : integer; Var i,s : integer; Begin s := 0; For i:=1 To n Do Begin If TN[i]>=10 Then s := s+1; End; npr := s; End; //******************************************** Function ntpg(TN:tab;TC:tableau;gov:String;n:integer) : integer; Var ch : string; i,j,s : integer; Begin s := 0; ch := ''; For j:=1 To 3 Do Begin ch := ch+upcase(gov[j]); End; For i:=1 To n Do Begin If (ch=copy(TC[i],1,3)) Then s := s+1; End; ntpg := s; End; //******************************************** Function nprg(TN:tab;TC:tableau;gov:String;n:integer) : integer; Var i,j,s : integer; ch : string; Begin s := 0; ch := ''; For j:=1 To 3 Do Begin ch := ch+upcase(gov[j]); End; For i:=1 To n Do Begin If (ch=copy(TC[i],1,3)) And (TN[i]>=10) Then s := s+1; End; nprg := s; End; //******************************************** Procedure remplir(Var TC:tableau;Var TN:tab;n:integer); Var i : integer; Begin For i:=1 To n Do Begin Repeat readln(TC[i]); Until verif(TC[i]); End; For i:=1 To n Do Begin Repeat readln(TN[i]); Until (TN[i]>=0) And (TN[i]<=20); End; End; //******************************************** Procedure afficher(TC:tableau;TN:tab;n:integer); Var TRG,TRN : real; gov : string; Begin TRN := (npr(TN,n)/n)*100; writeln('le taux de reussite national est de ',TRN:5:2,'%'); Repeat readln(gov); Until verifgov(gov); TRG := ((nprg(TN,TC,gov,n)/ntpg(TN,TC,gov,n))*100); writeln('le taux de reussite de ',gov,' est ',TRG:5:2,' %'); End; //******************************************** Begin saisir(n); remplir(TC,TN,n); afficher(TC,TN,n); End.
 
Back to top