Programmation en C.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
DECLARATION DE VARIABLES
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Tests et itérations Programmes séquentiels ne résolvent pas tous les problèmes exemple simple : calcul des racines d'un polynôme de d° 2 dans R Algorithme.
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.
FLSI602 Génie Informatique et Réseaux
5. Les structures répétitives
Section VI Structures répétitives (suite)
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).
Semaine #1 INF155 par Frédérick Henri.
Langage C Révision.
CPI/BTS 2 Programmation Web Introduction au PHP
Cours de programmation
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Les éléments de base de l’algorithmique
Structures de contrôle de l’exécution
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Base de programmation Script unity en 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.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Le préprocesseur. La conversion de types. 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
Principes de programmation
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.
Plan troisième cours Instruction sélective Instruction répétitive
Répéter dans un programme avec une Instruction itérative
LANGAGE C LP A2I IUT St DIE
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.
L’essentiel du langage C
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
SIF-1053 Architecture des ordinateurs
Un survol du language C.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Les tests.
Cours n° 3 Traitements en Java
Structures de contrôle
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Tutorat en bio-informatique Le 10 octobre Au programme… Rappel sur les variables Constantes Conditions Comparaisons Tables de vérité Switch.
Introduction au langage C Les entrées-sorties
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
Module algorithmique et programmation
Langage de programmation
Introduction à la programmation (420-PK2-SL) cours 8
Introduction à la programmation (420-PK2-SL) cours 4 Gestion des applications Technologie de l’information (LEA.BW)
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
Algorithmique Tableaux de données
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
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.
Objets et Actions Élémentaires.
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Philippe Gandy – 6 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Introduction au langage C
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 1 ère séance.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
Transcription de la présentation:

Programmation en C

Programmation en C Types fondamentaux Entier short (16 bits), int (32 bits), long (32 bits) Réel float (32 bits), double (64 bits) Caractère char (8 bits) Booléens sont représentés par 0 (faux) et 1(vrai) Tous ces types peuvent être préfixés de unsigned (types non-signés strictement positifs)

Programmation en C Type Longueur Valeurs min/max unsigned char 8 bits 0 à 255 char 8 bits -128 à127 unsigned short int 16 bits 0 à 65 535 short int 16 bits -32 768 à 32 767 unsigned int 32 bits 0 à 4 294 967 295 int 32 bits -2 147 483 648 à 2 147 483 647 unsigned long 32 bits 0 à 4 294 967 295 long 32 bits -2 147 483 648 à 2 147 48 ,647 float 32 bits 3.4 * 10^-38 à 3.4 * 10^38 double 64 bits 1.8 * 10^-308 à 1.8 * 10^+308

Programmation en C Variables Un identificateur de variable est le nom qu’on désire lui donner. Un identificateur doit obligatoirement commencer par une lettre. Le seul symbole permis est le petit souligné ( _ ). Le langage est sensible à la casse. Exemples d’identificateur valides Nom, prenom, nom_joueur1, nom_joueur2 Exemples d’identificateur invalides 1nom, #toto, ceci n’est pas valide (à cause des espaces)

Programmation en C Variables On définit une variable par son type suivi d’un identificateur de variable suivi, optionnellement, d’une affectation de valeur. Tout cela terminé par un point virgule. Forme générale : type nom [= valeur]; Exemples : int age; double salaire; int somme = 0; Signifie que c’est optionnel

Programmation en C Opérateurs Arithmétique Booléen Relationnel +, - , * , / , % (modulo) Booléen && (et), || (ou), ! (non) Relationnel <, >, <=, >=, == et != égal différent

Programmation en C Instruction d’affectation En C le symbole pour l’affectation est = Pour mettre la valeur 2,45 en mémoire dans une variable nommée salaire, il suffit de faire : salaire = 2.45; Pour augmenter une variable de 1, il suffit de faire : x = x + 1; Sortie écran simple (avec printf) On doit spécifier le type des valeurs à afficher à l’aide d’un format d’affichage Format d’affichage %d = entier %lf = réel (double) %c = caractère \n = sauter une ligne à l’écran

Programmation en C Instruction d’affichage printf (3 variantes) printf(message entre guillemets); Exemple : printf("Bonjour tout le monde "); printf(format d’affichage entre guillemets, valeurs); Exemple : printf("%c", 65); //affiche ‘A’ (avec code ASCII 65) printf(message et format d’affichage entre guillemets, valeurs); Exemple : printf("\nVotre salaire est : %lf ", salaire); Il peut y avoir plusieurs formats d’affichage dans un même message Exemple : printf("\nVotre salaire est : %lf pour le taux = %lf ", salaire, taux);

Programmation en C Saisie clavier (avec scanf) On doit spécifier le type des valeurs à afficher à l’aide d’un format de lecture Format de lecture %d = entier %lf = réel %c = caractère

Programmation en C Instruction scanf scanf("format de lecture", &id_variable); Exemple : printf("Entrez votre taux horaire svp  : "); scanf("%lf ", &taux_horaire); Le & est vital devant le nom de la variable.

