ihec carthage
bienvenue sur le forum de l'ihec
.
.
.
.
.
.
.
.
.
veillez vous inscrire pour pouvoir consulter nos sujets

serie algo - Les structures conditionnelles

Voir le sujet précédent Voir le sujet suivant Aller en bas

serie algo - Les structures conditionnelles

Message  Admin le Lun 7 Déc - 22:08

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.

Admin
Admin
Admin

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

Voir le profil de l'utilisateur http://ihec.onetudie.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum