TABLEAU DE POINTEURS - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

TABLEAU DE POINTEURS

Description:

Cha ne constante tait traduite par le compilateur en une adresse que l'on pouvait ... Afficher toutes les lignes qui commencent par une lettre ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 24
Provided by: julianag7
Category:

less

Transcript and Presenter's Notes

Title: TABLEAU DE POINTEURS


1
TABLEAU DE POINTEURS
  • TRAITEMENT DE TEXTE
  • TRAITEMENT DE STRUCTURES

2
Initialisation de tableaux de pointeurs sur des
chaînes
  • Chaîne constante était traduite par le
    compilateur en une adresse que l'on pouvait
    affecter à un pointeur sur une chaîne. Cela peut
    se généraliser à un tableau de pointeurs, comme
    dans
  • Cette déclaration réalise la création des 7
    chaînes constantes correspondant aux 7 jours de
    la semaine et l'initialisation du tableau jour
    avec les 7 adresses de ces 7 chaînes.

char jour7 "lundi", "mardi", "mercredi",
"jeudi", "vendredi", "samedi", "dimanche"
3
Initialisation de tableaux de pointeurs sur des
chaînes
  • Example

tableau de sept pointeurs, chacun d'entre eux
désignant une chaîne constante
include ltstdio.hgt int main(void) char
jour7 "lundi", "mardi", "mercredi",
"jeudi", "vendredi", "samedi", "dimanche"
int i printf ("donnez un entier entre 1 et 7
") scanf ("d", i) printf ("Le jour
numéro d de la semaine est s", i, jouri-1 )
return 0
donnez un entier entre 1 et 7 6 Le jour numéro
6 de la semaine est samedi
4
  • Traitement de texte
  • Faire un programme à traiter 20 lignes (au
    maximum) de text 62 caractères par ligne en
    utilisant les fonctions suvantes
  • Entrer une ligne de texte
  • Entrer tout le text
  • Afficher le text entré
  • Afficher toutes les lignes qui commencent par
    une lettre
  • donné

Les prototypes des fonctions
char li(char s) int te(char s ) void
out(char s ,int l) void find(char list
,int l)
5
Traitement de texte
Les lignes de texte
char s20
6
Traitement de texte
Les directives
includeltstdio.hgt 1/5 includeltstdlib.
hgt includeltconio.hgt include ltstring.hgt define
L 20 define C 63 char li(char s) int te(char
s) void out(char s,int l) void find(char
list,int l)
Les prototypes des fonctions
7
Traitement de texte
Appel de la fonction dentré texte
void main() 2/5 char
tL int l, i l te(t) out(t,l) find
(t,l)
Appel de la fonction daffichage texte
Appel de la fonction daffichage des lignes
8
Traitement de texte
La définition de la fonction dentré ligne
//entrer une ligne de texte 3/5 char
li(char s) char c,ps int
i0 printf("Entrer ligne.\n") while(cgetchar(
),c!'\n'c!EOFiltC-1) sc i
if(i0cEOF) return NULL else
s'\0' return p
9
Traitement de texte
La définition de la fonction dentré texte
//entrer tout le texte 4/5 int
te(char s) int i0,l char buf
buf(char)malloc(63) while(1)
printf("li d\n",i) if(li(buf)NULL
iL)break lstrlen(buf) si(char
)malloc(l1) if(siNULL)
printf("Pas de place\n") exit(1)
strcpy(si,buf) i free (buf)
free(s) return i
li 0 Entrer ligne. programme traitement texte li
1 Entrer ligne. affichage des lignes li 2 Entrer
ligne. qui commencent par une lettre li 3 Entrer
ligne. CTRLZ
10
Traitement de texte
La définition de la fonction daffichage texte
void out(char s,int l) 5/5
int i for(i0iltli) puts(si)
void find(char list,int l) int i,cle0
char car printf("Entrer caractère ")
cargetch() printf("\n")
for(i0iltli) if((listi) car)
puts(listi) cle1
if(!cle) printf(Il ny a aucune ligne qui
commence avec c\n,car)
La définition de la fonction daffichage des
lignes
programme traitement texte affichage des
lignes qui commencent par une lettre Entrer
caractere p programme traitement texte
11
  • Traitement de structures modèle 1
  • Faire un programme C de création et traitement
    d'un tableau d'éléments de type structuré (avec
    un nombre maximal 30). Afficher tous les
    étudiants dun faculté donné. Chaque structure
    est composée des champs suivants a) nom - chaîne
    de caractères b) faculté - chaîne de
    caractères c) note moyenne - nombre réel.
  • Utiliser les fonctions suvantes
  • Entrer les éléments dans le tableau
  • Afficher le tableau
  • Afficher les étudiants dun faculté donné au
    bien un
  • message (sil ny a aucun étudiant)

