Sei sulla pagina 1di 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: 08.09.2009 VARIANTE 1 Ano: Primeiro

CORREC O 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

SOMA, NUM, X variveis reais,


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

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.

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

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:

(0.5 v) Linha 7: Ao usar o sinal '>' nao olo ar entre '.'.


(0.5 v) Linha 14: A varivel 'max' no foi de larada.
(0.5 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 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).

array = (/3, 0, -1, 2, 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 na ordem de res ente. (0.5 v)


Saidas:

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 .

Potrebbero piacerti anche