78
ISCAP ISCAP Ana Paula Teixeira Ana Paula Teixeira Pág. Pág. 1 1 Algoritmia Algoritmia

Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

  • Upload
    voduong

  • View
    238

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 11

AlgoritmiaAlgoritmia

Page 2: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 22

Os Computadores e a resolução de ProblemasOs Computadores e a resolução de Problemas

PROBLEMA

Solução como um

PROGRAMA

de Computador

Solução em forma

de Algoritmo

Passo difícil

Fase de Resolução do Problema

Fase de Implementação

Page 3: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 33

• É importante separar as duas fases:

1. Fase de Resolução do ProblemaElaboração de um algoritmo adequado

2. Fase de ImplementaçãoSe o Algoritmo satisfaz, então segue-se a implementação desse algoritmo numa Linguagem de Programação (Programa de Computador)

Nota: Se o algoritmo for suficientemente preciso, então, a codificação é quase directa

Os Computadores e a resolução de ProblemasOs Computadores e a resolução de Problemas

Page 4: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 44

• De uma forma mais detalhada, poderemos desdobrar estas duas em seis fases para a resolução do Problema:– Definição do Problema– Analise do Problema (elaboração do Algoritmo)– Codificação do algoritmo em linguagem de Programação– Teste do Programa– Implementação– Documentação

Os Computadores e a resolução de ProblemasOs Computadores e a resolução de Problemas

Page 5: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 55

Os Computadores e a resolução de ProblemasOs Computadores e a resolução de Problemas

Definição do PROBLEMA

Algoritmo

Avaliação dos Resultados

Codificação

Programa Fonte

Programa Objecto

Compilação

Análise do Problema

Teste do Programa

Implementação:•Colocação em Produção

•Formação de utilizadores

•Manutenção e actualização

Positiva

Negativa

Page 6: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 66

O que é um Algoritmo?O que é um Algoritmo?

• Um Algoritmo é uma sequência de passos ordenados e sem ambiguidade e que levam à resolução de um problema

• Exemplos:– Indicações para chegar a um determinado endereço– Instruções para construção de um brinquedo– Receita de culinária

• Propriedades:– Passos simples e sem ambiguidades– Ordem dos passos cuidadosamente definida– Passos efectivos, ou seja, resolver um problema num nº finito de

passos

Page 7: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 77

Metodologia para análise de problemasMetodologia para análise de problemas

• Análise de um Problema:– Fazer uma aproximação descendente– Proceder à Modularização

• Conceito e características de um Algoritmo– Na representação de um Algoritmo, usamos uma

linguagem estruturada, muito próxima da linguagem natural

Linguagem Natural ↔ Linguagem estruturada (Algorítmica)

Page 8: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 88

Principais blocos do AlgoritmoPrincipais blocos do Algoritmo

• Tipicamente poderemos considerar que um Algoritmo é composto pelos seguintes Blocos:

1. Definição de Dados2. Leitura de Dados3. Tratamento dos Dados4. Apresentação de Resultados

Page 9: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 99

Exemplos de Análise de ProblemasExemplos de Análise de Problemas

Ex1: Calcular a décima parte de um valor lido1. Ler um Número2. Dividir o Número lido por 103. Escrever o nº lido e o resultado Obtido

Ex2: Ler apelido e nome e apresentar a sua junção 1. Ler APELIDO2. Ler NOME3. Concatenar NOME + “ “ + APELIDO4. Escrever o resultado obtido em 3

Page 10: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1010

Exemplos de Análise de ProblemasExemplos de Análise de Problemas

Ex3: Pretende-se calcular o Preço de Venda (PV) de um artigo, sabendo que este é o resultado da soma de: custos de produção (CP), custos de armazenagem (CA) e custos de Mat.Primas (CMP), acrescido de 20% de lucro PV = CP + CA + CMP + 20% *(CP+CA+CMP)

Versão 11. Ler CP, CA, CMP2. Calcular valor de PV:PV = CP + CA + CMP +0.2 * (CP+CA+CMP)3. Apresentar resultados

Versão 21. Ler CP, CA, CMP2. Somar os 3 valores3. Calcular 20% do valor obtido4. Somar os valores obtidos em 2 e 35. Apresentar resultados

Page 11: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1111

Exemplos de Análise de ProblemasExemplos de Análise de Problemas

Ex4: Dada um valor em Escudos, converter para Euros.

1. Atribuir a FACTOR um valor 200.4822. Ler o Valor em Escudos (VAL_ESC)3. Converter

(VAL_EURO =VAL_ESC/FACTOR) 4. Apresentar resultados5. Terminar

Page 12: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1212

Exemplos de Análise de ProblemasExemplos de Análise de Problemas

Ex5: Dada uma lista de 10 nºs, pretende-se determinar o maior valor lido

1. Atribuir a MAXIMO um valor muito pequenino (-∞∞∞∞)

2. Repetir 10 vezes:Ler NUMEROSe o NUMERO lido for superior a MAXIMOEntão MAXIMO toma o valor do NUMERO

3. Apresentar resultados

Page 13: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1313

Algoritmizar Algoritmizar um Problemaum Problema

• Para a resolução de um Problema, deveremos cumprir os seguintes passos:– Descrição do Problema (definição clara dos dados que temos,

dados a ler e dados a obter)– Elaboração da lista de variáveis ou dicionário de dados– Construção do Algoritmo (todo o Algoritmo tem um Nome:

Algoritmo “Nome mnemónico”)

– Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para validação do algoritmo)

• Poderá ainda ser complementado pela apresentação de um Fluxograma

Page 14: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1414

Tipos de DadosTipos de Dados

• Dados Simples– Numéricos

• Poderão ainda ser de diferentes tipos (Inteiros; Reais) – Dados tipo cadeia de caracteres (Alfanuméricos)

• Exemplo Nome = “ANA”– Dados Lógicos

• Utilizam-se para estabelecimento de condições• Estruturas de Dados básicas

♣ Vectores X(i), ♣ Matrizes Y(a,b)• Estruturas Complexas

♣ Ficheiros ♣ Bases de dados

Page 15: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1515

OperaçõesOperações

• Simbologia utilizada– Adição + 3+2– Subtracção - 9-5– Divisão / 15/6– Multiplicação * 24*45– Potenciação ^ 3^2

• Prioridade das operações– Parentização– Potenciação, raiz quadrada– Multiplicação, Divisão– Adição, Subtracção

Page 16: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1616

VariáveisVariáveis

• Os dados necessários ao processamento de um Programa são armazenados em posições de da memória identificadas por um nome - a Variável.

• Quando definimos a variável, estamos a reservar um endereço de memória onde irá ser guardado o valor dessa mesma variável. Este valor é mutável, consoante as operações que vão sendo feitas sobre ele.

• Exemplos:♣ Y ← -5 ♣ X ← 2 ♣ Z ← 0♣ Y ← (X+Y) /2 ♣ X ←Y *2 ♣ Z ← Y ^2

Page 17: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1717

ExercíciosExercícios

1. Sejam A,B e C reais e I, J e K inteiros♣ A = 4.0 ♣ B = 6.0 ♣ I= 3Qual o valor das seguintes Expressões?♣ C← A * B -I ♣ K ←B/4 ♣ C ← B/A+1.5

2.Transforme em expressões de computador:

3. Em Quais dos seguintes pares é importante a ordem das operações?X ← Y Z ←Y X ←Z Z ← YY ← Z Z ←X Y ←X X ← Y

fedcba

+

dcba )( +

aacbb

242 −±−

Page 18: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1818

Linguagem Algorítmica Linguagem Algorítmica -- InstruçõesInstruçõesDeclaração de variáveisN inteiro; R real; C caractere; B booleano; D data

Inicialização de variáveis N ���� 0

Estruturas sequenciaisLeia("Nome", C)Escreva("Nome",C)R ���� R *2 + 4/N

Estruturas condicionaisSe (cond)

então acção1senão acção2

Fimse

Estruturas RepetitivasN.º finito de passos Para i = 1 até n (passo p)

AcçãoPróximo iControlado por uma condição Enquanto (cond)

acçõesFim Enquanto

Controlado por várias condiçõesEnquanto (cond e /ou / não cond2)

AcçõesFim Enquanto

Page 19: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 1919

Linguagem AlgorítmicaLinguagem Algorítmica

♦ Os algoritmos são formados por conjuntos de passos.♦ Cada passo é numerado e apresenta uma breve descrição

da sua funcionalidade

♦ Os passos principais são:1. [Declaração de Variáveis]2. [Leitura de variáveis]3. [Processamento]4. [Apresentação de Resultados]

Nota: Não esquecer o Inicio e o Fim

Page 20: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2020

FluxogramasFluxogramas -- SimbologiaSimbologia

Início/FimInício/Fim

ProcessoProcesso

Entrada/Saída Entrada/Saída de Dadosde Dados

DecisãoDecisão

DocumentoDocumento

ConectorConector

FluxoFluxo

Page 21: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2121

Estrutura de Controlo SequencialEstrutura de Controlo Sequencial

Algoritmo NomeAlgoritmo NomeInicio1. [Inicialização de Variáveis]

Nome←”Ana“2. [Apresentação de Resultados]

ESCREVA (Nome)

Fim

Objectivo:

Escrever o conteúdo de uma variável anteriormente inicializada

Page 22: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2222

Lista de e VariáveisLista de e Variáveis

Algoritmo NomeAlgoritmo Nome

Nome a escreverAlfaNOMEDescriçãoTipoNome

Page 23: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2323

NOME ⇐⇐⇐⇐ “ANA”

FIM

INICIO

NOME

InicializarInicializar variável; Escrever o s/valor variável; Escrever o s/valor

Principais Conceitos:

•Inicializar

•Escrever

Page 24: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2424

Traçagem Traçagem

Algoritmo NomeAlgoritmo Nome

Ana2.

Ana1.

SaídaNomePasso

Page 25: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2525

Estrutura de Controlo SequencialEstrutura de Controlo Sequencial

Algoritmo SomaAlgoritmo SomaInicio1. [Declaração de Variáveis]

X ← 0; Y ← 0 ;Soma ← 02. [Leitura de variáveis]

LEIA (X)LEIA (Y)

3 [Processamento - cálculo da soma]SOMA ← X + Y

4. [apresentação de Resultados]ESCREVA (“A soma de “ X, “com “ Y “é “ SOMA)

Fim

Objectivo:

Ler 2 número e escrever o valor da soma

Page 26: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2626

Lista de e VariáveisLista de e Variáveis

Algoritmo NomeAlgoritmo Nome

Resulltado da soma dos 2 nºs lidos

RealSoma2º Numero lidoRealY1º Numero lidoRealXDescriçãoTipoNome

Page 27: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2727

X ⇐⇐⇐⇐ 0Y ⇐⇐⇐⇐ 0

Soma ⇐⇐⇐⇐ 0

FIM

INICIO

Soma ⇐⇐⇐⇐ X + Y

Soma

X, Y

Ler 2 Nºs e Escrever a sua SomaLer 2 Nºs e Escrever a sua Soma

Principais Conceitos:

•Inicializar

•Ler

•Calcular

•Escrever

Page 28: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2828

Traçagem Traçagem

Algoritmo SomaAlgoritmo SomaDados para teste: X=56, Y=33

Fim

A soma de 56 com 33 é 89

Saída

89

0

SOMA

33

0

Y

56

0

X

5.

4.

3.

2.

1.

Passo

Page 29: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2929

ExercíciosExercícios

• Elabore um Algoritmo estruturado para os exemplos 1, 2 , 3 e 4 vistos anteriormente– Deverá apresentar

• A lista de variáveis• Algoritmo e traçagem para os seguintes valores:

– Exemplo 1�Dados: 4500

– Exemplo 2�Dados: Cunha, André

– Exemplo 3�Dados: 400; 600; 700; 350

– Exemplo 4�Dados: 1000

Page 30: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3030

ExerciciosExercicios

• Escreva um algoritmo que leia uma temperatura em graus Celsius e converta para graus Farneith. Faça a traçagem para 37.5º

• Escreva um algoritmo, que dados os valores dos lados de um rectângulo, calcule a sua área e o seu perímetro.. Faça a traçagem para L1=5, L2=8.

• Escreva um algoritmo, que leia as notas de um aluno (5 disciplinas) e calcule a média da turma

Page 31: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3131

Estrutura de Controlo Alternativa Estrutura de Controlo Alternativa SimplesSimples

Exemplo (Ler um número e verificar a sua paridade)

Se Número/2 = Int (Número/2) Então Escreva (“O número” , Numero”é par!”)Senão Escreva (“O número” , Numero”é impar!”)

Fim se

Se CondiçãoEntão

Processo para Condição VerdadeiraSenão

Processo para Condição FalsaFim se

Page 32: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3232

Estrutura de Controlo Alternativa Estrutura de Controlo Alternativa SimplesSimples

Algoritmo Algoritmo PositividadePositividade (versão 1.0)Inicio1. [Declaração de Variáveis]

Numero ← 0 Mensagem ← “ “; 2. [Leitura do Número]

LEIA (Numero)3 [Processamento - Verificação da positividade]

Se Numero > 0Então Mensagem ← “é positivo”Senão Mensagem ← “ não é positivo”

Fim se4. [Apresentação de Resultados]

ESCREVA (“ O número “, Numero, “, Mensagem)Fim

Objectivo:

Ler 1 número e escrever se é positivo ou não

Page 33: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3333

Lista de e VariáveisLista de e Variáveis

Algoritmo NomeAlgoritmo Nome

Descrição da positividade do numero lido

AlfaMensagem

Numero lidoRealNumeroDescriçãoTipoNome

Page 34: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3434

Numero

FIM

INICIO

Numero > 0

Positivo

Sim

Não é Positivo

Não

Ler um Nº e Escrever a sua Ler um Nº e Escrever a sua Positividade Positividade (versão 1)(versão 1)

Principais Conceitos:

•Alternativa

(Se;Então;Senão)

Page 35: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3535

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 1.0)(versão 1.0)Dados para teste:Número =-7

O número -7 não é positivo

4.

Fim

Saída

Falso

NUMERO>0

não é positivo

MENSAGEM

-70

NUMERO

5.

3.

2.1.

