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 :

aide pour un programme de calcul d'une suite


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut aide pour un programme de calcul d'une suite
    salut
    pourriez vous m aider a realiser ce programme ?
    je suis débutant et j arrive pas a le faire

    Soit la suite de nombres : 10, 11, 24, 54, 117, 243, 495, ... (suite infinie)

    Le premier élément de cette suite est 10,
    la règle pour constituer cette suite est : additionnez les nombres précédents et ajoutez la somme des chiffres constituants ces mêmes nombres

    Exemple : 24 = 10 + 11 + 1 + (1 + 1)

    Créez un programme en C qui affiche cette suite. N'utilisez pour cela que des types int.

    Et stoppez le avant qu'un débordement ne se produise.

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Je pense que la réponse sera (comme dans ton autre post) utilise sprintf, ou fprintf, ou alors les divisions successives par 10.
    Et (comme dans ton autre post) on te répondra qu'on ne fera pas le code à ta place

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Bonjour et bienvenue sur le forum.

    pourriez vous m aider a realiser ce programme ?
    Explique ce que tu as fait, montre le code et pose les questions sur les difficultés que tu rencontres.
    Le forum est là pour apporter de l'aide, mais évidemment pas pour faire les exercices.

    Cordialement

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par diogene Voir le message
    Bonjour et bienvenue sur le forum.


    Explique ce que tu as fait, montre le code et pose les questions sur les difficultés que tu rencontres.
    Le forum est là pour apporter de l'aide, mais évidemment pas pour faire les exercices.

    Cordialement
    oui je sais desolée
    mais le probléme c est quo n a fait juste 4 heures de cours et puis le prof exige qu on elabore le programme :s

    je crois avec la division sur 10 a chaque fois ca va marcher une fois modulo et une fois div mais comment faire pour rassembler les modulo et les div .
    par exemple pour avoir 54 comment additioner les resultat mod et div de la division de 10 et 11 et 24 sur 10 .
    merci

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 339
    Points
    2 339
    Par défaut
    Euh, personnellement, je trouve cet exercice très compliqué pour quelqu'un qui n'as que 4h a son actif !

    Pour retenir en memoire les precedent chiffre, il va falloir qu'il utilise un tableau.
    Ensuite, il doit stopper avant debordement. Je pense qu'il doit stopper avant depassement de capacité int ? Ca devient vraiment compliqué pour un debutant s'il doit aller chercher le dernier avant depassement !
    Pour faire quelque chose de propre, il faudrait faire de l'allocation dynamique !

    Bon, on va partir sur un tableau de 100 int et on gerera la taille du tableau en plus du debordement d'un int.

    Je fais l'algo, j'editerai plus tard

  6. #6
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Citation Envoyé par SofEvans Voir le message
    <...>
    Pour retenir en memoire les precedent chiffre, il va falloir qu'il utilise un tableau.
    Ensuite, il doit stopper avant debordement. Je pense qu'il doit stopper avant depassement de capacité int ? Ca devient vraiment compliqué pour un debutant s'il doit aller chercher le dernier avant depassement !
    Pour faire quelque chose de propre, il faudrait faire de l'allocation dynamique !

    Bon, on va partir sur un tableau de 100 int et on gerera la taille du tableau en plus du debordement d'un int.
    <...>
    Je ne vois pas ce que viennent faire ici les tableaux ou même l'allocation dynamique

    cet exercice ne comporte pas de difficultée majeure et comme le dit diogene c'est à sylar113 de trouver un algorithme et de poster son code en cas de problème.

  7. #7
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 339
    Points
    2 339
    Par défaut
    Hum oui, les suite n'ont jamais été mon fort.
    Il est vrai que l'on peut se passer de tableau, mais sur le coup, je ne voyai pas d'autre solution.

    En fait, la solution est simple si on voit l'astuce. Reste juste une legere difficulté : additionné tout les chiffre quelque soit la longueur de l'int (mais ce n'est pas insurmontable).

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    par exemple pour avoir 54 comment additioner les resultat mod et div de la division de 10 et 11 et 24 sur 10 .
    Regarde comment est construite la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    10
    11 = 10+(1+0)
    24 = 10+(1+0)+11+(1+1) =2*11+(1+1)
    54  = 10+(1+0)+11+(1+1)+24+(2+4) = 2*24+(2+4)
    117 = 2*54 +(5+4)
    243 = 2*117+(1+1+7)
    495 = 2*243+(2+4+3)
    ...
    Prenons le dernier par exemple pour obtenir 2,4,3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    3 = 243 mod(10)  et 24 = 243/10 (division entière)
    4 =  24 mod(10)  et  2 =  24/10
    2 =   2 mod(10)  et  0 =   2/10 et ce n'est pas la peine d'aller plus loin
    Ceci correspond à calculer la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    V0 = 10
    Vn+1 = 2*Vn +(Vn) mod(10)+(Vn/10) mod(10)+(Vn/10/10) mod10+(Vn/10/10/10) mod(10)+....
         = 2*Vn+ Somme(Rk)
    Avec :
         U0 = Vn
         Uk+1 = Uk/10
    et   Rk = Uk mod(10)
    A toi de coder tout ça (ce n'est ni long, ni compliqué)

  9. #9
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 339
    Points
    2 339
    Par défaut
    Il y a quelque chose qui me trote dans la tete depuis longtemps mais impossible d'avoir une reponse clair :

    Y a t'il quelque part une constante qui definisse la taille des type ?
    Du style un define planqué quelque part (stdlib.h ?) TAILLE_MAX_UNSGNED_INT 2 147 483 647

    Ce serai vraiment pas mal ...

    Et de facon general, comment savoir si une varaible a depasser sa capicté ?

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Dans limits.h et float.h

    Voir la : http://c.developpez.com/faq/?page=ty...S_taille_types

  11. #11
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 339
    Points
    2 339
    Par défaut
    Depuis le temps que je les chercher ... direct en marque page.

    limits.h -> type entiers
    float.h -> type reel


    Merci beaucoup.

Discussions similaires

  1. Python 3.2 programme pour calcul d'une suite
    Par Amnael dans le forum Général Python
    Réponses: 5
    Dernier message: 22/10/2011, 20h53
  2. Aide pour un script qui calcule le temps passé depuis une date
    Par Mooneer dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/05/2008, 15h23
  3. Réponses: 19
    Dernier message: 04/03/2008, 10h36
  4. [MySQL] Aide pour affichage de donné recup dans une BD
    Par mitchb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/05/2006, 11h38
  5. aide pour un programme a compiler
    Par letombeur dans le forum C++
    Réponses: 8
    Dernier message: 11/01/2006, 21h53

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