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

Fortran Discussion :

Fortran demande à l'utilisateur d'entrer un tableau


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Fortran demande à l'utilisateur d'entrer un tableau
    Bonjour à toutes et à tous,

    Je suis en train de faire un projet en Fortran. Il y a un moment où dans mon algorithme, j'ai besoin de demander à l'utilisateur d'entrer un tableau de valeur. C'est pour ensuite procéder à une décomposition QR. Je souhaite savoir si cela est possible. J'ai essayé de la manière suivante mais ça ne marche pas :

    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
    program entrertableau
     
    implicit none
     
     
    integer :: nblig
    integer :: nbcol
    integer, dimension( : , : ), allocatable :: A
     
     
     write(*,"('Entrez le nbre de ligne de A :')"); read(*,*) nblig
     write(*,"('Entrez le nbre de colonne de A :')"); read(*,*) nbcol
     
    allocate(A(nblig,nbcol))
     
    write(*,"('Entrez A')") A
     
    write(*,*)
    write(*,*) A
     
    stop 'fin'
     
    end program entrertableau


    Si vous avez une indication qui me permettrait de résoudre mon problème, j'en serait très reconnaissant.

    Ps: nous n'avons pas encore vu les fonctions genre OPEN ou autres permettant d'ouvrir un fichier et de lire les données se trouvant à l'intérieur

    Merci d'avance,

    Bien à vous.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut,
    Voici une solution utilisant des boucles :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    program entrertableau
     
    implicit none
    integer :: nblig
    integer :: nbcol
    integer :: i, j
    integer, dimension( : , : ), allocatable :: A
     
    write(*,"('Entrez le nbre de ligne de A :')"); read(*,*) nblig
    write(*,"('Entrez le nbre de colonne de A :')"); read(*,*) nbcol
     
    allocate(A(nblig,nbcol))
     
    print '(a)', 'Entrez chaque coefficient de A (colonne par colonne) :'
    do j = 1, nbcol
        do i = 1, nblig
            read '(i9)', A(i,j)
        enddo
    enddo
     
    print '(a)', 'Voici A :'
    do i = 1, nblig
        do j = 1, nbcol
            print '(i9x$)', A(i,j)
        enddo
        print *
    enddo
     
    deallocate(A)
    stop 'fin'
     
    end program entrertableau

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Salut,


    Merci beaucoup pour ton aide, en effet j'ai utilisé une boucle. Mais j'ai oublié de désallouer mon tableau à la fin. Voilà ce que j'ai fait :

    Code:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    write(*,"('Entrez le nombre de points dont vous connaissez la valeur de la fonction F :')"); read(*,*) nbpoints
     
    if(.not. allocated(ABSCISSES)) then
      allocate(ABSCISSES(nbpoints,1),stat=pballocation )
      if(pballocation .GT. 0) then
         stop " Erreur: probleme memoire "   
      end if
    end if
     
    if(.not. allocated(ORDONNEES)) then
      allocate(ORDONNEES(nbpoints,1),stat=pballocation )
      if(pballocation .GT. 0) then
         stop " Erreur: probleme memoire "   
      end if
    end if
     
    do i=1,nbpoints
      num=i
      write(*,"('Entrer la valeur de l''abscisse de votre point',i5,':')") num
      read(*,*) x
      ABSCISSES(i,1)=x
      write(*,"('Entrer la valeur de l''ordonnee  de votre point',i5,':')") num
      read(*,*) y      
      ORDONNEES(i,1)=y
    end do
     
    write(*,"('Les abscisses de vos points sont :')")
    write(*,*) ABSCISSES
    write(*,*)
    write(*,"('Les ordonnees de vos points sont :')")
    write(*,*) ORDONNEES
    write(*,*)
     
     
    if(.not. allocated(T)) then
      allocate(T(2,nbpoints),stat=pballocation )
      if(pballocation .GT. 0) then
         stop " Erreur: probleme memoire "   
      end if
    end if
     
    do i=1,nbpoints
         T(1,i)=ABSCISSES(i,1)
         T(2,i)=ORDONNEES(i,1)
    end do    
     
    write(*,"('Voila le tableau X contenant les coordonnees de vos differents points :')")
    write(*,*)
    write(*,"('T=')")
    do i=1,2
       write(*,*) T(i,:)
    end do

    Bonne journée !

    Et merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demander à l'utilisateur d'entrer fonction
    Par jeanpierre691 dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/04/2012, 09h09
  2. Réponses: 16
    Dernier message: 04/01/2011, 21h13
  3. Réponses: 2
    Dernier message: 20/01/2007, 16h25
  4. demander à l'utilisateur de remplir les champs d'un objet.
    Par gregory.bts dans le forum Langage
    Réponses: 10
    Dernier message: 10/10/2006, 18h39
  5. [VBA-E] récupérer des infos que l'on demande à l'utilisateur
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/12/2005, 10h14

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