Passo

Page 36: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3636

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 1.0)(versão 1.0)Dados para teste:Número = 34

O número 34 é positivo

4.

Fim

Saída

Verdadeiro

NUMERO>0

é positivo

MENSAGEM

340

NUMERO

5.

3.

2.1.

Passo

Page 37: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3737

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 1.0)(versão 1.0)Dados para teste:Número = 0

O número 0 não é positivo

4.

Fim

Saída

Falso

NUMERO>0

não é positivo

MENSAGEM

00

NUMERO

5.

3.

2.1.

Passo

Page 38: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3838

Estrutura de Controlo Alternativa Estrutura de Controlo Alternativa CompostaComposta

Exemplo (Ler um número e verificar a sua positividade)Se Numero >0

Então Escreva ( Numero ”é positivo!”)Senão

Se Num < 0 Então Escreva (Numero ”é negativo!”)Senão Escreva (Numero ”é nulo!”)

Fim seFim se

Se Condição1Então

Processo p/ Condição1 VerdadeiraSenão

Se Condição2Então Processo p/ Condição2 VerdadeiraSenão Processo p/ Condição2 Falsa

Fim seFim se

Page 39: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 3939

Estrutura de Controlo Alternativa Estrutura de Controlo Alternativa CompostaComposta

Algoritmo Algoritmo PositividadePositividade (versão 2.0)Inicio1. [Declaração de Variáveis]

Mensagem ← “ “; Numero ← 02. [Leitura do Número]

LEIA (Numero)3 [Processamento - Verificação da positividade]

Se Numero > 0Então Mensagem ← “é positivo”Senão Se Numero = 0

Então Mensagem ← “ é nulo”Senão Mensagem ← “é negativo”

Fim seFim se

Objectivo:

Ler 1 número e indicar a sua positividade

....

Page 40: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4040

Lista de e VariáveisLista de e Variáveis

Algoritmo NomeAlgoritmo Nome

Descrição da positividade do numero lido

AlfaMensagem

Numero lidoRealNumero

DescriçãoTipoNome

Page 41: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4141

Numero

FIM

INICIO

Numero > 0

Nº Positivo

Sim

Nº Negativo

Não

Ler um Nº e Escrever a sua Ler um Nº e Escrever a sua Positividade Positividade (versão 2)(versão 2)

Numero = 0

Nº Nulo

Sim Não

Principais Conceitos:

•Alternativa composta

(Se;Então;Senão(Se...))

Page 42: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4242

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 2.0)(versão 2.0)Dados para teste:Número = -7

O número -7 é negativo

Saída

é negativo

Falso

NUMERO=0

Falso

NUMERO>0

MENSAGEM

-70

NUMERO

4.

3.

2.1.

Passo

Page 43: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4343

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 2.0)(versão 2.0)Dados para teste:Número = 34

O número 34 é positivo

Saída

é positivo

NUMERO=0

Verdadeiro

NUMERO>0

MENSAGEM

340

NUMERO

4.

3.

2.1.

Passo

Page 44: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4444

Traçagem Traçagem

Algoritmo Algoritmo Positividade Positividade (versão 2.0)(versão 2.0)Dados para teste:Número = 0

O número 0 é nulo

Saída

é nulo

Verdadeiro

NUMERO=0

Falso

NUMERO>0

MENSAGEM

00

NUMERO

4.

3.

2.1.

Passo

Page 45: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4545

ExercíciosExercícios

• Escreva um algoritmo que leia um Número e verifique se é divisível por 5e 7 simultaneamente.Faça a traçagem para os n.ºs 15 e 35.

• Escreva um algoritmo que calcule a média das idades de uma população de 15 pessoas e escreva uma mensagem de acordo com a situação (Média < 25 » “Jovem”, Média <40 » “Adulta”, outras » “Idosa. Faça a traçagem para (12,8,2,6,5,18,54,65,5,10,48,47,7,4,18,17,12,13)

• Altere o Algoritmo anterior criando mais uma classe de classificações: Muito Jovem, se Média < 14 ».

Page 46: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4646

Estrutura de Repetição Estrutura de Repetição –– Enquanto...Enquanto...

1.1. [Inicializar variável de controlo de ciclo]

Enquanto Condição1.2. [Operações a realizar dentro do ciclo]

[Leituras, cálculos,...]

1.3. [Actualização da variável de Controlo do Ciclo]

1.4. [Terminar ciclo ]

Fim Enquanto

Page 47: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4747

Estrutura de Repetição Estrutura de Repetição –– Para I ...Para I ...

Para I = X1 até Xn[Operações a realizar dentro do ciclo - [Leituras

cálculos,...]Próximo I

Exemplo:Para I = 1 até 10

Ler (Numero) Soma ←←←← Soma + Numero

Proximo IEscrever (Soma)

Page 48: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4848

Estrutura de Repetição Estrutura de Repetição –– Seleccionar casoSeleccionar caso

Seleccionar Caso OpçãoCaso Opção = 1

procedimento ACaso Opção = 2

procedimento BCaso Senão

procedimento ERRO

Fim Seleccionar

Exemplo:Seleccionar Caso Opção

Caso Opção = 1 ADICIONAR

Caso Opção = 2ALTERAR

Caso SenãoERRO

Fim Seleccionar

Page 49: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 4949

Estruturas de RepetiçãoEstruturas de RepetiçãoAlgoritmo Soma de 50 númeroAlgoritmo Soma de 50 númeroInicio 1. [Declaração de Variáveis]Numero ← 0; Soma ← 02. [Ciclo de Processa/ -Leitura dos nºs e cálculo da soma] 2.1. [Inicializar variável de controlo de ciclo]

Objectivo:

Ler 50 números e escrever o valor da sua soma

Contador Contador ←← 0; 0; Enquanto Enquanto Contador < 50Contador < 50

2.2. [Ler n2.2. [Ler núúmero]mero]Leia( Numero]Leia( Numero][Actualização do valor da Soma][Actualização do valor da Soma]Soma Soma ←←←←←←←← Soma + NumeroSoma + Numero2.3. [Actualiza2.3. [Actualizaçãção da vario da variáável de Controlo vel de Controlo

do Ciclo]do Ciclo]Contador Contador ←←←←←←←← Contador + 1Contador + 1

2.4.. [Terminar ciclo ]2.4.. [Terminar ciclo ]Fim EnquantoFim Enquanto3. [Apresentação de Resultados]Escreva(“a soma dos 50 nºs lidos é “, Soma)Fim

Page 50: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5050

Estruturas de RepetiçãoEstruturas de RepetiçãoAlgoritmo MáximoAlgoritmo MáximoInicio1. [Declaração de Variáveis]

Maximo ← - 999999999 ; Numero ← 0 ; Contador ← 02. [Processamento - Determinação do máximo]

2.1. [Ciclo de Repetição]Enquanto Contador < 10

2.2. [Leitura do Número]LEIA (Numero)2.3. [Verificação de valor]Se Numero > Maximo

Então Maximo ← NumeroFim se2.4. [Actualização da variável de Controlo do Ciclo]Contador ← Contador + 1

2.5. [Terminar ciclo ]Fim Enquanto

3. [Apresentação de Resultados]ESCREVA (“ O máximo valor lido foi “, Maximo)

Fim

Objectivo:

Ler 10 números escrever o máximo valor lido

Page 51: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5151

Lista de e VariáveisLista de e Variáveis

Algoritmo MáximoAlgoritmo Máximo

Máximo valor encontradoRealMáximo

Numero lidoRealNúmero

DescriçãoTipoNome

Contador Inteiro Variável de controlo do ciclo - conta o nº de repetições do ciclo

Page 52: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5252

Máximo⇐⇐⇐⇐ -∞∞∞∞Numero ⇐⇐⇐⇐ 0

Contador ⇐⇐⇐⇐ 0

Numero

FIM

INICIO

Contador <10

MáximoNumero >Máximo

Máximo=Numero

Contador=Contador+1

Sim Não

NãoSim

Ler 10 nºs e escrever valor do MaiorLer 10 nºs e escrever valor do Maior

Principais Conceitos:

•Ciclo de Repetição

•Enquanto Cond

Page 53: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5353

ExercíciosExercícios

1. Escreva um algoritmo que leia uma lista de valores e determine o Máximo, o Mínimo e a Soma desses valores. A lista termina quando o valor lido for 999999.

2.1. Altere o algoritmo do ponto 1. de modo a que após a leitura de uma lista de valores seja perguntado ao utilizador se este pretende ler uma nova lista.

2.2. Altere o algoritmo do ponto 1. de modo a que após a leitura de um valor e seu processamento, seja perguntado ao utilizador se estepretende continuar ou não.

3. Escreva um algoritmo que calcule as raízes reais de uma equação de 2º grau. Após a execução para uma equação deverá ser perguntado ao utilizador se este pretende continuar ou não.

Page 54: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5454

ExercíciosExercícios

4. Escreva um algoritmo que leia uma Lista de números cujo tamanho é determinado pelo utilizador e calcule o máximo nº lido.5. Escreva um algoritmo que leia o nome da disciplina e as notas de um aluno,calcule a média e determine a sua aprovação ou não no Curso. O Aluno considera-se aprovado se a sua média for não inferior a 12 valores.

• A leitura termina quando o nome lido for “FIM” • O algoritmo deve permitir o cálculo para vários alunos.

6. Escreva um algoritmo que permita calcular o total da despesa feita num supermercado. Deverá ler o nome dos itens, a quantidade e o preço unitário. A leitura para cada cliente termina quando for lido o nome “FIM”.Deve permitir o cálculo para vários clientes.

Page 55: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5555

ExercíciosExercícios

7. A empresa XPTO, SA distribuidora de componentes para automóveis,pretende fazer a análise de vendas do ano anterior.Para cada venda efectuada, existe informação seguinte:

Nome do ClienteZona Geográfica (1- Norte; 2 - Sul; 3 - Centro)Família do Produto (1- Pneus; 2 - Jantes)Tipo de veículo (1- Ligeiros; 2 - Pesados)Quantidade, Valor Total

As estatísticas pretendidas, são as seguintes:a) Valor Total de Vendas por Zona e Total Geralb) Total por Família de Produtos (Quantidade e Valor)c) Total por Tipo de veículo (Quantidade e Valor)

