La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.

Présentations similaires


Présentation au sujet: "Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006."— Transcription de la présentation:

1 Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006

2 Programmation Sommaire Premier exemple C Premier exemple C++
L'environnement wxDevCPP Algorithmique Algorithmique: exemple Les langages C et C++ Les structures de contrôle Bruno Permanne 2006

3 Motivation Initiale Pourquoi apprendre à programmer ?
Pour des raisons intellectuelles  Devenir acteur du processus informatique Pour des raisons culturelles  Mieux comprendre la culture du monde informatique Pour des raisons sociales  L’informatique est imbriquée à l’extrême dans tous les processus sociaux Pour des raisons professionnelles  Maîtrise(de la machinerie) pour la maintenance des réseaux de terrain Pour bénéficier d’un logiciel sur mesure  Application comportant la convivialité et juste les fonctionnalités nécessaires Retour sommaire Bruno Permanne 2006

4 Motivation Initiale Pourquoi les langages C et C++ (version moderne du C) ? C’est un langage de haut niveau  Plus proche du langage naturel C’est un langage de bas niveau  Plus proche de la machine C’est un langage pouvant être structuré  Le découpage en fonctions, modules permet une meilleure maintenabilité C’est le langage (de tous) les systèmes d’exploitation modernes  Windows, Unix, Linux, MacOs, etc. C’est un langage qui en a inspiré beaucoup d’autres  En particulier pour le développement de l’internet: PHP, JAVA Beaucoup d’outils et de manuels sont gratuits Environnements disponibles et téléchargeables sur internet: DevCPP,Eclipse, etc. Retour sommaire Bruno Permanne 2006

5 Idées reçues Sur les compétences supposées des programmeurs !
Il faut être matheux ! Non (en dehors des problèmes mathématiques), mais il faut être: Logique Rigoureux Inventif, créatif, imaginatif La programmation est une affaire de spécialistes (informaticiens ?)  Non, c’est un peu comme si seuls les professeurs de lettre étaient autorisés à lire Il faut être un intellectuel  Non, il ne faut pas nécessairement faire de longues études, ni manipuler des concepts abstraits Il faut étudier longtemps avant d’écrire son premier programme  Non, au bout de 10 minutes, on peut tester son premier (très petit) programme; au bout de quelques heures on peut tester son premier programme qui fait quelque chose d’utile. Retour sommaire Bruno Permanne 2006

6 Objectifs, moyens Et organisation pédagogique Organisation du cours
3 séances de cours de de 2H (parmi les 7 prévues dont réseaux et superviseurs) Quelques séances de travaux pratiques (sur les 6 prévues) Apprentissage par l’exemple Outils  Environnement de développement wxDevCPP Retour sommaire Bruno Permanne 2006

7 Premier exemple Programme C Le programme « Bonjour monde ! »
Retour sommaire Bruno Permanne 2006

8 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } Ce programme est un programme ‘source’ Il est écrit dans un fichier texte (fichier ‘ascii’) Ce fichier s’appelle par exemple Hello.c Par convention et pour une meilleure lisibilité, on réalise une indentation (un décalage) des portions de code de niveau inférieur, ici les lignes printf et return. Retour sommaire Bruno Permanne 2006

9 Traduction et exécution
Premier exemple C Le programme « Bonjour monde ! » Le programme source à besoin d’être traduit pour pouvoir être exécuté car la machine (le microprocesseur) ne sait pas lire un texte !) Il y a deux méthodes: l’utilisation d’un INTERPRETEUR l’utilisation d’un COMPILATEUR Fichiers source Interpréteur Exécution non autonome Traduction et exécution ligne par ligne Fichiers source Compilateur Fichier exécutable Exécution autonome Traduction Globale Retour sommaire Bruno Permanne 2006

10 Premier exemple C Le programme « Bonjour monde ! » >Bonjour Monde
Voilà le résultat de l’exécution de ce programme Le programme s ’exécute en mode console c’est à dire en mode texte non fenêtré Retour sommaire Bruno Permanne 2006

11 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } Ceci est un commentaire Un commentaire est situé entre /* et */ En dehors des commentaires, le C et le C++ sont sensibles à la casse (majuscule / minuscule). Par exemple, return est différent de Return Retour sommaire Bruno Permanne 2006

12 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } #include est une ‘directive d’inclusion’ Elle signifie qu’il faut placer ici le texte contenu dans le ‘fichier d’entête’ stdio.h Les balises <> signifient que ce fichier est un fichier faisant partie du C lui-même Un fichier d’entête écrit par vous sera placé entre “ et “ Retour sommaire Bruno Permanne 2006

13 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } int main() est une entête de définition de fonction Une fonction est une portion de code écrite une fois identifiée par un nom et qu’on peut réutiliser plusieurs fois (appel à la fonction). La fonction main est la fonction par laquelle le programme commence à s’exécuter, elle est appelée par le système d’exploitation. Cette fonction est obligatoire pour tout programme Retour sommaire Bruno Permanne 2006

14 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } Les instructions sont placées entre accolades { } Ici les accolades déterminent aussi les limites des actions à effectuer par la fonction main Retour sommaire Bruno Permanne 2006

15 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } Ceci est un appel à la fonction printf Il s’agit d’une instruction Une instruction se termine toujours par un point-virgule La fonction printf permet l’affichage sur l’écran de l’ordinateur du texte (chaine de caractère) “Bonjour monde\n" La définition de la fonction printf se trouve dans le fichier stdio.h \n est un caractère de contrôle qui provoque un retour à la ligne Retour sommaire Bruno Permanne 2006

16 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main() { printf(“Bonjour Monde\n"); return 0; } Ceci est une autre instruction puisqu’elle se termine par un point-virgule Elle indique que la fonction main doit se terminer et retourner la valeur entière 0 (le int avant main), ce qui signifie que tout s’est bien passé Retour sommaire Bruno Permanne 2006

17 Premier exemple C Le programme « Bonjour monde ! »
/* Notre premier programme en C */ #include <stdio.h> int main(){ printf(“Bonjour Monde\n");return 0;} En fonction des règles sur le point-virgule et sur les accolades, ce programme est le même que le précédent Retour sommaire Bruno Permanne 2006

18 Premier exemple Programme C++ Le programme « Bonjour monde ! »
Retour sommaire Bruno Permanne 2006

19 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } // est un commentaire C++, il est actif jusqu’à la fin de la ligne courante Retour sommaire Bruno Permanne 2006

20 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } 2 fichiers sont inclus Il n’est pas obligatoire de spécifier l’extension qui peut être en fait souvent .hpp On peut stocker ce fichier source dans un fichier texte nommé Hello.cpp Retour sommaire Bruno Permanne 2006

21 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } On spécifie ici l’utilisation d’un espace de noms L’espace de noms permet une meilleure gestion des fichiers d’entête inclus L’espace de noms std contient les noms des fonctions et variables standards du C++ Retour sommaire Bruno Permanne 2006

22 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } La fonction principale int main() Elle peut être définie aussi par int main(int argc, char *argv[]) C’est une définition avec des paramètres Les paramètres de la fonction main (si nécessaires) sont passés par l’utilisateur lors du lancement du programme Retour sommaire Bruno Permanne 2006

23 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } Toujours les accolades qui délimitent le traitement à effectuer Retour sommaire Bruno Permanne 2006

24 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } La fonction cout << est l’équivalent C++ du printf mais cout << est plus facile à utiliser. Cette fonction est définie dans le fichier iostream endl correspond au \n utilisé dans le printf Un programme en C fonctionne en C++ (compatibilité ascendante) On aurait donc pu ici utiliser le printf, mais cela n’aurait pas eu d’intérêt Retour sommaire Bruno Permanne 2006

25 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> int main() { std::cout << "Hello, world" << endl; return EXIT_SUCCESS; } Voilà comment écrire ce programme si on n’utilise pas le namespace, la fonction cout devient std::cout :: est l’opérateur de résolution de portée dont nous parlerons beaucoup plus tard. Retour sommaire Bruno Permanne 2006

26 Premier exemple C++ Le programme « Bonjour monde ! »
// Notre premier programme en C ++ #include <cstdlib> #include <iostream> using namespace std; int main() { cout << "Hello, world" << endl; return EXIT_SUCCESS; } return EXIT_SUCCESS veut dire la même chose que return 0, mais est plus évident. Retour sommaire Bruno Permanne 2006

27 Utilisation de l'environnement wxDevCPP
Premier exemple Le programme « Bonjour monde ! » Utilisation de l'environnement wxDevCPP Retour sommaire Bruno Permanne 2006

28 Algorithmique Algorithmique Comment bien poser un problème
Retour sommaire Bruno Permanne 2006

29 Algorithmique L’algorithme Commencer le programme Afficher "Bonjour“
Demander un nombre n Afficher le nombre n Finir le programme Un algorithme est la traduction en langage naturel du découpage séquentiel d’une action Il ne décrit donc que des actions pouvant être identifiées comme ayant un début et une fin On parle d’approche neumannienne du mathématicien John Von Neumann (1903/1957), qui en est l’inventeur . Cette approche est différente de l’approche évènementielle que nous aborderons plus tard. Retour sommaire Bruno Permanne 2006

30 Algorithmique L’arbre programmatique Bonjour n: entier Début Fin
Saluer Sortir: ‘Bonjour’ SEQ Résultat Sortir ‘Le nombre est: ‘ Sortir n Demander Sortir ‘Entrez un nombre’ Entrer n Retour sommaire Bruno Permanne 2006

