[PDF] Chapitre 7 - Tableaux `a une dimension





Previous PDF Next PDF



Travaux dirigés 2 : pointeurs et tableaux 1 Rappel de cours

Correction. – Le premier exercice fait reference au cours. L'arithmétique des pointeurs n'a été abordée que rapidement à la fin du cours 



TP 1 : tableaux et pointeurs

Page 1. TP 1 : tableaux et pointeurs. Programmation en C (LC4). Semaine du 28 janvier 2008. 1 Manipulation de la ligne de commande. 1.1 Fonctions utiles. Nous 



Pointeurs et Allocation Dynamique

Tableaux et pointeurs. Affichage de tableaux et de pointeurs. Passage de paramètres Exemple 1 : tableau de chaînes. Page 24. 24. Yacine.Bellik@iut-orsay.fr.



TP 5 : Tableaux structures et pointeurs Exercice 1 : Structure

TP 5 : Tableaux structures et pointeurs. Exercice 1 : Structure nombre rationnel et tableaux. 1. Créer une structure NbrRationnel à deux champs : Num et Den 



Pointeurs et tableaux

Pointeurs et tableaux. Un tableau est assimilé à l'adresse de son premier &t[i+1] - &t[i] vaut 1. - comparaisons possibles entre pointeurs : == != (p) ...



Langage C : énoncé et corrigé des exercices IUP GéniE

Exercice 1 1 Ecrire un progra mm e dans l e q ue l vous : 1. Déc l arere z un entier i et un pointeur vers un entier p



TP avec corrections - Langage C Filière STPI Pr. Rachid MALEK

TP 5 – Tableaux numériques et pointeurs (Partie 1). Exercice 1. Ecrire un Correction: char h[4] = {'a' 'b'



Programmation C++ (débutant)/Les tableaux statiques

Interdiction de taper : int i; cin>>i; int t[i];. Lorsque nous aurons étudié les pointeurs 1. 4. Page 9. Programmation C++ (débutant)/Les tableaux statiques.



Programmation C++ (débutant)/Les pointeurs

0 1 4 9 16. 0 1 4 9 16 25 36 49 64 81. Tableaux statiques et pointeurs. Lorsqu'on écrit int t[10]; t est en fait un pointeur non modifiable (constant donc) 



Exercices et probl`emes corrigés en C++

Exercice 1 : Pointeurs. On consid`ere que l'on dispose d'un tableau de flottants déclaré de la mani`ere suivante : float tab[3];. On supposera que ce tableau 



Programmation C++ (débutant)/Les pointeurs

Nous étudierons également les liens entre les tableaux et les pointeurs. Exemple 1 : utilisation de pointeurs. #include<iostream> using namespace std;.



Travaux dirigés 2 : pointeurs et tableaux 1 Rappel de cours

Correction. – Le premier exercice fait reference au cours. L'arithmétique des pointeurs n'a été abordée que rapidement à la fin du cours 



Chapitre 7 - Tableaux `a une dimension

Exemple d'utilisation : – tab [3] = 12; met la valeur 12 dans la case numéro 3 1 du tableau tab. – printf ("%d" tab [3]) affiche la valeur contenue dans la 



TD 4 : Pointeurs Tableaux et Structures Exercice 1 : Tableaux et

Exercice 1 : Tableaux et arithmétique des pointeurs. Soit un pointeur p qui pointe vers un tableau tab comme suit : int tab [ ] = {1 2



Corrigés de travaux pratiques

24 juil. 2014 Correction TP 02. Algorithmique et programmation. 1/3 ... Tableau de situation de l'exercice précédent : ... 4 Tableaux de pointeurs.



Programmation C++ (débutant)/Les tableaux statiques

Lorsque nous aurons étudié les pointeurs et le mot clé new (dans quelques Nous remplissons ensuite ce tableau en mettant 1/(i+1) dans la case numéro i.



Pointeurs et tableaux

Page 1. Pointeurs et tableaux. Un tableau est assimilé à l'adresse de son premier élément. Une variable de type tableau de t est un pointeur sur t -.



Pointeurs et Allocation Dynamique

1. Pointeurs et Allocation. Dynamique. Yacine BELLIK. IUT d'Orsay. Université Paris XI Tableaux et pointeurs. Affichage de tableaux et de pointeurs.



TP 1 : tableaux et pointeurs

Les fonctions suivantes travaillent sur un tableau de chaînes de caractères char** tab . Vous pourrez par exemple les tester sur la ligne de commande du 



Programmation en langage C

1 Les bases de la programmation en C. 9. 1.1 Historique . 1.10.1 Branchement non conditionnel break . ... 3.5.1 Pointeurs et tableaux `a une dimension .

Chapitre 7 - Tableaux `a une dimension

Chapitre 7

Tableaux `a une dimension

Un tableau en C se d´eclare `a l"aide de 3 informations : 1.

Le t ypedes ´ el´ementsdu tableau

2.

Le nom du tableau

3. La taille du tableau (le n ombred" ´el´ements)taille du tableau : 10 cases tab [0] tab [1] tab [2] tab [3] tab [4] tab [5] tab [6] tab [7] tab [8] tab [9]

0 1 2 3 4 5 6 7 8 9Par exemple, pour d´eclarer la variabletabcomme ´etant un tableau de 10 entiers, on ´ecrira :

int tab [10] ;La taille doit ˆetre une expression constante (¸ca ne peut pas ˆetre une variable du programme). Les indices vont obliga-

toirement de 0 `ataille-1.

Note :Les ´el´ements du tableau ne sont absolument pas initialis´es : ce serait une erreur de croire qu"ils sont tous `a z´ero

juste apr`es la cr´eation du tableau! Pour acc´eder `a la case d"indicei, on utiliseratab [i].

Exemple d"utilisation :

-tab [3] = 12;met la valeur 12 dans la case num´ero 31du tableautab. -printf ("%d", tab [3])affiche la valeur contenue dans la case num´ero 3 du tableautab.

-tab [3] = tab [3] + 2;ajoute 2 `a la valeur contenue dans la case num´ero 3 du tableau. Puisqu"elle contenait

auparavant la valeur 12, elle contiendra `a pr´esent la valeur 14.

L"exemple suivant :1. donc la 4

iemecase du tableau. Rappelez-vous, on commence `a num´eroter `a partir de 0! 66
Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C /* Exemple pour tester l"utilisation des tableaux #include int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int i ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; /* On affiche a present le tableau complet */ printf ("Voici le tableau que vous avez rempli :\n") ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; return 0 ;

}demande `a l"utilisateur de remplir chacune des 10 cases du tableau. Puis, affiche le tableau complet `a l"´ecran.

1 Exercices

Question 7-1 V´erification des notions de base→exercice de cours1.Reprendre l"exemple du cours (section 7) et le tester. Programme ` a´ ecrireet compiler :

/* Exemple pour tester l"utilisation des tableaux #include int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int i ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; /* On affiche a present le tableau complet */ printf ("Voici le tableau que vous avez rempli :\n") ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; return 0 ; }DÉPARTEMENTSciences InformatiquesPage 67/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C 2. Mo difiezle programme afin l"affic hagedu tableau soit r ´ealis´epar une p roc´edure.

Pr ogramme` a´ ecrireet compiler :

/* Exemple pour tester l"utilisation des tableaux #include void affichage (int tab []) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int i ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; affichage (tab) ; return 0 ;

}3.Ecriv ezun epro c´edurequi double c hacunedes v aleurssaisies dans le tableau. Pr ogrammemo difi´e: DÉPARTEMENTSciences InformatiquesPage 68/102

Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C /* Exemple pour tester l"utilisation des tableaux #include void affichage (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int i ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; printf ("Tableau avant\n") ; affichage (tab) ; /* On double chaque valeur du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { tab [i] = tab [i] * 2 ; printf ("Tableau apres\n") ; affichage (tab) ; return 0 ; }Question 7-2 Valeurs extrˆemes→exercice d"assimilationEcrivez un programme qui : 1. initialise un tab leaude 10 v aleursen ti`eres 2. rec herchela v aleurminimale et l"ind icede sa place dans le tableau 3. rec herchela v aleurmaximale et l"indice de sa place dans le tableau 4. affic heces v aleursextr ˆemeset leur indice resp ectif. Programme attendu :DÉPARTEMENTSciences InformatiquesPage 69/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C #include #include #include void affichage (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; int main () { int i ; int tab [10] ; int min ; int indmin ; int max ; int indmax ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; printf ("Tableau avant\n") ; affichage (tab) ; /* recherche minimum */ min = tab [0] ; indmin = 0 ; for (i = 1 ; i < 10 ; i ++) { if (tab [i] < min) { min = tab [i] ; indmin = i ; printf ("Minimum : tab [%d] = %d\n", indmin, min) ; /* recherche maximum */ max = tab [0] ; indmax = 0 ; for (i = 1 ; i < 10 ; i ++) { if (tab [i] > max) { max = tab [i] ; indmax = i ; printf ("Maximum : tab [%d] = %d\n", indmax, max) ; return 0 ;

}Question 7-3 Amplitude et moyenne→exercice d"entrainementEcrivez un programme qui :DÉPARTEMENTSciences InformatiquesPage 70/102

Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C 1. initialise un tab leaude 10 v aleursr ´eelles 2. affic hel"amplitud edu tableau ( ´ecarten trele min et le max) 3. affic hela mo yennede ses v aleurs. Programme attendu :DÉPARTEMENTSciences InformatiquesPage 71/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C #include #include void affichage (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; void doubleImpair (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { if ((tab [i] % 2) != 0) { tab [i] = 2 * tab [i] ; int main () { int i ; int tab [10] ; int min ; int max ; int somme ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; printf ("Tableau avant\n") ; affichage (tab) ; /* recherche minimum */ min = tab [0] ; for (i = 1 ; i < 100 ; i ++) { if (tab [i] < min) { min = tab [i] ; printf ("Minimum : %d\n", min) ; /* recherche maximum */ max = tab [0] ; for (i = 1 ; i < 100 ; i ++) { if (tab [i] > max) { printf ("Maximum : %d\n", max) ; printf ("Amplitude : %d\n", max - min) ; /* calcul moyenne */ somme = 0 ; for (i = 0 ; i < 100 ; i ++) { somme = somme + tab [i] ; printf ("Moyenne : %d\n", somme / 100) ; return 0 ;

Question 7-4 Fonction doubleLesImpairs

→exercice d"entrainementDÉPARTEMENTSciences InformatiquesPage 72/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C

Ecrire une proc´eduredoubleLesImpairsqui prend 2 param`etres : un tableau d"entiers et sa taille puis double la valeur de

chaque ´el´ementimpairdu tableau. Vous appellerez ensuite cette proc´edure et afficherez le tableau ainsi modifi´e.Programme

attendu : /* Exemple pour tester l"utilisation des tableaux #include void affichage (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; void doubleImpair (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { if ((tab [i] % 2) != 0) { tab [i] = 2 * tab [i] ; int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int i ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; printf ("Tableau avant\n") ; affichage (tab) ; doubleImpair (tab) ; printf ("Tableau apres\n") ; affichage (tab) ; return 0 ; }Question 7-5 Fonction nbOccurrences→exercice d"entrainement´ Ecrire une fonctionnbOccurrencesqui prend 3 param`etres 1.

Un tableau d"en tiers

2.

Sa taille

3.

Une v aleuren ti`erequelconque

puis calcule et renvoie le nombre de fois o`u cette valeur est pr´esente dans le tableau. Programme attendu : DÉPARTEMENTSciences InformatiquesPage 73/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C #include int nbOccurrences (int table [10], int val) ; void affichageTableau (int table [10]) ; int nbOccurrences (int tab [10], int val) { int i ; int nb = 0 ; for (i = 0 ; i < 10 ; i ++) { if (tab [i] == val) { nb ++ ; return nb ; void affichageTableau (int table [10]) { int i ; /* affichage du tableau */ for (i = 0 ; i < 10 ; i ++) { printf ("table [%d] = %d\n", i, table [i]) ; int main () { int i ; int casei ; int val ; int tab [10] ; printf ("Valeur a chercher ? ") ; scanf ("%d", &val) ; for (i = 0 ; i < 10 ; i ++) { printf ("%d ieme case du tableau ?", i) ; scanf ("%d", &casei) ; tab [i] = casei ; printf ("Tableau \n") ; affichageTableau (tab) ; printf ("Nb d"occurrence de %d dans le tableau : %d\n", val, nbOccurrences (tab, val)) ; return 0 ;

}Question 7-6 D´eplacement d"un personnage→en vue du projetSoit un syst`eme de coordonn´eesxetypour lequel vous d´efinirez un tableau `a 2 cases. Imaginons que ces coordonn´ees

