IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Dessiner la lettre X en console


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant technicien reseaux et télécoms
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant technicien reseaux et télécoms

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Dessiner la lettre X en console
    Bonjour,

    J'ai bien réussit a faire l'exercice Périmètre d'un rectangle mais pour La lettre X impossible de comprendre comment faire.

    Rappel de l'exercice :

    Écrire un programme qui dessine la lettre dans une grille de dimensions 5 x 5 en utilisant des espaces et le caractère '*'. Cela signifie qu'on veut avoir comme sortie :

    *   *
     * * 
      *
     * * 
    *   *
    http://melem.developpez.com/tutoriel...e-c/?page=demo

    Cordialement.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Bonsoir,

    Sans blague tu n'as pas d'idée pour faire la lettre X comme indiqué?
    J'ai du mal à le croire. Je ne veux pas te décourager mais je ne sais pas si la programmation va te plaire...
    Alors piste 1 avec le bloc note de windows tu fais le X "à la main" et tu réfléchis à ce que tu viens de mettre sur chacune des cinq lignes.
    Piste 2 tu te fais tes expériences avec la fonction printf, tu peux y aller ça va pas te péter au museau par exemple
    Piste 3 tu te trouves sur le net des petits programmes en c, tu les copies, tu les compiles, tu les executes et ensuite tu les modifies.(google : langage c pdf )
    t'auras jamais le temps de les lire tous.
    Je viens de me faire piéger c'est sûr...chuis trop bon...
    Après il y a la lettre L qui n'est pas mal...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant technicien reseaux et télécoms
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant technicien reseaux et télécoms

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ba avec printf je veux bien mais c'est pas du code ça ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
     
    int main(){
     
              printf("*   *\n);
              printf(" * * \n);
              printf("  *   \n);
              printf(" * * \n);
              printf("*   *\n);
     
              return 0;
    }

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Bon là tu me rassures, oui effectivement ça ne vole pas très haut mais je crois que c'est ça qui était attendu!

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Etudiant technicien reseaux et télécoms
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant technicien reseaux et télécoms

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ah daccord

    bon ba merci quand meme

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Peut-être pensais-tu à quelque chose de plus construit comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h>
    #include <stdlib.h>
     
     
    int main()
    {
    	char t[6];
    	int p = 0;
    	int d = 4;
    	t[5]='\0';
    	for(int i=0; i<5;i++)
    	{
    		for(int k = 0; k<5; k++)
    			if( k==p || k==d )
    				t[k] = '*';
    			else
    				t[k] = ' ';
    		printf( "%s\n", t);
    		p++;
    		d--;
    	}
    	system("pause");
    	return 0;
    }

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par primel56 Voir le message
    Ba avec printf je veux bien mais c'est pas du code ça ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
     
    int main(){
     
              printf("*   *\n);
              printf(" * * \n);
              printf("  *   \n);
              printf(" * * \n);
              printf("*   *\n);
     
              return 0;
    }
    Salut
    Déjà c'est du code Mais bon, je pense que le prof attendait que tu "réfléchisses" un peu plus. Tu ne remarques pas une certaine "logique" reliant par exemple un indice et le nombre d'espaces ?
    Aide:
    • il y a toujours 5 caractères
    • pour le centre (imaginons que ce soit référencé par "i=0") il y a 2 espaces, une étoile et 2 espaces
    • les lignes du dessus et du dessous (imaginons par exemple qu'elles soient référencées par i=1 et i=-1), il y a un espace, une étoile, un espace, une étoile et un espace
    • les lignes extrêmes (on va dire i=2 et i=-2) il y a une étoile, 3 espaces et une étoile

    Partant de ces considérations, tu aurais pu programmer un algo utilisant justement ces valeurs de i pour afficher les étoiles et les espaces correspondant. Ca ça aurait été du code et un truc peut-être pas utile mais montrant que tu savais réfléchir et utiliser des astuces mathématiques pour "optimiser" tes lignes de code...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Salut
    Déjà c'est du code Mais bon, je pense que le prof attendait que tu "réfléchisses" un peu plus...
    non il n'y a pas de prof. Dans le post d'origine il y a un lien sur un tutoriel très simple, de niveau basique donc la solution est celle que primel56 a donné à condition de mettre les " qui manquent...

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kija13 Voir le message
    non il n'y a pas de prof.
    Ben si. Il y a bien un gars (Jessee Michaël C. Edouard), qui se sentait l'âme d'un enseignant, qui a tapé le tuto...

    Citation Envoyé par kija13 Voir le message
    ...donc...
    Comme si le fait que le niveau soit basique entrainait ipso-facto que la solution ne nécessite pas un minimum de réflexion. "Basique" dans l'apprentissage d'un langage et de sa syntaxe ne signifie pas forcément "basique" dans l'algorithme nécessaire à la résolution des exercices...

    Citation Envoyé par kija13 Voir le message
    ...la solution...
    Comme s'il y en avait qu'une. Sauf que dans le tuto le lien vers les solutions est vide (http://melem.developpez.com/tutoriel...page=solutions).
    Et perso je préfère la tienne à la sienne qui a l'avantage de faire réfléchir sur les liens existants entre les mathématiques et la programmation plutôt que de taper 5 printf() à la suite...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Le contexte de l'exercice était un tuto (qui n'est pas remis en cause) de découverte du langage c très basique.
    Les solutions sont suggérées dans le tuto lui-même.
    Pour l'exercice qui demande le périmètre du rectangle on donnait le prototype de la fonction surface ; il suffisait de remplacer surface par périmètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Surface(int Longueur, int largeur);
    et le modèle du programme complet était donné par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <stdio.h>
     
    int f(int); /* declaration de la fonction f */
     
    int main()
    {
        int x = 4;
        printf("f(%d) = %d\n", x, f(x));
        return 0;
    }
     
    int f(int x)
    {
        return x*x - 3;
    }
    Pour la lettre X le modèle était donné par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void Bonjour3Fois(void)
    {
        printf("Bonjour.\n");
        printf("Bonjour.\n");
        printf("Bonjour.\n");
    }
    ça c'est du basique qui montre que la notion de boucle n'était même pas envisagée!

    Dans ce contexte la solution c'est bien les printf
    Maintenant des solutions plus élaborées existent mais dans un autre contexte.
    La solution avec les printf n'est pas ridicule, on peut la prolonger en demandant de fabriquer tout l'alphabet en majuscules dans des matrices 5x5.
    On peut continuer en faisant une police bitmap...

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kija13 Voir le message
    ...Pour la lettre X le modèle était donné par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void Bonjour3Fois(void)
    {
        printf("Bonjour.\n");
        printf("Bonjour.\n");
        printf("Bonjour.\n");
    }
    ça c'est du basique qui montre que la notion de boucle n'était même pas envisagée!

    Dans ce contexte la solution c'est bien les printf
    Mouais. Tu as bien défendu ta position et donc je pense que tu as raison. +1
    Ceci dit, je continue à préférer la tienne plus intéressante d'un point de vue mathématique et qui apporte quelques notions intéressantes même pour un apprentissage basique (ne serait-ce que par le positionnement initial du '\0')
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Dessiner un rectangle dans la console
    Par Akastras dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2010, 15h55
  2. programme qui dessine une lettre
    Par TGV6975 dans le forum Débuter
    Réponses: 3
    Dernier message: 27/02/2010, 13h45
  3. [MFC] Dessin dynamique mode console
    Par MAGNUM_HEAD dans le forum MFC
    Réponses: 20
    Dernier message: 15/05/2007, 16h51
  4. dessin d'une lettre
    Par slegault dans le forum C++
    Réponses: 4
    Dernier message: 13/11/2006, 20h19
  5. Dessiner un tableau dans la console
    Par micatmidog dans le forum C
    Réponses: 7
    Dernier message: 25/01/2006, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo