Você está na página 1de 30

TCNICAS DE

PROGRAMAO
Prof. Fernando Marcos Souza Silva
fernando.silva@ifnmg.edu.br
Fev/2011
UNIDADE I (a)
Algoritmos
Objetivos
Introduzir a Tecnologia de Algoritmos
Apresentar as Formas de
Notao/Representao de Algoritmos
Apresentar uma Metodologia para
Desenvolvimento de Algoritmos
Introduzir o Portugus Estruturado com
sua edio apoiada pelo software Visualg
Introduzir comandos de sada em
Portugus Estruturado
Introduo
Desde o incio de sua existncia, o
homem procurou criar mquinas para
auxili-lo em seu trabalho, diminuindo o
esforo fsico e economizando tempo

Hardware x Software
Introduo
Usamos algoritmos muitas vezes no
nosso dia-dia e nem nos damos conta
disso:
Manuais de aparelhos eletrodomsticos;
Uma receita para o preparo de um prato;
O clculo de contas de gua e luz
ENTO, O QUE SO ALGORITMOS?
Conceitos de Algoritmos
Um conjunto finito de regras que prov
uma seqncia de operaes para
resolver um tipo de problema especfico
[KNUTH]

Seqncia ordenada, e no ambgua, de
passos que levam soluo de um dado
problema [TREMBLAY]
Conceitos de Algoritmos
Processo de clculo, ou de resoluo de
um grupo de problemas semelhantes,
em que se estipulam, com generalidade e
sem restries, as regras formais para a
obteno do resultado ou da soluo do
problema [AURLIO]
Por que precisamos de Algoritmos
A noo de algoritmo bsica para toda
a programao de computadores.

[KNUTH - Professor da Universidade de
Stanford, autor da coleo The art of
computer programming]
Por que precisamos de Algoritmos
O conceito central da programao e da
cincia da computao o conceito de
algoritmo.

[WIRTH - Professor da Universidade de
Zurique, autor de diversos livros na rea e
responsvel pela criao de linguagens de
programao como ALGOL, PASCAL e
MODULA-2]
Caractersticas
Todo algoritmo deve apresentar algumas
caractersticas bsicas:
ter fim;
no dar margem a dupla interpretao (no
ambguo);
capacidade de receber dados de entrada do
mundo exterior;
poder gerar informaes de sada 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 sada;
Construir o algoritmo utilizando uma das
ferramentas descritas na prxima seo;
Testar o algoritmo realizando simulaes.
Metodologia para desenvolvimento
A metodologia utilizada se orienta pela
sequncia de aprendizado descrita na
figura a seguir:
Formas de Representao
Definem regras para a forma em que os
algoritmos devem ser escritos

Algoritmos podem ser representados,
dentre outras maneiras por:
Descrio narrativa;
Fluxograma;
Linguagem algortimica.
Descrio Narrativa
Faz uso do portugus para descrever algoritmos
Exemplo:
Receita de Bolo
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na frma de bolo
Leve a frma ao forno
Espere 20 minutos
Retire a frma do forno
Deixe esfriar
Prove
Descrio Narrativa
Vantagens
O portugus bastante conhecido por ns

Desvantagens
impreciso (ambiguidade);
pouca confiabilidade (a impreciso acarreta a
desconfiana);
extenso (normalmente, escreve-se muito
para dizer pouca coisa).
Exerccios de Aprendizagem
1. Faa um algoritmo, usando Descrio
Narrativa, para trocar uma lmpada.

2. Faa um algoritmo, usando Descrio
Narrativa, para fritar um ovo.

3. Em uma FOLHA SEPARADA faa um
algoritmo, usando Descrio Narrativa, para
calcular o Mnimo Mltiplo Comum (MMC)
entre dois nmeros.
Fluxograma
Utilizao de smbolos grficos para representar
algoritmos







ps. Existem vrios smbolos e notaes para esta notao
Fluxograma
Exemplo: Um algoritmo recebe como
entrada 1 nmero, calcula e d como
sada o dobro deste nmero

Fluxograma
Vantagens
Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;
Padro mundial

Desvantagens
Pouca ateno aos dados, no oferecendo recursos
para descrev-los ou represent-los;
Complica-se medida que o algoritmo cresce.
Exerccios de Aprendizagem
4. Faa um algoritmo, usando Fluxograma,
que receba como entrada, dois nmeros.
O algoritmo computar e dar como
sada a soma dos dois nmeros.
Exerccios de Aprendizagem
5. Faa um algoritmo, usando Fluxograma,
que receba como entrada 3 nmeros,
calcule e d como sada a mdia
aritmtica destes 3 nmeros.
Exerccios de Aprendizagem
6. Faa 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 sada APTO, caso a nota do
aluno seja maior ou igual a 60 pontos e
EM CONSTRUO caso a nota do
aluno seja menor que 60 pontos.
Portugus Estruturado
Conhecido como Portugol ou Linguagem
Algortmica. Consiste na definio de uma
pseudolinguagem de programao
Exemplo:
algoritmo "calc_dobro"
var
a : inteiro
dobro : inteiro
inicio
leia (a)
dobro <- 2 * a
escreva (dobro)
fimalgoritmo
Portugus Estruturado
Portugus Estruturado
Vantagens
Independncia fsica da soluo (soluo lgica apenas);
Usa o portugus como base;
Pode-se definir quais e como os dados vo estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de
programao qualquer.

Desvantagens
Exige a definio de uma linguagem no real para trabalho;
No padronizado.
Formas de Representao
Sintaxe:
2 tipos de regras:
As regras lexicas descrevem as combinaes
vlidas de caracteres que formam os tokens
(palavras reservadas,identificadores, operadores,
etc).
As regras sintticas descrevem como os tokens
podem ser combinados para formar instrues
vlidas (comandos, expresses, subrotinas, etc)
Formas de Representao
Semntica:
Descreve o significado de construes
sintticas vlidas
Exerccios de Aprendizagem
7. [COMANDOS DE SADA] Construa um
algoritmo em Portugus Estruturado, que
d como sada o seu nome completo
Exerccios de Aprendizagem
8. [COMANDOS DE SADA] Construa um
algoritmo em Portugus Estruturado, que
d como sada o seguinte texto (com as
devidas quebras de linha):

INSTITUTO FEDERAL DE EDUCAO CINCIA E TECNOLOGIA DO NORTE
DE MINAS GERAIS IFNMG
CAMPUS ARAUA
DISCIPLINA: TCNICAS DE PROGRAMAO
PROFESSOR: FERNANDO MARCOS SOUZA SILVA
ALUNO: <SEU NOME>



FIM

Você também pode gostar