Partage

Triangle de pascal en C

Aide souhaitée

Le 30 janvier 2009 à 15:53:26

Qui pourrait m'aider à donner la touche finale à ce programme?

Càd le verifier et rendre compilable et executable?

#include <stdio.h>
#include <stdlib.h>
#define PMAX 13                /*Nombres maximum de lignes et de colonnes*/
#define DMAX 10               /*Degre maximum de notre triangle*/

/*Prototype des appels fonctions appellées par main*/
 
 

void triangleP(int P[13][13]);
int afficheP(int P[13][13], int D);

main()
{  
  int i,j;  
  int P[13][13];
  int D; /* degré du triangle*/
  while(D>10 || D <0)
   printf("Entrez le degre D du triangle:\n", D);
       scanf("%2d", &D);
	void triangle(int i,int j);
	affiche(P);
	printf("afficher le triangle:\n",P ,D);
 return P[13][13];
}

/*ON CONSTRUIT LES LIGNES DE 0 à D DE NOTRE TRIANGLE*/
 /*ENSUITE GRÂCE A UNE FORMULE DE CALCUL CONSECUTIFS(1) NOUS CALCULONS CHAQUE 
           JUSQUE A LA DIAGONALE PRINCIPALE. */
 
 void triangleP(int P[13][13])
    { 
     int D;                                           /* degré du triangle */
     int i, j;                                       /* indices courants */ 
 
     for (i=0; i<=D; i++)
         {
       P[i][i]=1;          /*on initialise la premiére ligne de notre triangle*/
       P[i][0]=1;         /*la seconde ligne nous fournit le même resultat*/
       
	   for (j=1; j<i; j++)
          {
        P[i][j] = P[i-1][j] + P[i-1][j-1];        /*(1)*/
          }
    }   
   /*GRÂCE A CETTE FONCTION NOUS AFFICHONS NOTRE TRIANGLE D'UN DEGRE DEFINI*/  
	 
  int afficheP(int P[13][13],int D)
          { 
        for (j=0; j<=i; j++)
         if (P[i][j])
          printf("%5d", P[i][j]);
          printf("\\n");
         }
}

Je suis mort là;je n'avance plus et pourtant dans une demi heure je dois le remettre!!!
Publicité
Le 30 janvier 2009 à 15:53:26
Le 30 janvier 2009 à 16:51:20

Kikoo, asv? lol.

Tu ne connais pas les règles de politesse de base? A vrai dire tu ne connais pas non plus les "règles" du C de base. On n'envoie pas un tableau 2D à une fonction comme cela, il faut juste lui donner la taille de la 2e dimension pas la première. Ensuite la fonction main est de type int car elle renvoi quelque chose (d'ailleurs qu'est-ce que tu lui renvois toi?! return 0; et pis c'est tout). Je vois aussi une boucle sans { } c'est très intéressant ça printfera juste une phrase à l'infinie. Et qu'avons-nous pour finir ? Ah oui un appel de fonction foiré (on ne donne pas le type de la fonction à son appel) et une fonction afficheP bancale. Après au niveau de l'algo j'ai la flemme, je compte sur ton esprit mathématique pour avoir eu la bonne logique.

Bref tu dois le rendre bientôt, prépares toi à avoir une sale note. (pwnd)
Note: Apprendre + prendre de l'avance = réussite assurée.

EDIT: arrête de créer des topics toutes les 5 minutes, c'est lourd. C'est pas de notre faute si tu fais tout à la dernière minute comme un bourrin avec des pseudos connaissances. D'ailleurs j'hésite à effacer mon post car oui je trouverais ça assez juste (et, ma foi, très rigolo) que tu te tapes une mauvaise note.
Le 30 janvier 2009 à 17:09:58

Je te trouve trés insultant Gambit2099...quand tout ce que j'ai fais jusqu'ici c'et juste te demander de l'aide.Je me réjouis pour toi que tu n'aies pas autant de dificultés que moi...mais de grâce ne sois pas insultant!!!!Je recherche de l'aide c'est tout!!!
Le 30 janvier 2009 à 17:18:58

Tu cherches de l'aide mais tu cherches MAL. Tu demandes directement dans ton troisième topic le code complet qui fonctionne: ok, tu me payes combien? Non car il y a de l'aide et il y a de la soumission. C'est pas en te donnant un code fini que tu comprendras quoique ce soit. Je t'ai donné dans mon précédent post "tout" ce qui n'allait pas. Corrige ça et renvoi ton code et on y regardera de plus près :)
Zéro d'honneur Le 30 janvier 2009 à 17:23:05

Tu as dû mal compter, c'est pas son 3e topic ;)

Et puis j'avais déjà donné des éléments, mais il a pas l'air de connaître suffisamment le C pour les appliquer correctement.
http://www.siteduzero.com/forum-83-365 [...] e-pascal.html

Sans vouloir être méchant, il vaut mieux le laisser avoir sa mauvaise note, il fera mieux la prochaine fois.
Le 30 janvier 2009 à 23:39:24

Salut,
Comme ton code est plein de fautes syntaxiques, je vais essayer de te montrer ce qui ne va pas dans les grandes lignes et je ne vais pas corriger l'algorithme pour l'instant car je suis fatigué ^^.

Tout d'abord, petit détail. Lorsque tu crées un topic, il ne faut pas mettre "salut" ou "bonjour" comme titre mais comme première phrase du texte, comme je viens de le faire.

Ensuite, niveau syntaxe, Gambit2099 a déjà évoqué pratiquement tout ce qui ne vas pas.

Tout d'abord, le main:

int main() //renvoie un int
{  
  int i,j;  
  int P[13][13];
  int D; /* degré du triangle*/
  printf("Entrez le degre D du triangle:\n", D); //on demande D avant d'entrer dans la boucle sinon on D peut avoir n'importe quelle valeur
  scanf("%d", &D); 
  while(D>10 || D <0)
   	triangleP(P, D); //un appel de fonction se fait juste avec le nom et les paramètres. De plus, ton programme ne connaît pas triangle mais triangleP 
	afficheP(P, D); // voir remarques au dessus
	printf("afficher le triangle:\n",P ,D); //inutile si tu affiche avec la fonction afficheP(de plus cette syntaxe est fausse)
 return 0; //renvoie un int
}


Pour la fonction triangleP:

void triangleP(int P[13][13], int D) // tu as besoin d'une valeur venant de la fonction main. Elle doit donc être passée en paramètre.  
    {                                            
     int i, j;                                       /* indices courants */ 
 
     for (i=0; i<=D; i++)
         {
       P[i][i]=1;          /*on initialise la premiére ligne de notre triangle*/
       P[i][0]=1;         /*la seconde ligne nous fournit le même resultat*/
       
	   for (j=1; j<i; j++)
          {
        P[i][j] = P[i-1][j] + P[i-1][j-1];        /*(1)*/
          }
    }


Pour la fonction afficheP:

void afficheP(int P[13][13],int D) //void car elle ne renvoie rien
          { 
        for (j=0; j<=i; j++)
        {                        //ajouter les {} qui manquent
         if (P[i][j])
         {
          printf("%d", P[i][j]);
          printf("\\n");
         }
        }
}


Il est possible qu'il reste des erreurs car je n'ai pas tout analysé au niveau syntaxique. Par contre, je peux te dire que même avec ces quelques corrections, le programme ne marchera pas. Je le vois avec ton algorithme. Mais cela, je penses que tu peux le régler toi même.

Bon courage.

Triangle de pascal en C

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown