Você está na página 1de 8

RESUMO DA AULA 01

OBJETIVO : Mostrar de maneira informativa, resumida e simplificada, alguns conceitos de


programação a serem desenvolvidos durante o curso.

 Algoritmo : idéia estruturada, estratégia para resolução de problemas.

Linguagem de programação: idioma utilizado pelo programador para tradução do algoritmo em


arquivos que possam ser manipulados nas máquinas

 Programa : algoritmo descrito numa linguagem de programação

Tradutor e executor : Sistema encarregado da transformação de nosso programa para um novo


formato tal que nesse novo formato possa ser “lido”, “manipulado” e “executado” pelo hardware.

 Hardware : Máquinas responsáveis pela execução do programa neste novo formato

FORMATO SIMPLIFICADO DE UM SISTEMA COMPUTACIONAL:

entrada: processamento: saída:

modem ASIC tela


teclado calculadora monitor
memória controlador braço mecânico

 Entrada possui dados a serem trabalhados


 Processamento possui operações a serem executadas nos dados para gerar informações
 Saída gera relatórios úteis a partir dos dados processados

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


1.ETAPA DE DESCRIÇÃO DO ALGORITMO

Vamos imaginar que queiramos ler fazer a seguinte conta A – B * C.


Qual seria uma possibilidade para descrever o algoritmo que implemente tal expressão ?
1. leia B entrada
2. leia C entrada
3. faça B*C e guarde em D processamento
4. leia A entrada
5. faça A – D e guarde em E processamento
6. imprima E saída
7. pare !

Algoritmo é idéia estruturada, independe de linguagem.

2.ETAPA DE DESCRIÇÃO DO PROGRAMA A PARTIR DO ALGORITMO

A partir da descrição algorítmica, podemos escrever um programa na linguagem JAVA.


Devemos descobrir os comandos da linguagem que executam tarefas de entrada, processamento e
saída descritos no algoritmo.
Só para exemplificar, um mesmo programa pode ser escrito em diversas linguagens.
Vamos mostrar, por exemplo, como comumente se faz entrada de dados em 3 linguagens (idiomas)
distintas para leitura de b:
 Em Pascal : read (b);
 Em C: scanf(“%f” ,&b);
 Em JAVA : JOptionPane.showInputDialog(“ dê o valor de b “ );
As linguagens não são difíceis mais a assimilação requer treino!
Devemos, a cada vez que descrevemos um algoritmo, pensar que o comando descrito deve ser
transformado, numa etapa seguinte, num comando próprio da linguagem que está sendo usada.

3.ETAPA DE TRADUÇÃO E EXECUÇÃO DO PROGRAMA

Quando você descreve um programa fazendo uso de uma linguagem, você pode fazer uso desta
linguagem para que o seu sistema tradutor transforme o programa descrito nesta linguagem em algo
que possa ser entendido pela máquina.
Há várias formas de se traduzir este programa de forma automática:
 compilação : Corresponde à traduzir seu programa para uma linguagem de máquina e,
somente após isso, executar o programa. Primeiro o programa todo é traduzido e, após isso,
o programa é executado.
 Interpretação : Corresponde à traduzir cada comando do seu programa e, simultaneamente,
executar o mesmo. Cada comando é traduzido e executado.

A execução de comandos ou programas completos é feito no sistema, notadamente no


microprocessador.
Neste instante, o nosso programa está escrito em código entendido pela máquina e não mais em
Java.

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


COMPONENTES DO MICROPROCESSADOR:

Neste tópico, daremos uma explicação sucinta do funcionamento de um microprocessador simples.


O microprocessador precisa possuir:
 Área para armazenar comandos e dados. Corresponde às MEMÓRIAS
 Área que execute operações. Corresponde à ULA
 Área que controle, gerencie a área de memória ou UNIDADE DE CONTROLE. Deve ler
comandos e tirar dados da memória para executar na unidade lógica e aritmética (ULA)
MEMÓ
RIA

UNIDADE DE CONTROLE

ULA

Unidade de controle : Sistema que lê os comandos da memória e controla a ULA (“


calculadora”
Memória (registradores) : Possui 2 áreas, área de comandos e área de dados. Faz o papel da
tabela no nosso sistema.
A tabela armazena comandos que manipulam dados. Ambos estão guardados na tabela.
ULA : Calculadora do sistema

Se pensarmos no microprocessador como uma orquestra, teríamos:


 As partituras estão na memória
 O maestro está na unidade de controle
 A orquestra está na ULA

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


O MAESTRO REGE A ORQUESTRA OLHANDO PARA PARTITURAS
EXERCÍCIOS:

1.Síntese : Consiste em gerar uma solução algorítmica, por exemplo, a partir de um enunciado.

Exemplo 1. Descreva um algoritmo que leia 3 números A, B e C e calcule a expressão:


A+B-C
Resposta:

E1 E2 E3 E4

 Leia pilha Leia pilha  Faça E16 + E15  Leia pilha 

 Coloque em E16 Coloque em E15 Coloque em E14 Coloque em E13 

E5 E6 E7 E8

Faça E14 – E13  Imprima E12  Pare!   

Coloque em E12       

E9 E10 E11 E12

      OCUPADO POR

      DADO

E13 E14 E15 E16

OCUPADO POR OCUPADO POR OCUPADO POR OCUPADO POR

DADO DADO DADO DADO

Comentários:
 Temos 2 áreas distintas na memória: área de comandos na área superior à esquerda e área de
manipulação de dados na área inferior à direita.
 O programa é executado seqüencialmente na área de comandos.
 O programa possui , na área de comandos, entrada e processamento sendo executados
alternadamente.
 Os dados precisam estar ordenados , na entrada, da mesma forma que são exigidos pelo
programa.
 O processamento consiste em operações aritméticas com 2 operandos por vez.
 Esta é apenas uma das estratégias possíveis. Poderíamos, por exemplo, Fazer
A – C + B e teríamos o mesmo resultado.
 Poderíamos ter números distintos de linhas ocupadas se descrevermos o algoritmo de outra
forma. Não há forma única de descrevermos o algoritmo.

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


Exemplo 2. Descreva um algoritmo que leia 4 número A, B, C e D e calcule a expressão:
A*B–C*D
Resposta:

E1 E2 E3 E4

Leia pilha Leia pilha  Faça E16 * E15  Leia pilha 

Coloque em E16  Coloque em E15  Coloque em E14  Coloque em E13 

E5 E6 E7 E8

Leia pilha  Faça E13 * E12  Faça E14 – E11  Imprima E10 

Coloque em E12  Coloque em E11   Coloque em E10   

E9 E10 E11 E12

Pare!  OCUPADO POR OCUPADO POR OCUPADO POR

  DADO DADO DADO

E13 E14 E15 E16

OCUPADO POR OCUPADO POR OCUPADO POR OCUPADO POR

DADO DADO DADO DADO

Comentários:
 Temos 2 áreas distintas na memória: área de comandos na área superior à esquerda e área de
manipulação de dados na área inferior à direita.
 O programa é executado seqüencialmente na área de comandos.
 O programa possui , na área de comandos, entrada e processamento sendo executados
alternadamente.
 Os dados precisam estar ordenados , na entrada, da mesma forma que são exigidos pelo
programa.
 O processamento consiste em operações aritméticas com 2 operandos por vez.
 Esta é apenas uma das estratégias possíveis. Poderíamos, por exemplo, Fazer
- C*D + A*B e teríamos o mesmo resultado.
 Poderíamos ter números distintos de linhas ocupadas se descrevermos o algoritmo de outra
forma. Não há forma única de descrevermos o algoritmo.
 Note que não há espaço para mais nenhum comando !

O QUE ACONTECERIA CASO A EXPRESSÃO FOSSE A * B – C * D + E ?

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


Exemplo 3. Descreva um algoritmo que leia 5 números A, B, C, D e E e calcule a expressão:
A*B–C*D+E
Resposta:

E1 E2 E3 E4

Leia pilha Leia pilha  Faça E16 * E15  Leia pilha 

Coloque em E16  Coloque em E15  Coloque em E14  Coloque em E13 

E5 E6 E7 E8

Leia pilha  Faça E13 * E12  Faça E14 – E11  Imprima E10 

Coloque em E12  Coloque em E11   Coloque em E10   

E9 E10 E11 E12

Pare!  OCUPADO POR OCUPADO POR OCUPADO POR

  DADO DADO DADO

E13 E14 E15 E16

OCUPADO POR OCUPADO POR OCUPADO POR OCUPADO POR

DADO DADO DADO DADO

NÃO CONSEGUIMOS ESCREVER O PROGRAMA COMPLETO!

Comentários:
 Não há espaço para colocarmos mais nenhum comando!
 Esta estratégia de descrever o algoritmo não permite que somemos E ao resultado

HÁ OUTRAS FORMAS DE DESCREVER O ALGORITMO!

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


Exemplo 4. Reescreva o algoritmo do exemplo 3 de forma que o mesmo possa ser implementado na
máquina já definida com 16 endereços de memória
A*B–C*D+E
Resposta:

e1 e2 e3 e4

Leia pilha   Leia pilha Faça E16 * E15 Leia pilha 

Coloque em E16 Coloque em E15  Coloque em E16  Coloque em E15 

e5 e6 e7 e8

Leia pilha  Faça E15 * E14  Faça E16 – E15  Leia pilha 

Coloque em E14  Coloque em E15  Coloque em E16  Coloque em E15 

e9 e10 e11 e12

Faça E16 + E15  Imprima E16  Pare!   

Coloque em E16       

e13 e14 e15 e16

  OCUPADO POR OCUPADO POR OCUPADO POR

  DADO DADO DADO

Comentários:
 Ao descrevermos ao algoritmo, devemos descrever as operações aritméticas na ordem em
que elas realmente seriam feitas caso quiséssemos executar manualmente o cálculo das
expressões.
 Na área de dados, as posições E15 e E16 são utilizadas para armazenar informações da pilha
e resultados parciais.
 A economia de memória permite acomodar o algoritmo na memória ! Atualmente isto
deixou de ser importante pois memória não é cara.

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG


Exemplo5. Descreva um algoritmo que leia 5 números A, B, C, D e E e calcule a expressão:
A–(B*C)/D+E
Resposta:

e1 e2 e3 e4

Leia pilha Leia pilha  Faça E16 * E15  Leia pilha 

Coloque em E16  Coloque em E15  Coloque em E16  Coloque em E15 

e5 e6 e7 E8

Faça E16 / E15  Leia pilha  Faça E15 – E16  Leia pilha 

Coloque em E16  Coloque em E15  Coloque em E16  Coloque em E15 

e9 e10 e11 e12

Faça E15 + E16  Imprima E16  Pare !   

Coloque em E16       

e13 e14 e15 e16

    OCUPADO POR OCUPADO POR

    DADO DADO

LOGPROG - Lógica de programação Lógica e linguagens de programação – LLPROG

Você também pode gostar