• Aucun résultat trouvé

Série d’exercices corrigés « programme allégé » : (théorique et pratique) Exercice 1 : (déclarations)

N/A
N/A
Protected

Academic year: 2022

Partager "Série d’exercices corrigés « programme allégé » : (théorique et pratique) Exercice 1 : (déclarations)"

Copied!
34
0
0

Texte intégral

(1)

Série d’exercices corrigés « programme allégé » : (théorique et pratique) Exercice 1 : (déclarations)

Compléter le tableau ci-dessous, par les déclarations Pascal adéquates :

Description Déclaration en Pascal (préciser le mot clé adéquat : CONST, VAR)

Une constante MSG de valeur

"E=MC2"

Un tableau V pouvant contenir 20 chaines et ayant des indices de type entier.

Une chaine de caractères CH pouvant contenir 15 caractères au maximum.

Une variable X pouvant contenir une valeur positive comprise entre 40000 et 70000

Un tableau T pouvant contenir 10 réels et ayant des indices de type caractères Une constante PI de valeur 3.14

Solution :

Description Déclaration en Pascal (préciser le mot clé adéquat : CONST, VAR)

Une constante MSG de valeur "E=MC2" CONST

MSG = 'E=MC2' ; Un tableau V pouvant contenir 20 chaines

et ayant des indices de type entier.

VAR V:array[1..20] of string;

Une chaine de caractères CH pouvant

contenir 15 caractères au maximum. VAR

CH :string [15] ; Une variable X pouvant contenir une

valeur positive comprise entre 40000 et 70000

VAR

X :longint ; Un tableau T pouvant contenir 10 réels et

ayant des indices de type caractères VAR

T :array['A' .. 'J'] of real ; Une constante PI de valeur 3.14 CONST

PI = 3.14;

Bac : Mathématiques -Sciences -Technique

(2)

Exercice 2 : (Pythagore)

Faire l’algorithme d’un programme nommé Pythagore qui saisit les longueurs des trois côtés AB, BC et AC d’un triangle et vérifier s’il est rectangle ou non en B en appliquant la formule de Pythagore AB2+BC2=AC2.

Solution :

0) Début Pythagore

1) Ecrire ("donner AB"), lire (AB) 2) Ecrire ("donner BC"), lire (BC) 3) Ecrire ("donner AC"), lire (AC)

4) Si (carré(AB) + carré(BC) = carré(AC) ) alors

MSG  "le triangle est rectangle en B"

Sinon

MSG "le triangle n’est pas rectangle en B"

Finsi

5) Ecrire (MSG) 6) Fin Pythagore

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

AB BC MSG AC

Réel Réel Réel Chaine

Stocker la longueur du coté AB Stocker la longueur du coté BC Stocker la longueur du coté AC

La nature du rectangle

(3)

Exercice 3 : (Factorielle)

Faire l’algorithme et la traduction pascal du programme qui permet de saisir un entier positif N et affiche son factoriel. Sachant que le factoriel de N se calcule comme suit :

N! = 1*2* … *(N-2)*(N-1)*(N) et 0!=1 Solution :

L’algorithme :

0) Début Factorielle 1) Repeter

Ecrire ("donner un entier positif"), lire (N) Jusqu’à(N≥0)

2) F1

Pour i de 1 à N faire F  F*i

Fin Pour

3) Ecrire (N ,"! = " , F) 4) Fin Factorielle

La traduction Pascal :

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

N F i

Entier Entierlong

Entier

Stocker une donnée La Factorielle

Compteur

(4)

Exercice 4 : (Tournage à la main)

Soit l’algorithme suivant : 0) Début travail

1) Ecrire ('' donner N '') , Lire(N) 2) R  0

3) Répéter

R  R + N mod 10 N  N div 10 Jusqu'à (N=0)

4) Ecrire ('' le résultat '' , R) 5) Fin travail

1- Traduire l’algorithme précédent en pascal

2- Faire le tournage à la main pour trouver les valeurs affichées par le programme travail pour N=125 et pour N=458

3- Déduire le rôle du programme travail.

Solution :

1) La traduction pascal

2) Tournage à la main : Pour N=125

initialisation Iteration1 Iteration2 Iteration3

N 125 12 1 0

R 0 0+5 = 5 5+2=7 7+1=8

