Você está na página 1de 6

Exercícios Data Modeling

I Algoritmos

1. Construir um algoritmo, em pseudo-código, para calcular o mínimo múltiplo comum entre 2


inteiros X e Y
2. Construir um algoritmo, em pseudo-código, para determinar se um dado número inteiro X é
primo.

II Constantes, Tipos, Variáveis e Expressões

1. Diga, justificando, se as seguintes expressões estão correctas em VISUAL BASIC. No


caso de estarem correctas diga qual o seu tipo e valor.
a) 5*9\3
b) (ASC(“G”) – ASC(“A”) ) MOD 3
c) CHR(13) * CHR(12)
d) INT(SQR(7) +1)^2
e) MID(“JOANA”,3,3)
f) LEFT(“MARIA”,3) & MID(“TROCAR”,4,2) & RIGHT(“CORREDOR”,3)
g) (21 \ –2) * SQR(4)
h) SQR(16)*(2 MOD 3)
i) NOT(5>2) OR (5 \ 2 =1)
j) (5 \ 2 >1) AND NOT(“A”>”B”)
k) ABS(-3)*INT(3.9)*ROUND(3.1)
l) CHR(ASC(“B”)+2)
m) INT(1 + 49 * RND)

2. Considere as seguintes declarações:


TYPE TpProduto
EAN as string*13 ‘ Cód. 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 expressões estão 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 Instrução IF e CASE

1. Qual o output dos seguintes troços de programa :


a) b) c)
X=1 X=1 X=1
Y=2 Y=2 Y=2
If Y>1 then If Y>1 then If (X>0) AND (Y<0) then
X=0 X=0 X=0
Else End if Else
If Y>0 then If Y>0 then If Y>3 then
X=-1 X=-1 X=-1
Else End if End if
X=-2 call msgbox(X) End if
End if call msgbox(X)
End if
call msgbox(X)
d) e)
X=2 X=2
Y=3 Y=3
Select Case X Select Case X*Y
Case –1 TO 0 Case 1 TO 3
Y =-1 Y=-Y
Case 1 TO 2 Case 2 TO 5,7,8 TO 10
Y=2 Y=2*Y
Case 2 TO 5 Case 4,6
Y=3 Y=0
End select End select
call Msgbox(Y) call Msgbox(Y)

2. Considere os seguintes escalões de classificação de estabelecimentos tendo em conta a sua


área :
0 a 49 m2 –Mercearia
50 a 399 m2 - Livre Serviço
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


critério referido usando:
a) Instruções IF b)Instruções CASE
Obtenha o valor da nota com InputBox e dê a resposta com MsgBox
2
3. Construa um programa que receba um número inteiro entre 0 e 10 e devolva o
correspondente valor por extenso.
4. São as seguintes as regras de avaliação de uma dada cadeira :
1º Teste - 40% nota final
2º Teste - 40% nota final
Os dois melhores de três minitestes - 20%
Construa um programa que leia o valor das 5 avaliações e diga qual a nota final
correspondente.
Para os exercícios 2,3 e 4 obtenha os dados através de um InputBox e dê a resposta com
MsgBox

IV Instruções FOR, DO WHILE e DO LOOP UNTIL


1. Qual o output dos seguintes troços de programa :
a) b) c)
Y=4 b=5 X=0
for X=-1 to 1 for a=3 to 1 step -1 Y=0
Y=Y-2*X b=b + 2 * a Do While X*Y = 0
next next X=X+1
MsgBox Y MsgBox b Y=Y+X-1
loop
MsgBox X
MsgBox Y
d) e) f)
X=16 X=1724 X=6
Y=2 C=0 C=9
Do While X MOD Y = 0 Do Do
X=X-1 X=X \ 10 X=X+1
Y=Y+1 C=C+1 C=C-1
loop Loop Until X=0 Loop Until X MOD C = 0
MsgBox X MsgBox C MsgBox X
MsgBox Y MsgBox C

2. Transforme
a) O ciclo da alínea e) num ciclo DO WHILE equivalente
b) O ciclo da alínea d) num ciclo DO LOOP UNTIL equivalente.
c) O ciclo da alínea a) num ciclo DO WHILE equivalente.

3. Escreva um programa que preencha as células A1:A10 com valores inteiros aleatórios 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 código
ASCII e respectivo caracter, para todos os caracteres com código 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 número inteiro (X) e diga quantos dígitos tem esse
numero. (fazer numericamente sem usar strings).

6. Crie um programa que preencha uma grelha (range) de 9x9, com números inteiros aleatórios
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 Funções
1. Construa um quadro com o valor das variáveis ao longo da execução dos seguintes
programas assinalando os vários outputs. O código é executado quando se carregar no botão
Button1
a) b)
Function Mult(ByVal x as integer, ByVal y as integer) as integer Sub P(ByRef b As Integer, ByVal c As
Mult = x*(y \ x) Integer)
End function Dim x As Integer
Sub CommandButton1_Click() x = b Mod c
Dim x as integer,y as integer,c as integer If x = 0 Then
Dim d as integer,z as integer b=b-1
x=4 End If
y = 15 End Sub
if y<x then Private Sub CommandButton1_Click()
z=x Dim x As Integer, y As Integer
else x=7
z = Mult(x,y) y=1
end if Do
call MsgBox(z) Call P(x, y)
c =1 y=y+x\3
d =x Loop Until x = y
do while d <= z call MsgBox (x)
c=c+1 End Sub
call MsgBox(d)
d=c*x
loop
End sub

4
2. Considere as seguintes declarações de variáveis 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 instruções estão 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 função em Excel para obter a primeira palavra de uma frase.
4. Construir uma nova função em Excel para obter a ultima palavra de uma frase.
5. a) Criar as funções no Excel e chamar de um worksheet. b) Criar um subprograma, chamado
por um botão, para pedir ao utilizador uma frase e mostrar no écran a primeira e última
palavra dessa frase.
6. Mesmo que o exercício III-3 mas usando uma função.
7. Construa uma função que receba um número inteiro e devolva o produto do primeiro pelo
último digito desse número. a) Use a função no Excel. b) Construa um troço de programa
que peça ao utilizador para introduzir um número inteiro e mostre no écran o produto do
primeiro pelo último digito desse número.
8. Construa uma função que receba uma frase e informe se a primeira e última letra da frase são
iguais
9. Construa um troço de programa que peça ao utilizador para introduzir uma frase e que
(usando a função da alínea anterior) mostre uma mensagem dizendo se a primeira e última
letra da frase são ou não iguais.
10.Crie uma função que receba uma palavra e diga se essa palavra é ou não simétrica. A palavra
é considerada simétrica se se ler da mesma maneira da esquerda para a direita e da direita
para a esquerda. Exemplo : “MATAM” é uma palavra simétrica.
11.Crie uma função que receba um número inteiro e devolva a soma dos quadrados dos seus
dígitos. Se o número for 723 a função deverá devolver 72 + 22 + 32
12.Troço de programa que peça ao utilizador para introduzir um número inteiro e, recorrendo á
função anterior, mostre no écran a soma dos quadrados dos seus dígitos.
13.Construir uma função que receba uma frase e diga qual a maior sequencia de caracteres
iguais seguidos. Exp. Se entrar “aabbbbccab”, a função deverá devolver 4. Crie uma nova
função para verificar o mesmo mas numa range (range com uma só coluna).
14.Construir uma nova função em Excel que receba uma range e devolva um valor aleatório
extraído dessa range. Como resolveria em Excel sem recorrer a programação?
15.Construir uma função 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 função anterior de forma a ser devolvida a soma dos pares ou dos impares.
17.Crie uma função que receba uma range(coluna) e devolva o número de valores únicos
existentes nessa range.
18.Crie uma função que receba uma range(coluna) e devolva 6 valores, extraídos
aleatoriamente dessa range, sem repetições.
19.Crie uma função para verificar se uma matriz quadrada (range com igual número de linhas e
colunas) é simetrica. Uma matriz é simetrica se M = MT, em que MT representa a matriz
transposta de M.
20.Crie uma função que receba uma range contendo valores numéricos e devolva o valor que
mais se afasta da média de todos os valores.

VI Exercícios EXCEL

1. Considere a expressão X7+2X3-3Y. Descubra os valores de X que anulam a expressão


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.
2. Criar um subprograma que apague todas as linhas, da sheet1, cuja primeira célula
contém um valor negativo. O programa deve começar na linha 1 e continuar até
encontrar uma célula vazia na 1ª coluna.
3. 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 célula vazia. Nota: a coluna A de sheet2 deve ser limpa antes de ser feita a
cópia.
4. 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