• 0
Sign in to follow this  
VitorFR

Fortran

Question

Olá pessoal, tudo bem .. estou com 2 exercicios de Fortran, porém estou com muitas duvidas...o primeiro é esse:

Escrever um programa em Linguagem Fortran capaz de armazenar nomes 70 de alunos com até 30 caracteres cada um e uma nota para cada aluno na memória do computador. Ao final deverá ser mostrada na tela, uma lista com nomes e notas( o nome e a nota devem estar na mesma linha), em ordem alfabética de nomes.

esse programa eu já fiz, porém não estou conseguindo colocar os nomes em ordem alfabetica..

e o outro exercicio q é esse:

Escrever um programa em Linguagem Fortran capaz de armazenar 48 numeros inteiros em uma matriz de 8 linhas por 6 colunas e outros 48 números reais em uma matriz de 6 linhas por 8 colunas. O programa deverá calcular o produto da segunda matriz pela primeira e mostrar as 3 matrizes devidamente identificadas na tela.

esse programa eu não estou conseguindo multiplicar as matrizes...

se alguém puder me ajudar.. Deus abençoeee abraços..

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0
vai encontrar exemplos nesse link

http://www.dsc.ufcg.edu.br/~icc/Periodo-20...K-Capitulo4.htm

abraço

po amigo obrigado pela ajuda.. mas so que esse link não mostra como eu coloco em ordem alfabetica... se você puder me ajudar.. olha como eu fiz.. tau utilizando estrutra de controle..e so gostaria de saber como eu coloco em ordem alfabetica os nomes...

Program aluno

real,dimension(5):: notas

character(len=30),dimension(5)::nome

integer:: i,j

real:: aux_notas

character(len=30):: aux_nome

do i = 1,5

print *, " Digite o nome: "

read(*,FMT = "(A30)") nome(i)

print *, " Digite a nota:"

read(*,*) notas(i)

enddo

do i = 1,5

print *,nome(i), notas(i)

enddo

do i = 1,4

do j = i+1,5

if (notas(i)> notas(j)) then

aux_notas = notas(j)

notas(j) = notas(i)

notas(i) = aux_notas

aux_nome = nome(j)

nome(j) = nome(i)

nome(i) = aux_nome

end if

enddo

enddo

do i = 1,5

write(*,FMT = "(A30,f4.1)") nome(i),notas(i)

enddo

endprogram

abraços fica com Deus

Share this post


Link to post
Share on other sites
  • 0

não tenho o fortran instalado aqui, mas vou te passar uma rotina em pascal e que voce pode converter para o fortran

Ordenar alfabeticamente

var
  NOME : array[1..10] of string; I, J: integer; X : string;
begin

  writeln('Listagem de nomes');
  writeln;

  { *** Entrada dos Dados *** }
  for I := 1 to 10 do
  begin
    write('Digite o ', I:2, ' o. nome: ');
    readln(NOME[I]);
  end;

  { *** Ordenação dos Nomes *** }
  for I := 1 to 9 do
    for J := I +1 to 10 do
       if (NOME[I] > NOME[J]) then
          begin
             X := NOME[I];
             NOME[I] := NOME[J];
             NOME[J] := X;
          end;

  { *** Apresentação dos Nomes *** }
  writeln;
  for I := 1 to 10 do
    writeln('Nome: ' , I:2, ' --> ', NOME[I]);
  writeln;
  writeln('Tecle <ENTER> para encerrar: ');
  readln;

abraço

Share this post


Link to post
Share on other sites
  • 0
não tenho o fortran instalado aqui, mas vou te passar uma rotina em pascal e que voce pode converter para o fortran

Ordenar alfabeticamente

var
  NOME : array[1..10] of string; I, J: integer; X : string;
