0% acharam este documento útil (0 voto)
78 visualizações78 páginas

ISCAP - Algoritmia

O documento discute os computadores e a resolução de problemas. Ele descreve o processo em duas fases principais: 1) a fase de resolução do problema, que envolve elaborar um algoritmo adequado, e 2) a fase de implementação, que envolve codificar o algoritmo em uma linguagem de programação. O documento também fornece exemplos de como analisar e modelar problemas como algoritmos.

Enviado por

Andreia Dias
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
78 visualizações78 páginas

ISCAP - Algoritmia

O documento discute os computadores e a resolução de problemas. Ele descreve o processo em duas fases principais: 1) a fase de resolução do problema, que envolve elaborar um algoritmo adequado, e 2) a fase de implementação, que envolve codificar o algoritmo em uma linguagem de programação. O documento também fornece exemplos de como analisar e modelar problemas como algoritmos.

Enviado por

Andreia Dias
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 78

ISCAP

Algoritmia

Pág. 1 Ana Paula Teixeira


ISCAP Os Computadores e a resolução de Problemas

PROBLEMA Fase de Resolução do


Problema

Passo difícil Solução em forma


de Algoritmo

Fase de Implementação
Solução como um
PROGRAMA
de Computador
Ana Paula Teixeira
Pág. 2
ISCAP Os Computadores e a resolução de Problemas

• É importante separar as duas fases:

1. Fase de Resolução do Problema


Elaboração de um algoritmo adequado
2. Fase de Implementação
Se 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

Ana Paula Teixeira


Pág. 3
ISCAP Os Computadores e a resolução de Problemas

• 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

Ana Paula Teixeira


Pág. 4
ISCAP Os Computadores e a resolução de Problemas

Definição do Algoritmo
Análise do Problema
PROBLEMA
Codificação

Programa Fonte
Compilação

Negativa Programa Objecto

Teste do Programa

Implementação:
Positiva •Colocação em Produção
Avaliação dos Resultados •Formação de utilizadores
•Manutenção e actualização
Ana Paula Teixeira
Pág. 5
ISCAP 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

Ana Paula Teixeira


Pág. 6
ISCAP Metodologia 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)

Ana Paula Teixeira


Pág. 7
ISCAP Principais blocos do Algoritmo

• Tipicamente poderemos considerar que um Algoritmo é


composto pelos seguintes Blocos:

1. Definição de Dados
2. Leitura de Dados
3. Tratamento dos Dados
4. Apresentação de Resultados

Ana Paula Teixeira


Pág. 8
ISCAP Exemplos de Análise de Problemas

Ex1: Calcular a décima parte de um valor lido


1. Ler um Número
2. Dividir o Número lido por 10
3. Escrever o nº lido e o resultado Obtido

Ex2: Ler apelido e nome e apresentar a sua junção


1. Ler APELIDO
2. Ler NOME
3. Concatenar NOME + “ “ + APELIDO
4. Escrever o resultado obtido em 3

Ana Paula Teixeira


Pág. 9
ISCAP Exemplos 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 2
Versão 1
1. Ler CP, CA, CMP
1. Ler CP, CA, CMP
2. Somar os 3 valores
2. Calcular valor de PV:
3. Calcular 20% do valor
PV = CP + CA + CMP +0.2 * (CP+CA+CMP) obtido
3. Apresentar resultados 4. Somar os valores obtidos
em 2 e 3
5. Apresentar resultados
Ana Paula Teixeira
Pág. 10
ISCAP Exemplos de Análise de Problemas

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

1. Atribuir a FACTOR um valor 200.482


2. Ler o Valor em Escudos (VAL_ESC)
3. Converter
(VAL_EURO =VAL_ESC/FACTOR)
4. Apresentar resultados
5. Terminar

Ana Paula Teixeira


Pág. 11
ISCAP Exemplos 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 NUMERO
Se o NUMERO lido for superior a MAXIMO
Então MAXIMO toma o valor do NUMERO
3. Apresentar resultados

Ana Paula Teixeira


Pág. 12
ISCAP Algoritmizar um 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

Ana Paula Teixeira


Pág. 13
ISCAP Tipos 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
Ana Paula Teixeira
Pág. 14
ISCAP Operaçõ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

Ana Paula Teixeira


Pág. 15
ISCAP Variá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

Ana Paula Teixeira


Pág. 16
ISCAP Exercícios

1. Sejam A,B e C reais e I, J e K inteiros


♣A = 4.0 ♣ B = 6.0 ♣ I= 3
Qual 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:
b
a+
c − b ± b 2 − 4ac c
( a + b)
e 2a d
d−
f
3. Em Quais dos seguintes pares é importante a ordem das
operações?
X←Y Z ←Y X ←Z Z←Y
Y←Z Z ←X Y ←X X←Y
Ana Paula Teixeira
Pág. 17
ISCAP Linguagem Algorítmica - Instruções
Declaração de variáveis Estruturas Repetitivas
N inteiro; R real; C caractere; B N.º finito de passos
booleano; D data Para i = 1 até n (passo p)
Acção
Inicialização de variáveis Próximo i
Nß0 Controlado por uma condição
Enquanto (cond)
Estruturas sequenciais acções
Leia("Nome", C) Fim Enquanto
Escreva("Nome",C)
R ß R *2 + 4/N Controlado por várias condições
Enquanto (cond e /ou / não cond2)
Estruturas condicionais Acções
Se (cond) Fim Enquanto
então acção1
senão acção2
Fimse

Ana Paula Teixeira


Pág. 18
ISCAP Linguagem 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


Ana Paula Teixeira
Pág. 19
ISCAP Fluxogramas - Simbologia

Início/Fim Decisão

Processo
Documento

Entrada/Saída Conector
de Dados
Fluxo
Ana Paula Teixeira
Pág. 20
ISCAP Estrutura de Controlo Sequencial
Algoritmo Nome Objectivo:
Inicio Escrever o
1. [Inicialização de Variáveis] conteúdo de uma
variável
Nome←”Ana“ anteriormente
2. [Apresentação de Resultados] inicializada
ESCREVA (Nome)
Fim

Ana Paula Teixeira


Pág. 21
ISCAP Lista de e Variáveis
Algoritmo Nome

Nome Tipo Descrição


NOME Alfa Nome a escrever

Ana Paula Teixeira


Pág. 22
ISCAP Inicializar variável; Escrever o s/valor

Principais Conceitos:
•Inicializar INICIO
•Escrever

NOME ⇐ “ANA”

NOME

FIM
Ana Paula Teixeira
Pág. 23
ISCAP Traçagem
Algoritmo Nome

Passo Nome Saída


1. Ana

2. Ana

Ana Paula Teixeira


Pág. 24
ISCAP Estrutura de Controlo Sequencial
Algoritmo Soma Objectivo:
Inicio Ler 2 número e
1. [Declaração de Variáveis] escrever o valor
X ← 0; Y ← 0 ;Soma ← 0 da soma
2. [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
Ana Paula Teixeira
Pág. 25
ISCAP Lista de e Variáveis
Algoritmo Nome

Nome Tipo Descrição


X Real 1º Numero lido
Y Real 2º Numero lido
Soma Real Resulltado da soma dos 2
nºs lidos

Ana Paula Teixeira


Pág. 26
ISCAP Ler 2 Nºs e Escrever a sua Soma

INICIO
Principais Conceitos:
•Inicializar X⇐0
•Ler Y⇐0
Soma ⇐ 0
•Calcular
•Escrever
X, Y

Soma ⇐ X + Y

Soma

FIM Ana Paula Teixeira


Pág. 27
ISCAP Traçagem
Algoritmo Soma
Dados para teste: X=56, Y=33

Passo X Y SOMA Saída


1. 0 0 0
2. 56 33
3. 89
4. A soma de 56 com
33 é 89
5. Fim
Ana Paula Teixeira
Pág. 28
ISCAP Exercí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

Ana Paula Teixeira


Pág. 29
ISCAP Exercicios
• 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

Ana Paula Teixeira


Pág. 30
Estrutura de Controlo Alternativa
ISCAP
Simples
Se Condição
Então
Processo para Condição Verdadeira
Senão
Processo para Condição Falsa
Fim se

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
Ana Paula Teixeira
Pág. 31
Estrutura de Controlo Alternativa
ISCAP
Simples
Algoritmo Positividade (versão 1.0) Objectivo:
Inicio Ler 1 número e
1. [Declaração de Variáveis] escrever se é
Numero ← 0 Mensagem ← “ “; positivo ou não
2. [Leitura do Número]
LEIA (Numero)
3 [Processamento - Verificação da positividade]
Se Numero > 0
Então Mensagem ← “é positivo”
Senão Mensagem ← “ não é positivo”
Fim se
4. [Apresentação de Resultados]
ESCREVA (“ O número “, Numero, “, Mensagem)
Fim
Pág. 32
Ana Paula Teixeira
ISCAP Lista de e Variáveis
Algoritmo Nome

Nome Tipo Descrição


Numero Real Numero lido
Mensagem Alfa Descrição da positividade
do numero lido

Ana Paula Teixeira


Pág. 33
Ler um Nº e Escrever a sua
ISCAP
Positividade (versão 1)
Principais Conceitos: INICIO
•Alternativa
(Se;Então;Senão) Numero

Não Sim
Numero > 0

Não é Positivo
Positivo

FIM
Ana Paula Teixeira
Pág. 34
ISCAP Traçagem
Algoritmo Positividade (versão 1.0)
Dados para teste:Número =-7
Passo NUMERO MENSAGEM NUMERO>0 Saída

1. 0
2. -7
3. Falso
não é positivo
4. O número -7 não
é positivo
5. Fim
Ana Paula Teixeira
Pág. 35
ISCAP Traçagem
Algoritmo Positividade (versão 1.0)
Dados para teste:Número = 34
Passo NUMERO MENSAGEM NUMERO>0 Saída

1. 0
2. 34
3. Verdadeiro
é positivo
4. O número 34 é
positivo
5. Fim
Ana Paula Teixeira
Pág. 36
ISCAP Traçagem
Algoritmo Positividade (versão 1.0)
Dados para teste:Número = 0
Passo NUMERO MENSAGEM NUMERO>0 Saída

1. 0
2. 0
3. Falso
não é positivo
4. O número 0 não
é positivo
5. Fim
Ana Paula Teixeira
Pág. 37
Estrutura de Controlo Alternativa
ISCAP
Composta
Se Condição1
Então
Processo p/ Condição1 Verdadeira
Senão
Se Condição2
Então Processo p/ Condição2 Verdadeira
Senão Processo p/ Condição2 Falsa
Fim se
Fim se
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 se
Fim se
Ana Paula Teixeira
Pág. 38
Estrutura de Controlo Alternativa
ISCAP
Composta
Algoritmo Positividade (versão 2.0) Objectivo:
Inicio
Ler 1 número e
1. [Declaração de Variáveis]
indicar a sua
Mensagem ← “ “; Numero ← 0 positividade
2. [Leitura do Número]
LEIA (Numero)
3 [Processamento - Verificação da positividade]
Se Numero > 0
Então Mensagem ← “é positivo”
Senão Se Numero = 0
Então Mensagem ← “ é nulo”
Senão Mensagem ← “é negativo”
Fim se
Fim se
Pág. 39 .... Ana Paula Teixeira
ISCAP Lista de e Variáveis
Algoritmo Nome

Nome Tipo Descrição


Numero Real Numero lido

Mensagem Alfa Descrição da positividade do


numero lido

Ana Paula Teixeira


Pág. 40
Ler um Nº e Escrever a sua
ISCAP
Positividade (versão 2)
Principais Conceitos: INICIO
•Alternativa composta
Numero
(Se;Então;Senão(Se...))

Não Sim
Numero > 0

Numero = 0
Sim Não Nº Positivo

Nº Nulo Nº Negativo

FIM
Ana Paula Teixeira
Pág. 41
ISCAP Traçagem
Algoritmo Positividade (versão 2.0)
Dados para teste:Número = -7
Passo NUMERO MENSAGEM NUMERO NUMERO Saída
>0 =0
1. 0
2. -7
3. Falso
Falso
é negativo
4. O número -7 é
negativo
Ana Paula Teixeira
Pág. 42
ISCAP Traçagem
Algoritmo Positividade (versão 2.0)
Dados para teste:Número = 34
Passo NUMERO MENSAGEM NUMERO NUMERO Saída
>0 =0

1. 0
2. 34
3. Verdadeiro

é positivo
4. O número 34 é
positivo

Ana Paula Teixeira


Pág. 43
ISCAP Traçagem
Algoritmo Positividade (versão 2.0)
Dados para teste:Número = 0
Passo NUMERO MENSAGEM NUMERO NUMERO= Saída
>0 0

1. 0
2. 0
3. Falso
Verdadeiro

é nulo
4. O número 0 é
nulo
Ana Paula Teixeira
Pág. 44
ISCAP Exercí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 ».

Ana Paula Teixeira


Pág. 45
ISCAP Estrutura de Repetição – Enquanto...
1.1. [Inicializar variável de controlo de ciclo]

Enquanto Condição
1.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

Ana Paula Teixeira


Pág. 46
ISCAP Estrutura de Repetição – 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 I
Escrever (Soma)
Ana Paula Teixeira
Pág. 47
ISCAP Estrutura de Repetição – Seleccionar caso

Exemplo:
Seleccionar Caso Opção Seleccionar Caso Opção
Caso Opção = 1 Caso Opção = 1
procedimento A ADICIONAR
Caso Opção = 2 Caso Opção = 2
procedimento B ALTERAR
Caso Senão Caso Senão
procedimento ERRO ERRO
Fim Seleccionar Fim Seleccionar

Ana Paula Teixeira


Pág. 48
ISCAP Estruturas de Repetição
Algoritmo Soma de 50 número
Inicio Objectivo:
1. [Declaração de Variáveis]
Numero ← 0; Soma ← 0 Ler 50
2. [Ciclo de Processa/ -Leitura dos nºs e cálculo da soma] números e
2.1. [Inicializar variável de controlo de ciclo] escrever o
Contador ← 0; valor da sua
Enquanto Contador < 50
2.2. [Ler número] soma
Leia( Numero]
[Actualização do valor da Soma]
Soma ← Soma + Numero
2.3. [Actualização da variável de Controlo
do Ciclo]
Contador ← Contador + 1
2.4.. [Terminar ciclo ]
Fim Enquanto
3. [Apresentação de Resultados]
Escreva(“a soma dos 50 nºs lidos é “, Soma)
Fim
Ana Paula Teixeira
Pág. 49
ISCAP Estruturas de Repetição
Algoritmo Máximo
Inicio
Objectivo:
1. [Declaração de Variáveis]
Maximo ← - 999999999 ; Numero ← 0 ; Contador ← 0
Ler 10 números
2. [Processamento - Determinação do máximo] escrever o
2.1. [Ciclo de Repetição] máximo valor
Enquanto Contador < 10
2.2. [Leitura do Número] lido
LEIA (Numero)
2.3. [Verificação de valor]
Se Numero > Maximo
Então Maximo ← Numero
Fim se
2.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
Ana Paula Teixeira
Pág. 50
ISCAP Lista de e Variáveis

Algoritmo Máximo

Nome Tipo Descrição


Número Real Numero lido

Máximo Real Máximo valor encontrado

Contador Inteiro Variável de controlo do


ciclo - conta o nº de
repetições do ciclo

Ana Paula Teixeira


Pág. 51
ISCAP Ler 10 nºs e escrever valor do Maior
INICIO
Principais Conceitos:
•Ciclo de Repetição Máximo⇐ ∞
⇐ -∞
Numero ⇐ 0
•Enquanto Cond
Contador ⇐ 0

Sim Contador <10 Não

Numero
Máximo
Numero >Máximo

Sim Não
Máximo=Numero
FIM
Contador=Contador+1
Ana Paula Teixeira
Pág. 52
ISCAP Exercí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 este
pretende 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.

Ana Paula Teixeira


Pág. 53
ISCAP Exercí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.

Ana Paula Teixeira


Pág. 54
ISCAP Exercí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 Cliente
Zona 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 Geral
b) 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.
Ana Paula Teixeira
Pág. 55
ISCAP Exercí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$ 2000
B 300$ 5000

Para cada nova encomenda é necessário conhecer os seguintes dados: N.º


Cliente; Tipo Produto; Quantidade Encomendada
Escreva um algoritmo que permita fazer a gestão das Encomendas desta
Empresa.

Ana Paula Teixeira


Pág. 56
ISCAP Exercí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á stock
para 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.
Ana Paula Teixeira
Pág. 57
ISCAP

Algoritmia/V.B.A.

Pág. 58 Ana Paula Teixeira


ISCAP Programaçã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.

Ana Paula Teixeira


Pág. 59
ISCAP Programação em VBA

•Procedimentos
Os 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 Function
– Procedimentos que não retornam um valor designados por Sub
•Estrutura de um procedimento:
– Instruções de início e fim
– Nome
– Argumentos
– Código do VBA
– Valor devolvido (apenas nos procedimentos tipo Function)
Function

Ana Paula Teixeira


Pág. 60
ISCAP Programação em VBA

• Exemplo de procedimento function (retorna valor)


Function Soma (a, b)
Soma = a + b
End Function
• Exemplo de procedimento sub (não retorna valor)
Sub Inicio()
Call Soma( 9, 15)
MsgBox Soma
End Sub
Obs.: A instrução Call chama a função Soma
A instrução MsgBox cria uma caixa com o valor de Soma

Ana Paula Teixeira


Pág. 61
ISCAP Algoritmia / V.B.A
• Pseudo-Código • Visual Basic
Ø Inicio do Programa Ø Inicio do Programa
Algoritmo Nome Sub Nome()
INICIO Ø Declaração de Variavéis
Ø Declaração de Variavéis Dim NUMERO As Integer (Double, Long, Currency)
NUMERO inteiro(real) Dim DataNasc As Date
DATANASC data Dim NOME As String
NOME caractere Ø Expressões
Ø Expressões SOMA = A + B
SOMA <-- A + B Ø Leitura
Ø Leitura NUMERO = InputBox (“Numero?”)
LEIA ( NUMERO) NOME = InputBox ( “Nome Cliente “)
LEIA ( “Nome Cliente?“, NOME) Ø Fim do Programa
Ø Fim do Programa End Sub
SAÍDA

Ana Paula Teixeira


Pág. 62
ISCAP Algoritmia / V.B.A
• Pseudo-Código • Visual Basic
Ø Saída de Dados Ø Saída de Dados
ESCREVA ( NUMERO) MsgBox “Numero” & NUMERO
ESCREVA ( “A Soma é”, SOMA) MsgBox “A Soma é ” & SOMA
Ø Estrutura Condicional SE..ENTÃO Ø Estrutura Condicional SE...ENTÃO
Se NUMERO < 0 If NUMERO < 0 Then
Então ESCREVA (“É Negativo”) MsgBox “Numero Negativo”
Fim Se End If

Ø Estr.Cond. SE.... ENTÃO....SENÃO Ø Estr.Cond. SE.... ENTÃO....SENÃO


Se NUMERO < 0 If NUMERO < 0 Then
Então ESCREVA (“É Negativo”) MsgBox “Número Negativo” else
Senão ESCREVA (“NãoNegativo”) MsgBox “Número não Negativo”
Fim Se End If

Ana Paula Teixeira


Pág. 63
ISCAP Algoritmia / V.B.A
• Pseudo-Código • Visual Basic
Ø Estr.Cond. SE.... ENTÃO....SENÃO SE... ØEstr.Cond.SE.... ENTÃO....SENÃO SE...
Se N =0 If N = 0 Then
Então ESCREVA(“Nulo”) MsgBox ("Nulo")
Senão Else
Se N < 0 If N < 0 Then
Então ESCREVA (“Negativo”) MsgBox ("Negativo")
Senão Else
ESCREVA (“Positivo”) MsgBox ("Positivo")
Fim se End If
Fim Se End If
ØCiclo Enquanto <Cond> Repetir
Ø Ciclo Enquanto <Cond> Repetir N=0
N <--0 While N < = 5
Enquanto N < = 5 Repetir MsgBox “N”
ESCREVA (N) N=N+1
N <-- N + 1
Wend
Fim Enquanto
Ana Paula Teixeira
Pág. 64
ISCAP Algoritmia / V.B.A.
• Pseudo-Código • Visual Basic
Ø Para ... até <Condição> Ø Para ... até <Condição>
Para I = 1 até 5 For I = 1 to 5
ESCREVA (N) MsgBox “N”
Próximo I Next I

Ø Seleccionar caso <Condição> Ø Seleccionar caso <Condição>


Seleccionar Caso Opção Select Case Opção
Caso Opção = 1 Case Opção = 1
ADICIONAR ADICIONAR
Caso Opção = 2 Case Opção = 2
ALTERAR ALTERAR
Caso Senão Case Else
ERRO ERRO
Fim Seleccionar End Case

Ana Paula Teixeira


Pág. 65
ISCAP Exemplos
Escreve o valor de uma variável
Sub Escreve()
Dim nome As String * 20
nome = "PAULA"
MsgBox nome
End Sub
Soma de 2 Numeros
Sub 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 + numero2
MsgBox "A Soma de " & numero1 & " com " & numero2 & " é: " & Total
End Sub

Ana Paula Teixeira


Pág. 66
ISCAP Soma n Numeros - Fim quando Nº lido =0
Sub Soma_n()
Total = 0
Numero = 0
Lidos = 0
Numero =InputBox("Escreva o Número")
While Numero <> 0
Total = Total + Numero
Lidos = Lidos + 1
Numero = InputBox("Escreva o Número ( 0 p/ Terminar )")
Wend
MsgBox ("A Soma dos " & Lidos & " números lidos " & " é " &
Total)
End Sub
Ana Paula Teixeira
Pág. 67
Sequências de Somas de Números
ISCAP (cada sequência termina em 0)
Sub Seq_Soma_n()
Continuar = “SIM”
While Continuar = “SIM”
Total = 0
Numero = 1
Contador = -1
While Numero <> 0
Numero = InputBox("Escreva o Número ( 0 para Terminar )")
Contador = Contador + 1
Total = Total + Numero
Wend
MsgBox "A Soma dos " & Contador & " números “ & " é: " & Total
Continuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")
Wend
End Sub

Ana Paula Teixeira


Pág. 68
ISCAP Sequencias de Máximo de 3 Numeros
Sub Maximo_3()
Continuar = 1
While Continuar = 1
Maximo = -9999999
Numero = 0
Contador = 0
While Contador <3
Numero = InputBox("Escreva o Número")
If Maximo < Numero Then
Maximo = Numero
End If
Contador= Contador +1
Wend
MsgBox " O Máximo valor lido foi " & Maximo
Continuar = InputBox("Para nova sequência, escreva '1' ")
Wend
End Sub

Ana Paula Teixeira


