Académique Documents
Professionnel Documents
Culture Documents
Subprogramao
Observaes: Para todos os exerccios voc deve: (i) caprichar na formatao dos dados
e mensagens, ou seja, deixe as entradas e sadas com aparncia profissional; (ii) comentar
o cdigo fonte produzido; e (iii) utilizar variveis com identificadores auto-explicativos.
Acostume-se a isso, pois ser cobrado!
3. Escreva um programa FORTRAN que pede para o usurio informar N valores inteiros.
N dever ser definido como PARAMETER no programa principal. Uma vez lidos os
valores, o programa dever reorganiz-los em ordem decrescente. Por fim, o programa
dever exibir o resultado da reorganizao. Utilize subprogramao sempre que
possvel.
4. Escreva um programa FORTRAN que leia dois vetores de 10 posies, ordene cada
vetor individualmente em ordem crescente, e combine os dois vetores gerando um
novo vetor de 20 posies, de forma que esse novo vetor j seja criado ordenado. Ao
final, mostre o vetor criado. Utilize subprogramao sempre que possvel.
5. Escreva um programa FORTRAN que pea ao usurio que sejam informados dois
valores inteiros e uma das quatro operaes bsicas da matemtica, execute a
operao e mostre o resultado. O fluxo de processamento do programa deve estar
estritamente de acordo com o seguinte fluxograma:
Incio
R ExecutarOp(A, Op, B) R
Fim
A sub-rotina LerValor deve pedir para o usurio que seja informado um nmero
inteiro com at trs dgitos. A sub-rotina receber este valor dentro de uma varivel do
tipo caractere de tamanho 3. obrigao de LerValor verificar se o texto informado
pelo usurio corresponde a um valor numrico. Para isso, cada caractere deve ser
inspecionado para verificar se esses correspondem aos caracteres 0 a 9. Caso
algum dos caracteres no seja numrico, a sub-rotina deve alertar o usurio e
requisitar um novo valor. Caso seja vlido, a sub-rotina dever converter o texto para
valor numrico inteiro e atribuir este valor ao argumento de LerValor. Dica 1: Utilize a
funo ICHAR(X) para converse um caractere (X) para seu correspondente inteiro na
tabela ASCII e a funo CHAR(I) para converter um valor inteiro (I) para seu
caractere correspondente na tabela ASCII. Dica 2: Utilize a indexao de texto para
obter um subconjunto de caracteres de uma varivel do tipo texto. O uso desta
indexao ilustrado abaixo:
character*20 txt
print *, txt(1:1)
print *, txt(7:7)
print *, txt(12:16)
onde o primeiro print imprime T, o segundo imprime p e o terceiro imprime
teste.
A sub-rotina LerOperacao deve pedir para o usurio que seja informado uma das
quatro operaes bsicas da matemtica, identificadas pelos caracteres +, -, *
e /. Caso o caractere informado pelo usurio seja diferente desses quatro, a sub-
rotina deve alertar o usurio e requisitar a operao novamente. Caso seja vlido, a
sub-rotina dever atribuir o caractere informado ao argumento de LerOperacao.
MeuVetor
T R X S X E O B A !
01 02 03 04 05 06 07 08 09 10
Qual ser a sua configurao aps serem executados os comandos a seguir? Utilize o
mtodo Chins e mostre a simulao passo a passo que voc fez para chegar ao
resultado.
Aux = MeuVetor(6)
MeuVetor(6) = MeuVetor(9)
MeuVetor(9) = Aux
do i = 1, 4
Aux = MeuVetor(i)
MeuVetor(i) = MeuVetor(9 i)
MeuVetor(9 i) = Aux
end do
MeuVetor(6) = MeuVetor(2)
2. Escreva um programa FORTRAN que leia uma matriz X de duas dimenses com N
linhas e M colunas. N e M devero ser declarados como PARAMETER e seu valor
ser definido pelo programador. A matriz X dever ser preenchida por valores inteiros
informados pelo usurio. Ao final, o programa deve apresentar o total de elementos
pares e o total de elementos mpares existentes dentro da matriz. Deve apresentar,
tambm, o percentual de elementos pares e mpares em relao ao total de elementos
da matriz (ex.: Supondo a existncia de 5 elementos pares e 10 elementos mpares,
ter-se-ia 28,6% de elementos pares e 71,4% de elementos mpares).
3. Escreva um programa FORTRAN que leia duas matrizes 32 e mostre, em formato
bidimensional, a matriz resultante da seguinte regra:
5. Faa um programa FORTRAN que l o nome e trs notas para cada aluno de cada
turma de um curso, onde cada turma tem 5 alunos e o curso tem 3 turmas. Ao final,
permita que o usurio informe o nome de um aluno e o programa liste a mdia desse
aluno, ou que o usurio informe uma nota e o programa liste todos os alunos que tm
mdias acima desse valor.
Lista de Exerccios 1
Algoritmos, Pseudocdigo e Fluxograma
4. Sendo h = 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, construa um algoritmo (pseudocdigo) para
calcular o nmero h, sendo o nmero inteiro N fornecido pelo usurio. Seu algoritmo
deve garantir que apenas um valor maior do que zero seja aceito como entrada.
5. Elabore um algoritmo (pseudocdigo) que calcule N! (fatorial de N), sendo que o valor
de N fornecido pelo usurio. Lembre que N sempre um valor inteiro e no negativo.
Logo, seu algoritmo deve evitar que valores negativos sejam aceitos como entrada.
Lembre tambm que N! = 1 2 3 ... (N-1) N, e que 0! = 1 por definio.
7. Joo tem 1,50 metros e cresce 2 centmetros por ano, enquanto Maria tem 1,10 metros
e cresce tem 3 centmetros por ano. Construa um algoritmo (pseudocdigo e
fluxograma) que calcule e imprima quantos anos sero necessrios para que Maria
seja maior que Joo.
8. Faa um algoritmo (pseudocdigo e fluxograma) que pergunte ao usurio quantos
nmeros deseja somar. Em seguida, leia a quantidade informada de nmeros e
apresentar o valor da soma, quantos nmeros so maiores que 7 e quantos nmeros
so maiores que 9.
Pseudocdigo A
variveis
inteiro: codigo
incio
Ler cdigo
variveis
inteiro: codigo
lgico: repete
incio
repete Verdadeiro
12. Faa um algoritmo (pseudocdigo e fluxograma) que calcula a srie de Fibonacci para
um nmero informado pelo usurio. A srie de Fibonacci inicia com os nmeros 1 e 1,
e cada nmero posterior equivale soma dos dois nmeros anteriores.
Exemplo: caso o nmero 9 seja informado, o resultado ser 1, 1, 2, 3, 5, 8, 13, 21, 34.
variveis
inteiro: a, b, c
incio
para a 2 at 8 passo 2 repetir
para b a at 2 repetir
para c 1 at a passo b repetir
Mostrar a, b, c
fim para
fim para
fim para
fim
Disciplina: TCC-00.157 Prog. de Computadores III Turma: A-1 Data: ___/___/______
Professor: Leandro Augusto Frata Fernandes
Exerccios de Fixao
Arquivos
1. Escreva um programa FORTRAN para ler uma matriz 2x2 de um arquivo, calcule e
mostre o seu determinante na tela. Dica: det(M) = M(1,1) * M(2,2) M(1,2) * M(2,1).
Exerccios de Fixao
Subprogramao: Sub-rotinas e Funes
1. Escreva um programa em FORTRAN que pede para o usurio os valores reais que
preenchem uma matriz N M, onde N e M representam, respectivamente, o nmero de
linhas e o nmero de colunas da matriz. N e M devero ser definidos como
PARAMETER no programa principal. Uma vez lida a matriz, o programa dever
calcular sua transposta e exibir tanto a matriz dada como entrada, quanto a transposta
calculada. Para este programa voc dever escrever uma sub-rotina para a leitura,
uma para a transposio, e uma para a escrita das matrizes em formato bidimensional
(conforme feito em exerccios de aulas anteriores de formatao).
Dica: Note que a , utilizada tanto na escrita na matriz de entrada quando n escrita da
matriz transposta.
2. Escreva um programa em FORTRAN que pede para o usurio os valores inteiros que
preenchem uma matriz N M, onde N e M representam, respectivamente, o nmero de
linhas e o nmero de colunas da matriz. N e M devero ser definidos como
PARAMETER no programa principal. Aps a inicializao, o programa deve pedir para
o usurio informar um ndice inteiro indo de 1 a (N M). O programa deve, ento,
mostrar a matriz em formato bidimensional (conforme feito em exerccios de aulas
anteriores de formatao) e, tambm, mostrar o valor armazenado na posio
indexada. A conveno de indexao dada a seguir para o caso em que N = 3 e
M = 4:
01 02 03 04
05 06 07 08
09 10 11 12
Para este programa voc dever escrever uma sub-rotina de inicializao, uma que
converte o valor do ndice inteiro em ndice de linha e coluna e outra para escrever a
matriz informada.
Dica: Note que as rotinas de leitura e escrita so semelhantes s do exerccio anterior.
Reutilize o cdigo.
3. O professor deseja dividir uma turma com N alunos em dois grupos: um com M alunos
e outro com (N - M) alunos. Escreva um programa FORTRAN que l o valor de N e M
e informa o nmero de combinaes possveis.
Dica 1: Nmero de combinaes igual a N! / (M! (N - M)!). Crie uma funo para
calcular fatorial.
Dica 2: No Exerccio 5 da Lista de Exerccios 1 foi pedido a elaborao de um
algoritmo que calcule N!. Reutilize o seu algoritmo.
Exerccios de Fixao
Matrizes
As leituras e escritas devem ser feitas da esquerda para a direita e de cima para baixo.
Ou seja, a ordem dos elementos armazenados dada por:
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
2. Escreva um programa FORTRAN que aceite que o usurio informe uma matriz M de
at 1010 elementos reais. Primeiro o programa perguntar para o usurio quantas
linhas e colunas M ter. Em seguida, os elementos de M sero informados pelo
usurio seguindo a conveno adotada no exerccio anterior. Uma vez que a matriz M
foi preenchida, o programa dever calcular a matriz T como sendo a transposta de M.
Aps o processamento, ambas as matrizes devem ser exibidas.
Exerccios de Fixao
Vetores
Exerccios de Fixao
Introduo ao FORTRAN
variveis
caractere: Nome1, Nome2, Nome3
incio
Ler Nome1
Ler Nome2
Ler Nome3
Mostrar Nome3
Mostrar Nome2
Mostrar Nome1
fim
variveis
caractere: Nome
real: SalarioAtual, Reajuste, NovoSalario
incio
Ler Nome
Ler SalarioAtual
Ler Reajuste
Mostrar Nome
Mostrar NovoSalario
fim
Exerccio 3: O algoritmo l um nmero inteiro e informa se o nmero lido negativo ou
positivo. Aqui, o valor zero considerado positivo.
variveis
inteiro: Numero
incio
Ler Numero
variveis
inteiro: Numero
incio
Ler Numero
variveis
inteiro: V1, V2, V3
incio
Ler V1
Ler V2
Ler V3
se V1 > V2 ento
se V1 > V3 ento
se V2 > V3 ento
Mostrar V1, V2, V3
se no
Mostrar V1, V3, V2
fim se
se no
fim se
se no
se V2 > V3 ento
se V1 > V3 ento
Mostrar V2, V1, V3
se no
Mostrar V2, V3, V1
fim se
se no
fim se
fim se
fim
4. Construa um algoritmo (pseudocdigo) que leia trs nmeros inteiros e diga se esses
nmeros formam um tringulo. Caso formem, indique se o tringulo eqiltero,
escaleno ou isscele. Caso contrrio, emita uma mensagem informando que os
valores no correspondem a um tringulo.
1 7 13 19 25 31 37 43 49 55 61
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
program e05_06
implicit none
end
8. Escreva um programa para ler valores inteiros. O programa termina quando o valor
0 (zero) for lido. Ao final, o programa deve imprimir quantos nmeros lidos so
negativos e quantos so positivos.
9. Escreva um programa para ler o cdigo, nome e preo de produtos. Ele deve imprimir
os dados lidos para cada produto. Utilize uma estrutura ENQUANTO ... REPETIR ...
para a leitura de vrios produtos. O cdigo -1 indica que nenhum novo produto ser
informado. O programa deve garantir que os preos lidos sejam maiores que zero.
Para isso, utilize uma estrutura REPETIR ... ENQUANTO ...
10. Escreva um programa para ler o nome e nota final dos integrantes de uma turma de 10
alunos. O programa deve imprimir a mdia das notas e o nome do aluno que tem a
maior nota. Neste programa, uma estrutura de repetio contvel deve ser utilizada.
11. Escreva um programa para imprimir a tabuada de um nmero inteiro informado pelo
usurio. Uma estrutura de repetio contvel deve ser utilizada.