11
Hélio Andrade LÓGICA DE PROGRAMAÇÃO http://helioandrade.com/ [email protected]

Lógica de Programação

Embed Size (px)

DESCRIPTION

Lógica de Programação.

Citation preview

  • Hlio Andrade

    LGICA DE PROGRAMAO

    http://helioandrade.com/ [email protected]

  • 1 INTRODUO

    Definio

    A programao de computadores tem como fundamento o algoritmo.

    Algoritmo uma maneira particular de resolver um problema, e constitui-se em um conjunto de aes ordenadas logicamente, realizveis em um intervalo de tempo considerado aceitvel e consumindo a menor quantidade de recursos possvel.

    Em outros termos:

    Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada uma das quais podendo ser executada mecanicamente num perodo de tempo finito e com uma quantidade

    de esforo finita.

    Fonte: Wikipdia

    importante ressaltar que nem todos os problemas podem ser resolvidos por meio de algoritmos, sendo usadas outras tcnicas, que so abordadas em um curso mais avanado.

    A utilizao de algoritmos no exclusividade da Computao, sendo utilizado em diversas reas do conhecimento humano. Usamos algoritmos cotidianamente, muitas vezes sem percebermos. Por exemplo: uma receita de bolo; a troca de um pneu furado; a compra de uma passagem area; etc.

    Exemplo #1: Algoritmo TOMAR BANHO.

    Exemplo #2: Algoritmo TROCAR PNEU.

    Exemplo #3: Algoritmo FAZER BOLO.

    1. Entrar no banheiro; 2. Tirar a roupa; 3. Abrir o registro; 4. Ensaboar-se; 5. Enxaguar o corpo; 6. Passar shampoo nos cabelos; 7. Enxaguar o cabelo; 8. Fechar o registro.

    1. Pegar o macaco;

    2. Colocar o macaco embaixo do carro;

    3. Levantar o carro;

    4. Pegar chave de roda;

    5. Desparafusar a roda;

    6. Retirar a roda;

    7. Colocar o estepe;

    8. Reparafusar o pneu;

    9. Abaixar o carro; 10. Tirar o macaco.

  • Estruturas bsicas

    Perceba que na execuo das instrues em um algoritmo a ordem em que as tarefas so realizadas importante. No podemos, por exemplo, bater os ovos antes de quebr-los dentro da batedeira ou tomar banho sem antes tirarmos a roupa. A sequncia de instrues executadas determinante para o sucesso de nosso algoritmo.

    Outro aspecto a ser considerado que quando executamos o algoritmo "correr ao redor da praa", por exemplo, definimos em nossa mente de antemo a quantidade de voltas que daremos, ou seja, a quantidade de vezes que repetiremos a tarefa de contornar correndo a praa, at que seja atingido o limite que desejamos.

    Consideremos, ainda, que no nosso dia a dia temos que tomar decises quanto ao que deveremos ou no realizar: se chover, levarei capa de chuva, por exemplo. Escolhas bem feitas podem determinar o sucesso ou fracasso de nossos algoritmos.

    Diante do exposto, queremos adiantar que os algoritmos possuem 3 (trs) estruturas "notveis", que so a sua matria-prima:

    Estruturas Sequenciais; Estruturas de Repetio; Estruturas de Deciso.

    Escrever bons algoritmos indiretamente significa dominar tais estruturas!

    Representao

    Como tudo que diz respeito existncia humana, precisamos expressar nossas ideias algortmicas e p-las no papel.

    Um algoritmo pode ser expresso por meio de:

    Diagramas, smbolos especiais e fluxogramas; Nossa linguagem natural, como no exemplo da receita de bolo; Uma linguagem estruturada, como o portugol, criada especialmente para a

    expresso de algoritmos em portugus.

    1. Bata as claras em neve;

    2. Bata bem as gemas com a margarina e o acar;

    3. Acrescente o leite e farinha aos poucos sem parar de bater;

    4. Por ltimo agregue as claras em neve e o fermento;

    5. Coloque em forma grande de furo central untada e enfarinhada;

    6. Asse em forno mdio, pr-aquecido, por aproximadamente 40 minutos;

    1. Quando espetar um palito e sair limpo estar assado.

  • Alternaremos frequentemente entre uma representao e outra. Porm, nosso foco ser no desenvolvimento de algoritmos utilizando o portugus estruturado (portugol) do VisuAlg, que ser explicado com maiores detalhes em lies mais adiante.

    Exemplo: Clculo da mdia e determinao da situao de um dado aluno.

    Utilizando linguagem corrente:

    O mesmo algoritmo descrito por meio de um fluxograma:

    E finalmente utilizando uma linguagem estruturada (portugol):

    algoritmo "media_aluno"

    var

    nota1, nota2, media: real

    inicio

    leia(nota1)

    leia(nota2)

    se (media >= 7) entao

    escreva("APROVADO!")

    senao

    escreva("REPROVADO!")

    fimse

    fimalgoritmo

    1. Receba a primeira nota da disciplina.

    2. Receba a segunda nota da disciplina.

    3. Some as duas notas e divida o resultado por 2.

    4. Se a mdia for maior ou igual a 7, ento exiba "Aprovado!", seno exiba

    "Reprovado!".

  • Algumas consideraes iniciais

    importante ressaltar que o aprendizado de programao de computadores no se faz da noite para o dia, como num passe de mgica

    Primeiramente, so estudados os princpios e estruturas fundamentais da lgica de programao, para em seguida aplic-la na soluo de problemas por meio do desenvolvimento de algoritmos.

    O estudante deve possuir bastante disciplina e desejo de aprender. Os primeiros passos so um pouco trabalhosos e exigem certo nvel de perseverana, bem como bastante prtica. Imagine-se como uma atleta que necessita treinar horas a fio para superar suas metas!

    Programar se aprende programando!

  • 2 TIPOS DE DADOS

    Como vimos anteriormente, um algoritmo consiste numa sequncia de passos bem definidos com o intuito de resolver um dado problema.

    Ou seja, um algoritmo realiza um conjunto de instrues numa determinada ordem sobre um conjunto de dados de entrada, tendo em vista um conjunto de dados de sada desejado.

    Um algoritmo, portanto, uma ferramenta computacional responsvel por transformar dados brutos de entrada em informao til na sada.

    Diante do exposto, importante que, ao desenvolvermos um algoritmo, deixemos explcito com quais tipos de dados ele ir trabalhar, uma vez que o computador nada mais do que uma mquina espera de instrues e dados para processar.

    Ns, seres humanos, por exemplo, manipulamos em nossas atividades profissionais e pessoais vrios tipos de dados e informaes: senhas dos mais variados tipos, contas bancrias, datas de aniversrios, o valor do nosso salrio, um poema predileto, uma msica que nos marcou, o cheiro de um perfume, a foto de um momento especial, etc.

    A partir dessa diversificada gama de tipos de dados, realizamos clculos mentais, repetimos aes, tomamos decises dentre outros processamentos diversos.

    Com os computadores, ocorre algo parecido. Para que ocorra um processamento dito correto sobre os dados de entrada faz-se necessrio que o computador saiba de antemo em que tipo especfico um dado se classifica.

    Os tipos de dados podem variar de uma linguagem de programao para outra, contudo, os mais comuns so: numricos (inteiros e reais), literais e lgicos.

    Tipos Inteiros

    So os dados numricos constitudos pelo conjunto dos nmeros inteiros, ou seja, o conjunto dos naturais mais os nmeros negativos.

    Exemplos:

    Eu tenho 33 anos de idade. Joo tem 2 filhos.

  • Tipos Reais

    So os dados numricos constitudos pelo conjunto dos nmeros naturais, inteiros e racionais, ou seja, nmeros negativos, positivos, fracionrios e com casas decimais. Por exemplo: 12; -1245; 45,98; 1/8.

    No Brasil, separamos a parte inteira da parte decimal de um nmero utilizando a vrgula (,). Na construo de algoritmos, a notao a ser usada a inglesa, que utiliza o ponto (.). Ento, por exemplo, 1234,56 ficaria 1234.56.

    Exemplos:

    A rea de um terreno igual a 123,50 m. O saldo da conta R$ -258,69. A temperatura ambiente de -20,35 C.

    Tipos Literais

    So constitudos por sequncias de letras, nmeros e smbolos especiais, incluindo os espaos em branco.

    Outras denominaes do tipo de dado literal encontradas nos livros tcnicos so: cadeia, string, alfanumrico.

    Exemplos:

    Celular: (98) 1234-5678. CPF: 123.456.789-10. Endereo: Rua Fulano de Tal, n 1234. Hlio Andrade.

    Tipos Lgicos

    So os dados que assumem os valores VERDADEIRO ou FALSO. So tambm conhecidos como tipos de dados booleanos.

    Exemplos:

    A porta pode estar aberta ou fechada. Voc pode estar feliz ou triste.

    H outros tipos de dados, porm, os que sero tratados aqui so suficientes para um programador iniciante, visto que as habilidades que devem ser desenvolvidas so o raciocnio lgico e o domnio das estruturas bsicas utilizadas na programao de computadores.

    No se preocupe, pois, medida que voc avana nos seus estudos e vida profissional, ficar mais simples assimilar novos tipos e estruturas de dados.

  • 3 VARIVEIS E CONSTANTES

    Vimos que o computador uma mquina que recebe dados, processa-os e retorna os resultados.

    Todo esse processamento executado por meio do armazenamento desses dados em memria por meio da utilizao de variveis e constantes.

    O que uma varivel?

    As variveis, como o prprio nome indica, guardam temporariamente o contedo a ser utilizado na execuo dos programas, podendo ser modificado no decorrer do tempo.

    O tipo de varivel a ser utilizada depende do tipo de dado (numrico, literal, lgico, etc.) a ser representado.

    A varivel, antes de ser usada dentro do programa, deve ser declarada escolhendo-se um nome adequado e indicando-se o seu tipo.

    H certas restries quanto aos nomes que podem ser dados s variveis:

    No pode ser uma palavra reservada; No pode comear com um nmero; No pode ter espaos em branco; S pode ser constituda de letras e nmeros.

    Nomes vlidos para variveis:

    cpf fone1 nomecliente

    Nomes invlidos:

    &cpf 2fone nome cliente

    O que uma constante?

    Por sua vez, como voc j deve estar imaginando, constantes so valores fixos, que no se modificam no decorrer da execuo do programa. Por exemplo, o nmero PI (aproximadamente, 3,14).

    Os nomes dados s constantes possuem as mesmas restries dos nomes de variveis.

    Na prtica, variveis e constantes so espaos reservados na memria principal do computador (vulgarmente chamada de memria RAM), que dividida em reas de armazenamento devidamente identificadas e endereadas.

  • Imagine que a memria RAM seja como uma cidade, dividida em bairros, onde os dados so os moradores das casas, que possuem um nmero para sua identificao, caracterizando seu endereo (localizao).

    A figura abaixo ilustra o funcionamento de um algoritmo bem como a importncia da definio de variveis e constantes para o processamento de dados pelo computador.

  • 4 OPERADORES

    Um operador simboliza uma operao efetuada sobre variveis e constantes, realizando o processamento de dados.

    So classificados em trs tipos:

    Operadores Aritmticos; Operadores Relacionais; Operadores Lgicos.

    Operadores Aritmticos

    So utilizados para executar operaes numricas.

    Observaes:

    Smbolos diferentes dos da tabela acima no so aceitos na construo de nossos algoritmos;

    Alguns smbolos matemticos no existem nos teclados atuais, da a necessidade de utilizao de outros smbolos;

    As expresses matemticas devem ser escritas em linha.

    OPERAO SMBOLO DESCRIO

    Adio +

    Operadores aritmticos tradicionais de adio, subtrao, multiplicao e diviso.

    Ex.: 2 + 4 = 6; 2 * 10 = 20; 10 / 2 = 5.

    Subtrao -

    Multiplicao *

    Diviso /

    Resto da diviso inteira

    mod ou % Operador de mdulo; retorna o

    resto da diviso inteira. Ex.: 8 mod 3 = 2.

    Quociente da diviso inteira

    \ ou div Operador de diviso inteira; retorna

    o quociente. Ex.: 7 \ 2 = 3 ou 7 div 2 = 3.

    Potenciao ^ ou

    exp(x,y) Operador de potenciao. Ex.: 5 ^ 2 = 25 ou exp(5,2) = 25.

  • Operadores Relacionais

    So utilizados em expresses lgicas para se testar a relao entre dois valores do mesmo tipo, retornando VERDADEIRO ou FALSO.

    Operadores Lgicos

    So utilizados quando h a necessidade de serem testadas duas ou mais condies dentro de um algoritmo simultaneamente.

    Os operadores lgicos so:

    OPERAO SMBOLO DESCRIO

    Negao nao Operador unrio de negao.

    Conjuno ou Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for verdadeiro.

    Disjuno e Operador que resulta VERDADEIRO somente se seus dois operandos lgicos forem verdadeiros.

    Disjuno exclusiva

    xou Operador que resulta VERDADEIRO se seus dois operandos lgicos forem diferentes, e FALSO se forem iguais.

    Abordaremos melhor os operadores lgicos na lio que trata das estruturas de deciso.

    OPERAO SMBOLO EXEMPLO RESULTADO

    Igual = 7 = 7 VERDADEIRO

    Maior que > 10 > 20 FALSO

    Menor que < 100 < 1000 VERDADEIRO

    Menos ou igual a = 1234 VERDADEIRO

    Diferente de 10 10 FALSO