• Aucun résultat trouvé

SERIE N°3 : LES STRUCTURES ITERATIVES

N/A
N/A
Protected

Academic year: 2022

Partager "SERIE N°3 : LES STRUCTURES ITERATIVES"

Copied!
10
0
0

Texte intégral

(1)

Exercice N° 1 :

Chercher tous les carrés parfaits de la forme aabb.

uses wincrt;

var i:integer;

ch:string[4];

begin

for i:=1000 to 9999 do begin

str(i,ch);

if (ch[1]=ch[2]) and (ch[3]=ch[4]) then write(i,' ');

end;

end.

Exercice N° 2 :

Soit la somme Sn = 1 + 1/22 + 1/32 + 1/42 + … + 1/n2

Saisir un entier naturel n (n ≥ 100), calculer et afficher la somme Sn. uses wincrt;

var

i,n:integer;

s:real;

begin

repeat

write('Donner un entier ');

readln(n);

until n>=100;

s:=1;

for i:=2 to n do s:=s+1/sqr(i);

write('Sn= ',s:0:3);

end.

Exercice N° 3 :

Chercher tous les entiers positifs formés de deux chiffres de la forme ab tel que : a+b divise a*b.

uses wincrt;

var i:integer;

begin

for i:=10 to 99 do

if ((i mod 10)*(i div 10) ) mod ((i mod 10)+(i div 10) )=0then write(i,' ');

end.

Exercice N° 4 :

Un entier est dit cubique s'il est égal à la somme des cubes de ses trois chiffres.

Exemple : 153 est un entier cubique parce que 153 = 13 + 53 + 33 Chercher tous les entiers cubiques de trois chiffres.

uses wincrt;

var

i,c,d,u:integer;

SERIE N°3 : LES STRUCTURES

ITERATIVES

(2)

begin

for i:=100 to 999 do begin

c:=i div 100;

d:=i div 10 mod 10;

u:=i mod 10;

if (sqr(u)*u)+(sqr(d )*d)+(sqr(c)*c)=i then write(i,' ');

end;

end.

Exercice N° 5 :

On remarque que : 12 * 42 = 21 * 24

Il existe 14 produits qui vérifient cette propriété : (10a+b)(10c+d) = (10b+a)(10d+c) Faire sortir tous ces entiers.

uses wincrt;

var

i,j:integer;

begin

for i:=10 to 99 do for j:=10 to 99 do

if ((i mod 10)*10+i div 10)*((j mod 10)*10+j div 10)=i *j then write('(',i,',',j,') ');

end.

Exercice N° 6 :

Calculer xn, x est un réel et n est un entier naturel positif.

uses wincrt;

var

i,n:integer;

x,p:real;

begin

write('Donner la puissance ');

readln(n);

write('Donner x ');

readln(x);

p:=1;

for i:=1 to n do p:=p*x;

write(x:0:2,' à la puissance ',n,' = ',p:0:2);

end.

Exercice N° 7 :

La suite de Fibonacci est définie par :

 

 

2 - n 1- n n

1 0

F F F

1 1 F F

Saisir un entier naturel n strictement supérieur à 1 puis calculer et afficher, pour toutes les valeurs de i inférieurs ou égales à n, les valeurs du rapport : Fi / Fi-1

uses wincrt;

var

i,n,f,f0,f1:integer;

begin

repeat

(3)

write('Donner le nombre de termes de la suite ');

readln(n);

until n >1;

f0:=1; write(f0,' ');

f1:=1; write(f1,' ');

for i:=2 to n do begin

f:=f1+f0;

f0:=f1;

f1:=f;

write(f,' ');

end;

end.

Exercice N° 8 :

Saisir un entier naturel n et afficher s’il est premier ou non.

Un nombre est dit premier s’il est divisible uniquement par 1 et lui-même.

uses wincrt;

var

n,nb,i:integer;

begin

repeat write('N=');

readln(n);

until n>0;

nb:=0;

for i:=1 to n do if n mod i=0 then nb:=nb+1;

if nb=2 then write(n,' est premier ') else write(n,' est non premier');

end.

uses wincrt;

var

n,i:integer;

test:boolean;

begin

repeat write('N=');

readln(n);

until n>0;

test:=true;

for i:=2 to n-1 do if n mod i=0 then test:=false;

if test =true then write(n,' est premier ') else write(n,' est non premier');

end.

uses wincrt;

var

n,i:integer;

begin

repeat

(4)

write('N=');

readln(n);

until n>0;

i:=2;

while (n mod i <>0) and(i<=n div 2) do i:=i+1;

if i > n div 2 then write(n,' est premier ') else write(n,' est non premier');

end.

Exercice N° 9 :

Saisir un entier naturel n et afficher sa factoriel.

Exemple : 5 ! = 120 program ex9;

uses wincrt;

var

x,i,f:integer;

begin

write('donner x ');

readln(x);

f:=1;

for i:= 1to x do f:= f*i;

write(x,'!= ' , f);

end.

Exercice N° 10 :

Chercher et afficher les entiers naturels premiers inferieurs à n.

uses wincrt;

var

i,n,j,k:integer;

begin

write('Donner n ');

readln(n);

for i:=2 to n do begin

k:=0;

for j:=1 to i do if i mod j =0 then k:=k+1;

if k=2 then write(i,' ');

end;

end.

Exercice N° 11 :

Une chaîne palindrome est une chaîne qui se lit dans les deux sens.

Saisir une chaîne de caractères et vérifier si elle est palindrome ou non.

Exemple : "radar" est une chaîne palindrome.

uses wincrt;

var i:integer;

ch:string;

test:boolean;

begin

write('Donner une chaine ');

(5)

readln(ch);

i:=0;

repeat i:=i+1;

if ch[i]=ch[length(ch)-i+1] then test:=true else test:=false;

until (test=false) or (i=length(ch) div 2);

if test then write(ch,' est palindrome') else write(ch, ' est non palindrome ');

end.

Exercice N° 12 :

Saisir n réels dans un tableau T (n compris entre 5 et 40), chercher le minimum et le maximum et la moyenne des éléments de T.

uses wincrt;

type

tab=array[1..40] of real;

var t:tab;

i,n:integer;

m,s,min,max:real;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..40];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

max:=t[1];

for i:=2 to n do if t[i]>max then max:=t[i];

writeln('max= ',max:0:2);

min:=t[1];

for i:=2 to n do if t[i]<min then min:=t[i];

writeln('min= ',min:0:2);

s:=0;

for i:=1 to n do s:=s+t[i];

m:=s/n;

write('moyenne = ',m:0:2);

end.

Exercice N° 13 :

Saisir un entier naturel n (n compris entre 10 et 100) suivi de n entiers à mettre dans un tableau T, ranger les entiers pairs et impairs respectivement dans les tableaux TP et TI.

uses wincrt;

type

tab=array[1..100] of integer;

var

t,ti,tp:tab;

(6)

i,j,k,n:integer;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..40];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

j:=0;

k:=0;

for i:=1 to n do if t[i] mod 2 =0 then begin

j:=j+1;

tp[j]:=t[i];

end else begin

k:=k+1;

ti[k]:=t[i];

end;

write('Les entiers pairs sont : ');

for i:=1 to j do write(tp[i],' ');

writeln;

write('Les entiers impairs sont : ');

for i:=1 to k do write(ti[i],' ');

end.

Exercice N° 14 :

Saisir deux entiers naturels n et m (n ≤ 10 et m ≤ 100).

Remplir le tableau TP et TN respectivement par n réels positifs et m réels négatifs.

Ranger, dans le tableau T, les éléments de TP suivis de ceux de TN.

uses wincrt;

type

tab=array[1..100] of integer;

var

t,tn,tp:tab;

i,m,n:integer;

begin

repeat

write('Donner n ');

readln(n);

until n <=10;

repeat

write('Donner m ');

readln(m);

until m <=100;

for i:=1 to n do begin

repeat

(7)

write('Tp[',i,']=');

readln(tp[i]);

until tp[i]>0;

t[i]:=tp[i];

end;

for i:=1 to m do begin

repeat

write('Tn[',i,']=');

readln(tn[i]);

until tn[i]<0;

t[i+n]:=tn[i];

end;

for i:= 1 to n+m do write(t[i],' ');

end.

Exercice N° 15 :

Saisir n entiers naturels dans le tableau T (n compris entre 5 et 100), faire l'insertion d'un entier k dans T à la position p.

uses wincrt;

type

tab=array[1..100] of integer;

var t:tab;

i,p,n,x:integer;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..100];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

repeat

write('Donner une position ');

readln(p);

until p in [1..n];

write('Donner un entier à inserer ');

readln(x);

for i:=n+1 downto p do t[i]:=t[i-1];

t[p]:=x;

for i:= 1 to n+1 do write(t[i],' ');

end.

Exercice N° 16 :

Saisir n caractères dans le tableau T (n compris entre 5 et 100), faire la suppression de l'élément de la position p et afficher la nouvelle version du T.

uses wincrt;

type

tab=array[1..100] of integer;

(8)

var t:tab;

i,p,n:integer;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..100];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

repeat

write('Donner une position ');

readln(p);

until p in [1..n];

for i:=p to n-1 do t[i]:=t[i+1];

for i:= 1 to n-1 do write(t[i],' ');

end.

Exercice N° 17 :

Saisir n caractères dans un tableau T (n compris entre 5 et 10), vérifier l'existence d'un caractère c dans le tableau et donner sa première position s'il existe.

uses wincrt;

type

tab=array[1..10] of char;

