Você está na página 1de 85

Algoritmos e

Tcnicas de Programao

Prof. Thiago
Critrios de Avaliao
P1 Prova 1: 20 pontos
P2 Prova 2: 20 pontos
P2 Prova 3: 25 pontos
Lista de Exerccios: 10 pontos
Presena e participao: 5 pontos
T1 Trabalho 1: 10
T2 Trabalho 2: 10
Mdia: 60 pontos
Recuperao: Mnimo de 30 pontos
Nota Final Rec: (NF + Rec) / 2
Prof. Thiago
Introduo

O que um algoritmo???

Prof. Thiago
Algoritmo

Um algoritmo uma sequncia de instrues


ordenadas de forma lgica para a resoluo de
uma determinada tarefa ou problema.

Prof. Thiago
Algoritmo

Um conjunto finito de regras que prov uma


sequncia de operaes para resolver um tipo
de problema especfico

[KNUTH - Professor da Universidade de Stanford,


autor da coleo The art of computer programming]

Prof. Thiago
Algoritmo

Sequncia ordenada, e no ambgua, de passos


que levam soluo de um dado problema.
[TREMBLAY]

Prof. Thiago
Algoritmo

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]

Prof. Thiago
Exemplos de algoritmos

Instrues para se utilizar um aparelho


eletrodomstico;
Uma receita para preparo de algum prato;
Guia de preenchimento para declarao do Imp.
Renda;
A maneira como as contas de gua, luz e telefone
so calculadas mensalmente; etc.

Prof. Thiago
Por que precisamos de
Algoritmos?

Prof. Thiago
A noo de algoritmo bsica para toda a
programao de computadores. [KNUTH]

O conceito central da programao e da cincia


da computao o conceito de algoritmo. [WIRTH]

Prof. Thiago
Como seria uma algoritmo para realizar uma
ligao telefnica em um telefone pblico???

Prof. Thiago
Prof. Thiago
Lgica de Programao

Uso correto das leis do pensamento e de


processos de raciocnio para a produo de
solues logicamente vlidas e coerentes, que
resolvam com qualidade os problemas que se
deseja programar.

Prof. Thiago
Caractersticas dos Algoritmos
Ter fim;
No deve ser ambguo;
Receber dados;
Gerar informaes de sada;
Ser efetivo.

Prof. Thiago
Atividades
1) Defina com suas palavras, o que algoritmo.
2) Cite alguns algoritmos que podemos encontrar no
nosso dia a dia.
3) Na sua viso, qual a caracterstica mais importante
em um algoritmo? Justifique a sua resposta.
4) Um algoritmo no pode conter um comando como
Escreva todos os nmeros inteiros positivos. Por
qu?

Prof. Thiago
Formas de representao
dos algoritmos

Prof. Thiago
P ro b le m a

A n lise P re lim in a r

So lu o

T e ste d e Q u a lid a d e A lte ra o

P ro d u to F in a l

Prof. Thiago
Prof. Thiago
Descrio Narrativa
EXEMPLO: Receita de Bolo
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na forma de bolo
Leve a forma ao forno
Espere 20 minutos
Retire a forma do forno
Deixe esfriar
Prove
Prof. Thiago
Descrio Narrativa
EXEMPLO: Trocar lmpada queimada
1) Remova a lmpada
2) Coloque uma nova lmpada
Detalhando ou refinando os passos:
1.1) Coloque uma escada embaixo da lmpada queimada
1.2) Suba na escada at alcanar a lmpada
1.3) Gire a lmpada queimada no sentido anti-horrio at
que ela se solte

Prof. Thiago
Detalhando o passo 2
2.1) Escolha uma nova lmpada de mesma
potncia da queimada
2.2) Posicione a lmpada nova no soquete
2.3) Gire a lmpada no sentido horrio at que
ela se firme
2.4) Desa da escada
2.5) Guarde a escada

Prof. Thiago
Prof. Thiago
Vamos agora fazer uma suposio?

E se a lmpada NO estiver queimada?

Prof. Thiago
Prof. Thiago
Novo algoritmo
- pegue uma escada;
- posicione-a embaixo da lmpada;
- busque uma lmpada nova;
- ligue o interruptor;
- se a lmpada no acender, ento:
- suba na escada;
- retire a lmpada velha;
- coloque a lmpada nova;
Prof. Thiago
Algoritmo Otimizado
- ligue o interruptor;
- se a lmpada no acender, ento:
- pegue uma escada;
- posicione-a embaixo da lmpada;
- busque uma lmpada nova;
- suba na escada;
- retire a lmpada velha;
- coloque a lmpada nova;
Prof. Thiago
E se a nova lmpada no acender???

Prof. Thiago
ligue o interruptor; se a lmpada no acender, ento:
- se a lmpada no acender, ento: - retire a lmpada;
- pegue uma escada; - coloque outra lmpada nova;
- posicione-a embaixo da lmpada; - se a lmpada no acender, ento:
- busque uma lmpada nova; - retire a lmpada;
- suba na escada; - coloque outra lmpada nova;
- retire a lmpada velha; (At quando ???)
- coloque a lmpada nova;

Prof. Thiago
Utilizao de Lao Condicional

Prof. Thiago
Verso Final do Algoritmo
ligue o interruptor;
se a lmpada no acender, ento:
pegue uma escada;
posicione-a embaixo da lmpada;
busque uma lmpada nova;
suba na escada;
retire a lmpada velha;
coloque a lmpada nova;
enquanto a lmpada no acender, faa:
retire a lmpada;
coloque outra lmpada nova;

Prof. Thiago
Atividades
5) Usando a forma de representao descrio
narrativa, faa um algoritmo para realizar a troca de
um pneu furado utilizando estrutura de deciso e de
repetio. Considere as seguintes situaes:
a) Qualquer pneu furado;
b) Qualquer pneu furado, porm verificar se o pneu
reserva est em condies de uso;
c) Verificar primeiro se tem algum pneu furado; se
houver, verificar o pneu reserva e ento, trocar o pneu
furado.
Prof. Thiago
FLUXOGRAMAS

Prof. Thiago
Terminao

Utilizado para indicar o incio e o fim de um algoritmo

Incio Fim

Prof. Thiago
Fluxo

Define o fluxo da execuo do algoritmo


O fluxo determinstico
Incio

Fim

Prof. Thiago
Entrada de Dados
Solicita que o usurio digite um dado e armazena-o em
uma varivel
Incio

Fim

Prof. Thiago
Exibio dos Dados

Apresenta dados na sada padro (monitor)

Incio

Ol
mundo!!!

Fim

Prof. Thiago
Processo

Realiza um processamento qualquer Incio

X=9-5

Fim

Prof. Thiago
Deciso
Incio

Define o fluxo da execuo em


funo de uma condio idade

Menor F Idade V Maior


>=
18
Estrutura de seleo

Fim

Prof. Thiago
Prof. Thiago
Fluxograma
Vantagens:
Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;

Desvantagens:
Vinculada a dispositivos fsicos;
Pouca ateno aos dados;
Baixa escalabilidade.
Prof. Thiago
Fluxograma

Prof. Thiago
Exemplo
Monte um fluxograma que mostre
Ol mundo 10 vezes na tela.

Prof. Thiago
Praticando
Monte um fluxograma que:
Solicite dois nmeros (x, y) e calcule o produto deles
sem utilizar o operador de multiplicao

Prof. Thiago
Linguagem Algortmica:
Pseudocdigo Algoritmo Multiplicao X, Y
incio

real: Mult = 0;

leia (X); leia (Y);

Enquanto X > 0, faa:

Mult = Mult + Y;

X = X - 1;

escreva (Mult) ;

fim
Prof. Thiago
Comparaes entre formas
De representao de Algoritmos

Prof. Thiago
Tipo Vantagens Desvantagens
Descrio Portugus: Conhecido
Impreciso
Narativa Pouca confiabilidade

Extenso

Fluxograma Ferramenta Conhecida Soluo amarrada a

Uso de Figuras dispositivos fsicos


Pouca ateno aos dados

Complica-se a medida que o

algoritmo cresce
Linguagem Independncia Fsica Definio de um linguagem

Algortmica Base: portugus no real


Estrutura de Dados No padronizado

Passagem para Linguagem

de Programao

Prof. Thiago
Atividades

6) Cite as formas bsicas para se


representar algoritmos, definindo-as.

7) Em sua opinio, qual a melhor forma de


se representar algoritmos? Justifique sua
resposta.

Prof. Thiago
Estruturas Bsicas
Na Contruo de Algoritmos

Prof. Thiago
Sequenciao
Ordem relevante;
Soluo decomposta em passos individuais.

Prof. Thiago
Deciso ou Seleo
Estrutura condicional
Veracidade da condio

Prof. Thiago
Repetio ou iterao
Looping ou Lao
N determinado de vezes ou de acordo com
uma condio

Prof. Thiago
Refinamento sucessivos

Prof. Thiago
Desdobramento em novos Comandos

Prof. Thiago
Prof. Thiago
Linguagens de Programao

