Capítulo 1: Noções Preliminares

1.1. Introdução

[C] "O que todo computador pode realmente fazer é seguir ordens muito simples, as quais foram cuidadosamente consideradas e refletidas por um programador e escritas em uma linguagem de programação, como o Fortran."

1.2. Computadores

[C] Há somente 4 tipos de instruções que um computador pode realizar:

  1. Armazenamento e recuperação de informações da memória;
  2. Cálculos;
  3. Entrada e saída de dados;
  4. Controle de programa.


[C] Esquema de um computador:

 

1.3. Algoritmos

[D] Um "algoritmo" é um conjunto de instruções passo-a-passo para resolver um problema.
 

[D] Um algoritmo correto deve possuir 3 qualidades:

  1. Cada passo no algoritmo deve ser uma instrução que possa ser realizada.
  2. A ordem dos passos deve ser precisamente determinada.
  3. O algoritmo deve ter fim.
[A] Elaboração em grupos de 3 de um algoritmo para que um dos elementos do grupo desempenhe a seguinte tarefa: As operações corporais possíveis devem ser determinadas antes do começo do trabalho em grupo, em conjunto entre os alunos e o professor. Após o término do trabalho dos grupos, o professor escolherá aleatoriamente trabalhos, os lerá em voz alta, determinando se os passos do algoritmo estão contidos no conjunto de operações permitidas. Se isto for verdade, um dos elementos do grupo lerá em voz alta os passos que serão executados por outro membro do grupo. Sugestões de operações permitidas: caminhar, girar o corpo (graus e sentido), levantamento de braço (graus e sentido), movimento de mão, cegueira do executor, etc.

1.4. Diagramas de Fluxo

[D] "Diagramas de Fluxo" fornecem uma representação gráfica de um algoritmo.
 

[D] Principais símbolos de diagramas de fluxo:

 

1.5. Linguagens de Programação

[D] Um "programa de computador" é um algoritmo escrito numa linguagem de programação, como o Fortran.
 

[C] Existem 3 níveis de linguagens de programação:

  1. Linguagens de baixo nível (ou de máquina).
  2. Linguagens de nível intermediário (ou simbólica montadora).
  3. Linguagens de alto nível (ou de compiladores).


1.5.1 Linguagem de Máquina

[D] Cada instrução é constituída de 2 partes:

código de operação operando(s)

[D] O "código de operação" instrui o computador para realizar uma função específica: adição, subtração, leitura, escrita, comparação, movimento de dados, etc...
 

[D] O(s) operando(s) especifica(m) o endereço do dado a ser operado, endereço do dispositivo de entrada/saída, etc...
 

[E] Exemplo do trecho principal de um programa em linguagem de máquina para calcular
         5A+16B
R  =  ----------  -  D
              C
onde os valores de A, B, C, D e R estão armazenados nos endereços 1000, 1004, 1012, 1020 e 2050 da memória.
 
Código da Operação
Operando
Comentário
14
1000
carrega A no acumulador
12
=5
multiplica o acumulador por 5
15
3000
armazena conteúdo acumulado no endereço 3000
14
1004
carrega B no acumulador
12
=16
multiplica acumulador por 16
10
3000
adiciona acumulador com conteúdo de 3000
13
1012
divide acumulador pelo conteúdo de 1012
11
1020
subtrai do acumulador o conteúdo de 1020
15
2050
armazena acumulador em 2050

[C] Na realidade, um programa real em linguagem de máquina, para ser compreendido por ela, geralmente é escrito no sistema binário.
 

1.5.2. Linguagem Simbólica Montadora

[C] As linguagens simbólicas procuram facilitar a tarefa do programador, criando mnemônicos para as operações.
 

[C] Os programas montadores traduzem um programa fonte (ou seja, em linguagem simbólica) em um programa objeto (ou seja, em linguagem de máquina).

[E] O trecho de programa visto acima, ficaria em uma linguagem simbólica parecido com:
 
Operação
Operando
Comentário
CAR
A
carrega A
MUL
5
multiplica por 5
ARM
TMP
armazena o resultado em TMP
CAR
B
carrega B
MUL
16
multiplica por 16
ADI
TMP
adiciona o resultado com o conteúdo de TMP
DIV
C
divide o resultado por C
SUB
D
subtrai o resultado de D
ARM
R
armazena o resultado em R

1.5.3. Linguagens de Compiladores

[C] Uma linguagem de compilador (ou de alto nível) tem por objetivo permitir ao programador se utilizar de uma linguagem muito próxima àquela utilizada no ambiente no qual se coloca a tarefa a ser realizada.
 

[C] Os programas compiladores traduzem um programa fonte, escritos em uma linguagem de alto nível, em um programa objeto em linguagem de máquina.
 

[E] O trecho de programa visto acima, ficaria na linguagem de alto nível Fortran idêntico a:

R = (5.0*A + 16.0*B) / C - D
 

[C] Etapas do processamento de um programa em linguagem de alto nível:

 

1.6.Passos no Desenvolvimento de Programas