AULA 6
MODELOS E SIMULAÇÃO DE SISTEMAS
ALGORITMOS
Autor: Anibal Tavares de Azevedo
ALGORITMOS E
PROGRAMAÇÃO DE COMPUTADORES
ALGORITMOS
O que é um Algoritmo?
É uma sequência finita de passos que resolve um dado problema ! Um bom exemplo de algoritmo é uma receita de bolo, pois a ordem dos passos pode mudar o resultado final!
+
ALGORITMOS
1 2
3
4
ALGORITMOS
Um algoritmo é conjunto finito de instruções, com uma ou mais operações capazes de serem executadas (por um computador) em tempo finito, para realização de uma tarefa específica.
x
y
ALGORITMOS
ALGORITMOS
IF/ELSE – ESTRUTURA DE SELEÇÃO
IF/ELSE – ESTRUTURA DE SELEÇÃO
Exemplo 1: Escrever um algoritmo, um programa e um fluxograma para o problema de ler duas variáveis a e b e imprimir a de maior valor.
Algoritmo de maior valor
Variáveis a,b; Início
Leia(a, b);
Se(a < b) então
imprimir(b); //impressao de b (maior que a)
Senão
imprimir(a); //impressao de a (maior que b)
Fim Se
#include <stdio.h> #include <stdlib.h>
main() {
int a, b;
printf(“Digite a e b: ”); scanf(“%d %d”, &a, &b); if(a < b)
printf(“%d”, b); //impressao de b (maior que a)
else
printf(“%d”, a); //impressao de a (maior que b)
}
Exemplo 1: Escrever um algoritmo, um programa e um fluxograma para o problema de ler duas variáveis a e b e imprimir a de maior valor.
Fluxograma: principais símbolos empregados
IF/ELSE – ESTRUTURA DE SELEÇÃO
Fluxograma de maior valor
V
Início
Ler (a, b);
a < b
Final
F
Imprime(a) Imprime(b)
Exemplo 1: Escrever um algoritmo, um programa e um fluxograma para o problema de ler duas variáveis a e b e imprimir a de maior valor.
Fluxograma de maior valor
V
Início
Ler (a, b);
a < b
Final
F
Imprime(b) Imprime(a)
SE
SENÃO
Condição lógica
Exemplo 1: Escrever um algoritmo, um programa e um fluxograma para o problema de ler duas variáveis a e b e imprimir a de maior valor.
IF/ELSE – ESTRUTURA DE SELEÇÃO
ALGORITMOS
ALGORITMOS
Exercício 2: Escrever um algoritmo para o problema de precificação dinâmica.
Caso 1
x
y
f(x) = volume de vendas
ymin = volume mínimo de vendas
Caso 2
x
y
ymin
f(x)
f(x) = volume de estoque ymin = volume mínimo estoque
ymin
f(x)
ALGORITMOS
Exercício 2: Escrever um algoritmo para o problema de precificação dinâmica.
Caso 1
x
y
f(x) = volume de vendas
ymin = volume mínimo de vendas
x
y
ymin
f(x)
g(x) = valor do preço
g(x)
Caso 1
ALGORITMOS
Exercício 2: Escrever um algoritmo para o problema de precificação dinâmica.
Caso 2
x
y
f(x) = volume de estoque ymin = volume mínimo estoque
ymin
f(x)
x
y
g(x) = valor do preço
g(x)
t
Caso 2
t
ALGORITMOS
ALGORITMOS
Exercício 2: Escrever um algoritmo para o problema de precificação dinâmica.
Algoritmo de precificação dinâmica simples
Leia(preco, vendas, estoque, valormin, estoquemin);
Se(vendas < valormin) então
preco ←preco * 0.7; *Redução de 70% no preço*
Senão
Se(estoque < estoquemin) então
preco ←preco * 1.2; *Aumento de 20% no preço*
Fim Se
Fim Se
A estrutura de repetição (Enquanto ou while) consiste em realizar a repetição de comandos até que uma condição lógica torne-se falsa. Se a condição lógica, em algum momento, não assumir o valor lógico falso, então, teremos um laço infinito!
WHILE - ESTRUTURA DE REPETIÇÃO
Algoritmo de Limpeza
Variáveis sujeira, limpeza; Início
Leia(sujeira, limpeza);
Enquanto(limpeza < sujeira)então Imprimir(Limpar);
sujeira = sujeira – 1;
Fim Enquanto F
condição V comandos
While (condição)
Observe que no exemplo da charge o laço está incorreto, pois ele realiza a ação até que a
condição lógica torne-se verdadeira !
WHILE - ESTRUTURA DE REPETIÇÃO
F
condição V comandos
While (condição)
Terminador
WHILE - ESTRUTURA DE REPETIÇÃO
Decisão ou
Condição lógica
WHILE - ESTRUTURA DE REPETIÇÃO
ALGORITMOS
1
Ser finito: terminar após um número finito depassos.2
Serprecisão o que deve ser realizado.exato: seus passos devem indicar comUm algoritmo sempre deve:
3
Tertransformadas em dados, de saída.dados: de entrada, a serem processados eALGORITMOS
Um algoritmo pode ser descrito por meio de pseudo-código, fluxograma ou uma linguagem de programação específica. 1 Pseudo-código vendas < valormin 2 Fluxograma Sim Não #include <stdio.h> main() {
if (vendas < valormin); }
3 Código em linguagem C
ALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
Algoritmo de precificação dinâmica simples
Leia(preco, vendas, estoque, valormin, estoquemin);
Se(vendas < valormin) então
preco ←preco * 0.7; *Redução de 70% no preço*
Senão
Se(estoque < estoquemin) então
preco ←preco * 1.2; *Aumento de 20% no preço*
Fim Se
ALGORITMOS
Fluxograma: principais símbolos empregados
ALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
V
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
vendas< valormin
preco←preco*0.7
Final
F
ALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
V
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
vendas< valormin
preco←preco*0.7
Final
F
Verificar aumento de preço Atribuição de valorSE
SENÃO
Condição lógicaALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
V
estoque< estoquemin
preco←preco*1.2
F
ALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
V
estoque< estoquemin
preco←preco*1.2
F
Verificar aumento de preço Condição lógicaSE
SENÃO
ALGORITMOS
Exercício 3: Escrever um fluxograma para o algoritmo do problema de precificação dinâmica.
V
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
vendas< valormin
preco←preco*0.7
Final
F
Verificar aumento de
ALGORITMOS
No paradigma de programação estruturada, os Programas são escritos considerando apenas combinação adequadas de 3 estruturas básicas:
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
SEQUÊNCIA
1
ALGORITMOS
No paradigma de programação estruturada, os Programas são escritos considerando apenas combinação adequadas de 3 estruturas básicas:
V
estoque< estoquemin
preco←preco*1.2
F
SELEÇÃO SIMPLES
ALGORITMOS
V
vendas< valormin
preco←preco*0.7
F
No paradigma de programação estruturada, os Programas são escritos considerando apenas combinação adequadas de 3 estruturas básicas:
SELEÇÃO COMPOSTA
2
SE
SENÃO
ALGORITMOS
V
vendas< valormin
preco←preco*0.7
F
No paradigma de programação estruturada, os Programas são escritos considerando apenas combinação adequadas de 3 estruturas básicas:
ITERAÇÃO
3
ALGORITMOS
As estruturas básicas podem ser combinadas entre si, utilizando apenas duas regras:
REGRA DO ANINHAMENTO
1
Um retângulo de uma estrutura pode ser substituído por uma outra estrutura qualquer.
REGRA DO EMPILHAMENTO
2
O ponto de saída de uma estrutura pode ser conectado ao ponto de entrada de outra estrutura.
ALGORITMOS
As estruturas básicas podem ser combinadas entre si, utilizando apenas duas regras:
V
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
vendas< valormin
preco←preco*0.7
ALGORITMOS
As estruturas básicas podem ser combinadas entre si, utilizando apenas duas regras:
V
Início
Ler preco, vendas, estoque, Valormin, estoquemin;
vendas< valormin
preco←preco*0.7
Final
F
Verificar aumento de preço
REGRA DO EMPILHAMENTO
2
ALGORITMOS
As regras podem ser aplicadas quantas vezes forem necessárias, e em qualquer ordem.
Os fluxogramas resultantes da aplicação dessas regras constituem o conjunto de todos os fluxogramas estruturados possíveis.