Você está na página 1de 5

UNIVERSIDADE EDUARDO MONDLANE

Fa uldade de Engenharias

Curso: Eng. Civil, El troni a, le tri a, Me ni a, e Qumi a Primeiro teste


Dis iplina: Informti a II Durao : 100 min.
Data: 11.09.2009 Ano: Primeiro

GUIA DE CORREC O OFICIAL

1. (2.5 v) Suponhamos que temos N nmeros inteiros. Faa um uxograma que permite al ular e im-
primir o produto de todos os nmeros pares.

Resposta:

1
2. (2.5 v) Sendo

SOMA, NUM, X variveis reais,


NOME, COR, DIA variveis literais ( ara teres),
TESTE, COD, TUDO vari
veis lgi as

assinalar os omandos de atribuio vlidos e invlidos. Justique as que forem invlidas.

(a) TESTE = COD.OR.X**2.NE.SOMA


(b) SOMA = NUM + 2*X
( ) NOME = 5
(d) COR = 'PRETO' - X**0.5
(e) X = x**2+2*X + 1
(f) NUM = 'A*B*C'
(g) SOMA + 2 = X**2 - SQRT(NUM)

Resposta:

(a) (0.25 v) Vlido.


(b) (0.25 v) Vlido.
( ) (0.5 v) Invlida. As variveis ara teres s podem ser atribuidos a variveis ara teres.
(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.

3. (2.5 v) Diga o que o algoritmo abaixo faz e indique a(s) sua(s) sada(s).

array = (/6, 0, -2, 4, 1/)


do i =2,5
value = array (i)
j =i-1
do while ( j>0. and. array (j) < value)
array (j+1)= array (j)
array(j) = value
j =j-1
end do
array (j+1) =value
print *,array
end do

Resposta: O algoritmo olo a o array dado na ordem de res ente. (0.5 v)


Saidas:

2
6 0 -2 4 1 (0.5 v)
6 0 -2 4 1 (0.5 v)
6 4 0 -2 1 (0.5 v)
6 4 1 0 -2 (0.5 v)

4. (2.5 v) Es reva um programa que al ule a soma e a mdia aritmti a de uma array de 100 nmeros
inteiros introduzidos a partir do te lado. O programa deve apresentar na tela os resultados al ulados
assim omo 100 numeros introduzidos.

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)
PRINT *,array !Imprimindo os numeros do array (0.5 v)
PRINT *, soma, media !Imprimindo a soma e a media (0.5 v)
End Program

5. (2.5 v) Indique a sada do sequinte programa

program exer 3
impli it integer (a-z)
a=30
b=20
=10
if (a.gt.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 (2.5 v)

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 GT ) then
maximo = a
else
maximo =
end if
else
if ( b .<. ) then
max = b
else
max =
end if
endif
write (*,*) 'O maximo e:' max
END program estruturas

Resposta:

(0.5 v) Linha 7: No operador GT falta olo ar .. Deveria ser .GT."


(0.5 v) Linha 13: Ao usar o sinal '>' nao olo ar entre '.'
(0.25 v) Linha 14: A varivel 'max' no foi de larada.
(0.25 v) Linha 16: A varivel 'max' no foi de larada.
(0.5 v) Linha 19: Falta ',' depois de 'O maximo e:'.
(0.5 v) Linha 19: A varivel max no foi de larada.

7. (2.5 v) Es reva um programa em FORTRAN para gerar os 20 primeiros termos da srie de FI-
BONACCI. Lembrar que o omportamento da srie de Fibona i o seguinte: A partir do ter eiro
(In lusive) ada termo obtido somando-se os dois ante essores, i.e, 1, 1, 2, 3, 5, 8, 13, 21, 34,. . .

Resposta:

4
PROGRAM FIBONACCI
impli it none
INTEGER :: a(20), i (0.25 v)
a(1)=1 ! Primeiro termo de FIBONACCI (0.25 v)
a(2)=1 ! Segundo termo de FIBONACCI (0.25 v)
PRINT *,a(1),a(2) ! Imprimindo os dois primeiros termpos (0.25 v)
DO i=3,20
a(i)=a(i-2)+a(i-1) ! Cal ulando os outros termos (0.5 v)
PRINT *,a(i) ! Imprimeiro os outros termos (0.5 v)
END DO
END PROGRAM FIBONACCI

8. (2.5 v) Es reva um programa em Fortran que permite al ular e imprimir a soma das matrizes Ann
e Bnn , onde n = 3.

Resposta:

Program SomaMatrizes
INTEGER :: n=3, A(n,n), B(n,n), i, j, soma(n,n) (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.25 v)
PRINT *,'B[',i,j,'='
READ *,B(i,j) !Preen hendo a matriz B (0.25 v)
END DO
END DO
DO i=1,n
DO j=1,n
SOMA(i,j) = A(i,j)+B(i,j) !Cal ulando a soma dos elementos (1.0 v)
END DO
END DO
PRINT *,SOMA !Imprimindo a matriz soma (0.5 v)
End Program

O grupo de Dis iplina: Jos Nhavoto, MS & Roxan Cadir, Enga.