Você está na página 1de 6

Exerccios Data Modeling

I Algoritmos
1. Construir um algoritmo, em pseudo-cdigo, para calcular o mnimo mltiplo comum entre 2
inteiros X e Y
2. Construir um algoritmo, em pseudo-cdigo, para determinar se um dado nmero inteiro X
primo.

II Constantes, Tipos, Variveis e Expresses


1. Diga, justificando, se as seguintes expresses esto correctas em VISUAL BASIC. No
caso de estarem correctas diga qual o seu tipo e valor.
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)

5*9\3
(ASC(G) ASC(A) ) MOD 3
CHR(13) * CHR(12)
INT(SQR(7) +1)^2
MID(JOANA,3,3)
LEFT(MARIA,3) & MID(TROCAR,4,2) & RIGHT(CORREDOR,3)
(21 \ 2) * SQR(4)
SQR(16)*(2 MOD 3)
NOT(5>2) OR (5 \ 2 =1)
(5 \ 2 >1) AND NOT(A>B)
ABS(-3)*INT(3.9)*ROUND(3.1)
l) CHR(ASC(B)+2)
m) INT(1 + 49 * RND)

2. Considere as seguintes declaraes:


TYPE TpProduto
EAN as string*13 Cd. produto
Nome as string
QuantVendaSemanal ( 1 TO 52) as integer
PrecoVendaSemanal(1 TO 52) as single
END TYPE
DIM produto as TpProduto
DIM ConjProdutos (1 TO 20) as TpProduto
Diga, justificando, se as seguintes expresses esto correctas. No caso de estarem correctas
indique o seu tipo
a) TpProduto.nome
b) produto.nome
c) produto(3).EAN
d) ConjProdutos(21).nome
1

e) ConjProdutos.QuantVendaSemanal(3)
f) ConjProdutos(12).nome
g) ConjProdutos(10).PrecoVendaSemanal(25)

III Instruo IF e CASE


1. Qual o output dos seguintes troos de programa :
a)
X=1
Y=2
If Y>1 then
X=0
Else
If Y>0 then
X=-1
Else
X=-2
End if
End if
call msgbox(X)
d)
X=2
Y=3
Select Case X
Case 1 TO 0
Y =-1
Case 1 TO 2
Y=2
Case 2 TO 5
Y=3
End select
call Msgbox(Y)

b)
X=1
Y=2
If Y>1 then
X=0
End if
If Y>0 then
X=-1
End if
call msgbox(X)

c)
X=1
Y=2
If (X>0) AND (Y<0) then
X=0
Else
If Y>3 then
X=-1
End if
End if
call msgbox(X)

e)
X=2
Y=3
Select Case X*Y
Case 1 TO 3
Y=-Y
Case 2 TO 5,7,8 TO 10
Y=2*Y
Case 4,6
Y=0
End select
call Msgbox(Y)

2. Considere os seguintes escales de classificao de estabelecimentos tendo em conta a sua


rea :
0 a 49 m2 Mercearia
50 a 399 m2 - Livre Servio
400 a 999 m2 - Super Pequeno
1000 a 2499 m2 - Super Grande
>=2500 m2 - Hipermercado
Escreva um programa que, dada a rea de um estabelecimento, o classifique segundo o
critrio referido usando:
a) Instrues IF b)Instrues CASE
Obtenha o valor da nota com InputBox e d a resposta com MsgBox
2

3. Construa um programa que receba um nmero inteiro entre 0 e 10 e devolva o


correspondente valor por extenso.
4. So as seguintes as regras de avaliao de uma dada cadeira :
1 Teste - 40% nota final
2 Teste - 40% nota final
Os dois melhores de trs minitestes - 20%
Construa um programa que leia o valor das 5 avaliaes e diga qual a nota final
correspondente.
Para os exerccios 2,3 e 4 obtenha os dados atravs de um InputBox e d a resposta com
MsgBox
IV Instrues FOR, DO WHILE e DO LOOP UNTIL
1. Qual o output dos seguintes troos de programa :
a)
Y=4
for X=-1 to 1
Y=Y-2*X
next
MsgBox Y

b)
b=5
for a=3 to 1 step -1
b=b + 2 * a
next
MsgBox b

d)
X=16
Y=2
Do While X MOD Y = 0
X=X-1
Y=Y+1
loop
MsgBox X
MsgBox Y

e)
X=1724
C=0
Do
X=X \ 10
C=C+1
Loop Until X=0
MsgBox C

c)
X=0
Y=0
Do While X*Y = 0
X=X+1
Y=Y+X-1
loop
MsgBox X
MsgBox Y
f)
X=6
C=9
Do
X=X+1
C=C-1
Loop Until X MOD C = 0
MsgBox X
MsgBox C

2. Transforme
a) O ciclo da alnea e) num ciclo DO WHILE equivalente
b) O ciclo da alnea d) num ciclo DO LOOP UNTIL equivalente.
c) O ciclo da alnea a) num ciclo DO WHILE equivalente.
3. Escreva um programa que preencha as clulas A1:A10 com valores inteiros aleatrios entre
1 e 100
a) Usando um ciclo FOR
b) Usando um ciclo DO WHILE
c) Usando um ciclo DO LOOP UNTIL

4. Escreva um programa, que mostre nas duas primeiras colunas de um worksheet, o cdigo
ASCII e respectivo caracter, para todos os caracteres com cdigo ASCII entre 32 e 255.
3

a) Usando um ciclo FOR