repr´esentent la position d"un personnage ´evoluant sur une grille o`u x varie de 0 `a 19 et y de 0 `a 19. Ecrivez un programme

qui : 1. initialise le p ersonnageaux co ordonn´ees(0, 0). 2.

demande ` al"utilisateur de saisir u ncaract `erep ermettantde d ´eplacerle p ersonnage(4=gauc he,6= droite,8=h autet

2=bas). Reprendre pour cela votre code fait en 3-12DÉPARTEMENTSciences InformatiquesPage 74/102

Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C 3.

mo difieles co ordonn´eesdu p ersonnageen fonction des sais iesde l"utilisateur et affic heles nouv ellesco ordonn´ees.

Attention, le personnage ne doit pas sortir de la carte. Ainsi, si on lui demande d"aller `a droite alors qu"il est d´eja sur

le bord droit de la carte (donc en x = 0), il ne doit pas bouger, et un message d"alerte doit ˆetre affich´e.

4.

r ´ep´eterces 2 derni `eres´ etapestan tque l" utilisateurn"a pas saisi le caract `ere"q" (quitter).

Question 7-7 Unicit´e dans un tableau→pour aller plus loinEcrivez un programme qui : 1. initialise un tab leaude 10 v aleursen ti`eres 2.

v ´erifiequ"ils son ttous diff ´erents.On affic herasoit la premi `erev aleurdoublon trouv ´ee,soit u nmessage de succ `es.

Programme attendu :

#include #include void affichage (int tab [10]) { int i ; for (i = 0 ; i < 10 ; i = i + 1) { printf ("%d ", tab [i]) ; printf ("\n") ; int main () { int tab [10] ; /* un tableau de 10 entiers est initialisee */ int mem [10] ; int idxmem ; int i ; int j ; /* On demande a l"utilisateur de remplir les 10 cases du tableau */ for (i = 0 ; i < 10 ; i = i + 1) { printf ("Quelle valeur pour la case %d ?\n", i) ; scanf ("%d", &tab [i]) ; affichage (tab) ; idxmem = 0 ; for (i = 0 ; i < 10 ; i ++) { for (j = 0 ; j < idxmem ; j ++) { if (tab [i] == mem [j]) { printf ("doublon trouve : %d\n", tab [i]) ; return 0 ; mem [idxmem] = tab [i] ; idxmem ++ ; printf ("pas de doublons \n") ; return 0 ; }Question 7-8 Pr´edicat estSymetrique→pour aller plus loin´

Ecrire une fonctionestSymetriquequi prend 2 param`etres un tableau d"entiers et sa taille, puis teste si le tableau estDÉPARTEMENTSciences InformatiquesPage 75/102

Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C

un "palindrome num´erique", c"est-`a-dire si la suite d"´el´ements du premier au dernier est identique `a la suite d"´el´ements du

dernier au premier. Par exemple,{1, 2, 4, 2, 1}est un tableau sym´etrique, mais{1, 2, 4, 1}ne l"est pas. La fonction doit

renvoyer vrai (1 par exemple) si le tableau est sym´etrique et faux (0) dans le cas contraire.

Programme attendu :

#include int estSymetrique (int table [10]) ; void affichageTableau (int table [10]) ; int estSymetrique (int tab [10]) { int i ; for (i = 0 ; i < 10 / 2; i ++) { if (tab [i] != tab [10 -1 - i]) { return 0 ; return 1 ; void affichageTableau (int table [10]) { int i ; /* affichage du tableau */ for (i = 0 ; i < 10 ; i ++) { printf ("table [%d] = %d\n", i, table [i]) ; int main () { int i ; int tab [10] ; int casei ; for (i = 0 ; i < 10 ; i ++) { printf ("%d ieme case du tableau ?", i) ; scanf ("%d", &casei) ; tab [i] = casei ; printf ("Tableau avant \n") ; affichageTableau (tab) ; printf ("Le tableau est-il symetrique ? %d\n", estSymetrique (tab)) ; return 0 ;

}Question 7-9 Fonction plusGrandeSuite→pour aller plus loinAttention, cet exercice est sensiblement plus difficile que les pr´ec´edents.

´Ecrire une fonctionplusGrandeSuitequi prend 2 param`etres un tableau d"entiers et sa taille, puis calcule et renvoie la

valeur maximale d"une suite d"´el´ements du tableau. Par exemple, si on consid`ere le tableau{31; -41; 59; 26; -53; 58; 97;

-93; -23; 84}, la suite maximale est{59; 26; -53; 58; 97}et la valeur retourn´ee par la fonctionplusGrandeSuitesera doncDÉPARTEMENTSciences InformatiquesPage 76/102

Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C

187, la somme des ´el´ements de ce sous-tableau maximal.

Programme attendu :

#include int plusGrandeSuite (int table [10]) ; void affichageTableau (int table [10]) ; int plusGrandeSuite (int tab [10]) { int i ; int j ; int k ; int somme ; int val_max ; somme = tab [0] ; for (i = 0 ; i < 10 ; i ++) { for (j = i ; j < 10 ; j ++) { somme = 0 ; for (k = j ; k < 10 ; k ++) { somme = somme + tab [k] ; if (val_max < somme) val_max = somme ; return val_max ; void affichageTableau (int table [10]) { int i ; /* affichage du tableau */ for (i = 0 ; i < 10 ; i ++) { printf ("table [%d] = %d\n", i, table [i]) ; int main () { int i ; int casei ; int tab [10] ; for (i = 0 ; i < 10 ; i ++) { printf ("%d ieme case du tableau ?", i) ; scanf ("%d", &casei) ; tab [i] = casei ; printf ("Tableau \n") ; affichageTableau (tab) ; printf ("Valeur maximale : %d\n", plusGrandeSuite (tab)) ; return 0 ; }DÉPARTEMENTSciences InformatiquesPage 77/102 Introduction `a l"informatique et au langage C Introduction `a l"informatique et au langage C

2 Validation des comp´etences acquises `a l"issue de cette s´eance

Je maitrise les comp´etences demand´ees `a l"issue de cette s´eance sije suis capablede : ?d´eclarer un tableau dencases exactement ?acc´eder `a laiemecase du tableau pour en afficher le contenu ou modifier sa valeur

?parcourir successivement toutes les cases du tableau pour y r´ealiser des actions (en afficher les valeurs ou y placer des

valeurs pr´ecises)DÉPARTEMENTSciences InformatiquesPage 78/102quotesdbs_dbs29.pdfusesText_35
[PDF] fiche exo chap1 corrige

[PDF] Exercices d 'électromagnétisme

[PDF] limites et continuité - Philippe DEPRESLE

[PDF] trigonometrie - exercices corriges - Free

[PDF] Polycopié de cours et d exercices dirigés 1ère partie

[PDF] 1 Logique des propositions - Ensiie

[PDF] Corrigés - La Chaire EPPP

[PDF] MANAGEMENT De la QUALITE TOTAL - Jamiati

[PDF] MANAGEMENT De la QUALITE TOTAL - Jamiati

[PDF] Martingales et calcul stochastique - Cel - Hal

[PDF] fiche d 'exercices n°2 : correction - Math93

[PDF] Corrigés des exercices - Académie en ligne

[PDF] MECANIQUE DES FLUIDES Cours et exercices corrigés - UVT e-doc

[PDF] exercices de mesures et instrumentaion avec quelques corriges 1

[PDF] TD Microéconomie - Numilog