Rappel Instruction de sélection Si (if) SI-Sinon (if-else) Si-Sinon si (if-else if...) Les abréviations du C x++ versus ++x +=, *=, /=, %=,...

Documents pareils
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Algorithmique et Programmation, IMA

V- Manipulations de nombres en binaire

Introduction au langage C

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };


Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Programmation en langage C

Programmation C++ (débutant)/instructions for, while et do...while

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Chap III : Les tableaux

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Les structures de données. Rajae El Ouazzani

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Java Licence Professionnelle CISII,

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Programmation Classique en langage C

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Langage Éric Guérin 5 octobre 2010

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d Algorithmique et de Langage C v 3.0

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Outils pour la pratique

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Initiation à la programmation en Python

Chapitre 2 Devine mon nombre!

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

SUPPORT DE COURS. Langage C

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

INITIATION A LA PROGRAMMATION

3IS - Système d'exploitation linux - Programmation système

STAGE IREM 0- Premiers pas en Python

Introduction au Langage de Programmation C

Programmation C. J.-F. Lalande. 15 novembre 2012

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Le langage C. Séance n 4

Programmer en JAVA. par Tama

Cours Programmation Système

Les structures. Chapitre 3

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Claude Delannoy. 3 e édition C++

Solutions du chapitre 4

Notions fondamentales du langage C# Version 1.0

Rappels Entrées -Sorties

Chapitre 1 : La gestion dynamique de la mémoire

Introduction à l algorithmique et à la programmation M1102 CM n 3

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Les processus légers : threads. Système L3, /31

Algorithmique et structures de données I

Conventions d écriture et outils de mise au point

Programmation système I Les entrées/sorties

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Bases de programmation. Cours 5. Structurer les données

Corrigé des TD 1 à 5

Le prototype de la fonction main()

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours Informatique Master STEP

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

R. A. A. Bébian. Mimographie, ou essai d écriture mimique. París, 1825

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

I. Introduction aux fonctions : les fonctions standards

Examen Médian - 1 heure 30

Organigramme / Algorigramme Dossier élève 1 SI

Plan du cours. Historique du langage Nouveautés de Java 7

Examen d informatique première session 2004

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

Initiation. àl algorithmique et à la programmation. en C

Notions de Langage C

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Cours 6 : Tubes anonymes et nommés

Programmation système de commandes en C

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Cours d algorithmique pour la classe de 2nde

TD3: tableaux avancées, première classe et chaînes

Petite initiation au langage C et au graphisme SDL

Algorithmique, Structures de données et langage C

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Programmation système en C/C++

2. Comprendre les définitions de classes

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Les fichiers. Chapitre 4

Les chaînes de caractères

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

INF 321 : mémento de la syntaxe de Java

Transcription:

Rappel Instruction de sélection Si (if) SI-Sinon (if-else) Si-Sinon si (if-else if...) Les abréviations du C x++ versus ++x +=, *=, /=, %=,... Instruction itérative Tant que Équivalent en C while do while

Déclaration de variable: Type id [= valeur]; Format de lecture et d écriture: %d, %f, %c,

Vrai ou faux? a < A 1 == 1! 0 5 == 1 1 == 49 5 < 0 < 1-1 a=1 (5 < 3) (2 < 6) 0 FAUX FAUX VRAI FAUX VRAI VRAI VRAI VRAI VRAI FAUX

#include <stdio.h> #include <stdlib.h> #define MAXHEURES 40.0 #define MAJORATION 1.5 /*Programme de calcul de salaire brut */ int main(void) { float taux; //sert a la saisie du taux horaire float nb_heures; //sert a la saisie i du nombre d heures float salaire; //sert au calcul du salaire //sollicitation du taux horaire printf( \n\nentrez le taux horaire svp : ); scanf( %f,&taux); //sollicitation du nombre d heures travaillees printf( \n\nentrez le nombre d heures travaillees : ); scanf( %f,&nb_heures); //calcul et affichage du salaire if(nb_heures<=maxheures) salaire = taux * nb_heures; else salaire = MAXHEURES * taux + (nb_heures MAXHEURES) * taux * MAJORATION; printf( \n\nvotre \ salaire brut est : %f,salaire);, } return EXIT_SUCCESS;

#include <stdio.h> #include <stdlib.h> #define MAXHEURES 40.0 #define MAJORATION 1.5 /*Programme de calcul de salaire brut */ int main(void) { float taux; //sert a la saisie du taux horaire float nb_heures; //sert a la saisie i du nombre d heures float salaire; //sert au calcul du salaire //sollicitation du taux horaire printf( \n\nentrez le taux horaire svp : ); scanf( %f,&taux); //sollicitation du nombre d heures travaillees printf( \n\nentrez le nombre d heures travaillees : ); scanf( %f,&nb_heures); //calcul et affichage du salaire if(nb_heures<=maxheures) salaire = taux * nb_heures; else salaire = MAXHEURES * taux + (nb_heures MAXHEURES) * taux * MAJORATION; printf( \n\nvotre \ salaire brut est : %f,salaire);, } return EXIT_SUCCESS;

Chaque instruction d affectation courante a une abréviation X = X + 3 X+= 3 X = X 3 X -= 3 X = X * 4 X *= 4 X = X % 2 X %= 2 X = X / 5 X /= 5 X =X + 1 X = X 1 X++ X--

