SlideShare uma empresa Scribd logo
Capítulo 2

LÓGICA DE PROGRAMAÇÃO

      A lógica de programação é necessária para pessoas que desejam trabalhar com
desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o
desenvolvimento.
        Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos para
atingir determinado objetivo.


Seqüência Lógica
       Estes pensamentos podem ser descritos como uma seqüência de instruções, que devem
ser seguidas para se cumprir uma determinada tarefa.
      Seqüência Lógica são passos executados até atingir um objetivo ou solução de um
problema.


Instruções
       Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas
definidas para a realização ou emprego de algo”. Em informática, porém, instrução é a
informação que indica a um computador uma ação elementar a executar.
        Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para
isso é necessário um conjunto de instruções colocadas em ordem seqüencial lógica. Por exemplo,
se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de
instruções: descascar as batatas, bater os ovos, fritar as batatas, etc...
       É evidente que essas instruções tem que ser executadas em uma ordem adequada – não se
pode descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada em separado
não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de
todas as instruções, na ordem correta.
       Instruções são um conjunto de regras ou normas definidas para a realização ou emprego
de algo. Em informática, é o que indica a um computador uma ação elementar a executar.


1. CONCEITOS BÁSICOS DE PROGRAMAÇÃO
        Para armazenar um algoritmo na memória de um computador e para que ele possa, em
seguida, comandar as operações a serem executadas, é necessário que ele seja programado, isto
é, que seja transcrito para uma linguagem que o computador possa entender, direta ou
indiretamente.


1.1. LINGUAGENS DE PROGRAMAÇÃO
        Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com
significado interpretável.
Portanto, linguagem de programação é um conjunto finito de palavras, comandos e
instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo computador.
        Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem
utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de
máquina), baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos,
ausente e presente.
        Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da
linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito
rápida, porém complexa).
     Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem
humana; baixo nível para as mais semelhantes à linguagem de máquina.


1.2. TRADUTORES
        Para que um computador possa "entender" um programa escrito em uma linguagem de
alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a
linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.


Compilador: traduz o programa escrito em linguagem de alto nível (programa-fonte) para um
programa equivalente escrito em linguagem de máquina (programa-objeto).




Interpretador: traduz e envia para execução, instrução por instrução e o programa permanece na
forma fonte.




1.3. TIPOS DE LINGUAGENS DE PROGRAMAÇÃO
       Existem diversas linguagens de programação, cada uma com suas características
específicas e com níveis de complexidade e objetivos diferentes:
           Linguagem de Máquina
                 Única compreendida pelo computador.
                 Específica de cada computador.
           Linguagens de Baixo Nível
                 Utilizam mnemônicos para representar instruções elementares
 Ex.: Assembly
           Linguagens de Alto Nível
                 Utiliza instruções próximas da linguagem humana de forma a facilitar o
                   raciocínio.
                 Exemplos: Uso científico : Fortran
                               Propósito geral : Pascal, C, Basic
                               Uso comercial : Cobol, Clipper
                               Uso específico : Lisp, Prolog
                               Visuais : Delphi, Visual Basic, Java


1.4. CRITÉRIOS DE QUALIDADE DE UM PROGRAMA
 Integridade: Refere-se à precisão das informações manipuladas pelo programa, ou seja, os
  resultados gerados pelo processamento do programa devem estar corretos, caso contrário o
  programa simplesmente não tem sentido.

 Clareza: Refere-se à facilidade de leitura do programa. Se um programa for escrito com clareza,
  deverá ser possível a outro programador seguir a lógica do programa sem muito esforço, assim
  como o próprio autor do programa entendê-lo após ter estado um longo período afastado dele.
  O Pascal favorece a escrita de programas com clareza e legibilidade.

 Simplicidade: A clareza e precisão de um programa são normalmente melhoradas tornando as
  coisas o mais simples possível, consistentes com os objetivos do programa. Muitas vezes torna-
  se necessário sacrificar alguma eficiência de processamento, de forma a manter a estrutura do
  programa mais simples.

 Eficiência: Refere-se à velocidade de processamento e a correta utilização da memória. Um
  programa deve ter performance SUFICIENTE para atender às necessidades do problema e do
  usuário, bem como deve utilizar os recursos de memória de forma moderada, dentro das
  limitações do problema.

 Modularidade: Consiste no particionamento do programa em módulos menores bem
  identificáveis e com funções específicas, de forma que o conjunto desses módulos e a interação
  entre eles permitem a resolução do problema de forma mais simples e clara.

 Generalidade: É interessante que um programa seja tão genérico quanto possível de forma a
  permitir a reutilização de seus componentes em outros projetos.




