Lógica de Programação e
Algoritmos
Objetivos da Aula
• Introdução a Algoritmos
• Tipos de Algoritmos
O Que é um Algoritmo?
Introdução
• Desde o início dos tempos o homem cria máquinas que
auxiliem em seus trabalhos, diminuindo assim:
– Esforço – Tempo
• Dentre essas máquinas o computador tem se mostrado
como mais versátil, rápido e seguro;
– Hardware – Software
• A finalidade do computador é receber, manipular e
Hardware – Parte Física
UCP – Unidade Central de Processamento Memória Dispositivos de entrada e saída Barramento Conexões externas Teclado, Mouse Monitor, Impressora e Etc...Processador (contém as instruções que são capazes de executar)
Memória(Armazena as informações ou instruções
usadas pelo processador)
Exemplo
Somar dois números? 2 2
Introdução
• Sendo a finalidade principal do computador
realizar a tarefa de processamento de dados:
– Ou seja, receber dados por um dispositivo de
entrada, realizar operações com esses dados e
gerar uma resposta que será expressa em um
dispositivo de saída
Introdução
• Quando queremos escrever (criar, desenvolver)
software para realizar determinado tipo de
processamento de dados, devemos escrever um
programa;
• No entanto para que o computador compreenda
e execute esse programa, devemos escreve-lo em
uma linguagem que tanto o computador quanto
o desenvolvedor de software entendam ->
Algoritmos e Lógica de Programação
• Algumas Categorias de Programas
– Cadastro
– Vendas de produtos
– Jogos
Cadastro de Clientes
Venda de Produtos
Introdução
• Passos do desenvolvimento de um programa
– Análise
– Algoritmo
– Codificação
• Portanto um programa é a codificação de um
algoritmo em determinada linguagem de
programação;
– Várias linguagens
– Vários Paradigmas
Linguagens de Programação
• Existem inúmeras linguagens de programação;
• No entanto, elas são muito ligadas a uma grande
diversidades de detalhes computacionais, que
pouco tem haver com o raciocínio original.
• Então para escapar dessas complicações no inicio
da aprendizagem de lógica de programação
foram criados os algoritmos;
Conceito Algoritmo
• Existem Várias Definições
• Simples
– “Algoritmo é uma sequência de passos que visa atingir um objetivo”
• Completa
– “Um algoritmo é uma sequência de instruções finita e
ordenada de forma lógica para a resolução de uma
determinada tarefa ou problema.”
• Obs: Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a solução de um problema.
Conceito Algoritmos
• Em geral, existem muitos (senão infinitos)
caminhos que levam a uma solução
satisfatória de um determinado problema.
Porque é importante construir um
algoritmo antes de um programa de
computador?
• Um Algoritmo tem por objetivo representar
mais fielmente o raciocínio usado na lógica de
programação e, dessa forma, permite-nos
abstrair
de
uma
serie
de
detalhes
computacionais,
que
podem
ser
acrescentados mais tarde. Assim focamos
nossa atenção naquilo que é realmente
importante. A lógica de programação;
Conceito de Algoritmos
• Exemplo de Algoritmos
– Ex: Receita de Bolo;
Exemplo de Algoritmos no dia-dia
• Exemplo:
– Fazer um Sanduíche
• 1. Pegar o pão
• 2. Cortar o pão ao meio • 3. Pegar a maionese
• 4. Passar a maionese no pão
• 5. Pegar e cortar alface e tomate • 6. Colocar alface e tomate no pão • 7. Pegar o Hambúrguer
• 8. Fritar o Hambúrguer
Exemplo de Algoritmos
• Exemplo:
– Sacar dinheiro do banco 24 horas
• 1. Ir até um banco 24 horas • 2. Colocar o cartão
• 3. Digitar a senha
• 4. Solicitar a quantia desejada
• 5. Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário, mostrar mensagem de impossibilidade de saque.
• 6. Retirar o cartão
Conceito de Algoritmos
• As sequências de resoluções que vimos podem
ser consideradas algoritmos?
– Sim;
– Sanduíche possui 9 instruções ordenadas;
– Sacar dinheiro do banco possui 7 instruções
ordenadas;
• O inicio de uma instrução depende da conclusão da instrução anterior;
– O objetivo da sequência foi atingido?
Conceito de Algoritmos
• Você pode estar pensando: “Mas eu realizo essas
atividades de maneira diferente!”
• Esse pensamento é correto, pois às vezes um problema
pode ser resolvido de diversas maneiras, porém, gerando
a mesma resposta, ou seja, podem existir vários
algoritmos para solucionar o mesmo problema.
• Mas podem existir algoritmos mais eficientes
que
outros;
Conceito de Algoritmos
• Exercício
– Ordene e estruture uma sequência para realizar
um telefonema de um celular.
Conceito de Algoritmos
• Uma solução possível
– Pegar o celular
– Selecionar a aplicação de telefonema
– Teclar o número desejado
– Selecionar o botão de efetuar ligação
– Conversar
Conceito de Algoritmos
• Solução mais robusta para o problema:
– Pegar o celular
– Selecionar a aplicação de telefonema – Teclar o número desejado
– Selecionar o botão de efetuar ligação – Se chamar e alguém atender...
• Conversar • Desligar
– Senão
• Desligar
Exemplo
• Jogar Vídeo Game
– Ordene e estruture uma sequência para jogar
determinado jogo em um vídeo game.
Conceito de Algoritmos
• Uma solução possível
– Ligar o console (Vídeo game)
– Abrir bandeja para colocar o jogo
– Colocar o jogo na bandeja do console
– Fecha a bandeja
– Esperar o jogo carregar
– Apertar iniciar
Exemplo
• Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo.
– Obs: Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na outra margem!
Resolução
• Pegar a ovelha
• Leva para a outra margem • Deixa a ovelha
• Volta a margem inicial • Pega a caixa de verduras • Vai para outra margem
• Deixa a caixa de verduras e pega a ovelha • Volta a margem inicial
• Deixa a ovelha e pega o lobo • Vai para a outra margem • Deixa o lobo
• Volta a margem inicial • Pega a ovelha
• Vai para a outra margem • Deixa a ovelha
Algoritmos
• O que concluímos sobre algoritmos?
– Algoritmos é um passo a passo de ações (instruções)
– Algoritmos retornam uma saída (calcular a soma de
dois números) a partir de entradas (dois números),
através de uma sequência de passos;
– Os passos são executados um após o outro de forma
sequencial.
Algoritmos
• Porque é necessário criar algoritmos?
– A linguagem natural não pode ser interpretada por computadores;
– Computadores são projetados para executar tarefas bem definidas a partir de instruções;
– Para desenvolver software, utilizamos linguagens de programação;
• A linguagem algorítmica é similar a uma linguagem de programação;
– Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação;
Tipos de Algoritmos
• Descrição Narrativa
• Fluxograma
• Pseudocódigo, português estruturado
Portugol;
Subjetividade
Descrição Narrativa
• Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (“língua portuguesa”), os passos a serem seguidos para resolução do problema.
– Formada por frases curtas e simples – É objetiva
• Vantagem: Não é necessário o aprendizado de um conceito novo
• Desvantagem: a língua natural abre espaço para várias interpretações, o que pode dificultar a transcrição desse algoritmo para o programa.
Desvantagem
• Exemplo:
– “A velhinha ouviu o barulho da janela”
• A velhinha ouviu o barulho produzido pela janela • A velhinha estava junto a janela e ouviu o barulho
Descrição Narrativa
• Exemplo – Dobro de um número (número x 2)
• Digitar um número
• Multiplicar o número digitado por 2
• Mostrar o Resultado da Operação
Fluxograma
• Descrevem o fluxo de ação de um determinado trabalho lógico (ou sequência de ações);
• Usa símbolos convencionais, permitindo poucas variações; • Representado por símbolos geométricos
• Vantagem: o entendimento de símbolos gráficos é mais simples que o entendimento de texto.
• Desvantagem: é necessário aprender a simbologia dos fluxogramas.
Exemplo
• Elabore um algoritmo para somar três
números:
– Algoritmo Descrição Narrativa
– Algoritmo Fluxograma
• Fluxograma
• Descrição Narrativa
– Passo 1: Receber os números que serão somados
– Passo 2: Somar os dois números
– Passo 3: Exibir o resultado da soma
Exemplo
• Elabore um algoritmo para mostrar o
resultado da divisão entre dois números:
– Algoritmo de descrição narrativa
– Algoritmo Fluxograma
• Descrição Narrativa
– Passo 1: Receber os dois números que serão divididos;
– Passo 2: Se o segundo número for igual a zero, não poderá haver divisão, pois não existe divisão por zero; caso contrario dividir os dois números
Exemplo
• Elaborar um algoritmo para calcular a média
aritmética entre duas notas de um aluno e
mostrar a situação desse aluno, que pode ser
aprovado ou reprovado.
– Algoritmo de descrição narrativa
– Algoritmo Fluxograma
• Descrição Narrativa
• Passo 1: Receber as duas notas
• Passo 2: Calcular a média aritmética • Passo 3: Mostrar a média aritmética
• Passo 4: Se a média aritmética for maior a igual a sete, então a situação do aluno é aprovado; caso contrário, a situação é reprovado.
• Elabore a descrição narrativa e o fluxograma
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 amento de
10%.
• Descrição Narrativa
– Receber o salário atual do funcionário
– Se o salário atual do funcionário for até R$ 500,00,
calcular o novo salário com percentual de
aumento de 10%.
Português Estruturado
• Consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução.
• Vantagem: A passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas.
• Desvantagem: É necessário aprender as regras do pseudocódigo