Você está na página 1de 29
IISSCCAAPP AAllggoorriittmmiiaa PPáágg 11
IISSCCAAPP
AAllggoorriittmmiiaa
PPáágg
11
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass IISSCCAAPP PROBLEMA Fase de
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass
IISSCCAAPP
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
PPáágg 22
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass IISSCCAAPP • É importante separar
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass
IISSCCAAPP
• É 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
PPáágg 33
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass IISSCCAAPP • De uma forma mais
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass
IISSCCAAPP
• 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
PPáágg 44
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass IISSCCAAPP Algoritmo Definição do
OOss CCoommppuuttaaddoorreess ee aa rreessoolluuççããoo ddee PPrroobblleemmaass
IISSCCAAPP
Algoritmo
Definição do
Análise do Problema
PROBLEMA
Codificação
Programa Fonte
Compilação
Negativa
Programa Objecto
Teste do Programa
Implementação:
Positiva
Avaliação dos Resultados
•Colocação em Produção
•Formação de utilizadores
•Manutenção e actualização
AnaAna PaulaPaula
PPáágg 55
AAllggoorriittmmiizzaarr uumm PPrroobblleemmaa IISSCCAAPP Na fase de Resolução de um Problema, deveremos cumprir os
AAllggoorriittmmiizzaarr uumm PPrroobblleemmaa
IISSCCAAPP
Na fase de Resolução de um Problema, deveremos cumprir
os seguintes passos:
1. Descrição do Problema (definição clara dos dados que
temos, dados a ler e dados a obter) - Fazer uma aproximação
descendente e proceder à Modularização
2. Elaboração da lista de variáveis ou dicionário de dados
3. Construção do Algoritmo (todo o Algoritmo tem um
Nome. Ex: Algoritmo Soma)
4. 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
PPáágg 66
OO qquuee éé uumm AAllggoorriittmmoo?? IISSCCAAPP • Um Algoritmo é uma sequência de passos ordenados
OO qquuee éé uumm AAllggoorriittmmoo??
IISSCCAAPP
• 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 - resolver um problema num nº finito de passos
• Na representação de um Algoritmo, usamos uma linguagem
estruturada, muito próxima da natural – Pseudo Código
PPáágg 77
PPrriinncciippaaiiss bbllooccooss ddoo AAllggoorriittmmoo IISSCCAAPP ♦ Os algoritmos são formados por conjuntos de
PPrriinncciippaaiiss bbllooccooss ddoo AAllggoorriittmmoo
IISSCCAAPP
♦ Os algoritmos são formados por conjuntos de passos.
Cada passo é numerado e apresenta uma breve descrição da sua
funcionalidade
Tipicamente poderemos considerar que um Algoritmo é
composto pelos seguintes Blocos:
1.Definição de Dados
2.Inicialização de variáveis
3. Leitura de Dados
4. Tratamento dos Dados
5. Apresentação de Resultado
PPáágg 88
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass IISSCCAAPP Ex1: Calcular a décima parte de um valor lido
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass
IISSCCAAPP
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
PPáágg 99
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass IISSCCAAPP Ex3: Pretende-se calcular o Preço de Venda
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass
IISSCCAAPP
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
PPáágg 1100
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass IISSCCAAPP Ex4: Dada um valor em Escudos, converter para
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass
IISSCCAAPP
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
PPáágg 1111
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass IISSCCAAPP Ex5: Dada uma lista de 10 nºs, pretende-se
EExxeemmppllooss ddee AAnnáálliissee ddee PPrroobblleemmaass
IISSCCAAPP
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
PPáágg 1122
TTiippooss ddee DDaaddooss IISSCCAAPP • Dados Simples – Numéricos • Poderão ainda ser de diferentes
TTiippooss ddee DDaaddooss
IISSCCAAPP
• 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
PPáágg 1133
OOppeerraaççõõeess IISSCCAAPP • Simbologia utilizada PPáágg 1144
OOppeerraaççõõeess
IISSCCAAPP
• Simbologia utilizada
PPáágg 1144
VVaarriiáávveeiiss IISSCCAAPP • Os dados necessários ao processamento de um Programa são armazenados em
VVaarriiáávveeiiss
IISSCCAAPP
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
♣Y ← (X+Y) /2
♣X ← 2
♣ X
←Y *2
♣Z ← 0
♣ Z ← Y ^2
PPáágg 1155
EExxeerrccíícciiooss IISSCCAAPP 1. Sejam A,B e C reais e I, J e K inteiros ♣A
EExxeerrccíícciiooss
IISSCCAAPP
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:
a
+ b
c
− b ±
b 2 −
(a +b) c
4ac
2a
d
d
− e
f
3. Em Quais dos seguintes pares é importante a ordem das
operações?
X ←
Y
Z ←Y
X ←Z
Y ← Z
Z ←X
Y ←X
Z ← Y
X ← Y

PPáágg 1166

LLiinngguuaaggeemm AAllggoorrííttmmiiccaa -- IInnssttrruuççõõeess IISSCCAAPP Declaração de variáveis N
LLiinngguuaaggeemm AAllggoorrííttmmiiccaa -- IInnssttrruuççõõeess
IISSCCAAPP
Declaração de variáveis
N inteiro; R real; C caractere; B
booleano; D data
Inicialização de variáveis
N Å 0
Estruturas sequenciais
Leia("Nome", C)
Escreva("Nome",C)
R Å R *2 + 4/N
Estruturas Repetitivas
N.º finito de passos
Para i = 1 até n (passo p)
Acção
Próximo i
Controlado por uma condição
Enquanto (cond)
acções
Fim Enquanto
Estruturas condicionais
Se (cond)
então acção1
senão acção2
Fimse
Controlado por várias condições
Enquanto (cond e /ou / não cond2)
Acções
Fim Enquanto
PPáágg 1177
FFlluuxxooggrraammaass -- SSiimmbboollooggiiaa IISSCCAAPP IInníícciioo//FFiimm DDeecciissããoo PPrroocceessssoo
FFlluuxxooggrraammaass -- SSiimmbboollooggiiaa
IISSCCAAPP
IInníícciioo//FFiimm
DDeecciissããoo
PPrroocceessssoo
DDooccuummeennttoo
EEnnttrraaddaa//SSaaííddaa
CCo
C
oon
nne eec cct tto oor rr
ddee DDaaddooss
FFlluuxxoo
PPáágg 1188
TTiippooss ddee EEssttrruuttuurraass ddee PPrrooggrraammaaççããoo IISSCCAAPP SSeeqquueenncciiaall Conjunto de
TTiippooss ddee EEssttrruuttuurraass ddee PPrrooggrraammaaççããoo
IISSCCAAPP
SSeeqquueenncciiaall
Conjunto de instruções que visam atingir um objectivo
CCoonnddiicciioonnaall
As instruções a executar dependem de pelo menos
uma condição lógica que terá que ser avaliada
RReeppeettiittiivvaa
Conjunto de instruções que se irão repetir até que seja
atingida uma determinada condição. O n.º de vezes a
repetir as operações pode ser determinado antes ou
durante a execução.
PPáágg 1199
EEssttrruuttuurraa ddee CCoonnttrroolloo SSeeqquueenncciiaall IISSCCAAPP AAllggoorriittmmoo NNoommee Inicio Objectivo:
EEssttrruuttuurraa ddee CCoonnttrroolloo SSeeqquueenncciiaall
IISSCCAAPP
AAllggoorriittmmoo NNoommee
Inicio
Objectivo:
Escrever o
1. [Declaração e Inicialização de Vari áveis]
conteúdo de uma
variável
Nome string
Nome ←”Ana“
anteriormente
inicializada
2. [Apresentação de Resultados]
ESCREVA (Nome)
Fim
PPáágg 2200
LLiissttaa ddee ee VVaarriiáávveeiiss IISSCCAAPP AAllggoorriittmmoo NNoommee Nome Tipo Descrição NOME Alfa
LLiissttaa ddee ee VVaarriiáávveeiiss
IISSCCAAPP
AAllggoorriittmmoo NNoommee
Nome
Tipo
Descrição
NOME
Alfa
Nome a escrever
PPáágg 2211
IInniicciiaalliizzaarr vvaarriiáávveell;; EEssccrreevveerr oo ss//vvaalloorr IISSCCAAPP Principais Conceitos:
IInniicciiaalliizzaarr vvaarriiáávveell;; EEssccrreevveerr oo ss//vvaalloorr
IISSCCAAPP
Principais Conceitos:
•Inicializar
INICIO
•Escrever
NOME ⇐ “ANA”
NOME
FIM
PPáágg 2222
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo NNoommee Passo Nome Saída 1. Ana 2. Ana PPáágg 2233
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo NNoommee
Passo
Nome
Saída
1.
Ana
2.
Ana
PPáágg 2233
EEssttrruuttuurraa ddee CCoonnttrroolloo SSeeqquueenncciiaall IISSCCAAPP AAllggoorriittmmoo SSoommaa Objectivo: Inicio
EEssttrruuttuurraa ddee CCoonnttrroolloo SSeeqquueenncciiaall
IISSCCAAPP
AAllggoorriittmmoo SSoommaa
Objectivo:
Inicio
1. [Declaração e Inicialização de Variáveis]
X real, Y real, Soma real
Soma Å 0
Ler 2 número e
escrever o valor
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
PPáágg 2244
LLiissttaa ddee ee VVaarriiáávveeiiss IISSCCAAPP AAllggoorriittmmoo NNoommee Nome Tipo Descrição X Real 1º
LLiissttaa ddee ee VVaarriiáávveeiiss
IISSCCAAPP
AAllggoorriittmmoo NNoommee
Nome
Tipo
Descrição
X
Real
1º Numero lido
Y
Real
2º Numero lido
Soma
Real
Resulltado da soma dos 2
nºs lidos
PPáágg 2255
LLeerr 22 NNººss ee EEssccrreevveerr aa ssuuaa SSoommaa IISSCCAAPP INICIO Principais Conceitos: •Inicializar X
LLeerr 22 NNººss ee EEssccrreevveerr aa ssuuaa SSoommaa
IISSCCAAPP
INICIO
Principais Conceitos:
•Inicializar
X ⇐ 0
•Ler
Y ⇐ 0
Soma ⇐ 0
•Calcular
•Escrever
X, Y
Soma ⇐ X + Y
Soma
FIM
PPáágg 2266
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo SSoommaa Dados para teste: X=56, Y=33 Passo X Y SOMA Saída 1.
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo SSoommaa
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
PPáágg 2277
EExxeerrccíícciiooss IISSCCAAPP • Elabore um Algoritmo estruturado para os exemplos 1, 2 , 3 e
EExxeerrccíícciiooss
IISSCCAAPP
• 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
9 Dados: 4500
– Exemplo 2
9 Dados: Cunha, André
– Exemplo 3
9 Dados: 400; 600; 700; 350
– Exemplo 4
9 Dados: 1000
PPáágg 2288
EExxeerrcciicciiooss IISSCCAAPP • Escreva um algoritmo que leia uma temperatura em graus Celsius e converta
EExxeerrcciicciiooss
IISSCCAAPP
• 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
traçagem para L1=5, L2=8.
Faça a
• Escreva um algoritmo, que leia as notas de um aluno (5
disciplinas) e calcule a média da turma
PPáágg 2299
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall IISSCCAAPP Se Condição Então Processo para
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall
IISSCCAAPP
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
PPáágg 3300
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee (versão 1.0)
Inicio
Objectivo:
1. [Declaração de Variáveis]
Numero real, Mensagem caractere
Ler 1 número e
escrever se é
positivo ou não
2. [Leitura do Número]
LEIA (Numero)
3 [Verificação da positividade e apresentação de resultados]
Se Numero > 0
Então
Senão
ESCREVA (“ O número “, Numero , “é positivo”)
ESCREVA (“ O número “, Numero , “ não é positivo”)
Fim se
Fim
PPáágg 3311
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee (versão 2.0)
Inicio
Objectivo: Ler
1. [Declaração de Variáveis]
Numero real, Mensagem caractere
1 número e
escrever se é
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
PPáágg 3322
LLiissttaa ddee ee VVaarriiáávveeiiss IISSCCAAPP AAllggoorriittmmoo NNoommee Nome Tipo Descrição Numero Real
LLiissttaa ddee ee VVaarriiáávveeiiss
IISSCCAAPP
AAllggoorriittmmoo NNoommee
Nome
Tipo
Descrição
Numero
Real
Numero lido
Mensagem
Alfa
Descrição da positividade
do numero lido
PPáágg 3333
LLeerr uumm NNºº ee EEssccrreevveerr aa ssuuaa PPoossiittiivviiddaaddee ((vveerrssããoo 11)) IISSCCAAPP Principais
LLeerr uumm NNºº ee EEssccrreevveerr aa ssuuaa
PPoossiittiivviiddaaddee ((vveerrssããoo 11))
IISSCCAAPP
Principais Conceitos:
INICIO
•Alternativa
Numero
(Se;Então;Senão)
Não
Sim
Numero > 0
Positivo
Não é
Positivo
FIM
PPáágg 3344
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11 00)) ((Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11
00))
((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
PPáágg 3355
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11 00)) Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11
00))
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
PPáágg 3366
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11 00)) Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 11
00))
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
PPáágg 3377
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall ccoommppoossttaa IISSCCAAPP Se Condição1 Então
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall ccoommppoossttaa
IISSCCAAPP
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
Senão
Escreva ( Numero ”é positivo!”)
Se Num < 0
Então Escreva (Numero ”é negativo!”)
Senão Escreva (Numero ”é nulo!”)
Fim se
Fim se
PPáágg 3388
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall ccoommppoossttaa IISSCCAAPP AAllggoorriittmmoo
EEssttrruuttuurraa ddee CCoonnttrroolloo CCoonnddiicciioonnaall ccoommppoossttaa
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee (versão 3.0)
Objectivo:
Inicio
1. [Declaração de Variáveis]
Mensagem caractere, Numero real
2. [Leitura do Número]
Ler 1 número e
indicar a sua
positividade
LEIA (Numero)
3 [Processamento - Verificação da positividade]
Se Numero > 0
Então
Senão
Mensagem ← “é positivo”
Se Numero = 0
Então Mensagem ← “ é nulo”
Senão Mensagem ← “é negativo”
Fim se
Fim se
PPáágg 3399
LLiissttaa ddee ee VVaarriiáávveeiiss IISSCCAAPP AAllggoorriittmmoo NNoommee PPáágg 4400
LLiissttaa ddee ee VVaarriiáávveeiiss
IISSCCAAPP
AAllggoorriittmmoo NNoommee
PPáágg 4400
LLeerr uumm NNºº ee EEssccrreevveerr aa ssuuaa PPoossiittiivviiddaaddee ((vveerrssããoo 33)) IISSCCAAPP Principais
LLeerr uumm NNºº ee EEssccrreevveerr aa ssuuaa
PPoossiittiivviiddaaddee ((vveerrssããoo 33))
IISSCCAAPP
Principais Conceitos:
INICIO
•Alternativa composta
Numero
(Se;Então;Senão(Se
))
Sim
Não
Numero > 0
Numero = 0
Nº Positivo
Sim
Não
Nº Nulo
Nº Negativo
FIM
PPáágg 4411
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33 00)) Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33
00))
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
PPáágg 4422
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33 00)) Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33
00))
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
PPáágg 4433
TTrraaççaaggeemm IISSCCAAPP AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33 00)) Dados para
TTrraaççaaggeemm
IISSCCAAPP
AAllggoorriittmmoo PPoossiittiivviiddaaddee ((vveerrssããoo 33
00))
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
EExxeerrccíícciiooss IISSCCAAPP • Escreva um algoritmo que leia um número e verifique se é divisível
EExxeerrccíícciiooss
IISSCCAAPP
• 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 ».
PPáágg 4455
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– EEnnqquuaannttoo IISSCCAAPP 1.1. [Inicializar variável de
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– EEnnqquuaannttoo
IISSCCAAPP
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
PPáágg 4466
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– PPaarraa II IISSCCAAPP Para I = X1 até Xn [Operações a
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– PPaarraa II
IISSCCAAPP
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)
PPáágg 4477
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– SSeelleecccciioonnaarr ccaassoo IISSCCAAPP Exemplo: Seleccionar
EEssttrruuttuurraa ddee RReeppeettiiççããoo –– SSeelleecccciioonnaarr ccaassoo
IISSCCAAPP
Exemplo:
Seleccionar Caso Opção
Caso Opção = 1
procedimento A
Caso Opção = 2
procedimento B
Caso Senão
procedimento ERRO
Fim Seleccionar
Seleccionar Caso Opção
Caso Opção = 1
ADICIONAR
Caso Opção = 2
ALTERAR
Caso Senão
ERRO
Fim Seleccionar
PPáágg 4488
EEssttrruuttuurraass ddee RReeppeettiiççããoo IISSCCAAPP Algoritmo Soma de 50 número Inicio Objectivo: 1.
EEssttrruuttuurraass ddee RReeppeettiiççããoo
IISSCCAAPP
Algoritmo Soma de 50 número
Inicio
Objectivo:
1. [Declaração e inicialização de Variáveis]
Numero real, Soma real, contador inteiro,
Soma ← 0
2. [Ciclo de Processa/ -Leitura dos nºs e cálculo da soma]
2.1. [Inicializar variável de controlo de ciclo]
Contador ← 0;
Enquanto Contador < 50
2.2. [Ler número]
Leia( Numero]
Soma [Actualização ← Soma do + Numero valor da Soma]
2.3. [Actualização da variável de Controlo do
Ler 50
números e
escrever o
valor da sua
soma
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
PPáágg 4499
EEssttrruuttuurraass ddee RReeppeettiiççããoo IISSCCAAPP AAllggoorriittmmoo MMááxxiimmoo Objectivo: Inicio 1.
EEssttrruuttuurraass ddee RReeppeettiiççããoo
IISSCCAAPP
AAllggoorriittmmoo MMááxxiimmoo
Objectivo:
Inicio
1.
[Declaração e inicialização de Variáveis]
Maximo real, Numero real, ; Contador inteiro
Maximo ← - 999999999 ; Contador ← 0
2.
[Processamento - Determinação do máximo]
2.1.
[Ciclo de Repetição]
Enquanto Contador < 10
Ler 10 números
escrever o
máximo valor
lido
2.2.
[Leitura do Número]
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
PPáágg 5500
LLiissttaa ddee ee VVaarriiáávveeiiss IISSCCAAPP AAllggoorriittmmoo MMááxxiimmoo Nome Tipo Descrição Número
LLiissttaa ddee ee VVaarriiáávveeiiss
IISSCCAAPP
AAllggoorriittmmoo MMááxxiimmoo
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
PPáágg 5511
LLeerr 1100 nnººss ee eessccrreevveerr vvaalloorr ddoo MMaaiioorr IISSCCAAPP INICIO Principais Conceitos: •Ciclo
LLeerr 1100 nnººss ee eessccrreevveerr vvaalloorr ddoo MMaaiioorr
IISSCCAAPP
INICIO
Principais Conceitos:
•Ciclo de Repetição
•Enquanto Cond
Máximo⇐ -∞
Numero ⇐ 0
Contador ⇐ 0
Sim
Não
Contador <10
Numero
Máximo
Numero >Máximo
Sim
Não
Máximo=Numero
FIM
Contador=Contador+1
PPáágg 5522
EExxeerrccíícciiooss IISSCCAAPP 1. Escreva um algoritmo que leia uma lista de valores e determine o
EExxeerrccíícciiooss
IISSCCAAPP
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.
PPáágg 5533
EExxeerrccíícciiooss IISSCCAAPP 4. Escreva um algoritmo que leia uma Lista de números cujo tamanho é
EExxeerrccíícciiooss
IISSCCAAPP
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.
PPáágg 5544
EExxeerrccíícciiooss IISSCCAAPP 7. A empresa XPTO, SA distribuidora de componentes para automóveis, pretende fazer a
EExxeerrccíícciiooss
IISSCCAAPP
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
Família do Produto
Tipo de veículo
(1- Norte; 2 - Sul; 3 - Centro)
(1- Pneus; 2 - Jantes)
(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.
PPáágg 5555
EExxeerrccíícciiooss IISSCCAAPP 8. Considere uma Empresa que comercializa dois tipos de Produtos - A e
EExxeerrccíícciiooss
IISSCCAAPP
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.
PPáágg 5566
EExxeerrccíícciiooss IISSCCAAPP a) Pretende-se que para cada encomenda seja verificada a quantidade existente para o
EExxeerrccíícciiooss
IISSCCAAPP
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.
PPáágg 5577