Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fa uldade de Engenharias
CORRECO OFICIAL
1. (2.5 v) Suponhamos que temos N nmeros inteiros. Faa um uxograma que permite
al
ular e im-
primir a soma e a mdia aritmti
a de todos os nmeros pares e de todos os nmeros mpares.
Resposta:
2. (2.5 v) Sendo
1
assinalar os
omandos de atribuio vlidos e invlidos. Justique as que forem invlidas.
(a) NOME = 5
(b) SOMA = NUM + 2*X
(
) TESTE = COD.OR.X**2.NE.SOMA
(d) COR = 'PRETO' - X**0.5
(e) X = X + 1
(f) NUM = 'A*B*C'
(g) SOMA + 2 = X**2 - SQRT(NUM)
Resposta:
(a) (0.5 v) Invlida. As variveis
ara
teres s podem ser atribuidos a variveis
ara
teres.
(b) (0.25 v) Vlido.
(
) (0.25 v) Vlido.
(d) (0.5 v) Invlida. Nas variveis
ara
tere no podem apare
er expresses aritmti
as.
(e) (0.25 v) Vlido.
(f) (0.25 v) Invlida. As variveis inteiras s podem ser atribuidos a variveis inteiras.
(g) (0.5 v) Invlida. A expresso a esquerda da atribuio no pode
onter expresses aritmti
as.
program exer
3
impli
it integer (a-z)
a=10
b=20
=30
if (a.lt.b) then
write (*,*) ' a<b'
a=b+10
else
write (*,*) ' a>b'
b=a-5
end if
if (
.ge.20) write(*,*)'
=',
, a, b
end
Resposta:
a<b (1.0 v)
= 30 30 20 (1.5 v)
2
4. (2.5 v) Es
reva um programa que
al
ule a mdia aritmti
a dos elementos de um array unidimensional
de 100 elementos e apresente a matriz na tela assim
omo a soma e a mdia dos elementos da matriz.
Resposta:
Program teste1
INTEGER :: array(100), i, soma=0 (0.5 v)
REAL :: media
DO i=1,100
PRINT *,'ARRAY[',i,'='
READ *,array(i) !Lendo os numeros para preen
her o array (0.25 v)
soma = soma + array(i) !Cal
ulando a soma (0.25 v)
END DO
media = soma/100 !Cal
ulando a media (0.25 v)
DO i=1,100
PRINT *,array(i) !Imprimindo os numeros do array (0.5 v)
END DO
PRINT *, soma, media !Imprimindo a soma e a media (0.5 v)
End Program
5. (2.5 v) Es
reva um programa em Fortran que permite
al
ular e imprimir a soma dos elementos das
diagonais prin
ipais das matrizes Ann e Bnn , onde n = 4.
Resposta:
Program SOMADIAGONAIS
INTEGER :: n=4, A(n,n), B(n,n), i, j, SUMA=0 (0.25 v)
DO i=1,n
DO j=1,n
PRINT *,'A[',i,j,'='
READ *,A(i,j) !Preen
hendo a matriz A (0.5 v)
PRINT *,'B[',i,j,'='
READ *,B(i,j) !Preen
hendo a matriz B (0.5 v)
END DO
END DO
DO i=1,n
DO j=1,n
IF(i==j) THEN
SOMA = SOMA + A(i,j) + B(i,j) !Cal
ulando a soma dos elementos (0.5 v)
END IF !das diagonais das matrizes
END DO
END DO
PRINT *,SOMA !Imprimindo os elementos da soma (0.5 v)
End Program
3
6. (2.5 v) En
ontre os erros, se existirem, no seguinte programa.
PROGRAM estruturas
impli
it none
real a, b,
, maximo
write(0, * ) 'Determ. do maximo de 3numeros a,b,
?'
read( *, * ) a, b,
if ( a .gt. b ) then
if ( a .>.
) then
maximo = a
else
maximo =
end if
else
if ( b .GT.
) then
max = b
else
max =
end if
endif
write (*,*) 'O maximo e:' max
END program estruturas
Resposta:
7. (2.5 v) Es
reva um programa em FORTRAN para ler 25 nmeros reais quaisquer e imprimir o menor,
o maior, a diferena entre o primeiro e o ltimo nmeros, e o produto entre o qunto, mdio e o vigzimo
nmeros.
Resposta:
PROGRAM MinMaxDifProd
impli
it none
REAL :: a(25), menor, maior, diferen
a, produto (0.25 v)
INTEGER :: i
DO i=1,25
PRINT *,'a[',i,'='
READ *,a(i) !Lendo os 25 numeros reais (0.5 v)
4
END DO
menor=a(1) (0.25 v)
maior=a(1) (0.25 v)
DO i=1,25
IF(a(i)<menor) THEN
minimo=a(i) !Pro
ura do menor (0.25 v)
ENDIF
IF(a(i)>maior) THEN
maximo=a(i) !Pro
ura do maior (0.25 v)
ENDIF
END DO
diferen
a = a(1)-a(25) !Cal
ulando a diferen
a (0.25 v)
produto = a(5)*a(12)*a(20) !Cal
ulando a diferen
a (0.25 v)
PRINT *,menor,maior,diferen
a,produto (0.25 v)
END program MinMaxDifProd
8. (2.5 v) Diga o que o algoritmo abaixo faz e indique a(s) sua(s) sada(s).
3 0 -1 2 1 (0.5 v)
3 0 -1 2 1 (0.5 v)
3 2 0 -1 1 (0.5 v)
3 2 1 0 -1 (0.5 v)
O grupo de Dis iplina: Jos Nhavoto, MS ; Roxan Cadir, Enga.; Anselmo Nhane, dr.; Mar ia Juvane, MS .