Buscar

Aula 03 - Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

INE 5201 
LÓGICA DE PROGRAMAÇÃO – ALGORITMOS 
- Conceito de algoritmo 
- Pseudo-código para representar algoritmos 
Aula 03 
2. Algoritmos 
Algoritmo 
INE 5201 – Introdução à algoritmos 
O nome algoritmo vem do nome do matemático 
persa Abu Abdullah Muhammad bin Musa al-
Khwarizmi (780 – 850). 
 
Entre outras coisas ele desenvolveu uma solução 
sistemática para funções lineares e quadráticas. 
 
A palavra 'algarismo' também é derivada de seu 
nome, devido a seu trabalho relacionado a notação 
posicional do sistema de numeração decimal. 
2. Algoritmos 
Algoritmo 
INE 5201 – Introdução à algoritmos 
No século XVIII na Europa, a tradução do nome de al-Khwarizmi deu 
origem à palavra algoritmo. 
O primeiro caso de um algoritmo escrito para um computador foi um 
programa de Ada Byron para a máquina analítica de Charles Babbage. 
 
 
 
 
 
No século XX, as pesquisas de Alan Turing e Alonzo Church 
formalizaram o que é um algoritmo. 
A partir disto foi possível definir quais tipos de problemas um 
algoritmo pode resolver. 
2. Algoritmos 
Algoritmo 
INE 5201 – Introdução à algoritmos 
Algoritmos são formas de codificar procedimentos 
estereotipados. 
 
Para descrever procedimentos estes têm de ser codificados 
de uma forma legível e organizada. 
2. Algoritmos 
Resolução de problemas com o uso do computador; 
 
Necessidade de descrever de forma clara e precisa o 
problema; 
 
Descrever uma sequência de passos que conduzam à sua 
resolução; 
 
 A criação de algoritmos para resolver problemas é uma 
das maiores dificuldades e motivação na programação. 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
Algoritmo 
INE 5201 – Introdução à algoritmos 
Para organização e descrição de algoritmos usamos 3 estruturas de 
controle: 
 
O bloco ou sequência de comandos: descreve uma sequência de ações 
que devem ser executadas uma após a outra. 
 
A estrutura condicional: usada para descrever uma situação onde 
temos de decidir entre duas formas de agir em função de uma 
situação que poderá ocorrer. 
 
A estrutura de repetição: usada para descrever uma situação onde 
temos de repetir um determinado número de vezes alguma ação até 
que uma situação seja atingida. 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
O teorema da programação estruturada ( Corrado Böhm and 
Giuseppe Jacopini, 1966) é resultado da teoria das linguagens de 
programação. 
 
Ela define que cada rotina computável pode ser implementada em 
uma linguagem que combine os sub-programas em apenas três 
maneiras específicas: 
 
1. Executar um subprograma, depois outro sub-programa (seqüência) 
 
2. Executar um ou dois subprogramas de acordo com o valor de uma 
variável booleana (condição) 
 
3. Executar um subprograma até que uma variável booleana seja 
verdadeira (iteração) 
2. Algoritmos 
Desenho de algoritmos/programas 
• Algoritmo: descrição de uma metodologia que 
conduz à resolução de um problema; 
 
• Programação: codificação precisa desse 
algoritmo, segundo uma linguagem de 
programação; 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
Desenho de algoritmos/programas 
 
 
 
1. Análise do problema; 
2. Concepção do algoritmo; 
3. Tradução do algoritmo para linguagem de 
programação. 
INE 5201 – Introdução à algoritmos 
PROBLEMA ALGORITMO PROGRAMA 
2. Algoritmos 
Passos para construção de algoritmos 
1. Compreender o problema; 
2. Identificar os dados de entrada; 
3. Identificar os dados de saída; 
4. Determinar o que é preciso para transformar dados de entrada 
em dados de saída: 
1. Usar uma estratégia (ex: divisão e conquista) 
2. Observar regras e limitações 
3. Identificar todas as ações a realizar 
4. Eliminar ambiguidades 
5. Construir o algoritmo; 
6. Testar o algoritmo; 
7. Executar o algoritmo; 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
Problema: Trocar um pneu 
furado!! 
 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
2.1 Formas de representação de um algoritmo 
 
2.1.1 Algoritmo: Descrição narrativa 
 
Ex: Trocar um pneu 
 1. Afrouxar ligeiramente os parafusos 
 2. Suspender o carro 
 3. Retirar os parafusos 
 4. Retirar o pneu furado 
 5. Colocar o pneu reserva 
 6. Apertar os parafusos 
 7. Abaixar o carro 
 8. Apertar os parafusos 
INE 5201 – Introdução à algoritmos 
2. Algoritmos (narrativa) 
Ex: Trocar um pneu 
 
 
 1. Afrouxar ligeiramente os parafusos 
 2. Suspender o carro 
 3. Retirar os parafusos 
 4. Retirar o pneu furado 
 5. Colocar o pneu reserva 
 6. Apertar os parafusos 
 7. Abaixar o carro 
 8. Apertar os parafusos 
 
 
 
INE 5201 – Introdução à algoritmos 
Verificar se existe o pneu 
reserva 
Verificar se existe a chave de 
roda e o macaco 
Verificar o aperto 
2. Algoritmos (narrativa -> formalização) 
2.1.1 Algoritmo: Descrição narrativa – migrando para o pseudocódigo 
 
Ex: Trocar um pneu 
 SE (pneu reserva ≠ 0): 
 SE (chave de roda ≠ 0) E (macaco ≠ 0): 
 Afrouxar os parafusos 
 Suspender o carro 
 Retirar os parafusos 
 Retirar o pneu furado 
 Colocar o pneu reserva 
 Apertar os parafusos 
 Abaixar o carro 
 Apertar os parafusos 
 Verificar o aperto dos parafusos 
 SENÃO: 
 Chame o guincho!!!! 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
Problema: Trocar um pneu 
furado!! 
 
INE 5201 – Introdução à algoritmos 
Outros detalhes ? 
2. Algoritmos 
Problema: Trocar um pneu 
furado!! 
 
INE 5201 – Introdução à algoritmos 
Especificidade ou generalizado ? 
2. Algoritmos 
Problema: Trocar um pneu 
furado!! 
 
INE 5201 – Introdução à algoritmos 
Proteção quanto à 
entradas não previstas ? 
2. Algoritmos 
2.1.2 Algoritmo: Pseudo-código 
 
Forma de representação de algoritmos. 
 
Se assemelha muito ao modo de como os 
programas são escritos em uma linguagem de 
programação. 
 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
2.1.2 Algoritmo: Pseudo-código 
 
Esta forma de representação permite que os 
algoritmos possam ser traduzidos quase que 
diretamente para uma linguagem de 
programação. 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
2.1.2 Algoritmo: Pseudocódigo 
Algoritmo 
<nome_do_algoritmo> 
<declaração das variáveis> 
 Entrada: <variáveis_de_entrada> 
 Saída: <variáveis_de_saída> 
<subalgoritmo> 
Início 
<corpo_do_algoritmo> 
Fim 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
Problema: Fazer um bolo. 
 
INE 5201 – Introdução à algoritmos 
Farinha de trigo 
Ovos 
Açúcar 
Fermento 
Leite 
Manteiga 
RECEITA 
Receita – descrição de uma sequência de passos ou ações que 
resultam em um produto gastronômico... 
2. Algoritmos (narrativa) 
Problema: Como fazer um bolo ? 
 
INE 5201 – Introdução à algoritmos 
Farinha de trigo 
Ovos 
Açúcar 
Fermento 
Leite 
Manteiga 
INSTRUÇÕES 
Algoritmo: (receita de bolo) 
1. Pegar dois ovos; 
2. Quebrar os dois ovos; 
3. Separar as claras; 
4. Bater duas claras; 
5. Adicionar duas gemas; 
6. Adicionar uma xícara de açúcar; 
7. Bater até a massa fica uniforme; 
8. ... 
 
A ordem em que as 
instruções são executadas 
influi no resultado final. 
2. Algoritmos (narrativa -> formalização) 
INE 5201 – Introdução à algoritmos 
Pegar dois ovos; 
Quebrar os dois ovos; 
Separar as claras; 
Bater duas claras; 
Adicionar duas gemas; 
Adicionar uma xícara de açúcar; 
.... 
Se (houverem dois ovos): 
Senão: 
Comprar ovos 
Algoritmo: (bolo) 
Bloco de comando 
Sequência de instruções 
2. Algoritmos (narrativa -> formalização) 
INE 5201 – Introdução à algoritmos 
Pegar doisovos; 
Quebrar os dois ovos; 
Separar as claras; 
Bater duas claras; 
Adicionar duas gemas; 
Adicionar uma xícara de açúcar, farinha e água; 
Misturar tudo; 
 
 
Colocar a massa em um travessa; 
Assar; 
Se (houverem dois ovos): 
Senão: 
Comprar ovos 
Enquanto (a massa estiver não estiver homogênea): 
Bater a massa durante 1 min; 
2. Algoritmos (formalizar) 
INE 5201 – Introdução à algoritmos 
Operadores 
 
Operadores são símbolos que atuam sobre variáveis e valores. 
 
Operadores aritméticos (+ , - , * , / , %, **): 
 
Operadores de comparação (>, <, ==, >=, <=, !=, is, in): 
 
Operadores lógicos (and, or, not): 
 
Operadores de atribuição (=): 
 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana 
 
Desenvolvida pelo inglês George Boole no século XIX. 
 
É considerada a base de toda a matemática 
computacional. 
 
A álgebra de boole envolve operadores essenciais da 
teoria de conjuntos e lógica. 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana 
 
Álgebra Booleana 
0 1 
true false 
não sim 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana: Operadores Lógicos 
 
AND 
OR 
NOT 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana: Operador Lógico - AND 
 
AND 
#Algoritmo média do aluno 
Leia a primeira nota 
Leia a segunda nota 
Calcule a média 
SE (média < 5,74) AND (média > 2,74): 
 escreva (“Aluno em recuperação”) 
.... 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana: Operador Lógico - OR 
 
#Algoritmo Escolhendo o objeto pela cor 
Leia a cor do objeto 
SE (cor == “vermelho”) OR (cor == “branca” ): 
 escreva (“Pode comprar”) 
.... 
OR 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
Álgebra Booleana: Operador Lógico - NOT 
 
#Algoritmo Qualquer objeto que não seja branco 
Leia a cor do objeto 
SE NOT(cor == “branca”): 
 escreva (“compre”) 
ELSE: 
 escreva(“Não compre”) 
NOT 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
A estrutura condicional: usada para descrever uma situação onde 
temos de decidir entre duas formas de agir em função de uma 
situação que poderá ocorrer. 
SE (condição satisfeita): 
 bloco de comandos 1 
SENÃO: 
 bloco de comandos 2 
Resultado de uma 
comparação. 
Dois possíveis resultados: 
verdadeiro ou falso 
Exemplo: 
SE (saldo < 0): 
 escreva (“ Cliente em débito”) 
SENÃO: 
 escreva(“Saldo positivo”) 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
SE (condição satisfeita): 
 bloco de comandos 1 
SENÃO: 
 bloco de comandos 2 
Exemplo: 
#Algoritmo média do aluno 
Leia(media_final) 
Leia(recuperacao) 
media  (media_final + recuperacao) / 2 
SE (media < 5,75): 
 escreva (“Aluno reprovado”) 
SENÃO: 
 escreva (“Aluno aprovado”) 
Estrutura condicional 
2. Algoritmos 
A seguir um exemplo para o cálculo da média da 
nota de 3 provas para cada um dos alunos 
integrantes na turma: 
 
Processo de construção de um script a partir de 
uma ideia de formalização do algoritmo, desde a 
narrativa formal, passando por pseudocódigo 
até o desenvolvimento de um script python. 
INE 5201 – Introdução à algoritmos 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
1. Lê o nome do aluno 
2. Recebe as notas das três provas 
3. Calcule a média 
4. Se a média for maior ou igual a 6.0 escreva – “Aprovado” 
5. Se a média for menor que 6.0 e for maior que 3.0 escreva – “Recuperação” 
6. Senão escreva - “Reprovado” 
7. Repita o passo 1 para o próximo aluno; 
ALGORITMO – NARRATIVA – Linguagem natural 
# Algoritmo - média 
# Variáveis 
 Entrada: nome_do_aluno, nota_1, nota_2, nota_3 
 Saída: Situação 