2. PARADIGMAS DE PROGRAMAÇÃO
        Um paradigma se define na forma como o programador lida com um determinado
problema. Muitos pensam que as linguagens de programação surgiram em uma escala linear, ou
seja, que na primeira geração delas o homem se adaptava às máquinas e, depois de várias outras
gerações, as linguagens evoluíram umas das outras e capacitaram as máquinas a fazer as
necessidades humanas. Na verdade, as linguagens surgiram em diferentes trajetórias, cada uma
seguindo um determinado paradigma. Além disso, não é verdadeira a proposição que diz que uma
linguagem qualquer é, sem exceção, a evolução da linguagem anterior (historicamente).
As linguagens existentes hoje foram se adaptando a uma única forma de programação e às
linguagens inseridas no mesmo paradigma. Dentre esses paradigmas, vamos conceituar quatro,
que são considerados os principais: paradigma imperativo, lógico, funcional e orientado a
objetos.


2.1. PARADIGMA IMPERATIVO
       “Primeiro faça isso e depois faça aquilo.”
       A frase acima resume o paradigma imperativo, também conhecido como paradigma
procedural. O problema é analisado até que se encontre uma solução. Basicamente, é uma
sequência de comandos que o computador executará, passo-a-passo, modificando dados e
variáveis a fim de chegar ao resultado esperado. Algol, Basic, C e Pascal são algumas das
linguagens de programação que seguem esse paradigma.


2.2. PARADIGMA FUNCIONAL
       “Subdividir o problema em outras funções e resolver cada uma separadamente, pois os
resultados encontrados serão utilizados posteriormente.”
        Sobre o paradigma funcional, é fácil ilustrar através de um fluxograma. Cada bloco recebe
no topo uma entrada de dados e retorna, na base, os dados de saída. A solução geral é dividida em
várias funções (daí o nome funcional) que, no final, se associam para mostrar o resultado na tela.
        No (clássico) fluxograma ao lado, o problema –
fazer a média das notas de N alunos -, é dividido em
duas etapas: a soma das N notas e a atribuição da
quantidade N de alunos à variável contador. Ambos os
resultados, soma das notas e contagem dos alunos,
são utilizados na operação final, que é dividir a soma
das notas pelo número de alunos. É um exemplo muito
simples, mas que, penso eu, foi útil para exemplificar o
conceito.


2.3. PARADIGMA LÓGICO
       “Qual é o problema?”
       O paradigma lógico ou declarativo caracteriza-se pelo método preciso de descrever um
problema, sem se preocupar com qual algoritmo será utilizado para resolvê-lo. A idéia é criar um
algoritmo “universal”, capaz de solucionar qualquer problema. O problema se adapta a esse
algoritmo, e não o contrário. É baseado em axiomas (verdades universais) e regras de inferência.
Prolog é uma linguagem lógica que ilustra essa definição.


2.4. PARADIGMA ORIENTADO A OBJETOS
     “Um conjunto de classes faz a interação entre objetos (instâncias) e, com a troca de
mensagens entre eles, forma-se o software como um todo.”
       Praticamente tudo é objeto, cada qual com estrutura e comportamento próprios. Esses
objetos são classificados em classes e comunicam entre si. Cada uma dessas representa um
determinado fenômeno e seus objetos são organizados hierarquicamente. O conjunto de classes
faz a interação entre objetos e a troca de mensagens entre eles forma o software como um todo.
      Esse paradigma vem ganhando cada vez mais popularidade. Isso se dá devido ao grande