12
Traitement de structures modèle 1
nom faculte note
Les structures
etudiant tabMAX
13
Traitement de structures
La définition de la structure
typedef struct char nom30 char
faculte10 float note etudiant int
entrer(etudiant s ) void sortir(etudiant s
,int n) void sortir_el(etudiant s) void
chercher(etudiant s ,int n,char fac_d)
Les prototypes des fonctions
14
Traitement de structures
include ltstdio.hgt 1/5 include
ltconio.hgt include ltstring.hgt include
ltstdlib.hgt define MAX 30 define RET "" typedef
struct char nom30 char faculte10 float
note etudiant int entrer(etudiant
s) void sortir(etudiant s,int n) void
sortir_el(etudiant s) void chercher(etudiant
s,int n,char fac_d)
Les directives
La définition de la structure
Les prototypes des fonctions
15
Traitement de structures
void main() 2/5 int n char
fac_d10 etudiant tabMAX printf("Entrer
les donnees des " "etudiants.\n") nentrer(t
ab) printf("\n La liste donnee\n") sortir(ta
b,n) printf("Entrer faculte
donne") gets(fac_d) chercher(tab,n,fac_d)
Appel de la fonction dentré du tableau
Appel de la fonction daffichage du tableau
Appel de la fonction daffichage d éléments de
la faculté donné
16
Traitement de structures
La définition de la fonction dentré
int entrer(etudiant s) 3/5
char buf(char)malloc(31) int
n0 while(1) printf("Entrer Nom ou bien
RET") if(strcmp(gets(buf),RET)0 nMAX)
break else sn(etudiant)malloc(sizeo
f(etudiant)) strcpy(sn-gtnom,buf)
printf("Entrer faculte")
gets(sn-gtfaculte) printf("Entrer
note") sn-gtnoteatof(gets(buf))
n free(buf) free(s) return n
Entrer les donnees des etudiants. Entrer Nom ou
bien RET Ana Entrer faculte FOE Entrer
note 4.50 Entrer Nom ou bien RET Ivan Entrer
faculte FETT Entrer note 5.50 Entrer Nom ou
bien RET Lili Entrer faculte FOE Entrer
note 3.50
17
Traitement de structures
void sortir(etudiant s,int n)
4/5 int i for(i0iltni)
sortir_el(si) void
sortir_el(etudiant s) printf("Nom s\n",s
-gt nom) printf("faculte s\n",s -gt
faculte) printf("note .2f\n",s -gt note)
La définition de la fonction daffichage du
tableau
La liste donnee Nom Ana faculte FOE note 4.5
0 Nom Ivan faculte FETT note 5.50
Nom Lili faculte FOE note 3.50
La définition de la fonction daffichage dun
élément
18
Traitement de structures
La définition de la fonction daffichage d
éléments de la faculté donné
void chercher(etudiant s,int n,char
fac_d) 5/5 int trouve0 int
i for (i0 iltni) if (strcmp(si-gtfaculte,
fac_d)0) sortir_el(si)
trouve1 if(!trouve) printf("On n'a pas
trouve etudiant de faculte s \n",fac_d)
Entrer faculte donneFETT Nom Ivan faculte FET
T note 5.50
19
Traitement de structures modèle 2 Faire un
programme C de création et affichage d'un tableau
dynamique d'éléments de type structuré. Chaque
structure est composée des champs suivants a)
nom - chaîne de caractères b) note. Utiliser
les fonctions suvantes Création du tableau
dynamique Affichage du tableau
Réallocation de la zone dynamique
20
Traitement de structures modèle 2
include ltstdio.hgt include ltstdlib.hgt typedef
struct char nom30 float note etud etud
creation(int l) void affichage(int l, etud
a) etud recreation(etud x,int l)
21
Traitement de structures modèle 2
void main() etud x int
l printf("nombre de structures
") scanf("d",l) xcreation(l) printf("L
e tableau des structures cree.\n") affichage(l,
x) l xrecreation(x,l) affichage(l,x)
free(x)
22
Traitement de structures modèle 2
etud creation(int l) etud t int i
t(etud )malloc(lsizeof(etud ))
for(i0iltli) ti(etud
)malloc(sizeof(etud)) printf("structured",
i) printf("nom") fflush(stdin) get
s(ti-gt nom) printf("note") scanf("f"
,(ti).note) return t
23
Traitement de structures modèle 2
void affichage(int l,etud a) int i
for(i0iltli) printf("s
.2f\n",ai -gt nom,ai-gtnote)
printf("\n") etud recreation(etud
t,int l) int i t(etud
)realloc(t,sizeof(etud )) tl-1(etud
)malloc(sizeof(etud))
printf("nom") fflush(stdin) gets(tl-1-gt
nom) printf("note") scanf("f",(tl-1).
note) return t
Write a Comment
User Comments (0)
About PowerShow.com