besoin d'aide pour completer et améliorer algorithme en fortran 95
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

besoin d'aide pour completer et améliorer algorithme en fortran 95



  1. #1
    Frevile-34

    besoin d'aide pour completer et améliorer algorithme en fortran 95


    ------

    Bonsoir à tous comme k'indique l'intitulé j'aurais besoin d'aide pour finir un programme en fortran 95 le but est que j'ai un un dossier contenant les coordoné d'un polygonne et un dosier contenant les coordoné de points mais la je suis bloqué je vous copie ici mon script merci d'avance



    Code:
    program poininpoly
    !2 programme fortran 19/09/2011
    !Declare l'ensemble des variable pour ne pas oublié les chiffres après la virgule
    implicit none
    !Declaration des variables
    !declaration compteur
    integer :: compt, stat ,compt1, stat1,j
    !declaration de vecteur
    integer, parameter :: npmax=100
    real, dimension (npmax) :: X,Y
    real :: A,B,Z,W
    !Lecture du polynome
    !ouverture du fichier
    open (11,file="poly.txt")
    !boucle
       stat=0
       compt=0 
    do while (stat ==0)
    		!lecture
    		!compteur de ligne
     		compt=compt+1
    		!condition d'erreur
    			if (compt>npmax) then
     				write (*,*) "/!\erreur npmax < nb de ligne :changer nombre de ligne/!\"
    				stop
    			endif
           				read (11,*,iostat=stat) X(compt),Y(compt) 
        !				condition pour retour
    	if (stat==0) then
    		!ecrit le tableau
     		write (*,*) X(compt),Y(compt)
    	endif
    !fin de boucle
    end do
    !affiche a lecran le tableau
    !fin de boucle
        compt=compt-1
        write (*,*) "nb ligne:",compt 
    
    !lecture des points
    !ouverture du fichier
    open (12,file="tableau_point.txt")
       stat1=0
       compt1=0
    !boucle 
    do while (stat1 ==0)
    			!lecture
         			read (12,*,iostat=stat1) A,B
    			!compteur de ligne
         			compt1=compt1+1
    			!condition pour retour
    				if (stat1==0) then
    					!ecrit le tableau
     					write (*,*) A,B
    				endif
    !fin de boucle
    end do
    !affiche a lecran le tableau
        compt1=compt1-1
        write (*,*) "nb ligne:",compt1 
    !calcul de l'equation de droite
                  !boucle pour chaque coté du poly
                  do j = 1, compt 
    			W(J)=((Y(j+1))-(Y(j)))/(((X(j+1))-(X(j)))
                            Z(J)=Y(j)-W(j)*X(j)
    	      
    		
    				!verif si point est compris entre la droite
    	      				
    		!si oui
    			!calcul de l'intersection
    				!boucle pour chaque coté du poly
    					!si intersection incrémenté de 1 un compteur
    !verif si le mod de nb dint sur 2 = 0 ou 1
    				!si 1 dehors si 0 dedans donc incrémté un compteur de 1
    					!enregistre dans un fichier les point qui sont dedans
    !fin de programme
    end

    -----
    Dernière modification par yoda1234 ; 22/09/2011 à 10h22.

  2. #2
    whoami

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Bonjour,

    Un effort de présentation rendrait la lecture nettement plus agréable.

    D'autre part, que signifie "!verif si point est compris entre la droite" ? ("point est sur la droite" ?).

  3. #3
    Frevile-34

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    oui dsl pour la présentation cela signifie ect que le poin est compris entre les cordonné d une des droite qui forme un cote du polygonne

  4. #4
    Frevile-34

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    ci joint un fichier ext contenant le prog pour plus de clareté
    Images attachées Images attachées

  5. A voir en vidéo sur Futura
  6. #5
    Dlzlogic

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Bonjour,
    A mon avis, que ce soit en Fortran ou dans un autre langage, ça ne change pas grand-chose.
    Décrivez votre algorithme, en précisant bien au début ce que vous cherchez à faire.
    Que votre polygone soit dans un fichier ou ailleurs ne change rien. Ce qui me parait intéressant à observer est que vous écrivez un long module et "là vous êtes bloqué". Moi, quand je commence à taper, soit c'est simple et j'ai tout dans le tête, soit c'est plus compliqué, alors j'ai tout écrit en français au préalable.

  7. #6
    yoda1234

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    @ Frevile-34: Tu peux aussi utiliser la balise code symbolisée par un dièse dans l'éditeur avancé.


    Nom : dièze.jpg
Affichages : 61
Taille : 32,7 Ko
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  8. #7
    invite4492c379

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Citation Envoyé par Frevile-34 Voir le message
    Bonsoir à tous comme k'indique l'intitulé j'aurais besoin d'aide pour finir un programme en fortran 95 le but est que j'ai un un dossier contenant les coordoné d'un polygonne et un dosier contenant les coordoné de points mais la je suis bloqué je vous copie ici mon script merci d'avance



    Code:
    program poininpoly
    !2 programme fortran 19/09/2011
    !Declare l'ensemble des variable pour ne pas oublié les chiffres après la virgule
    implicit none
    !Declaration des variables
    !declaration compteur
    integer :: compt, stat ,compt1, stat1,j
    !declaration de vecteur
    integer, parameter :: npmax=100
    real, dimension (npmax) :: X,Y
    real :: A,B,Z,W
    !Lecture du polynome
    !ouverture du fichier
    open (11,file="poly.txt")
    !boucle
       stat=0
       compt=0 
    do while (stat ==0)
            !lecture
            !compteur de ligne
             compt=compt+1
            !condition d'erreur
                if (compt>npmax) then
                     write (*,*) "/!\erreur npmax < nb de ligne :changer nombre de ligne/!\"
                    stop
                endif
                           read (11,*,iostat=stat) X(compt),Y(compt) 
        !                condition pour retour
        if (stat==0) then
            !ecrit le tableau
             write (*,*) X(compt),Y(compt)
        endif
    !fin de boucle
    end do
    !affiche a lecran le tableau
    !fin de boucle
        compt=compt-1
        write (*,*) "nb ligne:",compt 
    
    !lecture des points
    !ouverture du fichier
    open (12,file="tableau_point.txt")
       stat1=0
       compt1=0
    !boucle 
    do while (stat1 ==0)
                !lecture
                     read (12,*,iostat=stat1) A,B
                !compteur de ligne
                     compt1=compt1+1
                !condition pour retour
                    if (stat1==0) then
                        !ecrit le tableau
                         write (*,*) A,B
                    endif
    !fin de boucle
    end do
    !affiche a lecran le tableau
        compt1=compt1-1
        write (*,*) "nb ligne:",compt1 
    !calcul de l'equation de droite
                  !boucle pour chaque coté du poly
                  do j = 1, compt 
                W(J)=((Y(j+1))-(Y(j)))/(((X(j+1))-(X(j)))
                            Z(J)=Y(j)-W(j)*X(j)
              
            
                    !verif si point est compris entre la droite
                              
            !si oui
                !calcul de l'intersection
                    !boucle pour chaque coté du poly
                        !si intersection incrémenté de 1 un compteur
    !verif si le mod de nb dint sur 2 = 0 ou 1
                    !si 1 dehors si 0 dedans donc incrémté un compteur de 1
                        !enregistre dans un fichier les point qui sont dedans
    !fin de programme
    end
    Hello,
    Je ne connais pas trop le fortran. Néanmoins ça ressemble à un amoncellement de portion de code trouvé dans un cours.
    À la louche je dirai :
    Tu lis un tableau de points et tu places les coordonnées dans X et Y.
    Tu lis ensuite un ensemble de points mais tu ne les mets pas dans un tableau -> erreur
    Tu as ensuite une boucle ou le code spaghetti commence
    Tu manipules les Z et W comme des tableaux alors que ce seont des réels -> erreur je suppose
    Tu confonds X, Y avec A et B dans une équation qui ressemble à une équation de droite mais qui ne l'est pas
    Tu vérifies (dans le pdf) si des points sont dans un rectangle ayant un segment donné pour diagonale (attention aux cas extrêmes)
    ATTENTION AUX CAS LIMITES, il faut traiter le dernier segment aussi ((x(max),y(max))->(x(1),y(1)))
    Bref du code tapé à la va vite sans réflexion préalable à mon avis en picorant à gauche à droite des bouts de code.


    Questions :
    En quelle classe es-tu ?
    Est-ce un exercice d'apprentissage du Fortran ?

    As-tu écris un algo ?

    Le polygone est-il convexe ?
    Possèdes-tu dans ton cours un algo qui convient pour traiter ce genre pb ?
    Si oui, lequel ?
    Sinon as-tu cherché sur google ?

    Dans l'attente de relire, A+

  9. #8
    Frevile-34

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    alors je possede 3 heure de progra en fortran je suis en m1 geologie et c'est mon premier algorithme et c'est un travaille donné

  10. #9
    Dlzlogic

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Un algorithme consiste à écrire en langage clair et logique (en bon français par exemple) une idée, une méthode etc.
    La programmation consiste à traduire dans un langage donné, le Fortran par exemple, l'algorithme qui a été écrit en français.
    Moi je vous conseille de commencer par écrire en français
    1- ce que vous devez faire
    2- comment le réaliser
    3- les résultats à produire

  11. #10
    Frevile-34

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Merci pour votre aide j'ai terminé mon script et il fonctionne

  12. #11
    whoami

    Re : besoin d'aide pour completer et améliorer algorithme en fortran 95

    Bonjour,
    Citation Envoyé par Frevile-34 Voir le message
    Merci pour votre aide j'ai terminé mon script et il fonctionne
    Pour les langages compilés, comme l'est Fortran, on ne parle pas de script, mais de programme.

Discussions similaires

  1. Besoin d'aide pour completer Svp!
    Par invite690ee10f dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 27/10/2009, 09h27
  2. Besoin d'aide pour completer mon mini-projet
    Par invite6141c8e8 dans le forum Électronique
    Réponses: 6
    Dernier message: 18/06/2009, 14h05
  3. [AIDE] besoin d'aide pour réaliser un algorithme
    Par invite3bd669c7 dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 17/01/2008, 23h21
  4. Besoin d'aide pour coder en fortran !
    Par invite778899b7 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 29/11/2006, 22h35
  5. besoin d'aide pour un algorithme
    Par invite5d1cc25a dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 27/11/2006, 17h02