MODELO HIPOTÉTICO DE UM COMPUTADOR


Operador - só faz o que for ordenado, não toma decisões
Conjunto de escaninhos - com capacidade para um cartão cada
Máquina de calcular - executa as operações
Caixa de entrada - para receber cartões de fora
Máquina de escrever - para dar saída às informações / resultados

Para que este modelo funcione, deve existir em cada cartão uma INSTRUÇÃO. O operador segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até encontrar um cartão contendo uma instrução que manda que ele PARE.

EXERCÍCIO 1:

Obs.: Utilizaremos a notação (E10) significando "o conteúdo do escaninho E10", isto é, o valor que está agora armazenado no escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória).

E1 : armazene o valor 1 no E10
E2 : leia o conteúdo de E11 (externo - a caixa de entrada)
E3 : multiplique E10 com E11 (usando a máquina de calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3, senão continue
E6 : imprima o conteúdo de E10 (usando a máquina de escrever)
E7 : PARE
E8 :
E9:

A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E8 (o final).

Resolva o exercício; o que faz este algorítmo? Depois, confira a
Resposta.

EXERCÍCIO 2:
No mesmo algoritmo acima, avalie as conseqüências das seguintes alterações:
a) E5 : se o valor de E11 > 0, volte para E3,

b) E5 : se o valor de E11 >= 0, volte para E3; senão continue,
e
c) E7 : XXX

Resolva o exercício e depois confira a
Resposta.

Num modelo real - o COMPUTADOR- este só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.


"O problema dos computadores é que eles fazem exatamente aquilo que você os instruiu a fazer e não aquilo que você realmente queria que eles fizessem."
- Um programador frustrado

Definições


PROGRAMA é uma seqüência de instruções (no modelo hipotético, os cartões).
O programa deve ser escrito numa LINGUAGEM DE PROGRAMAÇÃO; as linguagens naturais têm ambigüidades e podem dar margem a diferentes interpretações.

HARDWARE (significa originalmente "ferragens" em inglês - hardware store significa originalmente "loja de ferragens") é o conjunto de dispositivos físicos do computador, o equipamento.

SOFTWARE (em analogia a hardware, a parte "soft", macia, são os programas que permitem que o equipamento saiba o que realizar, que ele funcione.

Depois surgiram outros termos, aproveitando as mesmas analogias, tais como firmware (indicando programação gravada em dispositivos físicos e não modificável pelo usuário).

PROCESSAMENTO AUTOMÁTICO DE DADOS
Um computador é capaz de executar um programa sozinho, desde que o programa seja previamente armazenado nele, de forma que ele tenha as indicações de onde procurar as instruções.

MEMÓRIA - os escaninhos
Dispositivo físico para armazenar programas e dados

PROCESSADOR - Operador e máquina de calcular
Dispositivo que realiza o processamento

DISPOSITIVOS DE ENTRADA E SAÍDA - caixa de entrada, caixa de saída, máquina de escrever
Formas de comunicação entre o usuário e o computador

SISTEMA - Um conjunto interligado de programas (e, eventualmente, também de equipamentos).

LINGUAGEM DE MÁQUINA - é a linguagem que o computador entende, cujo "alfabeto" é composto apenas de "1's"e "0's" (linguagem binária).

LINGUAGEM DE PROGRAMAÇÃO - é uma linguagem formal, utilizando termos que se aproximam da linguagem humana, que pode ser traduzida por programas especiais em linguagem de máquina.


RESPOSTAS DOS EXERCÍCIOS

Resultado das operações do modelo - Exercício 1:
LEMBRE-SE.: Utilizaremos a notação (E10) significando "o conteúdo do escaninho E10", isto é, o valor que está agora armazenado no escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória).

ALGORITMO (E10) (E11) AÇÃO
E1- armazene o valor 1 no E10 1 - -
E2 - leia (E11) (caixa de entrada - p.ex: 4) - 4 -
E3 - (E10) x (E11); armazene resultado em E10 4 - -
E4 : subtraia o valor 1 de (E11) - 3 -
E5 : se (E11) > 0, volte para E3, senão continue - - Volta p/E3
E3 12 - -
E4 - 2 -
E5 - - Volta p/E3
E3 24 - -
E4 - 1 -
E5 - - Volta p/E3
E3 24 - -
E4 - 0 -
E5 - - Segue p/E6
E6 : imprima o conteúdo de E10 - - Imprime 24
E7 : PARE - - PARA

Este programa calcula o FATORIAL de um número.

Resposta - Exercício 2:
a) E5 : se o valor de E11 > 0, volte para E3, (eliminar "senão continue"), o modelo não saberia o que fazer quando o valor de E11 chegasse a zero.

b) E5 : se o valor de E11 >= 0, volte para E3,
Haveria mais um passo no loop, multiplicando o conteúdo de E10 por 0 (zero) e o resultado do processamento do algorítmo seria SEMPRE ZERO.

c) E7 : XXX
Quando o modelo chegasse até E7, poderia encontrar qualquer coisa. No caso de encontrar código válido (por exemplo, o "lixo" deixado por um programa anterior) com algum significado, ele executaria a instrução (fosse esta o que quer que fosse), chegando a um resultado imprevisível (poderia dar um resultado errado, poderia travar, poderia entrar em um loop, etc.).
Caso o conteúdo de E8 fosse um valor sem significado (por exemplo, um dado), o modelo não saberia o que fazer e pararia.
Portanto, num modelo real - o COMPUTADOR- este só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.