#subalgoritmo 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
ALGORITMO – FORMALIZANDO – Tentando formalizar o algoritmo 
1. Leia(nome_aluno) 
2. Leia(nota_1) 
3. Leia(nota_2) 
4. Leia(nota_3) 
5. Média  (nota_1 + nota_2 + nota_3) / 3 
6. Se (Média >= 6.0): 
7. Escreva(“Aprovado”) 
8. Ou Se (Média < 6.0) e (Média > 3.0): 
9. Escreva(“Recuperação”) 
10. Senão : 
11. Escreva (“Reprovado”) 
12. Repita o passo 1 
# Algoritmo - média 
# Variáveis 
 Entrada: nome_do_aluno, nota_1, nota_2, nota_3 
 Saída: Situação 
#subalgoritmo 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
ALGORITMO – PSEUDOCÓDIGO 
1. alunos  escreva(“Digite o número de alunos”) 
2. PARA aluno  1 até alunos: 
3. nome_aluno  escreva(“Digite o nome do aluno”) 
4. nota_1  escreva(“Digite a primeira nota”) 
5. nota_2  escreva(“Digite a segunda nota”) 
6. nota_3  escreva(“Digite a terceira nota”) 
7. media  (nota_1 + nota_2 + nota_3) / 3 
8. SE (media >= 6.0): 
9. escreva(“Aprovado”) 
10. OUSE(Média < 6.0) E (Média > 3.0): 
11. escreva(“Recuperação”) 
12. SENÃO : 
13. escreva (“Reprovado”) 
# Algoritmo - média 
# Variáveis 
 Entrada: nome_do_aluno, nota_1, nota_2, nota_3 
 Saída: Situação 
#subalgoritmo 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
ALGORITMO –> SCRIPT - PYTHON 3 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
A estrutura condicional: usada para descrever uma situação onde 
temos de decidir entre duas formas de agir em função de uma 
situação que poderá ocorrer. 
SE (condição satisfeita): 
 bloco de comandos 1 
SENÃO: 
 bloco de comandos 2 
Resultado de uma 
comparação. 
Dois possíveis resultados: 
verdadeiro ou falso 
Exemplo: 
SE (saldo < 0): 
 escreva (“ Cliente em débito”) 
SENÃO: 
 escreva(“Saldo positivo”) 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
SE (condição satisfeita): 
 bloco de comandos 1 
SENÃO: 
 bloco de comandos 2 
Exemplo: 
#Algoritmo média do aluno 
Leia(primeira_nota) 
Leia(segunda_nota) 
media  (primeira_nota + segunda_nota) / 2 
SE (média < 5,75): 
 escreva (“Aluno reprovado”) 
SENÃO: 
 escreva (“Aluno aprovado”) 
Estrutura condicional 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
A estrutura de repetição: usada para descrever uma situação onde 
temos de repetir um determinado número de vezes alguma ação até 
que uma situação seja atingida. 
PARA i  1 ATÉ 100: 
 bloco de comandos 
 
Repete o bloco até esgotar. 
Ou seja executa o bloco de 
comandos 100 vezes. 
Exemplo: 
PARA i  1 ATÉ 20: 
 escreva(i) 
 a  i + 10*i 
 escreva(a) 
2. Algoritmos 
INE 5201 – Introdução à algoritmos 
A estrutura de repetição: usada para descrever uma situação onde 
temos de repetir um determinado número de vezes alguma ação até 
que uma situação seja atingida. 
ENQUANTO (a < b): 
 bloco de comandos 
 
Repete o bloco de comandos 
até que a condição seja falsa. 
 
Exemplo: 
a  126 
b  55600 
ENQUANTO a < b: 
 a  a + 0.65*a 
 escreva(a)

Outros materiais