• Aucun résultat trouvé

Solutions du cahier d’exercices Structures de données et algorithmes GPA665

N/A
N/A
Protected

Academic year: 2022

Partager "Solutions du cahier d’exercices Structures de données et algorithmes GPA665"

Copied!
7
0
0

Texte intégral

(1)

École de technologie supérieure

Département de génie de la production automatisée

GPA665

Structures de données et algorithmes

Solutions du cahier d’exercices Série d’exercices no. 1 : Le langage C

Session : Automne 2002 Responsable du cours : Mohamed Cheriet, ing., Ph. D.

Locaux : Cours : 3740 Chargé de cours : Jean-Christophe Demers Laboratoire : 3324 Chargé de laboratoire : Nicolas Morency

Exercice 1

Sortie du programme :

6, 8 8, 7

(2)

Ne compile pas pour plusie urs raisons.

main() { int x;

int y;

x = 10;

c = x + 3; /* 1 */

if (c = 2) { /* 2 */

int c, d;

c = y - 3; /* 3 */

d = x + c;

printf("%d\n", c);

} else

d = x; /* 4 */

printf("%d, %d\n", x, c);

}

Note 1 : La variable c n’est pas déclarée (ne compile pas).

Note 2 : La variable c n’est pas déclarée (ne compile pas). Même si ce n’est pas une erreur, il faut faire attention à cette ligne de code puisque ce n’est pas une comparaison d’égalité entre c et 2 qui est faite mais plutôt une affectation de la valeur 2 à la variable c. Il ne faut pas oublier que le résultat d’une affectation est la valeur affectée, alors l’instruction conditionnel if donne vrai puisque c’est la valeur 2 qui est évaluée.

Note 3 : Ici la ligne est valide et compile mais attention à la variable y qui n’a pas été initialisée. Certains compilateurs l’auront initialisé à 0 lors de la déclaration, mais d’autre non.

Note 4 : La variable d n’est pas déclarée dans ce bloc, elle est déclarée dans le bloc inclus sous le if.

Exercice 3

Sortie du programme :

a = 5, b = 5, c = 1 a = 1, b = 0, c = 3 a = 6, b = 3, c = 6

(3)

Exercice 4

Sortie du programme :

Le carré de 0 est 0 Le carré de 1 est 1 Le carré de 2 est 4 Le carré de 3 est 9

Exercice 5

Valeur des variables :

x y z

a

10 10 0

b

45 10 0

c

25 0 11

d

6 6 5

e

0 12 0

f*

6 0 5

Il y a une coquille dans l’énoncé. Considérez poutôt : do x++, z = x + y; while(x++, x <= 4);

Exercice 6

Sortie du programme :

i = 2, j = 7 et k = 7 i = 0, j = 0 et k = 0 i = 0, j = 0 et k = 1

Exercice 7

Voici un exemple de code avec une version très compacte de la boucle for.

main() {

int a, b, c;

for (a = 1, b = 0; b < (a ? 3 : 6); a = !a, b++) { printf("Le carré de %d est %d\n", b, b*b);

} }

(4)

Exercice 8

Sortie du programme :

x = 22, y = 66

Exercice 9

Sortie du programme :

x = 2, y = 1

Exercice 10

Sortie du programme :

0, 1000 1, 100 2, 10 3, 1

Exercice 11

Sortie du programme :

j = 1, z = 1 j = 1, z = 2 j = 2, z = 3 j = 2, z = 4 j = 3, z = 5 j = 3, z = 6 j = 4, z = 7 j = 4, z = 8 j = 5, z = 9 j = 5, z = 10 j = 6, z = 11 j = 6, z = 12

(5)

Exercice 12

Table de conversion des températures Fahrenheit à Celcius.

void main(void) {

int i;

printf("Table de conversion des températures Fahrenheit à Celcius\n\n");

printf("\tFahrenheit\tCelcius\n");

for (i = -40; i <= 240; i += 20)

printf("\t%d (F)\t\t%0.2f (C)\n", i, (float)(i-32)*5.0/9.0);

}}

Voici la sortie de ce programme :

Table de conversion des températures Fahrenheit à Celcius

Fahrenheit Celcius -40 (F) -40.00 (C) -20 (F) -28.89 (C) 0 (F) -17.78 (C) 20 (F) -6.67 (C) 40 (F) 4.44 (C) 60 (F) 15.56 (C) 80 (F) 26.67 (C) 100 (F) 37.78 (C) 120 (F) 48.89 (C) 140 (F) 60.00 (C) 160 (F) 71.11 (C) 180 (F) 82.22 (C) 200 (F) 93.33 (C) 220 (F) 104.44 (C) 240 (F) 115.56 (C)

(6)

Suite de Fibonacci.

void main(void) {

int N1 = 1, N2 = 1;

int i, Temp;

printf("Suite de Fibonacci : \n\t1 - 1\n\t2 - 1\n");

for (i = 3; i <= 20; i++) {

printf("\t%d - %d\n", i, N1 + N2);

Temp = N1 + N2;

N1 = N2;

N2 = Temp;

} }

*Il y a une coquille dans l’énoncé.

La suite de Fibonacci ne commence pas par 1, 1, 3, 5, ... mais plutôt par 1, 1, 2, 3, 5, ...

Voici la sortie de ce programme :

Suite de Fibonacci : 1 - 1

2 - 1 3 - 2 4 - 3 5 - 5 6 - 8 7 - 13 8 - 21 9 - 34 10 - 55 11 - 89 12 - 144 13 - 233 14 - 377 15 - 610 16 - 987 17 - 1597 18 - 2584 19 - 4181 20 - 6765

(7)

Exercice 14*

Sortie du programme :

vec[3] = 9 vec[2] = 4 vec[1] = 1 vec[0] = 0 0 1 4 9

vec[0] = 0 vec[1] = 1 vec[2] = 4 vec[3] = 9 9 4 1 0

0 1 4 9

*Le code se trouvant au bas de l’exercice 13 correspond au no. 14 . Vous devez donner la sortie du programme.

Références

Documents relatifs

Imagine un autre personnage qui rencontre la fourmi.. Complète les phrases et dessine

Le cas limite ne peut être évité ici car la fonction est simple et linéaire : à chaque appel récursif, le problème est immanquablement diminué jusqu’à ce que le tableau soit

Le deuxième exemple parcours la nouvelle liste chaînée en utilisant habilement une variable static qui permet d’identifier le dernier noeud de la nouvelle liste pour chaque

DÉLAIS DE STAGE : périodes à compter de la date d’adhésion à la Mutuelle pendant laquelle la garan� e de la Mutuelle n’est pas due (pour certaines catégories de

Prem ièrem ent, parler de fracture num érique n'est pas un choix négatif par rapport au fait de m entionner les « dividendes num ériques » ; attirer l'attention (et l'action) sur

Aussitôt toute la classe embraye et adhère à cette demande d'autant plus facilement que Pierrette a un rôle de leader dans la classe.. C'est une « petite femme »,

vivent encore lo ng te mp s.. Morie·Cloude LORENZINO

Les données membres sont : categorie de type string et prix (prix d'un jour de location de l'outil) de type float. Les fonctions membres sont : un constructeur sans argument,