Prof. Thiago
O que Linguagem de Programao

Notao formal;
Estrutura interpretvel;
Comandos e instrues.

Prof. Thiago
Tradutor

Necessidade:
Algoritmos devem ser expressos em linguagem de
mquina.
Ativam diretamente componentes eletrnicos.

Prof. Thiago
Mtodos de Traduo
Compilao

L, analisa e traduz todos os comandos do programa


fonte, criando o programa objeto.

Interpretao

Traduz ou interpreta cada comando ao execut-lo.

Prof. Thiago
Prof. Thiago
Exemplos de Ling. De Programao
ASSEMBLER
Objetivo: substituir as sequncias de 0 e 1 por

mnemnicos
Grande potencialidade
Dependente do processador
Confeco de softwares bsicos e de apoio

Prof. Thiago
Prof. Thiago
Prof. Thiago
Exemplos de Ling. De Programao
BASIC
1963/65: objetivos acadmicos

Linguagem bastante difundida no mundo dos

PCs
Facilitou a popularizao dos micros.

Prof. Thiago
Exemplos de Ling. De Programao
COBOL
Aplicativos comerciais / ambiente de grande

porte
Poderosa na manipulao de grandes volumes

de dados
Extino: assunto bastante polmico.

Prof. Thiago
Exemplos de Ling. De Programao
PASCAL
Conceitos de programao estruturada

Hoje o padro de linguagem estruturada

Ambiente acadmico

ltimas verses: aplicaes comerciais.

Prof. Thiago
Exemplos de Ling. De Programao
FORTRAN
Manipulao de nmeros: aplicaes cientficas e de

engenharia
1 linguagem de alto nvel

Prof. Thiago
Exemplos de Ling. De Programao
Linguagem C
Funes: programas eficientes sem detalhes de
hardware
Altamente portvel

Linguagem de grande popularidade e possui um

grande nmero de aplicaes


O sistema operacional UNIX foi desenvolvido em C

Prof. Thiago
Linguagens de Programao

Classificao quanto
ao nvel de utilizao

Prof. Thiago
Prof. Thiago
Quanto a gerao

1: notao binria com mnemnicos


2: Assembly simblico
3: Linguagem de alto nvel; (Fortran, Algol, Cobol)
4: CASE, prototipao, SQLs; voltada para SGBDs, ambientes
comerciais
5: IA (Lisp, Prolog)

Prof. Thiago
Classificao quanto ao Propsito

Prof. Thiago
Quanto ao Propsito
Aplicaes comerciais
Software bsico
Sistemas especialistas
Educacionais
Aplicaes cientficas

Prof. Thiago
Classificao Quanto ao Paradigma

Prof. Thiago
Quanto ao Paradigma
Imperativo: sequncia de operaes;
orientadas a comando.
Procedural
Modularizao do cdigo.
Orientado a objetos
Troca de mensagens.

Prof. Thiago
Quanto ao Paradigma
Declarativo: descrio do conjunto da
soluo; sem algoritmo explcito.
Lgico
relaes entre valores atravs de regras.
Funcional:
sada como uma funo.

Prof. Thiago
Caractersticas de uma boa
linguagem de programao

Prof. Thiago
Abstrao de dados
Confiabilidade
Correo
Suporte para manuteno
Bom ambiente de programao
Eficincia
Portabilidade

Prof. Thiago
Algoritmo
X
Programa

Prof. Thiago
Critrios de qualidade
de um programa

Prof. Thiago
Qualidade de um Programa
Integridade
Clareza
Simplicidade
Eficincia
Modularidade
Generalidade
Prof. Thiago
Ambientes para escrever Algs

Prof. Thiago
Funcionamento do Comp. Hipottico
Operaes de entrada e sada

Operaes aritmticas

Operaes lgicas e relacionais

Movimentao de dados

Prof. Thiago
Resolvendo um Problema

A partir de dois nmeros que sero


informados, calcular a adio dos
mesmos.

Prof. Thiago
Resoluo atravs das operaes bsicas
a) operao de entrada de dados dos nmeros;

b1) movimento do valor dos nmeros entre a memria e a


ULA;

b2) operao aritmtica de somar os 2 nmeros;

b3) movimentao do resultado da ULA para guardar na


memria;

c) operao de sada do resultado, que est guardado na


memria, para o dispositivo de sada desejado.

Prof. Thiago
Alto Nvel para o PC Hipottico
Real: X, Y, SOMA;

leia (X,Y);

SOMA X + Y;

escreva (SOMA)

Prof. Thiago

Você também pode gostar