31 Algorithmique L’arbre programmatique Nom du programme Bonjour
n: entier Déclaration d’une variable Saluer Sortir: ‘Bonjour’ SEQ Résultat Sortir ‘Le nombre est: ‘ Sortir n Connecteur (séquence) Demander Sortir ‘Entrez un nombre’ Entrer n Retour sommaire Bruno Permanne 2006

32 Algorithmique L’arbre programmatique Bonjour n: entier Saluer
Sortir: ‘Bonjour’ SEQ Résultat Sortir ‘Le nombre est: ‘ Sortir n Nom du bloc Demander Sortir ‘Entrez un nombre’ Entrer n Affichage d’un texte Acquisition clavier Retour sommaire Bruno Permanne 2006

33 Algorithmique L’arbre programmatique: les choix Connecteur (SI)
Condition SI Action (Si condition fausse) Action (Si condition vraie) Retour sommaire Bruno Permanne 2006

34 (Si conditions fausse)
Algorithmique L’arbre programmatique: les choix Connecteur (CAS) Conditions 1,2,3 CAS Action (Si conditions fausse) Action 1 (Si condition 1 vraie) Action 2 (Si condition 2 vraie) Action 3 (Si condition 3 vraie) Retour sommaire Bruno Permanne 2006

35 (Tant que condition vraie,
Algorithmique L’arbre programmatique: les boucles Connecteur (Tant Que) Condition TTQ Action (Tant que condition vraie, test avant l’action) Retour sommaire Bruno Permanne 2006

36 (Tant que condition vraie,
Algorithmique L’arbre programmatique: les boucles TTQ Condition Action (Tant que condition vraie, test après l’action) Retour sommaire Bruno Permanne 2006

37 Algorithmique L’arbre programmatique: les boucles Connecteur (Répéter)
Action 2 (Répétée jusqu’à ce que la condition soit vraie, test avant l’action) REP Condition Action 1 (exécutée un fois puis répétée jusqu’à ce que la condition soit vraie, test après l’action) Retour sommaire Bruno Permanne 2006

38 Algorithmique L’arbre programmatique: les boucles indexées
Connecteur (d’itération) Initialisation; Condition; Evolution POUR Action (Tant que condition vraie, Après une seule initialisation, test avant l’action, évolution après l’action) Retour sommaire Bruno Permanne 2006

39 (Entier) i0; i<10; i  i+1
Algorithmique L’arbre programmatique: les boucles indexées >0 >1 >2 >3 >4 >5 >6 >7 >8 >9 > (Entier) i0; i<10; i  i+1 POUR Action 1 Afficher i; SEQ Action 2 Aller à la ligne; Retour sommaire Bruno Permanne 2006

40 Algorithmique L’arbre programmatique: exemple Commencer le programme
Afficher "bonjour", Demander un nombre n, Afficher le nombre n, Demander "voulez vous recommencer VRAI/FAUX", TANT QUE réponse == VRAI aller en (3), Afficher "au revoir", Finir le programme. Retour sommaire Bruno Permanne 2006

41 Algorithmique L’arbre programmatique: exemple Bonjour n: entier
r: booléen L’arbre programmatique: exemple Saluer 2 Sortir « Au revoir »; SEQ Saluer 1 Sortir « bonjour »; Demander Sortir « Entrez un nombre »; Entrer nb; TTQ r == VRAI SEQ Afficher 1 Sortir « Le nombre est:  »; Sortir nb; Afficher 2 Sortir « Recommencer ? (VRAI / FAUX):  »; Entrer r; Retour sommaire Bruno Permanne 2006

42 Présentation sommaire
Les langages C et C++ Comprendre les bases Présentation sommaire Retour sommaire Bruno Permanne 2006

43 (déclarations / affectations)
Les langages C et C++ Les variables (et les constantes) Toute variable doit être déclarée avant d’être utilisée La déclaration réserve la quantité de mémoire nécessaire au type demandé Type Déclaration Exemples (déclarations / affectations) Caractère non signé (1 octet) unsigned char unsigned char c, d; c=0x4D; d=48; Caractère signé char unsigned char c='A'; Entier (2 octets) int int total, n=0; total = ; Nombre flottant double (8 octets) double const double pi= ; double x = 4.56E-7; Tableau de n ou n*m entiers (2*n ou 2*n*m octets) int[n] int [n][m] int tab[56], tab2[10][12]; tab[34]=32000; Chaine de n caractères (n+1 octets) char[n] char mc[]="Ma chaine"; charreponse[10]; Chaine de caractères C++ string string mc="Ma chaine"; Retour sommaire Bruno Permanne 2006

44 Les langages C et C++ Les expressions unaires, binaires ou ternaires
attention au types retournés en cas de mélange de variables Fonction Exemples incrémenter int compteur=0; compteur++; additionner compteur = compteur+10; compteur+=10 // écriture condensée affecter conditionnellement int n; double a,b; a=b=56.9; // affectation multiple n = (a!=b) ? 10 :-1; un calcul avec affectation conditionnelle et changement de type de variable double x; int i=33, j=2; x = (n==2) ? 3*a : 0.0; x = (n=j) ? 3*i : 0.0; x = (double) ((n=2) ? 3*i : 0.0); Retour sommaire Bruno Permanne 2006

45 Les langages C et C++ Les instructions d'entrée/sortie
Entrée par le clavier cin >> pour le C++ et scanf pour le C Sortie écran cout << pour le C++ et printf pour le C Inclure iostream ou stdlib.h Fonction Exemples Affichage C int x=67, compteur; float y; y=(float)x/10; printf("résultat de %d/10 =%f\n",x,y); lire un nombre C scanf("%d",&compteur); Affichage C°° cout<<"resultat de "<<x<<"/10="<<y<<endl; lire un nombre C++ cin>>compteur; Retour sommaire Bruno Permanne 2006

46 Les langages C et C++ Exemples de synthèse Fonction Exemples
comparaison bool flag; int a=4, b=5, c; flag=(a==b); flag=(a!=b);flag=(a>b); flag=(a>=b);flag=(a<b);flag=(a<=b); flag=(c=b); flag=(a==b)||(b==c); flag=(a>=b)&&(b<c); logiques unsigned char f2, f3=2; flag=!flag; f2=~(unsigned char)++flag; f2 ^= 0xFF; f3 |= f2; f2=(unsigned char)flag<<2|f3; flux de sortie standard f2+=0x30; cout <<f2<<endl; cout <<hex; cout <<(int)f2<<endl; cout <<dec; cout <<b<<1<<endl; cout <<(b<<1)<<endl; cout <<"b<<1"<<endl; Retour sommaire Bruno Permanne 2006

47 Les langages C et C++ Les structures de contrôle SI
Action (Si condition vraie) SI Condition // test de l'instruction if If(c==4) cout<<"c vaut 4"<<endl; Retour sommaire Bruno Permanne 2006

48 Les langages C et C++ Les structures de contrôle SI
Action (Si condition vraie) SI Condition Action (Si condition fausse) // test de l'instruction if else If(c==4) cout<<"c vaut 4<<endl; else cout<<"c ne vaut pas 4"<<endl; Retour sommaire Bruno Permanne 2006

49 (Si conditions fausse)
Action 1 (Si condition 1 vraie) CAS Conditions 1,2,3 Action (Si conditions fausse) Action 2 (Si condition 2 vraie) Action 3 (Si condition 3 vraie) // test de l'instruction switch char choix; cin >> choix; switch(choix) { case 'A':cout <<"c'est A!"; break; case 'B':cout <<"c'est B!"; case 'C':cout <<"c'est C!"; default: cout <<"c'est quoi ?"; } Retour sommaire Bruno Permanne 2006

50 (Tant que condition vraie,
Les langages C et C++ Les structures de contrôle Action (Tant que condition vraie, test avant l’action) TTQ Condition // test de l'instruction while int i[6]={0,6,78,9,52,-1}; unsigned int j=0; while(i[j]>0) { j++; cout <<"i[j] est positif! "<<endl; } Retour sommaire Bruno Permanne 2006

51 (Tant que condition vraie,
Les langages C et C++ Les structures de contrôle Action (Tant que condition vraie, test après l’action) TTQ Condition // test de l'instruction do while unsigned int j=0; do cout << j++; while(TRUE!=FALSE); Retour sommaire Bruno Permanne 2006

52 Les langages C et C++ Les structures de contrôle
Action 1 (exécutée un fois puis répétée jusqu’à ce que la condition soit vraie, test après l’action) REP Condition Action 2 (Répétée jusqu’à ce que test avant l’action) // test de l'instruction repeat until break double x; x=1.1; repeat { x*=1.1; cout<<x<<' '; // action 1 if (x>100.0) break; cout<<x<<endl; // action 2 } until (TRUE==FALSE); Retour sommaire Bruno Permanne 2006

53 Les langages C et C++ Les structures de contrôle
// test de l'instruction for double x,phi; const double pi= ; for(phi=0;phi<2*pi;phi+=pi/60) { x=sin(phi); cout<<"sin("<<phi<<")="<<x<<endl; } Action (Tant que condition vraie, Après une seule initialisation, test avant l’action, évolution après l’action) POUR Initialisation; Condition; Evolution Retour sommaire Bruno Permanne 2006

54 Programmation Fin de la première partie Bruno Permanne 2006


Télécharger ppt "Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006."

Présentations similaires


Annonces Google