Algoritmos e Linguagens de Programação

RESOLUÇÃO DE PROBLEMAS COMPUTACIONAIS

 

Na fase de resolução do problema, será concentrada a tarefa de elaboração de um algoritmo para resolver o problema proposto. Somente depois da satisfação com a formulação de um algoritmo adequado é que se fará a implementação deste algoritmo em alguma linguagem de programação, o que representará a fase de implementação do problema.

Figura 1

 

CONCEITO DE ALGORITMO

 

Segundo Jean Paul Tremblay (1983), é uma sequência finita de instruções bem definidas e não ambíguas, onde cada uma das quais podem ser executadas mecanicamente, num período de tempo finito e com uma quantidade de esforço finito.

 

Exemplo 1 (informal):

  1. Disponibilizo o dinheiro
  2. Visualizo um lugar onde vende cartão telefônico
  3. Compro um cartão telefônico
  4. Visualizo o orelhão
  5. Aproximo-se do orelhão
  6. Retiro do gancho
  7. Insiro o cartão
  8. Disco o número…

Exemplo 2 (formal):

Desenvolver um algoritmo para realizar a entrada de 4 notas escolares e calcular a sua media.

  1. Algoritmo calcula_media;
  2. var n1,n2,n3,n4,media:real;
  3. inicio
  4. escreva(‘Informe as 4 notas: ‘); leia(n1,n2,n3,n4);
  5. media:=(n1+n2+n3+n4)/4;
  6. escreva(‘Media = ‘, media);
  7. fim.

 

LINGUAGENS DE PROGRAMAÇÃO

 

1. Paradigma

a) Imperativo: É baseado na perspectiva do computador. A execução sequencial de comandos e o uso de dados são conceitos baseados no modo como os computadores executam programas no nível de linguagem de máquina.

Ex.: Pascal, C, Basic, Fortran, Cobol, ADA…

b) Orientado a Objetos: Um programa O.O resolve os problemas, mandando mensagens entre si e sendo equivalentes a objetos da vida real, inclusive com suas propriedades.

Ex.: ObjectPascal (Delphi), C++, Java, Visual Basic, Smalltalk…

c) Funcional: O modelo focaliza o processo de resolução de problemas descrevendo as operações que devem ser realizadas.

Ex.: LISP, Miranda, Haskell…

d) Lógico: Um programa lógico é equivalente a descrição do problema expressa de maneira formal, similar a maneira em que o ser humano resolve o problema.

Ex.: Prolog…

2. Tipos

a) Linguagem de Máquina: Está intimamente ligada ao projeto lógico do computador. É a linguagem que ele entende diretamente desde que foi construído.

b) Linguagem Simbólica: A estrutura ainda se mantém em linguagem de máquina, mas os códigos empregam abreviações de nomes sugestivos que lembram a função da instrução.

Ex.:Assembly…

c) Linguagem Automática: As estruturas dessas linguagens são orientadas de modo que possam ser facilmente assimiladas por especialistas de vários campos de atividades profissionais.

Ex.: Java, Pascal, Prolog…

3. Processos de Tradução

a) Montagem: Montador ou assembler é o programa que traduz um código de uma linguagem fonte simbólica para uma linguagem numérica de máquina.

Figura 2

b) Compilação: São programas que realizam a conversão de um código escrito em linguagem automática para uma linguagem de máquina, analisando basicamente três pontos: Léxica, Sintática e Semântica. Na maioria dos casos existe a necessidade de um programa ligador (Link Editor) para adicionar código já compilado nas bibliotecas.

Figura 3

 

c) Interpretação: Interpretadores são programas tradutores que diferem dos compiladores por que não traduzem o programa fonte todo de uma vez, mas uma linha de cada vez.

Figura 4


Deixe uma resposta