Você está na página 1de 60

ALGORITMOS E

PROGRAMAÇÃO I
AULA 01 – Algoritmos

Prof. Salatiel Dantas


O QUE É UM
ALGORITMO?
PROBLEMA E SOLUÇÃO

• Problema:
• Dificuldade na obtenção de um objetivo;
• Situação ou questão que requer uma solução.

• Solução:
• Resposta que resolve um problema.

• Situação sem solução = Não existe problema.

3
VISÃO
VISÃOSIMPLES
SIMPLES

Problema

Solução

4
VISÃO
VISÃOGERAL
SIMPLES

Problema

Solução

5
VISÃO
VISÃOGERAL
SIMPLES

Problema

Solução

Algoritmo
6
DEFINIÇÃO PARCIAL

• Caminho a ser seguido para se passar de um problema a


uma solução;
• Para o mesmo problema e mesma solução podem existir
diversos caminhos distintos.

7
VAMOS FAZER UM
BOLO?
SEGUIR A RECEITA

• Adquirir ingredientes;

• Realizar procedimentos do modo de preparo;


• Verificar se o resultado é satisfatório.

9
UMA RECEITA QUALQUER

» Modo de preparo
» Ingredientes › Acrescente a farinha, oleite e o
› Alguns ovos; fermento;
› Um pouco de margarina; › Leve ao forno;
› Um bocado de açúcar; › Junte os ovos, o açúcar e a
› Bastante farinha de trigo; margarina e bata no
› Alguns goles de leite; liquidificador;
› Quase nada de fermento. › Coloque numa forma
untada.

10
UMA RECEITA QUALQUER

» Modo de preparo
» Ingredientes › Acrescente a farinha, oleite e o
› Alguns ovos; fermento;
› Um pouco de margarina; › Leve ao forno;
› Um bocado de açúcar; › Junte os ovos, o açúcar e a
› Bastante farinha de trigo; margarina e bata no
› Alguns goles de leite; liquidificador;
› Quase nada de fermento. › Coloque numa forma
untada.

Quais são os problemas desta receita?


11
CARACTERÍSTICAS DE UM ALGORITMO

• PRECISO;

• PASSOS SEQUENCIAIS E ORDENADOS;


• NÃO AMBÍGUO;

• FINITO.

12
DEFINIÇÃO FORMAL

• Conjunto de passos finitos e organizados que, quando


executados, resolvem um determinado problema;
• Um conjunto finito de regras, bem definidas, para a
solução de um problema específico em um tempo finito;
• É uma sequência de instruções finita e ordenada de forma
logica para a execução de uma determinada tarefa ou
resolução de um problema.

13
CARACTERÍSTICAS
• Finitude: algoritmos devem terminar após um numero
finito de passos;
• Não-ambiguidade: cada passo deve ser precisamente
definido;
• Efetividade: todas as operações devem ser simples de
modo que possam ser executadas em um tempo limitado;
• Legibilidade: os passos devem ser básicos e claros, de
modo que possam ser compreensíveis para outras pessoas;
• Portabilidade: seus passos devem ser facilmente
traduzidos para qualquer linguagem de programação.
14
CURIOSIDADES ALGORITMO

• A palavra algoritmo vem do nome do matemático Abu


Abdullah Mohammad Ibn Musa al-Khawarizmi, nascido
em Khawarizm(Kheva), ao sul do mar Aral, que viveu no
século XVII.

• Algoritmo considerado mais antigo (400 a 300 AC):


Algoritmo de Euclides, que calcula o máximo divisor
comum (MDC) de dois números inteiros positivos

15
PRINCIPAIS REPRESENTAÇÕES DE ALGORITMOS
• Descrição Narrativa:
• Texto comum;
• Ordenado numericamente.
• Fluxograma:
• Mapa mental;
• Rotas seguidas pelo algoritmo;
• Símbolos e Setas
• PseudoCódigo:
• Linguagem apropriada
• Palavras-chave
• Expressões
• Operações
16
DESCRIÇÃO
NARRATIVA
DESCRIÇÃO NARRATIVA

• Consiste em analisar o enunciado do problema e escrever


utilizando linguagem natural, os passos a serem seguidos
para sua resolução.
• Vantagem: não é necessário aprender nenhum conceito
novo.
• Desvantagem: a linguagem natural abre espaço para
várias interpretações (ambiguidade), o que pode dificultar
a transcrição do algoritmo para o programa.

18
ALGORITMO TROCAR A LÂMPADA

• Diante de uma lâmpada que não liga, descrever um


algoritmo em descrição narrativa para resolver o
problema.

