Informatique 2A 2010-2011 Langage C 1 ère séance.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
Introduction au langage C
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
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
Systèmes d’exploitation
Les bases de l’Algorithmique
Points importants de la semaine Les types arithmétiques. Les opérateurs.
CPI/BTS 2 Programmation Web Introduction au PHP
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Démarche de résolution de problèmes
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Introduction à la programmation (Java)
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Principes de programmation
IFT 6800 Atelier en Technologies d’information
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.
COURS DE PROGRAMMATION ORIENTEE OBJET :
LANGAGE C LP A2I IUT St DIE
Procédures et fonctions
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
Animateur : Med HAIJOUBI
2.1 - Historique Chapitre 2 : Introduction au langage C++
Programmer en langage c
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
ALGORITHMIQUE ET PROGRAMMATION C
Langage C Chapitre I: Initiation à la programmation en C
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Module I3 algorithmique et programmation
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
Cours LCS N°4 Présenté par Mr: LALLALI
L’ histoire: 1976: - Bell Labs abandonne le projet MULTICS. - Ken Thompson, programmeur système chez Bell Labs, se trouve désoeuvré. MULTICS devait être.
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
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.
Programmation en C.
Les entrées-sorties élémentaires
Module algorithmique et programmation
Langage de programmation
Scripts et fonctions Instructions de contrôle
Tour rapide d’un premier programme SPARC v9
Chapitre 9 Les caractères.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
Algorithmique et programmation
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Transcription de la présentation:

Informatique 2A Langage C 1 ère séance

L’enseignement en informatique à l’école 1A Matlab : langage interprété, méthodes de calcul numérique 2A Langage C : langage de programmation structuré, interfaçage matériel et logiciel 3A C++ : programmation orientée objet

Déroulement de l’année 8 séances de 4h Objectif des 5 premières séances : apprentissage d’un langage informatique moderne, puissant et très populaire, le C Séances 6 à 8 : Mini projet

Évaluation Binômes d’info en cours et pour les CR 1 CR en séance 2 et 1 CR en séance 4 Devoir à la maison autour de la Toussaint Mini projet Soutenance et démonstration Nb d’absences > 1/3 : épreuve de rattrapage 1 note

Bref historique du langage C Les ancêtres du C : BCPL basic combined programming language : 1966, Cambridge, par Richards, un seul type de donnée : le mot machine B : 1970, Bell Labs, par Thompson, Unix, ajout du type caractère Le langage C : 1972, Bell Labs, par Ritchie avantages de B + types de données : 90% d’Unix en C 1978 : « The C programming language » (Kernighan et Ritchie). Apparition de nombreux compilateurs C 1983 : Standard ANSI C puis 1989 ISO portabilité 1983 : Vers la programmation orientée objet C++

Avantages et inconvénients du langage C Moderne (structuré, récursif …) Compacité du code généré (noyau de fonctions et d’opérateurs limités) Près de la machine (ex : gestion de la mémoire) Rapide (expressions et opérateurs proches du langage machine => programmes efficaces et rapides) Portabilité (il suffit d’un système avec compilateur C) Modularité Extensible Compréhensibilité Limite de la portabilité =>Discipline de programmation

Présentation de Visual C express C’est un environnement de développement intégré Un espace de travail (solution) Plusieurs projets : Projet 1 (project) Plusieurs types de fichiers : Fichier source 1 (source file.c) Fichier source 2 Fichier entête 1 (header file.h) Fichier entête 2 … Projet 2 … Deux règles à respecter pour éviter beaucoup d’erreurs : 1) Dans un même projet, un et un seul fichier source avec la fonction main 2) Tous vos fichiers source ont l’extension.c

Présentation de Visual C Express Lancer Microsoft Visual C Express – Choisir Nouveau Projet – Puis Application console Win32 – Comme nom de la solution : tapez le nom du binôme, et créer un dossier dans Mes documents (vos programmes seront stockés dans ce dossier) – Comme nom du projet : projet1 par exemple –Dans la fenêtre suivante (Assistant Application Win32) cliquer sur suivant puis sur l’option supplémentaire « projet vide » (et non en-tête précompilée) – Puis cliquer sur terminer

Présentation de Visual C Express. –Ajouter un fichier source (Fichier C++) en forçant l’extension.c (au lieu de cpp) –Puis tapez le code précédent (affichages)

Présentation de Visual C Express –Une fois le code écrit, il faut le compiler acec Compiler (ou CTRL F7) puis générer un exécutable avec Générer la solution (ou F7) –Puis l’exécuter avec F5 10 Nb : Pour la mise en forme du code, utiliser Edition > Avancé > Mettre la sélection en forme

Présentation de Visual C Express –En cas d’erreurs, aller lire la fenêtre « sortie » – Et toujours commencer par corriger la 1 ère erreur de la liste avant de relancer la compilation

Présentation de Visual C Express Règles à respecter absolument : –Un seul main () par projet. –Et donc un seul fichier comprenant la fonction main –Tous les fichiers de code source devront avoir l’extension.c (et surtout pas.cpp) 12 Info C – IOGS

