Vous êtes sur la page 1sur 44

INFORMÁTICA APLICADA

AULA 11 – Algoritmos

Prof. Salatiel Dantas


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

2
DEFINIÇÃO

• 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.

3
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.
4
PRINCIPAIS REPRESENTAÇÕES DE ALGORITMOS

• Descrição Narrativa;
• Fluxograma;
• Pseudocódigo.

5
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.

6
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.

7
ALGORITMO TROCAR A LÂMPADA
Início
Verifica se o interruptor está desligado;
Procura uma lâmpada nova;
Pega uma escada;
Leva a escada até o local;
Posiciona a escada;
Sobe os degraus;
Para na altura apropriada;
Retira a lâmpada queimada;
Coloca a lâmpada nova;
Desce da escada;
Aciona o interruptor;
Se a lâmpada não acender, então:
Retira a lâmpada queimada;
Coloca outra lâmpada nova
Joga a lâmpada queimada no lixo;
Senão
Tarefa terminada;
Fim Se
Guarda a escada;
Fim 8
ALGORITMO SACAR DINHEIRO

• 1. Ir até um caixa eletrônico;


• 2. Colocar o cartão;
• 3. Digitar a senha;
• 4. Solicitar a quantia desejada;
• 5. Se o saldo for maior ou igual a quantia desejada,
• sacar dinheiro; caso contrário, mostrar mensagem de
• impossibilidade de saque;
• 6. Retirar cartão;
• 7. Sair da agência. 9
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?

10
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.

11
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.

12
FLUXOGRAMA - SIMBOLOGIA

• Uso de formas geométricas distintas produzindo ações


distintas. Principais figuras:

13
FLUXOGRAMA - SIMBOLOGIA

Lâmpada

Sim

14
FLUXOGRAMA - SIMBOLOGIA

Média de notas

Sim

Não

15
PSEUDOCÓDIGO

• Consiste em analisar o enunciado do problema e escrever,


por meio de regras pré-definidas, os passos a serem
seguidos para sua resolução.
• Vantagem: a passagem do algoritmo para qualquer
linguagem de programação é quase imediata, basta
conhecer os códigos da linguagem;
• Desvantagem: é necessário aprender as regras do
pseudocódigo.
16
PSEUDOCÓDIGO

• Uso de linguagem própria, aproximando-se mais das


linguagens de alto nível, chamado, também de
pseudolinguagem ou ainda portugol. Forma geral:

algoritmo <nome do algoritmo>


< declaração_de_variáveis >
início
< instruções >
fimalgoritmo
17
PSEUDOCÓDIGO
algoritmo <nome do algoritmo>
< declaração_de_variáveis >

• As variáveis são mecanismos utilizados para referenciar a


memória principal;
• Sempre que precisarmos armazenar, buscar, alterar informações
que estão na memória, devemos fazê-lo por meio de variáveis;
• Em algoritmos geralmente é preciso armazenar um valor de entrada
ou um resultado de uma operação. Isso é feito com variáveis.

18
PSEUDOCÓDIGO - VARIÁVEIS

• A memória principal possui endereços: 0, 1, 2, ..., n-1;


• Durante a criação de um algoritmo, dificilmente podemos Informação Endereço
saber quais posições estão livres, ou quanto de memória o
computador tem; 10 0
• As linguagens de programação nos permitem usar variáveis
como rótulos para as posições de memória; 25 1

• Se fizermos em nosso algoritmo: 2


• Var soma;
‘Chrome’
• Isto indica que precisamos de uma posição de memória para
3
armazenar algum valor; 4
• Então o sistema operacional, que cuida da memória principal, Memória principal
irá definir um dos endereços (2 ou 4 já que estão livres) para
nosso programa e permitirá o acesso a partir da variável soma
19
PSEUDOCÓDIGO - VARIÁVEIS

• Se realizarmos a operação:
• soma = 2+3 Informação Endereço

• Isto indica que a após a soma dos valores 2 e 3, que


10 0
resulta em 5, o dado resultante será armazenado na
memória principal no endereço representado por 25 1
soma;
‘soma’ <-> 2
• Nesse caso, o endereço que soma representa é o
endereço 2 da memória principal. ‘Chrome’ 3

4
Memória principal

20
PSEUDOCÓDIGO - VARIÁVEIS

• O endereço que soma representa é o endereço 2 da


memória principal. Informação Endereço
• Esse endereço armazenará o valor da soma, que é 5
10 0

25 1

5 ‘soma’ <-> 2

‘Chrome’ 3

4
Memória principal

21
PSEUDOCÓDIGO
• Exemplo:
algoritmo Média
< declaração_de_variáveis >
Var N1, N2, Média

Início
< instruções >
LEIA N1, N2
Média <- (N1+N2)/2
Se Média >= 7 então
Escreva “Aprovado”
Senão
Escreva “Reprovado”

fimalgoritmo
22
PSEUDOCÓDIGO
Variáveis para armazenar
• Exemplo: valores na memória.
Nesse caso precisamos
algoritmo Média armazenar as notas
< declaração_de_variáveis > E a média resultante.
Var N1, N2, Média A instrução LEIA indica
leitura dos valores
Início digitados no teclado pelo
usuário e armazena os
< instruções > valores nas variáveis N1 e
LEIA N1, N2 N2
Média <- (N1+N2)/2
Se Média >= 7 então Primeiramente, realiza-se
a soma dos valores
Escreva “Aprovado” armazenados em N1 e
Senão N2, logo após, esse valor
Escreva “Reprovado” é divido por 2. O resultado
final é armazenado na
variável Média.
fimalgoritmo
23
PSEUDOCÓDIGO
• Exemplo:
algoritmo Média
< declaração_de_variáveis > Nesse passo, ocorre uma
Var N1, N2, Média comparação. Caso o
valor armazenado em
Média for maior ou igual a
Início sete, o algoritmo mostra
< instruções > na tela o texto
LEIA N1, N2 “Aprovado”
Média <- (N1+N2)/2
Se Média >= 7 então Caso o valor armazenado
Escreva “Aprovado” em média não seja maior
Senão o igual a sete, o algoritmo
mostra na tela o texto
Escreva “Reprovado” “Reprovado”

fimalgoritmo
24
CONSTRUINDO ALGORITMOS

1. Compreender o problema a ser resolvido;


2. Definir os dados de entrada;
3. Definir que tipo de processamento (cálculos) serão
efetuados;
4. Definir os dados de saída;
5. Construir o algoritmo;
6. Testar o algoritmo com simulações.
25
CONSTRUINDO ALGORITMOS - Média

1 - Compreender o problema a ser resolvido:


• O problema consiste em verificar a média de um aluno a partir de
suas notas.

26
CONSTRUINDO ALGORITMOS - Média

2 - Definir os dados de entrada:


• Como entrada, devemos receber as notas do aluno;
• Só é possível calcular a média se conhecermos as notas.

27
CONSTRUINDO ALGORITMOS - Média

3 - Definir que tipo de processamento (cálculos) serão


efetuados:
• O processamento dos dados consiste em somar as notas do aluno,
dividir a soma pela quantidade de notas e armazenar o resultado.
• Soma = nota1 + nota2 + nota3;
• Média = soma/3;

28
CONSTRUINDO ALGORITMOS - Média

4 - Definir os dados de saída:


• A saída do algoritmo será o resultado do cálculo da média.
• Logo o dado de saída é a Média.

29
CONSTRUINDO ALGORITMOS - Média

5 - Construir o algoritmo:
RECAPTULANDO:
• O problema consiste em verificar a média de um aluno a partir de suas
notas;
• Como entrada, devemos receber as notas do aluno;
• O processamento dos dados consiste em somar as notas do aluno,
dividir a soma pela quantidade de notas e armazenar o resultado.
• Soma = nota1 + nota2 + nota3;
• Média = soma/3;
• A saída do algoritmo será o resultado do cálculo da média.
30
CONSTRUINDO ALGORITMOS - Média

5 - Construir o algoritmo (DESCRIÇÃO NARRATIVA):


• Obter três notas do aluno;
• Somar as três notas;
• Dividir o resultado da soma por 3;
• Mostrar o resultado.

31
CONSTRUINDO ALGORITMOS - Média

6 -Testar o algoritmo com simulações:

•Obter três notas do aluno; 7; 7; 7


•Somar as três notas; 7+7+7 = 21;
•Dividir o resultado da soma por 3; 21/3 = 7
•Mostrar o resultado. 7

32
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.
33
CONSTRUINDO ALGORITMOS - Média

Entrada Processamento Saída

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

34
EXERCÍCIOS

1. Construa um algoritmo SIMBOLOGIA FLUXOGRAMA


(Fluxograma e Pseudocódigo)
que:
• Receba três números;
• Informe a soma dos três números
recebidos.

35
RESOLUÇÃO FLUXOGRAMA
INÍCIO
1. Construa um algoritmo (Fluxograma e
Pseudocódigo) que:
• Receba três números; N1, N2, N3

• Informe a soma dos três números


recebidos.
SOMA = N1+N2+N3

SOMA

FIM

36
RESOLUÇÃO PSEUDOCÓDIGO

1. Construa um algoritmo (Fluxograma e


Pseudocódigo) que:
• Receba três números; algoritmo SOMA
• Informe a soma dos três números < declaração_de_variáveis >
recebidos. Numero1, Numero2, Numero3, Soma

Início
< instruções >
LEIA Numero1, Numero2, Numero3
Soma = Numero1 + Numero2 + Numero3
Escreva Soma

fimalgoritmo

37
EXERCÍCIOS

2 - Construa um algoritmo SIMBOLOGIA FLUXOGRAMA

(Fluxograma e Pseudocódigo)
que:
• Receba um numero inteiro;
• Informe se o numero recebido e
negativo ou positivo. Considere o
valor zero sendo positivo.

38
RESOLUÇÃO FLUXOGRAMA

2 - Construa um algoritmo INÍCIO

(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

Não

NÚMERO NEGATIVO

FIM
39
RESOLUÇÃO PSEUDOCÓDIGO

2 - Construa um algoritmo algoritmo POSITIVO


(Fluxograma e Pseudocódigo) < declaração_de_variáveis >
que: Numero1
• Receba um numero inteiro;
Início
• Informe se o numero recebido e
< instruções >
negativo ou positivo. Considere o
LEIA Numero1
valor zero sendo positivo.
SE numero1 >= 0 então
Escreva “Número Positivo”
SENÃO
Escreva “Número Negativo”
fimse

fimalgoritmo
40
EXERCÍCIOS

3 - Construa um algoritmo SIMBOLOGIA FLUXOGRAMA

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

41
EXERCÍCIOS
INÍCIO

N1, N2
3 - Construa um
algoritmo (Fluxograma e
Pseudocódigo) que:
Sim
O MAIOR NÚMERO É
N1>N2? N1
• Receba dois números
inteiros; Não
• Informe qual dos
números recebidos é o Sim O MAIOR NÚMERO É
maior ou se eles são N2>N1? N2
iguais.
Não

OS NÚMEROS SÃO
IGUAIS FIM

42
RESOLUÇÃO PSEUDOCÓDIGO
algoritmo POSITIVO
3 - Construa um < declaração_de_variáveis >
algoritmo Numero1, Numero2
(Fluxograma e Início
Pseudocódigo) que: < instruções >
• Receba dois LEIA Numero1, Numero2
números inteiros; SE Numero1 > Numero2 então
• Informe qual dos Escreva “O maior número é ” Número1
números recebidos SENÃO
é o maior ou se eles SE Numero2 > Numero1 então
são iguais. Escreva “O maior número é ” Número2
SENÃO
Escreva “Os números são iguais”
fimalgoritmo
43
DÚVIDAS?
Contanto: salatiel.dantas@ufersa.edu.br

Vous aimerez peut-être aussi