(^o^)coucou tout le monde(^o^)

coucou tout le monde(^o^) (^o^) - C - Programmation

Marsh Posté le 01-03-2008 à 20:04:36    

Bonjour,
Voilà je suis nouvelle sur ce forum et j'ai un gros problème:
Je fais des cours d'informatique language C mais on est 20 (oui je vous assure) dans la classe et le prof est complètement débordé qui fait qu'il va vite sur les corrections et j'ai rien compris à 3 exercices:
 
Recherche:
Ecrire un programme qui crée un tableau de n cases. Les n cases seront alors remplies avec des caractères demandés à l'utilisateur.
Le programme demandera à l'utilisateur quel est le caractère à rechercher. Le programme parcoura le tableau et affichera "Oui, je suis dedans" ou "Non, je ne suis pas là" en fonction de la présence ou de l'absence de ce caractère
 
Addition/multiplication:
Ecrire un programme qui crée 2 tableaux de n*n cases. Les cases des tableaux sont respectivement remplies des valeurs de la table d'addition et multiplication de n. Votre programme permettra d'afficher les 2 tableaux à la suite
 
Matrix:
Ecrire un programme qui crée 2 tableaux de n*n cases.Les tableaux seront alors remplis des valeurs aléatoires comprises entre 0 et 100. Votre programme permettra d'afficher la somme de ces 2 matrices
 
Comme vous le voyez ce sont des exercices très difficiles et qu'en plus de ça le prof va trop vite alors...je suis à la limite d'être dégoûtée de l'informatqiue
Ce serait vraiment gentil de me répondre parce que j'ai essayé de les refaire mais rien ne se compile et les matrices je n'y arrive vraiment pas :cry:  
 
Merci

Reply

Marsh Posté le 01-03-2008 à 20:04:36   

Reply

Marsh Posté le 01-03-2008 à 21:02:38    


Déjà il faut que tu saches que les règles du forum proscrivent le travail fait à la place des autres, si tu laisses ton topic comme ça il sera fermé. Tu devrais au minimum nous présenter tes tentatives infructueuses, code à l'appui. Et détailler les problèmes rencontrés.

 

A ce sujet, pourrais tu nous en dire plus ? Tu parles "d'exercices très difficiles" alors que c'est franchement trivial. Pourtant je ne suis pas un génie (loin de là :d).
Es tu au moins sûre d'avoir compris les énoncés ?
Le premier fait appel aux E/S utilisateur, c'est pas très rigolo en C. Par contre le second est un pur exo d'algorithmie qui devrait être à la portée de tout collégien qui réfléchit un petit peu.
Pour le second n'hésite pas à faire le tableau sur papier, ça t'aidera sans doute à écrire la version informatique ensuite.


Message édité par TotalRecall le 01-03-2008 à 21:05:50

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 01-03-2008 à 21:20:14    

Déjà, colle ton code, on le commentera.


---------------
Töp of the plöp
Reply

Marsh Posté le 01-03-2008 à 21:55:19    

Tiens pour l'addition des matrices. Inspires toi de ce code pour faire les deux autres.

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int **create_mat(int, int);
  5. void print_sum(int **, int **, int, int);
  6. void desalloc(int **, int);
  7. int main(int argc, char **argv){
  8.   int **mat1, **mat2;
  9.  
  10.   if (argc != 3){
  11.     printf("Usage : %s n p\n", argv[0]);
  12.     return -1;
  13.   }
  14.   mat1 = create_mat(atoi(argv[1]), atoi(argv[2]));
  15.   mat2 = create_mat(atoi(argv[1]), atoi(argv[2]));
  16.   print_sum(mat1, mat2, atoi(argv[1]), atoi(argv[2]));
  17.   desalloc(mat1, atoi(argv[1]));
  18.   desalloc(mat2, atoi(argv[1]));
  19.   return 0;
  20. }
  21. int **create_mat(int n, int p){
  22.   int **matrice;
  23.   int i, j;
  24.  
  25.   matrice = (int **) malloc(n * sizeof(int *));
  26.   for (i=0; i<n; i++)
  27.     matrice[i] = (int *) malloc(p * sizeof(int));
  28.   srand(time(NULL));
  29.   for (i=0; i<n; i++){
  30.     for (j=0; j<p; j++)
  31.       matrice[i][j] = rand()%101;
  32.   }
  33.   return matrice;
  34. }
  35. void print_sum(int **mat1, int **mat2, int n, int p){
  36.   int i,j;
  37.   for (i=0; i<n; i++){
  38.     for (j=0; j<p; j++)
  39.       printf("%d ", mat1[i][j]+mat2[i][j]);
  40.     printf("\n" );
  41.   }
  42. }
  43. void desalloc(int **mat, int n){
  44.   int i;
  45.   for (i=0; i<n; i++)
  46.     free(mat[i]);
  47.   free(mat);
  48. }


 
PS : je n'ai pas commenté donc si tu as des questions sur le code, n'hésite pas.


Message édité par _mumu_ le 01-03-2008 à 22:00:03

---------------
"Software is like sex. It's better when it's free..."   Linus Torvalds
Reply

Marsh Posté le 01-03-2008 à 22:42:42    

TotalRecall le prend pas comme ça si tu veux mon code le voilà:
 
Recherche:
int tab[n];  
 
printf("combien de cases voulez vous remplir?" );
cin>>nb;  
for(i=0, i<nb, i++)  
{  
printf("Veuillez saisir le caractères present a la case" );
cin>>tab[i];  
}  
i=0;  
printf("quelle caractère voulez vous rechercher" );  
cin>>car;  
do  
{  
if(tab[i]==car)  
{  
printf("oui je suis dedans" );  
}  
else  
{  
printf("non je ne suis pas dedans" );  
}  
}  
while(i<nb);
 
Voilà!!!!

Reply

Marsh Posté le 01-03-2008 à 23:29:35    

carriebradshaw a écrit :

TotalRecall le prend pas comme ça si tu veux mon code le voilà:
 
Recherche:
int tab[n];  
 
printf("combien de cases voulez vous remplir?" );
cin>>nb;  
for(i=0, i<nb, i++)  
{  
printf("Veuillez saisir le caractères present a la case" );
cin>>tab[i];  
}  
i=0;  
printf("quelle caractère voulez vous rechercher" );  
cin>>car;  
do  
{  
if(tab[i]==car)  
{  
printf("oui je suis dedans" );  
}  
else  
{  
printf("non je ne suis pas dedans" );  
}  
}  
while(i<nb);
 
Voilà!!!!


Je te faisais juste connaître les règles du forum, n'y vois aucune attaque ;)
 
Remarques sur ton code :  
"cin" c'est pas du C !!
Tu devrais t'assurer que la valeur saisie pour nb n'est pas supérieure à n, sinon tu vas dépasser la taille de ton tableau et planter le programme.  
De manière générale tu devrais contrôler tes saisies utilisateurs, parce que là tu lui fais aveuglément confiance.
 
La fin de ton programme n'est pas correcte, tu fais un "do ... while(i<nb)" mais à aucun moment tu n'incrémentes i !! Ton truc te fait une boucle infinie je me trompe ?


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 02-03-2008 à 09:54:05    

carriebradshaw a écrit :

TotalRecall le prend pas comme ça


TotalRecall n'a pas ete mechant. Manifestement tu n'as pas lu les regles du forum, car ton topic en enfreint plusieurs (titre explicite, resolution d'exercices...)... et si un moderateur passe par la tu risques fort que ton sujet soit ferme.
 

Reply

Marsh Posté le 02-03-2008 à 11:56:31    

Yo [:elmoricq]

 

Je suis un modérateur, et je passais par là. Sujet fermé pour les raisons données ci-dessus, merci de lire les règles de la catégorie Programmation.


Message édité par Elmoricq le 02-03-2008 à 11:57:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed