hg Register Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet

Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index

hg Revision tunisie scolaire Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Search Search Memberlist Memberlist Usergroups Usergroups Profile Profile Log in to check your private messages Private Messages Log in Log in


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum révision tunisie , vous devez
 inscrire sur notre forum a partir d'ici
   NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
 
forum d'aide informatique : internet, réseau, programmation informatique ...
TDn°12
 
 
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Espace étudiants -> (¯`·._.·[Series TD & TP']·._.·´¯)
hg Previous topic :: Next topic   hd
Author Message
KARIMOS
Administrateur

Offline

Joined: 02 Nov 2008
Posts: 711
Masculin
Point(s): 4,448
Moyenne de points: 0

Posted: Sun 24 Jan - 14:56 (2010)    Post subject: TDn°12 Reply with quote

Difficulté : ******

Bon j'avoue ce cours était long, et en plus c'est pas fini, j'ai un casse-tête pour vous :
-Essayez de créer un programme qui demande ne nom de la personne, qui lui demande son age et qui affiche : "Bonjours ...., vous avez ... ans". Mais vous devez utiliser la fonction sprintf pour réaliser ce programme. J'insiste, pour que vous progressez vous devez essayer de créer ce programme seul, et ne regardez pas la suite tu TD. Normalement vous n'y arriverais pas, mais je veux que vous voyez les erreurs que le compilateur affiche.

Une fois que vous avez réfléchis au problème vous pouvez regarder la suite :

-Il faut créer 3 variables :
Code:
char chaine[150] = {0};//contiendra une phrase
char nom[50] = {0};//contiendra le nom
int age = 0;contiendra l'age


Si vous avez essayer de faire le programme, vous avez surement constaté que vous n'arrivez pas a afficher le nom avec sprintf... Je vais vous expliquer le fonctionnement de cette fonction^^ :

char chaine[100];
int age = 15;

// On écrit "Tu as 15 ans" dans chaine
sprintf(chaine, "Tu as %d ans !", age);//En fait cette fonction ajoute le texte a la chaine de caractère "chaine", mais elle n'affiche pas cette phrase.
//On ne peut pas ajouter %s", nom dans la variable, c'est pourquoi le compilateur plante ou que le nom ne s'affiche pas.
// C'est grace a la fonction printf que l'on affiche la valeur de chaine.
printf("%s", chaine);

Il faut donc utiliser la ruse et une fonction que l'on a vu précédemment, j'ai nommé... : la fonction strcpy !

Et ouais, on a créer 3 variables dont une variable nom.

On vas commencer par taper ce code :
Code:
puts("Quel est ton nom ?\n");
scanf("%s", &chaine);
puts("Quel age as tu ?\n");
scanf("%ld", &age);

Les valeurs sont entrés. Ensuite on copie chaine dans nom comme ceci :
Code:
strcpy(nom, chaine);//nom = chaine


Après on peut utiliser la fonction sprintf :
Code:
sprintf(chaine, "Bonjours %s, tu as %ld ans\n", nom, age);

On est obliger de créer la chaine nom pour que le nom apparaisse.

Enfin on peut afficher la chaine complète :
Code:
printf("%s\n", chaine);


Bon le TD ne s'arrête pas la, on vas continuer a peu :

On fait un nouveau projet, on vas créer un projet un peu plus complexe.
On vas créer 2 tableaux contenant des caractères, ensuite on vas afficher le nombre de caractères que contiennent ces tableaux :

Code:
const char NULL_C = '\0';//caractère de fin de chaine
//déclaration de 2 chaines :
char cTab1[] = "Cette chaine comporte 35 caractères";
char cTab2[] = "et celle ci fait 30 caracteres";

On a créé notre caractère de fin et 2 tableaux. Ecrivez ce code juste derrière les includes, le tapez pas encore la fonction main, elle viendra après.
On vas calculer la longueur de la chaine 1 :
Code:
//calcul de la longueur de la chaine :
int longueur_chaine1(char cChaine[])
{
   int iLongueur = 0;//compteur
//Tant que l'on arrive pas au caractère de fin, on incrémente :
while(cChaine[iLongueur] != NULL_C) iLongueur++;
//On retourne la longueur de la chaine :
return (iLongueur);
}

Pareille pour la chaine 2 :
Code:
int longueur_chaine2(char *cPointeur_chaine)
{
   int iLongueur = 0;
   while(*cPointeur_chaine != NULL_C)
   {
      iLongueur++;
      //passage au caractère suivant :
      cPointeur_chaine++;
   }
   return(iLongueur);
}

Et c'est ici que l'on vas créer notre fonction main pour afficher le résultat :
Code:
void main()
{
printf("La longueur de iTab1 est %d\n", longueur_chaine1(cTab1));
printf("La longueur de iTab2 est %d\n", longueur_chaine2(cTab2));
getch();
        return 0;
}


 
Revenir en haut
Publicité






Posted: Sun 24 Jan - 14:56 (2010)    Post subject: Publicité

PublicitéSupprimer les publicités ?
 
Revenir en haut
Display posts from previous:   
bg bd
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Espace étudiants -> (¯`·._.·[Series TD & TP']·._.·´¯) All times are GMT + 1 Hour
 
Page 1 of 1

 
Jump to:  
Index | Make forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation