Este documento discute os componentes essenciais de um computador e como programas funcionam. Ele explica que o CPU é o componente central que executa instruções, enquanto periféricos fornecem entrada e saída de dados. Também define o que são programas e algoritmos, e discute como linguagens de programação traduzem instruções para o computador.
2. Objectivos:
• Identificar o componente essencial de um
computador na execução de tarefas.
• Distinguir o componente essencial de
componentes periféricos.
• Compreender o que é um programa
informático.
• Escrever um programa simples.
4. Visão Caixa Negra
Unidade de Processamento
Central
E CPU S
Entrada de dados Saída de dados
(sensores, interfaces, …) (dispositivos, armazenamento, …)
5. Arq. Von Neumann do CPU
Memória Primária
Dados
Controlo
Dados
Entrada e
Saída
ULA UC Controlo
7. Os Periféricos
• São a interface entre o mundo e o processador
• De entrada => fornecem dados ao CPU
o Sensores
o Interfaces para humanos (teclado, rato, etc…)
• De saída => permitem ver resultados ou
controlar operações
o Monitores
o Discos de armazenamento
o Luzes
o Motores
9. Programas e Algoritmos
• Um programa informático é uma sequência
de instruções para o computador executar
tarefas.
• Um algoritmo é uma sequência de
instruções para executar uma só tarefa.
• Um programa é composto por um ou mais
algoritmos.
10. Linguagens de Programação
• Instruções, ao nível do processador, são
conjuntos de 1s e 0s,
• 1s e 0s realizados por sinais eléctricos
(…)
01100110 01010011 00110101 01001010
CPU 01110101 10101010 01001010 01011110
01111100 11111111 00001010 01010100
(…)
11. Linguagens de Programação
• Padrão que expressa instruções para o
computador.
• Contém regras sintácticas e semânticas.
• O documento escrito por um humano é
traduzido para uma linguagem de
máquina, com a representação correcta
de 1s e 0s
12. Baixo Nível vs. Alto Nível
Baixo Nível Alto Nível
- Facilidade na escrita +
- Facilidade na interpretação +
(criptico) (natural)
+ Volume de código por tarefa -
• A linguagem de alto nível é mais natural
para o humano e os domínios de
conhecimentos.
13. Baixo Nível vs. Alto Nível
(…)
(…)
lernum proc
push ax
valor = ler_numero_do_teclado();
mov ah, 09h
int 21h
(…)
pop ax
ret
lernum endp
(…)
(…)
01100110 01010011 00110101 01001010
01110101 10101010 01001010 01011110
01111100 11111111 00001010 01010100
01100110 01010011 00110101 01001010
01110101 10101010 01001010 01011110
01111100 11111111 00001010 01010100
01100110 01010011 00110101 01001010
01110101 10101010 01001010 01011110
01111100 11111111 00001010 01010100
01100110 01010011 00110101 01001010
01110101 10101010 01001010 01011110
01111100 11111111 00001010 01010100
(…)
14. Instruções
• Expressões que representam uma operações.
• Uma sequência de instruções permite realizar
trabalho complexo
• Podemos agrupar instruções em estruturas
chamadas de procedimentos, funções ou
métodos.
Soma (número , número)
Nome Lista de parâmetros
16. Comando de Robô
• Controlamos um robô que
segue as instruções que
programamos
• Fabricante disponibiliza 3
instruções:
o Mover (F|R, distancia) (F=frente; R=inverso)
>
o Rodar (H|A, nº graus) (H=Horário;
A=Antihorário)
fim
o Buzinar()
17. Exemplo
Mapa:
>
fim
Objectivo: Operações Disponíveis:
• Programar o robô para Mover (F|R, distancia)
percorrer o caminho (F=frente; R=inverso)
apresentado. Rodar (H|A, nº graus)
(H=Horário; A=Antihorário)
Buzinar()
• Buzinar à chegada.
18. Solução
Mapa:
>
fim
Solução:
Mover (F, 4) //move 4 casas para a frente
Rodar (H,90) //roda 90º no sentido horário
Mover (F, 2) //mover 2 casas para a frente
Rodar (A,90) //roda 90º no sentido anti-horário
Mover (F, 3) //mover 3 casas para a frente
Buzinar() //emite sinal sonoro
20. Solução
Mapa:
>
fim
Solução:
Mover (F, 1) //move 1 casas para a frente
Rodar (H,90) //roda 90º no sentido horário
Mover (F, 2) //mover 2 casas para a frente
Rodar (H,90) //roda 90º no sentido horário
Mover (F, 4) //mover 4 casas para a frente
Buzinar() //emite sinal sonoro
21. Solução
Mapa:
fim
>
Solução:
Mover (F, 2) //move 2 casas para a frente
Rodar (H, 90) //roda 90º no sentido horário
Mover (F, 4) //mover 4 casas para a frente
Rodar (H, 90) //roda 90º no sentido horário
Mover (F, 2) //mover 2 casas para a frente
Buzinar() //emite sinal sonoro
22. Concluíndo…
• A escrita de um programa envolve um processo de
decomposição de uma tarefa.
• As instruções são as etapas elementares da tarefa.
• Quanto mais alto nível, mais simples é o nosso
trabalho de descrever esse processo.
• Quanto mais baixo nível, mais elementar são as
instruções, exigindo um maior número de passos.
23. Resumo
• O CPU é a componente central de um
computador na execução de instruções.
• Os elementos periféricos permite interacção
do mundo com o CPU na realização de
trabalho.
• Um programa é uma sequência de
instruções para a realização de uma tarefa.