TÉCNICAS DE
PROGRAMAÇÃO
Prof. Fernando Marcos Souza Silva
[email protected]
Fev/2011
UNIDADE I (a)
Algoritmos
Objetivos
• Introduzir a Tecnologia de Algoritmos
• Apresentar as Formas de
Notação/Representação de Algoritmos
• Apresentar uma Metodologia para
Desenvolvimento de Algoritmos
• Introduzir o Português Estruturado com
sua edição apoiada pelo software Visualg
• Introduzir comandos de saída em
Português Estruturado
Introdução
• Desde o início de sua existência, o
homem procurou criar máquinas para
auxiliá-lo em seu trabalho, diminuindo o
esforço físico e economizando tempo
• Hardware x Software
Introdução
• Usamos algoritmos muitas vezes no
nosso dia-dia e nem nos damos conta
disso:
– Manuais de aparelhos eletrodomésticos;
– Uma receita para o preparo de um prato;
– O cálculo de contas de água e luz
ENTÃO, O QUE SÃO ALGORITMOS?
Conceitos de Algoritmos
• “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]
Conceitos de Algoritmos
• “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]
Por que precisamos de Algoritmos
• “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”]
Por que precisamos de Algoritmos
• “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]
Características
• Todo algoritmo deve apresentar algumas
características básicas:
– ter fim;
– não dar margem a dupla interpretação (não
ambíguo);
– capacidade de receber dados de entrada do
mundo exterior;
– poder gerar informações de saída para o
ambiente externo ao mundo do algoritmo;
– ser efetivo (eficiente)
Metodologia para desenvolvimento
• Ler atentamente o enunciado, destacando
os pontos mais importantes;
• Definir os dados de entrada;
• Definir o processamento;
• Definir os dados de saída;
• Construir o algoritmo utilizando uma das
ferramentas descritas na próxima seção;
• Testar o algoritmo realizando simulações.
Metodologia para desenvolvimento
• A metodologia utilizada se orienta pela
sequência de aprendizado descrita na
figura a seguir:
Formas de Representação
• Definem regras para a forma em que os
algoritmos devem ser “escritos”
• Algoritmos podem ser representados,
dentre outras maneiras por:
– Descrição narrativa;
– Fluxograma;
– Linguagem algorítimica.
Descrição Narrativa
• Faz uso do português para descrever algoritmos
• Exemplo:
Receita de Bolo
•
•
•
•
•
•
•
•
Providencie manteiga, ovos, 2 Kg de massa, 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
Descrição Narrativa
• Vantagens
– O português é bastante conhecido por nós
• Desvantagens
– imprecisão (ambiguidade);
– pouca confiabilidade (a imprecisão acarreta a
desconfiança);
– extensão (normalmente, escreve-se muito
para dizer pouca coisa).
Exercícios de Aprendizagem
1. Faça um algoritmo, usando Descrição
Narrativa, para trocar uma lâmpada.
2. Faça um algoritmo, usando Descrição
Narrativa, para fritar um ovo.
3. Em uma FOLHA SEPARADA faça um
algoritmo, usando Descrição Narrativa, para
calcular o Mínimo Múltiplo Comum (MMC)
entre dois números.
Fluxograma
• Utilização de símbolos gráficos para representar
algoritmos
ps. Existem vários símbolos e notações para esta notação
Fluxograma
• Exemplo: Um algoritmo recebe como
entrada 1 número, calcula e dá como
saída o dobro deste número
Fluxograma
• 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.
Exercícios de Aprendizagem
4. Faça um algoritmo, usando Fluxograma,
que receba como entrada, dois números.
O algoritmo computará e dará como
saída a soma dos dois números.
Exercícios de Aprendizagem
5. Faça um algoritmo, usando Fluxograma,
que receba como entrada 3 números,
calcule e dê como saída a média
aritmética destes 3 números.
Exercícios de Aprendizagem
6. Faça um algoritmo, usando Fluxograma,
que receba como entrada, as 4 notas do
bimestre de um aluno. O algoritmo
computará a soma destas notas, e dará
como saída “APTO”, caso a nota do
aluno seja maior ou igual a 60 pontos e
“EM CONSTRUÇÃO” caso a nota do
aluno seja menor que 60 pontos.
Português Estruturado
• Conhecido como Portugol ou Linguagem
Algorítmica. Consiste na definição de uma
pseudolinguagem de programação
• Exemplo:
algoritmo "calc_dobro"
var
a : inteiro
dobro : inteiro
inicio
leia (a)
dobro <- 2 * a
escreva (dobro)
fimalgoritmo
Português Estruturado
Português Estruturado
• Vantagens
–
–
–
–
Independência física da solução (solução lógica apenas);
Usa o português como base;
Pode-se definir quais e como os dados vão estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de
programação qualquer.
• Desvantagens
– Exige a definição de uma linguagem não real para trabalho;
– Não padronizado.
Formas de Representação
• Sintaxe:
– 2 tipos de regras:
• As regras lexicas descrevem as combinações
válidas de caracteres que formam os tokens
(palavras reservadas,identificadores, operadores,
etc).
• As regras sintáticas descrevem como os tokens
podem ser combinados para formar instruções
válidas (comandos, expressões, subrotinas, etc)
Formas de Representação
• Semântica:
– Descreve o significado de construções
sintáticas válidas
Exercícios de Aprendizagem
7. [COMANDOS DE SAÍDA] Construa um
algoritmo em Português Estruturado, que
dê como saída o seu nome completo
Exercícios de Aprendizagem
8. [COMANDOS DE SAÍDA] Construa um
algoritmo em Português Estruturado, que
dê como saída o seguinte texto (com as
devidas quebras de linha):
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO NORTE
DE MINAS GERAIS – IFNMG
CAMPUS ARAÇUAÍ
DISCIPLINA: TÉCNICAS DE PROGRAMAÇÃO
PROFESSOR: FERNANDO MARCOS SOUZA SILVA
ALUNO: <SEU NOME>
FIM
Download

algoritmo