Introduction au langage C



Documents pareils

UE C avancé cours 1: introduction et révisions

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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)

Rappels Entrées -Sorties

UE Programmation Impérative Licence 2ème Année

Algorithmique et Programmation, IMA

Programmer en JAVA. par Tama

COMPARAISONDESLANGAGESC, C++, JAVA ET

SUPPORT DE COURS. Langage C

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

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

Java Licence Professionnelle CISII,

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

Programmation en langage C

Langage Éric Guérin 5 octobre 2010

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

Claude Delannoy. 3 e édition 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)

Cours d Algorithmique et de Langage C v 3.0

Notions fondamentales du langage C# Version 1.0

Programmation système I Les entrées/sorties

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

Programmation Classique en langage C

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

as Architecture des Systèmes d Information

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

INITIATION A LA PROGRAMMATION

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

Conventions d écriture et outils de mise au point

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

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

Le langage C. Séance n 4

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

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

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

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Le prototype de la fonction main()

Programmation système de commandes en C

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

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

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Introduction au Langage de Programmation C

Support de Cours de Langage C. Christian Bac

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

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Java Licence Professionnelle CISII,

Les chaînes de caractères

Programmation en Java IUT GEII (MC-II1) 1

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

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

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Cours 1 : La compilation

Le langage C. Introduction, guide de reference

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Cours de programmation avancée. Le langage C. Université du Luxembourg

Langages et Concepts de Programmation Introduction à la programmation en langage C

Présentation du langage et premières fonctions

Notes de Cours - Programmation Pascal Ferraro

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

Programmation système en C/C++

TP 1. Prise en main du langage Python

Chapitre 1 : La gestion dynamique de la mémoire

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

INF 321 : mémento de la syntaxe de Java

Chap III : Les tableaux

Quelques éléments de compilation en C et makefiles

OS Réseaux et Programmation Système - C5

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~ cours de 3 heures)

Outils pour la pratique

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Programmation en C/C++

Les structures. Chapitre 3

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

Cours Programmation Système

Langage Java. Classe de première SI

Généralités sur le Langage Java et éléments syntaxiques.

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

ALGORITHMIQUE ET PROGRAMMATION En C

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

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

INTRODUCTION À LA PROGRAMMATION PRATIQUE DU LANGAGE C. M. Le Gonidec

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

I. Introduction aux fonctions : les fonctions standards

Une introduction à Java

Programmation impérative

2. Comprendre les définitions de classes

Transcription:

Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23

Les premiers pas Sommaire 1 Les premiers pas 2 Les opérations de bases 3 Les fonctions Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23

Les premiers pas Un peu d histoire Les origines Inventé en 1972 dans les laboratoires de Bell par Dennis Ritchie et Ken Thompson. Même époque que la création d Unix. En 1978 le langage est "stabilisé". Il est décrit en détail dans The C Programming Language ( Dennis Ritchie et Brian Kernighan). Les différentes normalisation du langage 1978 première description complète du langage. 1990 l organisme de normalisation international adopte la norme C90 ou C ISO. 1999 nouvelle version de la norme ISO : C99. Cette nouvelle norme introduit des nouveautés notamment sur les tableaux de taille variable, les déclarations mélangées avec les instructions, les fonctions inline, le support avancé des nombres flottants, la syntaxe des commentaires... 2011 ISO ratifie une nouvelle version la C11. Alexis Lechervy (UNICAEN) Introduction au langage C 2 / 23

Les premiers pas Avantages et défauts du langage C Avantages L un des langages les plus utilisés. Utilise un standard ouvert. Existe depuis longtemps, beaucoup d informaticien le connaisse et l utiliser. Littérature et bibliothèque abondante. Sa syntaxe est reprise dans de nombreux autres langages (C++, Java, PHP). Proche de la machine, permet de tirer partie au mieux des capacités de la machine. Permet l optimisation précise du code (nombre de cycle, consommation, utilisation mémoire...). N est pas contraint par un architecture matérielle. Permet la réalisation de logiciel embarqué. Permet de créer des logiciels autonome, sans support d exécution ou bibliothèque spécifique. Alexis Lechervy (UNICAEN) Introduction au langage C 3 / 23

Les premiers pas Avantages et défauts du langage C Inconvénients Pas de vérification durant l exécution. Détection d erreur n est possible qu à la compilation. Pas ou peu de concept de programmation Objet ou de gestion d exception. Un support limité de la généricité. Programme généralement non portable à une autre architecture. Pas de gestion haut niveau de la mémoire. La gestion de la mémoire est souvent source de bug et nécessite une attention particulière. Alexis Lechervy (UNICAEN) Introduction au langage C 4 / 23

Les premiers pas Les différentes phases d un programme C Écriture du programme Lors de cette étape vous rédigez le code de votre application en respectant la syntaxe du langage C. Vous enregistrez vos fichiers avec une extension de type.c (fichier de code) ou.h (fichier d entête). Alexis Lechervy (UNICAEN) Introduction au langage C 5 / 23

Les premiers pas Les différentes phases d un programme C Compilation Vous transformez votre code en langage "compréhensible" pour la machine. Lors de cette phase, vous créez un fichier exécutable permettant de lancer votre application. Syntaxe Nom de l exécutable par défaut : transforme nom_du_fichier_de_code.c en a.out, gcc nom_du_fichier_de_code.c transforme nom_du_fichier_de_code.c en mon_exe, gcc -o mon_exe nom_du_fichier_de_code.c Alexis Lechervy (UNICAEN) Introduction au langage C 6 / 23

Les premiers pas Les différentes phases d un programme C Exécution Vous pouvez lancer votre programme sur la machine et l utiliser. Alexis Lechervy (UNICAEN) Introduction au langage C 7 / 23

Les premiers pas Notre premier programme Objectif Programme affichant Hello World à l écran. Le code Utilisation/Exécution Alexis Lechervy (UNICAEN) Introduction au langage C 8 / 23

Les opérations de bases Sommaire 1 Les premiers pas 2 Les opérations de bases Les structures de contrôle 3 Les fonctions Alexis Lechervy (UNICAEN) Introduction au langage C 8 / 23

Les opérations de bases Structure d un fichier Alexis Lechervy (UNICAEN) Introduction au langage C 9 / 23