19
ALGORITMO TROCAR A LÂMPADA
1. Início 17. Senão
2. Verifica se o interruptor está 18. Tarefa terminada;
desligado; 19.Guarda a escada;
3. Procura uma lâmpada nova; 20. Fim
4. Pega uma escada;
5. Leva a escada até o local;
6. Posiciona a escada;
7. Sobe os degraus;
8. Para na altura apropriada;
9. Retira a lâmpada queimada;
10. Coloca a lâmpada nova;
11. Desce da escada;
12. Aciona o interruptor;
13. Se a lâmpada não acender, então:
14.Retira a lâmpada queimada;
15. Coloca outra lâmpada nova
16. Jogar a lâmpada queimada

20
ALGORITMO DA TRAVESSIA

• Levar um leão, uma cabra e um pedaço de grama de um


lado para outro de um rio, atravessando com um bote.
• Restrições:

• O leão não pode ficar sozinho com a cabra;

• A cabra não pode ficar sozinha com a grama;

• No máximo 2 indivíduos no bote por travessia e no mínimo 1.

21
ALGORITMO DA TRAVESSIA

1. Levar a cabra;
2. Voltar;
3. Levar o leão;
4. Voltar com a cabra;
5. Levar a grama;
6. Voltar;
7. Levar a cabra.

22
ALGORITMO PADARIA

• A esposa pede ao marido, um programador, para ir à


mercearia e diz:
• “Compre duas salsichas e se eles tiverem ovos compre 10″.

• O marido deve comprar 10 ovos e duas salsichas ou 10


salsichas?

23
ALGORITMO PADARIA

• A esposa pede ao marido, um programador, para ir à


mercearia e diz:
• “Compre duas salsichas e se eles tiverem ovos compre 10″.

• O marido deve comprar 10 ovos e duas salsichas ou 10


salsichas?
• Esse algoritmo pode ter interpretações diferentes.

24
FLUXOGRAMA
FLUXOGRAMA

• Consiste em analisar o enunciado do problema e escrever,


utilizando símbolos gráficos pré-definidos, os passos a
serem seguidos para sua resolução.
• Vantagem: conhecendo os símbolos, entender um
algoritmo escrito em fluxograma é mais simples que
entender algoritmo narrativo;
• Desvantagem: é necessário aprender a simbologia dos
fluxogramas.

26
FLUXOGRAMA

• Diagramas com símbolos;


• Identificam as instruções do algoritmo;
• Apresentam as rotas de solução;
• Símbolos diferentes para cada tipo de instrução.

27
FLUXOGRAMA

• MARCADORES DE INÍCIO E FIM:


• Formas semelhantes;
• Apenas um início por algoritmo;
• Possibilidade de vários marcadores de fim

28
FLUXOGRAMA

• ENTRADA DE DADOS:
• Indica um ponto onde os dados são solicitados;
• Espaços de armazenamento são necessários;
• Um ou mais valores podem ser solicitados, desde que separados por
vírgula.

29
FLUXOGRAMA

• SAÍDA DE DADOS:
• Divulgação de resultados ou comunicação textual;
• Vários elementos podem ser divulgados, desde que separados por
vírgula.

30
FLUXOGRAMA

• CÁLCULO DE EXPRESSÃO/PROCESSAMENTO DE DADOS:


• Espaço para realização de operações;
• Espaços de armazenamento são necessários para receber os
resultados;
• Várias operações podem ser realizadas por vez, sendo uma por linha

31
FLUXOGRAMA

• TOMADA DE DECISÃO:
• Único ponto do sistema onde pode haver bifurcação de caminhos;
• Uma pergunta é feita. Possíveis respostas: sim ou não;
• Resposta booleana;
• A direção do fluxo dependerá da resposta.

32
FLUXOGRAMA

• FLUXO:
• Conecta os componentes do fluxograma;
• Indica a direção do fluxo do algoritmo;
• Sempre unidirecional

33
FLUXOGRAMA
• ESPAÇOS DE MEMÓRIA:
• Objeto que armazenará um valor:
• Fornecido pelo usuário;
• Calculado pelo algoritmo;

• O nome de um espaço de armazenamento;


• Não deve possuir espaços;
• Não deve iniciar com números;
• Não deve possuis caracteres especiais nem acentos;

• = [Operador de atribuição]
• Utilizado para se atribuir um valor a um espaço.
34
FLUXOGRAMA
• OPERADORES MATEMÁTICOS:
+ [Adição];
- [Subtração];
* [Multiplicação];
/ [Divisão].

Figura em que podem aparecer:


35
FLUXOGRAMA
• OPERADORES RELACIONAIS:
== [Igualdade];
!= [Diferença];
< [Menor];
> [Maior];
<= [Menor ou igual];
>= [Maior ou igual]
Figura em que podem aparecer
36
FLUXOGRAMA
• EXEMPLOS DE EXPRESSÕES:
3 == 3
3 != 4
2<7
9>8
5 >= 4
4 <= 5
Os resultados destas operações resulta em sim ou não
37
FLUXOGRAMA
• DETALHES ADICIONAIS:
Ao se utilizar texto, conteúdo é disposto entre aspas duplas

