Partage
  • Partager sur Facebook
  • Partager sur Twitter

cerf_volant en langage C

Ecrire une procédure "cerf_volant()"

    18 juin 2015 à 1:08:28

    #include <stdio.h>
    #include <stdlib.h>
    
    void cerf_volant(int N){
    	
    
    	int i,j,x=0,k=0;
    	for(i=1;i<N;i++){
    		for(j=1;j<(N*2)-1;j++){
    			if(i==N||j==k||j==x){
    				printf("\\");
    		
    		}
    			x++;k--;
    		printf("\n");
    	}
    	
    }}
    
    main(){
    	int nbr;
    		
    do{
    printf("\nentrer la taille : ");
    		scanf("%d",&nbr);
    		if(nbr%2!=0){
    			printf("la taille doit etre paire");
    		}
    		}	while(nbr%2!=0);
    	cerf_volant(nbr);
    	return 0;
    }

    Ecrire une procédure "cerf_volant()" permettant de dessiner un cerf-volant dont la taille N est passée en paramètre de la procédure. Faites appel à cette procédure dans un algorithme donnant le droit à l'utilisateur de saisir la taille du dessin qui doit Etre paire.

    -
    Edité par Oussama_bhl 18 juin 2015 à 1:16:11

    • Partager sur Facebook
    • Partager sur Twitter
    OUSSAMA-BHL
      18 juin 2015 à 1:11:39

      Hello,

      Sans code, on ne pourra pas t'aider. Sur ce site, il n'est pas question d'écrire un programme pour quelqu'un d'autre. Commence, et on t'aidera avec plaisir.

      A+

      Edgar;

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        18 juin 2015 à 1:38:48

        Re, -

        Tu te casses la tête pour rien: considère que cerf_volant(....) peut se faire en trois étapes: la partie supérieure, le centre (les -) et la partie inférieure. Chez moi (je viens de l'écrire) , cela fait 3 boucles for(....) et le dessin est fait. Il faut bien sur connaître les paramètre de printf(....).

        A+

        Edgar;

        EDIT: après tout, je te poste ma solution, tu auras matière à analyse. Ne donne pas ça en réponse sans avoir tout compris.

        #include <stdio.h>
        
        #define SIZE 4
        
        void cf(int midsize) {
        	int i;
        	
        	for(i=0;i<midsize;i++)
        		printf("%*.*s/%*.*s|%*.*s\\\n",midsize-i-1,midsize-i-1," ",i,i," ",i,i," ");
        	for(i=0;i<=midsize*2;i++) putchar('-');
        	puts("");
        	for(i=0;i<midsize;i++)
        		printf("%*.*s\\%*.*s|%*.*s/\n",i,i," ",midsize-i-1,midsize-i-1," ",midsize-i-1,midsize-i-1," ");
        }
        
        int main(void) {
        	cf(SIZE);
        	return(0);
        }

         EDIT: j'ai oublié: si il faut supprimer le '-' au croisement des axes:

        	for(i=0;i<=midsize*2;i++)
        		putchar(i==midsize?' ':'-');
        

        -
        Edité par edgarjacobs 18 juin 2015 à 1:58:48

        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          18 juin 2015 à 3:13:07

          Merci ! c'est Quoi donc le rôle de l'expression :  
           "%*.*s/%*.*s|%*.*s\\\n"

          -
          Edité par Oussama_bhl 18 juin 2015 à 5:40:34

          • Partager sur Facebook
          • Partager sur Twitter
          OUSSAMA-BHL
            18 juin 2015 à 8:26:37

            C'est utile pour formater les chaînes de caractères et autres formats.

            #include <stdio.h>
            
            int main(void)
            {
                int i = 0;
            
                printf(":%*.*s:\n", 40, -1, "Bonjour comment allez-vous?");
                printf(":%-*.*s:\n", 40, -1, "Bonjour comment allez-vous?");
                printf(":%*.*s:\n", 40, 12, "Bonjour comment allez-vous?");
                printf(":%*s:\n", 40, "1234567890");
                printf(":%*.*s:\n", 40, 4, "1234567890");
                printf(":%-*.*s:\n", 40, 7, "1234567890");
                putchar('\n');
                for(i = 0; i < 8; i++)
                {
                    printf(":%*.*s:\n", i, 0, "");
                }
                for(; i >= 0; i--)
                {
                    printf(":%*.*s:\n", i, 0, "");
                }
                return 0 ;
            }
            
            :             Bonjour comment allez-vous?:
            :Bonjour comment allez-vous?             :
            :                            Bonjour comm:
            :                              1234567890:
            :                                    1234:
            :1234567                                 :
            
            ::
            : :
            :  :
            :   :
            :    :
            :     :
            :      :
            :       :
            :        :
            :       :
            :      :
            :     :
            :    :
            :   :
            :  :
            : :
            ::
            
            Process returned 0 (0x0)   execution time : 0.030 s
            Press any key to continue.
            

            :)


            -
            Edité par moins1 18 juin 2015 à 8:28:58

            • Partager sur Facebook
            • Partager sur Twitter
              18 juin 2015 à 8:43:57

              Tu peux lire ça / ça (plus complet, document officiel) pour en savoir plus.
              • Partager sur Facebook
              • Partager sur Twitter
              Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
                18 juin 2015 à 14:13:08

                Oussama_bhl a écrit:

                Merci ! c'est Quoi donc le rôle de l'expression :  

                 "%*.*s/%*.*s|%*.*s\\\n"

                -
                Edité par Oussama_bhl il y a environ 8 heures


                C'est de te faire chercher par toi-même à quoi elle sert puisque je t'ai fourni le code ;)

                -
                Edité par edgarjacobs 18 juin 2015 à 14:13:39

                • Partager sur Facebook
                • Partager sur Twitter

                On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                cerf_volant en langage C

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown