Вы находитесь на странице: 1из 3

Informtica II

Ficha de Trabalho n. 3 Objectivo: Estudo prtico de algoritmos e sua implementao em Visual Basic do Excel.
Introduo:
Um algoritmo pode ser definido como a sequncia lgica de procedimentos tendentes resoluo dum problema. Ora a actividade humana, pode ser considerada como uma sequncia interminvel de solues para problemas. Tambm, como os computadores so 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 sabero, a ordem de execuo dos procedimentos que permitem a soluo dum problema, normalmente sequencial, pode tambm efectuar testes a condies e executar um ou outro conjunto de instrues ou mesmo executar repetidamente um conjunto de instrues, dependendo ou no de uma dada condio. Pode demonstrar-se que com estes 3 tipos de estruturas, podem resolver-se todos os problemas que possam ser postos.

Estrutura de um mdulo em Visual Basic:

OPES DO VISUAL BASIC Option Explicit Fora declarao explcita de todas as variveis DECLARAO DE CONSTANTES DO MDULO Const prato_dia = 1100 DECLARAO DE VARIVEIS DO MDULO 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 descrio da ementa") End Sub Sub consulta_ementa() Dim dia As Integer MsgBox ("EMENTA: " & Chr(13) & "Segunda - " & ementa(2) & Chr(13) & _ "Tera - " & ementa(3) & Chr(13) & "Quarta - " & ementa(4) & Chr(13) & _ "Quinta - " & ementa(5) & Chr(13) & "Sexta - " & ementa(6) & Chr(13)) & _ "Preo = " & prato_dia & "$00" End Sub

Sub opes() Dim op As String * 1, resp As Integer Do Do op = UCase(InputBox("Digite a opo [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 programao VB, para resolver

cada uma das seguintes alneas: a) Ler duas palavras, correspondentes ao seu primeiro e o ltimo nome, e inverter a sua ordem na escrita. b) Ler dois nmeros inteiros e escrever os nmeros em linhas distintas, mas na mesma caixa de mensagem. c) Dados dois valores inteiros A e B, calcular a sua mdia aritmtica. d) Dados os valores do custo unitrio, percentagem de lucro e taxa de IVA de um produto, determinar a margem de lucro, o valor do IVA e o preo de venda ao pblico. e) Dados os valores da margem de lucro, do IVA e do preo de venda ao pblico de um produto, determinar o custo unitrio, percentagem de lucro e taxa de IVA. f) Determinar o preo final de uma encomenda, dado o preo unitrio do produto e sabendo que o desconto efectuado para encomendas superiores a 90 unidades 10%. g) Dados dois nmeros inteiros A e B, determinar qual deles o maior. h) Calcular o valor da comisso de um vendedor, sabendo que para quantidades vendidas (QV): 50 < QV < 100 a comisso de 5% do lucro; 100 <= QV <= 200 a comisso de 15% do lucro; QV > 200 a comisso de 25% do lucro. i) Ler um nmero entre 1 e 7 e escrever o correspondente dia de semana. j) Simular uma mquina de calcular que s efectua as operaes bsicas de adio, subtraco, multiplicao e diviso entre dois nmeros. Deve ainda impedir a situao de erro resultante da diviso por zero. k) Dado o nmero de dias teis de um determinado ms, calcular o valor mdio de encomendas. l) Dados os valores das vendas mensais do ano anterior, determinar o valor mnimo das vendas e o(s) respectivo(s) ms(es). m) Dados os valores das vendas mensais do ano anterior, determinar o valor mximo, o valor mdio e os meses em que as vendas foram superiores mdia. n) Alterar o exerccio anterior por forma a permitir a sua execuo enquanto o utilizador o desejar. o) Dado um nmero inteiro positivo N, determinar o maior nmero par P tal que a soma de todos os nmeros pares inferiores a P seja inferior a N. Por exemplo, se o valor dado N for 57, ento 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 tringulo de nmeros de acordo com o exemplo seguinte para N=4. 1 121 12321 1234321
Tipo de Dados Tipo de Dados Ocupao Intervalo de valores possveis 2

(em Portugus) Booleano Inteiro Longo (Inteiro Longo) Simples (VF de Preciso Simples) Duplo (VF de Preciso Dupla) Moeda Data Cadeia Variante Objecto Definida pelo Utilizador

(em Ingls) Boolean Integer Long Single Double Currency Date String Variant Object Definida pelo Utilizador

(em bytes) 2 bytes 2 bytes 4 bytes 4 bytes 8 bytes 8 bytes 8 bytes 1 bytes p/ caracter Como apropriado 4 bytes Nmero requerido pelos elementos

Verdadeiro/True ou Falso/False -32768 a 32767 -2,147,483,648 a 2,147,483,647 Ver manual Ver manual Valores com 4 casas decimais e at aos bilies 1 de Jan 0100 at 31 Dez 9999 0 a 65535 ou mais em alguns sistemas Texto ou valores at Double Qualquer referncia a um objecto O de cada elemento que constitui o tipo de dados definido

Principais instrues InputBox(Prompt [,ttulol] [,valor por defeito] [,x pos][,y pos], [fich_Ajuda, contexto]) MsgBox(prompt [,botes] [ttulo] [fich_Ajuda, contexto])

Descrio breve Instruo de Leitura - Mostra uma caixa de dilogo e espera que o utilizador escreva texto ou escolha um boto, retornando ento o contedo da caixa de texto. Instrues de Escrita - Mostra uma mensagem numa caixa de dilogo. O valor devolvido, indica o boto que foi clicado pelo utilizador. Estrutura de seleco - Permite a execuo condicional entre uma ou mais instrues. Se condio1 for verdadeira, executa a instruo1; seno se a condio2 for verdadeira executa a instruo2; seno executa a instruo3

If condio1 Then instruo1 ElseIf condio2 Then instruo2 Else instruo3 End If Select Case expresso_de_teste Case lista1expresso Instrues1 Case lista2expresso Instrues2 ...... Case Else Instrues End Select For contador = incio To Fim [Step incr] Instrues Next [contador]

Estrutura de seleco - Permite a execuo condicional entre uma ou mais instrues. Cada listaexpresso uma lista de um ou mais valores (separados por vrgulas). As instrues do Case Else so executadas, se nenhum dos listaexpresso satisfizer a expresso_de_teste.

Estrutura de repetio equivalente a ciclo Para. usada quando o nmero de iteraes pode ser predefinido. O contador vai sendo incrementado (ou decrementado) do valor dado por incr, desde um valor inicial (incio), at a um valor final (Fim). Estrutura de repetio equivalente a ciclo Enquanto. Repete as instrues enquanto a condio for verdadeira (true). Estrutura de repetio equivalente a ciclo Repetir-At. Repete as instrues at que a condio se torne verdadeira.

Do While Condio Instrues Loop Do Instrues Loop until Condio