Professional Documents
Culture Documents
com)
CURITIBA
2015
Sumrio
1
1.1
1.2
CRONOGRAMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AULA 1 (20/01/2015) . . . . . . . . . . . . . . . . . . . . . . . . . . .
AULA 2 (22/01/2015) . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
3
2
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
LISTA DE EXERCCIOS
LISTA 1 . . . . . . . . . .
Exerccio 1 . . . . . . . . .
Exerccio 2 . . . . . . . . .
Exerccio 3 . . . . . . . . .
Exerccio 4 . . . . . . . . .
Exerccio 5 . . . . . . . . .
LISTA 2 . . . . . . . . . .
Exerccio 1 . . . . . . . . .
Exerccio 2 . . . . . . . . .
Exerccio 3 . . . . . . . . .
Exerccio 4 . . . . . . . . .
Exerccio 5 . . . . . . . . .
Exerccio 6 . . . . . . . . .
4
4
4
4
5
5
5
5
5
5
6
6
6
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ANEXOS
B.1
B.2
C.1
C.2
C.3
C.4
C.5
C.6
C.7
ANEXO
CAP.1 CAP.2 CAP.3 CAP.4 CAP.5 CAP.7 CAP.8 -
C APOSTILA DE FORTRAN . . . . . . . . . . . . . . . 34
INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . 35
VARIVEIS DO TIPO INTEIRO . . . . . . . . . . . . . . . . 53
VARIVEIS DO TIPO REAL . . . . . . . . . . . . . . . . . . 67
VARIVEIS DO TIPO CARACTER . . . . . . . . . . . . . . 81
ARQUIVOS E FUNES MATEMTICAS INTRNSECAS 93
DECISES E OPES . . . . . . . . . . . . . . . . . . . . . 107
CICLOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
1 Cronograma
1.1 AULA 1 (20/01/2015)
Noes bsicas de programao: O que um algoritmo, tipos de linguagens
existentes e sua utilidade no estudo cientfico.
Linguagem de programao: Pseudo-linguagem, fluxograma, linguagem natural.
Linguagem base: Fortran
Material utilizado: Prog3.pdf (disponvel no anexo A)
2 Lista de exerccios
2.1 LISTA 1
2.1.1 Exerccio 1
Escreva o pseudocdigo, para ler, a partir do teclado, o ano de nascimento de uma
pessoa. Com esse dado, o programa deve fazer o seguinte: (a) calcular e imprimir sua
idade, considerando que estamos no ano de 2015; (b) verificar e imprimir se a pessoa j
tem idade para votar (16 anos ou mais); (c) verificar e imprimir se a pessoa j tem idade
para conseguir a carteira de habilitao (18 ou mais). Veja alguns exemplos de entrada e
sada de dados a partir da execuo do programa:
Exemplo 1:
1998
Idade de 17 anos
Tem idade para votar
No pode ter carteira de habilitao.
Exemplo 2:
1990
Idade de 25 anos
Tem idade para votar
Pode ter carteira de habilitao.
2.1.2 Exerccio 2
Escreva um programa em pseudocdigo, para ler, a partir do teclado, a rea de um
cmodo e escreva a potncia de iluminao necessria para ilumin-lo de acordo com a
seguinte relao: 100 watts para cmodos com 6m2 ou menos , para cmodos com mais
de 6m2 , a potncia de 80 watts para os primeiros 3m2 e mais 15 watts a cada 1m2 de
acrscimo.
Exemplo de execuo:
rea (m2 ): 3
Potncia: 100 watts
rea (m2 ): 7 (nova execuo)
Potncia: 140 watts
rea (m2 ): 8
Potncia: 155 watts
2.1.3 Exerccio 3
Escreva um programa em pseudocdigo, para ler, a partir do teclado, o primeiro
termo e a razo de uma progresso aritmtica, determinar a soma dos seus primeiros cinco
termos. As frmulas que definem os termos e soma de uma progresso aritmtica (PA) so:
an = a1 + (n 1) r
a1 + an
S=
n
2
2.1.4 Exerccio 4
Resolver lista 1 - 2014 de Fortran (Anexo B ) em pseudocdigo.
2.1.5 Exerccio 5
Resolver exerccios 2,3,4 e 5 da Lista 2 - Programao I (Anexo A )
2.2 LISTA 2
2.2.1 Exerccio 1
Escreva o pseudocdigo de um programa que l o nmero de alunos de uma turma
e, para cada aluno, l as suas trs notas, escreve sua mdia aritmtica e, no final, escreve
a mdia da turma.
2.2.2 Exerccio 2
Escreva o pseudocdigo, que mostre as mdias aritmticas dos valores positivos e
negativos fornecidos via teclado. O final da entrada de valores indicado com o valor 0
(zero) que no deve ser considerado no clculo das mdias.
Exemplo de execuo:
1.5 ; 2.0 ; -3.0 ; 1.0 ; -2.5; -5.0; 2.5 ; 0
Mdia dos positivos: 1.75
Mdia dos negativos: -3.5
2.2.3 Exerccio 3
Afrnio tem um peso de 80 kg e est engordando uma mdia de 2 kg por ano.
Enquanto isto, Ermengarda, sua amada esposa, tem 45 kg e est engordando uma mdia
de 3 kg por ano. Faa um programa em pseudocdigo que calcule e imprima quantos anos
sero necessrios para que Ermengarda ultrapasse o peso de Afrnio. O programa deve
tambm imprimir qual ser o peso de cada membro do casal ternura neste momento.
Observe que a evoluo do peso de cada um dos pombinhos uma PA. Tomando-se
n, como o nmero de anos que demora para os pesos serem iguais, use uma das
frmulas do exerccio 2.1.3, para calcular n.
2.2.4 Exerccio 4
Escreva o pseudocdigo de um programa que leia um conjunto de valores inteiros
positivos e imprime na tela quantos nmeros pares e quantos nmeros mpares foram
digitados pelo usurio. O final do conjunto de valores indicado quando o usurio digitar
o valor 0 (zero), que no deve ser considerado na contagem de valores pares ou impares.
Exemplo de execuo:
1 ; 4 ; 35 ; 89 ; 67 ; 54 ;0
2 pares e 4 impares
2.2.5 Exerccio 5
Resolver lista 2 - 2014 de Fortran (Anexo B ) em pseudocdigo.
2.2.6 Exerccio 6
Resolver exerccios 6,7,8 da Lista 2 - Programao I (Anexo A )
Anexos
8/7/12
Algoritmos e Pseudocdigo
INF1005 Programao I
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
algoritmos e pseudocdigo
tpicos
algoritmo definies
representao e resoluo de problemas
representao de programa
pseudocdigo
fluxograma
construes
entrada e sada
condicionais
repeties
2
8/7/12
algoritmos
algoritmo - definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
programa de computador
algoritmo codificado em uma linguagem de programao
4
8/7/12
algoritmo - definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
algoritmo definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
condies iniciais (estado de problema)
como as coisas so
recursos
meios ou mtodos para transformar um estado de problema
8/7/12
exemplo
EX. 01
algoritmo
1.
______________________________________________
2.
______________________________________________
3.
______________________________________________
4.
______________________________________________
5.
______________________________________________
6.
______________________________________________ 7
2.
ir at o local escolhido
3.
4.
fazer o pedido
5.
pagar
6.
aguardar o pedido
7.
comer
8/7/12
Rua 5
Rua 6
Rua 7
Av.1
Av.2
Av.3
Av.4
10
8/7/12
problemas e solues
11
ruas: [4,7]
Rua 5
avenidas: [1,4]
convenes de representao:
Rua 6
posio: (r,a)
obstculo: (r1,a1,r2,a2)
Rua 7
Av.1
Av.2
Av.3
Av.4
condies iniciais:
posio: (7,1)
obstculos: { (6,2,7,2), (4,2,5,2), (5,3,6,3), (6,4,7,4) }
objetivo:
posio: (4,3)
Quais as consequncias dessa representao?
12
8/7/12
algoritmo - exemplo
objetivo: verificar se um aluno est aprovado
(mdia das 3 notas >= 5.0) ou reprovado (caso
contrrio)
13
fluxograma
incio
media
(nota1+nota2+nota3)/3;
pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
no
sim
escreva
(aprovado);
escreva
(reprovado);
fim
14
8/7/12
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
15
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
16
8/7/12
algoritmo exemplo
objetivo: a partir de trs notas de um aluno, verificar se
ele est:
aprovado (mdia >= 5.0)
em prova final (mdia < 5.0 e mdia >= 3.0) ou
reprovado (mdia < 3)
17
incio
media
(nota1+nota2+nota3)/3;
sim
escreva
(aprovado);
no
media >
3.0?
no
sim
escreva
(em prova final);
escreva
(reprovado);
fim
18
8/7/12
incio
media
(nota1+nota2+nota3)/3;
no
sim
media >
3.0?
no
sim
escreva
(aprovado);
escreva
(em prova final);
escreva
(reprovado);
fim
19
fluxograma (corrigido)
objetivo: a partir de trs notas de um aluno,
verificar se ele est:
incio
media
(nota1+nota2+nota3)/3;
sim
escreva
(aprovado);
no
media >=
3.0?
no
sim
escreva
(em prova final);
escreva
(reprovado);
fim
20
10
8/7/12
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
se (media >= 3) ento
escreva aluno em prova final
seno
escreva aluno reprovado
fim-se
fim-se
fim
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno se (media >= 3) ento
escreva aluno em prova final
seno
escreva aluno reprovado
fim-se
fim
21
entrada e
sada
22
11
8/7/12
entrada e sada
pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
23
exerccio
EX. 02
12
8/7/12
condicionais
25
fluxograma
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
se (condio) ento
instruo V1
instruo V2
instruo Vn
seno
instruo F1
instruo F2
instruo Fn
fim-se
instrues
executadas se
a condio for
verdadeira
incio
media
(nota1+nota2+nota3)/3;
media >=
5.0?
sim
escreva
(aprovado);
instrues
executadas se
a condio for
falsa
no
escreva
(reprovado);
fim
26
13
8/7/12
dvidas?
27
exerccio
EX. 03
14
8/7/12
maior que
menor que
29
conjuno (E)
resultado s verdadeiro se
ambos os valores forem
verdadeiros
disjuno (OU)
resultado s falso se ambos
os valores forem falsos
AeB
A ou B
30
15
exerccio
8/7/12
EX. 04
repeties
32
16
8/7/12
fluxograma
incio
leia num
no
num > 0?
fim
sim
leia (nota1, nota2,
nota3);
media
(nota1+nota2+nota3)/3;
no
enquanto a condio
for verdadeira
instruo Vn
fim-enquanto
instrues executadas
sim
escreva
(reprovado);
escreva
(aprovado);
num = num - 1
quando a condio
ou se torna falsa
33
exerccio
EX. 05
variveis
num
incio
num = 0
enquanto (num < 3) faa
escreva num
num= num - 1
fim-enquanto
fim
sada
sada
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
valor
de num a cada iterao
I0
num
I1
I2
I3
I4
I5
I7
I8
I0
num
I1
I2
I3
I4
I5
I6
I7
I8
34
17
exerccio
8/7/12
EX. 06
exerccio
EX. 06
Em que situaes
este programa falha?
36
18
exerccio
8/7/12
EX. 07
exerccio
EX. 07
variveis
f, n
incio
leia n
f=1
enquanto (n > 1) faa
f=f*n
n=n-1
fim-enquanto
escreva f
fim
38
19
8/7/12
dvidas?
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
39
20
incio
media
(nota1+ nota2+ nota3)/3;
media > =
5.0?
sim
escreva
(aprovado);
no
media >
3.0?
no
sim
escreva
(em prova final);
escreva
(reprovado);
fim
variveis
num
incio
num = 0
enquanto (num < 3) faa
escreva num
num= num - 1
fim- enquanto
fim
sada
sada
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
num
I1
I2
I3
I4
I5
I7
I8
I0
I1
I2
I3
I4
I5
I6
I7
num
7. Escreva o pseudocdigo de um programa que l o nmero de alunos de uma turma e, para cada
aluno, l as suas trs notas, escreve sua mdia e, no final, escreve a mdia da turma.
8. Escreva o pseudocdigo ou desenhe o fluxograma de um programa que l um nmero no
negativo e escreve na tela o seu fatorial. Lembrando: n! = n x (n-1) x ... x 1
Pgina 2 de 2
I8
31
Lista 1
1) Faa um programa que mostre um carter qualquer digitado pelo usurio. (Depois
altere o cdigo para mostrar um dia da semana qualquer digitado pelo usurio)
2) Escreva um programa que leia 5 nmeros e imprima a soma dos nmeros lidos.
3) Faa um programa que leia a data de nascimento e o ano atual e mostre:
a) a idade da pessoa em anos
b) a idade da pessoa em meses
c) a idade da pessoa em dias
4) Fazer um programa que l um conjunto de 6 valores, um de cada vez, e imprima o valor
lido, seu quadrado, seu cubo e sua raiz quadrada.
5) Tendo como dado de entrada a altura de uma pessoa, faa um programa que calcule e
mostre seu peso ideal, utilizando a seguinte frmula: peso ideal = (72.7*h) 58
6) Faa um programa que receba como entrada uma determinada temperatura em graus
Celsius e mostre a temperatura em fahrenheit. Fahrenheit = (9/5)*(Celsius) + 32
7) Faa programa que l dois pontos e calcula a distncia entre esses pontos.
8) Faa um programa que leia dois valores inteiros e um valor real calcule e mostre:
a) a soma dos dois nmeros inteiros.
b) a soma dos trs nmeros.
c) o resto da diviso do primeiro nmero inteiro pelo segundo nmero inteiro.
d) o quociente da diviso do primeiro nmero inteiro pelo segundo nmero inteiro.
e) o produto dos trs nmeros.
f) a diviso do terceiro nmero pelo segundo nmero inteiro.
9) Dados os comprimentos dos catetos de um tringulo retngulo, preparar um programa
para determinar e imprimir o comprimento da hipotenusa.
10) Faa um programa em Fortran para construir a tabela de multiplicao de nmeros de
1 a 10 (ex.: 1 x 1 = 1, 1 x 2 = 2, etc.). Onde o valor a ser multiplicado ser dado.
11) Faa um programa FORTRAN que receba, para um aluno, trs notas de provas e
quatro de trabalhos, calcule a mdia parcial (ponderada) sabendo que o peso das medias
32
das provas representa 70% e a mdia dos trabalhos 30%. O programa calcular tambm
a nota mnima para que o aluno passe na prova final, utilizando a frmula apresentada
abaixo. Todos os dados devem ser mostrados.
B.2 Lista 2
1) Elabore um programa para testar se uma senha digitada igual a senha. Se a senha
estiver correta escreva Acesso permitido, do contrario emita a mensagem Voc no tem
acesso ao sistema.
2) Faa um programa que leia 3 nmero inteiro os imprima em ordem crescente
3) Faa um programa que leia os lados de um tringulo retngulo e exiba sua hipotenusa.
Se a hipotenusa for maior que 100 escreva, hipotenusa muito grande, caso contrrio exiba
hipotenusa pequena.
4) Faa um programa que l o nome de um produto, o preo e a quantidade comprada.
Escreva o nome do produto comprado e o valor total a ser pago, considerando que so
oferecidos descontos pelo nmero de unidades compradas, segundo a tabela abaixo:
a) At 10 unidades: valor total
b) De 11 a 20 unidades: 10% de desconto
c) De 21 a 50 unidades: 20% de desconto
d)Acima de 50 unidades: 25% de desconto
5) Faa um programa que leia um nmero inteiro e positivo e mostre uma mensagem
informando se esse nmero par ou impar.
6) Faa um programa que leia o sexo da pessoa (M para masculino e F para feminino),
o peso e a altura e mostre uma mensagem notificando se a pessoa esta acima do peso,
abaixo do peso ou em seu peso ideal utilizando as respectivas frmulas.
peso_ideal_masculino = (72.7h) 58
peso_ideal_f eminino = (62.1h) 44.7
7) Um aluno realizou 3 provas de uma disciplina. Considerando o critrio abaixo, faa um
programa que mostre se ele ficou para exame, se foi aprovado ou se foi reprovado. Se for
para exame, mostrar a nota final e dizer se foi aprovado ou reprovado.
Mdia >=7 - Aprovado
Mdia >= 3 E Media < 7 - Exame
Mdia < 3 - Reprovado
Se for para exame, a nova mdia deve ser:
33
(a) f (x) =
1,
x1
2, 1 < x 2
; (b) f (x) =
x2 , 2 < x 3
x3 ,
x>3
5x+3
x2 16
34
35
Captulo 1. INTRODUO
OBJETIVOS DO CAPTULO
Captulo 1. Introduo
1.3 FORTRAN
Existe uma infinidade de linguagens de programao, por exemplo, Assembly, Cobol, Visual
Basic, Pascal, Java, C++ etc (Ramalho, 2000, p. 114 e 124-30). Elas so usadas para criar os programas,
tambm denominados de softwares ou aplicativos, que so empregados nos computadores. A utilidade
das linguagens de programao pode ser percebida ao se lembrar para que so usados, por exemplo: os
sistemas operacionais Windows, Unix e Linux; os aplicativos Word, Excel, PowerPoint, FrontPage,
CorelDraw, Origin e Acrobat; os navegadores da internet Netscape e Explorer; e os programas dos caixas
automticos dos bancos.
A linguagem FORTRAN, contrao de FORmula TRANslation (Traduo de Frmulas), ainda a
principal linguagem de programao usada em engenharia e aplicaes cientficas (Adams, 2000, p. 1).
Foi criada em 1954. Sua primeira verso comercial surgiu em 1957. As verses do FORTRAN
padronizadas pela ANSI e ISO so:
1) Ano 1966 = FORTRAN 66
2) Ano 1978 = FORTRAN 77
3) Ano 1992 = FORTRAN 90
4) Ano 1997 = FORTRAN 95
1.4 CONVENES
Para melhor entendimento deste texto, as seguintes convenes so adotadas:
1) So mostrados na cor azul links para endereos de sites da internet ou para arquivos que definem
termos e procedimentos importantes para este texto.
2) Comandos de programas ou aplicativos que devem ser executados ao longo do texto so
mostrados em negrito. A vrgula usada para separar uma seqncia de comandos.
3) So apresentados na cor vermelha: os programas, seus dados (entradas) e seus
resultados (sadas).
Captulo 1. Introduo
Captulo 1. Introduo
Captulo 1. Introduo
Captulo 1. Introduo
Captulo 1. Introduo
seguida, deve-se clicar sobre o boto Create. Aps isso, o Fortran criar um diretrio com o nome
do projeto indicado, dentro do diretrio j selecionado, conforme mostrado na Figura 1.9.
Figura 1.9 Fortran com o nome do diretrio criado para o projeto especificado.
1.7 CRIAO E INSERO DO PROGRAMA-FONTE DENTRO DO PROJETO
O processo de edio ou criao de um programa semelhante redao de uma carta com o
aplicativo Word, que um editor de textos. So necessrios dois componentes: um editor de textos para
escrever o programa computacional e um arquivo para guardar o texto no hard disk (HD) do computador.
No caso dos programas computacionais, a carta chamada de programa-fonte e pode ser aberta, editada
ou redigida dentro do Fortran ou em qualquer outro editor de textos. Ao longo deste texto, as palavras
edio, digitao e implementao sero usadas como sinnimos. Para iniciar a edio ou escrita de um
programa-fonte em linguagem FORTRAN necessrio criar e inserir um arquivo dentro do projeto. Isso
feito atravs dos seguintes passos:
1) No menu do Fortran, conforme mostrado na Figura 1.10, executar: Insert, Files into Project
2) Na janela Insert Files into Project, mostrada na Figura 1.11, executar o seguinte:
a) Na opo File Name, digitar o nome do programa-fonte a ser criado; por exemplo, como mostrado
na Figura 1.12, programa01.f90
Sempre deve-se usar f90 como extenso dos nomes dos arquivos do tipo programa-fonte. Ele
indica que o programa est ou ser escrito na linguagem FORTRAN 90 ou 95.
b) Clicar sobre o boto OK
Captulo 1. Introduo
5) Clicar rapidamente duas vezes sobre o nome do programa-fonte que foi inserido
6) Na janela Microsoft Developer Studio, mostrada na Figura 1.14, clicar sobre o boto Yes
7) O programa-fonte inserido no projeto j est pronto para ser editado na subjanela do lado direito do
Fortran, conforme mostrado na Figura 1.15.
Figura 1.13.
Figura 1.14.
Captulo 1. Introduo
10
2) Para gravar ou salvar este texto, no menu do Fortran, executar: File, Save. Em seguida, na
extremidade inferior da janela principal do Fortran, surgir uma mensagem informando o diretrio e o
nome do programa-fonte que foi gravado ou salvo, como mostrado na Figura 1.16.
3) Comentrios sobre este programa:
Captulo 1. Introduo
11
12
(escrito na linguagem dos computadores, usando apenas os algarismos zero-0 e um-1). Uma linguagem de
programao de alto nvel (Ramalho, 2000) como o FORTRAN se constitui numa forma amigvel ou
relativamente fcil de se escrever programas. O aplicativo Fortran PowerStation 4.0, alm do editor de
programas, tambm tem junto um compilador de programas. Para compilar um programa-fonte que est
aberto no editor de textos do Fortran, deve-se executar o seguinte no menu do Fortran: Build, Compile
Aps a compilao, conforme mostrado na Figura 1.17, aparecero trs linhas com mensagens
na subjanela da parte inferior do Fortran:
1) A primeira informa que o Fortran est compilando (Compiling) o programa-fonte.
2) A segunda informa o nome e o diretrio do programa-fonte que est sendo compilado.
3) Finalmente, a terceira informa o nome do programa-objeto (no caso, programa01.obj) que foi gerado
e o nmero de erros (errors) e de avisos (warnings) relativos ao programa-fonte compilado. Se houver
algum erro, o programa-objeto no gerado. Avisos no impedem a gerao do programa-objeto. O
nome do programa-objeto igual ao nome do programa-fonte mas com extenso obj
13
seguinte no Windows: Start, Programs, Windows NT Explorer. Depois, deve-se acessar o diretrio do
projeto, que deve estar dentro do diretrio C:\Msdev\Projects
1.10 GERAO DO PROGRAMA-EXECUTVEL
Aps o processo de compilao, necessrio gerar o programa-executvel, que um arquivo
possvel de ser executado ou rodado pelo computador, como qualquer outro programa ou aplicativo;
por exemplo, os aplicativos Word, Excel, PowerPoint, FrontPage, CorelDraw, Acrobat, e o navegador
Internet Explorer. O programa-executvel resulta da unio do programa-objeto, que foi gerado na
compilao do programa-fonte, com outros programas-objeto da prpria linguagem FORTRAN, que
contm a traduo dos comandos do FORTRAN, como o WRITE e END usados no primeiro programafonte (Figura 1.17).
Para gerar o programa-executvel, deve-se fazer o seguinte no menu do Fortran: Build, Build. Em
seguida, conforme mostrado na Figura 1.18, aparecero duas linhas com mensagens na subjanela da
parte inferior do Fortran:
Captulo 1. Introduo
14
15
2) No ttulo desta janela, com fundo em azul, aparece o nome do programa que est sendo executado e o
diretrio no qual ele se encontra, no caso C:\MSDEV\Projects\programa01\Debug\programa01.exe
3) Dentro desta janela, com fundo em preto, aparece o resultado da execuo do programa. No caso, as
frases Meu primeiro programa em Fortran e Ano 2004. A ordem das duas frases a mesma em que
elas foram colocadas no programa-fonte. Isso ocorre, porque o programa executado do topo para
baixo, linha por linha do programa-fonte.
4) Alm disso, tambm aparece a frase Press any key to continue. Como diz este aviso, basta clicar em
qualquer tecla para continuar. Ao fazer isso, a execuo do programa encerrada.
Captulo 1. Introduo
16
1.13 EXERCIOS
Exerccio 1.1
1) Editar um programa-fonte em FORTRAN para escrever a data atual.
2) Compilar o programa-fonte
3) Gerar o programa-executvel
4) Executar o programa
Exerccio 1.2
1) Repetir o exerccio 1.1 para escrever em linhas diferentes cada um dos seguintes itens: nome, e-mail,
endereo e telefone de uma pessoa.
Captulo 1. Introduo
17
53
OBJETIVOS DO CAPTULO
Conceitos de: variveis do tipo inteiro, atribuio, avisos e erros de compilao, erros de execuo,
comentrios dentro do programa-fonte
18
c) A linha WRITE(*,*) "A" escreve o comentrio que est entre aspas; no caso a letra A.
d) A linha WRITE(*,*) A escreve o valor da varivel A que est armazenado na memria do
computador.
e) A linha END encerra o programa.
6) Ao se compilar o programa, executando Build, Compile, o resultado deve ser o mostrado na Figura
2.1. Deve-se notar na subjanela inferior um aviso (warning) mencionando que o valor da varivel A
no foi definido.
7) Gerar o programa-executvel fazendo Build, Build.
19
2) Comentrios sobre o programa: a nica diferena entre a verso anterior (A) e a atual (B) do
programa02.f90 a incluso da segunda linha, ou seja, A = 3. O sinal de igualdade dentro de um
programa escrito em linguagem FORTRAN utilizado para atribuir o valor que est do lado direito
varivel do lado esquerdo. Portanto, neste caso, o valor 3 atribudo varivel A. Em outras palavras,
o valor 3 armazenado num espao da memria do computador que identificado pelo nome ou
rtulo A, o nome da varivel. Este valor utilizado (3) apenas um exemplo; ele pode ser qualquer
nmero inteiro.
3) Nesta verso do programa, ao se executar Build, Compile, no haver aviso (warning) porque, neste
caso, o valor da varivel A est definido.
4) Gerar o programa-executvel fazendo Build, Build.
5) Ao se executar o programa, atravs de Build, Execute, surge uma janela, mostrada na Figura 2.3,
dentro da qual tem-se:
a) Na primeira linha, a letra A, resultado do comando WRITE(*,*) "A" do programa.
b) Na segunda linha, o valor 3, resultado do comando WRITE(*,*) A do programa e do comando
anterior, A = 3.
c) E na terceira linha, a frase Press any key to continue.
6) Deve-se perceber que o programa executado, linha por linha, da primeira (INTEGER A) at a ltima
(END).
7) Um exemplo de erro de compilao apresentado na Figura 2.4. Ele ocorre devido eliminao do
segundo asterisco da terceira linha do programa. Erros de compilao ocorrem quando os comandos
Captulo 2. Variveis do tipo inteiro
20
2.4,
compilador
do
Fortran
mostra
seguinte
comentrio:
21
END
2) Comentrios sobre o programa: a diferena bsica entre a verso anterior (B) e a atual (C) do
programa02.f90 a juno dos dois comandos WRITE num s, na terceira linha do programa, isto ,
WRITE(*,*) "Valor de A = ", A. Esta forma do comando WRITE usada quando se quer
escrever na mesma linha diversos elementos. No caso, so apenas dois elementos, ou seja, o
comentrio Valor de A = e a varivel A. Os elementos devem ser separados por vrgula.
3) Executar Build, Compile para compilar o programa.
4) Gerar o programa-executvel fazendo Build, Build.
5) Ao se executar o programa, atravs de Build, Execute, surge uma janela, mostrada na Figura 2.5,
dentro da qual tem-se:
a) Na primeira linha, como resultado do comando WRITE(*,*) "Valor de A = ", A do programa,
o comentrio Valor de A = e, na mesma linha, o valor da varivel A, cujo valor atribudo dentro
do programa foi 3.
b) E na segunda linha, a frase Press any key to continue.
2) Comentrios sobre o programa: a nica diferena entre a verso anterior (C) e a atual (D) do
programa02.f90 a incluso da linha A = 4, que atribui o valor 4 varivel A.
3) Executar Build, Compile para compilar o programa.
4) Gerar o programa-executvel fazendo Build, Build.
22
2) Comentrios sobre o programa: em cada linha do programa-fonte, tudo que estiver direita do
smbolo ! (exclamao) no executado pelo programa. So apenas comentrios usados para
esclarecer o que faz cada parte do programa. Isso chamado de documentao interna. Dentro do
editor do Fortran, todos os comentrios ficam na cor verde, como mostrado na Figura 2.6. Um
comentrio pode envolver uma linha inteira do programa, como na primeira da verso E, ou apenas
uma parte, como na quarta linha do programa. Linhas em branco dentro do programa-fonte tambm
no so executadas. Elas equivalem a um comentrio em branco. Um exemplo a terceira linha do
programa02.f90, verso E, na Figura 2.6.
3) Executar Build, Compile para compilar o programa.
4) Gerar o programa-executvel fazendo Build, Build.
5) Ao se executar o programa, atravs de Build, Execute, o resultado o mesmo mostrado na Figura
2.5. Isso ocorre porque as diferenas entre a verso C e a atual (E) do programa02.f90 so apenas os
comentrios e uma linha em branco, que no so executados pelo programa.
6) Para maior clareza e facilidade de compreenso do programa-fonte, recomenda-se que dentro dele
sejam usados comentrios e linhas em branco.
23
24
E = A * B
F = A / B
G = A ** B
WRITE(*,*) "A = ", A
WRITE(*,*) "B = ", B
WRITE(*,*) "A + B = ", C
WRITE(*,*) "B - A = ", D
WRITE(*,*) "A * B = ", E
WRITE(*,*) "A / B = ", F
WRITE(*,*) "A ** B = ", G
END
Nome do smbolo
matemtico em FORTRAN
Operao matemtica
correspondente
Sinal mais
Adio
Sinal menos
Subtrao
Asterisco
Multiplicao
Barra
Diviso
**
Duplo asterisco
Potenciao
25
26
11) Atribuir valores s variveis dentro do prprio programa-fonte no recomendvel. Pois, para alterar
os valores, necessrio ter o programa-fonte, alm de recompil-lo e gerar o programa-executvel a
cada vez. O procedimento mais indicado utilizar o comando READ, apresentado na prxima seo.
2.7 programa03.f90, verso B
1) Dentro do Fortran, alterar o programa03.f90, verso A, para que fique exatamente igual ao texto
mostrado abaixo em vermelho, incluindo as linhas em branco.
INTEGER A, B, C, D, E, F, G
WRITE(*,*) "Entre com o valor de A"
READ(*,*) A
WRITE(*,*) "Entre com o valor de B"
READ(*,*) B
C = A + B
D = B - A
E = A * B
F = A / B
G = A ** B
WRITE(*,*) "A = ", A
WRITE(*,*) "B = ", B
WRITE(*,*) "A + B = ", C
WRITE(*,*) "B - A = ", D
WRITE(*,*) "A * B = ", E
WRITE(*,*) "A / B = ", F
WRITE(*,*) "A ** B = ", G
END
27
c) A linha WRITE(*,*) "Entre com o valor de A" escreve o comentrio que est entre aspas.
d) A linha READ(*,*) A l um valor digitado dentro da janela DOS, aberta durante a execuo do
programa, e o atribui varivel A.
3) Executar Build, Compile para compilar o programa.
4) Gerar o programa-executvel fazendo Build, Build.
5) Ao se executar o programa, atravs de Build, Execute, surge uma janela do tipo DOS dentro da qual
tem-se:
a) Na primeira linha, o comentrio Entre com o valor de A, resultado do comando WRITE(*,*)
"Entre com o valor de A" do programa.
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 6 para a varivel A e, em seguida, clicar na tecla enter.
c) Na terceira linha, o comentrio Entre com o valor de B, resultado do comando WRITE(*,*)
"Entre com o valor de B" do programa.
d) Na quarta linha, o programa pra e fica aguardando que seja fornecido o valor da varivel B,
resultado do comando READ(*,*) B do programa. Para que o programa continue sua execuo
necessrio digitar o valor 2 para a varivel B e, em seguida, clicar na tecla enter.
e) Em seguida, so apresentados os mesmos resultados da verso A do programa03.f90, conforme a
Figura 2.9.
28
diviso por zero. Isso pode ser feito atravs de comentrios que informem ao usurio do programa, na
janela da execuo do programa ou no manual do programa, por exemplo, quais as variveis que no
podem ter valor nulo. Outra forma mais efetiva de evitar diviso por zero ser vista em captulo
futuro.
2.8 FIM DA SESSO
Para concluir o uso do Fortran e do Windows, deve-se executar o seguinte:
1) Para encerrar as atividades com um projeto, basta executar no menu do Fortran: File, Close
Workspace
2) Na janela Microsoft Developer Studio, clicar sobre o boto Yes
3) Para fechar o aplicativo Fortran, basta fazer o seguinte em seu menu: File, Exit
4) Para fechar o Windows, executar: Start, Shut Down
5) Na janela Shut Down Windows, escolher a opo Close all programs and log on as a different
user?. Clicar sobre o boto Yes
2.9 EXERCIOS
Exerccio 2.1
Executar novamente o programa03.f90, verso B, com A = 2 e B = 1. Em seguida, analisar cada
resultado, comparando-o com o valor esperado obtido de um clculo mental, especialmente o caso da
potenciao. No Fortran, para abrir um projeto j existente, como o programa03, basta executar File,
Open Workspace. Em seguida, indicar o diretrio do projeto e selecionar o arquivo que tem o nome
do projeto e extenso mdp, no caso programa03.mdp
Exerccio 2.2
Executar novamente o programa03.f90, verso B, usando nmeros reais, isto , A = 1.5 e B = 0.4.
Nmeros reais so representados com o sinal de ponto para separar a parte inteira da decimal.
Exerccio 2.3
1) Editar um programa-fonte em FORTRAN para executar o seguinte algoritmo (passos):
a) ler trs nmeros inteiros
b) calcular a mdia aritmtica deles
c) escrever os valores lidos e o valor da mdia aritmtica juntamente com comentrios para
identific-los
2) Compilar o programa-fonte
Captulo 2. Variveis do tipo inteiro
29
3) Gerar o programa-executvel
4) Executar o programa com os valores 1, 2 e 3. Em seguida, analisar o resultado da mdia fornecido
pelo programa comparando-o com o valor esperado obtido por um clculo mental.
5) Repetir o item 4 para os valores 1, 1 e 2.
Exerccio 2.4
1) Editar um programa-fonte em FORTRAN para executar o seguinte algoritmo (passos):
a) ler o primeiro valor (inteiro) de uma progresso aritmtica (P.A.), denotado por A1
b) ler a diferena (nmero inteiro) entre dois termos subseqentes da P.A., denotada por D
c) ler o nmero (inteiro) de termos da P.A., denotado por N
d) calcular o ltimo termo da P.A., denotado por AN
e) calcular a soma de todos os termos da P.A., denotado por SN
f) escrever os trs valores lidos e os dois calculados juntamente com comentrios para identific-los
2) Compilar o programa-fonte
3) Gerar o programa-executvel
4) Executar o programa para A1 = 1, D = 3 e N = 5. Os resultados devem ser AN = 13 e SN = 35.
30
67
OBJETIVOS DO CAPTULO
Conceitos de: variveis do tipo real, traduo de expresses algbricas em FORTRAN, mistura de
variveis do tipo inteiro com real, prioridade nas operaes matemticas
3.1 programa03c.f90
Para inicializar as atividades deste captulo, deve-se executar:
1) No Windows: Start, Programs, Fortran PowerStation 4.0, Microsoft Developer Studio
2) Neste captulo ser usado um projeto j existente, no caso o projeto do fim do captulo 2. Para abri-lo,
deve-se executar o seguinte no Fortran:
a) File, Open Workspace
b) Indicar o diretrio do projeto chamado programa03
c) Selecionar o arquivo que tem o nome do projeto e extenso mdp, no caso programa03.mdp
d) Na subjanela do lado esquerdo do Fortran, clicar sobre o sinal + ao lado do nome do projeto;
dever aparecer o nome do ltimo programa-fonte que foi inserido neste projeto
e) Clicar sobre o nome do programa-fonte
f) Edit, Cut para retirar o programa-fonte do projeto. Este comando no deletar o programa-fonte.
Ele apenas o retirar do projeto. Quando se quiser, ele poder ser inserido no projeto novamente,
bastando para isso selecionar o programa-fonte desejado dentro do seu diretrio e usar o comando
Insert, Files into Project.
3) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto chamado programa03 o programa-fonte programa03c.f90
4) Conforme mostrado na Figura 3.1, dentro do espao de edio do Fortran, na subjanela maior,
copiar exatamente o texto em vermelho mostrado na Tabela 3.1.
5) Comentrios sobre o programa:
a) Nos captulos 1 e 2 foram usados os comandos WRITE, END, INTEGER e READ da linguagem
FORTRAN. No programa03c.f90 h um novo comando: REAL. Ele usado para definir variveis
do tipo real, isto , variveis que podem guardar ou armazenar na memria do computador
nmeros reais, positivos ou negativos, como 1.0, 1.0, 1.1, 3.1416 ou 0.003.
31
b) No FORTRAN, nmeros reais so representados com o sinal de ponto para separar a parte inteira
da decimal. Deve-se lembrar que em portugus se usa a vrgula com este fim.
c) A linha REAL A define a varivel A como sendo do tipo real. Este comando reserva um espao na
memria do computador, utilizando o nome ou rtulo A para armazenar um valor real. As demais
linhas do programa j foram comentadas no captulo 2.
Tabela 3.1 Programa03c.f90.
REAL A
WRITE(*,*) "Entre com o valor de A ="
READ(*,*) A
WRITE(*,*) "Valor de A = ", A
END
32
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 1 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
c) Na terceira linha, o comentrio Valor de A = e o valor da varivel A, resultado do comando
WRITE(*,*) "Valor de A = ", A do programa. Deve-se notar que foi fornecido um valor
inteiro para a varivel A, no caso 1. Mas o resultado do programa mostra o valor 1.000000
porque a varivel A do tipo real.
d) Na quarta linha, a frase Press any key to continue. Como diz este aviso, basta clicar em qualquer
tecla para continuar. Ao se fazer isso, a execuo do programa encerrada.
33
34
6) Ao se executar o programa, atravs de Build, Execute, surge uma janela, mostrada na Figura 3.5,
dentro da qual tem-se:
a) Na primeira linha, o comentrio Entre com o valor de A, resultado do comando WRITE(*,*)
"Entre com o valor de A" do programa.
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 2.9 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
c) Nas linhas seguintes, os resultados das variveis D, B e C.
35
1) Nesta seo ser usado um projeto j existente, no caso o projeto da seo anterior. Portanto, deve-se
executar o seguinte no Fortran:
a) Clicar sobre o nome do programa-fonte
b) Edit, Cut para retirar o programa-fonte do projeto.
2) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto chamado programa03 o programa-fonte programa03e.f90
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 3.3.
Tabela 3.3 Programa03e.f90.
REAL A, B, C, D, E, F, G
WRITE(*,*) "Entre com o valor de A"
READ(*,*) A
WRITE(*,*) "Entre com o valor de B"
READ(*,*) B
C = A + B
D = B - A
E = A * B
F = A / B
G = A ** B
WRITE(*,*) "A = ", A
WRITE(*,*) "B = ", B
WRITE(*,*) "A + B = ", C
WRITE(*,*) "B - A = ", D
WRITE(*,*) "A * B = ", E
WRITE(*,*) "A / B = ", F
WRITE(*,*) "A ** B = ", G
END
36
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 1.5 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
c) Na terceira linha, o comentrio Entre com o valor de B, resultado do comando WRITE(*,*)
"Entre com o valor de B" do programa.
d) Na quarta linha, o programa pra e fica aguardando que seja fornecido o valor da varivel B,
resultado do comando READ(*,*) B do programa. Para que o programa continue sua execuo
necessrio digitar o valor 0.4 para a varivel B, por exemplo, e, em seguida, clicar na tecla
enter.
e) Nas linhas seguintes, os resultados das variveis C, D, E, F e G.
37
Smbolo
Nome do smbolo
Operao
1a
( )
Parnteses
Qualquer
2a
**
Duplo asterisco
Potenciao
3a
Asterisco
Multiplicao
Barra
Diviso
Sinal mais
Adio
Sinal menos
Subtrao
4a
Regra
Parnteses so usados para que os clculos sejam executados na ordem que se deseja. Com eles,
a ordem de execuo do parnteses mais interno para o mais externo.
Com duas ou mais potenciaes consecutivas, a ordem de execuo da direita para a esquerda.
O valor que resulta de um clculo envolvendo dois nmeros inteiros tambm um nmero
inteiro, que corresponde parte inteira do nmero real equivalente ao clculo realizado.
Uma operao envolvendo um nmero real com um nmero inteiro resulta num nmero real.
A atribuio de um nmero real a uma varivel do tipo inteiro resulta num nmero inteiro que
trunca a parte decimal do nmero real.
A atribuio de um nmero inteiro a uma varivel do tipo real resulta num nmero real.
Quando se somam ou se subtraem dois nmeros com magnitudes muito diferentes, possvel
que o valor menor seja desprezado. A isso se denomina de erro de arredondamento ou de
truncamento.
A +
H2
A +
B
C
(3.1)
(3.2)
38
H3
A +
C
H4
A +
B
D
C
(3.4)
H5
A +
B
CD
(3.5)
H6
A +
BC D
(3.6)
H9
= (C 3 ) 2
H 10
1
B3
3
(3.3)
(3.7)
(3.8)
3.5 programa03f.f90
1) Nesta seo ser usado um projeto j existente, no caso o projeto da seo 3.3 deste captulo.
Portanto, deve-se executar o seguinte no Fortran:
a) Clicar sobre o nome do programa-fonte
b) Edit, Cut para retirar o programa-fonte do projeto.
2) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto chamado programa03 o programa-fonte programa03f.f90
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 3.6.
4) Comentrios sobre o programa:
a) Nas duas primeiras linhas usado o comando REAL para definir as variveis do tipo real do
programa. Num mesmo programa, pode-se usar um ou mais comandos REAL ou INTEGER.
b) A linha READ(*,*) A, C, B, D do programa usada para ler os valores de quatro variveis. Um
nico comando READ pode ser usado para a leitura de diversos valores que so atribudos a
diversas variveis, que tm que estar separadas por vrgula.
c) As expresses em FORTRAN para as variveis H1 a H6, H9 e H10 correspondem
respectivamente s expresses algbricas dadas pelas Equaes (3.1) a (3.8).
39
) * ( (B**3) ** (1
/ 2.0) )
/ 3
) * ( (B**3) ** (1
WRITE(*,*) "H1
= ", H1
WRITE(*,*) "H2
= ", H2
WRITE(*,*) "H3
= ", H3
WRITE(*,*) "H4
= ", H4
WRITE(*,*) "H5
= ", H5
WRITE(*,*) "H6
= ", H6
WRITE(*,*) "H7
= ", H7
WRITE(*,*) "H8
= ", H8
WRITE(*,*) "H9
= ", H9
/ 2
) )
40
b) Na segunda linha, o programa pra e fica aguardando que sejam fornecidos os valores da variveis
A, C, B e D, resultado do comando READ(*,*) A, C, B, D do programa. Para que o programa
continue sua execuo necessrio digitar quatro valores. Cada valor digitado ser atribudo
respectivamente a uma das quatro variveis, na mesma seqncia. H vrias formas de se entrar
com diversos valores para um nico comando READ: digitando tudo na mesma linha, com cada
valor separado por vrgula ou espao em branco; digitando cada valor e, em seguida, clicando na
tecla enter; ou misturas das trs formas anteriores. A primeira forma foi usada no exemplo da
Figura 3.7 para se entrar com os valores 1, 2, 3 e 4, respectivamente, para as variveis A, C, B e
D.
c) Nas linhas seguintes, os resultados das variveis H1 a H12.
Captulo 3. Variveis do tipo real
41
8) Analisar cada resultado mostrado na Figura 3.7 comparando-o com o valor esperado obtido de um
clculo mental ou com o uso de uma calculadora. Para tanto, devem ser consideradas a escala de
prioridades da Tabela 3.4 e as regras descritas na Tabela 3.5.
9) Executar novamente o programa com outros valores para as variveis A, C, B e D. Analisar cada
novo resultado comparando-o com o valor esperado obtido de um clculo mental ou com o uso de
uma calculadora.
10) Para concluir o uso do Fortran e do Windows, deve-se executar os passos mostrados na seo 2.8 do
captulo 2.
3.6 EXERCCIOS
Exerccio 3.1
+ 5
100
a)
A =
b)
A =
1
10
c)
L =
1
3 I
I2 +
1
J3
1
d)
1 2
J 3
I + 3
L =
1
I 2
1+
I
Para verificar se a resposta de cada item est correta, basta implementar a expresso em FORTRAN num
programa e comparar seu resultado com o valor obtido com uma calculadora para a expresso algbrica
correspondente. Os dois resultados devem ser iguais. Isso tambm vale para o prximo exerccio.
Exerccio 3.2
A = ( ( B**(1.0/2) ) + 5) / 100
b)
A = (1.0/10) + ( B**(1/3.0) )
42
c)
d)
Exerccio 3.3
43
81
OBJETIVOS DO CAPTULO
Funes intrnsecas do FORTRAN para variveis do tipo caracter: ADJUSTL, ADJUSTR, TRIM e
LEN
4.1 programa4a.f90
Para inicializar as atividades deste captulo, deve-se executar:
1) No Windows: Start, Programs, Fortran PowerStation 4.0, Microsoft Developer Studio
2) No Fortran, seguindo o procedimento apresentado na seo 1.6 do captulo 1, criar um projeto do
tipo Console Application com o nome programa04 no diretrio Z:\\SERVER1\Alunos2004_1\login,
onde login deve ser substitudo pelo user name do usurio, isto , a conta particular na rede Windows
do DEMEC/UFPR.
3) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto o programa-fonte programa4a.f90
4) Conforme mostrado na Figura 4.1, dentro do espao de edio do Fortran, na subjanela maior,
copiar exatamente o texto em vermelho mostrado na Tabela 4.1.
5) Comentrios sobre o programa:
a) Nos captulos 1 a 3 foram usados os comandos WRITE, END, INTEGER, READ e REAL da
linguagem FORTRAN. No programa4a.f90 h um novo comando: CHARACTER. Ele usado
para definir variveis do tipo caracter ou string, isto , variveis que podem guardar ou armazenar
comentrios na memria do computador. Estes comentrios podem incluir palavras, nmeros,
smbolos, espaos em branco ou frases. Alguns exemplos so (os contedos das variveis esto
separados por vrgula): UFPR, 5 de abril de 2004, teste de hoje, TM-102, U-20/5%, L&L. As
variveis do tipo caracter tambm so chamadas de alfanumricas porque envolvem letras e
nmeros.
b) No FORTRAN, o contedo ou string de uma varivel do tipo caracter definido entre aspas.
c) A linha CHARACTER A declara a varivel A como sendo do tipo caracter. Este comando reserva um
espao na memria do computador, utilizando o nome ou rtulo A, para armazenar um nico
caracter alfanumrico.
44
b) Na segunda linha, a frase Press any key to continue. Como diz este aviso, basta clicar em qualquer
tecla para continuar. Ao se fazer isso, a execuo do programa encerrada.
45
11) Alterar a primeira linha do programa4a.f90 para ficar igual Tabela 4.2. Compilar novamente o
programa e gerar seu executvel. Executar o programa. Agora, conforme a Figura 4.3, apresentado
o contedo completo da varivel A, j que ele ocupa apenas 18 caracteres e a varivel A foi
dimensionada prevendo at 50 caracteres.
46
4.2 programa4b.f90
1) Nesta seo ser usado o mesmo projeto da seo anterior. Portanto, deve-se executar o seguinte no
Fortran:
a) Clicar sobre o nome do programa-fonte
b) Edit, Cut para retirar o programa-fonte do projeto.
2) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto chamado programa04 o programa-fonte programa4b.f90
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 4.3.
4) Comentrios sobre o programa:
a) A linha CHARACTER(50) A declara a varivel A como sendo do tipo caracter. Este comando
reserva um espao na memria do computador, utilizando o nome ou rtulo A, para armazenar at
50 caracteres alfanumricos.
b) O comando READ do FORTRAN tambm pode ser usado para atribuir valor ou contedo a
uma varivel do tipo caracter, desde que o contedo esteja entre aspas. Um exemplo mostrado na
linha READ(*,*) A.
Tabela 4.3 Programa4b.f90.
CHARACTER(50) A
WRITE(*,*) "Entre com o conteudo de A ="
READ(*,*) A
WRITE(*,*) "Conteudo de A = ", A
END
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o contedo da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar, entre aspas, um contedo para a varivel A, por exemplo, Teste de hoje e,
em seguida, clicar na tecla enter.
c) Na terceira linha, o contedo da varivel A.
Captulo 4. Variveis do tipo caracter
47
48
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o contedo da varivel
LOCAL, resultado do comando READ(*,*) LOCAL do programa. Para que o programa continue
sua execuo necessrio digitar o contedo da varivel LOCAL, por exemplo, Curitiba e,
em seguida, clicar na tecla enter.
c) Na terceira linha, o comentrio Entre com o dia =, resultado do comando WRITE(*,*) "Entre
com o dia =" do programa.
d) Na quarta linha, o programa pra e fica aguardando que seja fornecido o contedo da varivel
DIA, resultado do comando READ(*,*) DIA do programa. Para que o programa continue sua
execuo necessrio digitar o contedo da varivel DIA, por exemplo, 5 de abril de 2004 e,
em seguida, clicar na tecla enter.
e) Na quinta linha, o comentrio Entre com a hora =, resultado do comando WRITE(*,*) "Entre
com a hora =" do programa.
f) Na sexta linha, o programa pra e fica aguardando que seja fornecido o contedo da varivel
HORA, resultado do comando READ(*,*) HORA do programa. Para que o programa continue sua
Captulo 4. Variveis do tipo caracter
49
50
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 4.5.
Tabela 4.5 Programa4d.f90.
CHARACTER(9) A
INTEGER L
WRITE(*,*) "Entre com o conteudo de A ="
WRITE(*,*) "0123456789"
READ(*,*) A
WRITE(*,*) "
0123456789"
WRITE(*,*) "A
=(", A, ")"
=(;
51
52
53
54
93
OBJETIVOS DO CAPTULO
Usar o aplicativo Notepad do Windows para mostrar o contedo de um arquivo durante a execuo de
um programa em FORTRAN
5.1 programa5a.f90
Para inicializar as atividades deste captulo, deve-se executar:
1) No Windows: Start, Programs, Fortran PowerStation 4.0, Microsoft Developer Studio
2) No Fortran, seguindo o procedimento apresentado na seo 1.6 do captulo 1, criar um projeto do
tipo Console Application com o nome programa05 no diretrio Z:\\SERVER1\Alunos2004_1\login,
onde login deve ser substitudo pelo user name do usurio, isto , a conta particular na rede Windows
do DEMEC/UFPR.
3) No Fortran, seguindo o procedimento apresentado na seo 1.7 do captulo 1, criar e inserir no
projeto o programa-fonte programa5a.f90
4) Conforme mostrado na Figura 5.1, dentro do espao de edio do Fortran, na subjanela maior,
copiar exatamente o texto em vermelho mostrado na Tabela 5.1.
5) Comentrios sobre o programa:
a) At aqui o comando WRITE foi utilizado com dois asteriscos dentro do parnteses, isto , foi
usado na forma WRITE(*,*). O primeiro asterisco do comando WRITE representa o local ou
dispositivo que usado para escrever algum comentrio ou resultado do programa. Este
asterisco pode ser substitudo por um nmero. O nmero 6 representa uma janela do DOS, como
aquela que vem sendo usada at aqui para apresentar os resultados dos programas; por exemplo, a
janela mostrada na Figura 5.2. Portanto, o uso de asterisco no comando WRITE equivale a
empregar o nmero 6.
b) A nica diferena entre o programa5a.f90 e o programa3c.f90, da seo 3.1 do captulo 3, o uso
do nmero 6 no lugar do primeiro asterisco dos comandos WRITE.
6) Executar Build, Compile para compilar o programa.
55
inteiro para a varivel A, no caso 1. Mas o resultado do programa mostra o valor 1.000000
porque a varivel A do tipo real.
56
d) Na quarta linha, a frase Press any key to continue. Como diz este aviso, basta clicar em qualquer
tecla para continuar. Ao se fazer isso, a execuo do programa encerrada.
9) O resultado da execuo do programa5a.f90 exatamente igual a do programa3c.f90, da seo 3.1 do
captulo 3. Conforme explicado no item 5a, acima, isso ocorre devido equivalncia completa entre
os comandos WRITE(*,*) e WRITE(6,*).
57
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o contedo da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
Captulo 5. Arquivos e funes matemticas intrnsecas
58
necessrio digitar o valor 1 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
c) Em seguida ocorrer a criao do arquivo saida5b.txt, dentro do diretrio do projeto, como
resultado do comando OPEN(7, file="saida5b.txt") do programa, uma vez que este arquivo
ainda no existe quando o programa5b.f90 for executado pela primeira vez. Este comando
tambm declara que ser usado o nmero 7 no programa como referncia ao arquivo saida5b.txt.
d) Conforme mostrado na Figura 5.4, na primeira linha do arquivo saida5b.txt est escrito o
comentrio Valor de A = e o valor da varivel real A como resultado do comando WRITE(7,*)
"Valor de A = ", A do programa.
e) O arquivo saida5b.txt fechado, isto , nada mais pode ser escrito nele aps o comando CLOSE(7)
do programa.
file="C:\Temp\saida5b.txt"). Compilar
59
Windows NT Explorer para encontrar e abrir o arquivo saida5b.txt, que agora dever estar no
diretrio C:\Temp.
60
d) No editor do aplicativo Fortran, o comando SYSTEM no fica na cor azul por no ser um dos
comandos bsicos da linguagem FORTRAN. O comando SYSTEM utilizado para executar
comandos que interagem com o sistema operacional Windows. Isso permite que, durante a
execuo do programa escrito em FORTRAN, seja realizado o seguinte: executar outros
programas ou aplicativos; criar ou deletar diretrios ou arquivos; e qualquer outro comando
possvel de se executar numa janela do tipo DOS. Para utilizar o comando SYSTEM deve-se
definir uma varivel do tipo inteiro. Depois, usar esta varivel na linha do programa aonde se
deseja executar o comando SYSTEM. Dentro de parnteses e aspas, deve-se incluir a seqncia
de comandos que se deseja executar no Windows.
e) A linha USE PORTLIB declara que a biblioteca chamada PORTLIB ser acrescentada ao programa.
f) A linha VER = SYSTEM ("Notepad saida5c.txt") executa o comando SYSTEM para que o
aplicativo NOTEPAD do Windows abra o arquivo chamado saida5c.txt. A varivel VER, usada
nesta linha, foi definida como uma varivel do tipo inteiro na linha INTEGER VER do programa.
5) Executar Build, Compile para compilar o programa.
6) Gerar o programa-executvel fazendo Build, Build.
7) Ao se executar o programa, atravs de Build, Execute, ocorrer exatamente o mesmo j explicado na
seo anterior para o programa5b.f90. A nica diferena que quase no final da execuo do
programa, o arquivo de resultados, que foi denominado de saida5c.txt, ser aberto automaticamente
pelo aplicativo Notepad para mostrar o seu contedo. Ao se fechar o Notepad, a execuo do
programa5c.f90 ser encerrada.
8) No caso do comando OPEN ser usado para especificar todo o caminho ou o diretrio aonde o arquivo
deve ser criado ou aberto, o comando SYSTEM tambm deve ser adaptado. Por exemplo, se o arquivo
61
saida5c.txt
for
criado
no
diretrio
C:\Temp
com
comando
OPEN(7,
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 10 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
Captulo 5. Arquivos e funes matemticas intrnsecas
62
8) Comparar cada resultado mostrado na Figura 5.8 com o resultado obtido de uma calculadora.
Captulo 5. Arquivos e funes matemticas intrnsecas
63
9) Executar novamente o programa com outro valor para a varivel A. Comparar cada novo resultado
com o obtido de uma calculadora.
10) Os programas-executveis tambm podem ser executados, rodados ou postos para funcionar fora do
aplicativo Fortran. Para testar isso, primeiro, fechar o aplicativo Fortran. Em seguida, utilizando o
aplicativo Windows NT Explorer, copiar o programa-executvel chamado programa05.exe ou
programa05.application para o diretrio C:\Temp. Para executar o programa, basta clicar duas
vezes sobre o arquivo copiado. Como resultado, surgir o arquivo saida5d.txt. O diretrio C:\Temp
apenas um exemplo. O programa-executvel pode ser copiado para qualquer outro diretrio e ser
executado l.
64
Comando
Observao
Y = ABS(X)
Raiz quadrada
Y = SQRT(X)
Exponencial: Y
Y = EXP(X)
= eX
Logaritmo natural
Y = LOG(X)
Logaritmo decimal
Y = LOG10(X)
Sinal
Y = SIGN(X,Z)
Y = MIN(X,Z,W)
Mnimo
Y = MAX(X,Z,W)
Comando
Observao
Seno
Y = SIN(X)
X em radianos
Cosseno
Y = COS(X)
X em radianos
Tangente
Y = TAN(X)
X em radianos
Arco-seno
Y = ASIN(X)
Y em radianos
Arco-cosseno
Y = ACOS(X)
Y em radianos
Arco-tangente
Y = ATAN(X)
Y em radianos
Seno hiperblico
Y = SINH(X)
Cosseno hiperblico
Y = COSH(X)
Tangente hiperblica
Y = TANH(X)
65
66
Exerccio 5.3
1) Editar um programa-fonte em FORTRAN para executar o seguinte algoritmo (passos):
a) ler algumas variveis do tipo real
b) aplicar as funes matemticas da Tabela 5.6 sobre as variveis lidas
c) escrever no arquivo chamado saida_5p3.txt os valores lidos e os resultados calculados com as
funes juntamente com comentrios para identific-los
2) Compilar o programa-fonte
3) Gerar o programa-executvel
4) Executar o programa. Em seguida, comparar os resultados escritos com aqueles obtidos de uma
calculadora.
67
107
OBJETIVOS DO CAPTULO
Comandos do FORTRAN: IF THEN ELSE END IF, SELECT CASE CASE END SELECT
7.1 programa7a.f90
Para inicializar as atividades deste captulo, deve-se executar:
1) Para acessar o programa Fortran, no Windows: Start, Programs, Fortran PowerStation 4.0,
Microsoft Developer Studio
2) No Fortran, seguindo o procedimento-padro, criar um projeto com o nome programa7
3) No Fortran, seguindo o procedimento-padro, criar e inserir no projeto o programa-fonte
programa7a.f90
4) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 7.1.
5) Comentrios sobre o programa:
a) Nesta e na prxima seo so vistas trs formas de uso do comando IF (SE). A primeira
mostrada na Tabela 7.2 e usada em diversas linhas do programa7a.f90. O comando IF usado
para tomar decises com base em condies. Se as condies so satisfeitas, executa-se o
comando que est na mesma linha do IF, caso contrrio, no.
b) Por exemplo, na linha IF ( A <
valor de A for menor do que o valor de B, executado o comando que est aps o parnteses, no
caso, escrever um comentrio. Aquilo que est dentro de parnteses chamado de condio, que
pode ser simples ou composta. Para definir as condies, so usados os chamados operadores
relacionais (Tabela 7.3) e lgicos (Tabela 7.4).
c) Na linha IF ( (A < 0) .AND. (B < 0) ) WRITE(*,*) "A E B sao numeros NEGATIVOS" do
programa, tem-se um exemplo de condio composta. Cada condio simples unida pelos
operadores lgicos .AND. e .OR., que em portugus significam E e OU.
d) Nas condies, alm de variveis, podem ser usados diretamente valores ou expresses
envolvendo valores e variveis.
e) Nas demais linhas do programa, so testados todos os operadores relacionais e lgicos.
6) Executar Build, Compile para compilar o programa.
82
END
8) Ao se executar o programa, atravs de Build, Execute, surge uma janela, mostrada na Figura 7.1,
dentro da qual tem-se:
a) Na primeira linha, o comentrio Entre com os valores de A e B, resultado do comando
WRITE(*,*) "Entre com os valores de A e B" do programa.
83
b) Na segunda linha, o programa pra e fica aguardando que sejam fornecidos os valores das
variveis A e B, resultado do comando READ(*,*) A, B do programa. Para que o programa
continue sua execuo necessrio digitar 1.0 2.0, por exemplo, e, em seguida, clicar na tecla
enter.
c) Em seguida so apresentados os comentrios correspondentes aos comandos IF cujas condies
foram satisfeitas para os valores de A e B.
Tabela 7.3 Operadores relacionais do FORTRAN.
Operador
Significado
<
menor
<=
menor ou igual
>
maior
>=
maior ou igual
==
igual
/=
diferente
Significado
.AND.
.OR.
ou
84
85
b) Nesta seo mostrada e testada a segunda forma de uso do comando IF (SE), cuja sintaxe
apresentada na Tabela 7.6 e usada no programa7b.f90. Esta estrutura do comando IF permite que,
se as condies so satisfeitas, sejam executados diversos comandos do programa escritos em
vrias linhas. Se as condies no so satisfeitas, so executados os comandos que esto entre o
comando ELSE e o END IF.
Tabela 7.5 Programa7b.f90.
REAL A, B, C
REAL D, X1, X2
WRITE(*,*) "Entre com os valores de A, B e C, onde"
WRITE(*,*) "A*(X**2) + B*X + C = 0"
READ(*,*) A, B, C
D = (B**2) - 4.0 * A * C
IF ( D >= 0.0 ) THEN
X1 = ( -B + SQRT(D) ) / ( 2.0 * A )
X2 = ( -B - SQRT(D) ) / ( 2.0 * A )
WRITE(*,*) "A primeira raiz real eh = ", X1
WRITE(*,*) "A segunda
ELSE
X1 = -B / ( 2.0 * A )
X2 = SQRT(ABS(D)) / ( 2.0 * A )
WRITE(*,*) "A primeira raiz complexa eh = ", X1, " + ", X2, " i"
WRITE(*,*) "A segunda
END IF
END
c) Se no existir necessidade de comandos entre o ELSE e o END IF, pode-se usar a estrutura do
comando IF mostrada na Tabela 7.7.
d) Recomenda-se identar, isto , deslocar para a direita os comandos entre o IF (SE) e o ELSE
(SENO), e entre o ELSE e o END IF, para que sejam facilmente visualizados os comandos que
so ou no executados. Um exemplo desta recomendao mostrado no programa7b.f90, na
Tabela 7.5.
Captulo 7. Decises e opes
86
e) As trs formas de uso do comando IF, mostradas nas Tabelas 7.2, 7.6 e 7.7, podem ser combinadas
entre si, cada uma podendo ser inserida dentro das estruturas das outras.
Tabela 7.6 Sintaxe 2 do comando IF.
IF ( condies ) THEN
BLOCO 1 (uma ou vrias linhas de programa com comandos)
ELSE
BLOCO 2 (uma ou vrias linhas de programa com comandos)
END IF
onde condies representa uma ou vrias condies que devem ser satisfeitas para
que o bloco 1 seja executado;
se as condies no forem satisfeitas, o bloco 2 executado.
c) Na terceira linha, o programa pra e fica aguardando que sejam fornecidos os valores das
variveis A, B e C, resultado do comando READ(*,*) A, B, C do programa. Para que o
programa continue sua execuo necessrio digitar 1 5 6, por exemplo, e, em seguida, clicar
na tecla enter.
Captulo 7. Decises e opes
87
88
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 7.8.
Tabela 7.8 Programa7c.f90.
INTEGER A
WRITE(*,*) "Entre com o valor inteiro de A"
READ(*,*) A
SELECT CASE ( A )
CASE ( -1000:1 )
WRITE(*,*) "Valor de A estah entre -1000 e 1"
CASE ( 2, 4 )
WRITE(*,*) "Valor de A eh 2 ou 4"
CASE ( 3 )
WRITE(*,*) "Valor de A eh 3"
CASE ( 5:2000 )
WRITE(*,*) "Valor de A estah entre 5 e 2000"
CASE DEFAULT
WRITE(*,*) "Valor de A eh menor do que -1000 ou maior do que 2000"
END SELECT
END
89
d) Recomenda-se identar, isto , deslocar para a direita cada opo (CASE) e cada bloco para que
sejam facilmente visualizados os comandos ligados a cada opo. Um exemplo desta
recomendao mostrado no programa7c.f90, na Tabela 7.8.
e) Deve-se notar que em todos os comandos WRITE no usado o valor da varivel A.
Tabela 7.9 Sintaxe do comando SELECT CASE.
SELECT CASE ( variavel )
CASE ( valor1 )
BLOCO 1
CASE ( valor2 )
BLOCO 2
CASE DEFAULT
BLOCO DEFAULT
END SELECT
onde valor representa um valor inteiro, alguns valores separados por vrgula ou,
ainda, um intervalo de valores separados por dois pontos;
apenas o bloco de comandos correspondente ao valor da varivel executado.
A varivel de seleo pode ser do tipo inteiro ou caracter. No caso de varivel
caracter, os valores devem ser strings entre aspas.
b) Na segunda linha, o programa pra e fica aguardando que seja fornecido o valor da varivel A,
resultado do comando READ(*,*) A do programa. Para que o programa continue sua execuo
necessrio digitar o valor 10 para a varivel A, por exemplo, e, em seguida, clicar na tecla
enter.
90
91
1) Mostrar na tela uma lista com pelo menos 4 opes de clculo: 1 = mdulo de A; 2 = raiz quadrada de
A; 3 = exponencial de A; 4 = logaritmo de A
2) Ler o valor da opo de clculo desejada
3) Ler o valor real da varivel A
4) Calcular o resultado de A para a opo escolhida pelo usurio
5) Mostrar o resultado de A
92
119
Captulo 8. CICLOS
OBJETIVOS DO CAPTULO
Conceito de ciclo
8.1 programa8a.f90
Para inicializar as atividades deste captulo, deve-se executar:
1) Para acessar o programa Fortran, no Windows: Start, Programs, Fortran PowerStation 4.0,
Microsoft Developer Studio
2) No Fortran, seguindo o procedimento-padro, criar um projeto com o nome programa8
3) No Fortran, seguindo o procedimento-padro, criar e inserir no projeto o programa-fonte
programa8a.f90
4) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 8.1.
Tabela 8.1 Programa8a.f90.
INTEGER A
A = 20
WRITE(*,*) "Valor de A antes do ciclo =", A
DO A = 1, 10, 1
WRITE(*,*) "Valor de A dentro do ciclo =", A
END DO
WRITE(*,*) "Valor de A depois do ciclo =", A
END
5) Neste programa so usados dois novos comandos do FORTRAN: DO e END DO, que definem um
ciclo. Ele so usados para executar vrias vezes uma ou mais linhas do programa. Explicaes gerais
sobre o seu funcionamento so apresentadas na prxima seo.
6) Executar Build, Compile para compilar o programa.
Captulo 8. Ciclos
93
e END DO. Deve-se notar que o valor da varivel A muda a cada repetio do ciclo.
c) Na dcima-segunda linha, o programa escreve o valor da varivel A como resultado da linha
WRITE(*,*) "Valor de A depois do ciclo =", A , que j est fora do ciclo.
Captulo 8. Ciclos
94
Captulo 8. Ciclos
95
c) O nmero de execues (varivel C) do ciclo depende das variveis do tipo inteiro INICIO, FIM e
PASSO, calculado atravs de
FIM
INICIO +
PASSO
= MAX ( B, 0 )
PASSO
(8.1)
(8.2)
onde o resultado da funo MAX(B,0) o maior valor entre a varivel B e o valor zero. O
resultado de C pode ser 0, 1, 2, 3 etc. Portanto, o ciclo pode ser executado uma vez, diversas vezes
ou nenhuma vez.
d) O valor da varivel PASSO pode ser positivo ou negativo; nulo, no. Portanto, pode-se ter um
ciclo cujo valor de A progressivo (PASSO > 0) ou regressivo (PASSO < 0). Se PASSO = 1, seu
valor no precisa ser declarado no comando DO.
e) O valor da varivel A no pode ser alterado nas linhas que esto entre os comando DO e END
DO. Se isso for feito, resultar num erro de compilao.
f) Recomenda-se identar, isto , deslocar para a direita todas as linhas do programa que esto entre
os comandos DO e END DO para que facilmente se perceba os comandos que compem o ciclo.
Exemplos desta recomendao so mostrados no programa8a.f90 (Tabela 8.1) e no
programa8b.f90 (Tabela 8.2).
5) Executar Build, Compile para compilar o programa.
6) Gerar o programa-executvel fazendo Build, Build.
Captulo 8. Ciclos
96
7) Ao se executar o programa, atravs de Build, Execute, surge uma janela do DOS, mostrada na
Figura 8.2, dentro da qual tem-se:
a) Na primeira linha, o comentrio Entre com os valores inteiros de A, INICIO, FIM e PASSO,
resultado do comando WRITE(*,*) "Entre com os valores inteiros de A, INICIO, FIM
e PASSO" do programa.
b) Na segunda linha, o programa pra e fica aguardando que sejam fornecidos os valores das
variveis A, INICIO, FIM e PASSO, resultado do comando READ(*,*) A, INICIO, FIM,
PASSO do programa. Para que o programa continue sua execuo necessrio digitar 20 1 10 1,
Captulo 8. Ciclos
97
Figura 8.4 Resultado do programa8b.f90 para A = 20, INICIO = 20, FIM = 11 e PASSO = 1.
11) Executar novamente o programa com A = 20, INICIO = 12, FIM = 15 e PASSO = 2. Neste caso
tem-se um ciclo progressivo, pois PASSO > 0. At entender, analisar os novos resultados, mostrados
na Figura 8.5, considerando cada linha do programa-fonte e as explicaes descritas no item 4 acima.
12) Executar novamente o programa com A = 20, INICIO = 11, FIM = 20 e PASSO = 1. Neste caso
tem-se um ciclo regressivo, pois PASSO < 0. At entender, analisar os novos resultados, mostrados
na Figura 8.6, considerando cada linha do programa-fonte e as explicaes descritas no item 4 acima.
8.3 programa8c.f90
1) Nesta seo ser usado o mesmo projeto da seo anterior. Portanto, deve-se executar o seguinte no
Fortran:
Captulo 8. Ciclos
98
Figura 8.5 Resultado do programa8b.f90 para A = 20, INICIO = 12, FIM = 15 e PASSO = 2.
Figura 8.6 Resultado do programa8b.f90 para A = 20, INICIO = 11, FIM = 20 e PASSO = 1.
2) No Fortran, seguindo o procedimento-padro, criar e inserir no projeto o programa-fonte
programa8c.f90
3) Dentro do espao de edio do Fortran, na subjanela maior, copiar exatamente o texto em vermelho
mostrado na Tabela 8.4.
4) Comentrios sobre o programa:
a) No programa8c.f90 usado um novo comando do FORTRAN: EXIT. Este comando empregado
para que a execuo de um ciclo seja interrompida e a execuo do programa continue na linha
seguinte ao comando END DO.
b) No programa8c.f90 tambm exemplificado o uso da varivel A em operaes ou clculos dentro
de um ciclo. Conforme j foi mencionado, o valor de A no pode ser alterado por comandos
dentro do ciclo. Mas o valor que a varivel A assume a cada execuo do ciclo pode ser usado em
outros clculos ou variveis.
c) No caso, a varivel SOMA zerada antes do incio do ciclo. A cada execuo do ciclo, seu valor
alterado com o valor atual da varivel A. O mesmo ocorre com a varivel CUBO.
Captulo 8. Ciclos
99
d) Quando a condio estipulada na linha IF ( SOMA > FIM ) EXIT do programa for satisfeita, o
comando EXIT ser executado. Em seguida, a execuo do programa transferida para a linha
WRITE(*,*) "Valor de A depois do ciclo =", A do programa, que a linha seguinte ao
b) Na segunda linha, o programa pra e fica aguardando que sejam fornecidos os valores das
variveis INICIO, FIM e PASSO, resultado do comando READ(*,*) INICIO, FIM, PASSO do
programa. Para que o programa continue sua execuo necessrio digitar 1 10 1, por exemplo,
e, em seguida, clicar na tecla enter.
c) Em seguida so apresentados os resultados correspondentes execuo do programa.
Captulo 8. Ciclos
100
101
Editar um programa-fonte em FORTRAN para calcular e escrever num arquivo o valor de cada termo de
uma progresso aritmtica, cujo problema est definido no exerccio 5.1
Exerccio 8.4
Editar um programa-fonte em FORTRAN para calcular e escrever num arquivo o valor de cada termo de
uma progresso geomtrica, cujo problema est definido no exerccio 6.2
Captulo 8. Ciclos
102