serie algo - Les structures conditionnelles
Page 1 sur 1 • Partager •
serie algo - Les structures conditionnelles
Ecrire un programme qui, à partir du numéro d'un mois, permet d'afficher la saison.
Exemples :
Entrée :
mois = 7
Sortie
été
Entrée
mois = 5
Sortie
printemps
Correction
Program les_4_saisons;
Uses WinCrt;
Var
mois:integer;
r:string;
begin
writeln('Donnez le numéro d"un mois');
readln(mois);
case mois of
3..5:r:='printemps';
6..8:r:='été';
9..11:r:='automne';
12,1,2:r:='hiver';
end;
Writeln('Saison = ',r);
end.
Construire une calculette simple avec les opérations (+,-,*,/)
Écrire un algorithme et un programme intitulé JOURS, qui affiche le nombre de jours d'un mois donné.
On convient que le mois est saisi sous forme d'un entier ente 1 et 12
Remarque : pour le moi de Février (2) le programme demandera l'année.
Exemple
* Entrée : 4
* Sortie : 30
Correction :
Par : M. Rached Douari
Il s'agit de déterminer le nombre de jours d'un mois donné. Le problème se pose pour le mois de février qui est de 29 jours pour les années bissextiles. Une année est bissextile si elle est divisible par 4 quand elle est non multiple de 100 sinon c'est son quotient par 100 qui doit être multiple de 4. Exemple : 1900 est une année non bissextile par contre 2000 l'est.
.
Analyse du problème
NOM = nbr_jours_mois
S
L.D.E.
O.U.
2
1
3
Résultat = Écrire("Le nombre de jours du mois saisi est ", nbj)
nbj = [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
[nbj = 30]
sinon
[Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) or ((an MOD 4 =0) and (an MOD 100)<>0) alors
[nbj = 29]
FinSi
Fin nbr_jours_mois
nbj
m
an
Codification des variables
Nom
Code
Type
Rôle
nbj
nbj
entier
Nombre de jours
m
m
entier
Numéro du mois
an
an
entier
représente l'année
Algorithme
0) début nbr_jours_mois
1) [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
[nbj = 30]
sinon [ Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) ou ((an MOD 4 =0) et (an MOD 100)<>0) alors
[nbj = 29]
2) Écrire("Le nombre de jours du mois saisi est ", nbj)
3) Fin nbr_jours_mois
Traduction en Pascal
PROGRAM nbr_jours_mois;
USES CRT;
VAR nbj, m, an : INTEGER;
BEGIN
WRITE('N°mois : ') ; READLN(m) ;
nbj :=31;
IF m IN {4,6,9,11} THEN
BEGIN
nbj :=30;
END
ELSE
BEGIN
WRITE('Année : ',an);nbj := 28;
IF (an MOD 400 = 0) OR ((an MOD 4 = 0) AND (an MOD100)<>0) THEN
BEGIN
nbj := 29;
END;
END;
WRITELN('Le nombre de jours du mois saisi est ', nbj);
END.
Tâche : Ecrire un programme qui permet de lire une lettre puis affiche s'il s'agit d'une voyelle ou d'une consonne.
Exemple :
* Entrée : c="y"
* Sortie : y est une voyelle
Correction Problème : Voyelle ou consonne
Par : Ahmed Fessi
Pascal :
program VoyelleConsonne;
uses wincrt;
var
c:char;
begin
writeln('Donner une lettre');
readln(c);
c:=Upcase(c);
if Ord(c) in [65..90] then
Case c of
'A','E','Y','U','I','O' : writeln('Voyelle')
else writeln('Consonne');
end
else writeln('Ce n''est pas une lettre');
end.
Tâche : On vous donne trois nombres entiers non nuls. Ecrire un programme qui détermine si l'un d'eux est égal à la somme des deux autres. La fonction renvoie ce nombre s'il existe, 0 sinon.
Exemple :
* Entrée1 : x=18, y=42, z=24
* Sortie1 : 42
* Entrée2 : a=11, b=37, c=18
* Sortie2 : 0
Correction Problème : Les 3 nombres
Par : Ahmed Fessi
Pascal :
program The3Numbers;
uses wincrt;
var
x,y,z:integer;
begin
writeln('Donner 3 entiers');
readln(x,y,z);
if x+y=z then writeln(z) else
if x+z=y then writeln(y) else
if y+z=x then writeln(x) else
writeln(0);
end.
Tâche : Ecrivez un programme qui affiche "positif", "négatif", ou "nul", en fonction d'un nombre donné.
Exemple :
* Entrée : a=-23
* Sortie : -23 est négatif
Correction Problème : Signe d'un nombre
Par : Ahmed Fessi
Pascal :
program signe;
uses wincrt;
var
x:integer;
begin
writeln('Donner un entier');
readln(x);
if x>0 then writeln('positif')
else if x<0 then writeln('négatif')
else writeln('nul');
end.
Tâche : Ecrire un programme qui permet de saisir les coordonnées des trois sommets A, B et C d'un triangle puis détermine et affiche la nature du triangle (isocèle, équilatéral ou quelconque).
Exemple :
* Entrée : A(0,0), B(2,2), C(1,5)
* Sortie : ABC est isocèle
Correction Problème : Nature d'un Triangle
Par : Ahmed Fessi
Pascal :
program NatTriang;
uses wincrt;
var
xa,ya,xb,yb,xc,yc,ab,ac,bc : real;
b:boolean;
begin
writeln('donner les coordonnées de A, B, et C');
readln(xa,ya,xb,yb,xc,yc);
ab:=sqrt(sqr(xa-xb)+sqr(ya-yb));
ac:=sqrt(sqr(xa-xc)+sqr(ya-yc));
bc:=sqrt(sqr(xc-xb)+sqr(yc-yb));
b:=false;
if ((ab=ac) and (ab=bc))
then
begin
writeln('ABC est equilateral');
b:=true;
end;
if ((ab=ac) or (ab=bc) or (ac=bc)) and (b=false) then
writeln('ABC est isocèle');
if ((ab<>ac) and (ab<>bc) ) then
writeln('ABC est quelconque');
end.
Tâche : Ecrire programme qui résout une équation de second degré de la forme ax²+bx+c=0
Exemple :
* Entrée : a= 4, b=3, c=-7
* Sortie : x=1 ou x=-1.75
Correction Problème : Résolution de ax²+bx+c=0
Par : Ahmed Fessi
Pascal :
program Equation2;
uses wincrt;
var
a,b,c,x,x1,x2,d : real;
begin
writeln ('On se propose dans ce programme de résoudre les équations de 2nd degré dansIR');
writeln ('de forme E:ax2+bx+c');
writeln ('Donner le a, le b et le c dans l ordre et appuyez sur enter après chaque saisie');
writeln('donner le a');
readln(a);
writeln ('donner le b');
readln(b);
writeln ('donner le c');
readln (c);
if a=0 then
begin
if b=0 then if c=0 then writeln('La Solution est IR')
else writeln('Pas de solution')
else writeln('La solution est ',-c/b:6:2);
end
else
begin
d:= (b * b) - (4 * a * c) ;
if d < 0
then writeln ('Pas de solution');
if d = 0
then
begin
x := (- b) / (2 * a);
writeln('E adment une racine double ',x:6:2);
end;
if d > 0
then
begin
x1 := ((- b) - sqrt (d)) / ( 2 * a);
x2 := ((- b) + sqrt (d)) / ( 2 * a);
writeln ('E admet 2 racines'); writeln (x1:6:2) ; writeln (x2:6:2);
end;
end;
end.
Tâche : Ecrire programme qui permet de lire deux entiers a et b puis détermine si a est supérieur à b, inférieur à b ou égale à b.
Exemple :
* Entrée : a= 12, b=15
* Sortie : 12 < 15
Correction Problème : Comparaison de deux entiers
Par : Ahmed Fessi
Pascal :
program Comp2;
uses wincrt;
var
a,b:integer;
begin
writeln('Donner deux entiers a et b');
readln(a,b);
if (a>b) then writeln(a,' > ',b)
else if (a=b) then writeln(a ,' = ',b)
else writeln(a ,' < ',b);
end.
Tâche : Ecrire un programme Pascal qui permet de résoudre l'équation ax+b=0 dans l'ensemble des réels : distinguer les différents cas.
Exemple :
* Entrée : a=3, b=-3
* Sortie : x=1
Correction Problème : Résolution de ax+b=0
Par : Ahmed Fessi
Pascal :
program AxRes;
uses wincrt;
var
a,b:real;
begin
readln(a,b);
if (a=0) then
if (b=0) then writeln('La solution est IR')
else writeln('Pas de solution')
else writeln('La solution est ',(-b/a) :4:2);
end.
Tâche : Écrire un programme qui lit le nom d'une des bases constituants l'ADN puis affiche sa base complémentaire. Votre programme doit aussi afficher un message d'erreur dans le cas où la base n'existe pas.
Exemple :
* Entrée1 : B="A"
* Sortie1 : La base correspondante est T
* Entrée2 : B="C"
* Sortie2 : La base correspondante est G
* Entrée3 : B="D"
* Sortie3 : Erreur
Correction Problème : Bases d'ADN
Pascal :
program ADNBase; uses wincrt; var base:char; begin writeln('Donner la base de l''ADN'); readln(base); base:=UpCase(base); Case base of 'A':writeln('T'); 'T':writeln('A'); 'C':writeln('G'); 'G':writeln('C'); else writeln('Entrée non valide'); end; end.
Tâche : Sans utiliser la fonction prédifini qui renvoie la valeur absolue, écrire un programme qui affiche la valeur absolue d'un réel donné.
Exemple :
* Entrée : x=-3.25
* Sortie : 3.25
Correction Problème : valeur Absolue
Par : Ahmed Fessi
Pascal :
program Valeur_Abs;
uses wincrt;
var
x,Res:real;
begin
writeln('Donner le réel x');
readln(x);
if x>=0 then Res:=x else Res:=-x;
writeln('La valeur absolue de ',x:3:2,' est ',Res:3:2);
end.
Exemples :
Entrée :
mois = 7
Sortie
été
Entrée
mois = 5
Sortie
printemps
Correction
Program les_4_saisons;
Uses WinCrt;
Var
mois:integer;
r:string;
begin
writeln('Donnez le numéro d"un mois');
readln(mois);
case mois of
3..5:r:='printemps';
6..8:r:='été';
9..11:r:='automne';
12,1,2:r:='hiver';
end;
Writeln('Saison = ',r);
end.
Construire une calculette simple avec les opérations (+,-,*,/)
Écrire un algorithme et un programme intitulé JOURS, qui affiche le nombre de jours d'un mois donné.
On convient que le mois est saisi sous forme d'un entier ente 1 et 12
Remarque : pour le moi de Février (2) le programme demandera l'année.
Exemple
* Entrée : 4
* Sortie : 30
Correction :
Par : M. Rached Douari
Il s'agit de déterminer le nombre de jours d'un mois donné. Le problème se pose pour le mois de février qui est de 29 jours pour les années bissextiles. Une année est bissextile si elle est divisible par 4 quand elle est non multiple de 100 sinon c'est son quotient par 100 qui doit être multiple de 4. Exemple : 1900 est une année non bissextile par contre 2000 l'est.
.
Analyse du problème
NOM = nbr_jours_mois
S
L.D.E.
O.U.
2
1
3
Résultat = Écrire("Le nombre de jours du mois saisi est ", nbj)
nbj = [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
[nbj = 30]
sinon
[Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) or ((an MOD 4 =0) and (an MOD 100)<>0) alors
[nbj = 29]
FinSi
Fin nbr_jours_mois
nbj
m
an
Codification des variables
Nom
Code
Type
Rôle
nbj
nbj
entier
Nombre de jours
m
m
entier
Numéro du mois
an
an
entier
représente l'année
Algorithme
0) début nbr_jours_mois
1) [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
[nbj = 30]
sinon [ Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) ou ((an MOD 4 =0) et (an MOD 100)<>0) alors
[nbj = 29]
2) Écrire("Le nombre de jours du mois saisi est ", nbj)
3) Fin nbr_jours_mois
Traduction en Pascal
PROGRAM nbr_jours_mois;
USES CRT;
VAR nbj, m, an : INTEGER;
BEGIN
WRITE('N°mois : ') ; READLN(m) ;
nbj :=31;
IF m IN {4,6,9,11} THEN
BEGIN
nbj :=30;
END
ELSE
BEGIN
WRITE('Année : ',an);nbj := 28;
IF (an MOD 400 = 0) OR ((an MOD 4 = 0) AND (an MOD100)<>0) THEN
BEGIN
nbj := 29;
END;
END;
WRITELN('Le nombre de jours du mois saisi est ', nbj);
END.
Tâche : Ecrire un programme qui permet de lire une lettre puis affiche s'il s'agit d'une voyelle ou d'une consonne.
Exemple :
* Entrée : c="y"
* Sortie : y est une voyelle
Correction Problème : Voyelle ou consonne
Par : Ahmed Fessi
Pascal :
program VoyelleConsonne;
uses wincrt;
var
c:char;
begin
writeln('Donner une lettre');
readln(c);
c:=Upcase(c);
if Ord(c) in [65..90] then
Case c of
'A','E','Y','U','I','O' : writeln('Voyelle')
else writeln('Consonne');
end
else writeln('Ce n''est pas une lettre');
end.
Tâche : On vous donne trois nombres entiers non nuls. Ecrire un programme qui détermine si l'un d'eux est égal à la somme des deux autres. La fonction renvoie ce nombre s'il existe, 0 sinon.
Exemple :
* Entrée1 : x=18, y=42, z=24
* Sortie1 : 42
* Entrée2 : a=11, b=37, c=18
* Sortie2 : 0
Correction Problème : Les 3 nombres
Par : Ahmed Fessi
Pascal :
program The3Numbers;
uses wincrt;
var
x,y,z:integer;
begin
writeln('Donner 3 entiers');
readln(x,y,z);
if x+y=z then writeln(z) else
if x+z=y then writeln(y) else
if y+z=x then writeln(x) else
writeln(0);
end.
Tâche : Ecrivez un programme qui affiche "positif", "négatif", ou "nul", en fonction d'un nombre donné.
Exemple :
* Entrée : a=-23
* Sortie : -23 est négatif
Correction Problème : Signe d'un nombre
Par : Ahmed Fessi
Pascal :
program signe;
uses wincrt;
var
x:integer;
begin
writeln('Donner un entier');
readln(x);
if x>0 then writeln('positif')
else if x<0 then writeln('négatif')
else writeln('nul');
end.
Tâche : Ecrire un programme qui permet de saisir les coordonnées des trois sommets A, B et C d'un triangle puis détermine et affiche la nature du triangle (isocèle, équilatéral ou quelconque).
Exemple :
* Entrée : A(0,0), B(2,2), C(1,5)
* Sortie : ABC est isocèle
Correction Problème : Nature d'un Triangle
Par : Ahmed Fessi
Pascal :
program NatTriang;
uses wincrt;
var
xa,ya,xb,yb,xc,yc,ab,ac,bc : real;
b:boolean;
begin
writeln('donner les coordonnées de A, B, et C');
readln(xa,ya,xb,yb,xc,yc);
ab:=sqrt(sqr(xa-xb)+sqr(ya-yb));
ac:=sqrt(sqr(xa-xc)+sqr(ya-yc));
bc:=sqrt(sqr(xc-xb)+sqr(yc-yb));
b:=false;
if ((ab=ac) and (ab=bc))
then
begin
writeln('ABC est equilateral');
b:=true;
end;
if ((ab=ac) or (ab=bc) or (ac=bc)) and (b=false) then
writeln('ABC est isocèle');
if ((ab<>ac) and (ab<>bc) ) then
writeln('ABC est quelconque');
end.
Tâche : Ecrire programme qui résout une équation de second degré de la forme ax²+bx+c=0
Exemple :
* Entrée : a= 4, b=3, c=-7
* Sortie : x=1 ou x=-1.75
Correction Problème : Résolution de ax²+bx+c=0
Par : Ahmed Fessi
Pascal :
program Equation2;
uses wincrt;
var
a,b,c,x,x1,x2,d : real;
begin
writeln ('On se propose dans ce programme de résoudre les équations de 2nd degré dansIR');
writeln ('de forme E:ax2+bx+c');
writeln ('Donner le a, le b et le c dans l ordre et appuyez sur enter après chaque saisie');
writeln('donner le a');
readln(a);
writeln ('donner le b');
readln(b);
writeln ('donner le c');
readln (c);
if a=0 then
begin
if b=0 then if c=0 then writeln('La Solution est IR')
else writeln('Pas de solution')
else writeln('La solution est ',-c/b:6:2);
end
else
begin
d:= (b * b) - (4 * a * c) ;
if d < 0
then writeln ('Pas de solution');
if d = 0
then
begin
x := (- b) / (2 * a);
writeln('E adment une racine double ',x:6:2);
end;
if d > 0
then
begin
x1 := ((- b) - sqrt (d)) / ( 2 * a);
x2 := ((- b) + sqrt (d)) / ( 2 * a);
writeln ('E admet 2 racines'); writeln (x1:6:2) ; writeln (x2:6:2);
end;
end;
end.
Tâche : Ecrire programme qui permet de lire deux entiers a et b puis détermine si a est supérieur à b, inférieur à b ou égale à b.
Exemple :
* Entrée : a= 12, b=15
* Sortie : 12 < 15
Correction Problème : Comparaison de deux entiers
Par : Ahmed Fessi
Pascal :
program Comp2;
uses wincrt;
var
a,b:integer;
begin
writeln('Donner deux entiers a et b');
readln(a,b);
if (a>b) then writeln(a,' > ',b)
else if (a=b) then writeln(a ,' = ',b)
else writeln(a ,' < ',b);
end.
Tâche : Ecrire un programme Pascal qui permet de résoudre l'équation ax+b=0 dans l'ensemble des réels : distinguer les différents cas.
Exemple :
* Entrée : a=3, b=-3
* Sortie : x=1
Correction Problème : Résolution de ax+b=0
Par : Ahmed Fessi
Pascal :
program AxRes;
uses wincrt;
var
a,b:real;
begin
readln(a,b);
if (a=0) then
if (b=0) then writeln('La solution est IR')
else writeln('Pas de solution')
else writeln('La solution est ',(-b/a) :4:2);
end.
Tâche : Écrire un programme qui lit le nom d'une des bases constituants l'ADN puis affiche sa base complémentaire. Votre programme doit aussi afficher un message d'erreur dans le cas où la base n'existe pas.
Exemple :
* Entrée1 : B="A"
* Sortie1 : La base correspondante est T
* Entrée2 : B="C"
* Sortie2 : La base correspondante est G
* Entrée3 : B="D"
* Sortie3 : Erreur
Correction Problème : Bases d'ADN
Pascal :
program ADNBase; uses wincrt; var base:char; begin writeln('Donner la base de l''ADN'); readln(base); base:=UpCase(base); Case base of 'A':writeln('T'); 'T':writeln('A'); 'C':writeln('G'); 'G':writeln('C'); else writeln('Entrée non valide'); end; end.
Tâche : Sans utiliser la fonction prédifini qui renvoie la valeur absolue, écrire un programme qui affiche la valeur absolue d'un réel donné.
Exemple :
* Entrée : x=-3.25
* Sortie : 3.25
Correction Problème : valeur Absolue
Par : Ahmed Fessi
Pascal :
program Valeur_Abs;
uses wincrt;
var
x,Res:real;
begin
writeln('Donner le réel x');
readln(x);
if x>=0 then Res:=x else Res:=-x;
writeln('La valeur absolue de ',x:3:2,' est ',Res:3:2);
end.

Admin- Admin

- Messages: 20
Date d'inscription: 01/10/2009
Age: 21
Localisation: carthage

Sujets similaires» site streaming de film et serie :o
» Quel(s) sont vos film et serie prefere ?
» Thunder force serie
» [RESOLU] Mettre des minuscules pour enregistrer no de serie!
» La serie des project zero ( fatal frame en jap ff encore ^^)
» Quel(s) sont vos film et serie prefere ?
» Thunder force serie
» [RESOLU] Mettre des minuscules pour enregistrer no de serie!
» La serie des project zero ( fatal frame en jap ff encore ^^)
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum