Introduction au langage C

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

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)


Introduction au langage C

Rappels Entrées -Sorties

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Le langage C. Séance n 4

Les chaînes de caractères

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

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Programmation en langage C

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

Algorithmique et Programmation, IMA

Cours d Algorithmique et de Langage C v 3.0

Les structures. Chapitre 3

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

Initiation à la programmation en Python

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

Chap III : Les tableaux

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

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

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

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

Chapitre 1 : La gestion dynamique de la mémoire

SUPPORT DE COURS. Langage C

ALGORITHMIQUE ET PROGRAMMATION En C

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

Programmation Classique en langage C

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

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

Introduction au Langage de Programmation C

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

Cours d initiation à la programmation en C++ Johann Cuenin

Les fichiers. Chapitre 4

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

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

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

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

Représentation d un entier en base b

Programmation système I Les entrées/sorties

INITIATION A LA PROGRAMMATION

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

Chapitre 10 Arithmétique réelle

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

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

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

Le langage C. Introduction, guide de reference

Notions fondamentales du langage C# Version 1.0

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

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

TP 1. Prise en main du langage Python

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

Programmation impérative

Cours Programmation Système

Corrigé des TD 1 à 5

Langage Éric Guérin 5 octobre 2010

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

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

Présentation du langage et premières fonctions

Notions de Langage C

Programmation en C - Sommaire

INF 321 : mémento de la syntaxe de Java

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

Informatique Générale

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmer en JAVA. par Tama

Algorithmique et programmation : les bases (VBA) Corrigé

V- Manipulations de nombres en binaire

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

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Conventions d écriture et outils de mise au point

Calcul Formel et Numérique, Partie I

Java Licence Professionnelle CISII,

STAGE IREM 0- Premiers pas en Python

Le prototype de la fonction main()

Algorithmique, Structures de données et langage C

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

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

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours d algorithmique pour la classe de 2nde

COURS DE LANGAGE C. DIAO Oumar. Université de Rennes 1. Master 1

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

as Architecture des Systèmes d Information

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

Langage Java. Classe de première SI

Programmation Structurée en Langage C

Qualité du logiciel: Méthodes de test

2 Comment fonctionne un ordinateur, dans les grandes lignes

Codage d information. Codage d information : -Définition-

Logiciel de Base. I. Représentation des nombres

Outils pour la pratique

Programmation système en C/C++

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

Transcription:

Introduction au langage C Objectif: acquérir les bases d un langage de programmation évolué Les éléments abordés seront: - Organisation d un programme - Les variables - Les opérations sur les variables - Les différentes primitives - La structure alternative

I) Généralités sur le langage C 1) Historique 2) La chaîne de production de programmes 3) Organisation d un programme 4) Etude du préprocesseur 5) Le programme principal

1) Historique du langage Langage de la «famille Algol», développé en 1970 par Dennis Ritchie Langage d usage général, utilisable sur toutes les plates-formes (petits, moyens, gros systèmes) Langage indissociable du système d exploitation UNIX Nombreuses versions et extensions

2) La chaîne de production essai.c essai.obj #include <stdio.h> int main(void ) { int i; i=1; } Édition Compilation erreurs Étude papier

La chaîne de production L éditeur crée un fichier texte qui contient les instructions du programme Le compilateur effectue une analyse lexicale, syntaxique, sémantique et génère un fichier objet Toute erreur de compilation doit être corrigée en modifiant le source

La chaîne de production Fichier objet Édition de Liens Exécutable Linker Essai.obj Essai.exe Librairie Librairie

La chaîne de production L édition des liens permet de construire l exécutable en y ajoutant les modules (ou sous-programmes nécessaires) Ces modules sont regroupés dans des librairies: Mathématiques, graphiques, entrées/sorties, Il peut se produire des erreurs si des modules ne sont pas trouvés

L exécution des programmes essai.exe Exécution Compilation link Erreurs? non fin oui Retour édition

3) Organisation d un programme Un programme écrit en C (ou tout autre langage) doit décrire précisément les données utilisées et les traitements sur ces données. La description des données: déclarations La description des traitements: instructions

Structure Le programme doit comporter les éléments suivants: Directives du préprocesseur Définitions des fonctions et procédures Programme principal

4) le préprocesseur Il s agit d un ensemble de directives de compilations: ce ne sont pas des instructions Ces directives permettent de : - définir des «constantes» (#define) - préciser des librairies utilisées (#include) - faire de la «compilation conditionnelle»

La directive #define Cette directive du préprocesseur indique au compilateur de remplacer toute occurrence d un symbole par une chaîne: #define PI 3.14159 #define borne 50 #define NULL 0 Attention: dans les noms des symboles, le langage est «case sensitive»!

La directive #include Cette directive du préprocesseur indique au compilateur que l on va utiliser telle ou telle librairie (une librairie est un ensemble de sousprogrammes: des composants logiciels).les définitions relatives aux librairies sont dans des fichiers d extension «.h» La syntaxe de cette directive est : #include <nomfichier.h>

Exemples de #include Entrées/sorties: #include <stdio.h> Mathématiques (sin, cos,..) : #include <math.h> Chaînes de caractères: #include <string.h> Graphiques: #include <graph.h>

5) le programme principal Le programme principal a pour nom «main» Il est composé : - d un en-tête : int main (void) - d un début de bloc: { - d instructions : ---- - d un return : return(0); - d une fin de bloc : }

Le squelette d un programme Il faut veiller à ne pas oublier ces éléments minimums: #include <stdio.h> préprocesseur int main(void) En tête p.p. { --- instructions --- return(0); }

II) Les variables 1) Les différents types de base 2) Déclaration des variables simples 3) La notion de tableau 4) Les opérateurs de base 5) Les entrées/sorties élémentaires

1) les différents types Une variable ou identificateur est défini par: -Un nom (attention: «case sensitive»), composé de lettres, de chiffres ou de _: x rayon max_eleves -Un type qui représente l encombrement de la variable: entier (int), réel (float), caractères (char)

Les entiers L entier «simple précision» ou int est codé sur 16 bits (de -2 15 à 2 15-1): 15-2345 235 L entier «long» ou long int est codé sur 32 bits (de -2 31 à 2 31-1): 123456l -2345 L entier «court» ou short est codé sur 8 bits (-128 à 127): 12-45! Attention! Le format peut varier en fonction des machines ou des compilateurs.

Les réels Le réel «simple précision» ou float est codé sur 4 octets: 24.5-14.2 1.5e-7 Le réel «double précision» ou double est codé sur 8 octets: 56.455-1.5e-78

Les caractères Un caractère est codé sur un octet : char a Z 2 & Il est possible de représenter en C des caractères spéciaux: \n : interligne (saut de ligne) \t : tabulation \f: saut de page (form feed) \ : quote \0: caractère «NULL» \bbb : caractère de code ASCII bbb en Octal

Les chaînes de caractères Une chaîne de caractères est une suite de caractères. Les chaînes sont mises entre guillemets: «chaine» «autre chaine» Contrairement à d autres langages, il n y a pas de type spécifique pour les chaînes

2) déclaration des variables Toutes les variables utilisées dans un programme doivent être déclarées: on précise le type et le nom de la variable. Une variable est dite «simple» si elle ne peut contenir qu un élément de son type La déclaration est de la forme: type nomvariable; le ; est un séparateur

Exemples de déclarations #include <stdio.h> int main(void) { int a,b; float c; double d, e; char f; a=1; return(0); } Déclarations instructions

3) la notion de tableaux Un tableau permet de représenter plusieurs variables d un même type sous un seul nom Chaque élément de tableau est accessible par l intermédiaire d un indice En langage C, l indice commence à zéro On déclare le nombre d éléments du tableau On peut définir des tableaux à deux dimensions (ligne, colonne)

Tableaux: exemple #include <stdio.h> int main (void) { } float t[3]; int matrice[2][3]; t[0]= 5.4; t[1]= -1.5; t[2]= 0; matrice[0][0]=5; return(0); Déclarations Affectation premier élément

4) les opérateurs élémentaires Les opérateurs de base sont: = : affectation + - * / : opérations arithmétiques % : reste de la division entière (opérandes entiers) Les opérateurs permettent de construire des expressions arithmétiques

Utilisation des opérateurs #include <stdio.h> int main(void) { int a, b,c; float d, e; a=1;c=3; /* a vaut 1 et c vaut 3 */ a=a+1; /* incrémentation: a vaut 2 */ c= c -1; /* décrémentation : c vaut 2 */ b= 2*a + 3*c; /* expression arithmétique : b vaut 10 */ c= b % ( a + 1); /* c vaut 1 : reste de la division de 10 par 3 */ return(0); }

Opérateurs: remarques Si une variable n est pas affectée, son contenu est quelconque : pas d initialisation systématique. En principe, il faut veiller à ne pas mélanger les types numériques dans une expression même si «qui peut le plus peut le moins» a= 12.5 avec a entier n est pas toléré c=12 avec c réel est toléré

5) Les entrées/sorties L objectif des procédures d entrée/sorties est de permettre : - de saisir des valeurs au clavier (entrée) - d afficher les valeurs des variables (sortie) Il y a une conversion entre le format externe et le format interne ou vice versa. Il faut décrire la manière dont se présentent les données ou la manière de les afficher

La fonction printf Cette fonction permet de faire des sorties formatées (sur l écran par exemple) La syntaxe est: printf(«chaîne de spécifications», liste); La chaîne de spécifications indique la façon dont les variables de la liste sont affichées Liste est la liste des variables (séparées par des virgules) à afficher (éventuellement vide)

Les spécifications %d permet l affichage d un entier %ld permet l affichage d un entier long %f permet l affichage d un réel %e permet l affichage d un réel (notation exposant) plus généralement: %t.mlz t: Nombre total de caractères m: Nombre de caractères après la virgule l: si c est un format long z= d, f, e, c (caractère) ou s (chaîne de caractères)

Utilisation de printf #include <stdio.h> int main(void) { int a; float b; Déclarations a=28; b=12.5; Initialisations printf(«résultat:\n»); Texte sans variables printf(«valeur de a :%d \n»,a); Affichage entier printf(«valeur de b: %f \n»,b); Affichage réel printf(«autre format %5d \n»,a); Entier 5 caractères printf(«autre format %8.3f \n», b); Réel 8 caractères return(0); }

La procédure scanf Printf ne modifie pas le contenu des variables affichées La procédure scanf permet de lire des informations sur un périphérique d entrée et d affecter le contenu de la variable. La syntaxe de la procédure est : scanf(«spécifications», &var1, &var2, &var3); Les spécifications sont identiques à la procédure printf Le & indique que var1, var2 et var3 sont des résultats (ou paramètres de sortie): ne jamais l oublier!

Exemple de synthèse #include < stdio.h > #define PI 3.1415927 int main(void) { float rayon, volume; printf(«entrez le rayon de la sphère :\n»); scanf(«%f», &rayon); volume= (4*PI*rayon*rayon*rayon)/3; printf(«le volume de la sphère est: %f»,volume); return(0); }

III) Les structures alternatives 1) La notion de test 2) La structure SI 3) Exemples Alter SI condition A1 A2 S1 S2

1) la notion de test Un test est une expression à résultat booléen: vrai ou faux En langage C standard, les constantes «vrai» et «faux» n existent pas: - un résultat égal à zéro est «vrai» - un résultat différent de zéro est «faux» Les tests peuvent être réalisés par des opérateurs de comparaison et des opérateurs logiques

Les opérateurs Ils sont résumés dans les tableaux suivants: > Supérieur < inférieur > = Supérieur ou égal < = Inférieur ou égal & & "et" logique "ou" logique == Egal! = différent

2) la structure SI La structure SI permet d effectuer une rupture de séquence en fonction du résultat d un test: La syntaxe C est : if (test) { instruction alors 1; instruction alors 2; } else { instruction sinon 1; instruction sinon 2; } Bloc «alors» Bloc «sinon»

3) Exemple #include <stdio.h> int main(void) { float a,b,x; printf(«entrer a: \n»); scanf(«%f»,&a); printf(«entrer b: \n»); scanf(«%f»,&b); if ( a= = 0 ){ printf(«pas de solution»); } else { x= -b/a; printf(«la solution est %f»,x); } return(0); }