La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La boucle for : init7.c et init71.c => 5.1 la fonction scanf : la fonction scanf permet de saisir une valeur ou une chaine de caractère fournie par lutilisateur.

Présentations similaires


Présentation au sujet: "La boucle for : init7.c et init71.c => 5.1 la fonction scanf : la fonction scanf permet de saisir une valeur ou une chaine de caractère fournie par lutilisateur."— Transcription de la présentation:

1 La boucle for : init7.c et init71.c => 5.1 la fonction scanf : la fonction scanf permet de saisir une valeur ou une chaine de caractère fournie par lutilisateur du programme via le clavier de lordinateur. &n : indique que lon utilise ladresse ( &) de la variable n pour récupérer le caractère saisi au clavier. La variable n contient alors un entier saisi au clavier. => 5.2 La variable qui permet de parcourir la boucle FOR est la variable i. On lappelle la variable de contrôle de la boucle.

2 La boucle for : init7.c et init71.c => 5.3 EXEMPLE : for (i=0; i<3; i=i+ 1 ) printf(i=%d\n,i) ; i=0; tant que ( i<3 est vraie ) { printf(i=%d\n,i) ; i=i+1; } Linstruction FOR est un cas particulier de linstruction WHILE ( tant que ): i=0 i = i+1 Afficher i i < 3 ? oui non i=0 i=1 i=2

3 La boucle for : init7.c et init71.c => 5.3 for (initialisation; condition; expression3) instruction ; initialisation; tant que ( condition est vraie ) { instruction ; expression3; } Linstruction FOR est un cas particulier de linstruction WHILE ( tant que ): Initialisation expression 3 Instruction Condition est vraie oui non Pour sortir de la boucle : lexpression 3 doit faire évoluer la variable de contrôle

4 La boucle for : init7.c et init71.c => 5.5 la valeur dinitialisation de la variable res est égale à 1. Dans le premier passage dans la boucle res=1, puis res =(1) x n. Dans le second passage dans la boucle res=n, puis res =(n) x n. Dans le troisième passage dans la boucle res=n ², puis res =(n x n) x n. ……A larrivée : on affiche n ³.

5 La boucle for : init7.c et init71.c => 5.6 Aucune différence entre lexécution de init70.c et celle de init71.c. #define PUISS 3 nest pas une instruction !!! Cest une directive de compilation qui permet de remplacer le mot PUISS dans le programme par la valeur 3 AVANT la compilation du fichier source. int puiss=3 est la définition de la variable puiss qui mange 4 octets en mémoire pendant lexécution du programme !!! Beaucoup de paramètres dans le projet du robot seront définies par des déclarations symboliques (# DEFINE …..) afin déconomiser de lespace mémoire dans la mémoire de données dans le microcontrôleur.

6 La structure if…else : init8.c => 6.1 Les 3 parties du programme Présentation et saisie de a, b et c Calcul des racines Sortie du programme

7 La structure if…else : init8.c => if ( condition) ….else ; if ( condition ) instruction1 ; else instruction2 ; Linstruction IF permet de tester une condition et dexécuter une instruction ou un bloc dinstruction. Remarque : La partie ELSE nest pas obligatoire. Instruction1 Condition est vraie oui non Instruction2

8 La structure if…else : init8.c =>6.2 if ( ((a==0)&&(b==0)&&(c==0))) ….else ; La condition peut se traduire par : a =0 ET b=0 ET c=0. == : opérateur de comparaison && : opérateur ET logique En somme : la condition est VRAIE si les trois variables a,b et c sont nulles ! La condition est FAUSSE si une seule des variables est égale à 1.

9 La structure if…else : init8.c => 6.3 Algorigramme de init8.c :Calcul des racines oui Afficher " Infinité de solution " a=b=c=0? non Début a=b=0 et c 0? non oui a=0 et b 0? non oui Afficher " Pas de solution " Afficher " Une solution " Fin (suite) Calculer et afficher X=-c/b Afficher " Appuyer sur une touche " Attendre la saisie d une frappe

10 La structure if…else : init8.c oui Calculer le delta =b*b-4*a*c a 0? non delta =0? non oui delta négatif? non oui Afficher " Une solution " Fin (suite) Calculer et afficher X=-b/(2*a) Afficher " Appuyer sur une touche " Attendre la saisie d une frappe Afficher delta => 6.3 Algorigramme de init8.c :Calcul des racines(suite)

11 La structure if…else : init8.c => 6.3 Algorigramme de init8.c :Calcul des racines (suite) Afficher les valeurs de X1 et de X2 non Fin Afficher " Appuyer sur une touche " Attendre la saisie d une frappe Afficher " Delta positif deux solutions " Calculer X1 Calculer X2

12 Structures de programmation : init81.c => 7.1 Les 3 parties du programme Définition dune fonction bonjour Programme principal Description de la fonction bonjour

13 Structures possibles de programme: Il y a 3 types d écritures possibles d un programme en C : #include main() { //definition des variables int i; char c; float b; instruction1; instruction2; ………… instruction n; } #include main() { //definition des variables int k; char onde; float bobo; instruction1; instruction2; fonction_1(); instruction3; fonction_2(); …………. instruction n; } #include main() { //definition des variables int tab[10]; char kiki; float temperature; fonction_1(); fonction_2(); …………. fonction_n(); } Structure num.2 Structure num.1 Structure num.3 Mélange d instructions et de fonctions à exécuter Une suite d instructions à exécuter Une suite de fonctions à exécuter

14 Structures possibles de programme: #include void fonction1(); main() { //definition des variables int k; char onde; float bobo; instruction1; instruction2; fonction_1(); ………. instruction n; } void fonction1() { declarations instructions } Structure num.2 ou num.3 Pour ces 2 structures la définition des fonctions et leur description s effectuent en dehors de la fonction principale main. Définition ( ou déclaration du prototype ) Description de la fonction

15 Structures de programmation : init81.c => 7.2 La fonction bonjour : void bonjour() vide : ne renvoie rien dutile au reste du programme void bonjour() les arguments : ici…aucun ! => 7.3 Lappel à lexécution de la fonction bonjour: ….Elle seffectue en la nommant dans le programme …et cest tout !

16 Les fonctions: Une fonction est l équivalent d un sous-programme en langage assembleur sauf qu ici : Une fonction peut renvoyer une valeur de retour qui est typée : exemple int affich_temperature(….); Cette fonction renvoie un entier (int) après l execution ( ou le traitement ) de cette fonction. Une fonction peut aussi ….rien renvoyer : exemple void affich_temperature(….); Cette fonction renvoie aucune valeur utile à la suite du traitement du programme après l execution ( ou le traitement ) de cette fonction. Syntaxe d écriture d une fonction : nom_fonction(liste des variables reçues par la fonction) Exemple : int affich_temperature ( float temp ) int k; …………. instruction1; instruction2; ……………. return 1; Déclaration des variables locales Valeur de retour est un entier égal à 1

17 Utilisations des fonctions : init82.c => 8.9 Modification du programme pour traiter le cas du delta négatif A lexécution, cela peut donner :

18 Réalisation d un projet :mon_prem_projet Intérêts : hiérarchisation des problèmes, lisibilité, réutilisation L idée : Regrouper dans un même fichier source les fonctions ayant un même thème Projet main.coutils.coutils.h Fichier den-tête Un projet contient plusieurs fichiers : fichiers *.c et des fichiers *.h fichiers *.c et des fichiers *.h La déclaration des fonctions La description des fonctions

19 La modularité et la gestion de projet : Intérêts : hiérarchisation des problèmes, lisibilité, réutilisation L idée : Regrouper dans un même fichier source les fonctions ayant un même thème #include … #define … #include mot.h main( ) { vitesse1( ); AV_mot (X,Y); } /*Définition des fonctions ayant pour thème la gestion d un des 2 moteurs du robot*/ #include ( ce dont on a besoin ) int vitesse1( ) {…} int AV_mot (int min,int max) {…} /*Prototypes des fonctions ayant pour thème la gestion d un des 2 moteurs du robot et d éventuelles constantes symboliques*/ #define VIT_MAX 300 int vitesse1( ); int AV_mot (int,int); Projet main.cmot.cmot.h Fichier den-tête Un projet contient plusieurs fichiers : fichiers *.c et des fichiers *.h fichiers *.c et des fichiers *.h

20 Introduction au langage C Et maintenant, on attaque …..


Télécharger ppt "La boucle for : init7.c et init71.c => 5.1 la fonction scanf : la fonction scanf permet de saisir une valeur ou une chaine de caractère fournie par lutilisateur."

Présentations similaires


Annonces Google