SlideShare a Scribd company logo
1 of 5
Download to read offline
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.

More Related Content

What's hot

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-09essa
 
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 LogicaRodrigo Kiyoshi Saito
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação12anogolega
 
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 #1Ismar Silveira
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio 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çõesAdriano Teixeira de Souza
 
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çãoSidney Roberto
 
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
 

What's hot (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)
 

Viewers also liked

Industriaren eboluzioa
Industriaren eboluzioaIndustriaren eboluzioa
Industriaren eboluzioamungia14
 
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...Filipa Guerreiro
 
Historia y evolucion de las computadoras
Historia y evolucion de las computadorasHistoria y evolucion de las computadoras
Historia y evolucion de las computadorasMagali Guerrero
 
Álgebra del siglo XIX
Álgebra del siglo XIXÁlgebra del siglo XIX
Álgebra del siglo XIXadrianapicado
 
Limites 1
Limites 1Limites 1
Limites 1jc-alfa
 
Que es una funcion
Que es una funcionQue es una funcion
Que es una funcionjc-alfa
 
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...Rosa Valente
 
Equações.2 grau.exames.testes.intermédios
Equações.2 grau.exames.testes.intermédiosEquações.2 grau.exames.testes.intermédios
Equações.2 grau.exames.testes.intermédiosFilipa Guerreiro
 
Fragmentos de Vida – Uma Viagem ... pela Formação a Distância
Fragmentos de Vida – Uma Viagem ...  pela Formação a DistânciaFragmentos de Vida – Uma Viagem ...  pela Formação a Distância
Fragmentos de Vida – Uma Viagem ... pela Formação a DistânciaJosé Miguel Sousa
 
Trabalho de Cálculo numérico
Trabalho de Cálculo numéricoTrabalho de Cálculo numérico
Trabalho de Cálculo numéricoItaylane Malta
 
que es la derivada
que es la derivadaque es la derivada
que es la derivadajc-alfa
 

Viewers also liked (20)

Industriaren eboluzioa
Industriaren eboluzioaIndustriaren eboluzioa
Industriaren eboluzioa
 
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...
Ficha de Trabalho: Ângulo inscrito num arco de circunferência e ângulo ao cen...
 
Tutorial
TutorialTutorial
Tutorial
 
1950 5054-1-pb
1950 5054-1-pb1950 5054-1-pb
1950 5054-1-pb
 
Programacion en html
Programacion en htmlProgramacion en html
Programacion en html
 
Historia y evolucion de las computadoras
Historia y evolucion de las computadorasHistoria y evolucion de las computadoras
Historia y evolucion de las computadoras
 
Álgebra del siglo XIX
Álgebra del siglo XIXÁlgebra del siglo XIX
Álgebra del siglo XIX
 
Cap03
Cap03Cap03
Cap03
 
Más Sobre Mí
Más Sobre MíMás Sobre Mí
Más Sobre Mí
 
Limites 1
Limites 1Limites 1
Limites 1
 
Que es una funcion
Que es una funcionQue es una funcion
Que es una funcion
 
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...
Divisibilidade por 2,3 e 5. identificar números pares, números primos, quadra...
 
Equações.2 grau.exames.testes.intermédios
Equações.2 grau.exames.testes.intermédiosEquações.2 grau.exames.testes.intermédios
Equações.2 grau.exames.testes.intermédios
 
Fragmentos de Vida – Uma Viagem ... pela Formação a Distância
Fragmentos de Vida – Uma Viagem ...  pela Formação a DistânciaFragmentos de Vida – Uma Viagem ...  pela Formação a Distância
Fragmentos de Vida – Uma Viagem ... pela Formação a Distância
 
Trabalho de Cálculo numérico
Trabalho de Cálculo numéricoTrabalho de Cálculo numérico
Trabalho de Cálculo numérico
 
Lab split
 Lab split Lab split
Lab split
 
Introdução ao matlab
Introdução ao matlabIntrodução ao matlab
Introdução ao matlab
 
Resumo1
Resumo1Resumo1
Resumo1
 
Pac3 Narrativa interactiva
Pac3 Narrativa interactivaPac3 Narrativa interactiva
Pac3 Narrativa interactiva
 
que es la derivada
que es la derivadaque es la derivada
que es la derivada
 

Similar to Cap02

Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay 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 ricardozedaesquina98
 
Paradigmas da programacao apostila
Paradigmas da programacao apostilaParadigmas da programacao apostila
Paradigmas da programacao apostilaNathiele Lacerda
 
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.pptBrennoPimenta
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmosslashmelhor
 
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 javaRosicleia 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 objetosLP Maquinas
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro 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).pdfssuser059c2c1
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdfAPlima
 

Similar to 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
 

More from 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
 
Cap01
Cap01Cap01
Cap01
 
Cap06
Cap06Cap06
Cap06
 
Cap07
Cap07Cap07
Cap07
 
Cap06
Cap06Cap06
Cap06
 
Cap05
Cap05Cap05
Cap05
 
Cap04
Cap04Cap04
Cap04
 
Cap02
Cap02Cap02
Cap02
 
Cap01
Cap01Cap01
Cap01
 

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.