número de vantagens em trabalhar com orientação a objeto, como a flexibilidade do código
quando se trabalha em sistemas de grande porte e com uma maior equipe de programadores.




EXERCÍCIOS PROPOSTOS


Questão 01:
Defina, com suas palavras, os seguintes termos:
a) programa
b) linguagem de programação
c) tradutor


Questão 02:
Qual a diferença entre linguagem de baixo nível e linguagem de alto nível?


Questão 03:
Explique a diferença entre compilador e interpretador.


Questão 04:
Cite e explique com suas palavras os quatro paradigmas tradicionais de programação.

Mais conteúdo relacionado

Mais procurados

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
Marcos Gregorio
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
Valmon Gaudencio
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Rodrigo Kiyoshi Saito
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
Sérgio Souza Costa
 
02 historia da programação
02   historia da programação02   historia da programação
02 historia da programação
Marlon Vinicius da Silva
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
Rodrigo Teixeira Andreotti
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
Tony Alexander Hild
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
12anogolega
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
Ismar Silveira
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
Elaine Cecília Gatto
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
Fabio Spanhol
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
Adriano Teixeira de Souza
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
eduardohabib
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
Sidney Roberto
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
Rodrigo Gonçalves
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Leinylson Fontinele
 

Mais procurados (18)

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
02 historia da programação
02   historia da programação02   historia da programação
02 historia da programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 

Semelhante a Cap02

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
Rodrigo Gonçalves
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
Chris x-MS
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
valmon
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
zedaesquina98
 
Paradigmas da programacao apostila
Paradigmas da programacao apostilaParadigmas da programacao apostila
Paradigmas da programacao apostila
Nathiele Lacerda
 
Poo frank
Poo frankPoo frank
Poo frank
Francelma
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
BrennoPimenta
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
Bruno Maspoli
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
Jorge Ávila Miranda
 
Programação avançada
Programação avançada Programação avançada
Programação avançada
Ilídio Costa
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
Rosicleia Frasson
 
Net uma revisão sobre a programação orientada a objetos
Net   uma revisão sobre a programação orientada a objetosNet   uma revisão sobre a programação orientada a objetos
Net uma revisão sobre a programação orientada a objetos
LP Maquinas
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
Fábio Andrade
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
Sandro Lopes
 
Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)
Luiz Arthur
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Luiz Arthur
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
ssuser059c2c1
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
APlima
 

Semelhante a Cap02 (20)

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
 
Paradigmas da programacao apostila
Paradigmas da programacao apostilaParadigmas da programacao apostila
Paradigmas da programacao apostila
 
Poo frank
Poo frankPoo frank
Poo frank
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Programação avançada
Programação avançada Programação avançada
Programação avançada
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
 
Net uma revisão sobre a programação orientada a objetos
Net   uma revisão sobre a programação orientada a objetosNet   uma revisão sobre a programação orientada a objetos
Net uma revisão sobre a programação orientada a objetos
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)Tópicos - Computacao Paralela Programação (Visão geral)
Tópicos - Computacao Paralela Programação (Visão geral)
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
 

Mais de mvbahamut

Cap04
Cap04Cap04
Cap04
mvbahamut
 
Cap03
Cap03Cap03
Cap03
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap01
Cap01Cap01
Cap01
mvbahamut
 
Cap09
Cap09Cap09
Cap09
mvbahamut
 
Cap05
Cap05Cap05
Cap05
mvbahamut
 
Cap09
Cap09Cap09
Cap09
mvbahamut
 
Cap08
Cap08Cap08
Cap08
mvbahamut
 
Cap07
Cap07Cap07
Cap07
mvbahamut
 
Cap05
Cap05Cap05
Cap05
mvbahamut
 
Cap04
Cap04Cap04
Cap04
mvbahamut
 
Cap03
Cap03Cap03
Cap03
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap01
Cap01Cap01
Cap01
mvbahamut
 
Cap06
Cap06Cap06
Cap06
mvbahamut
 
Cap07
Cap07Cap07
Cap07
mvbahamut
 
Cap06
Cap06Cap06
Cap06
mvbahamut
 
Cap05
Cap05Cap05
Cap05
mvbahamut
 
Cap04
Cap04Cap04
Cap04
mvbahamut
 
Cap03
Cap03Cap03
Cap03
mvbahamut
 

Mais de mvbahamut (20)

Cap04
Cap04Cap04
Cap04
 
Cap03
Cap03Cap03
Cap03
 
Cap02
Cap02Cap02
Cap02
 
Cap01
Cap01Cap01
Cap01
 
Cap09
Cap09Cap09
Cap09
 
Cap05
Cap05Cap05
Cap05
 
Cap09
Cap09Cap09
Cap09
 
Cap08
Cap08Cap08
Cap08
 
Cap07
Cap07Cap07
Cap07
 
Cap05
Cap05Cap05
Cap05
 
Cap04
Cap04Cap04
Cap04
 
Cap03
Cap03Cap03
Cap03
 
Cap02
Cap02Cap02
Cap02
 
Cap01
Cap01Cap01
Cap01
 
Cap06
Cap06Cap06
Cap06
 
Cap07
Cap07Cap07
Cap07
 
Cap06
Cap06Cap06
Cap06
 
Cap05
Cap05Cap05
Cap05
 
Cap04
Cap04Cap04
Cap04
 
Cap03
Cap03Cap03
Cap03
 

Cap02

  • 1. Capítulo 2 LÓGICA DE PROGRAMAÇÃO A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o desenvolvimento. Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Seqüência Lógica Estes pensamentos podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema. Instruções Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar. Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem seqüencial lógica. Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc... É evidente que essas instruções tem que ser executadas em uma ordem adequada – não se pode descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correta. Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. 1. CONCEITOS BÁSICOS DE PROGRAMAÇÃO Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado, isto é, que seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente. 1.1. LINGUAGENS DE PROGRAMAÇÃO Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável.
  • 2. Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo computador. Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos, ausente e presente. Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa). Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina. 1.2. TRADUTORES Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador. Compilador: traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto). Interpretador: traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte. 1.3. TIPOS DE LINGUAGENS DE PROGRAMAÇÃO Existem diversas linguagens de programação, cada uma com suas características específicas e com níveis de complexidade e objetivos diferentes:  Linguagem de Máquina  Única compreendida pelo computador.  Específica de cada computador.  Linguagens de Baixo Nível  Utilizam mnemônicos para representar instruções elementares
  • 3.  Ex.: Assembly  Linguagens de Alto Nível  Utiliza instruções próximas da linguagem humana de forma a facilitar o raciocínio.  Exemplos: Uso científico : Fortran Propósito geral : Pascal, C, Basic Uso comercial : Cobol, Clipper Uso específico : Lisp, Prolog Visuais : Delphi, Visual Basic, Java 1.4. CRITÉRIOS DE QUALIDADE DE UM PROGRAMA  Integridade: Refere-se à precisão das informações manipuladas pelo programa, ou seja, os resultados gerados pelo processamento do programa devem estar corretos, caso contrário o programa simplesmente não tem sentido.  Clareza: Refere-se à facilidade de leitura do programa. Se um programa for escrito com clareza, deverá ser possível a outro programador seguir a lógica do programa sem muito esforço, assim como o próprio autor do programa entendê-lo após ter estado um longo período afastado dele. O Pascal favorece a escrita de programas com clareza e legibilidade.  Simplicidade: A clareza e precisão de um programa são normalmente melhoradas tornando as coisas o mais simples possível, consistentes com os objetivos do programa. Muitas vezes torna- se necessário sacrificar alguma eficiência de processamento, de forma a manter a estrutura do programa mais simples.  Eficiência: Refere-se à velocidade de processamento e a correta utilização da memória. Um programa deve ter performance SUFICIENTE para atender às necessidades do problema e do usuário, bem como deve utilizar os recursos de memória de forma moderada, dentro das limitações do problema.  Modularidade: Consiste no particionamento do programa em módulos menores bem identificáveis e com funções específicas, de forma que o conjunto desses módulos e a interação entre eles permitem a resolução do problema de forma mais simples e clara.  Generalidade: É interessante que um programa seja tão genérico quanto possível de forma a permitir a reutilização de seus componentes em outros projetos. 2. PARADIGMAS DE PROGRAMAÇÃO Um paradigma se define na forma como o programador lida com um determinado problema. Muitos pensam que as linguagens de programação surgiram em uma escala linear, ou seja, que na primeira geração delas o homem se adaptava às máquinas e, depois de várias outras gerações, as linguagens evoluíram umas das outras e capacitaram as máquinas a fazer as necessidades humanas. Na verdade, as linguagens surgiram em diferentes trajetórias, cada uma seguindo um determinado paradigma. Além disso, não é verdadeira a proposição que diz que uma linguagem qualquer é, sem exceção, a evolução da linguagem anterior (historicamente).
  • 4. As linguagens existentes hoje foram se adaptando a uma única forma de programação e às linguagens inseridas no mesmo paradigma. Dentre esses paradigmas, vamos conceituar quatro, que são considerados os principais: paradigma imperativo, lógico, funcional e orientado a objetos. 2.1. PARADIGMA IMPERATIVO “Primeiro faça isso e depois faça aquilo.” A frase acima resume o paradigma imperativo, também conhecido como paradigma procedural. O problema é analisado até que se encontre uma solução. Basicamente, é uma sequência de comandos que o computador executará, passo-a-passo, modificando dados e variáveis a fim de chegar ao resultado esperado. Algol, Basic, C e Pascal são algumas das linguagens de programação que seguem esse paradigma. 2.2. PARADIGMA FUNCIONAL “Subdividir o problema em outras funções e resolver cada uma separadamente, pois os resultados encontrados serão utilizados posteriormente.” Sobre o paradigma funcional, é fácil ilustrar através de um fluxograma. Cada bloco recebe no topo uma entrada de dados e retorna, na base, os dados de saída. A solução geral é dividida em várias funções (daí o nome funcional) que, no final, se associam para mostrar o resultado na tela. No (clássico) fluxograma ao lado, o problema – fazer a média das notas de N alunos -, é dividido em duas etapas: a soma das N notas e a atribuição da quantidade N de alunos à variável contador. Ambos os resultados, soma das notas e contagem dos alunos, são utilizados na operação final, que é dividir a soma das notas pelo número de alunos. É um exemplo muito simples, mas que, penso eu, foi útil para exemplificar o conceito. 2.3. PARADIGMA LÓGICO “Qual é o problema?” O paradigma lógico ou declarativo caracteriza-se pelo método preciso de descrever um problema, sem se preocupar com qual algoritmo será utilizado para resolvê-lo. A idéia é criar um algoritmo “universal”, capaz de solucionar qualquer problema. O problema se adapta a esse algoritmo, e não o contrário. É baseado em axiomas (verdades universais) e regras de inferência. Prolog é uma linguagem lógica que ilustra essa definição. 2.4. PARADIGMA ORIENTADO A OBJETOS “Um conjunto de classes faz a interação entre objetos (instâncias) e, com a troca de mensagens entre eles, forma-se o software como um todo.” Praticamente tudo é objeto, cada qual com estrutura e comportamento próprios. Esses objetos são classificados em classes e comunicam entre si. Cada uma dessas representa um
  • 5. determinado fenômeno e seus objetos são organizados hierarquicamente. O conjunto de classes faz a interação entre objetos e a troca de mensagens entre eles forma o software como um todo. Esse paradigma vem ganhando cada vez mais popularidade. Isso se dá devido ao grande número de vantagens em trabalhar com orientação a objeto, como a flexibilidade do código quando se trabalha em sistemas de grande porte e com uma maior equipe de programadores. EXERCÍCIOS PROPOSTOS Questão 01: Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) tradutor Questão 02: Qual a diferença entre linguagem de baixo nível e linguagem de alto nível? Questão 03: Explique a diferença entre compilador e interpretador. Questão 04: Cite e explique com suas palavras os quatro paradigmas tradicionais de programação.