You are on page 1of 20

Algoritmos e Programao I

HV-1
Marco Aurelio Stefanes
marco@dct.ufms.br

Faculdade de Computacao Universidade Federal Mato Grosso do Sul

Algoritmos e Programacao I p.

O Computador HV-1
Computador Hipottico: auxilia a compreenso do funcionamento dos computadores reais Componentes: Um gaveteiro com 100 gavetas; Uma calculadora com mostrador e teclado; Um pequeno quadro-negro denominado EPI;
Um porta-cartoes;

Uma folha de sada; Um operador do sistema, chamado CHICO, com lpis, giz e apagador.

Algoritmos e Programacao I p.

Gaveteiro
Gavetas numeradas de 00 a 99 (endereco). Cada gaveta contm um pequeno quadro-negro, onde escrito um nmero sempre com 3 algarismos. Regras 1. em qualquer momento, no mximo uma gaveta pode estar aberta; 2. a leitura do quadro-negro de uma gaveta no altera o que nele est gravado; 3. a escrita de uma informao no quadro-negro de uma gaveta sempre precedida do apagamento do mesmo; 4. somente o CHICO tem acesso ao gaveteiro.

Algoritmos e Programacao I p.

Calculadora
Calculadora com teclado, teclas das quatro operaes aritmticas bsicas e o visor (acumulador). Operao: 1. carga de um nmero no acumulador: pressiona-se a tecla = (encerramento de operaes prvias) e a seguir digitam-se os algarismos do nmero a ser carregado, o qual aparece no acumulador; 2. operao aritmtica: sempre pressionada entre o nmero que est no acumulador e um segundo nmero. Em seguida digita-se o segundo nmero e pressiona-se a tecla =. O resultado da operao aparece no acumulador. Assim como o gaveteiro, a calculadora s pode ser utilizada pelo CHICO.
Algoritmos e Programacao I p.

EPI e Folha de Sada


EPI Quadro-negro com a forma 22: valor entre 00 e 99 corresponde a um endereo de gaveta. indica Endereo da Prxima Instruo. Somente o CHICO tem acesso ao EPI. Folha de Sada Folha de papel onde escrito um nmero por linha S o CHICO pode escrever nessa folha S o usurio pode ler o que foi escrito

Algoritmos e Programacao I p.

Porta-cartes
Regras: 1. cartes com informaes so colocados um a um exclusivamente pela parte superior; o nmero no carto sempre escrito com 3 algarismos: Ex. 101, 003, etc; 2. cartes so retirados da extremidade inferior, um de cada vez; 3. a retirada de cartes s pode ser feita pelo CHICO; e 4. a colocao de cartes s pode ser feita pelo usurio.

Algoritmos e Programacao I p.

Operador
Chico: executa estritamente ordens recebidas, no executa nenhuma ao fora da especicao dessas ordens. Trabalha em um de dois estados: 1. Estado de carga: transcreve informaes de cartes, lidos do porta-cartes, para gavetas do gaveteiro. 2. Estado de execucao, executa ordens gravadas nas gavetas. A comunicao entre o usurio e o operador feita exclusivamente atravs do porta-cartes e folha de sada.

Algoritmos e Programacao I p.

Funcionamento do HV-1
Passos do CHICO para executar uma instruo 1. consulta o EPI, onde est escrito o endereo E da prxima instruo; 2. incrementa de 1 o contedo do EPI, apagando o valor anterior e escrevendo o valor E+1; 3. abre a gaveta de endereo E para ler uma instruo I; 4. fecha a gaveta E; e 5. executa I. As instrues constituem um programa armazenado

Algoritmos e Programacao I p.

Armazenamento de Programa
Estado Padro: estado de carga de programa 1. usurio escreve cada instruo em um carto, precedida de um endereo: par (E,I); 2. CHICO colocado em estado de carga de programa; 3. usurio coloca o conjunto de cartes do programa no porta-cartes, em qualquer ordem; 4. CHICO l um carto com um par (E,I); abre a gaveta de endereo E; escreve em seu quadro-negro a instruo I; fecha essa gaveta; 5. CHICO repete o passo 4 at ler o ltimo carto. 6. Ele colocado em estado de execucao de programa por meio do carto Execute X
Algoritmos e Programacao I p.