Pág. 69
Sequencias de Máximo de Numeros
ISCAP (é o utilizador que define o fim da lista)
Sub Máximo_n()
Continuar = “SIM”
While Continuar = “SIM”
Maximo = -99999999
Seguinte = 1
Numero = 0
While Seguinte = 1
Numero = InputBox("Escreva o Número")
If Maximo < Numero Then
Maximo = Numero
End If
Seguinte = InputBox(”Para mais nºs para esta sequência escreva '1' ")
Wend
MsgBox "O Máximo valor lido foi " & Maximo
Continuar = InputBox("Para soma de nova sequência, escreva ’SIM' ")
Wend
End Sub

Ana Paula Teixeira


Pág. 70
ISCAP Factorial de um Número
• 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

Ana Paula Teixeira


Pág. 71
ISCAP Factorial de um Número (versão 1)
Sub Factorial() If Numero < 0 Then
Dim Numero As Integer, Cont As Integer, MsgBox ("O número deverá ser
Factorial As Double, continuar As Positivo!!!")
String Else: MsgBox ("O Factorial de "
continuar = "SIM" & Numero & " é " & Factorial)
End If
While continuar = "SIM" continuar = InputBox("Para soma de
Factorial = 1 nova sequência, escreva ’SIM' ")
Numero = InputBox("Escreva o Wend
Número") End Sub
Cont = Numero
If Numero > 2 Then
While Cont > 1
Factorial = Factorial * Cont
Cont = Cont - 1
Wend
Else: Factorial = 1
End If
Ana Paula Teixeira
Pág. 72
ISCAP Factorial de um Número (versão 2)
Sub Factorial_1() MsgBox ("O Factorial de " &
Dim Numero As Integer, Cont As Numero & " é " & Factorial)
Integer, Factorial As Double, Else: MsgBox ("O número deverá
continuar As String ser Positivo!!!")
continuar = "SIM" End If
While continuar = "SIM" continuar = InputBox("Para soma de
Factorial = 1 nova sequência, escreva ’SIM' ")
Numero = InputBox("Escreva o N.º") Wend
Cont = Numero End Sub
If Numero >= 0 Then
If Numero >= 2 Then
While Cont > 1
Factorial = Factorial * Cont
Cont = Cont - 1
Wend
Else: Factorial = 1
End If

Ana Paula Teixeira


Pág. 73
ISCAP Parque de Estacionamento

• 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
Ana Paula Teixeira
Pág. 74
ISCAP Parque de Estacionamento

Sub parque() If Tempo = 1 Then


Dim Hora_E As Double, Hora_S As Double, Valor = 120
Tempo As Double ElseIf Tempo = 2 Then
Dim Custo As Double, continuar As String Valor = 270
Else: Valor = (Tempo - 2) * 180 + 270
continuar = "SIM" End If
While continuar = "SIM" MsgBox ("O valor a pagar é " & Valor)
Hora_E = InputBox("Hora de Entrada") continuar = InputBox("Para soma de
Hora_S = InputBox(" Hora de Saída") nova sequência, escreva ’SIM' ")
Wend
Tempo = Hora_S - Hora_E
End Sub
If Tempo < 1 Then
Tempo = 1
ElseIf Tempo - Int(Tempo) <= 0.05 Then
Tempo = Int(Tempo)
Else: Tempo = Int(Tempo) + 1
End If

Ana Paula Teixeira


Pág. 75
ISCAP Função “Preço Final”

Objectivo:Escrever uma Função que dado o Preço de um Artigo e


a % de desconto, calcule o valor a pagar.
Function PRECO_FINAL(Valor, Desconto)
Preco_Final = Valor * (1-Desconto/100)
End Function
Objectivo:Escrever uma Função que dado um Apelido e um Nome
apresente o nome Completo
Function NomeFinal(Apelido, Nome)
NomeFinal = Nome + " "+ Apelido
End Function
Ana Paula Teixeira
Pág. 76
ISCAP Função “IVA”
Function IVA(Valor, Codigo) Objectivo:
If Codigo = 0 Then
IVA = Valor Escrever uma
Função que dado
ElseIf Codigo = 1 Then
um valor e o
IVA = Valor * 0.05 código de IVA,
ElseIf Codigo = 2 Then calcule o valor do
IVA = Valor * 0.12 IVA a pagar
ElseIf Codigo = 3 Then
IVA = Valor * 0.17
ElseIf Codigo = 4 Then
IVA = Valor * 0.3
End If
End Function
Ana Paula Teixeira
Pág. 77
ISCAP

Ana Paula Teixeira


Pág. 78

Você também pode gostar