Un premier programme /* Affiche bonjour */ #include main() { printf(‘‘bonjour\n’’) ; } Commentaires Inclusion de fichiers de la bibliothèque standard La fonction main Les blocs d’instructions Sortie formatée Symboles conventionnels Création d’un exécutable (.exe) : Compilation : traduction en langage machine ->.obj (générer, compiler) Édition de liens (lier ensemble le.obj et stdio) pour créer un.exe (générer projet) Exécution du programme (débogguer, exécuter sans déboggage)

nom type Les variables Déclaration d’une variable : int i ; Variable = emplacement en mémoire avec un nom et une valeur Adresses :3F057A22 5 i Variables : Mémoire de l’ordinateur : cases avec des adresses Initialisation d’une variable : i = 5 ;

Pourquoi des types ? Adresses :3F057A22 1 « case » = 1 octet = 8 bits Comment interpréter : ? Cela peut être l’entier 77 ou le caractère M D’où la notion de type qui précise le codage et l’occupation en mémoire

Les types simples Les types entiers short int long int Les types flottants float : réel simple précision double : réel double précision long double : précision étendue Le type caractère char Code ASCII Caractères imprimables + séquences d’échappement (ex : \n) int n1, n2 ; short i ; n1 = n2 = 3 ; i= 3 ; float x ; double alpha, beta ; x = 7.98 ; beta = alpha = ; char d = ‘A’ ; La valeur de d est le code ASCII du caractère A char d = 65 ; char ligne = ‘\n’ ;

Les opérateurs Opérateurs arithmétiques : +, -, /, *, = % : modulo Affectation : = Opérateurs logiques : && : et II : ou ! : non Incrémentation et décrémentation : + - int n1 ; n1 = 3 ; affecte la valeur 3 à n1 int x ; x = = 3 ; Compare la valeur de x à 3 Si x vaut 3, l’expression (x == 3) vaut 1, 0 sinon Égalité : = = A = 5 ; B = ++ A + 3 ; A = 5 ; B = 3 + A++ ; A = 6 B = 9 A = 6 B = 8

Conversion de types Dans le calcul d’une expression, toutes les données sont automatiquement converties dans un même type, le plus « large » de l’expression int a = 5 ; double x = 2.5 ; double z = x/a ; a est convertie en double, puis la division est effectuée. z vaut 0.5 Pour une affectation, la donnée à droite du signe = est convertie dans le type de la donnée de gauche int i = 5 ; double y = 2.5 ; i = y ; y est convertie en int et sa valeur (2) est affectée à i : i vaut 2

Conversion de types Attention : 1/4 vaut 0 1.0/4.0 vaut /4 vaut 0.25 Opérateur de cast pour forcer une conversion : cf poly

Les instructions de contrôle for (i = 0 ; i < 10 ; i++) (initialisation ; test de continuité ; incrémentation) { instructions ; } if (expression) { instructions ; } else { instructions ; } do { instructions ; } while (expression) { instructions ; } switch

Les directives au précompilateur Les inclusions de fichiers Les constantes symboliques #include (chemin d’accès spécifié dans le logiciel) #include ‘‘fichier.h’’ (répertoire courant) #define A 100 Remplace A par 100 dans le programme (c’est un ‘copier/coller’) Emplacement : avant la fonction main

La fonction printf Écriture sur le flot de sortie (ou écran) Affichage d’une chaîne de caractères : printf(‘’bonjour \n ’’); Affiche la chaîne de caractères bonjour à l’écran, suivie d’un retour à la ligne (\n) Affichage de variables : int i = 5; printf(‘‘%d\n’’,i); Affiche la variable i à l’écran dans le format spécifié par %d (entier), soit 5 Affichage de plusieurs variables et chaînes de caractères : int x = 2 ; double y = 2.5 ; printf(‘‘le produit de %d par %lf vaut %lf \n’’, x, y, x*y); Codes de conversion : %d int %c char %f float %lf double … Affiche le produit de 2 par 2.5 vaut 5

La fonction scanf Lecture sur le flot d’entrée (ou clavier) Lecture d’une variable : int i = 5; printf(‘‘entrez un chiffre\n ’’) scanf(‘‘%d ’’,&i); Stocke dans la variable i le chiffre rentré au clavier par l’utilisateur Attention à la notation &i Codes de conversion : %d int %c char %f float %lf double … Ne pas mettre de \n dans un scanf

Les tableaux à une dimension Déclaration : Type T[N] ; Tableau dont le nom et T contenant N éléments de type Type allant de T[0] à T[N-1] La taille du tableau N est connue à la compilation : c’est une constante symbolique ou un nombre T[0] T[i] T[N-1] Tableau de taille N int T[100] ; Déclare un tableau d’entiers de 100 éléments allant de T[0] à T[99] Attention aux problèmes de débordement : T[100] n’existe pas

Structure générale d’un programme /* commentaires */ #include #define CS 10 main() { Déclaration des variables ; Initialisations ; Instructions ; }