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.