Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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 l’utilisateur du programme via le clavier de l’ordinateur . &n : indique que l’on utilise l’adresse ( &) 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 l’appelle 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) ; L’instruction FOR est un cas particulier de l‘instruction WHILE ( tant que ): i=0 i = i+1 Afficher i i < 3 ? oui non i=0; tant que ( i<3 est vraie ) { printf(“i=%d\n”,i) ; i=i+1; } i=0 i=1 i=2
3
La boucle for : init7.c et init71.c
=> 5.3 for (initialisation; condition; expression3) instruction ; L’instruction FOR est un cas particulier de l‘instruction WHILE ( tant que ): Initialisation expression 3 Instruction Condition est vraie oui non initialisation; tant que ( condition est vraie ) { instruction ; expression3; } Pour sortir de la boucle : l’expression 3 doit faire évoluer la variable de contrôle
4
La boucle for : init7.c et init71.c
=> 5.5 la valeur d’initialisation 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 l’arrivée : on affiche n³ .
5
La boucle for : init7.c et init71.c
=> 5.6 Aucune différence entre l’exécution de init70.c et celle de init71.c . “#define PUISS 3” n’est pas une instruction !!! C’est 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 l’exé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 l’espace 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 ; L’instruction IF permet de tester une condition et d’exécuter une instruction ou un bloc d’instruction . Instruction1 Condition est vraie oui non Instruction2 if ( condition ) instruction1 ; else instruction2 ; Remarque : La partie ELSE n’est pas obligatoire .
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 c0? a=0 et b 0? 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? delta négatif? 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 d’une 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 : Structure num.1 #include<stdio.h> main() { //definition des variables int k; char onde; float bobo; instruction1; instruction2; fonction_1(); instruction3; fonction_2(); …………. instruction n; } Structure num.3 #include<stdio.h> main() { //definition des variables int i; char c; float b; instruction1; instruction2; ………… instruction n; } #include<stdio.h> main() { //definition des variables int tab[10]; char kiki; float temperature; fonction_1(); fonction_2(); …………. fonction_n(); } Mélange d ’instructions et de fonctions à exécuter Une suite d ’instructions à exécuter Une suite de fonctions à exécuter Structure num.2
14
Structures possibles de programme:
Structure num.2 ou num.3 #include<stdio.h> void fonction1(); main() { //definition des variables int k; char onde; float bobo; instruction1; instruction2; fonction_1(); ………. instruction n; } void fonction1() declarations instructions 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() => 7.3 L’appel à l’exécution de la fonction ‘bonjour’: ….Elle s’effectue en la nommant dans le programme …et c’est tout ! void bonjour() “vide” : ne renvoie rien d’utile au reste du programme les arguments : ici…aucun !
16
Les fonctions: Une fonction est l ’équivalent d ’un sous-programme en langage assembleur sauf qu ’ici : Syntaxe d ’écriture d ’une fonction : 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 . <type de la valeur de retour>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 l’exé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 Un projet contient plusieurs fichiers : fichiers *.c et des fichiers *.h Projet main.c outils.c outils.h Fichier d’en-tête 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 Un projet contient plusieurs fichiers : fichiers *.c et des fichiers *.h Projet main.c mot.c mot.h Fichier d’en-tête #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);
20
Introduction au langage C
Et maintenant , on attaque …..
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.