23
Langage C/C++ Cours 1/5 : bases du langage Hubert Godfroy 13 novembre 2014 1/18

Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Langage C/C++Cours 1/5 : bases du langage

Hubert Godfroy

13 novembre 2014

1/18

Page 2: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Plan

Intérêts du C/C++

Éléments de base

Prise en main de l’IDE

2/18

Page 3: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Plan

Intérêts du C/C++

Éléments de base

Prise en main de l’IDE

3/18

Page 4: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Histoire du C

I 1978 : invention par Kernighan et RitchieI 1984 : spécification par l’ANSI (American National Standards

Institute)I Une extension orientée objet avec le C++I Énormément de nouveau langages sont dérivés du C

4/18

Page 5: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Performances

(http://benchmarksgame.alioth.debian.org/)

5/18

Page 6: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Compréhension

Les systèmes sont écrit en majorité en C.I Langage de bas niveauI Il est possible de programmer n’importe quoi.I Accès direct à la mémoire.I Pas de garde-fou (un grand pouvoir implique de grandes

responsabilités).

Facilite la compréhension des autres langagesI Explicite les mécanismes en jeu dans les autres langages

6/18

Page 7: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Plan

Intérêts du C/C++

Éléments de base

Prise en main de l’IDE

7/18

Page 8: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Comparaison avec JAVA

I Utilisation des mêmes opérateurs ( +, -, *, /, %, ++, &&, ||,==, . . . )

I Même structures de contrôle

Exemple

for(i = 0;i < 10;i++){· · · }while(i < 10){· · · }

if(i < 10){· · · }

Mais :I pas de GC (gestion de manuelle de la mémoire)I pas de packages

8/18

Page 9: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Comparaison avec JAVA

I Utilisation des mêmes opérateurs ( +, -, *, /, %, ++, &&, ||,==, . . . )

I Même structures de contrôle

Exemple

for(i = 0;i < 10;i++){· · · }while(i < 10){· · · }

if(i < 10){· · · }

Mais :I pas de GC (gestion de manuelle de la mémoire)I pas de packages

8/18

Page 10: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Variables

Processus en deux temps :

Déclaration

int i

À partir de ce moment, la variable à cours dans le bloc courant

Définition

i = 42

9/18

Page 11: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Variable

A�ention à la portée des variables

I Un bloc correspond à un ensemble de code entre deuxaccolades correspondantes.

I Une variable a cours dans toutes les instructions du bloc aprèssa déclaration.

I La variable est détruite à la sortie du bloc l’ayant déclarée.

(cf exercices 1-3 du TD 1)

10/18

Page 12: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Types de base

I Une partie des types standards habituels : char, int, float.I Absence de types usuels : boolean, string.I Nouveaux types : unsigned char, unsigned int.I D’autres types structurés (cf prochain cours)

11/18

Page 13: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Entrée/sorties

Se font avec scanf et printf :

Exemple de sortieprintf("Hello world")printf("La réponse est %d", 42)printf("π = %f", 3.14)

Exemple d’entréescanf("%d", &taille)scanf("%c", &lettre)

12/18

Page 14: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Entrée/sorties

Se font avec scanf et printf :

Exemple de sortieprintf("Hello world")printf("La réponse est %d", 42)printf("π = %f", 3.14)

Exemple d’entréescanf("%d", &taille)scanf("%c", &lettre)

12/18

Page 15: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Entrée/sorties

Se font avec scanf et printf :

Exemple de sortieprintf("Hello world")printf("La réponse est %d", 42)printf("π = %f", 3.14)

Exemple d’entréescanf("%d", &taille)scanf("%c", &lettre)

12/18

Page 16: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Déclaration de fonctions

Syntaxetype0 nom_fonction (type1 x1, ...){

...}

Exempleint irma (int n){return (rand() % n)}

RemarqueOn peut aussi séparer déclaration et définition d’une fonction. Ici ladéclaration de irma est

int irma (int)

13/18

Page 17: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Déclaration de fonctions

Syntaxetype0 nom_fonction (type1 x1, ...){

...}

Exempleint irma (int n){return (rand() % n)}

RemarqueOn peut aussi séparer déclaration et définition d’une fonction. Ici ladéclaration de irma est

int irma (int)

13/18

Page 18: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Déclaration de fonctions

Syntaxetype0 nom_fonction (type1 x1, ...){

...}

Exempleint irma (int n){return (rand() % n)}

RemarqueOn peut aussi séparer déclaration et définition d’une fonction. Ici ladéclaration de irma est

int irma (int)

13/18

Page 19: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Exemple minimal

#include <stdio.h>int double(int n){

return n*2;}int main(int argc, char *argv[]){

return double(5);}

14/18

Page 20: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

Plan

Intérêts du C/C++

Éléments de base

Prise en main de l’IDE

15/18

Page 21: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

IDE

I Environnement de travail QtI Environnement de développement intégréI Aide à la programmation : auto-complétion sémantique,

réusinage, aide à la correction d’erreurs, . . .

16/18

Page 22: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

IDE

DEMO

17/18

Page 23: Langage C/C++ - Cours 1/5 : bases du langage · Compréhension Les systèmes sont écrit en majorité en C. I Langage de bas niveau I Il est possible de programmer n’importe quoi

IDE

Et maintenant, à vous de jouer !

18/18