Você está na página 1de 38

Algoritmos

ESTRUTURAÇÃO DE
ALGORITMOS
PROF. MSC. VICTOR MANUEL RIVA DE OLIVEIRA
V I C TO R O L I V E I R A 4 @ P R O F E S S O R . M U LT I V I X . E D U . B R

A U L A A D A P TA D A A PA R T I R D O M AT E R I A L C E D I D O P E L A

P R O F ª M A R I A N A A LT O É M E N D E S

1
Algoritmo

2
Algoritmo
Antes de construir um algoritmo, pare para pensar e
identificar:
o Quais dados são necessários para começar o algoritmo?
Que dados ele vai precisar para executar? – ENTRADA
o Quais são os cálculos que precisam ser feitos e quais
decisões precisam ser tomadas? – PROCESSAMENTO
o Quais dados devem ser exibidos para o usuário? – SAÍDA

3
Algoritmo
❖ Características
o Finalidade Única;
oTamanho finito;
o Tempo de execução finito;
o Imutabilidade;
o Não dá margem à dupla interpretação (não ambíguo);
o Capacidade de receber dado(s) de entrada do mundo exterior;
o Pode gerar informações de saída para o mundo externo.

4
Algoritmo
❖ Requisitos
o Definição Rigorosa para evitar ambiguidade na sua interpretação. Isto
pode ser conseguido usando um pequeno conjunto de instruções de
significado único e propósito geral que permitam escrever qualquer
algoritmo.
Exemplos: ler, escrever, se/então/senão, repetir.

o Legibilidade para facilitar a comunicação para outras pessoas. Isto


ajuda no desenvolvimento de novos algoritmos, porque há muitos
problemas semelhantes que podem ser resolvidos de maneira análoga.

5
Algoritmo
❖ Requisitos
o Portabilidade: evitar dependências de características
específicas de uma linguagem de programação, ou de um
computador. Exemplo: cálculo de potências e raízes.

6
Algoritmo
❖Estratégias para Diminuir a Complexidade

o Particionamento (também chamado de Dividir para


Conquistar). A decomposição pode ser hierárquica, partindo do
geral para o particular (abordagem top-down) ou vice-versa
(abordagem bottom-up).

o Planejamento reverso consiste em identificar, a partir dos


dados de saída, a composição dos dados de entrada e as
transformações necessárias.

7
Algoritmo
Podemos definir um algoritmo como: uma sequência de
passos que visa atingir um objetivo bem definido; ou seja, os
conceitos de algoritmo são bem amplos, sendo importante
salientar que qualquer tarefa que siga determinado padrão
pode ser descrita por um algoritmo.

8
Método para a construção de
algoritmos
a) Ler atentamente o enunciado, destacando os pontos mais
importantes;
b) Definir os dados de entrada, ou seja, quais dados serão
fornecidos;
c) Definir o processamento, ou seja, quais cálculos serão
efetuados e quais as restrições para esses cálculos. O
processamento é responsável pela transformação dos
dados de entrada em dados de saída;

9
Método para a construção de
algoritmos
d) Definir os dados de saída, ou seja, quais dados serão
gerados depois do processamento;
e) Construir o algoritmo utilizando um dos tipos descritos na
próxima seção;
f) Testar o algoritmo realizando simulações.

10
Representação dos algoritmos
❖Descrição Narrativa:
o Faz uso do português normal, sem tirar, nem por, com o objetivo
de descrever os passos principais da solução para um problema.
Uma receita de bolo, por exemplo, é uma descrição narrativa. Outros
exemplos são tomar banho e calcular a média de um
aluno.

11
Representação dos algoritmos

12
Representação dos algoritmos

13
Representação dos algoritmos
❖Descrição Narrativa:
o Vantagem?

o Desvantagens?

14
Representação dos algoritmos
❖Descrição Narrativa:
o Vantagem? Todos falamos e conhecemos o português e
sabemos, de alguma forma, fazer uma descrição, uma lista de atividades.
o Desvantagens? Não há um padrão! Cada pessoa pode escrever como
quiser (em tópicos, sem tópicos, usando verbos no infinitivo ou não, etc).
Outra desvantagem é a imprecisão, uma vez que a especificação pode
não ficar clara ou ficar ambígua, ou seja, cada um pode interpretar de
uma forma.
o Por exemplo, em algumas receitas de bolo você pode encontrar a frase “leve
ao forno até assar”. Algumas pessoas poderiam saber exatamente quando
o bolo está assado, outras pessoas não. Levando a pergunta “e aí, quando o
bolo estará assado?” Por último, há o perigo de se escrever muito para dizer
pouca coisa ou da pessoa não saber se expressar bem e ser confusa na
escrita.

