instituto federal de educaÇÃo, ciÊncia e …... exercícios –linguagem narrativa
TRANSCRIPT
ALGORITMO:
FASE 1 – PARTE 1
Rhavy Maia Guedes [email protected]
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E
TECNOLOGIA DA PARAÍBA – CAMPUS CAMPINA GRANDE
1
Algoritmo e Programação2
Precisamos saber o que realmente vamos fazer com
algoritmo e programação:
Queremos e precisamos ter controle do computador
para fazer novas coisas nele?
Então precisamos de:
DEDICAÇÃOAlgoritmo e Programação
Algoritmo3
A palavra algoritmo, à primeira vista, parece-nos estranha;
Cotidiano:
Instruções para se utilizar um aparelho eletrodoméstico;
Uma receita para preparo de algum prato;
Guia de preenchimento para declaração do imposto de renda;
A regra para determinação de máximos e mínimos de funções por
derivadas sucessivas;
A maneira como as contas de água, luz e telefone são calculadas
mensalmente; etc.
Algoritmo4
“Um conjunto finito de regras que provê uma seqüência de
operações para resolver um tipo de problema específico”
[KNUTH]
“Seqüência ordenada, e não ambígua, de passos que levam
à solução de um dado problema”
[TREMBLAY]
“Processo de cálculo, ou de resolução de um grupo de
problemas semelhantes, em que se estipulam, com
generalidade e sem restrições, as regras formais para a
obtenção do resultado ou da solução do problema”
[AURÉLIO]
Para quê?5
“A noção de algoritmo é básica para toda a
programação de computadores”.
[KNUTH - Professor da Universidade de Stanford, autor da
coleção “The art of computer programming”]
“O conceito central da programação e da ciência da
computação é o conceito de algoritmo”.
[WIRTH - Professor da Universidade de Zurique, autor de
diversos livros na área e responsável pela criação de
linguagens de programação como ALGOL, PASCAL e
MODULA-2]
Importância6
Seqüência de passos lógicos para que o computador
possa executar uma tarefa qualquer;
O computador não tem vontade própria, faz apenas
o que mandarmos;
Com uma ferramenta algorítmica, podemos conceber
uma solução para um dado problema,
independendo de uma linguagem específica e até
mesmo do próprio computador.
Características7
Todo algoritmo deve apresentar algumas
características básicas:
ter fim;
não dar margem à dupla interpretação (não ambíguo);
capacidade de receber dado(s) de entrada do mundo
exterior;
poder gerar informações de saída para o mundo externo
ao do ambiente do algoritmo;
ser efetivo (todas as etapas especificadas no algoritmo
devem ser alcançáveis em um tempo finito).
Formas de Representação
Descrição narrativa Utiliza-se de português para narração
Vantagens
Domínio do português;
Desvantagens
imprecisão;
pouca confiabilidade (a imprecisão acarreta a desconfiança);
extensão (normalmente, escreve-se muito para dizer pouca coisa).
8
Representação Narrativa
Exemplo:
Preparar um bolo◼ Providencie manteiga, ovos, farinha de trigo, etc;
◼ Misture os ingredientes;
◼ Despeje a mistura na fôrma de bolo;
◼ Leve a fôrma ao forno;
◼ Espere 20 minutos;
◼ Retire a fôrma do forno;
◼ Deixe esfriar;
◼ Prove;
◼ Diga que está delicioso para não decepcionar o cozinheiro!
9
• O português é bastante
conhecido por nós;
• Imprecisão;
• Pouca confiabilidade;
• Extensão.
Quem precisa de mais passo?
Exercícios – Linguagem Narrativa
Faça um algoritmo para somar dois números e multiplicar o
resultado pelo primeiro número.
Descreva com detalhes a sequência lógica para trocar um
pneu de um carro.
Faça um algoritmo para trocar uma lâmpada. Descreva com
detalhes.
Faça um algoritmo que detalhe a realização de uma chamada
telefônica.
Calcular a média final dos alunos da 3ª Série. Os alunos
realizarão quatro provas: P1, P2, P3 e P4.
10
Formas de Representação
Fluxograma Utiliza-se de símbolos gráficos padronizados para representar algoritmos.
Início, entrada de dados, cálculos, saída de dados, fim
Vantagens
Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;
Padrão mundial
Desvantagens
Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou
representá-los;
Complica-se à medida que o algoritmo cresce.
11
Fluxograma
Exemplo:
12
• Pouca atenção as variáveis;
• Extenso.
• A solução do problema é clara.
Exercícios – Fluxograma
Calcular a média final dos alunos da 3ª Série. Os
alunos realizarão quatro provas: P1, P2, P3 e P4.
Calcular o valor total em Reais de celulares de uma
loja. Considere que o valor total é igual a
quantidade de celulares vezes o valor unitário por
aparelho.
13
Mini-teste
De acordo com seu entendimento o que é
algoritmo e quais são as características
mais importantes?
Descreva com suas palavras como é
realizado o cálculo do valor a pagar de
uma conta de água.
14
Formas de Representação
Linguagem Algorítmica Consiste na definição de uma pseudolinguagem
estruturada de programação, cujos comandos são em
português ou inglês, para representar algoritmos.
15
Pseudolinguagem ou
Pseudocódigo.
Linguagem Algorítmica
Exemplo:
16
• Exige a definição de uma
linguagem não real para trabalho;
• Não padronizado.
• Padrão universal pré-definido que pode ser
escrito em inglês ou português;
• Pode definir quais e como os dados serão
estruturados;
• Passagem quase imediata do algoritmo
para uma linguagem de programação
qualquer.
// Calcular a idade através das variáveis: ano de nascimento e ano corrente.
algoritmo calcula_idade
var
ano_nascimento, ano_corrente, idade : inteiro
inicio
escreva ("Entre com o ano de nascimento e o corrente:")
leia (ano_nascimento, ano_corrente)
idade := ano_corrente - ano_nascimento
escreva (“Sua idade atual é: ", idade)
fim
Programa
Entrada de dados;
Processamento;
Saída.
17
Entrada SaídaPrograma
Estado
Arquitetura de um computador
Arquitetura fundamental de um computador:
18
Operações básicas do Computador
Computador pode executar quatro operações
básicas:
Operações de Entrada e Saída;
Operações Aritméticas;
◼Adição, subtração, multiplicação e divisão.
Operações Lógicas
◼ Têm aplicabilidade em comparações, testes de condições
lógicas como: 6>4 ou 5<10 ou Valor1 = Valor2.
Movimentação dos dados entre os componentes.
19
Programar – O que é?
Programar consiste em dividir qualquer
problema em muitos pequenos passos, usando
uma ou mais das quatro operações básicas
citadas.
20
Exercícios – Pseudolinguagem ou
Pseudocódigo
1. Faça um algoritmo para somar dois números e multiplicar o
resultado pelo primeiro número.
2. Crie um algoritmo que receba quantidade de uma peça
numa oficina e exiba a quantidade.
3. Adicione à questão anterior a leitura e exibição do código
da peça.
4. Crie um algoritmo para calcular a média final dos alunos da
3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e
P4.
5. Crie um algoritmo para calcular o valor total em Reais de um
determinado tipo de celular de uma loja. Considere que o
valor total é igual a quantidade de celulares x valor
unitário por aparelho.
21
Exercícios – Pseudolinguagem ou
Pseudocódigo
Faça um algoritmo para “Calcular o estoque médio de uma
peça”, sendo que EstoqueMédio = (QuantidadeMínima +
QuantidadeMáxima) / 2
22
Comandos
Programar consiste na divisão de um problema qualquer em
um conjunto de passos;
Comandos são os passos que compõe um algoritmo;
Podem estar próximos da máquina ou próximos da linguagem
do homem.
23
Alto nível
Baixo nível
Novamente Características...
Os passos que compõem o algoritmo devem ser simples, claros e sem
ambigüidade;
Os passos devem estar numa ordem (numa seqüência) cuidadosamente
definida;
O algoritmo deve ser efetivo, isto é, deve resolver o problema num número
finito de passos;
O algoritmo deve tratar todas situações não previstas (eventos
extraordinários)
Exemplo: O algoritmo para trocar uma lâmpada
24
Resolução
Problema: Trocar a lâmpada.
Resolução:
Remova a lâmpada queimada;
Coloque a lâmpada nova.
Nesta primeira versão, usamos o conceito de seqüenciação. Todo algoritmo
é uma seqüência de passos;
Os comandos do algoritmo fazem parte de uma seqüência, onde é
relevante a ordem na qual se encontram os mesmos;
Cada um dos comandos será executado um de cada vez, estritamente, de
acordo com essa ordem definida.
25
Análise
O que vocês acharam deste algoritmo?
Verifique se ele atende a todas as características discutidas há
pouco. Prevê todos os problemas durante a troca da
lâmpada?
Vamos voltar as características e verificar.
Não! Este algoritmo, apesar de parecer claro, na verdade,
está muito genérico.
Vamos melhorá-lo.
26
Refinamento
Podemos tornar os passos da resolução do problema
mais detalhados para torná-los mais claros e
precisos;
A este desdobramento dar-se o nome de
Refinamento Sucessivo:
Programadores tendem a escrever primeiro os passos
gerais e, só depois, aplicar um desdobramento dos passos
até que se atinja o resultado desejado.
Comandos e Estruturas de controles são usados para
provê refinamento.
27
Cuidado!
Você deve estar se perguntando: Como saber se o
algoritmo está detalhado o suficiente?
A resposta é: depende de quem vai executá-lo.
Não devemos definir os passos de forma muito
genérica (ou abstrata), nem tampouco detalhar
demasiadamente os passos a ponto de tornar o
algoritmo óbvio e grande demais.
28
Estruturas de controle (construção)
Seqüencial:
a mais simples estrutura de controle. Os comandos devem ser
executados um após o outro, na mesma ordem em que aparecem
escritos;
Decisão ou seleção:
também conhecida por Seleção, pode provocar ou não a realização
de uma ação;
Repetição ou iteração:
os comandos e as estruturas de controle abrangidos devem ser
executados repetidamente até que se verifique uma condição para
que se interrompa a repetição.
29
Questões
Lógica:
Um frasco contém um casal de melgas. As melgas reproduzem-se e o
seu número dobra todos os dias. Em 50 dias o frasco está cheio. Em
que dia o frasco esteve meio cheio ?
Três gatos comem três ratos em três minutos. Cem gatos comem cem
ratos em quantos minutos?
30
Dúvidas31
Perguntas?
Exercícios32
Apostila: Algoritmo e Pascal – P1.01 até P1.15
A pergunta P1.15 será discutida em sala de aula.