Noçoes Basicas de Algoritmia e Programaçao
Noçoes Basicas de Algoritmia e Programaçao
Noçoes Basicas de Algoritmia e Programaçao
1. O QUE É UM ALGORITMO?
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada
uma das quais pode ser executada mecânicamente num período de tempo finito e com
uma quantidade de esforço finita.
Exemplo
Calcular a área de um rectângulo sendo dados os valores do comprimento e da largura.
Corpo do ALGORITMO:
LEIA (comprimento, largura);
area ← comprimento * largura;
ESCREVA (area);
Código VBA:
Private Sub CommandButton1_Click ()
End Sub
Para inserir o script no Visual Basic do Excel sugere-se, por exemplo, que no menu
“Developer” insira um botão de comando usando “insert form controls”; depois
clicando sobre o botão com a tecla do lado direito do rato escolha “assign macro” e
finalmente “edit” abre a janela de edição VB.
2. VARIÁVEIS
Variável é a forma programática de identificar uma zona de memória do computador
que pode ser consultada e alterada pelo Programa em execução.
Tipos de Variáveis:
Variáveis Numéricas
Variáveis String
Variáveis Booleanas
Variáveis Data
Variáveis Objecto
Variáveis Variant
Variáveis Numéricas:
Integer: Valores inteiros entre –32768 e 32767
Long: Valores inteiros entre –2147483648 e 2147483647
Single: Valores Reais de precisão simples entre +/-1.401298E-45
Double: Valores Reais de precisão dupla entre e +/-3.402823E38
End Sub
Instrução de atribuição:
4. EXPRESSÕES ARITMÉTICAS
Exemplos:
area ← comprimento * largura;
soma ← x + y – cos (x)+ y^x;
media ← soma/ 2;
Selecção múltipla:
Ciclo para que se utiliza quando à priori é conhecido o número de vezes que um bloco
de instruções deverá ser executado.
Quando não é conhecido o número de vezes que um bloco de instruções deverá ser
executado utiliza-se o ciclo enquanto ou ciclo repete.
Exemplo:
Outro exemplo:
a← 10; a = 10
b← - 4; b =-4
Enquanto b>a or b<0 faça While b>a or b<0
{b← a - 1; b=a–1
Wend
Ciclo Repete: permite executar repetidamente um bloco de instruções até que o valor de
uma expressão (condição) seja verdadeiro.
Exemplo:
Exercício:
Qual o objectivo de cada um destes programas?
a)
End Sub
b)
End Sub
Exercícios propostos:
1. Escreva um algoritmo que calcule as raízes reais de uma equação real de 2º grau.
6. a) Escreva um algoritmo que calcule a soma dos quadrados dos números inteiros
entre 3000 e 7800, inclusivé.
b) Escreva um programa em VBA que calcule a soma dos quadrados dos
números inteiros entre 3000 e 7800, inclusivé.
10. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1:
0 ≤ rnd( ) < 1. Usando esta função simule um jogo em que ganha o jogador A se o
resultado da rnd() for superior a 0.6. Caso contrário ganha o jogador B.
11. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1:
0 ≤ rnd( ) < 1. Usando esta função simule o seguinte jogo de dados equilibrados.
Lançam-se 2 dados. Se a soma de pontos for superior a 6 ganha o jogador A. Caso
contrário ganha o jogador B.
12. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1:
0 ≤ rnd( ) < 1. Usando esta função simule o seguinte jogo com um dado é viciado,
em que as probabilidades de saída de cada face são as seguinte: P(face 1)= P(face 2)=
P(face 3)= P(face 4)= 2∗P(face 5)= 2∗P(face 6). Lança-se o dado uma vez. Se sair o
número 5 ou 6 então ganha o jogador A, senão ganha o jogador B.
13. Registou-se durante todos os dias do ano 2001 e pelas 14 horas, o número de
automóveis que entravam no parque da FEUP.
a) Escreva um algoritmo que calcule o máximo e o mínimo desses valores e os
respectivos dias.
b) Escreva um programa em VBA que calcule o máximo e o mínimo desses valores
e os respectivos dias.
Exemplo: Em 2001, o número máximo de automóveis foi de 500 no dia 21 de Março e
o número mínimo foi de 72 no dia 5 de Agosto.
15. Define-se número de Armstrong como sendo aquele cuja soma dos cubos dos
algarismos que o compoêm é igual ao próprio número. Ex: 153= 13+53+33 .
a) Escreva uma função booleana capaz de determinar se um número natural dado é ou
não um número de Armstrong.
b) Escreva um programa que procure os primeiros 5 números de Armstrong.