La boucle for : init7.c et init71.c

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Les fonctions A quoi ça sert ?
Introduction au Langage C,C++
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Algorithmique Résume.
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Paramètres et pointeurs
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
Fonctions Dans un programme : certaines opérations (ou séquences d'opérations) peuvent se répéter plusieurs fois : affichage de tableau, saisie, ou même.
4. Les structures de tests
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Les bases de l’Algorithmique
Principes de programmation (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Langage C Révision.
Initiation à la programmation et algorithmique
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Démarche de résolution de problèmes
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Introduction à la programmation (Java)
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Développement logiciel pour microcontrôleurs PIC
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
8PRO107 Éléments de programmation
COURS DE PROGRAMMATION ORIENTEE OBJET :
LANGAGE C LP A2I IUT St DIE
Procédures et fonctions
Plan cours La notion de pointeur et d’adresse mémoire.
Faculté Polytechnique de Mons
L’essentiel du langage C
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
Le Bloc Case Cours LCS N°3 Présenté par Mr: LALLALI.
Programmer en langage c
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Sous-programmes.
Les adresses des fonctions
SIF-1053 Architecture des ordinateurs
Argc et argv Utilisation des paramètres de la ligne de commande.
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Introduction au langage C Fonctions et Procédures
Les types composés Les enregistrements.
Les surcharges d'opérateurs
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Patricia Renault UPMC 2005/2006
Langage de programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
Algorithmique Boucles et Itérations
Introduction au langage C
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

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 .

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

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

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³ .

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 .

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

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 .

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 .

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? 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

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)

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

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’

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

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

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 !

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

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 :

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

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);

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