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 :

Création d'un programme en C.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut Création d'un programme en C.
    Bonjour,

    J'aurais besoin de votre aide pour créer un programme en langage C qui doit être capable de modéliser une avalanche de sable (modèle proposé par P.Bak en 1988). Voici ce que j'ai.
    A une dimension, on construit une série de N colonnes numérotées de 1 à N (vers la droite) adjacentes constituées de carrés représentant des grains de sable. Soit zn la différence de hauteur entre les deux colonnes n et n + 1

    zn = h(n) − h(n + 1)

    L’ajout d’un grain de sable sur la colonne n (choisie au hasard) entraîne

    zn -> zn + 1
    zn−1 -> zn−1 − 1

    ce qui peut engendrer un déplacement de grains de sable d’une colonne à une autre avec la règle suivante : dès qu’une colonne i contient plus de zc grains que sa voisine de droite, elle déverse un grain sur cette dernière ce qui se traduit par

    zi -> zi − 2
    zi±1 -> zi±1 + 1 pour z < zc

    Le sable ne peut se déverser que sur la frontière droite du tas (comme si on ne simulait qu’un demi tas de sable), soit les conditions aux frontières

    z0 = 0
    zN -> zN − 1
    zN−1 -> zN−1 − 1 pour z < zc

    Le processus continue jusqu’à ce que, pout tout n, zn < zc. Pour chaque grain lancé, on calcule la taille de l’avalanche (c’est-à-dire le nombre de grains de sable qui ont franchi la barrière droite).
    On étudie ensuite comment réagit le système à différentes configurations initiales (colonnes de hauteurs identiques, distribution de hauteurs telle que, pour tout n, zn>zc, ...).

    Voilà en gros ce que je dois programmer, mais je suis asse mauvais en informatique, alors j'aurais besoin d'un petit coup de pour pour commencer.

    Merci.

  2. #2
    Membre émérite
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Par défaut
    Quel est ton niveau en C actuellement ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut
    On va dire que j'ai un niveau intermédiaire. Je sais faire des programmes de bases, en utilisant des tableaux, des pointeurs, des fonctions, des boucles... Mais j'ai toujours du mal à transcrire le problème physique en un programme C, alors que la plupart des gens y arrivent très bien.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    tente donc déjà de nous sortir l'algorithme en texte..

    ça t'éclaircira les idées, et te donnera des pistes.

    Commence ensuite avec ces pistes, et on y verra plus clair..

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut @souviron34
    salut !
    je ne sais pas s'il peut décrire ses états de façon plus précise en texte qu'en description mathématique.
    il lui faut faire le choix d'une repésentation des données. après ça, les contraintes sont tellement précises que l'évolution vers une situation stable me semble déterministe.
    il n'est pas impossible, a priori , que l'orientation de la prise en compte des contraintes (gauche vers droite) soit indifférent, que des évènements "ajout d'un grain de sable en colonne n" ne puissent pas être simultanés.
    mais il y a assez de grain à moudre, sur un sujet aussi limité, pour passer à une étude pratique. avec la première structure de données qui lui passe par la tête, une fonction d'affichage de l'état des données, les fonctions d'application de chaque contrainte, la fonction d'ajout d'un grain de sable il devrait pouvoir cerner les imprécisions (s'il y en a) de sa formulation et, si besoin, une meilleure structure de données que celle de sa première idée.

    A+

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut @anarchasis
    ben déjà ne serait-ce qu'un petit schéma :

      |
      v
        ......>   .......>
    |  |      |   |      |   | .............. |   |    zc
    |  |      |   |      |   | .............. |   |
    |  |      |   |      |   | .............. |   |
    |  |      |   |      |   | .............. |   |
    |  |      |   |      |   | .............. |   |
    |  |      |   |      |   | .............. |   |
    ---       ----       ----                 ----
      0          1         2                     N    
    
    est un bon départ de formalisation qui, visuellement, va produire un texte, et donc une structure d'algo..

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut
    pour le sujet en 1 dimension, il y a assez de données pour écrire un programme. mais ça n'a pas grand intérêt ; l'arrivée d'un grain de sable aléatoire l'apporte pas grand chose à la stabilisation d'un état initial un peu tordu.
    j'ai trouvé http://hugues.bodiguel.free.fr/fichiers/avalanche.pdf pour un modèle à 2 dimensions, c'est un peu plus complexe, intéressant, mais biaisé par des hypothèses simplificatrices qui montrent bien que la géométrie est le principal problème des matheux nés après 1950.

    (troll ; mais ce n'est pas de leur faute. c'est celle de leurs profs)

    A+

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2006, 09h55
  2. Création d'un programme de Gestion / compta : langage ?
    Par Alexino2 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 11/04/2006, 15h00
  3. Réponses: 10
    Dernier message: 31/01/2006, 11h36
  4. Réponses: 2
    Dernier message: 30/01/2006, 22h19
  5. Création installer pour programme
    Par yanndublanche dans le forum Windows
    Réponses: 7
    Dernier message: 11/10/2005, 00h29

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