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 :

Exercices sur tableau et factorielle


Sujet :

C

  1. #21
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Ok, on va commencer le 2 car je le sens plus facile (pour toi s'entend) que le 1
    On te donne un nombre (ex 8) et tu dois calculer 1x2x3x4x5x6x7x8. L'algorithme n'est pas très compliqué. Faut juste que tu penses que 1x2x3x4x5x6x7x8 c'est
    1. commencer par mettre r=1
    2. ensuite r=r*x avec x qui varie de 2 jusqu'à 8... donc une simple boucle.

    Pour le reste, un peu de saisie, un peu de while pour programmer la boucle et c'est bon (et, chance, mettre r=1 ça résoud même le cas spécial "0!=1"). Ensuite on remplace le while par un for (le mécanisme est assez simple et il n'y a même pas à réfléchir) et c'est fini.
    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]

  2. #22
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Axel Le Disciple Voir le message
    Bonjour à tous,
    Exercice 1
    Écrire un programme qui lit la dimension N d'un tableau T du tipe int (dimension maximale : 50 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.
    Copiez ensuite toutes composantes strictement positives dans un deuxième tableau TPOS et toutes les valeurs strictement négatives dans un troisième tableau TNEG. Afficher les tableaux TPOS et TNEG.
    Visiblement , s'il te faut lire la dimension du tableau sur stdin ton tableau doit être dynamique => utilisation d"allocation mémoire sur le tas (voir malloc()) ;
    commence par bûcher ce chapitre .

  3. #23
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par exe2bin Voir le message
    Visiblement , s'il te faut lire la dimension du tableau sur stdin ton tableau doit être dynamique => utilisation d"allocation mémoire sur le tas (voir malloc()) ;
    Je ne suis pas d'accord. Déjà faire du malloc() ce n'est pas du niveau de débutant et ça demande déjà de bonnes connaissances (pointeurs, etc) ; et dans l'énoncé il est précisé "de dimensions maximales 50". donc un int tab[50] ça le fait et sans malloc().
    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]

  4. #24
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Je ne suis pas d'accord. Déjà faire du malloc() ce n'est pas du niveau de débutant et ça demande déjà de bonnes connaissances (pointeurs, etc) ; et dans l'énoncé il est précisé "de dimensions maximales 50". donc un int tab[50] ça le fait et sans malloc().
    Pas faux.
    Pour le coup, tu as presque ton exercice fait !
    1) création du tableau : int T[50] ainsi que les tableaux TPOS et TNEG (50 éléments également, les éléments peuvent être positifs ou négatifs)
    2) lecture de la taille dans un int : int longueurTableau;
    3) lecture des longueurTableau entiers à l'aide d'une boucle (for) puis enregistrement dans le tableau T
    4) boucler sur T puis tester chaque élément pour répartition dans TPOS ou TNEG
    5) dernière boucle enfin pour affichage

    Bon courage

  5. #25
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Points : 0
    Points
    0
    Par défaut C'est très dur
    Je bloque sur ca completement. Surtout avec la boucle while !

    Écrire un programme C qui demande un entier naturel N, et qui calcule sa factorielle en respectant que 0!=1.
    NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
    a) Utiliser while,
    b) Utiliser for.

    B) For
    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
     
    #include <math.h>
    #include <stdio.h>
    #include <stdlib.h>
     
                  int main ()
                  {
                       int nbre, i, résultat ;
     
                       printf ("Veuillez saisir un nombre :/n")
                       scanf ("%, &nbre );
                       resultat = i ; 
                       for ( i= 8; i<=nbre ; i++) ;
                        {
                             resultat = resultat * i ; 
                        }
                        printf ( " La factorielle de %d est %/n", nbre , resultat ) ; 
                   }
    A) While
    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
     
    #include <math.h>
    #include <stdio.h>
    #include <stdlib.h>
     
                  int main ()
                  {
                       int nbre, i, résultat ;
     
                       printf ("Veuillez saisir un nombre :/n")
                       scanf ("%, &nbre );
                       resultat = i ; 
                       while ( i= 8; i<=nbre ; i++) ;
                        {
                             resultat = resultat * i ; 
                        }
                        printf ( " La factorielle de %d est %/n", nbre , resultat ) ; 
                   }

  6. #26
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Axel Le Disciple Voir le message
    Je bloque sur ca completement. Surtout avec la boucle while !
    Ben si tu y arrives avec for, c'est alors pas compliqué de le transformer en while... Mais bon, en regardant tes codes, je sens que ça n'y est pas non plus complètement avec le for...

    Citation Envoyé par Axel Le Disciple Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                       resultat = i ; 
                       for ( i= 8; i<=nbre ; i++) ;
    Mouais. Tu peux me donner la valeur de "i" au moment où tu le copies dans "resultat" ??? Et aussi pourquoi tu le fais commencer à "8" ??? Tu es capable de faire l'analogie entre "1x2x3x4x5x6x7x8x9x10x....xn" et "je commence à 8 pour aller jusqu'à n" ???
    La seule erreur "naturelle" (c'est à dire justifiable car difficile à repérer) donc que je peux te corriger, c'est qu'on ne doit pas terminer un for avec un point-virgule. Le reste, ce n'est qu'une question de "jugeote" ou de "bon sens" et pour ça, c'est à toi de te sortir les doigts.

    Citation Envoyé par Axel Le Disciple Voir le message
    A) While
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    while ( i= 8; i<=nbre ; i++) ;
    Ok, le disciple n'est pas près de passer padawan. Donc là tu retournes ouvrir tes cours sur la syntaxe du while.
    Surtout que tu te trompes sur sa syntaxe encore ça peut (difficilement mais en faisant un effort) s'expliquer... mais que tu l'écrives exactement de la même façon que le for sans te dire "bizarre que les concepteurs du C aient programmé deux instructions différentes mais faisant la même chose et avec la même syntaxe !!!" ça c'est impardonnable.

    PS:
    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]

  7. #27
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Penses à la syntaxe du while() comme celle du if();

Discussions similaires

  1. Petit exercice pour débutant (besoin de correction svp )
    Par Tamzoro dans le forum Général Python
    Réponses: 3
    Dernier message: 08/10/2020, 13h47
  2. Réponses: 3
    Dernier message: 21/11/2014, 20h26
  3. "Le langage C++" : corrections aux exercices ...
    Par Marco85 dans le forum C++
    Réponses: 2
    Dernier message: 03/02/2006, 14h45
  4. Réponses: 4
    Dernier message: 27/02/2005, 21h43
  5. Demande de corrections d'exercices Turbo Pascal
    Par Helpine dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 16/01/2005, 10h38

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