15
Representação dos algoritmos
❖Fluxograma:
o Consiste em analisar o enunciado do problema e escrever, utilizando
símbolos gráficos predefinidos, os passos a serem seguidos para
resolução do problema.

16
17
18
Representação dos algoritmos
❖Fluxograma:
o Vantagem?

o Desvantagens?

19
Representação dos algoritmos
❖Fluxograma:
o Vantagem? Utiliza blocos e diagramas para indicar o que deve ser feito
pelo algoritmo (o entendimento de elementos gráficos normalmente é
mais fácil que o entendimento de textos). Padrão mundial definido e
conhecido.
o Desvantagens? Fica complexo quando o algoritmo é mais extenso. O
algoritmo resultante não apresenta muitos detalhes, o que pode
dificultar sua transcrição para um programa.

20
Representação dos algoritmos
❖Fluxograma:

oSuponha um algoritmo para calcular a média de um aluno


e apresenta-la para o usuário. Como ele ficaria
representado usando fluxograma?

21
Representação dos algoritmos
❖Fluxograma:

22
Representação dos algoritmos
❖Fluxograma:

oSuponha um algoritmo para calcular a média de um aluno


no qual é necessário checar se o aluno foi aprovado ou
não, supondo que a média mínima é 6. Como ele ficaria
representado usando fluxograma?

23
Representação dos algoritmos
❖Fluxograma:

24
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:

o Analisar o enunciado do problema e escrever, por meio de regras


predefinidas, os passos a serem seguidos para resolução do problema.
o Essa linguagem surgiu para tentar suprir as deficiências das outras
representações. Consiste na definição de uma pseudolinguagem de
programação, cujos comandos são em português, mas já lembram
um pouco a estrutura de uma linguagem de programação estruturada,
ou seja, a pseudolinguagem se assemelha muito ao modo como
os programas são escritos. Isso vai permitir que os algoritmos nela
representados possam ser traduzidos, quase que diretamente,
para uma linguagem de programação.

25
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:
o Algoritmo para calcular a média

26
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:

27
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:

28
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:

29
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:

30
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo/Fluxograma:

31
Representação dos algoritmos
❖Linguagem Algorítmica ou Pseudocódigo:
o Vantagem? A transcrição para qualquer linguagem de
programação é quase que direta. Ela é a forma de representação mais
poderosa de todas porque nela é possível definir, com riqueza de
informações, quais os dados que serão utilizados, o tipo dos mesmos e
até se eles serão agrupados (estruturados) de alguma forma (para
formar conjuntos).

o Desvantagens? É necessário aprender as regras do


pseudocódigo. A linguagem algorítmica não é padronizada (podem
existir várias versões da mesma).

32
Representação dos algoritmos
❖Exercícios
Representar os algoritimos abaixo das três maneiras
estudadas
1. Faça um algoritmo para mostrar o resultado da multiplicação de dois
números.
2. Faça um algoritmo para mostrar o resultado da divisão de dois
números.
3. Faça um algoritmo para calcular a média aritmética entre duas notas
de um aluno e para mostrar a situação desse aluno, que pode ser
aprovado ou reprovado.
4. Faça um algoritmo para calcular o novo salário de um funcionário.
Sabe-se que os funcionários que possuem salário atual até R$ 500,00
terão aumento de 20%, os demais terão aumento de 10%.

33
Representação dos algoritmos
1.

34
Representação dos algoritmos
2.

35
Representação dos algoritmos
4.

36
Representação dos algoritmos
❖Exercícios
Representar o algortimo em descrição narrativa, fluxograma e
pseudocódigo

1. Ler um valor de temperatura em Fahrenheit e calcular o seu valor


correspondente em Celsius e, depois, apresentar esse valor ao usuário.

37
Algoritmos
ESTRUTURAÇÃO DE
ALGORITMOS
PROF. MSC. VICTOR MANUEL RIVA DE OLIVEIRA
V I C TO R O L I V E I R A 4 @ P R O F E S S O R . M U LT I V I X . E D U . B R

A U L A A D A P TA D A A PA R T I R D O M AT E R I A L C E D I D O P E L A

P R O F ª M A R I A N A A LT O É M E N D E S

38

Você também pode gostar