ECP – Option SA Henri Fallon

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Rappels C.
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
Pour débutant … et autre Raymond Ripp
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
L’ interruption de boucle
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
FLSI602 Génie Informatique et Réseaux
1)Boucle for 2)Boucle while
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
Langage C Révision.
CPI/BTS 2 Programmation Web Introduction au PHP
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non.
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
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.
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Principes de programmation (suite)
Points importants de la semaine Les constantes de compilation. Les fonctions.
Points importants de la semaine Les constantes. Les boucles. Les opérateurs relationnels Les opérateurs logiques.
Instruction sélective switch-case Instruction répétitive do-while For
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.
Chapitre 8 Structure de contrôle.
Partie II Sémantique.
Formulaires, CGI et PHP David Gross-Amblard (CNAM-Vertigo/Cédric) Transparents originaux : Philippe Rigaux Projet 3I
Plan troisième cours Instruction sélective Instruction répétitive
Répéter dans un programme avec une Instruction itérative
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Structures alternative et répétitive
L’essentiel du langage C
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
2.1 - Historique Chapitre 2 : Introduction au langage C++
Département Technologie de l’Information et de la Communication
Algorithmique Les structures Rappel L'enchaînement séquentiel
B.Shishedjiev -Débogueur1 Déboguer? Comment trouver et corriger les erreurs?
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
CYCLE 6 : FONCTIONS Faire un programme en C avec des FONCTIONS 1- A quoi servent les FONCTIONS ? 2- Comment écrire un programme avec FONCTIONS ? 3- Comment.
Les adresses des fonctions
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
Boucles et Tests For( in ) { } While( ) { } Les exécutions conditionnelles (if.. else) peuvent être évitées avec des indexations logiques. Exemples: y=numeric(length(x));
Les structures répétitives en PHP Réfs : manuel p 317.
Un survol du language C.
Les tests.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 4.
Cours n° 3 Traitements en Java
Structures de contrôle
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Cacul itératif.
Fiabilisation des lectures au clavier. Problèmes liés à scanf: rencontre de caractères invalides Sans arrêt prématuré: compte = scanf(``%d%c``;&n,&c);
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Les structures de contrôle
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
Langage de programmation
Introduction à la programmation (420-PK2-SL) cours 6 Gestion des applications Technologie de l’information (LEA.BW)
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
O UTILS DE P ROGRAMMATION P OUR LES M ATHÉMATIQUES Mr. BENDIB. I MAA, LAMIS Laboratory, Université Larbi Tébessi - Tébessa.
Quiz C++ Les variables & les boucles.
Quelle est la valeur de S après exécution des instructions suivantes :
Transcription de la présentation:

ECP – Option SA Henri Fallon <henri.fallon@centraliens.net> “Rappels” de C, la suite ECP – Option SA Henri Fallon <henri.fallon@centraliens.net>

Macros « Instructions » de remplacement sont interprétées avant le compilateur remplacement « textuel » exemples : #define PI 3.141592 #define CINQ (3+2)‏ #define BIZARRE ,12); printf("Pi vaut %f, Cinq vaut %d, et douze vaut %d\n", PI, CINQ BIZARRE printf("Pi vaut %f, Cinq vaut %d, et douze vaut %d\n", 3.141592, (3+2) ,12);

Macro : danger #define CINQ 3+2 printf("3*5 vaut-il %d ?\n", 3*CINQ); /* Correct */ #define CINQ (3+2)‏ #define FOIS_TROIS(x) (x*3)‏ printf("cinq fois trois vaut-il %d?\n",FOIS_TROIS(3+2)); printf("cinq fois trois vaut-il %d?\n",(3+2*3)); /* Correct */ #define FOIS_TROIS(x) ((x)*3)‏

Choix multiples Pour éviter les nombreux « if » « else » switch( variable ) { case valeur_1: instructions_1; break; case valeur_2: instructions_juste_pour_2; /* que se passe-t-il si on ne met pas break ? */ case valeur_3: instructions_pour_2_et_3; default : printf("Valeur inconnue"); }

Meilleur contrôle des boucles Sortir d'une boucle : break int i=0; while(1) { printf("trois fois en tout\n"); if( ++i > 3 )‏ break; } /* Nous venons de réinventer la boucle "for" */ Passer à l'éxécution suivante : continue int i; for( i=-5; i<6; i++ ) { /* Evitons la division par zéro */ if( !i )‏ continue; printf( "100/%d = %d\n", i, 100/i ); }

Les structures Permettent de clarifier le code en stockant dans une seule variable un ensemble de variables struct rectangle { unsigned int longueur; unsigned int largeur; } r; r.longueur = 12; r.largeur = 42; printf("L'aire de r est %d\n", r.longueur * r.largeur );

Les structures (2)‏ Lourdeur des déclaration : struct rectangle { unsigned int longueur; unsigned int largeur; } r; struct rectangle r2; r.longueur = 12; r.largeur = 42; r2=r; printf("L'aire de r est %d\n", r.longueur * r.largeur );

Definir ses types instruction typedef typedef int mytype_int; typedef struct _rectangle { unsigned int longueur; unsigned int largeur; } rectangle; rectangle r; r.longueur = 12; r.largeur = 42; printf("L'aire de r est %d\n", r.longueur * r.largeur );

La memoire Variable dans les fonctions La fonction malloc dites « automatiques » allouées au début de la fonction automatiquement désallouées à la fin La fonction malloc permet d'allouer un « morceau » de memoire qui persiste même après le retour de la fonction ne la libère pas automatiquement : risque de « fuite memoire »

Variables automatiques : le piège char * chaine( void ) { char c[]= "chaine de retour"; return c; } /* ce programme va planter ! */ int main(void) { char * test; test = chaine(); printf("%s\n", test ); return 0;

malloc : allocation dynamique char * chaine( void ) { char * c; c = (char *)malloc( 5 * sizeof(char) ); return c; } /* ce programme va fonctionner ! */ int main( void ) { char * test; test = chaine(); printf("%s\n", test ); return 0;

libération La memoire allouée reste allouée ! Possibilité de « perdre » le pointeur : memory leak La fonction free /* ce programme va fonctionner ! */ int main( void ) { char * test; test = chaine(); printf("%s\n", test ); free(test); return 0; }

ré-allocation fonction realloc même retour que malloc

Bonnes pratiques tester le retour de malloc toujours libérer la memoire dès que possible lire le manuel des fonctions : allouent-elles la memoire ou doit-on l'allouer avant ? utiliser sizeof if( (p=malloc( taille * sizeof( int ) ) == NULL ) { printf("Erreur d'allocation\n"); return -1; } p[0] = 12; /* .... */

Les cast (transtypage)‏ Conversion explicite d'un type à un autre Attentions aux casts implicites ! unsigned int positif = 10; int negatif = -12; if( positif < negatif ) { printf("ah ben bravo l'implicite"); } if( negatif < (int)positif ) { printf("Il faut tout faire soi-même"); }ᄇ

A la pratique !