var t:tab;

i,n:integer;

c:char;

test:boolean;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..10];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

write('Taper un caractère ');

readln(c);

i:=0;

repeat

i:=i+1;

if t[i]=c then test:=true else test:= false;

until (test=true) or (i=n);

if test then write(c,' existe à la position ',i) else write(c,' n''existepas');

end.

(9)

Exercice N° 18 :

Saisir un tableau de n caractères (n compris entre 5 et 100), afficher la fréquence d'un caractère c dans T.

uses wincrt;

type

tab=array[1..10] of char;

var t:tab;

i,n,f:integer;

c:char;

begin

repeat

write('Donner n ');

readln(n);

until n in [5..10];

for i:=1 to n do begin

write('T[',i,']=');

readln(t[i]);

end;

write('Taper un caractère ');

readln(c);

f:=0;

for i:=1 to n do if t[i]=c then f:=f+1;

write('La fréquence de ',c,' est = ',f);

end.

Exercice N° 19 :

Saisir une chaine ch de longueur maximale 30 caractères ensuite inverser cette chaine.

Exemple : ch="INFO"

Le résultat sera : ch="OFNI"

program ex19;

uses wincrt;

var

ch:string;

x:char;

i:integer;

begin repeat

write('donner ch: ');

readln(ch);

until length(ch) <=30;

for i:=1 to length(ch) div 2 do begin

x:=ch[i];

ch[i]:=ch[length(ch)-i+1];

ch[length(ch)-i+1]:=x;

end;

writeln('la chaîne inversée est ',ch);

(10)

end.

Exercice N° 20 :

Saisir une chaine ch de longueur maximale 30 caractères ensuite extraire une chaine CHV contenant les voyelles et une chaine CHS contenant les symboles.

Exemple : ch="-INFO+2021 ?"

Le résultat sera : CHV="IO" et CHS="-+ ?"

program ex20;

uses wincrt ; var

i:integer;

ch, chv , chs :string ; begin

repeat

write('donner ch: ');

readln(ch);

until length(ch) in [1..30];

chv:= '';

chs:= '';

for i:=1 to length(ch) do

if upcase(ch[i]) in ['A','I','U','O','E','Y'] then chv:= chv+ ch[i]

else if not ( ch[i] in ['a'..'z' , 'A'..'Z' , '0'..'9' ] ) then chs:= chs + ch[i] ;

writeln( 'chv= ', chv);

writeln('chs= ',chs);

end.

Exercice N° 21 :

Saisir une chaine ch de longueur maximale 30 caractères ensuite afficher la fréquence de chacun de ses lettres.

Exemple : ch="Baccalaureat"

Le résultat sera : La fréquence de la lettre A est 4 La fréquence de la lettre B est 1 La fréquence de la lettre C est 2 La fréquence de la lettre E est 1 La fréquence de la lettre L est 1 La fréquence de la lettre R est 1 La fréquence de la lettre T est 1 La fréquence de la lettre U est 1 program ex21 ;

uses wincrt;

var ch:string;

i: char;

f,j: integer;

begin

repeat

(11)

write ('donner une chaine: ');

readln (ch);

until length (ch) in[1..30];

for i :='A' to 'Z' do begin

f:=0;

for j:= 1 to length (ch) do if upcase ( ch [j] ) = i then

f:= f+1 ;

if f<>0 then writeln (' la frequence de la lettre ',i, ' est ' ,f );

end;

end.

Références

Documents relatifs

=&gt; dans le cas contraire, déterminer et afficher un message indiquant si cette chaîne commence par une lettre majuscule ou minuscule. (abbreviation de « first, second,

=&gt; dans le cas contraire, déterminer et afficher un message indiquant si cette chaîne commence par une lettre majuscule ou minuscule. (abbreviation de « first, second,

Le 21 juillet 1969, Neil Armstrong et Buzz Aldrin ont marché sur la Lune. Les deux astronautes ont ramassé 21,7 kg de roches lunaires. C’est une « boule » de matière très petite

1)- Attraction gravitationnelle et concentration des gaz et des poussières et des étoiles.. La gravitation universelle. Page 3 - Les forces entre les poussières, les gaz

La masse moyenne d'acide nitrique apporte annuellement par Jes pluies acides est estimee a 7, 0kg par hectare Determiner la masse totale d'acide nitrique apporte

2 circuits LC sont couplés par une capacité C. Trouver les pulsations propres du système et donner la solution générale sachant qu’à t=0, seul C 1 possède une charge q.

On trouve différents algorithmes classiques en Mathématiques : algorithme de la division euclidienne, algorithme de la multiplication, algorithme d'écriture d'un entier dans

Exercice 7: Ecrire un programme permettant de saisir un entier N compris entre 5 et 10 puis de remplir un tableau T par N caractères alphabétiques majuscules ensuite on vous demande