Valeur affichée par le programme = 8 Pour N=458

initialisation Iteration1 Iteration2 Iteration3

N 458 45 4 0

R 0 0+8=8 8+5=13 13+4=17

Valeur affichée par le programme = 17 3) Rôle :

Saisir un entier N puis calculer et afficher la somme de ses chiffres

(5)

Exercice 5 : (Cryptage)

Faire l’analyse d’un programme intitulé CRYPTAGE qui permet de saisir une chaine de caractères CH non vide puis de la coder (crypter) selon le procédé suivant : Permuter chaque caractère d’indice pair avec le caractère qui le précède.

Exemple :

Si la chaine de départ CH = ''Anas'' , son codage donne la chaine suivante : ''nAsa''.

Solution :

Nom : CRYPTAGE

Résultat = Ecrire ("la chaine cryptée : " , CH) CH=[] Pour i de 1 à long(ch) faire

Si (i mod 2 = 0 ) alors AuxCH[i]

CH[i]  CH[i-1]

CH[i-1] Aux Fin Si

Fin Pour CH=[] Repeter

CH=donnée("donner une chaine ") Jusqu’à(long(CH)>0)

Fin CRYPTAGE

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

CH i Aux

Chaine de caractères Entier caractères

donnée compteur variable auxiliaire

(6)

Exercice 6 : (PGCD)

Ecrire l’algorithme nommé PGCD qui permet de calculer et d’afficher le PGCD (Le plus grand commun diviseur) de deux nombres entiers A et B strictement positifs, en utilisant la méthode suivante :

Cette méthode consiste à remplacer A par (A-B) si A>B, et B par (B-A) si B>A. On répète cette même opération jusqu’à obtenir A=B auquel cas, le PGCD cherché est A ou B.

Exemple :

Pour trouver le PGCD(24,18) : A= 24; B=18

A>B; AA-B A=6 et B=18 B>A; BB-A A=6 et B=12 B>A; BB-A A=6 et B=6 A=B; donc PGCD de A et de B est 6

Solution :

0) Début PGCD 1) Répéter

Ecrire ("donner A puis B "), lire(A,B) Jusqu’à(A>0) et (B>0)

2) Répéter Si A>B alors AA-B

Sinon si B>A alors BB-A

Fin Si

Jusqu’à(A=B)

3) Ecrire ("le PGCD (", A ," , " , B ," ) = " , A) 4) Fin PGCD

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

A i B

Entier Entier Entier

Compteur Donnée Donnée

(7)

Exercice 7 : (Nombre premier)

Un entier strictement positif est dit premier s’il n’a que deux diviseurs distincts : 1 et lui-même

Ecrire l’algorithme d’un programme qui saisit un entier N strictement positif et affiche un message indiquant si cet entier est premier ou non.

Exemple :

N=7 est un nombre Premier, parce que 7 est divisible uniquement par 1 et par 7.

Solution :

0) Début Premier 1) Répéter

Ecrire("donner un entier strictement positif "), lire(N) Jusqu’à(N>0)

2) Nb0

Pour i de 1 à Nb faire Si (N mod i = 0 ) alors Nb Nb+1 Fin Si

Fin Pour

3) Si (Nb=2) alors

Ecrire (N , " est premier ") Sinon

Ecrire (N , " non premier ") Fin Si

4) Fin Premier

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

i N Nb

Entier Entier Entier

Compteur l’entier à vérifier Nombre de diviseurs de N

(8)

Exercice 8:

Soit le bloc pascal suivant :

1) Déclarer les variables utilisées dans le programme travail.

2) Pour x=''AminA'' quel est le message affiché par le programme travail.

3) Déduire le rôle du programme travail.

(9)

Solution : 1)

2) Pour x=''AminA'' , le message affiché par le programme travail : non valide 3) le rôle du programme travail :

Saisir une chaine de caractères et vérifier et afficher si elle est palindrome ou non.

C’est-à-dire peut être lue de droite à gauche comme de gauche à droite.

(10)

Exercice 9:

Ecrire un programme pascal qui permet de saisir une chaine ch non vide de taille maximale égale à 10 et de l’afficher sous la forme d’un triangle comme le montre l’exemple suivant.

Exemple :

