• Aucun résultat trouvé

IFT 1969 : Résumé pour les boucles.

N/A
N/A
Protected

Academic year: 2022

Partager "IFT 1969 : Résumé pour les boucles."

Copied!
1
0
0

Texte intégral

(1)

Semaine passée : Jeudi 20 janvier A) if imbriqué vs switch

B) Introduction à la boucle for

Quatrième semaine : Jeudi 27 janvier A) Les 3 boucles et leurs utilisations B) Qq applications scientifiques

C) Qq statistiques de base

(2)

IFT 1969 : Résumé pour les boucles.

A) But des boucles : répéter le même traitement B) Sortes de boucles :

Boucle Répéter … Boucle Tant que … Boucle Pour … do

instruction

while (cond continue);

while (cond continue)

instruction for(exp1;exp2;exp3) instruction

Boucle d’ordre militaire exécuter d’abord

vérifier après

Boucle plus civilisée vérifier d’abord exécuter après

Boucle plus systématique exp1 : initialisation exp2 : continuité exp3 : ajustement

Condition : pour continuer à répéter

Ne connaît pas à l’avance le nb. de fois Connaître le nombre de fois Répéter

le même traitement Tant que l’usager veut continuer

Recherche :

Tantque (! Trouvé) chercher …

borne

exepression i = k

borne

∏ expression i = k

Validation Lecture d’1 fichier

(à venir)

Indices des

tableaux (à venir) Calcul scientifique (plein d’exemples)

etc … etc … etc …

Exemple :

int somme = 0, valeur =1;

do {

somme = somme+valeur;

valeur++;

} while (valeur <= 50);

printf("somme =%d",somme);

Exemple :

int somme = 0, valeur =1;

while (valeur <= 50) { somme = somme+valeur;

valeur++;

}

printf("somme =%d",somme);

Exemple :

int somme = 0, valeur;

for (valeur=1; valeur <=

50; valeur++) somme = somme+valeur;

printf("somme =%d",somme);

(3)

IFT 1969 : hiver 2004

Résumé le calcul de quelques statistiques de base

Compteur Totaliseur Moyenne Minimum Maximum

But Pour compter:

0, 1, 2, 3, 4, …

Pour calculer un

total, une somme Somme divise par le nombre

Déterminer la plus petite valeur

Déterminer la plus grande valeur

Type Souvent int int ou float Souvent float int ou float int ou float Initiation Souvent par 0

avant et en dehors d'une

boucle int n = 0;

Souvent par 0

avant et en dehors d'une

boucle

Initialiser : la somme

et le compteur

Souvent par une valeur suffisamment

grande avant et en dehors

d'une boucle

Souvent par une valeur suffisamment

petite avant et en dehors

d'une boucle

Ajustement Incrémenter (ajouter 1 de plus) à la bonne

place, dans la boucle:

……

n++;