begin

  writeln('Listagem de nomes');
  writeln;

  { *** Entrada dos Dados *** }
  for I := 1 to 10 do
  begin
    write('Digite o ', I:2, ' o. nome: ');
    readln(NOME[I]);
  end;

  { *** Ordenação dos Nomes *** }
  for I := 1 to 9 do
    for J := I +1 to 10 do
       if (NOME[I] > NOME[J]) then
          begin
             X := NOME[I];
             NOME[I] := NOME[J];
             NOME[J] := X;
          end;

  { *** Apresentação dos Nomes *** }
  writeln;
  for I := 1 to 10 do
    writeln('Nome: ' , I:2, ' --> ', NOME[I]);
  writeln;
  writeln('Tecle <ENTER> para encerrar: ');
  readln;

abraço

Obrigado amigooo.. mas eu sou iniciante em fortran.. mas para min converter em Fortran é complicado.. você não teria como me da uma ajuda não? porque o professor na faculdade.. não explico como coloca em ordem alfabetica.. e todos os foruns que pedi ajuda.. o pessoal me ajudo em delphi, pascal, e etc.. você não tem como me ajuda a criar em Fortran?

Share this post


Link to post
Share on other sites
  • 0

leia a apostila e substitua os comandos necessarios

exemplo

Pascal

NOME : array[1..10] of string;
I, J: integer; 
X : string;
Fortran
dimension Nome(10)
integer i,j
character*30 X

o resto é com voce ... ok ?

abraço

Share this post


Link to post
Share on other sites
  • 0
leia a apostila e substitua os comandos necessarios

exemplo

Pascal

NOME : array[1..10] of string;
I, J: integer; 
X : string;
Fortran
dimension Nome(10)
integer i,j
character*30 X

o resto é com voce ... ok ?

abraço

Amigo surgiu outra dúvida em outro exercicio.. aquele outro exercicio eu resolvi obrigado.. agora minha duvida é em outro relacionado a matrizes.. eu fiz a matriz multiplicaçao e gostaria de saber porque a matriz B.. do meu exercicio ele não ta na matriz 6 x 8.. na hora de compilar aparece ela como 16 x 5.. ta a estrutura abaixo:

!Escrever um programa em Linguagem Fortran capaz de armazenar 48 numeros inteiros em uma matriz de 8 linhas por 6 colunas e outros 48 números reais em uma matriz de 6 linhas por 8 colunas. O programa deverá calcular o produto da segunda matriz pela primeira e mostrar as 3 matrizes devidamente identificadas na tela.

Program multiplicacao_de_matrizes

integer,dimension(8,6):: M1

real,dimension(6,8):: M2

integer,dimension(3,3):: M3

integer:: i,j

! Valores de entrada da matriz A

do i =1,8

do j =1,6

print *, "Digite o valor da Matriz A", i,j

read(*,*) M1(i,j)

enddo

enddo

print*,"matriz A"

print *, "=============="

do i = 1,8

print *, (M1(i,j), j=1,6)

enddo

!valores de entrada da matriz B

do i = 1,6

do j = 1,8

print *, " Digite o valor da Matriz B", i,j

read(*,*) M2(i,j)

enddo

enddo

print *, "Matriz B"

print *, "=============="

do i = 1,6

print *, (M2(i,j), j =1,8)

enddo

!multiplicacao das matrizes

do i = 1,3

do j = 1,3

M3(i,j) = M2(i,j) * M1(j,i)

enddo

enddo

!ordenaçao da matriz resposta

print *, "matriz resposta"

print*, "========="

do i = 1,3

print *, (M3(i,j), j = 1,3)

enddo

endprogram

puder me ajudar em relaçao a esse erro obrigadoo..

Edited by VitorFR

Share this post


Link to post
Share on other sites
  • 0

Olá amigos, preciso de ajuda urgente pois meu TCC é com Fortran 90 mas não consigo um compilador e editor de texto, eu pretendo por interface gráfica mas as ferramentas que conseguir são muito fracas, Alguém conseguiria me orientar que programa usar e tudo mais? Posso pagar pela ajuda!

meu e-mail: [email protected]

Abração!

Share this post


Link to post
Share on other sites
  • 0

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this