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.

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):
- Disponibilizo o dinheiro
- Visualizo um lugar onde vende cartão telefônico
- Compro um cartão telefônico
- Visualizo o orelhão
- Aproximo-se do orelhão
- Retiro do gancho
- Insiro o cartão
- Disco o número…
Exemplo 2 (formal):
Desenvolver um algoritmo para realizar a entrada de 4 notas escolares e calcular a sua media.
- Algoritmo calcula_media;
- var n1,n2,n3,n4,media:real;
- inicio
- escreva(‘Informe as 4 notas: ‘); leia(n1,n2,n3,n4);
- media:=(n1+n2+n3+n4)/4;
- escreva(‘Media = ‘, media);
- 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.

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.

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.

Arquivado em: ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES