Vous trouverez les énoncés des TD sur le moodle du cours ici.
TP 3 : boucle while; expressions booléennes; type de données
Évaluation d'expressions booléennes
Une variable de type booléenne est une variable qui ne peut admettre que deux valeurs : soit VRAI, soit FAUX.
Très souvent, on codera une variable booléenne comme étant un entier dont la valeur est soit 1 pour VRAI, soit 0 pour FAUX.
De manière simple, une expression booléenne est une expression qui donne une valeur booléenne.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
intmain(){/* EXERCICE 3 : Evaluation d'expression booleene */printf("EXERCICE 3 : Evaluation d'expression booleene\n");inta,b;// nos variables booleenesprintf("Entrez deux variables booleenes : ");scanf("%d %d",&a,&b);// affichage: on utilise \t pour afficher une tabulationprintf("a\tb\ta et b\ta ou b\tNON a\tNON b\tNON a ET b\n");printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",a,b,a&&b,a||b,!a,!b,!a&&b);returnEXIT_SUCCESS;}
Type de données
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
intmain(){/* EXERCICE 5 : Polynome */printf("EXERCICE 5 : Polynome\n");doublex=0.707107;doublepoly=8118*pow(x,4)-11482*pow(x,3)+pow(x,2)+5741*x-2030;printf("poly vaut : %f\n",poly);// On obtient toujours 0 à cause des arrondis et du manque de précision// Ne pas oublier l'option -lm à la compilation pour utiliser la bibliothèque <math.h>returnEXIT_SUCCESS;}
Fibonacci
Pour une petite documentation et retrouver les valeur de la suite, allez ici.
#include <stdio.h>
#include <stdlib.h>
intmain(){/* EXERCICE 6 : Suite de Fibonacci */printf("EXERCICE 6 : Suite de Fibonacci\n");// fibo (n) = | 1 si n == 1 ou n == 2// | fibo (n-1) + fibo (n-2) sinon// Pour l'instant nous n'allons pas écrire de fonction (on va faire une boucle)// question 1 : boucle forintu1=1,u2=1,u3=0;intn=0;printf("Entrez la valeur de n (>= 3): ");scanf("%d",&n);for(inti=2;i<n;++i){u3=u1+u2;// c'est comme si on disait u_i = u_{i-1} + u_{i-2}printf("f(%d) = %d\n",i+1,u3);u1=u2;// puis pour la prochaine itération on décale les termes de 1u2=u3;}printf("Fibo(%d) vaut : %d\n",n,u3);// question 2 : boucle while// L'utilisateur entre un entier m, on veut afficher fibo(n) et n tel que fibo(n) <= mintm=0;u1=1,u2=1,u3=0;printf("\nEntrez la valeur de m (>=2): ");scanf("%d",&m);intrang=2;while(u3<=m){u3=u1+u2;u1=u2;u2=u3;++rang;}// quand on sortira de la boucle cela veut dire que nous avons fibo(n) > m,// il nous faut donc afficher n-1 et fibo(n-1)// n-1 vaut rang-1 et fibo(n-1) vaut u1printf("Valeur du terme inferieur a %d : %d de rang %d\n",m,u1,rang-1);returnEXIT_SUCCESS;}