Pour ch =''ELBAHI'', on aura : E

EL ELB ELBA ELBAH ELBAHI Solution :

(11)

Exercice 10:

Ecrire l’l’algorithme d’un programme intitulé parfait qui permet de saisir un entier x strictement positif puis de vérifier et d’afficher s’il est parfait ou non.

Un entier est dit parfait s’il est égal à la somme de ses diviseurs autre que lui-même.

Exemple :

6 est un nombre parfait car 6=1+2+3

28 est un nombre parfait car 28=1+2+4+7+14 Solution :

0) Algorithme parfait 1) repeter

ecrire (''donner un entier ''), lire (x) jusqu’à (x≥0)

2) sd  0

Pour i de 1 à x div 2 faire Si( x mod i = 0 ) alors sd  sd+i Fin Si

Fin Pour 3) Si (sd=x) alors

ecrire(x ,''est parfait'') sinon

ecrire (x,''non parfait") Fin si

4) Fin parfait

(12)

Exercice 11:

Ecrire un algorithme intitulé MAX_MIN permettant :

 Remplir un tableau T par N entiers non nuls (avec 2<N<100)

 Puis de chercher et d’afficher le maximum et le minimum du tableau T.

Solution :

0) début MAX_MIN 1)Répéter

Ecrire(" donner N "), lire(N) jusqu'a(N>2) et (N<100) 2) Pour i de 1 à N faire Répéter

Ecrire("T[", i , "]=?"), lire(T[i]) Jusqu’à(T[i]≠0)

Fin Pour 3) Mx T[1]

Pour i de 2 à N faire Si (T[i]>Mx) alors MxT[i]

Fin si Fin pour

4) Ecrire ("Le maximum = ", Mx) 5) Mn T[1]

Pour i de 2 à N faire Si (T[i]< Mn) alors MnT[i]

Fin si Fin pour

6) Ecrire ("Le minimum = ", Mn) 7) Fin Max_Min

Tableau de Déclaration des Objets

Objet Type / Nature Rôle

i N Mn Mx

T

Entier Entier Entier Entier

Tableau [1..99] d’entier

compteur taille du tableau le minimum du tableau le maximum du tableau tableau contenant des entiers

(13)

Correction de quelques bacs pratiques « programme allégé »

(14)

Solution :

(15)
(16)
(17)

Solution :

-

(18)

Solution :

(19)

Solution :

(20)

Solution :

(21)
(22)

Solution :

(23)
(24)

Solution :

(25)

Correction des parties des bacs théoriques « programme allégé »

Attention : Tous ce qui est masqué par une étiquette bleue ne fait partie du programme de cette année.

Solution : :

(26)

Solution :

(27)

Solution :

*

(28)
(29)

Solution :

(30)

(31)
(32)

Solution :

a) mot3:=copy(mot1,3,6);

b) mot4:=concat(mot3,' ', mot2);

c) n:=length(mot4);

d)val(copy(mot2,1,1)m,n);

attention :

il faut utiliser les fonction et les procédures prédéfinies.

il faut utiliser les variables déclarées dans la partie VAR

(33)
(34)

Solution :

F-F-F-V F-V-F-F V-F-V-V

Bon Travail. (^__^)

Références

Documents relatifs

1°) Le nombre d’arbustes est maximum lorsque la mesure de la distance en mètres entre deux arbustes est égal à 1m. Pour trouver le nombre d’arbustes on peut chercher le

 Remarque : pour simplifier une fraction et la mettre sous forme irréductible on peut utiliser la décomposition en facteurs premiers du numérateur et celle

Ecrire un programme Pascal permettant de saisir un entier N strictement positif ( condition à ne pas vérifier ) puis déterminer et afficher sa nature suivant le nombre de

Montrez qu'un entier est divisible par 4 si et seulement si le nombre formé par ses deux derniers chires dans son écriture décimale est divisible par 4..

Soit n un entier naturel non nul et x un réel strictement positif... Les trois droites sont donc concourantes

Paternité-Partage des Conditions Initiales à l'Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-sa/2.0/fr/. 2 Rémy

[r]

Montrer qu’elle peut calculer m mod p en faisant une division euclidienne (que l’on pr´ ecisera) et 5 multiplications mod- ulo p, et m mod q en faisant une division euclidienne