Différence entre x++ et ++x X++ : post incrémentation L expression entière est évaluée avant l incrémentation ++X : pré incrémentation L incrémentation se fait avant l évaluation de l expression Exemple 1 : int tour = 1; int tour = 1; printf(" %d ", tour); printf(" %d ", tour++); tour = tour + 1 Affiche 1 et incrémente ensuite Exemple 2 : int tour = 1; printf( tf(" %d ", ++tour); Incrémente et affiche 2 ensuite int tour = 1; tour = tour + 1 printf(" %d ", tour);

Répétition ou boucle Instruction qui permet de répéter du code à exécuter selon l évaluation d une condition Tant que: Cette instruction permet de répéter les tâches à exécuter si l évaluation d une expression donne vraie

Forme générale : Tant que expression booléenne tâches à répéter tant que l expression est vraie fin Exemple : Tant que il vente fort je fais de la planche à voile fin

En C while (expression){ instructions à répéter tant que l expression est différente de zéro } Les parenthèses sont obligatoires Les accolades délimitent ce qu on appelle un bloc de code Le code d un bloc doit être indenté (décalé) vers la droite Si les accolades sont manquantes, seule la première instruction est calculée comme faisant partie du while

Exemple: int x = 5; while (x > 0){ } printf("%d ",x); x--; X=5 X > 0 VRAI printf( %d,x--); FAUX Condition n d entrée: x >0 Condition d arrêt: x <=0 Résultat de la boucle: 5 4 3 2 1

Mise en garde Il faut toujours au moins une instruction à l intérieur de la boucle qui permette de converger vers la condition d arrêt de la boucle sinon ce sera une boucle infinie Exemple: int x = 5; while (x > 0){ printf("%d ",x); x++; } Résultat de la boucle: 5 6 7 8 9 10 11

Exemple 2: int x = 5; while (x > 0) printf( tf("%d ",x); x--; Boucle infinie : seulement la première instruction fait partie de la boucle Pas de convergence vers la condition d arrêt

Exercice : Dites ce que vaudront les valeurs de x, y et z après l exécution de cette boucle int x = 5; int y = 3; int z = 3; while (y){ x %= z++; y = y - 1; } Solution: x = 2; y = 0; z = 6

Écrivez un programme qui saisit un nombre entier et qui affiche tous les nombres de 1 jusqu à la valeur entrée. #include <stdio.h> #include <stdlib.h> int main(void){ int nombre; //nombre à saisir int tour; //sert à compter les tours de boucle printf(«entrez un nombre svp :»); scanf («%d», &nombre); } //affiche toutes les valeurs //prises par la variable TOUR tour = 1; while (tour <= nombre ){ printf("%d ",tour); tour++; } return EXIT_SUCCESS; initialisation Analyse de la condition d arrêt de la boucle Convergence vers la condition d arrêt

Que se passe t il si le nombre entré est négatif? #include <stdio.h> #include <stdlib.h> int main(void){ int nombre; //nombre à saisir int tour; //sert à compter les tours de boucle printf(«entrez un nombre svp :»); scanf («%d», &nombre); } //affiche toutes les valeurs //prises par la variable TOUR tour = 1; while (tour <= nombre ){ printf("%d ",tour); tour++; } return EXIT_SUCCESS; initialisation Analyse de la condition d arrêt de la boucle Convergence vers la condition d arrêt?

Il n y a pas de restriction sur ce que peut contenir un bloc d instructions Affectation, affichage, lecture, opérations if, if-else, if-else if while En d autres termes on peut imbriquer des instructions de sélection et d itération à l intérieur d autres instructions de sélection et/ou d itération...

Validation d un nombre entré qui doit être entre 1 et 10 #include <stdio.h> #include <stdlib.h> #define MIN 1 #define MAX 10 int main(void){ int nombre; //première sollicitation du nombre printf("\n\n Entrez un nombre entre %d et %d svp : ",MIN,MAX); scanf ("%d", &nombre); //tant que le nombre est invalide, on avise et on redemande Conditions d entrée multiples } while(nombre < MIN nombre > MAX){ if(nombre < MIN) printf("\n\n Désolé, mais le nombre doit être plus grand que %d",min); else printf("\n\n Désolé, mais le nombre doit être inférieur ou égal à %d",max); printf("\n\n Entrez un nombre entre %d et %d svp : ",MIN,MAX); scanf ("%d", &nombre); } printf(" \n\nvotre nombre est valide "); return EXIT_SUCCESS; Structure if imbriquée Convergence vers la condition d arrêt

C est une mauvaise pratique de terminer une boucle autrement que par la condition d arrêt.

while do do while

while La condition de répétition est évaluée au début du bloc Si la condition est fausse, le bloc n est pas exécuté do while La condition de répétition est évaluée à la fin du bloc Le bloc est exécuté au moins une fois même si la condition est fausse Forme générale : do{ instructions à répéter tant que l expression est différente de zéro } while (expression);

Validation d un nombre entré qui doit être entre 1 et 10 #include <stdio.h> #include <stdlib.h> int main(void){ int nombre; do{ printf(" Entrez un nombre entre 1 et 10 svp : "); scanf ("%d", &nombre); if(nombre < 1 nombre > 10) printf( tf(" Votre nombre est invalide "); }while(nombre < 1 nombre > 10); printf(" Votre nombre est valide "); } return EXIT_SUCCESS;