Escreva um algoritmo para resolução deste problema.

Page 56: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5656

ExercíciosExercícios

8. Considere uma Empresa que comercializa dois tipos de Produtos - A e B, para os quais se conhece o preço unitário e a quantidade existente em stock.Tipo de Produto Preço Quantidade

A 500$ 2000B 300$ 5000

Para cada nova encomenda é necessário conhecer os seguintes dados: N.º Cliente; Tipo Produto; Quantidade EncomendadaEscreva um algoritmo que permita fazer a gestão das Encomendas desta Empresa.

Page 57: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5757

ExercíciosExercícios

a) Pretende-se que para cada encomenda seja verificada a quantidade existente para o Tipo de Produto, e se :

�a quantidade for Zero (0), emita uma mensagem “Não há stockpara satisfazer a Encomenda”;

�caso a quantidade existente seja inferior à solicitada, então a encomenda será satisfeita parcialmente, dando também lugar à emissão de uma mensagem: “Satisfação parcial da Encomenda”

Na satisfação da Encomenda, deverá actualizar sempre o Stock restante para o Tipo de Produto. Todas as Facturas deverão referir :

� O Cliente, o tipo de Produto, a Quantidade satisfeita (quer seja total ou parcial) e o Valor a pagar

b) Apresente um resumo final que informe das quantidades e valores facturados para cada Tipo de Produto, bem como os totais gerais.

Page 58: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5858

AlgoritmiaAlgoritmia/V.B.A./V.B.A.

Page 59: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5959

Programação em VBAProgramação em VBA

•O que é uma macro ?Uma macro é uma sequência de comandos. As macros podem ser utilizadas para automatizar tarefas repetitivas que envolvem a execução de vários comandos por parte do utilizador.O que é o VBA - Visual Basic for Applications ?O VBA é uma linguagem de programação integrada no Excel e noutras aplicações da Microsoft. As macros criadas em Excel são constituídas por instruções de VBA.

Page 60: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6060

Programação em VBAProgramação em VBA

•ProcedimentosOs procedimentos são módulos de código do Visual Basic que executam uma determinada acção. Uma macro é um exemplo de um procedimento•Existem dois tipos básicos de procedimentos em VBA:

– Procedimentos que retornam ou devolvem um valor designados por FunctionFunction– Procedimentos que não retornam um valor designados por SubSub

•Estrutura de um procedimento:– Instruções de início e fim– Nome– Argumentos– Código do VBA– Valor devolvido (apenas nos procedimentos tipo FunctionFunction)

Page 61: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6161

Programação em VBAProgramação em VBA

• Exemplo de procedimento function (retorna valor)Function Soma (a, b)

Soma = a + bEnd Function

• Exemplo de procedimento sub (não retorna valor)Sub Inicio()

Call Soma( 9, 15)MsgBox Soma

End SubObs.: A instrução Call chama a função Soma

A instrução MsgBox cria uma caixa com o valor de Soma

Page 62: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6262

AlgoritmiaAlgoritmia / V.B.A/ V.B.A

•• PseudoPseudo--CódigoCódigo� Inicio do Programa

Algoritmo NomeINICIO

� Declaração de VariavéisNUMERO inteiro(real)DATANASC dataNOME caractere

� ExpressõesSOMA <-- A + B

� LeituraLEIA ( NUMERO)LEIA ( “Nome Cliente?“, NOME)

� Fim do ProgramaSAÍDA

•• Visual Visual BasicBasic� Inicio do Programa

Sub Nome()� Declaração de VariavéisDim NUMERO As Integer (Double, Long, Currency)Dim DataNasc As DateDim NOME As String� Expressões

SOMA = A + B� Leitura

NUMERO = InputBox (“Numero?”)NOME = InputBox ( “Nome Cliente “)

� Fim do ProgramaEnd Sub

Page 63: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6363

•• PseudoPseudo--CódigoCódigo� Saída de Dados

ESCREVA ( NUMERO)ESCREVA ( “A Soma é”, SOMA)� Estrutura Condicional SE..ENTÃOSe NUMERO < 0

Então ESCREVA (“É Negativo”)Fim Se

� Estr.Cond. SE.... ENTÃO....SENÃOSe NUMERO < 0

Então ESCREVA (“É Negativo”)Senão ESCREVA (“NãoNegativo”)

Fim Se

•• Visual Visual BasicBasic� Saída de Dados

MsgBox “Numero” & NUMEROMsgBox “A Soma é ” & SOMA

� Estrutura Condicional SE...ENTÃOIf NUMERO < 0 Then

MsgBox “Numero Negativo”End If

� Estr.Cond. SE.... ENTÃO....SENÃOIf NUMERO < 0 Then

MsgBox “Número Negativo” elseMsgBox “Número não Negativo”

End If

AlgoritmiaAlgoritmia / V.B.A/ V.B.A

Page 64: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6464

•• PseudoPseudo--CódigoCódigo�Estr.Cond. SE.... ENTÃO....SENÃO SE...

Se N =0Então ESCREVA(“Nulo”)Senão

Se N < 0Então ESCREVA (“Negativo”)Senão

ESCREVA (“Positivo”)Fim se

Fim Se

�Ciclo Enquanto <Cond> RepetirN <--0Enquanto N < = 5 Repetir

ESCREVA (N)N <-- N + 1

Fim Enquanto

•• Visual Visual BasicBasic�Estr.Cond.SE.... ENTÃO....SENÃO SE...

If N = 0 ThenMsgBox ("Nulo")Else

If N < 0 ThenMsgBox ("Negativo")ElseMsgBox ("Positivo")

End IfEnd If

�Ciclo Enquanto <Cond> RepetirN = 0While N < = 5

MsgBox “N”N = N + 1

Wend

AlgoritmiaAlgoritmia / V.B.A/ V.B.A

Page 65: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6565

•• PseudoPseudo--CódigoCódigo� Para ... até <Condição>

Para I = 1 até 5ESCREVA (N)

Próximo I

� Seleccionar caso <Condição>Seleccionar Caso Opção

Caso Opção = 1 ADICIONAR

Caso Opção = 2ALTERAR

Caso Senão ERRO

Fim Seleccionar

•• Visual Visual BasicBasic� Para ... até <Condição>For I = 1 to 5

MsgBox “N”Next I

� Seleccionar caso <Condição>Select Case Opção

Case Opção = 1 ADICIONAR

Case Opção = 2ALTERAR

Case Else ERRO

End Case

AlgoritmiaAlgoritmia / V.B.A./ V.B.A.

Page 66: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6666

Escreve o valor de uma variávelEscreve o valor de uma variávelSub Escreve()

Dim nome As String * 20nome = "PAULA"MsgBox nome

End Sub

Soma de 2 Soma de 2 NumerosNumerosSub Soma()Dim numero1 As Integer, numero2 As Integer, Total As Integer

numero1 = InputBox("Escreva o Primeiro Número")numero2 = InputBox("Escreva o Segundo Número")Total = numero1 + numero2MsgBox "A Soma de " & numero1 & " com " & numero2 & " é: " & Total

End Sub

ExemplosExemplos

Page 67: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6767

Soma n Soma n NumerosNumeros -- Fim quando Nº lido =0Fim quando Nº lido =0

Sub Soma_n()Total = 0Numero = 0Lidos = 0Numero =InputBox("Escreva o Número")While Numero <> 0

Total = Total + NumeroLidos = Lidos + 1Numero = InputBox("Escreva o Número ( 0 p/ Terminar )")

WendMsgBox ("A Soma dos " & Lidos & " números lidos " & " é " &

Total)End Sub

Page 68: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6868

Sequências de Somas de NúmerosSequências de Somas de Números(cada sequência termina em 0)(cada sequência termina em 0)

Sub Seq_Soma_n()Continuar = “SIM”While Continuar = “SIM”

Total = 0Numero = 1Contador = -1While Numero <> 0

Numero = InputBox("Escreva o Número ( 0 para Terminar )")Contador = Contador + 1Total = Total + Numero

WendMsgBox "A Soma dos " & Contador & " números “ & " é: " & TotalContinuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")

WendEnd Sub

Page 69: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 6969

SequenciasSequencias de Máximo de 3 de Máximo de 3 NumerosNumerosSub Maximo_3()Continuar = 1While Continuar = 1

Maximo = -9999999Numero = 0Contador = 0While Contador <3

Numero = InputBox("Escreva o Número")If Maximo < Numero Then

Maximo = NumeroEnd IfContador= Contador +1

WendMsgBox " O Máximo valor lido foi " & MaximoContinuar = InputBox("Para nova sequência, escreva '1' ")

WendEnd Sub

Page 70: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7070

SequenciasSequencias de Máximo de de Máximo de NumerosNumeros(é o utilizador que define o fim da lista)(é o utilizador que define o fim da lista)