Operaes Aritmticas
Instruo: some/subtrai/multiplique/divida cAC com cE. Signicado: some/subtrai/multiplique/divida o cAC com cE e coloque o resultado no AC; o cE no se altera. Execuo: o CHICO efetua os seguintes passos: 1. digita a tecla +/-/*/ / da calculadora; 2. abre a gaveta de endereo E; 3. l o nmero escrito nessa gaveta (cE) e digita-o na calculadora; 4. fecha a gaveta E; e 5. digita = na calculadora.

Algoritmos e Programacao I p. 1

Carga no AC
Instruo: carregue o cE no AC. Signicado: copie o cE no AC; o cE no muda. Execuo: 1. digita =; 2. abre E; 3. l cE e digita-o; e 4. fecha E.

Algoritmos e Programacao I p. 1

Armazenamento do AC
Instruo: armazene o cAC em E. Signicado: copie o cAC em E; o cAC no muda (oposto da instruo anterior). Execuo: 1. 2. 3. 4. abre E; apaga o cE; l o cAC e o escreve em E; e fecha a gaveta.

Algoritmos e Programacao I p. 1

Impresso
Instruo: imprima o cE. Signicado: o cE transcrito na folha de sada. Execuo: 1. abre E; 2. l cE e escreve seu valor na prxima linha da folha de sada; e 3. fecha a gaveta.

Algoritmos e Programacao I p. 1

Leitura
Instruo: leia um carto e guarde em E. Signicado: o contedo do prximo carto do porta-cartes lido e transcrito para E; Execuo: 1. abre E; 2. retira um carto do porta-cartes; 3. l o contedo do carto e escreve o seu valor em E; 4. joga fora o carto; e 5. fecha E.

Algoritmos e Programacao I p. 1

Desvio Condicional
Instruo: se cAC = / = / > / < / / cE1 , desvie para E2 . Signicado: Compara cAC com cE1 , caso verdadeiro a prxima instruo a ser executada est em E2 , caso contrrio no h nada a fazer: prxima instruo a ser executada estar na gaveta seguinte. Execuo: 1. l o cAC e cE1 ; e 2. Compara cAC com E1 e caso verdadeiro apaga o EPI e escreve E2 no mesmo.

Algoritmos e Programacao I p. 1

Pare
Instruo: pare. Signicado: encerra a execuo do programa. Execuo: 1. entrega a folha de sada para o usurio; e 2. entra no estado de carga.

Algoritmos e Programacao I p. 1

Programa Exemplo
endereco instrucao

01 02 03 04 05 06 07 08 09 10

leia um carto e guarde em 11 leia um carto e guarde em 12 imprima o c12 carregue no AC o c11 some o c12 ao AC armazene o cAC em 11 carregue o c12 no AC se cAC= 0, desvie para 02 imprima o c11 pare

Algoritmos e Programacao I p. 1

Execuo do Programa Exemplo


g pc cAC c11 12 fs cEPI

000,100,005,031,000 01 02 03 04 05 06 07 08 02 03 04 05 06 07 100,005,031,000 005,031,000 005,031,000 005,031,000 005,031,000 005,031,000 005,031,000 005,031,000 031,000 031,000 031,000 031,000 031,000 031,000 000 100 100 100 100 100 100 100 105 105 005 000 000 000 000 000 100 100 100 100 100 100 100 105 105 100 100 100 100 100 100 100 005 005 005 005 005 005 100 100 100 100 100 100 100 100,005 100,005 100,005 100,005 100,005

01 02 03 04 05 06 07 08 02 03 04 05 06 07 08

Algoritmos e Programacao I p. 1

Execuo do Programa Exemplo


08 02 03 04 05 06 07 08 02 03 04 05 06 07 08 09 031,000 000 000 000 000 000 000 000 005 005 005 105 136 136 031 031 031 031 136 136 136 000 000 000 105 105 105 105 105 136 136 136 136 136 136 136 136 136 136 136 005 031 031 031 031 031 031 031 000 000 000 000 000 000 000 000 100,005 100,005 100,005,031 100,005,031 100,005,031 100,005,031 100,005,031 100,005,031 100,005,031 100,005,031,000 100,005,031,000 100,005,031,000 100,005,031,000 100,005,031,000 100,005,031,000 100,005,031,000,136 02 03 04 05 06 07 08 02 03 04 05 06 07 08 09 10

Algoritmos e Programacao I p. 1

Computador HV-2
instrucao codicada instrucao

1E1 00 2E1 00 3E1 00 4E1 00 5E1 00 6E1 00 7E1 00 8E1 00 9E1 00 AE1 E2 BE1 E2 CE1 E2 DE1 E2 EE1 E2 FE1 E2

carregue o cE1 no AC armazene o cAC em E1 leia um carto e guarde em E1 imprima o cEE some o cEE ao AC subtraia o cE1 de AC multiplique o cE1 com AC divida cAC por cE1 resto de cAC por cE1 se cAC=E1 desvie para E2 se cAC=E1 desvie para E2 se cAC>E1 desvie para E2 se cAC<E1 desvie para E2 se cACE1 desvie para E2 se cACE1 desvie para E2

Algoritmos e Programacao I p. 2

You might also like