23
Programação Para Não Programadores

Programacão para não programadores

Embed Size (px)

DESCRIPTION

Apresentação final da formação inicial de formadores (CAP), com uma introdução à programação, usando uma abordagem de programação de alto nível.

Citation preview

Programação Para Não Programadores

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.

O que é o CPU?

Visão Caixa Negra

CPU E S

Entrada de dados (sensores, interfaces, …)

Saída de dados (dispositivos, armazenamento, …)

Unidade de Processamento Central

Arq. Von Neumann do CPU

ULA UC

Memória Primária

Entrada e Saída

Dados

Controlo

Dad

os

Co

ntr

olo

O Processador

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

Programas Informáticos

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.

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

CPU

(…) 01100110 01010011 00110101 01001010 01110101 10101010 01001010 01011110 01111100 11111111 00001010 01010100

(…)

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

Baixo Nível vs. Alto Nível

Baixo Nível Alto Nível

- Facilidade na escrita +

- (criptico)

Facilidade na interpretação + (natural)

+ Volume de código por tarefa -

• A linguagem de alto nível é mais natural

para o humano e os domínios de

conhecimentos.

Baixo Nível vs. Alto Nível

(…) lernum proc push ax mov ah, 09h int 21h pop ax ret lernum endp (…)

(…) valor = ler_numero_do_teclado(); (…)

(…) 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

(…)

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

Experiência com Programação

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)

o Buzinar()

>

fim

Exemplo

>

fim

Objectivo: • Programar o robô para

percorrer o caminho apresentado.

• Buzinar à chegada.

Operações Disponíveis:

Mover (F|R, distancia) (F=frente; R=inverso)

Rodar (H|A, nº graus) (H=Horário; A=Antihorário)

Buzinar()

Mapa:

Solução

>

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

Mapa:

Exercício

Solução

>

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

Mapa:

Solução

> 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

Mapa:

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.

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.