Les opérations de bases Affichage Affichage Affichage d une chaine de caractère avec retour chariot : Affichage d un entier i Affichage d un entier i non signé puts("hello") ; printf("hello \n") ; printf( L entier est %d\n",i) ; printf( L entier est %u\n",i) ; Affichage d un entier cour (short) i non signé Affichage d un réel x printf( L entier est %hu\n",i) ; printf( Le réel est %f\n",x) ; Affichage d un réel x avec quatre chiffres avant la virgule et 2 après printf( Le réel est %4.2f\n",x) ; Alexis Lechervy (UNICAEN) Introduction au langage C 10 / 23

Les opérations de bases Lecture clavier Lecture du clavier Lecture d un caractère Lecture d un entier Lecture d un réel char car ; scanf("%c",&car) ; int car ; scanf("%d",&i) ; float x ; scanf("%f",&x) ; Alexis Lechervy (UNICAEN) Introduction au langage C 11 / 23

Les opérations de bases Typage Les variables Le langage C est un langage typé. Tout les variables ont un type. La déclaration est obligatoire avant toute utilisation. Déclaration et affectation de variable type nom_de_variable ; nom_de_variable = valeur ; Types élémentaires Type caractère : (unsigned, signed) char Type entier : (unsigned, signed) short, int, long Type réel : (unsigned, signed) float, double, long double Pas de type boolean, utiliser 0 pour faux et un valeur non nulle pour vrai. Pas de type chaine de caractère. Alexis Lechervy (UNICAEN) Introduction au langage C 12 / 23

Les opérations de bases Les structures de contrôle Instruction conditionnelle Le if int a =5; if( a >2){ printf ("a >2\ n"); } else { printf ("a <=2\ n"); } Alexis Lechervy (UNICAEN) Introduction au langage C 13 / 23

Les opérations de bases Les structures de contrôle Instruction d aiguillage Le switch int a; scanf ("%d",&a); switch (a){ case 0: printf ("..0..\ n"); case 1: printf ("..1..\ n"); break ; case 2: printf ("..2..\ n"); break ; default : printf (" Autres \n"); } Alexis Lechervy (UNICAEN) Introduction au langage C 14 / 23

Les opérations de bases Les structures de contrôle Instruction d aiguillage Exemple d exécution du switch précédent Alexis Lechervy (UNICAEN) Introduction au langage C 15 / 23

Les opérations de bases Les structures de contrôle Instruction de boucle Le while Le code s exécute tant que la condition est vrai. int i =0; while (i <5){ puts (" Tapez un nombre >= 5"); scanf ("%d",&i); } Exemple d exécution Alexis Lechervy (UNICAEN) Introduction au langage C 16 / 23

Les opérations de bases Les structures de contrôle Instruction de boucle Le do while Pareil que le while mais le code est exécuter une fois avant de faire le test. int i =13; do{ puts (" Tapez un nombre >= 5"); scanf ("%d",&i); } while (i <5); Exemple d exécution Alexis Lechervy (UNICAEN) Introduction au langage C 17 / 23

Les opérations de bases Les structures de contrôle Instruction de boucle Le for Effectue des instructions un nombre de fois donnés. int i; for (i=0 ; i <10 ; i ++){ printf ("%d ",i); } printf ("\n"); Exemple d exécution Alexis Lechervy (UNICAEN) Introduction au langage C 18 / 23

Les opérations de bases Les structures de contrôle Instruction de débranchement break Permet de quitter une boucle avant la réalisation du test de finalité. continue Permet d aller directement à la fin des instructions de la boucle et de passer à l itération suivante. Alexis Lechervy (UNICAEN) Introduction au langage C 19 / 23

Les opérations de bases Les structures de contrôle Opération de base Opération mathématique de base + - * / % ++ - - Opération relationnelle ==!= > < <= >= Opération logique &&! Opération bits à bits» «& Affectation composé += -= *= /= %= «=»= &= = = Alexis Lechervy (UNICAEN) Introduction au langage C 20 / 23

Les fonctions Sommaire 1 Les premiers pas 2 Les opérations de bases 3 Les fonctions Alexis Lechervy (UNICAEN) Introduction au langage C 20 / 23

Les fonctions Les fonctions Prototype de fonction type_de_retour nom_fct ( type_arg1 nom_arg1,...){ instruction ; instruction ;... } Exemple double puissance ( int a,int n){ double r =1; int i; for (i=0 ; i<n ; i ++) r*=a; return r; } Alexis Lechervy (UNICAEN) Introduction au langage C 21 / 23

Les fonctions Les fonctions Remarques sur les fonctions On peut mettre aucun argument d entrée. On peut avoir aucune valeur de retour, le type de retour est alors void. On ne peut pas avoir plus d une valeur de retour. la fonction principale du programme est la fonction int main (int argc, char *argv[]) Portée des variables Une variable est visible uniquement à l intérieur de son bloc d instruction (les dernière accolade). Une variable hors de toute fonction, déclaré avant tout bloc d instruction est globale. On pourra l utiliser depuis n importe quel bloc d instruction. Alexis Lechervy (UNICAEN) Introduction au langage C 22 / 23

Les fonctions Les fichiers d entête Principe Le fichier d entête (.h) contient la déclaration des fonctions. Le fichier.c contient le code est inclue le fichier d entête à l aide de l instruction (#include "nom_du_fichier.h"). Exemple # ifndef FICHIER_ H # define FICHIER_ H void fct1 (); void fct2 ( int a, float b); int fct3 ( float a); # endif Alexis Lechervy (UNICAEN) Introduction au langage C 23 / 23