Ajouter (totaliser ) (ajouter 1 valeur

à l'ancienne somme) à la bonne place, dans la boucle:

……

somme += valeur;

Ajuster :

la somme et le compteur

Dans la boucle:

if (valeur <

minimum) minimum = valeur ;

Dans la boucle:

if (valeur >

maximum) maximum = valeur ;

Utilisation - Afficher - Calculer la moyenne

- Afficher - Calculer la moyenne

- Afficher - Afficher - Afficher

La bonne place : à expliquer en classe.

(4)

Écriture raccourcie, niveau du IFT 1969 :

variable = variable opérateur valeur; < --- > variable opérateur= valeur;

exemple : somme = somme + taille; < --- > somme += taille;

produit = produit * (n % 10) ; < --- > produit *= n % 10;

Cas spécial pour IFT 1969 :

n = n + 1 ; < --- > n += 1 ; < --- > n++;

/* Dans combien d'années, devienra t-on MILLIONNAIRE ? Explications : semaine du 24 janvier 2004

Matière : boucle do ... while ... (entre autres) À réfléchir sur la dernière exécution :

si nos grands parents ont pensé à nous!!!

*/

#include <stdio.h>

#include <ctype.h>

void main()

{ const float RICHESSE_VOULUE = 1000000.00;

float depotAnnuel, /* montant fixe de dépôt annuel */

taux, /* taux d'intérêt annuel espéré */

interetAnnuel, /* intérêt annuel à la fin de l'année qui

s'ajoute à la capitale à la fin de l'année (intérêt composé) */

capital; /* capital accumulé, année après année */

int nbAnnee; /* compteur du nombre d'années */

char reponse; /* Oui ou Non si l'usager veut continuer */

/* Traiter plusieurs placements tant que l'usager décide de continuer : */

do {

/* traitement pour un placement : */

/* Saisie les données : montant de dépôt et le taux d'intérêt */

printf("Quel est le montant de depot annuel (exemple 1000.0) ? ");

(5)

scanf("%f", &depotAnnuel);

printf("Quel est le taux annuel fixe espere (ex. 7.5 pour 7.5\%%) ? ");

scanf("%f", &taux);

if (depotAnnuel >= RICHESSE_VOULUE)

printf("Vous avez atteint ou depasse le seuil %10.2f $.\n"

"Donnez la chance aux autres personnes!\n", RICHESSE_VOULUE);

else {

/* affichage de l'en-tete pour résumer l'évolution du placement */

printf("\n\nFONDS XYZ inc.\n");

printf("Montant de depot annuel : %6.2f $\n", depotAnnuel);

printf("Taux d'interet annuel (suppose fixe) : %4.2f\n", taux);

printf("\n\nEvolution du placement :\n\n");

printf("Annee Capital (au debut) Interet annuel Capital (a la fin de l'annee)\n");

nbAnnee = 0;

capital = 0;

do

{ /* début d'une année de placement */

nbAnnee = nbAnnee + 1;

/* capital accumulé au début de l'année de placement */

capital = capital + depotAnnuel ;

printf("%3d %12.2f", nbAnnee, capital);

/* à la fin de l'année de placement : */

interetAnnuel = taux / 100.0 * capital ;

/* ajouter l'intérêt au capital pour une autre année */

capital = capital + interetAnnuel ;

printf("%25.2f %18.2f\n", interetAnnuel, capital);

}

while (capital < RICHESSE_VOULUE);

printf("\nApres %d annee(s), votre capital sera : %12.2f$\n", nbAnnee, capital);

}

/* Obtenir l'avis de l'usager */

printf("\n\nVoulez-vous continuer ? (o/n) ");

(6)

fflush(stdin);

scanf("%c", &reponse);

} while ( toupper(reponse) == 'O' );

printf("\nBonnes reves!\n\n");

}

/* Exécution :

Quel est le montant de depot annuel (exemple 1000.0) ? 3000 Quel est le taux annuel fixe espere (ex. 7.5 pour 7.5%) ? 10

FONDS XYZ inc.

Montant de depot annuel : 3000.00 $

Taux d'interet annuel (suppose fixe) : 10.00

Evolution du placement :

Annee Capital (au debut) Interet annuel Capital (a la fin de l'annee)

1 3000.00 300.00 3300.00 2 6300.00 630.00 6930.00 3 9930.00 993.00 10923.00 4 13923.00 1392.30 15315.30 5 18315.30 1831.53 20146.83 6 23146.83 2314.68 25461.51 7 28461.51 2846.15 31307.67

(7)

8 34307.66 3430.77 37738.43 9 40738.43 4073.84 44812.27 10 47812.27 4781.23 52593.50 11 55593.50 5559.35 61152.85 12 64152.85 6415.29 70568.14 13 73568.14 7356.81 80924.95 14 83924.95 8392.50 92317.45 15 95317.45 9531.74 104849.19 16 107849.19 10784.92 118634.11 17 121634.11 12163.41 133797.52 18 136797.52 13679.75 150477.27 19 153477.27 15347.73 168824.99 20 171825.00 17182.50 189007.50 21 192007.50 19200.75 211208.25 22 214208.25 21420.82 235629.07 23 238629.08 23862.91 262491.99 24 265492.00 26549.20 292041.20 25 295041.19 29504.12 324545.31 26 327545.31 32754.53 360299.84 27 363299.84 36329.98 399629.83 28 402629.81 40262.98 442892.79 29 445892.78 44589.28 490482.06 30 493482.06 49348.21 542830.27 31 545830.25 54583.02 600413.27 32 603413.25 60341.32 663754.57 33 666754.56 66675.45 733430.02 34 736430.00 73643.00 810073.00 35 813073.00 81307.30 894380.30 36 897380.31 89738.03 987118.34 37 990118.38 99011.84 1089130.21 Apres 37 annee(s), votre capital sera : 1089130.25$

Voulez-vous continuer ? (o/n) o

(8)

Quel est le montant de depot annuel (exemple 1000.0) ? 12345678.0

Quel est le taux annuel fixe espere (ex. 7.5 pour 7.5%) ? 2.5 Vous avez atteint ou depasse le seuil 1000000.00 $.

Donnez la chance aux autres personnes!

Voulez-vous continuer ? (o/n) o

Quel est le montant de depot annuel (exemple 1000.0) ? 100 Quel est le taux annuel fixe espere (ex. 7.5 pour 7.5%) ? 15.0

FONDS XYZ inc.

Montant de depot annuel : 100.00 $

Taux d'interet annuel (suppose fixe) : 15.00

Evolution du placement :

Annee Capital (au debut) Interet annuel Capital (a la fin de l'annee)

1 100.00 15.00 115.00 2 215.00 32.25 247.25 3 347.25 52.09 399.34 4 499.34 74.90 574.24 5 674.24 101.14 775.37 6 875.37 131.31 1006.68 7 1106.68 166.00 1272.68 8 1372.68 205.90 1578.58 9 1678.58 251.79 1930.37 10 2030.37 304.56 2334.93 11 2434.93 365.24 2800.17 12 2900.17 435.02 3335.19 13 3435.19 515.28 3950.47 14 4050.47 607.57 4658.04

(9)

15 4758.04 713.71 5471.75 16 5571.75 835.76 6407.51 17 6507.51 976.13 7483.63 18 7583.63 1137.55 8721.18 19 8821.18 1323.18 10144.36 20 10244.36 1536.65 11781.01 21 11881.01 1782.15 13663.16 22 13763.16 2064.47 15827.63 23 15927.63 2389.15 18316.78 24 18416.78 2762.52 21179.30 25 21279.30 3191.89 24471.19 26 24571.19 3685.68 28256.87 27 28356.87 4253.53 32610.40 28 32710.40 4906.56 37616.96 29 37716.96 5657.54 43374.50 30 43474.50 6521.18 49995.68 31 50095.68 7514.35 57610.03 32 57710.03 8656.50 66366.54 33 66466.54 9969.98 76436.52 34 76536.52 11480.48 88016.99 35 88116.99 13217.55 101334.54 36 101434.54 15215.18 116649.72 37 116749.72 17512.46 134262.18 38 134362.17 20154.33 154516.50 39 154616.50 23192.47 177808.97 40 177908.97 26686.35 204595.31 41 204695.31 30704.30 235399.61 42 235499.61 35324.94 270824.55 43 270924.56 40638.68 311563.25 44 311663.25 46749.49 358412.74 45 358512.75 53776.91 412289.66 46 412389.66 61858.45 474248.11 47 474348.09 71152.21 545500.30 48 545600.31 81840.05 627440.36 49 627540.38 94131.05 721671.43

(10)

50 721771.44 108265.72 830037.16 51 830137.13 124520.57 954657.70 52 954757.69 143213.66 1097971.34 Apres 52 annee(s), votre capital sera : 1097971.38$

Voulez-vous continuer ? (o/n)

*/

Références

Documents relatifs

peinture au coton- tige : décorer ours avec des ronds collage : décorer ours en collant du fil (poils de l’ours) colorier l’ours avec des craies grasses La voix et

Introduction des variables : traduire l’algorithme donné en langage naturel à l’exercice 1p11 en langage pseudo algorithmique.. I Exercices

[r]

[r]

Vous pouvez faire une remise électronique autant de fois que vous le voulez, mais respectez la règle suivante: remettez toujours votre T.P.. du

On crée aussi un nouveau fichier nommé &#34;patinart.res&#34; dont chaque ligne contient les 9 notes et la note finale d’un patineur. Critères de correction du numéro 1 (total de

Pour effectuer une tâche , il est parfois nécessaire d’exécu- ter plusieurs fois de suite les mêmes instructions mais le nombre de fois n’est pas déterminé à l’avance :

En Python, pour interrompre un programme qui boucle à l'infini, il suffit de faire Ctrl + C.3. Remarque :