Você está na página 1de 7

1.

Introdução
Para termos sucesso em nosso curso será necessário entender alguns termos relacionados à
programação de computadores. O primeiro termo a ser abordado será Processamento de
dados. Você já deve ter uma ideia do que venha a ser processamento de dados.
Processamento, isoladamente, indica transformação, a obtenção de um resultado a partir da
transformação de algo fornecido inicialmente. Pode-se falar em processamento de laranja em
suco, de sucata em placas metálicas, dentre outros. Estamos interessados somente no
processamento de dados, ou seja, na transformação de dados. Para que o processamento de
dados ocorra é necessário haver dados de entrada e a transformação destes em outros dados,
chamados de dados de saída ou resultado. Processar dados é produzir novas informações
através de dados iniciais.

Entrada Processamento Saída de


de Dados de Dados Dados

Processamento de Dados

Em nosso curso iremos nos concentrar especificamente em processamento de dados


automático. Para que o processamento de dados seja classificado como automático, não deve
haver interferência do homem durante o processamento. Mas como processar dados sem a
interferência humana? Existe alguma máquina capaz de realizar isso? Sim, o computador.

O computador realiza o processamento de dados automaticamente e isso só é possível porque


ele consegue executar as instruções que lhe são dadas previamente. O computador é uma
máquina capaz de processar dados de forma automática através de instruções que lhe são
fornecidas.

Podemos utilizar o computador para realizar uma tarefa, desde que ele seja instruído de forma
adequada. Agora surge uma nova questão: como instruir o computador a executar uma tarefa
para resolver um determinado problema?

Para resolver um problema através do computador é necessário encontrar em primeiro lugar


uma maneira de descrevê-lo de uma forma clara e precisa. Se você não consegue descrever a
solução de um problema não conseguirá instruir o computador a resolvê-lo. Devemos
encontrar uma sequência de passos que conduzam à solução. Chamamos esta sequência de
passos de algoritmo.

Algoritmo é a descrição de uma sequência de ações para realizar alguma tarefa. São exemplos
de algoritmos: receita de um bolo, manual de montagem de um móvel, instruções de como
chegar a um determinado local, dentre outros. Passaremos boa parte do nosso curso
desenvolvendo algoritmos e em todas as situações devemos nos preocupar com as
características presentes em qualquer algoritmo:

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 2 de 21
1) Todo algoritmo, ao resolver um problema, produz a solução do mesmo. Sempre
produzirá algum resultado, que de agora em diante chamaremos de saída.
2) Deve sempre terminar após um número finito de passos (instruções).
3) Cada passo, de um algoritmo, deve ser precisamente definido. As ações devem ser
definidas rigorosamente e sem ambiguidades.
4) As ações definidas no algoritmo necessitam de dados para que possam produzir as
saídas. Esses dados são as entradas.

Nota: Pode haver mais do que um algoritmo para resolver um problema. Por exemplo, para ir
de casa até o trabalho, posso escolher diversos meios de transportes em função do preço,
conforto, rapidez, etc..

Alguns exemplos de algoritmos

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 3 de 21
Para facilitar o processo de construção de algoritmos, surgiram formas de representá-los.
Algumas mais importantes:

1) Descrição Narrativa: algoritmos são expressos diretamente em linguagem natural.


2) Fluxograma: É uma representação gráfica de algoritmos onde formas geométricas
diferentes implicam ações (instruções, comandos) distintas. Tal propriedade facilita o
entendimento das idéias contidas nos algoritmos e justifica sua popularidade.
3) Portugol: Representação de algoritmos em uma linguagem muito semelhante ao
Português.

inicio
leia (NOTA1, NOTA2)
MEDIA = (NOTA1+NOTA2)/2
se MEDIA >= 7 então
mostra("Aprovado")
senão
mostra("Reprovado")
fim_se
fim.

Portugol

Fluxograma

Em nossos estudos só nos interessa os algoritmos computacionais, que descrevem sequência


de ações que possam ser implementadas no computador. Tais algoritmos devem passar por
um processo de adequação para que o computador possa executá-los. Um algoritmo em um
formato adequado para execução pelo computador é chamado de programa. Um programa de
computador, nada mais é do que um algoritmo em determinado formato que o computador
consegue executá-lo. A elaboração de um programa consiste na codificação precisa de um
algoritmo, segundo uma linguagem de programação específica.

Uma linguagem de programação é uma forma de padronizar a comunicação de instruções


para um computador. Assim como há muitos idiomas, há muitas linguagens de programação
(C, Java, PHP, etc). Mas como o computador entenderá as instruções escritas em uma
determinada linguagem de programação?

Devemos considerar que para elaborarmos algoritmos para serem executados pelo
computador devemos nos preocupar com a linguagem que o computador é capaz de
compreender. Essa linguagem não pode conter instruções desconhecidas ou fazer referência a
símbolos ou expressões que os computadores não conseguem decifrar. Tal linguagem se
baseia em conceitos e em arquiteturas de hardware que determinam o funcionamento básico

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 4 de 21
de um computador. A arquitetura mais utilizada nos computadores atuais é a de Von
Neumann.

A Arquitetura de Von Neumann é uma arquitetura de computador que se caracteriza pela


possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de
memória que os dados, podendo assim manipular tais programas. A máquina proposta por
Von Neumann reúne os seguintes componentes:

1. Unidade central de processamento. Tem a função de buscar, executar e devolver o


resultado de instruções para a memória. Possui as seguintes subunidades:

a. ULA – Unidade lógica e aritmética. Coleção de circuitos que realizam as


operações (adição, subtração, manipulação de bits, ...) sobre os dados.
b. Registradores. São posições de memória construídas dentro da CPU. Muito
mais rápido do que acesso a memória principal (RAM).
c. UC - Unidade de controle. Controla todo o fluxo de execução da CPU. Busca
dados e instruções da memória e coordena a troca de dados entre
registradores e ULA.

2. Dispositivos de entrada e saída. São periféricos/hardware que permitem a entrada de


dados e instruções para o computador exibem o resultado do processamento da CPU.
Permitem a interação com usuários.
3. Memória. Possibilita o armazenamento de dados e instruções. Tudo o que é
executado é carregado para a memória principal. Como é formada por uma coleção de
posições de memória ou slots de memória, os dados e instruções são acessados
através de seus respectivos endereços de memória.

Diagrama da Arquitetura de Von Neumann

O conjunto de instruções possíveis que uma CPU pode executar é chamado de linguagem de
máquina. Programadores são aqueles que podem controlar o comportamento do computador
através de instruções em linguagens de máquina. Na prática, os programas (conjuntos de
instruções em sequência) são codificados em linguagens de programação ditas de alto nível e
convertidos para linguagem de máquina por compiladores.
Uma vez codificado (em C, Java, etc), o programa precisa ser traduzido para a linguagem de
máquina para ser executado. Um dos métodos de tradução de um programa escrito em uma
linguagem de programação para o correspondente em linguagem de máquina chama-se

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 5 de 21
compilação. O arquivo gerado, resultante do processo de compilação, é conhecido como
programa objeto.

O Compilador é um programa que converte o programa fonte, escrito em uma linguagem de


alto nível, em programa objeto escrito em linguagem de máquina. Cada linguagem de
programação possui seu próprio compilador.

É muito comum que um programa faça referência a instruções localizadas em outro programa.
Dizemos que um programa “chama” ou invoca outro programa. Devido a este fato, um
programa objeto não é executável. Precisamos unir todos os programas objetos de todos os
programas fontes em um único programa, este sim é chamado de programa executável e
como o próprio nome indica, pode ser executado pelo computador. Este processo de conexão
de um programa objeto, com outro programa objeto denomina-se ligação. Um
linkeditor/ligador é um programa que reúne módulos compilados e arquivos (de dados ou de
bibliotecas) para criar um programa executável.

Bibliotecas são arquivos que disponibilizam determinadas funcionalidades aos programas.


Geralmente as bibliotecas agrupam funções específicas, tais como para entrada e saída de
dados, matemáticas e diversas outras. As bibliotecas disponibilizam funcionalidades que não
fazem parte diretamente do problema a ser resolvido, elas apenas prestam um serviço auxiliar.
Para ilustrar o conceito de bibliotecas no desenvolvimento de programas, imagine a situação
em que você precisa desenvolver um programa para calcular a medida de uma escada para a
situação abaixo.

escada
parede α

chão

Sabendo que
𝒎𝒆𝒅𝒊𝒅𝒂 𝒑𝒂𝒓𝒆𝒅𝒆
𝒔𝒆𝒏 𝜶 = 𝒎𝒆𝒅𝒊𝒅𝒂 𝒆𝒔𝒄𝒂𝒅𝒂

𝒎𝒆𝒅𝒊𝒅𝒂 𝒑𝒂𝒓𝒆𝒅𝒆
então 𝒎𝒆𝒅𝒊𝒅𝒂 𝒆𝒔𝒄𝒂𝒅𝒂 = 𝒔𝒆𝒏 𝜶

Você percebeu que o nosso problema é calcular a medida da escada, entretanto será
necessário o cálculo do Sen α, que não é o cálculo principal, mas importante para a solução do
problema inicial. Precisamos de uma função, localizada em uma biblioteca, para calcular o
seno do ângulo. A vantagem do uso de bibliotecas é não nos preocuparmos com as

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 6 de 21
funcionalidades que não estão diretamente relacionadas à solução do problema. No caso
acima, o cálculo do seno pode ser realizado por alguma função de uma determinada
biblioteca. A implementação da função que realiza o cálculo do seno fica na biblioteca e não
no nosso programa. Ao realizar a link-edição todos os programas fontes serão ligados às
bibliotecas, gerando finalmente o programa executável.

A figura abaixo ilustra os conceitos relacionados às etapas necessárias para a geração de um


programa executável.

INÍCIO

Programa fonte

Compilador

Erro sim
?

não

Bibliotecas Programa Objeto

LinkEditor

Erro sim
?
não

Programa Executável

FIM

Criação de um programa executável

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 7 de 21
Uma vez que o arquivo executável tenha sido gerado, o programa está pronto para ser
executado. Depois que o programa executável é carregado na memória, a CPU executa o
programa instrução por instrução.

Existe outro método de tradução para linguagem de máquina. Pelo método de interpretação,
cada comando do código fonte é lido pelo interpretador, é convertido em código executável e
imediatamente executado, antes que o comando seguinte seja lido.

Algoritmos
Prof. Hilton Cardoso Marins Junior Página 8 de 21

Você também pode gostar