Ficha nº.1

Propaganda
Excel
Ficha de Trabalho n.º 1
Objectivo: Estudo prático de algoritmos e sua implementação em Visual Basic do Excel.
Introdução:
Um algoritmo pode ser definido como “a sequência lógica de procedimentos tendentes à resolução
dum problema”. Ora a actividade humana, pode ser considerada como uma sequência interminável de
soluções para problemas. Também, como os computadores são utilizados para resolver problemas, desde os
mais simples aos mais complexos, é natural que para que ele os possa resolver, tenhamos de indicar-lhe os
“passos” que deverá realizar. Assim, e antes de criar qualquer pequeno programa, deveremos sempre criar o
“algoritmo” que permita solucionar o problema posto, que o programa depois implementará em termos da
sintaxe da linguagem escolhida.
Como decerto já saberão, a ordem de execução dos procedimentos que permitem a solução dum
problema, normalmente sequencial, pode também efectuar testes a condições e executar um ou outro conjunto
de instruções ou mesmo executar repetidamente um conjunto de instruções, dependendo ou não de uma dada
condição. Pode demonstrar-se que com estes 3 tipos de estruturas, podem resolver-se todos os problemas que
possam ser postos.
Estrutura de um módulo em Visual Basic:
‘OPÇÕES DO VISUAL BASIC
Option Explicit ‘Força declaração explícita de todas as variáveis
‘DECLARAÇÃO DE CONSTANTES DO MÓDULO
Const prato_dia = 1100
‘DECLARAÇÃO DE VARIÁVEIS DO MÓDULO
Dim ementa(2 To 6) As String
‘PROCEDIMENTOS
Sub define_ementa()
Dim dia As Integer
Do
dia = Val(InputBox("Digite o dia da semana [2-Segunda .. 6-Sexta]"))
Loop Until (dia >= 2 And dia <= 6)
ementa(dia) = InputBox("Digite a descrição da ementa")
End Sub
Sub consulta_ementa()
Dim dia As Integer
MsgBox ("EMENTA: " & Chr(13) & "Segunda - " & ementa(2) & Chr(13) & _
"Terça - " & ementa(3) & Chr(13) & "Quarta - " & ementa(4) & Chr(13) & _
"Quinta - " & ementa(5) & Chr(13) & "Sexta - " & ementa(6) & Chr(13)) & _
"Preço = " & prato_dia & "$00"
End Sub
Sub opções()
Dim op As String * 1, resp As Integer
Do
Do
op = UCase(InputBox("Digite a opção [C-Consultar ementa D-Definir ementa]"))
Loop Until (op = "C" Or op = "D")
If op = "C" Then
consulta_ementa
Else
define_ementa
End If
resp = MsgBox("Pretende continuar", vbYesNo)
Loop Until resp = 7
End Sub
Tarefas Propostas:
1. Elabore o algoritmo e implemente-o utilizando a linguagem de programação VB, para resolver
cada uma das seguintes alíneas:
a) Ler duas palavras, correspondentes ao seu primeiro e o último nome, e inverter a sua ordem na
escrita.
b) Ler dois números inteiros e escrever os números em linhas distintas, mas na mesma caixa de
mensagem.
c) Dados dois valores inteiros A e B, calcular a sua média aritmética.
d) Dados os valores do custo unitário, percentagem de lucro e taxa de IVA de um produto,
determinar a margem de lucro, o valor do IVA e o preço de venda ao público.
e) Dados os valores da margem de lucro, do IVA e do preço de venda ao público de um produto,
determinar o custo unitário, percentagem de lucro e taxa de IVA.
f) Determinar o preço final de uma encomenda, dado o preço unitário do produto e sabendo que o
desconto efectuado para encomendas superiores a 90 unidades é 10%.
g) Dados dois números inteiros A e B, determinar qual deles é o maior.
h) Calcular o valor da comissão de um vendedor, sabendo que para quantidades vendidas (QV):
• 50 < QV < 100 a comissão é de 5% do lucro;
• 100 <= QV <= 200 a comissão é de 15% do lucro;
• QV > 200 a comissão é de 25% do lucro.
i) Ler um número entre 1 e 7 e escrever o correspondente dia de semana.
j) Simular uma máquina de calcular que só efectua as operações básicas de adição, subtracção,
multiplicação e divisão entre dois números. Deve ainda impedir a situação de erro resultante da
divisão por zero.
k) Dado o número de dias úteis de um determinado mês, calcular o valor médio de encomendas.
l) Dados os valores das vendas mensais do ano anterior, determinar o valor mínimo das vendas e
o(s) respectivo(s) mês(es).
m) Dados os valores das vendas mensais do ano anterior, determinar o valor máximo, o valor médio
e os meses em que as vendas foram superiores à média.
n) Alterar o exercício anterior por forma a permitir a sua execução enquanto o utilizador o desejar.
o) Dado um número inteiro positivo N, determinar o maior número par P tal que a soma de todos os
números pares inferiores a P seja inferior a N. Por exemplo, se o valor dado N for 57, então o
resultado será P =14, pois 2 + 4 + 6 + 8 + 10 + 12 + 14 = 56. OBS: Garantir que N é positivo.
p) Dado o valor de N compreendido entre o e 9,produzir um triângulo de números de acordo com o
exemplo seguinte para N=4.
1
121
12321
1234321
Tipo de Dados
(em Português)
Tipo de Dados
(em Inglês)
Ocupação
(em bytes)
Intervalo de valores possíveis
2
Booleano
Inteiro
Longo
(Inteiro Longo)
Simples (VF de
Precisão Simples)
Duplo (VF de
Precisão Dupla)
Moeda
Boolean
Integer
Long
2 bytes
2 bytes
4 bytes
Verdadeiro/True ou Falso/False
-32768 a 32767
-2,147,483,648 a 2,147,483,647
Single
4 bytes
Ver manual
Double
8 bytes
Ver manual
Currency
8 bytes
Data
Cadeia
Variante
Objecto
Definida pelo
Utilizador
Date
String
Variant
Object
Definida pelo
Utilizador
8 bytes
1 bytes p/ caracter
Como apropriado
4 bytes
Número requerido
pelos elementos
Valores com 4 casas decimais e até aos
biliões
1 de Jan 0100 até 31 Dez 9999
0 a 65535 ou mais em alguns sistemas
Texto ou valores até Double
Qualquer referência a um objecto
O de cada elemento que constitui o
tipo de dados definido
Principais instruções
InputBox(Prompt [,títulol]
[,valor por defeito] [,x pos][,y pos],
[fich_Ajuda, contexto])
Descrição breve
Instrução de Leitura - Mostra uma caixa de diálogo e espera que
o utilizador escreva texto ou escolha um botão, retornando então
o conteúdo da caixa de texto.
MsgBox(prompt [,botões] [título]
[fich_Ajuda, contexto])
Instruções de Escrita - Mostra uma mensagem numa caixa de
diálogo. O valor devolvido, indica o botão que foi “clicado”
pelo utilizador.
If condição1 Then
instrução1
ElseIf condição2 Then
instrução2
Else
instrução3
End If
Select Case expressão_de_teste
Case lista1expressão
Instruções1
Case lista2expressão
Instruções2
......
Case Else
Instruções
End Select
For contador = início To Fim [Step incr]
Instruções
Next [contador]
Estrutura de selecção - Permite a execução condicional entre
uma ou mais instruções.
Se condição1 for verdadeira, executa a instrução1; senão se a
condição2 for verdadeira executa a instrução2; senão executa a
instrução3
Do While Condição
Instruções
Loop
Do
Instruções
Loop until Condição
Estrutura de selecção - Permite a execução condicional entre
uma ou mais instruções.
Cada listaexpressão é uma lista de um ou mais valores
(separados por vírgulas).
As instruções do Case Else são executadas, se nenhum dos
listaexpressão satisfizer a expressão_de_teste.
Estrutura de repetição equivalente a ciclo Para. É usada quando
o número de iterações pode ser predefinido. O contador vai
sendo incrementado (ou decrementado) do valor dado por incr,
desde um valor inicial (início), até a um valor final (Fim).
Estrutura de repetição equivalente a ciclo Enquanto. Repete as
instruções enquanto a condição for verdadeira (true).
Estrutura de repetição equivalente a ciclo Repetir-Até. Repete as
instruções até que a condição se torne verdadeira.
3
Download