[AIDE] gestion d'un tableau avec des fonction

Résolu/Fermé
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 22 déc. 2007 à 20:50
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 23 déc. 2007 à 13:27
Bonsoir,
Je suis en BTS IRIS premiére année et j'aurai besoin de votre aide pour un exercice devant faire appel à des fonctions.
Je vous expose l'enoncé de l'exercice:

Gestion d'un tableau de 10 entiers

Etablir les sous-programmes qui permettent :
- l'initialisation de toutes les cases du tableau avec une valeur passée en paramètre;
- l'affichage de toutes les cases du tableau;
- la modification de la valeur d'une case du tableau;
- l'affichage d'une case;

Voila j'ai commencé mais tout n'est pas bon donc voila je suis à l'écoute
Mon debut de programme :

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#define cases 10
void initialisation (void);
void affiche_tableau (void);
void modif_case (void);
void affiche_case (void);
main ()
{
int a, var,tab[cases] ;
do
{
printf ("**********************************************\n");
printf ("* Gestion d'un tableau de 10 entiers *\n");
printf ("**********************************************\n\n");
printf (" MENU \n");
printf ("1 - Initialisation de toutes les cases du tableau\n");
printf ("2 - Affichage de toutes les cases du tableau\n");
printf ("3 - Modification d'une valeur du tableau\n");
printf ("4 - Affichage d'une case \n");
printf ("5 - Quitter\n\n");
printf ("Quel est votre choix?? ");
scanf ("%d",&a);
switch (a)
{
case 1 :
clrscr ();
printf ("Veuillez choisir la valeur à entrer dans les cases du tableau");
scanf ("%d",&b);
initialisation ();
break;
case 2 :
clrscr();
affiche_tableau ();
break;
case 3 :
clrscr ();
break;

case 4 :
clrscr ();
break;
case 5 :
printf ("Fin du programme");
break;
}
} while (var !=2);

}
void initialisation (int tab)
{
int i,tab[cases];
for (i=0; i<cases;i++)
{
printf(" valeur dans la case numéro %d : ",i+1);
scanf ("%d",&tab[i]);
}
printf ("Vous avez initialisé le tableau");
clrscr ();
}
void affiche_tableau (void)
{
int i, tab[cases];
for (i=0;i<cases;i++)
{
cout << tab[i] << " | ";
}
}
void modif_case (void)
{
}
void affiche_case (void)
{
}



Voila je vous remercie de votre aide et si vous avez besoin de plus d'information demandez le moi ici ou par MP
Merci a tous

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
23 déc. 2007 à 00:05
Salut,

à toi d'adapter (j'ai testé sous Linux et ça marche chez moi)
remplace system("clear"); avec clrsrc()
#include <stdio.h>
#include<stdlib.h>
#define TAILLE 10

void initialisation (int *tab);
void affiche_tableau (int *tab);
void modif_case (int *tab);
void affiche_case (int *tab);
int menu ();

int main ()
{
  int choix;
  int *tab;
  if ((tab = (int *) malloc (TAILLE * sizeof (int))) == NULL)
    return -1;

  do{
      choix = menu ();
      switch (choix){
        case 1:
	  system("clear"); 
          initialisation (tab);
          break;
        case 2:
	  system("clear"); 
          affiche_tableau (tab);
          break;
        case 3:
	  system("clear"); 
          modif_case (tab);
          break;
        case 4:
	  system("clear"); 
          affiche_case (tab);
          break;
      }
  }while (choix < 5);

  printf ("%d\n", choix);
  return 0;
}

int menu (){
  int choix;

  printf ("\n**********************************************\n");
  printf ("* Gestion d'un tableau de 10 entiers *\n");
  printf ("**********************************************\n\n");
  printf (" MENU \n");
  printf ("1 - Initialisation de toutes les cases du tableau\n");
  printf ("2 - Affichage de toutes les cases du tableau\n");
  printf ("3 - Modification d'une valeur du tableau\n");
  printf ("4 - Affichage d'une case \n");
  printf ("5 - Quitter\n\n");
  printf ("Quel est votre choix?? ");
  scanf ("%d", &choix);
  return choix;
}

void initialisation (int *tab){
  int i;
  for (i = 0; i < TAILLE; i++){
      printf (" valeur dans la case numéro %d : ", i + 1);
      scanf ("%d", &tab[i]);
  }
  printf ("Vous avez initialisé le tableau\n");
}

void affiche_tableau (int *tab){
  int i;
  for (i = 0; i < TAILLE; i++)
    printf ("%d ", tab[i]);
  printf ("\n");
}

void modif_case (int *tab){
  int i, nb;
  printf ("Modifier la case numéro : ");
  scanf ("%d", &i);
  printf ("Entrez la nouvelle valeur : ");
  scanf ("%d", &nb);
  tab[i - 1] = nb;
}

void affiche_case (int *tab){
  int i;
  printf ("Afficher la case numéro : ");
  scanf ("%d", &i);
  printf ("%d\n", tab[i - 1]);
}
0
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 16
23 déc. 2007 à 13:11
Merci lami20j mais j'ai un dernier petit problème je voudrais faire sans les étoiles qui sont devant les noms de variables alors comment puis je faire???
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
23 déc. 2007 à 13:20
Les varaibles *var se sont des variables pointeurs)
Comme ça?
#include <stdio.h>
#include<stdlib.h>
#define TAILLE 10

void initialisation (int tab[]);
void affiche_tableau (int tab[]);
void modif_case (int tab[]);
void affiche_case (int tab[]);
int menu ();

int main ()
{
  int choix;
  int tab[TAILLE];
  
  do{
      choix = menu ();
      switch (choix){
        case 1:
	  system("clear"); 
          initialisation (tab);
          break;
        case 2:
	  system("clear"); 
          affiche_tableau (tab);
          break;
        case 3:
	  system("clear"); 
          modif_case (tab);
          break;
        case 4:
	  system("clear"); 
          affiche_case (tab);
          break;
      }
  }while (choix < 5);

  printf ("%d\n", choix);
  return 0;
}

int menu (){
  int choix;

  printf ("\n**********************************************\n");
  printf ("* Gestion d'un tableau de 10 entiers *\n");
  printf ("**********************************************\n\n");
  printf (" MENU \n");
  printf ("1 - Initialisation de toutes les cases du tableau\n");
  printf ("2 - Affichage de toutes les cases du tableau\n");
  printf ("3 - Modification d'une valeur du tableau\n");
  printf ("4 - Affichage d'une case \n");
  printf ("5 - Quitter\n\n");
  printf ("Quel est votre choix?? ");
  scanf ("%d", &choix);
  return choix;
}

void initialisation (int tab[]){
  int i;
  for (i = 0; i < TAILLE; i++){
      printf (" valeur dans la case numéro %d : ", i + 1);
      scanf ("%d", &tab[i]);
  }
  printf ("Vous avez initialisé le tableau\n");
}

void affiche_tableau (int tab[]){
  int i;
  for (i = 0; i < TAILLE; i++)
    printf ("%d ", tab[i]);
  printf ("\n");
}

void modif_case (int tab[]){
  int i, nb;
  printf ("Modifier la case numéro : ");
  scanf ("%d", &i);
  printf ("Entrez la nouvelle valeur : ");
  scanf ("%d", &nb);
  tab[i - 1] = nb;
}

void affiche_case (int tab[]){
  int i;
  printf ("Afficher la case numéro : ");
  scanf ("%d", &i);
  printf ("%d\n", tab[i - 1]);
}
0
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 16
23 déc. 2007 à 13:27
Merci problème résolu tu es trop sympa lami20j
Viens sur msn on pourra discuter ça peut étre cool
0