b) Usando um ciclo DO WHILE
c) Usando um ciclo DO LOOP UNTIL
5. Construa um programa que leia um nmero inteiro (X) e diga quantos dgitos tem esse
numero. (fazer numericamente sem usar strings).
6. Crie um programa que preencha uma grelha (range) de 9x9, com nmeros inteiros aleatrios
entre 1 e 9
a) Usando um ciclo FOR
b) Usando um ciclo DO WHILE
c) Usando um ciclo DO LOOP UNTIL
V Procedimentos e Funes
1. Construa um quadro com o valor das variveis ao longo da execuo dos seguintes
programas assinalando os vrios outputs. O cdigo executado quando se carregar no boto
Button1
a)
Function Mult(ByVal x as integer, ByVal y as integer) as integer
Mult = x*(y \ x)
End function
Sub CommandButton1_Click()
Dim x as integer,y as integer,c as integer
Dim d as integer,z as integer
x=4
y = 15
if y<x then
z=x
else
z = Mult(x,y)
end if
call MsgBox(z)
c =1
d =x
do while d <= z
c=c+1
call MsgBox(d)
d=c*x
loop
End sub

b)
Sub P(ByRef b As Integer, ByVal c As
Integer)
Dim x As Integer
x = b Mod c
If x = 0 Then
b=b-1
End If
End Sub
Private Sub CommandButton1_Click()
Dim x As Integer, y As Integer
x=7
y=1
Do
Call P(x, y)
y=y+x\3
Loop Until x = y
call MsgBox (x)
End Sub

2. Considere as seguintes declaraes de variveis e subprogramas :


Dim x as integer
Dim r as double
Function Pot(x as double,y as double) as double
sub DesenhaRectangulo(larg as integer,alt as integer,c as string)
Quais das seguintes instrues esto correctas ? Justifique
a) DesenhaRectangulo
b) R = Pot(R,X)
c) DesenhaRectangulo 12, 5, X
d) R = DesenhaRectangulo(10,5,X)
e) DesenhaRectangulo(INT(Pot(2,3)),5,X);
f) Call Pot(2,4)
g) R = Pot(Pot(2,3),2)
3. Construir uma nova funo em Excel para obter a primeira palavra de uma frase.
4. Construir uma nova funo em Excel para obter a ultima palavra de uma frase.
5. a) Criar as funes no Excel e chamar de um worksheet. b) Criar um subprograma, chamado
por um boto, para pedir ao utilizador uma frase e mostrar no cran a primeira e ltima
palavra dessa frase.
6. Mesmo que o exerccio III-3 mas usando uma funo.
7. Construa uma funo que receba um nmero inteiro e devolva o produto do primeiro pelo
ltimo digito desse nmero. a) Use a funo no Excel. b) Construa um troo de programa
que pea ao utilizador para introduzir um nmero inteiro e mostre no cran o produto do
primeiro pelo ltimo digito desse nmero.
8. Construa uma funo que receba uma frase e informe se a primeira e ltima letra da frase so
iguais
9. Construa um troo de programa que pea ao utilizador para introduzir uma frase e que
(usando a funo da alnea anterior) mostre uma mensagem dizendo se a primeira e ltima
letra da frase so ou no iguais.
10.Crie uma funo que receba uma palavra e diga se essa palavra ou no simtrica. A palavra
considerada simtrica se se ler da mesma maneira da esquerda para a direita e da direita
para a esquerda. Exemplo : MATAM uma palavra simtrica.
11.Crie uma funo que receba um nmero inteiro e devolva a soma dos quadrados dos seus
dgitos. Se o nmero for 723 a funo dever devolver 72 + 22 + 32
12.Troo de programa que pea ao utilizador para introduzir um nmero inteiro e, recorrendo
funo anterior, mostre no cran a soma dos quadrados dos seus dgitos.
13.Construir uma funo que receba uma frase e diga qual a maior sequencia de caracteres
iguais seguidos. Exp. Se entrar aabbbbccab, a funo dever devolver 4. Crie uma nova
funo para verificar o mesmo mas numa range (range com uma s coluna).
14.Construir uma nova funo em Excel que receba uma range e devolva um valor aleatrio
extrado dessa range. Como resolveria em Excel sem recorrer a programao?
15.Construir uma funo que receba uma range e devolva a soma dos valores pares contidos
nessa range. Assumir que a range s tem valores inteiros)
5

16.Alterar a funo anterior de forma a ser devolvida a soma dos pares ou dos impares.
17.Crie uma funo que receba uma range(coluna) e devolva o nmero de valores nicos
existentes nessa range.
18.Crie uma funo que receba uma range(coluna) e devolva 6 valores, extrados
aleatoriamente dessa range, sem repeties.
19.Crie uma funo para verificar se uma matriz quadrada (range com igual nmero de linhas e
colunas) simetrica. Uma matriz simetrica se M = MT, em que MT representa a matriz
transposta de M.
20.Crie uma funo que receba uma range contendo valores numricos e devolva o valor que
mais se afasta da mdia de todos os valores.
VI Exerccios EXCEL
1.

2.

3.

4.

Considere a expresso X7+2X3-3Y. Descubra os valores de X que anulam a expresso


para todos os valores de Y inteiros entre 3 e 18. Nota: Grave uma macro usando o Goal
Seek e automatize para todos os valores de Y.
Criar um subprograma que apague todas as linhas, da sheet1, cuja primeira clula
contm um valor negativo. O programa deve comear na linha 1 e continuar at
encontrar uma clula vazia na 1 coluna.
Criar um subprograma que copie todos os valores, superiores a 10, da coluna A do
sheet1 para a coluna A do sheet2. O programa deve parar quando for encontrada a
primeira clula vazia. Nota: a coluna A de sheet2 deve ser limpa antes de ser feita a
cpia.
Associe o procedimento anterior a um evento, de forma a que os valores sejam
copiados/actualizados sempre que for seleccionado o sheet2.

Você também pode gostar