Sunteți pe pagina 1din 10

Laboratórios de Informática MIEA 2009/10

Noções Básicas de Algoritmia e Programação

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.

O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita,


embora muitos algoritmos sejam mais complexos. Podem repetir passos (fazer
iterações) ou necessitar de decisões (tais como comparações ou lógica). Um algoritmo
corretamente executado não irá resolver um problema se estiver implementado
incorretamente ou se não for apropriado ao problema.

Um programa de computador é essencialmente um algoritmo que diz ao computador os


passos específicos e em que ordem eles devem ser executados.

ETAPAS NA RESOLUÇÃO DE UM PROBLEMA

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 ()

Dim comprimento, largura, area As Double


comprimento = Val(InputBox("Comprimento?"))
largura = Val(InputBox("Largura?"))
area = comprimento * largura
MsgBox (Str(area))

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.

Profª Catarina Castro


Tema2_1
Laboratórios de Informática MIEA 2009/10

ESTRUTURA GERAL DE UM ALGORITMO:

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

Variáveis String: Uma sequência de caracteres

Exemplo de Código VBA:


Private Sub CommandButton1_Click()

Dim palavra1, palavra2 As String


palavra1 = "lenta"
palavra2 = "mente"
MsgBox (palavra1 + palavra2)

End Sub

Variáveis Booleanas (Boolean):


Só toma dois valores:
True
False
Profª Catarina Castro
Tema2_2
Laboratórios de Informática MIEA 2009/10

3. INSTRUÇÕES DE ATRIBUIÇÃO, LEITURA E ESCRITA

Instrução de atribuição:

Instrução de leitura, atribuição e escrita:

4. EXPRESSÕES ARITMÉTICAS

Exemplos:
area ← comprimento * largura;
soma ← x + y – cos (x)+ y^x;
media ← soma/ 2;

As expressões aritméticas envolvem


- OPERANDOS
- VARIÁVEIS NUMÉRICAS
- CONSTANTES NUMÉRICAS
- OPERADORES ARITMÉTICOS
- FUNÇÕES
- PARÊNTESIS

Profª Catarina Castro


Tema2_3
Laboratórios de Informática MIEA 2009/10

5. INSTUÇÕES DE CONTROLO E SELECÇÃO


Instrução condicional simples:

Instrução condicional dupla:

Profª Catarina Castro


Tema2_4
Laboratórios de Informática MIEA 2009/10

Selecção múltipla:

Profª Catarina Castro


Tema2_5
Laboratórios de Informática MIEA 2009/10

6. INSTRUÇÕES DE REPETIÇÃO E DE CONTROLO DE FLUXO

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.

Ciclo enquanto: permite executar repetidamente um bloco de instuções enquanto o


valor de uma expressão (condição) for verdadeiro. Neste caso, o bloco de instruções
pode nunce ser executado.

Profª Catarina Castro


Tema2_6
Laboratórios de Informática MIEA 2009/10

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

Quantas vezes é este ciclo executado?

Ciclo Repete: permite executar repetidamente um bloco de instruções até que o valor de
uma expressão (condição) seja verdadeiro.

Exemplo:

Nota: Estes apontamentos de algoritmia são baseados nos apontamentos de Programação de


Computadores da Prof. Luísa Costa Sousa (DeMEC-FEUP).

Profª Catarina Castro


Tema2_7
Laboratórios de Informática MIEA 2009/10

Exercício:
Qual o objectivo de cada um destes programas?

a)

Private Sub CommandButton1_Click( )

Dim média, soma As Double


Dim N, i, nota As Integer
N = Val(InputBox("Número de disciplinas concluídas"))
soma = 0
For i = 1 To N
nota = Val(InputBox("Introduza a nota de uma disciplina concluída"))
soma = soma + nota
Next
média = soma / N
MsgBox ("Média= " & Str(média))

End Sub

b)

Private Sub CommandButton1_Click( )

Dim exame As Double


Dim nota As Integer
Dim classificação As String
Do
exame = Rnd( ) * 20
MsgBox (exame)
nota = Round(exame)
If nota < 10 Then
classificação = "Reprovado"
Else
Select Case nota
Case 10 To 13
classificação = "Suficiente"
Case 14 To 17
classificação = "Bom"
Case 18 To 20
classificação = "Muito Bom"
End Select
End If
MsgBox (Str(nota) & " " & classificação)
Loop Until nota = 20

End Sub

Profª Catarina Castro


Tema2_8
Laboratórios de Informática MIEA 2009/10

Exercícios propostos:
1. Escreva um algoritmo que calcule as raízes reais de uma equação real de 2º grau.

2. a) Escrever um algoritmo que calcule a norma euclidiana de um vector;


b) Traduza para Visual Basic o algoritmo anterior.
3. Durante o mês de Janeiro de 2005, registou-se todos os dias, pelas 14 horas, a
temperatura da sala de aula.
a) Escreva um algoritmo que calcule o valor médio dessas temperaturas.
b) Escreva um algoritmo que calcule o desvio padrão dessas temperaturas.
c) Escreva um programa em VBA que calcule o valor médio e o desvio padrão
dessas temperaturas.

4. Um aluno da FEUP já terminou N disciplinas com notas entre 10 e 20.


a) Escreva um algoritmo que calcule a média das N notas e se a média for inferior a
13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom e se for
superior ou igual a 17.5 escreve Muito Bom.
b) Escreva um programa em VBA que calcule a média das N notas e se a média for
inferior a 13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom
e se for superior ou igual a 17.5 escreve Muito Bom.

5. Registou-se, durante N dias, pelas 14 horas, a temperatura do bar da biblioteca.


a) Escreva um algoritmo que calcule o máximo dessas temperaturas.
b) Escreva um algoritmo que calcule o mínimo dessas temperaturas.
c) Escreva um algoritmo que calcule o número de dias em que essa
temperatura ultrapassou os 20 graus.
d) Escreva um programa em VBA que calcule o máximo e o mínimo dessas
temperaturas e que calcule o número de dias em que essa temperatura
ultrapassou os 20 graus .

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é.

7. a) Escreva um algoritmo que calcule o factorial de um número inteiro positivo.


b) Escreva um programa em VBA que calcule o factorial de um número inteiro
positivo.

8. a) Escreva um algoritmo que determine se um número inteiro dado é par ou


ímpar.
b) Escreva um programa em VBA que determine se um número inteiro dado é
par ou ímpar.

Profª Catarina Castro


Tema2_9
Laboratórios de Informática MIEA 2009/10

9. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1:


0 ≤ rnd( ) < 1.
×rnd( )) retorna valores aleatórios inteiros entre 1 e 50.
O valor N = Int (1 + 50×
a) Escreva um algoritmo que gere números aleatórios inteiros entre 1 e 50 até que
apareça um número aleatório múltiplo de 3.
b) Escreva um programa em VBA que gere números aleatórios inteiros entre 1 e 50
até que apareça um número aleatório múltiplo de 3.

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.

14. Dado um número inteiro positivo:


a) Escreva um algoritmo que determine se o número dado é primo ou não.
b) Escreva um programa em VBA que determine se o número dado é primo
ou não.

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.

Profª Catarina Castro


Tema2_10

S-ar putea să vă placă și