programacão para não programadores
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.TRANSCRIPT
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.
Visão Caixa Negra
CPU E S
Entrada de dados (sensores, interfaces, …)
Saída de dados (dispositivos, armazenamento, …)
Unidade de Processamento Central
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 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
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:
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.