“Inicializando o algoritmo”

38
FLUXOGRAMA - SIMBOLOGIA

39
FLUXOGRAMA - Exemplo

• Algoritmo: calcular a área de um quadrado.


1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo;
3. Divulgar o resultado.

40
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo;
3. Divulgar o resultado.

41
Início
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo;
3. Divulgar o resultado.

42
Início
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
lado
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo;
3. Divulgar o resultado.

43
Início
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
lado
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo; area = lado * lado
3. Divulgar o resultado.

44
Início
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
lado
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo; area = lado * lado
3. Divulgar o resultado.

area

45
Início
FLUXOGRAMA - Exemplo
• Algoritmo: calcular a área de um
lado
quadrado.
1. Obter o valor do lado do quadrado;
2. Multiplicar o valor obtido por ele mesmo; area = lado * lado
3. Divulgar o resultado.

area

Fim

46
FLUXOGRAMA - SIMBOLOGIA

Média de notas

Início

“Aprovado” Fim
N1, N2
Sim

Media “Reprovado”
Media = (N1+N2)/2
>= 7? Não

47
INTERFACE
AMIGÁVEL
INTERFACE AMIGÁVEL

• Interação com o usuário deve ser clara;


• O usuário não pode ter dúvidas sobre como
proceder em seu algoritmo;
• O programa deve guiar o usuário em suas ações;
• O planejamento do algoritmo deve prever as
possíveis interações com o usuário.

49
ADAPTAÇÃO

• Adicionar textos explicativos ao longo do algoritmo;


• Solicitar informações diretamente do usuário;
• Divulgar os resultados do algoritmo de forma clara.

50
FLUXOGRAMA – Área do Quadrado (Interface
Amigável)

51
CONSTRUINDO ALGORITMOS

• Uma boa pratica para construir algoritmos e dividir o


problema em três fases: Entrada, Processamento e Saída.

Entrada Processamento Saída

Entrada: São os dados de entrada do algoritmo (fornecidos antes do algoritmo ser


iniciado);
Processamento: São os procedimentos utilizados (cálculos efetuados) para chegar ao
resultado final;
Saída: São os dados já processados.
52
CONSTRUINDO ALGORITMOS - Média

Entrada Processamento Saída

Nota 1
(Nota 1 + Nota 2 + Nota 3)
Nota 2 Resultado
Resultado = Soma/3
Nota 3

53
EXERCÍCIOS

1. Construa um algoritmo SIMBOLOGIA FLUXOGRAMA


(Descrição Narrativa e
Fluxograma) que:
• Receba três números do Usuário;
• Informe a soma dos três números
recebidos.

• Adicione uma interface amigável.

54
RESOLUÇÃO FLUXOGRAMA INÍCIO

1. Construa um algoritmo “Digite três valores”

(Descrição Narrativa e
Fluxograma) que: N1, N2, N3
• Receba três números do Usuário;
• Informe a soma dos três números
recebidos. SOMA = N1+N2+N3

• Adicione uma interface amigável.


“A soma é: ”, SOMA

FIM

55
EXERCÍCIOS

2 - Construa um algoritmo SIMBOLOGIA FLUXOGRAMA

(Descrição Narrativa e
Fluxograma) que:
• Receba um numero inteiro;
• Informe se o numero recebido e
negativo ou positivo. Considere o
valor zero sendo positivo.

• Adicione uma interface amigável

56
RESOLUÇÃO FLUXOGRAMA INÍCIO

2 - Construa um algoritmo “Digite um valor”

(Fluxograma e Pseudocódigo)
que:
• Receba um numero inteiro; N1

• Informe se o numero recebido e


negativo ou positivo. Considere o
valor zero sendo positivo. N1>=0?
Sim
“Número é Positivo”

• Adicione uma interface amigável


Não

“Número é Negativo”

FIM
57
EXERCÍCIOS

3 - Construa um algoritmo SIMBOLOGIA FLUXOGRAMA

(Descrição Narrativa e
Fluxograma) que:
• Receba dois números inteiros;
• Informe qual dos números
recebidos é o maior ou se eles são
iguais.

• Utilizar uma interface amigável

58
EXERCÍCIOS
INÍCIO

N1, N2 “Digite dois valores”

3 - Construa um
algoritmo (Descrição
Narrativa e Fluxograma)
Sim
“O Maior Número é: ”,
N1>N2? N1
que:
• Receba dois números Não

inteiros;
• Informe qual dos N2>N1?
Sim “O Maior Número é: ”,
N2
números recebidos é o
maior ou se eles são Não
iguais.
“Os Números são
• Utilizar Interface Iguais” FIM

Amigável
59
DÚVIDAS?
Contanto: salatiel.dantas@ufersa.edu.br

Você também pode gostar