Professional Documents
Culture Documents
1
M@nso 2004
Introduo programao
Computadores e
programao I
Sumario
Introduo
Histria da computao
Funcionamento do computador
Linguagens de Programao
Desenvolvimento de algoritmos
Algoritmos no computacionais
Algoritmos computacionais
Exerccios
2
M@nso 2004
Introduo programao
Computadores e
programao I
O que um computador?
1
que ou aquele que faz cmputos;
calculador;
calculista.
3
M@nso 2004
Computador
As cinco geraes
4
M@nso 2004
Introduo programao
Computadores e
programao I
1 Gerao - vlvulas
vlvula
Mark 1 (1944)
O primeiro
Bug
M@nso 2004
ENIAC (1945)
Introduo programao
Computadores e
programao I
2 gerao - Transistor
Vantagens em relao
s vlvulas
Menor aquecimento
Maior velocidade de
processamento
UNIVAC (1956)
M@nso 2004
Introduo programao
Computadores e
programao I
Componentes miniaturizados
Chips
Conjunto de componentes
Circuitos integrados
Transistores
Resistores
Diodos
Conjunto de chips
PC-XT (1981)
7
M@nso 2004
Introduo programao
Computadores e
programao I
4 gerao - VLSI
PC-AT (1985)
M@nso 2004
Introduo programao
Computadores e
programao I
5 gerao - ULSI
Integrao em muito
larga escala
Processamento paralelo
Slots AGP
USB
SATA
9
M@nso 2004
Introduo programao
Computadores e
programao I
Computadores na actualidade
10
M@nso 2004
Funcionamento do
computador digital
11
M@nso 2004
Introduo programao
Computadores e
programao I
12
M@nso 2004
Introduo programao
Computadores e
programao I
abcdefghijklmnopqrstuvxywz0123456789013
M@nso 2004
Introduo programao
Computadores e
programao I
Software / Hardware
S.O.
14
M@nso 2004
Introduo programao
Computadores e
programao I
Software
Aplicativos
Processamento de texto
Desenho
Microsoft Word
Corel Draw
Autocad
Jogos
Etc.
Sistema operativo
M@nso 2004
15
Introduo programao
Computadores e
programao I
Grande porte
Mdio porte
Supercomputadores
Mainframes
Workstations
MiniComputadores
Pequeno porte
Microcomputadores
Ultra-Microcomputadores
16
M@nso 2004
Introduo programao
Computadores e
programao I
Mono utilizador
Monotarefa
Multitarefa
Multi utilizador
Multi-posto
Servidor UNIX
Terminais
Redes de computadores
Internet
17
M@nso 2004
Linguagens de
Programao
A linguagem que as mquinas
entendem
18
M@nso 2004
Introduo programao
Computadores e
programao I
Linguagens e alfabetos
Hello World
Ol Mundo
Bonjour Monde
Halo welt
19
M@nso 2004
Introduo programao
Computadores e
programao I
0100
0100
0110
0101
1100
1010100
1010110
1001100
1010101
1001100
20
M@nso 2004
Introduo programao
Computadores e
programao I
2 gerao Assembler
2 gerao Assembler
Mneumnicas do
instruction set do
processador
.data
hello_message db 'Hello, World!','$'
.code
main proc
mov
mov
Os Programas funcionam
apenas num tipo
processador
Assemblador Programa
que traduz o cdigo
assembly para linguagem
mquina
dosseg
.model small
.stack 100h
Desenvolvimento de
programas muito difcil e
demorado
M@nso 2004
main
end
ax,@data
ds,ax
mov
mov
int
ah,9
dx,offset hello_message
21h
mov
int
endp
main
ax,4C00h
21h
21
Introduo programao
Computadores e
programao I
2 gerao Assembler
printf:
pea
move.w
trap
addq.l
bra
text
#9,-(sp)
#1
#6,sp
printf
text:
dc.b
"Hello,
World !",0
reset
LDX #$00
cycle
LDA hworld,X
BEQ reset
STX cache
JSR $FFD2
LDX cache
INX
JMP cycle
hworld
.text "Hello, World!"
.byte 13,0
cache
.byte 0
22
M@nso 2004
Introduo programao
Computadores e
programao I
2 gerao Assembler
Desvantagens
Programas longos
Pouco legveis
Difceis de modificar
Os programas no so portteis entre computadores
Vantagens
Cdigo optimizado
M@nso 2004
Introduo programao
Computadores e
programao I
Clculo matemtica
Gesto de documentos
Controlo
Exemplos
Basic
Pascal
C
Cobol
Fortran
10 print"Hello World!"
20 goto 10
Basic
24
M@nso 2004
Introduo programao
Computadores e
programao I
Pascal
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400
DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500
DISPLAY "HELLO, WORLD." LINE 15 POSITION 10.
100600
STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800
EXIT.
Cobol
25
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplos
DBASE
SQL
CLIPPER
ECHO OFF
CLEAR
DO WHILE 1=1
@1,1 SAY "Hello, World!"
ENDDO
DBAS
E
CREATE TABLE HELLO (HELLO CHAR(12))
UPDATE HELLO
SET HELLO = 'HELLO WORLD!'
SELECT * FROM HELLO
SQL
M@nso 2004
26
Introduo programao
Computadores e
programao I
Programao declarativa
Prolog
M@nso 2004
Prolog
27
Introduo programao
Computadores e
programao I
Algoritmo
Programao declarativa
Qual o problema?
inferncia
28
M@nso 2004
Introduo programao
Computadores e
programao I
Clculo do
Permetro do
crculo
scanf(%f,&raio);
if( raio < 0 )
printf ( ERRO Raio negativo)
else {
printf(Perimetro do circulo:;
Programao imperativa
Linguagem C
C:\Calculo.exe
Raio do circulo: 2
Perimetro do circulo: 6.28
29
M@nso 2004
Introduo programao
Computadores e
programao I
Relaes
familiares
Irmao(X,Y) :- Mae(Z,X)
Mae(Z,Y)
Avo(X,Y):- Mae(X,Z),
Mae(Z,Y).
Programao declarativa
(prolog)
?: Avo( X,tiago)
X= Iria.
?: Irmao( X,Y)
X = ines
Y = antonio
30
M@nso 2004
Resoluo de problemas
Introduo programao
imperativa
31
M@nso 2004
Introduo programao
Computadores e
programao I
Algoritmo
Origem da palavra
Algoritmo
Algarismo
Definio
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplo de um Algoritmo
250g de farinha
150g de margarina
5 ovos
2 colheres de fermento
200 gramas de acucar
1.Misturar os ingredintes
2.cozinhar o bolo.
Receita
33
M@nso 2004
Introduo programao
Computadores e
programao I
Receita:
1 - Misturar os ingredintes
1.1 juntar a margarina e a farinha e bater at obter um creme
1.2 Juntar os ovos e mexer
1.3 juntar o fermento
2 Cozinhar o bolo
2.1 Aquecer o forno a 180c
2.2 Cozer o bolo durante 45 min
Refinamento:
Obter creme
Juntar ovos
Ligar e regular o forno
Desligar o forno
34
Introduo programao
Computadores e
programao I
Algoritmos
Algoritmo no computational
Exemplos
Receita
Manual de instrues
Algoritmo computational
Manipular informao
Receber dados
Guardar dados
Devolver informao
Executar instrues
M@nso 2004
Um algoritmo
computacional
uma sequencia de
passo to bem
definida que at
um computador o
capaz de a
executar
35
Introduo programao
Computadores e
programao I
Componentes de um algoritmo
Problema
Soluo Algortmica
Conjunto ordenado de
operaes vlidas que
transformam o conjunto de
entradas na sada desejada
36
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplo
Algoritmo 1
A formulao de um problema
frequentemente mais essencial do que a sua
soluo, a qual pode ser meramente uma
questo de habilidade matemtica ou
experimental
Einstein
37
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplo
Entrada
Sada
Lmpada fundida
Lmpada nova
Escada
Algoritmo 2
Operaes vlidas
Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada
Subir a escada
Retirar a lmpada
fundida
Colocar a lmpada boa
Descer a escada
38
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplo
Entrada
Sada
Lmpada fundida
Lmpada nova
Escada
Caixote de reciclagem
Lmpada nova a funcionar
Lmpada fundida na reciclagem
Operaes vlidas
Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada
Deitar a lmpada na reciclagem
Algoritmo 2
Subir a escada
Retirar a lmpada
fundida
Colocar a lmpada boa
Descer a escada
Colocar a lmpada
fundida na reciclagem
39
M@nso 2004
Introduo programao
Computadores e
programao I
Exemplo
Entrada
Lmpada nova
Escada
Caixote de reciclagem
Algoritmo 3
Sada
Operaes vlidas
Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada
Deslocar a escada
Deitar a lmpada na reciclagem
um bom algoritmo ?
M@nso 2004
40
Introduo programao
Computadores e
programao I
Ser finito
Ser eficaz
Ser eficiente
41
M@nso 2004
Introduo programao
Computadores e
programao I
um bom algoritmo ?
Interagir com o
utilizador
Ser finito
Ser correctamente
definido
Ser eficaz
Ser eficiente
Algoritmo 3
42
M@nso 2004
Introduo programao
Computadores e
programao I
Algoritmo ou algoritmos ?
1.
2.
3.
Inicio
Subir a escada
Fim
1.
2.
3.
4.
5.
6.
7.
8.
9.
Inicio
Suba um
Suba um
Suba um
Suba um
Suba um
Suba um
....
Fim
degrau
degrau
degrau
degrau
degrau
degrau
43
M@nso 2004
Introduo programao
Computadores e
programao I
Algoritmo ou algoritmos ?
1.
2.
3.
4.
1.
2.
3.
4.
5.
Instrues vlidas:
Subir um
degrau
Verificar se
est no topo
M@nso 2004
1.
2.
3.
4.
Inicio
Suba um degrau
Se no chegou ao topo v para 2
Fim
Inicio
Repita
Suba um degrau
At chegar ao topo
Fim
Inicio
Enquanto no chegar ao topo
Suba um degrau
Fim
44
Introduo programao
Computadores e
programao I
Concluso
O algoritmo no a soluo
de um problema
No se aprende
Aprende-se
Construindo algoritmos
Testando algoritmos
45
M@nso 2004
Introduo programao
Computadores e
programao I
Qual o problema.
Definir o Algoritmo
Testar o algoritmo
Optimizar o algoritmos
M@nso 2004
46
Exerccios
47
M@nso 2004
Introduo programao
Computadores e
programao I
Reunio de negcios
a)Entrar no prdio da
reunio;
b)Sair do txi;
c)Acenar para que o txi
pare;
d)Perguntar o preo da
corrida;
e)Informar o destino ao
motorista;
f)Esperar o txi;
g)Pagar ao taxista;
h)Entrar
M@nso 2004 no txi.
Esperar o txi
Acenar para que o txi pare
Entrar no txi
Informar o destino ao
motorista
Perguntar o preo da corrida
Pagar ao taxista;
Sair do txi;
Entrar no prdio da reunio
48
Introduo programao
Computadores e
programao I
Algoritmos
49
M@nso 2004
Introduo programao
Computadores e
programao I
Algoritmos
n pessoas
50
Introduo programao
Computadores e
programao I
Torres de Hanoi
51
M@nso 2004
Introduo programao
Computadores e
programao I
Torres de Hanoi
52
M@nso 2004
Introduo programao
Computadores e
programao I
53
M@nso 2004
Introduo programao
Computadores e
programao I
5
54
M@nso 2004
Introduo programao
Computadores e
programao I
Missionrios e Canibais
55
M@nso 2004
Introduo programao
Computadores e
programao I
O jogo do rio
A jangada apenas pode ser conduzida pelo Pai, pela Me ou pelo Polcia.
A Me nunca pode ficar na mesma margem na presena de um ou mais
filhos sem a presena do Pai.
O Pai nunca pode ficar na mesma margem na presena de uma ou mais
filhas sem a presena do Me.
O ladro deve estar sempre acompanhado pelo polcia quando existem
na mesma margem outros elementos.
56
M@nso 2004