ISCAPISCAP
Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 11
AlgoritmiaAlgoritmia
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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 −±−
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
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
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
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
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
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
ISCAPISCAP
Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 2424
Traçagem Traçagem
Algoritmo NomeAlgoritmo Nome
Ana2.
Ana1.
SaídaNomePasso
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
....
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
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...))
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
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
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
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 ».
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
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)
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
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
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
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
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
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.
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.
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.
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.
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.
ISCAPISCAP
Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 5858
AlgoritmiaAlgoritmia/V.B.A./V.B.A.
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.
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)
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
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
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
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
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.
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
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
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
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
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
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
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
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)
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
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
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
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
ISCAPISCAP
Ana Paula TeixeiraAna Paula TeixeiraPág. Pág. 7878