Revisão Histórico das Linguagens de Programação Qual a única linguagem compreendida pelos computadores? O que é uma linguagem de programação de alto nível? Como fazer o computador entender um programa escrito em uma linguagem de alto nível? Quais são as características desejáveis de um programa escrito em linguagem de alto nível? Perguntas?
Revisão Histórico das Linguagens de Computação Qual o melhor tipo de linguagem e a melhor linguagem?
Introdução à Construção de Algoritmos
Introdução à construções de algoritmos O computador é uma máquina utilizada na resolução de problemas Os problemas precisam ser precisamente definidos, geralmente sem a utilização de um computador A solução deve ser então planejada por meio da escrita de um algoritmo (ainda sem o computador)
Introdução à construções de algoritmos Um algoritmo é um procedimento computacional, finito, bem definido, não ambíguo, que recebe alguns valores como entrada (input) e produz alguns valores como saída (output) É uma sequência de passos computacionais que transformam uma dada entrada na saída desejada
Introdução à construções de algoritmos Quem sabe fazer uma garça em Origami? Entrada: um papel quadrado Saída: uma garça de papel Algoritmo:?
Desafio: Duas pessoas desejam repartir igualmente o conteúdo de um garrafão de 8 litros de água e têm apenas duas garrafas vazias de 5 e 3 litros, além do garrafão. De que maneira eles podem resolver esse problema? Entrada: 1 garrafa grande cheia com 8 litros, uma garrafa média vazia com 5 litros e 1 garrafa pequena vazia com 3 litros Saída: Dividir os 8 litros em duas partes iguais de 4 litros cada Algoritmo:?
G M P Situação inicial 8 0 0 Despeja a água da grande até encher a pequena 5 0 3 Despeja toda a água da pequena na média 5 3 0 Despeja a água da grande até encher a pequena 2 3 3 Despeja a água da pequena até encher a média 2 5 1 Despeja toda a água da média na grande 7 0 1 Despeja toda a água da pequena na média 7 1 0 Despeja a água da grande até encher a pequena 4 1 3 Despeja toda a água da pequena na média 4 4 0
Introdução à construções de algoritmos Uma boa analogia é a receita culinária São especificados ingredientes (entrada) É especificado como trabalhar os ingredientes (algoritmo) O resultado do processamento é o prato (saída) Alguém tem um exemplo? Como fazer pipoca em panela no fogão?
Exemplo Fazer um sanduíche de hamburger
Exemplo Fazer um sanduíche de hamburger 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 9. Colocar o hambúrguer no pão
Introdução à construções de algoritmos Geralmente um algoritmo é feito para manipular vários casos de entradas e não apenas um conjunto específicos de valores Como um algoritmo para ordenar uma sequência de números
Introdução à construções de algoritmos Um algoritmo é correto quando: Para cada caso de entrada, o programa para com saída correta Um algoritmo é incorreto quando: Ele não para quando um dado caso de entrada é introduzido Ou ele para com uma saída que não é a correta Tá com bug!
Construção de algoritmos: Dividir- e- conquistar Modo mais comum de se construir algoritmos Divide- se sucessivamente o problema dado em subproblemas cada vez menores, até que esses possam ser resolvidos (i.e., conquistados) de forma trivial Técnica também conhecida como refinamento sucessivos
O algoritmo da troca do pneu furado Algoritmo TrocaDePneu: 1. pegue o macaco e levante o carro 2. retire o pneu furado 3. pegue o estepe, coloque- o na roda e aperte os parafusos 4. rebaixe o carro e reaperte os parafusos 5. guarde o pneu furado e o macaco
O algoritmo da troca do pneu furado Algoritmo 1. pegue o macaco e levante o carro 1.1 remova o macaco do porta- malas 1.2 coloque o macaco sob o carro e próximo ao pneu furado 1.3 insira a manivela no macaco (ou monte- o de acordo com o modelo do macaco) 1.4 coloque um calço sob o carro para impedi- lo de se mover 1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
O algoritmo da troca do pneu furado Algoritmo 1. pegue o macaco e levante o carro 1.1 remova o macaco do porta- malas 1.2 coloque o macaco sob o carro e próximo ao pneu furado 1.3 insira a manivela no macaco (ou monte- o de acordo com o modelo do macaco) 1.4 coloque um calço sob o carro para impedi- lo de se mover 1.4.1 se o carro estiver de frente para o topo de uma ladeira, então coloque o calço atrás de um pneu em bom estado senão, coloque o calço na frente de um pneu em bom estado 1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
O algoritmo da troca do pneu furado Algoritmo 1. pegue o macaco e levante o carro 1.1 remova o macaco do porta- malas 1.2 coloque o macaco sob o carro e próximo ao pneu furado 1.3 insira a manivela no macaco (ou monte- o de acordo com o modelo do macaco) 1.4 coloque um calço sob o carro para impedi- lo de se mover 1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe 1.5.1 enquanto não houver espaço suficiente para colocar o estepe, repita o seguinte: levante o carro com o macaco
Exercício Algoritmo TrocarLâmpadaQueimada: 1. Remova a lâmpada queimada 2. Coloque a nova lâmpada
Exercício Algoritmo TrocarLâmpadaQueimada: 1. Posicione a escada em baixo da lâmpada queimada 2. Escolha uma nova lâmpada de mesma potência da queimada 3. Suba na escada até que a lâmpada possa ser alcançada 4. Gire a lâmpada queimada no sentido anti- horário até que ela se solte 5. Posicione a nova lâmpada no soquete 6. Gire- a no sentido horário até que ela se firme 7. Desça a escada
Exercício Algoritmo TrocarLâmpadaQueimada: 1. Posicione a escada em baixo da lâmpada queimada 2. Selecione uma nova lâmpada para a substituição 1. Se a potência não for a mesma da lâmpada queimada, então repita os passos abaixo até encontrar uma que sirva 1. Descarte a lâmpada selecionada 2. Selecione uma nova 3. Repita até que a lâmpada possa ser alcançada 1. Suba um degrau da escada 4. Repita até que a lâmpada fique livre do soquete 1. Gire a lâmpada no sentido anti- horário 5. Posicione a nova lâmpada no soquete 6. Repita até que a lâmpada esteja firme 1. Gire a lâmpada no sentido horário 7. Desça a escada
Formas de construir algoritmos (1) Descrição Narrativa Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua natural, bem conhecida Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição do algoritmo para um programa de computador
Formas de construir algoritmos (2) Fluxograma Vantagem: o entedimento de elementos gráficos é mais simples que o entendimento de textos Desvantagem: é necessário aprender os símbolos dos fluxogramas e, além disso, o algoritmos resultante não apresenta detalhes, dificultanto também a transcrição para um programa de computador
Formas de construir algoritmos (2) Fluxograma
Formas de construir algoritmos (2) Vc que quebrou? LASCOU OK
Formas de construir algoritmos (3) Pseudocódigo ou portugol Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem que será utilizada Desvantagem: é necessário aprender regras do pseudocódigo, que vamos aprender!
Algoritmo Exemplo Somar três números Descrição Narrativa 1. Receber os tres números 2. Somar os três números 3. Imprimir resultado
Algoritmo Exemplo Somar três números Pseuco código inicio fim variavel inteiro n1, n2, n3, s escrever Digite tres numeros ler n1, n2, n3 s <- n1 + n2 + n3 escrever O valor armazenado em S eh, s
Primeiro Problema - Escrevendo Faça um algoritmo que recebe dois números e escreve a soma dos mesmos
Primeiro Problema - Escrevendo Solução!! inicio fim escrever Informe os numeros ler n1, n2 soma ß n1 + n2 escrever Soma dos numeros =, soma
Primeiro Problema Escrevendo Fluxograma Solução!!