Professional Documents
Culture Documents
Sumario
Introduo
Histria da computao
Funcionamento do computador Linguagens de Programao Desenvolvimento de algoritmos Algoritmos no computacionais Algoritmos computacionais Fluxogramas
Exerccios
O que um computador?
Dicionrio Porto Editora
1
que ou aquele que faz cmputos (clculos); calculador; calculista.
2
aparelho electrnico que processa dados em funo de
Gerao 0 - mecnica
Abaco Rguas de calculo
1 Gerao - vlvulas
ENIAC (1945)
2 gerao - Transistor
Vantagens em relao s
vlvulas
Menor energia consumida Menor aquecimento Maior velocidade de
processamento
UNIVAC (1956)
7
Dodos
Chips
Conjunto de componentes
Circuitos integrados
Conjunto de chips
PC-XT (1981)
8
4 gerao - VLSI
Integrao de circuitos em larga escala Slots ISA de 16 bits Slots PCI Placas VGA e SVGA
PC-AT (1985)
5 gerao - ULSI
Integrao em muito larga
escala
Processamento paralelo AGP USB
SATA
10
Computadores na actualidade
11
12
13
Memria
abcdefghijklmnopqrstuvxywz01234567890
14
Software / Hardware
S.O.
15
Software / Hardware
Software a parte que voc diz mal. Hardware a parte que voc chuta.
16
Pequeno porte
Microcomputadores Ultra-Microcomputadores
17
tarefas
Mono utilizador Monotarefa
Multitarefa
Multi utilizador
Multi-posto
Servidor UNIX Terminais
Redes de computadores
Internet
18
19
Linguagens e alfabetos
Hello World Ol Mundo Bonjour Monde
Halo welt
20
projectados.
0100 1010100 0100 1010110 0110 1001100 0101 1010101 1100 1001100
21
2 gerao Assembler
2 gerao Assembler
Mneumnicas do instruction
dosseg .model small .stack 100h .data hello_message db 'Hello, World!','$' .code main proc mov mov mov mov int mov int endp main
set do processador
Assemblador Programa que traduz o cdigo assembly para linguagem mquina
Os Programas funcionam
Desenvolvimento de
main end
2 gerao Assembler
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
printf:
text:
Assembly on an Commodore 64
23
2 gerao Assembler
Desvantagens Pequeno nmero de instrues
Programas longos Pouco legveis Difceis de modificar
24
em assembly
Exemplos Basic
25
Cobol
26
concretas
Funes muito especficas Gesto de bases de dados Elaborao de relatrios Gerao de ecrs Exemplos DBASE SQL CLIPPER
SET ECHO OFF CLEAR DO WHILE 1=1 @1,1 SAY "Hello, World!" ENDDO
DBASE
CREATE TABLE HELLO (HELLO CHAR(12)) UPDATE HELLO SET HELLO = 'HELLO WORLD!' SELECT * FROM HELLO
SQL
27
Prolog
28
Algoritmo
inferncia
29
scanf(%f,&raio);
if( raio < 0 ) printf ( ERRO Raio negativo) else { printf(Perimetro do circulo:;
Relaes familiares
31
32
Algoritmo
Origem da palavra al-Khwarizmi - Matemtico rabe
Algoritmo Algarismo
Definio uma sequncia finita de passos ou instrues, ordenadas de forma lgica, que levam a execuo de uma tarefa ou soluo de um problema.
33
Exemplo de um Algoritmo
250g de farinha 150g de margarina 5 ovos 2 colheres de fermento 200 gramas de acucar
1. 2.
Receita
34
Refinamento: Obter creme Juntar ovos Ligar e regular o forno Desligar o forno
Algoritmos
Algoritmo no computational
Exemplos
Algoritmo computational
Manipular informao (I/O)
Receber dados
Devolver informao
Executar instrues
Fazer operaes aritmticas Fazer operaes lgicas
Um algoritmo computacional uma sequencia de passos to bem definida que at um computador o capaz de a executar
36
Componentes de um algoritmo
Problema Conjunto das possveis entradas Conjunto das sadas Conjunto de operaes vlidas Soluo Algortmica
Conjunto ordenado de operaes
37
Exemplo
Como se constroem algoritmos? Problema Trocar uma lmpada fundida
Algoritmo 1
Retirar a lmpada fundida Colocar a lmpada boa
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
38
Exemplo
Algoritmo 2
Sada
Lmpada nova a funcionar
Operaes vlidas
Subir a escada Retirar a lmpada fundida Colocar a lmpada boa Descer a escada
Exemplo
Trocar uma lmpada fundida
Entrada
Sada
Lmpada nova a funcionar Lmpada fundida na reciclagem
Algoritmo 2
Operaes vlidas
Retirar a lmpada Colocar a lmpada Subir a escada Descer a escada Deitar a lmpada na reciclagem
Subir a escada Retirar a lmpada fundida Colocar a lmpada boa Descer a escada Colocar a lmpada fundida na reciclagem
40
Exemplo
Trocar uma lmpada fundida
Entrada Lmpada nova
Escada Caixote de reciclagem
Algoritmo 3
Sada
Lmpada nova a funcionar
Operaes vlidas
Retirar a lmpada Colocar a lmpada Subir a escada Descer a escada Deslocar a escada Deitar a lmpada na reciclagem
Colocar a escada debaixo da lmpada Colocar a lmpada boa no bolso Subir a escada Retirar a lmpada fundida Colocar a lmpada boa Descer a escada Colocar a lmpada fundida na reciclagem Arrumar a escada
um bom algoritmo ?
41
Ser finito
Termina sempre e com o resultado previsto
Ser eficaz
Resolve sempre o problema mesmo nas situaes mais problemticas
Ser eficiente
Utiliza o mnimo de recursos possvel
42
um bom algoritmo ?
Interagir com o utilizador Ser finito Ser correctamente
Algoritmo 3
Colocar a escada debaixo da lmpada Colocar a lmpada boa no bolso Subir a escada Retirar a lmpada fundida Colocar a lmpada boa Descer a escada Colocar a lmpada fundida na reciclagem Arrumar a escada
43
Algoritmo ou algoritmos ?
1. 2. 3. 4. 5. 6. 7.
Suba um degrau Suba um degrau Suba um degrau Suba um degrau Suba um degrau Suba um degrau ....
44
Algoritmo ou algoritmos ?
1. 2. 3. 4. 1. 2. 3. 4. Inicio Suba um degrau Se no chegou ao topo v para 2 Fim Inicio Enquanto no chegar ao topo Suba um degrau Fim Inicio
Situao inicial: Pessoa no cho Situao final: Pessoa no topo Instrues vlidas: Subir um degrau Verificar se est no topo da escada
Sim
Fim
Topo da escada ?
No
Subir um degrau
45
Concluso
O algoritmo no a soluo de um
problema
uma forma de chegar soluo
No se aprende A copiar algoritmos Ler algoritmos prontos A decorar algoritmos Aprende-se Construindo algoritmos Testando algoritmos
46
Qual o problema.
O que pretendemos do algoritmo Qual a situao inicial O que necessrio para resolver o problema Qual a situao final Que resultados devem ser apresentados Definir quais as instrues disponveis/necessrias Organizar as instrues de forma a resolver o problema
Definir o Algoritmo
transformar as entradas na sada
Testar o algoritmo
Optimizar o algoritmos
Verificar se no utiliza recursos suprfluos
47
48
Algoritmos
Pretende-se fazer a travessia de clientes da margem
esquerda para a margem direita de um rio. A travessia feita com o auxilio de um barqueiro e de um Construa um algoritmo que vai ser executado pelo barqueiro sabendo que:
Existem 4 clientes e o barco leva 2 pessoas Existem 100 clientes e o barco leva 2 pessoas Existem 10 clientes e o barco leva 4 pessoas
49
Algoritmos
Sapos verdes Sapos castanhos pretendem atravessar um rio
atravs de um conjunto de pedras. Cada sapo inicialmente ocupa uma pedra no seu lado do rio e existe uma pedra vazia entre os sapos verdes e castanhos. Os sapos apenas podem saltar para a pedra seguinte se esta estiver vazia ou saltar por cima de um sapo de outra cor se houver uma pedra vazia do outro lado. Construa um algoritmo que permita fazer a travessia de 2 sapos
Situao inicial
Situao final
50
Algoritmos
Construa um algoritmo que permita fazer a travessia de
6 sapos
Situao inicial
Situao final
51