• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cap02
 

Cap02

on

  • 269 views

 

Statistics

Views

Total Views
269
Views on SlideShare
269
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cap02 Cap02 Document Transcript

    • Capítulo 2LÓGICA DE PROGRAMAÇÃO A lógica de programação é necessária para pessoas que desejam trabalhar comdesenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para odesenvolvimento. Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos paraatingir determinado objetivo.Seqüência Lógica Estes pensamentos podem ser descritos como uma seqüência de instruções, que devemser seguidas para se cumprir uma determinada tarefa. Seqüência Lógica são passos executados até atingir um objetivo ou solução de umproblema.Instruções Na linguagem comum, entende-se por instruções “um conjunto de regras ou normasdefinidas para a realização ou emprego de algo”. Em informática, porém, instrução é ainformaçã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, paraisso é 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 deinstruçõ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 sepode descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada em separadonão tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto detodas as instruções, na ordem correta. Instruções são um conjunto de regras ou normas definidas para a realização ou empregode 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, emseguida, 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 ouindiretamente.1.1. LINGUAGENS DE PROGRAMAÇÃO Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura comsignificado interpretável.
    • Portanto, linguagem de programação é um conjunto finito de palavras, comandos einstruçõ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 linguagemutilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem demá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 dalinguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muitorápida, porém complexa). Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagemhumana; 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 dealto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e alinguagem 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 umprograma 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 naforma fonte.1.3. TIPOS DE LINGUAGENS DE PROGRAMAÇÃO Existem diversas linguagens de programação, cada uma com suas característicasespecí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, Java1.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 determinadoproblema. Muitos pensam que as linguagens de programação surgiram em uma escala linear, ouseja, que na primeira geração delas o homem se adaptava às máquinas e, depois de várias outrasgerações, as linguagens evoluíram umas das outras e capacitaram as máquinas a fazer asnecessidades humanas. Na verdade, as linguagens surgiram em diferentes trajetórias, cada umaseguindo um determinado paradigma. Além disso, não é verdadeira a proposição que diz que umalinguagem 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 àslinguagens inseridas no mesmo paradigma. Dentre esses paradigmas, vamos conceituar quatro,que são considerados os principais: paradigma imperativo, lógico, funcional e orientado aobjetos.2.1. PARADIGMA IMPERATIVO “Primeiro faça isso e depois faça aquilo.” A frase acima resume o paradigma imperativo, também conhecido como paradigmaprocedural. O problema é analisado até que se encontre uma solução. Basicamente, é umasequência de comandos que o computador executará, passo-a-passo, modificando dados evariáveis a fim de chegar ao resultado esperado. Algol, Basic, C e Pascal são algumas daslinguagens de programação que seguem esse paradigma.2.2. PARADIGMA FUNCIONAL “Subdividir o problema em outras funções e resolver cada uma separadamente, pois osresultados encontrados serão utilizados posteriormente.” Sobre o paradigma funcional, é fácil ilustrar através de um fluxograma. Cada bloco recebeno topo uma entrada de dados e retorna, na base, os dados de saída. A solução geral é dividida emvá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 emduas etapas: a soma das N notas e a atribuição daquantidade N de alunos à variável contador. Ambos osresultados, soma das notas e contagem dos alunos,são utilizados na operação final, que é dividir a somadas notas pelo número de alunos. É um exemplo muitosimples, mas que, penso eu, foi útil para exemplificar oconceito.2.3. PARADIGMA LÓGICO “Qual é o problema?” O paradigma lógico ou declarativo caracteriza-se pelo método preciso de descrever umproblema, sem se preocupar com qual algoritmo será utilizado para resolvê-lo. A idéia é criar umalgoritmo “universal”, capaz de solucionar qualquer problema. O problema se adapta a essealgoritmo, 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 demensagens entre eles, forma-se o software como um todo.” Praticamente tudo é objeto, cada qual com estrutura e comportamento próprios. Essesobjetos 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 classesfaz 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 grandenúmero de vantagens em trabalhar com orientação a objeto, como a flexibilidade do códigoquando se trabalha em sistemas de grande porte e com uma maior equipe de programadores.EXERCÍCIOS PROPOSTOSQuestão 01:Defina, com suas palavras, os seguintes termos:a) programab) linguagem de programaçãoc) tradutorQuestã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.