Programmation en C Programme principal Nos programmes en C contiennent : Commande au préprocesseur #include et #define //commentaire d’en-tête du programme principal int main(void) { //début d’un bloc de code Déclaration de variables; Instructions; return EXIT_SUCCESS; } //fin du bloc

Programmation en C Commande au préprocesseur #include Ce sont des commandes qui sont exécutées avant la compilation. #include Permet d’inclure des librairies de fonctions utilitaires nécessaire. #include <stdio.h> //permet d’utiliser printf et scanf #include <stdlib.h> //permet d’utiliser EXIT_SUCCESS #include <math.h> //permet d’utiliser cos, sin, sqrt, … … //nous en verrons d’autres plus tard

Programmation en C Commande au préprocesseur #define Permet de donner des noms à des valeurs constantes du programme. Nous les mettrons toujours en majuscules. #define TRUE 1 #define FALSE 0 #define MAX_HEURE 40.0 ***À NOTER : Il n’y a pas de ; à la fin!

Programmation en C Commandes au préprocesseur Entête et début de bloc Programme de calcul de salaire en C #include <stdio.h> #include <stdlib.h> int main(void) { double taux; double nb_heure; double salaire; printf(\n\nEntrez le taux horaire svp : ); scanf(%lf ,&taux); printf(\n\nEntrez le nombre d’heures travaillees : ); scanf(%lf ,&nb_heures); salaire = taux * nb_heures; printf(\n\nVotre salaire de brut est : %lf ,salaire); return EXIT_SUCCESS; } Commandes au préprocesseur Entête et début de bloc Déclaration des variables Sollicitations à l’écran Saisie dans la variable taux Saisie dans la variable nb_heures Calcul et affichage du salaire return et fin de bloc

Commentaires en bloc avec /* */ Ajout de commentaires #include <stdio.h> #include <stdlib.h> /* Programme qui calcule un salaire brut à partir * d’un taux horaire et d’un nombre d’heures travaillées */ int main(void) { double taux; //sert à la saisie du taux horaire double nb_heure; // sert à la saisie du nombre d’heures double salaire; //sert au calcul du salaire //sollicitation du taux horaire printf(\n\nEntrez le taux horaire svp : ); scanf(%lf ,&taux); //sollicitation du nombre d’heures travaillees printf(\n\nEntrez le nombre d’heures travaillees : ); scanf(%lf ,&nb_heures); //calcul et affichage du salaire salaire = taux * nb_heures; printf(\n\nVotre salaire de brut est : %lf ,salaire); return EXIT_SUCCESS; } Commentaires en bloc avec /* */ Commentaires ligne par ligne avec //

Programmation en C Équivalent en C Instruction de sélection if if-else Si Si-Sinon Si-Sinon Si Équivalent en C if if-else if-else if

Programmation en C Expression Expression booléenne N’importe quelle valeur après évaluation. Une expression a un type L’affectation est une expression égale à la valeur affectée (exemple : x = 5, vaut 5). Exemples d’expressions : x, 5, (x == y), x = y = z = 0 Expression booléenne Tout ce qui donne comme résultat vrai (≠ 0) ou faux (0)

Programmation en C Instruction de sélection Si (dans le monde réel) Instruction qui permet de sélectionner le code à exécuter selon l’évaluation d’une expression booléenne (vrai/faux) ou numérique (≠ 0 / 0). Si (dans le monde réel) Cette instruction de sélection permet de sélectionner les tâches à exécuter si l’évaluation d’une expression donne vraie.

Programmation en C Forme générale : Exemple (en pseudo-code) Si (expression booléenne) tâches à exécuter si l’expression est vraie fin Exemple (en pseudo-code) Si (j’ai assez d’argent), je vais au cinéma

Programmation en C En C if (expression) { instructions à exécuter si l’expression est différente de zéro (vraie) } 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 if.

Programmation en C Exemple 1: if (x > 2) printf(" %d ", x); x++; Sera toujours exécutée car il n’y a pas d’accolades { } Ne sera jamais exécutée car 3 < x donnera 0 ou 1 et sera nécessairement > -1 Sera toujours exécutée car x = 8 donne 8, donc toujours vrai

Programmation en C #include <stdio.h> #include <stdlib.h> Exercice : Écrivez un programme qui saisit un nombre entier et qui affiche si le nombre est négatif. #include <stdio.h> #include <stdlib.h> int main(void) { int nombre; printf("Entrez un nombre svp :  "); scanf ("%d", &nombre); if (nombre < 0) printf("Votre nombre est négatif \n"); return EXIT_SUCCESS; }

Programmation en C Si-Sinon Forme générale : Exemple Il est possible de faire exécuter des instructions dans le cas contraire de l’évaluation d’une expression. Forme générale : Si (expression booléenne) tâches à exécuter si l’expression est vraie Sinon tâches à exécuter si l’expression est fausse fin Exemple Si (j’ai assez d’argent), je vais au cinéma Sinon, je reste à la maison

Programmation en C if (expression) { } else { En C instructions à exécuter si l’expression est différente de 0 } else { instructions à exécuter si l’expression est égale à 0 La règle pour les accolades s’applique encore soit que si les accolades sont manquantes, seule la première instruction est calculée comme faisant partie du else.

Programmation en C #include <stdio.h> #include <stdlib.h> Exercice : Écrire un programme qui saisit un nombre entier et qui affiche si le nombre est pair ou si le nombre est impair. #include <stdio.h> #include <stdlib.h> int main(void) { int nombre; printf("Entrez un nombre svp :  "); scanf ("%d", &nombre); if (nombre % 2 == 0) printf("Votre nombre est pair \n"); else printf("Votre nombre est impair \n"); return EXIT_SUCCESS; }

Programmation en C On peut mettre plusieurs instructions de sélection imbriquées (une à l’intérieur de l’autre) Exercice : Écrire un programme qui saisit un nombre entier. On affiche si le nombre est pair et on affiche s’il est positif ou négatif. Même chose pour un nombre impair.

#include <stdio.h> #include <stdlib.h> int main(void) { int nombre; printf("Entrez un nombre svp :  "); scanf ("%d", &nombre); if (nombre % 2 == 0) { printf("Votre nombre est pair et "); if (nombre < 0) printf("négatif \n"); else printf("positif \n"); } else { printf("Votre nombre est impair et "); return EXIT_SUCCESS;

Programmation en C Truc  Cela évite la répétition inutile de code! Si on a les mêmes instructions qui se répètent dans le if et dans le else, on peut les sortir et les mettre avant ou après le bloc (selon le cas).  Cela évite la répétition inutile de code!

#include <stdio.h> #include <stdlib.h> int main(void){ //version corrigée! int nombre; printf("Entrez un nombre svp :  "); scanf ("%d", &nombre); if (nombre % 2 == 0) printf("Votre nombre est pair et "); else printf("Votre nombre est impair et "); if (nombre < 0) printf("négatif \n"); printf("positif \n"); return EXIT_SUCCESS; }

Programmation en C Instruction de sélections multiples Si-Sinon Si Forme générale : Si (expression booléenne 1) tâches à exécuter si l’expression est vraie Sinon Si (expression booléenne 2) Sinon Si (expression booléenne 3) ... Sinon //optionnel ici tâches à exécuter si rien n’a été évalué à VRAI fin

Programmation en C Exemple Si (j’ai au moins $30.00), Je vais au restaurant Sinon Si (j’ai au plus $15.00), Je vais au cinéma Sinon Si (j’ai au plus $5.00), Je vais à la crèmerie Sinon, Je reste à la maison fin

Programmation en C Les abréviations du C

Chaque instruction d’affectation a une abréviation Programmation en C Chaque instruction d’affectation 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 = X – 1 X--

Programmation en C 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; printf("%d", tour++); Exemple 2 : int tour = 1; printf("%d", ++tour); Affiche 1 et tour = tour + 1 tour = tour + 1 et Affiche 2

Instructions itératives

Programmation en C Instruction itérative (de répétition ou boucle) Instruction qui permet de répéter du code à exécuter selon l’évaluation d’une expression booléenne (vrai/faux) ou numérique (≠ 0 / 0). Tant que (dans le monde réel) Cette instruction permet de répéter les tâches à exécuter si l’évaluation d’une expression donne vraie.

Programmation en C Forme générale : Exemple Tant que (expression booléenne) tâches à répéter tant que l’expression est vraie fin Exemple Tant que (il ne m’a pas payé), je ne lui parle plus

Programmation en C En C while (expression) { instructions à répéter tant que l’expression est différente de zéro (vraie) } 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 1: int x = 5; while (x > 0) { printf("%d ", x); x--; } Programmation en C Exemple 1: int x = 5; while (x > 0) { printf("%d ", x); x--; } Condition d’entrée dans la boucle Réponses : 5 4 3 2 1

Programmation en C Mise en garde La condition d’arrêt est le contraire de la condition d’entrée. Entrée : x > 0 Arrêt : x <= 0 Il faut toujours au moins une instruction à l’intérieur de la boucle qui permet de converger vers la condition d’arrêt de la boucle sinon ce sera une boucle infinie.

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

Programmation en C 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; } Réponses: x = 2; y = 0; z = 6

Programmation en C initialisation Exercice : É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

Programmation en C 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 une autre boucle while En d’autres termes on peut imbriquer des instructions de sélection et d’itération à l’intérieur de d’autres instructions de sélection et/ou d’itération...

Condition d’entrée multiple Exemple : 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 while (nombre < MIN || nombre > MAX){ if (nombre < MIN) printf("\n\n Désolé, mais le nombre doit être positif"); else printf("\n\n Désolé, mais le nombre doit être inférieur ou égal à 10"); } printf("\n\nVotre nombre %d est valide. « , nombre); return EXIT_SUCCESS; Condition d’entrée multiple Structure if imbriquée Convergence vers la condition d’arrêt

FIN DU COURS