Sub Máximo_n()Continuar = “SIM”While Continuar = “SIM”Maximo = -99999999

Seguinte = 1Numero = 0While Seguinte = 1

Numero = InputBox("Escreva o Número")If Maximo < Numero Then

Maximo = NumeroEnd IfSeguinte = InputBox(”Para mais nºs para esta sequência escreva '1' ")

WendMsgBox "O Máximo valor lido foi " & MaximoContinuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")

WendEnd Sub

Page 71: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7171

• Pretende-se construção de um Programa, que leia um número e calcule o seu Factorial. Após a apresentação do resultado, deverá perguntar ao utilizador se pretende continuar

• Notas:– Só são válidos números Positivos– O Factorial de 0 é 1

N!= N* (N-1)* (N-2)* (....) * 2

Factorial de um NúmeroFactorial de um Número

Page 72: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7272

Factorial de um Número Factorial de um Número (versão 1)(versão 1)

Sub Factorial()Dim Numero As Integer, Cont As Integer,

Factorial As Double, continuar As String

continuar = "SIM"While continuar = "SIM"

Factorial = 1Numero = InputBox("Escreva o Número")Cont = NumeroIf Numero > 2 Then

While Cont > 1Factorial = Factorial * ContCont = Cont - 1

WendElse: Factorial = 1

End If

If Numero < 0 ThenMsgBox ("O número deverá ser

Positivo!!!")Else: MsgBox ("O Factorial de "

& Numero & " é " & Factorial)End Ifcontinuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")

WendEnd Sub

Page 73: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7373

Sub Factorial_1()Dim Numero As Integer, Cont As

Integer, Factorial As Double, continuar As String

continuar = "SIM"While continuar = "SIM"Factorial = 1Numero = InputBox("Escreva o N.º")Cont = NumeroIf Numero >= 0 Then

If Numero >= 2 ThenWhile Cont > 1

Factorial = Factorial * ContCont = Cont - 1

WendElse: Factorial = 1

End If

MsgBox ("O Factorial de " & Numero & " é " & Factorial)

Else: MsgBox ("O número deverá ser Positivo!!!")End Ifcontinuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")WendEnd Sub

Factorial de um Número Factorial de um Número (versão 2)(versão 2)

Page 74: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7474

• Pretende-se construção de um Programa, que leia as Horas de Entrada e de Saída num parque de estacionamento e calcule o valor a pagar.

• A tabela de preços é a seguinte:–1.ª hora : 120–2.ª hora : 150–seguintes: 180

– Se a permanência for inferior a 1 hora, será pago o valor correspondente a 1 hora

– O tempo de permanência é arredondado para a hora inferior, caso a parte fraccionária seja inferior a 0.05

Parque de EstacionamentoParque de Estacionamento

Page 75: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7575

Sub parque()Dim Hora_E As Double, Hora_S As Double,

Tempo As DoubleDim Custo As Double, continuar As Stringcontinuar = "SIM"While continuar = "SIM"

Hora_E = InputBox("Hora de Entrada")Hora_S = InputBox(" Hora de Saída")Tempo = Hora_S - Hora_EIf Tempo < 1 Then

Tempo = 1ElseIf Tempo - Int(Tempo) <= 0.05 Then

Tempo = Int(Tempo)Else: Tempo = Int(Tempo) + 1

End If

Parque de EstacionamentoParque de Estacionamento

If Tempo = 1 ThenValor = 120ElseIf Tempo = 2 Then

Valor = 270Else: Valor = (Tempo - 2) * 180 + 270

End IfMsgBox ("O valor a pagar é " & Valor)

continuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")WendEnd Sub

Page 76: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7676

Função “Preço Final”Função “Preço Final”

Function PRECO_FINAL(Valor, Desconto)Preco_Final = Valor * (1-Desconto/100)

End Function

Function NomeFinal(Apelido, Nome)NomeFinal = Nome + " "+ Apelido

End Function

Objectivo:Escrever uma Função que dado o Preço de um Artigo e a % de desconto, calcule o valor a pagar.

Objectivo:Escrever uma Função que dado um Apelido e um Nome apresente o nome Completo

Page 77: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7777

Função “IVA”Função “IVA”

Function IVA(Valor, Codigo)If Codigo = 0 Then

IVA = ValorElseIf Codigo = 1 Then

IVA = Valor * 0.05ElseIf Codigo = 2 Then

IVA = Valor * 0.12ElseIf Codigo = 3 Then

IVA = Valor * 0.17ElseIf Codigo = 4 Then

IVA = Valor * 0.3End If

End Function

Objectivo:

Escrever uma Função que dado um valor e o código de IVA, calcule o valor do IVA a pagar

Page 78: Algoritmia - ISCAPiscap.pt/~anapaula/Documents/Algoritmia_alunos.pdf · – Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para

ISCAPISCAP

Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7878