Vous êtes sur la page 1sur 23

Aula

INTRODUO
1
Viso Geral de um Computador
A finalidade de um computador receber,
manipular e armazenar dados, isto ,
receber dados atravs de dispositivos de
entrada;
2
realizar operaes com estes dados
e gerar uma resposta que ser expressa em
um dispositivo de sada.
Viso Geral de um Computador
Componentes
Hardware parte fsica
Software parte lgica (programas)
3
Linguagem de Programao ferramenta
utilizada para desenvolver um software
(programa)
Como construir um programa
Etapas do desenvolvimento :
Anlise conhecimento do problema
(definio das entradas, processamento e
sada dos dados)
4
Construo do Algoritmo aplicao de
ferramentas para descrio do problema e
sua soluo
Codificao transformao do algoritmo em
cdigos de uma linguagem de programao
Algoritmo
O que um algoritmo
Um conjunto finito de regras que prov uma
seqncia de operaes para resolver um tipo de
problema especfico [KNUTH]
5
Seqncia ordenada, e no ambgua, de passos
que levam soluo de um dado problema
[TREMBLAY]
Algoritmo
Caractersticas de um algoritmo
ter fim;
no dar margem dupla interpretao (no
ambguo);
capacidade de receber dado(s) de entrada do mundo
6
capacidade de receber dado(s) de entrada do mundo
exterior;
poder gerar informaes de sada para o mundo
externo ao do ambiente do algoritmo;
Algoritmo
Exemplos de algoritmos
instrues para se utilizar um aparelho
eletrodomstico;
uma receita para preparo de algum prato;
guia de preenchimento para declarao do imposto
7
guia de preenchimento para declarao do imposto
de renda;
a maneira como as contas de gua, luz e telefone
so calculadas mensalmente; etc.
Algoritmos - Representao
Algumas formas de representar algoritmos
Descrio Narrativa uso do portugus para
descrio do algoritmo
Fluxograma utilizao de smbolos grficos na
8
Fluxograma utilizao de smbolos grficos na
representao
Linguagem Algoritmica pseudo-linguagem de
programao (portugus estruturado)
Algoritmos - Representao
Exemplo: Faa um algoritmo que
receba dois numeros reais, calcule e
imprima a mdia aritmtica entre eles.
9
Descrio Narrativa
Solicite que alguem informe dois nmeros.
Adicione estes dois nmeros e faa o clculo da
mdia aritmtica e informe o resultado
Algoritmos - Representao
Descrio Narrativa
Solicite que alguem informe dois nmeros.
Adicione estes dois nmeros e faa o clculo da
mdia aritmtica e informe o resultado
10
Exitem dvidas quanto a representao?
Como informar os nmeros?
Adicionar a mais algum outro nmero?
Como calcular a mdia aritmtica?
Como informar o resultado?
Algoritmos - Representao
Fluxograma
Inci
o
N1, N2
11
Mdia = (N1 + N2) / 2
Mdia
Fim
Algoritmos - Representao
Linguagem Algoritmica
Algoritmo Calcula_Media
N1, N2, M: real
Inicio
12
Inicio
escreva Digite Nota1 e Nota2
leia N1, N2
M (N1 + N2) / 2
escreva Mdia = , M
Fim
Algoritmos - Representao
Linguagem Algoritmica
Algoritmo Calcula_Media
N1, N2, M: real
Inicio
escreva Digite Nota1 e Nota2
Inci
o
N1, N2
Fluxogram
a
Desc. Narrativa
Solicite que
alguem informe
dois nmeros.
Adicione estes
dois nmeros e
13
escreva Digite Nota1 e Nota2
leia N1, N2
M (N1 + N2) / 2
escreva Mdia = , M
Fim
Mdia = (N1 + N2) / 2
Mdia
Fim
dois nmeros e
faa o clculo
da mdia
aritmtica e
informe o
resultado
Representao Vantagens e Desvantagens
Linguagem Algoritmica
Fluxograma
Desc. Narrativa
VANTAGENS:
o portugus
conhecido
DESVANTAGENS:
VANTAGENS:
Figuras dizem muito
mais que palavras;
Padro mundial
DESVANTAGENS:
VANTAGENS:
Usa o portugus como base;
Pode-se definir quais e como
os dados vo estar estruturados;
DESVANTAGENS:
14
DESVANTAGENS:
impreciso;
baixa confiabilidade
em algumas
situaes escreve-se
muito
DESVANTAGENS:
Pouca ateno aos
dados, quanto a
descrio;
Difcil representar
medida que o
algoritmo cresce.
DESVANTAGENS:
Exige a definio de uma
linguagem no real para
trabalho;
No padronizado.
Algoritmo Refinamento Sucessivos
Um Algoritmo considerado completo se os seus
comandos forem de entendimento do seu destinatrio.
Num algoritmo, um comando que no for do
entendimento do destinatrio ter de ser desdobrado
em novos comandos, que constitui um refinamento do
15
em novos comandos, que constitui um refinamento do
comando inicial;
EXEMPLO: Algoritmo para trocar uma lmpada
queimada
Algoritmo Refinamento Sucessivos
Como ilustrao, poderamos reescrever o algoritmo
anterior refinando alguns passos, e teramos com
resultado o seguinte algoritmo:
16
Algoritmo Refinamento Sucessivos
A tcnica anteriormente utilizada consiste em dividir,
sucessivamente, o problema em subproblemas cada
vez menores at que estes possam ser resolvidos de
uma forma direta.
Essa tcnica muitas vezes chamada de Dividir para
conquistar.
17
funo da pessoa que est desenvolvendo um
algoritmo, finaliz-lo no momento em que achar que o
mesmo pode ser executado de forma adequada.
Construir algoritmos voltados para programao de
computadores exige um cuidado bem maior do que
escrev-los para seres humanos devido ao fato dos
computadores (ainda) no serem capazes de tirar
concluses como os humanos.
Unidade Central de Processamento (UCP)
Fluxo de Informaes
Informaes Iniciais + Operaes sobre Resposta
as informaes
Dispositivo
Dispositivo
Unidade Lgica e
Aritmtica (ULA)
18
Dispositivo
de Entrada
Dispositivo
de Sada
Aritmtica (ULA)
Memria
Unidade de Controle
(UC)
O que um Programa
a codificao de um algoritmo em uma linguagem
de programao.
Para utilizarmos uma linguagem de programao
necessrio conhecermos a sua sintaxe (conjunto
de regras que constituem a linguagem de
19
de regras que constituem a linguagem de
programao (palavras utilizadas, pontuao, etc)).
A mquina trabalha somente com cdigos
numricos (linguagem de mquina), baseados nos
nmeros 0 e 1 (sistema binrio), que representam
impulsos eltricos, ausente e presente.
O que um Programa
Quando classificamos uma linguagem de programao
falamos em:
Linguagem de alto nvel para as mais prximas da linguagem
humana;
Linguagem de baixo nvel para as mais semelhantes
linguagem de mquina.
20
linguagem de mquina.
Para que um computador possa "entender" um programa
escrito em uma linguagem de alto nvel, torna-se necessrio
um meio de traduo entre a linguagem utilizada no
programa e a linguagem de mquina. Esta traduo pode
ser feita de duas formas: utilizando um compilador ou um
interpretador.
O que um Compilador
COMPILADOR - traduz o programa escrito em
linguagem de alto nvel (programa-fonte) para um
programa equivalente escrito em linguagem de
mquina (programa-objeto).
21
Programa
Fonte
Ling.
Alto
Nvel
COMPILADOR
Programa
Fonte
Ling.
Alto
Nvel
Programa
Objeto
Ling.
Baixo
Nvel
Resultados
EXECUO
O que um Interpretador
INTERPRETADOR - traduz e envia para execuo,
instruo por instruo e o programa permanece na
forma fonte.
Programa
Fonte
Programa
Fonte
22
Fonte
Ling.
Alto
Nvel
INTERPRETADOR
Fonte
Ling.
Alto
Nvel
Resultados
EXECUO
Exerccios
P1.05. Suponha que temos um rob a nossa disposio.
Esse rob chama-se MANNY e precisa ser ensinado a
fazer determinadas tarefas. Para ensinar o MANNY,
vamos fazer uso do portugus para passar-lhe as
instrues necessrias execuo de cada atividade.
Escreva os passos necessrios para o nosso
23
Escreva os passos necessrios para o nosso
rob executar:
a) encher uma bacia com gua;
b) trocar uma lmpada no teto de sua casa;
c) trocar o pneu de um carro;
d) calcular a sua idade daqui a 20 anos;
e) calcular a mdia de um aluno com 3 notas.