1 / 23

INFORMATIQUE III Juliana Gueorguieva

INFORMATIQUE III Juliana Gueorguieva. INFORMATIQUE III Bibliographie Ив. Момчев, К. Чакъров, Програмиране III ( C и C ++), ПБ на ТУ, София, 2000 Юл. Георгиева. М. Горанова, Ив. Йорданов и др., Ръководство по Програмиране и използване на компютри I ( C ), СИЕЛА, София, 2001

remedy
Download Presentation

INFORMATIQUE III Juliana Gueorguieva

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INFORMATIQUE III Juliana Gueorguieva

  2. INFORMATIQUE III • Bibliographie • Ив. Момчев, К. Чакъров, Програмиране III (C и C++), ПБ на ТУ, София,2000 • Юл. Георгиева. М. Горанова, Ив. Йорданов и др., Ръководство поПрограмиране и използване на компютри I (C), СИЕЛА, София, 2001 • Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice-Hall, Englewood Cliffs, 1988 • Б. Кернинган, Д. Ритчи, Програмен език С, PrenticeHall, 2004 • Martine Trio, Cours de Turbo C/C++, Armand Colin, 1992 • Грег Пери, С в примери, Практическо ръководство за С, Софтпрес,2005 • De Peter Prinz et Tony Crawford, C in a Nutshell, Eyrolles, 2006 • Juliana Gueorguieva

  3. INFORMATIQUE III • Bibliographie • Хърбърт Шилдт, Практически самоучител, Най-успешният и • доказанметод за научаване на С, Софтпрес, 2001 • Богданов Д., Мустакеров Ив., Език за програмиране С, • Техника, 1999 • Клинт Хайкс, Опознайте С, 1996 • Weiss, M. A., DataStructures and Algorithm Analysis in C, • Addison Wesley, 1997 • ftp://ftp2.developpez.be/developps/c/PolyC.pdf • http://www.ltam.lu/Tutoriel_Ansi_C/ • http://www-ipst.u-strasbg.fr/pat/program/tpc.htm • Juliana Gueorguieva

  4. La structure d’un programme C et modularité de C

  5. La structure d’un programme C et modularité de C • La structure typique – modèle 1 /* Structure typique d’un programme C */ /* Directives préprocesseur*/ /* Prototypes des fonctions */ void f1(); . . . void fn(); /* Définition de la fonction main */ void main() { // Définitions des donnés //Appels des fonctions } /* Définitions des fonctions */ void f1() { . . . } . . . void fn() { . . . }

  6. La structure d’un programme C et modularité de C • La structure typique – modèle 2 /* Structure typique d’un programme C */ /* Directives préprocesseur*/ /* Définitions des fonctions */ void f1() { . . . } . . . void fn() { . . . } /* Définition de la fonction main */ void main() { // Définitions des donnés //Appels des fonctions }

  7. La structure d’un programme C et modularité de C • La structure typique – exemple 1 Une fonction appelle plusieures fonctions. Calculer les valeurs de la réactance capacitive (ohms) et celle de la réactance inductive en utilisant les valeures suivantes: 1) fréquence (hertz); 2) capacité (farads); 3) inductance (henrys). Les directives #include <stdio.h> 1/3 #define PI 3.14 float cap_react(float c, float f); float ind_react(float l, float f); Les prototypes

  8. La structure d’un programme C et modularité de C • La structure typique – exemple 1 Entrer des données main() 2/3 { float c,l,f,react; printf("Entrer c->"); scanf("%f",&c); printf("Entrer l->"); scanf("%f",&l); printf("Entrer f->"); scanf("%f",&f); react=cap_react(c,f); printf("Reactance capacitive=%.3e ohms\n",react); react=ind_react(l,f); printf("Reactance inductive=%.3e ohms\n",react); return 0; } Entrer c->10 Entrer l->20 Entrer f->30 Reactance capacitive=5.308e-04 ohms Ractance inductive=3.768e+03 ohms Appel de la fonction Appel de la fonction

  9. La structure d’un programme C et modularité de C • La structure typique – exemple 1 float cap_react(float c, float f) 3/3 { float react; react=1/(2*PI*f*c); return react; } float ind_react(float l, float f) { float react; react=2*PI*f*l; return react; } Les définitions des fonctions

  10. La structure d’un programme C et modularité de C • La structure typique – exemple 2 La fonction appelée appelle d’autres fonctions. Calculer les valeurs de la réactance capacitive (ohms) et celle de la réactance inductive en utilisant les valeures suivantes: 1) fréquence (hertz); 2) capacité (farads); 3) inductance (henrys).Calculer l’impédance de l’inductance et capacité en série (z=xc2+xl2). #include <stdio.h> 1/3 #define PI 3.14 float cap_react(float c, float f); float ind_react(float l, float f); float impedance(float c, float l, float f); Les directives Les prototypes

  11. La structure d’un programme C et modularité de C • La structure typique – exemple 2 Entrer des données main() 2/3 { float c,l,f,imped; printf("Entrer c->"); scanf("%f",&c); printf("Entrer l->"); scanf("%f",&l); printf("Entrer f->"); scanf("%f",&f); imped=impedance(c,l,f); printf("Impedance=%.3e ohms\n",imped); return 0; } Entrer c->10 Entrer l->20 Entrer f->30 Reactance capacitive=5.308e-04 ohms Ractance inductive=3.768e+03 ohms Impedance=3.768e+03 Appel de la fonction

  12. La structure d’un programme C et modularité de C • La structure typique – exemple 2 float cap_react(float c, float f) 3/3 { float react; react=1/(2*PI*f*c); return react; } float ind_react(float l, float f) { float react; react=2*PI*f*l; return react; } float impedance(float c, float l, float f) { float react_c, react_l, imped; react_c=cap_react(c,f); react_l=ind_react(l,f); printf("Reactance capacitive=%.3e ohms\n",react_c); printf("Reactance inductive=%.3e ohms\n",react_l); imped=sqrt(pow(react_c,2)+pow(react_l,2)); return imped; } Les définitions des fonctions appelés La définition de la fonction appelante d’autres fonctions

  13. La structure d’un programme C et modularité de C Inclusion de fichiers • Ca c’est la possibilité d'inclure des fichiers sources dans d'autres fichiers sources. • fichiers en-tête Il s'agit d'un fichier appartenant au système, faisant partie de la bibliothèque standard. #include <nom-de-fichier> #include "nom-de-fichier" Ce doit être un fichier source êcrit en C. Il doit être un nom complet.

  14. La structure d’un programme C et modularité de C Inclusion de fichiers – exemple sans inclusion #include <stdio.h> #define HEAD "Element Symbol Poids atomique\n" #define Ge "Germanium Ge 72.60\n" #define Si "Silicon Si 28.09\n" #define Au "Gold Au 197.20\n" #define Ge_p 72.60 #define Si_p 28.09 #define Au_p 197.20 void main() { float total; printf(HEAD); printf(Ge); printf(Si); total=Ge_p+Si_p; printf("Les poids atomiques de Germanium\n" "et Silicon est:%.2f\n",total); } Element Symbol Pods atomiques Germanium Ge 72.60 Silicon Si 28.09 Les poids atomiques de Germanium et Silicon est:100.69

  15. La structure d’un programme C et modularité de C Inclusion de fichiers – exemple avec inclusion #define HEAD "Element Symbol Poids atomique\n" #define Ge "Germanium Ge 72.60\n" #define Si "Silicon Si 28.09\n" #define Au "Gold Au 197.20\n" #define Ge_p 72.60 #define Si_p 28.09 #define Au_p 197.20 Enregistrer le fichier avec le nom chem.h dans la répertoire de fichier source.

  16. La structure d’un programme C et modularité de C Inclusion de fichiers – exemple avec inclusion #include <stdio.h> #include "chem.h" void main() { float total; printf(HEAD); printf(Ge); printf(Si); total=Ge_p+Si_p; printf("Les poids atomiques de Germanium\n“ "et Silicon est:%.2f\n",total); } Element Symbol Pods atomiques Germanium Ge 72.60 Silicon Si 28.09 Les poids atomiques de Germanium et Silicon est:100.69

  17. La structure d’un programme C et modularité de C La modularité de C • Diviser chaque nouveau problème en sous-problèmes qu'on puisse résoudre séparément (critère de décomposabilité). • Composer les logiciels qui peuvent se combiner librement pour produire de nouveaux systèmes (critère de composabilité). • Permettre au concepteur d'écrire des modules dont chacun peut être compris isolément par un lecteur humain (critère de compréhensibilité).

  18. La structure d’un programme C et modularité de C La modularité de C • Permettre la modification d’un petit nombre de modules (critère de continuité). • La condition anormale dans un module restera localisé à ce module ou n’ateindra un petit nombres de modules (voisins) (critère de protéction). • Les critères précédents induisent sur le langage en question quelques contraintes assez précises: • Les modules doivent correspondre à des entités syntaxique du langage; • quand deux modules partagent des informations, cela doit être clairement indiquédans leurs deux textes.

  19. La structure d’un programme C et modularité de C La compilation séparée • Si dans un module B on doit référencer une variable ou une fonction définie dans un module A, il sufit d'écrire dans B une déclaration comme extern int x ; • Cet énoncé postule l'existence d'un objet nommé x, ce qui sera contròlé par l'éditeur de liens.

  20. La structure d’un programme C et modularité de C La compilation séparée • Exemple – Traitement d’un tableau avec un nombre d’éléments maximale TAILLE en utilisant les fonctions suivantes: 1) faire entrer les éléments; 2) afficher le tableau; 3) copier un nombre d’ éléments donnéà partir du i iemedans un tableau nouveau. Utiliser 2 fichiers CPP: p2.cpp pour les fonctions et p1.cpp pour main. La variable i est définit dans p2.cpp et utilisé dans p1.cpp.

  21. La structure d’un programme C et modularité de C La compilation séparée Fichier p1.cpp Inclusion du fichier comportant les fonctions #include "p2.cpp" extern int i; void main() { int x[TAILLE], y[TAILLE]; int n,nbr; entrer(x,&n); sortir(x,n); printf("Entrer le nombre d'element a copier nbr="); fflush(stdin); scanf("%d",&nbr); printf("On va copier %d elements a partir d'element %d\n",nbr,i); copie(x,y,nbr); sortir(y,nbr); } La variable définit dans p2.cpp et utilisée ici Entrer l'element 1:3 Entrer l'element 2:4 Entrer l'element 3:5 Entrer l'element 4:* Les valeurs entrees sont 3 3 4 5 Entrer le nombre d'element a copier nbr=2 On va copier 2 elements a partir d'element 2 4 5

  22. La structure d’un programme C et modularité de C Fichier p2.cpp La compilation séparée #include <stdio.h> 1/2 #include <conio.h> #define TAILLE 10 int i=2; int entrer(int t[TAILLE], int *n) { *n=0; int temp; while( 1 ) { printf("Entrer l'element %d:",*n+1); if(scanf("%d",&temp)==1 && *n<TAILLE) { t[*n]=temp; (*n)++; } else { printf("Les valeurs entrées sont %d\n",*n); return 0; } } } La définition de i La définition de la fonction d’entrée

  23. La structure d’un programme C et modularité de C Fichier p2.cpp La compilation séparée void sortir(int t[],int n) 2/2 { int i; printf("\n"); for(i=0;i<n;i++) printf("%4d",t[i]); printf("\n"); } void copie(int *t,int *c,int nbr) { int j=0; while(nbr) { c[j]=t[i]; i++; j++; nbr--; } } La définition de la fonction d’affichage La définition de la fonction copie

More Related