0% ont trouvé ce document utile (0 vote)
20 vues3 pages

Exo 11

Transféré par

Lamine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues3 pages

Exo 11

Transféré par

Lamine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Travaux Dirigés : Algorithmique et

Programmation en C
Exercice 11 – Somme des carrés sans multiplication

Énoncé
On veut écrire un algorithme serie qui prend en entrée un entier
strictement positif ℓ, puis calcule et affiche la somme des ℓ premiers car-
rés, sans utiliser l’opérateur de multiplication ni la fonction d’élévation
au carré.

Objectif :
S(ℓ) = 12 + 22 + 32 + · · · + ℓ2
Exemple attendu : pour ℓ = 5, l’algorithme devra afficher :

S(5) = 1 + 4 + 9 + 16 + 25 = 55

1. Relation de récurrence
Pour tout entier k > 0, on peut exprimer le carré de k en fonction
du carré de k − 1 par la relation suivante :

k 2 = (k − 1)2 + 2k − 1

Justification :
k 2 − (k − 1)2 = 2k − 1
Cette relation permet de calculer les carrés successifs en partant de
12 = 1 et en accumulant les différences.

1
TD Algorithmique en C Exercice 11

2. Algorithme en pseudo-code
Entrée : un entier ℓ > 0
Sortie : la somme S(ℓ) des carrés de 1 à ℓ, et le détail des termes

Début
1. Lire ℓ
2. somme ← 1
3. carre ← 1
4. Afficher ”S(ℓ) = 1”
5. pour k de 2 à ℓ faire
– carre ← carre + 2 × k − 1
– somme ← somme + carre
– Afficher " + " et le carre
6. Afficher " = " et somme
Fin

3. Programme C ANSI

1 # include < stdio .h >


2
3 int main () {
4 int l ;
5 printf ( " Entrez ␣ un ␣ entier ␣ strictement ␣ positif ␣ : ␣ ") ;
6 scanf ( " % d " , & l ) ;
7
8 if ( l <= 0) {
9 printf ( " Erreur ␣ : ␣ l ␣ doit ␣ etre ␣ strictement ␣ positif .\ n
");
10 return 1;
11 }
12
13 int somme = 1;
14 int carre = 1;
15
16 printf ( " S (% d ) ␣ = ␣ 1 " , l ) ;
17
18 for ( int k = 2; k <= l ; k ++) {
19 carre += 2 * k - 1;

2
TD Algorithmique en C Exercice 11

20 somme += carre ;
21 printf ( " ␣ + ␣ % d " , carre ) ;
22 }
23
24 printf ( " ␣ = ␣ % d \ n " , somme ) ;
25 return 0;
26 }

Listing 1 – Somme des carrés sans multiplications

4. Exemple d’exécution
Entrez un entier strictement positif : 5
S(5) = 1 + 4 + 9 + 16 + 25 = 55

Vous aimerez peut-être aussi