60

logica_inicio

  • Upload
    rubens

  • View
    213

  • Download
    0

Embed Size (px)

DESCRIPTION

logict

Citation preview

  • Aristteles foi o primeiro autor a elaborar um

    sistema rigoroso de critrios para o raciocnio. A

    funo da lgica domar a louca energia do

    pensamento sem diminu-la. No um fim, mas um meio: um instrumento preliminar para a

    reflexo sobre a realidade. Por isso, as

    anotaes que Aristteles comps sobre o

    assunto foram reunidas com o nome de

    Organon em grego, A Ferramenta.

  • Lgica uma parte da filosofia que estuda o fundamento, a

    estrutura e as expresses humanas do conhecimento.

    Lgica de programao a tcnica de encadear

    pensamentos para atingir determinado objetivo.

  • Exemplos de ordenao do raciocnio:

    Todo mamfero um animal.

    Todo homem mamfero.

    Portanto, todo homem um animal.

    Timbaba uma cidade de Pernambuco

    Quem nasce em Timbaba timbaubense

    Portanto, todos os timbaubenses so pernambucanos.

  • Timbaba uma cidade de Pernambuco

    Quem nasce em Timbaba timbaubense

    Portanto, todos os timbaubenses so pernambucanos.

    Pernambuco ABRANGENTE

    Timbaba MDIO

    Timbaubenses ESPECFICOS

  • Vamos pensar em novos exemplos:

    ? ??

    ???

    ?????

    ??????

    ?????????

    ???????????

  • Um pensamento pode ser representado emvrios idiomas, embora sempre expresse amesma ideia, o mesmo raciocnio.

    A ideia concebida. Em seguida racionalizada,ordenada, e formalizada atravs darepresentao em uma certa linguagem deprogramao, como C#, Delphi, Java, PHP, entreoutras.

  • Entretanto, cada linguagem de programao, assim como os idiomas da linguagem natural (linguagem falada e escrita, Portugus, Ingls, Espanhol, Alemo), tem suas especificidades.

    Para que possamos representar formalmente um raciocnio, sem nos preocuparmos com um linguagem de programao especfica, usamos os ALGORITMOS.

  • Dado: Representa um fato bsico que pode sofrer manipulao.

    Pode ser de diversos tipos como:

    Numrico: Composto apenas por nmeros que normalmente utilizaremos em operaes aritmticas. Ex.: 2, 20.3, 25.

    Alfanumrico ou texto: Composto por letras, smbolos e/ou nmeros que normalmente no sero usados em operaes aritmticas. Ex.: Antonio, 2, [email protected], casa, Java.

    Imagens: Composto por figuras ou fotos.

    udio: Composto por sons ou rudos.

    Vdeo: Composto por imagens ou figuras em movimento.

  • Informao: Quando atravs de processamento ou interpretao, de acordo com um contexto, um significado atribudo a um ou vrios dados temos uma informao. Este significado d um valor adicional ao dado alm do valor do fato representado.

    Exemplo: Nestes exemplos, para cada dado foi atribudo um significado que foram respectivamente: dias, anos, smbolo monetrio do real e telefone.

    38 dias

    38 anos

    R$ 38,00

    Telefone 9999-8888

  • Sistema Computacional: Um sistema baseado em computador um composto de infraestrutura tecnolgica cujos elementos so organizados para coletar, manipular e processar dados em informaes.

  • Desenvolvimento de Software: A cincia que trata dodesenvolvimento de software conhecida comoEngenharia de Software. Ela prever que para sedesenvolver um software deve haver um processo desoftware definido. O processo de software mais tradicional conhecido como Modelo Cascata, representado abaixo:

  • Etapas do modelo cascata:

    Requisito: Identificao do que o software deve fazer.

    Anlise: Os dados necessrios e como eles se relacionamso definidos.

    Projeto: Determina como as funcionalidades do sistemasero implementadas.

    Codificao: O programa construdo, traduzindo-se oprojeto em cdigo.

    Teste: Verifica se as funcionalidades implementadasatendem aos requisitos especificados.

    Implantao: O software instalado e colocado em uso.

    Manuteno: O software sofre manuteno para correo,adaptao ou acrscimo funcional.

  • PROCESSAMENTO DE DADOS

    Consiste em um conjunto de atividades ordenadas com o objetivo de manipular dados iniciais em informaes desejveis:

  • PROCESSAMENTO ELETRNICO DE DADOS

    Quando o processamento de dados realizado por equipamentos eletrnicos, por exemplo, computadores, temos o que denominamos de processamento eletrnico de dados.

    Dependendo da quantidade de dados que desejamos processar e do processamento que desejamos realizar, a quantidade de instrues de cada atividade pode variar de uma a centenas ou milhares de instrues.

  • PROCESSAMENTO ELETRNICO DE DADOS

    Exemplo1: Para encontrarmos o maior nmero entre dois nmeros iniciais, precisamos basicamente de cinco instrues: 1 Obter o primeiro nmero; 2 Obter o segundo nmero; 3 Comparar o primeiro com o segundo nmero; 4 Armazenar o maior nmero comparado; 5 Exibir o nmero memorizado.

  • PROCESSAMENTO ELETRNICO DE DADOS Exemplo2: Para encontrarmos o maior nmero entre trs nmeros iniciais, precisamos basicamente de oito instrues: 1 Obter o primeiro nmero; 2 Obter o segundo nmero; 3 Obter o terceiro nmero; 4 Comparar o primeiro com o segundo nmero; 5 Armazenar o maior nmero comparado; 6 Comparar o terceiro com o maior nmero armazenado; 7 - Armazenar o maior nmero comparado; 8 Exibir o nmero memorizado.

  • PROGRAMA Conjunto de instrues escrito de forma que um computador seja capaz de executar para processar dados. Sendo uma mquina eletrnica, o computador est submetido as regras da eletrnica digital. Com isso, as diversas regras das linguagens naturais (portugus, ingls, espanhol, etc.) no so entendidas pelo computador. Ento foram criadas linguagens de programao com regras prprias, indicando como as instrues devero ser codificadas.

    PROGRAMAO a atividade de elaborar um programa.

    PROGRAMADOR

    O profissional responsvel pela elaborao do programa.

  • Antes de escrever o programa propriamente dito, comum primeiro fazermos um representao abstrata, sem muitos detalhes, da idia (lgica) que temos para resolver o problema para o qual o programa est sendo criado. Os arquitetos ou engenheiros civis normalmente fazem algo parecido. Quando um cliente solicita que eles elaborem um projeto para a construo de um imvel, antes de desenhar a planta arquitetnica eles primeiro fazem um rascunho (croqui) para entender melhor o desejo do cliente e verificar com ele se a soluo desenhada no croqui resolve o desejo do cliente. Quando verificado que realmente atende, a planta finalmente elaborada com todos os detalhes necessrios, de acordo com as regras da engenharia civil.

    No caso da programao, a representao da lgica de programao da forma algortmica.

  • O que um Algoritmo ?

    formalmente uma sequencia finita de passos que levam a execuo

    de uma tarefa. Podemos pensar em algoritmo como uma receita, uma

    sequencia de instrues que do cabo de uma meta especfica. Estas

    tarefas no podem ser redundantes, nem subjetivas na sua definio,

    devem ser claras e precisas.

    uma forma de representao textual da lgica de programao, que

    utiliza palavras como comandos. O programador deve conhecer as

    palavras predeterminadas da linguagem algortmica que pode utilizar e o

    que cada palavra representa. Dizemos que as palavras da linguagem

    algortmica so palavras escritas, como as palavras relacionadas a

    seguir: INICIO, FIM, LEIA , ESCREVA.

  • INICIO Usado para iniciar um algoritmo

    FIM Usado para finalizar um algoritmo

    LEIA Usado para entrada de dados

    ESCREVA Usado para exibir um resultado

    := Usado para atribuir um valor

  • E como precisamos detalhar essa sequncia de aes/passos, ento necessrio pensar com

    ordem.

    Quer dizer: usar a Lgica!

  • No dia a dia usamos algoritmos, mas osconhecemos como receitas.

    Ao fazer um bolo precisamos seguir uma receita.

    Exerccio: Vamos pensar numa receita de fritar umovo ou para se escovar os dentes.

  • 1. Levantar da mesa aps almoo;

    2. Dirigir-se ao banheiro;

    3. Pegar escova , creme dental e fio dental;

    4. Passar o fio dental entre os dentes;

    5. Por creme dental na escova;

    6. Comear a escovar os dentes de trs pra frente

    em movimentos circulares;

    7. Escovar a lngua;

    8. Enxaguar a boca ;

    9. Enxuga-se com a toalha boca e mos;

    10. Guarda escova , creme dental e fio dental;

    11. Sa do banheiro;

    12. Fim .

  • 1. Pega-se o ovo, margarina, sal e frigideira;

    2. Pe margarina e sal na frigideira;

    3. Leva-se a frigideira a fogo brando;

    4. Depois da margarina derretida quebra o ovo na panela;

    5. Espera assar o lado inferior do ovo;

    6. Em seguida vira o lado;

    7. Desliga o fogo;

    8. Pe o ovo no prato para saborear e

    9. Fim .

  • Situao Problema => Fazer um Bolo

    Dados de entrada => ingredientes (ovos, trigo,acar, fermento etc.)

    Processamento:

    Unte tabuleiro com manteiga;

    Misture fermento,trigo,ovos,leite;

    liquidificar a massa;

    Coloque a massa no tabuleiro;

    Ligue o forno;

    Coloque tabuleiro no forno;

    Aguarde at o bolo assar;

    Desligue o forno;

    Tire o bolo do forno;

    Saida de dados => Bolo Pronto

    S

    O

    L

    U

    O

  • Situao Problema => Tomar Banho; Dados de entrada => Pessoa suja;

    Processamento: 1. Tirar a roupa;2. Ir para debaixo do chuveiro;3. Abrir o registro;4. Ensaboar-se;5. Passar shampoo nos cabelos;6. Enxaguar todo o corpo;7. Fechar o registro;

    Dados de sada => Pessoa Limpa:

    S

    O

    L

    U

    O

  • Observao:

    Existem algumas diferenas entre o nosso algoritmo e aquele

    utilizado pelo computador ?

    SIM

    Nosso Computador

    Portugus Ingls

    Pseudocdigos Linhas de Cdigos

    reais e robustas

  • Exemplo Clssico: Algoritmo para a troca de uma

    lmpada utilizando o portugus coloquial.

    Embora essas atividades paream bvias,

    normalmente as realizamos inconscientemente

    para alcanar os nossos objetivos.

  • V. 1

    Pegar uma escada

    Pegar uma lmpada nova

    Posicionar a escada abaixo da lmpada a ser trocada

    Subir na escada

    Retirar a lmpada velha

    Colocar a lmpada nova

  • A sequenciao:

    uma forma de reger o fluxo das aes a serem

    executadas;

    A ordem importante;

    No exemplo da troca da lmpada a

    sequenciao linear;

  • E se a lmpada no estiver queimada?

    De acordo com o algoritmo que desenvolvemos a

    troca seria feita independentemente de a

    lmpada estar ou no queimada!

    Essa possibilidade no foi prevista.

    Podemos verificar se a lmpada acende antes de

    buscar a escada e a lmpada.

  • Para solucionar a possibilidade de a lmpada no estar queimada podemos refinar um pouco mais o nosso algoritmo anterior.

    Como?

    Efetuando um teste. Vamos l!

  • V. 2

    Acionar o interruptor;

    Se a lmpada no acender, ento:

    Pegar uma escada;

    Pegar uma lmpada nova;

    Posicionar a escada abaixo da lmpada a ser trocada;

    Subir na escada;

    Retirar a lmpada velha;

    Colocar a lmpada nova;

  • Note que agora estabelecemos uma condio ao

    nosso algoritmo:

    Se essa condio for verdadeira (???)

    efetuaremos a troca da lmpada, seguindo os

    prximos passos.

  • Se a condio for falsa (???) ento os passos

    relativos troca da lmpada no sero

    executados.

    Quer dizer, a lmpada, que est funcionando, no

    ser trocada.

  • Essa condio de teste que estabelecemos o

    chamado Teste de Seleo.

    Dada uma condio, ento as aes a serem

    executadas dependero da avaliao dessa

    condio (verdadeira ou falsa).

  • V. 2

    Acionar o interruptor;

    Se a lmpada no acender, ento:

    Pegar uma escada;

    Pegar uma lmpada nova;

    Posicionar a escada abaixo da lmpada a ser

    trocada;

    Subir na escada;

    Retirar a lmpada velha;

    Colocar a lmpada nova;

  • O algoritmo v.2 parece ser adequado, mas, e no

    caso de a lmpada nova estiver defeituosa?

    Podemos melhorar o nosso algoritmo ao ponto de

    ter que trocar a lmpada, quantas vezes for

    necessrio, at que funcione.

    Refinando...

  • Notemos que o algoritmo v.3 no especifica at

    quando o teste da lmpada ser feito.

    Refinando ainda mais o algoritmo v.3, porm,

    agora teremos que lidar com o problema descrito

    logo a cima.

  • Acionar o interruptor;

    Se a lmpada no acender, ento:

    Pegar uma escada;

    Pegar uma lmpada nova;

    Posicionar a escada abaixo da lmpada a ser trocada;

    Subir na escada;

    Retirar a lmpada velha;

    Colocar a lmpada nova;

    Se a lmpada no acender, ento:

    Retirar a lmpada queimada;

    Colocar outra lmpada nova;

    Se a lmpada no acender, ento:

    Retirar a lmpada queimada;

    Colocar outra lmpada nova;

    Se a lmpada no acender, ento:

    Retirar a lmpada queimada;

    Colocar outra lmpada nova;

    Se a lmpada no acender, ento:

    . . . at quando???

    V. 3

  • O trecho:

    Enquanto a lmpada no acender, faa:

    Retirar a lmpada queimada;

    Colocar uma lmpada nova;

    Condio de Parada

  • v.4

    Acionar o interruptor;

    Se a lmpada no acender, ento:

    Pegar uma escada;

    Pegar uma lmpada nova;

    Posicionar a escada abaixo da lmpada a ser trocada;

    Subir na escada;

    Retirar a lmpada velha;

    Colocar a lmpada nova;

    Enquanto a lmpada no acender, faa:

    Retirar a lmpada queimada;

    Colocar uma lmpada nova;

  • Notemos que, at o momento, definimos um

    algoritmo para a troca de apenas uma lmpada

    (na verdade, o conjunto: lmpada, soquete,

    interruptor), testando esse conjunto e trocando

    tantas lmpadas sejam necessrias at que o

    conjunto funcione.

    E se precisssemos trocar vrias lmpadas??

    Por exemplo 10...

  • V.5

    Ir at o interruptor do primeiro soquete;

    Enquanto a quantidade de soquetes testados for menor do que dez, faa:

    Acionar o interruptor

    Se a lmpada no acender, ento

    Pegar uma escada

    Pegar uma lmpada nova

    Posicionar a escada abaixo da lmpada a ser trocada

    Subir na escada

    Retirar a lmpada velha

    Colocar a lmpada nova

    Enquanto a lmpada no acender, faa:

    Retirar a lmpada queimada;

    Colocar uma lmpada nova;

    Ir at o interruptor do prximo soquete;

  • Lgica de programao a tcnica de encadear

    pensamentos para atingir determinado objetivo.

    Por que estamos estudando Lgica de

    Programao?

    R: para aprendermos a construir algoritmos

    coerentes e vlidos.

  • Um homem que pesa 100 quilos, e seus 2 filhos, um pesando 40

    quilos e o outro pesando 60, precisam atravessar o rio. O nico

    barco disponvel s pode carregar at 100 quilos de cada vez.

    Como eles podero chegar at a outra margem?

  • V.5

    Ir at o interruptor do primeiro soquete;

    Enquanto a quantidade de soquetes testados for igual a dez, faa:

    Acionar o interruptor Teste de seleo

    Se a lmpada no acender, ento

    Pegar uma escada

    Pegar uma lmpada nova

    Posicionar a escada abaixo da lmpada a ser trocada

    Subir na escada

    Retirar a lmpada velha

    Colocar a lmpada nova

    Enquanto a lmpada no acender, faa: Estrutura de parada

    Retirar a lmpada queimada;

    Colocar uma lmpada nova;

    Ir at o interruptor do prximo soquete;

    Estrutura de repetio

  • Qualquer pessoa pode resolver o problema de

    trocar a lmpada do seu modo.

  • Entretanto, o computador tradicional no

    tem conhecimento prvio nem adquire

    experincias, por isso devemos determinar

    detalhadamente as aes que desejamos que

    ele execute.

    Como?

  • Prevendo possveis obstculos e a forma de transp-

    los = descrever um sequncia finita de aes que

    garantam a soluo do problema.

    Algoritmos

  • algoritmo "somar"

    // Funo : Somar dois nmeros

    // Seo de Declaraes

    var

    numero1, numero2, soma: inteiro

    inicio

    // Seo de Comandos

    leia (numero1)

    leia (numero2)

    soma := numero1 + numero2

    escreva (soma)

    fimalgoritmo

  • REPRESENTAO E ARMAZENAMENTO DOS DADOS

    Na programao podemos representar e armazenar os dados de duas maneiras: Varivel ou Constante, conforme veremos a seguir:

    Varivel: Um programa pode ser executado diversas vezes, com a vantagem de que em cada execuo forneamos dados de entrada diferentes. Na codificao do programa, o dado representado mas o valor dele s ser fornecido quando o programa for executado. Como pode ser fornecido qualquer valor, esta representao do dado chamada de varivel. O programador deve ter o cuidado de declarar todas as variveis que vai utilizar em seu algoritmo, de acordo com o tipo de dado que a varivel vai representar. Os dados ocupam espao na memria do computador. A declarao de varivel reserva espao na memria do computador para os dados que a varivel representa.

  • Tipo de varivel Os tipos de variveis que iremos utilizar so:

    Caracter ou literal: Armazena dado textual, que normalmente

    no usado em operaes matemtica. Os dados literais so

    descritos entre aspas. Ex.: Carlos, Turma de Informtica

    Inteiro: Armazena dado numrico inteiro. Ex.: 150

    Real ou numrico: Armazena dado numrico com decimais.

    Ex.: 2.5, 125.65

    Lgico: Armazena apenas os valores lgicos. Os dados lgicos

    so descritos sem aspas e podem ser apenas VERDADEIRO ou

    FALSO.

  • Declarao de varivel

    O espao reservado pela declarao depende do tipo de dado

    declarado. O programador apenas faz a declarao e o sistema

    operacional encarrega-se de reservar o espao especfico.

    Sintaxe para declarao de variveis:

    var

    :

    Exemplo:

    var

    numero1 : real

    nome, cpf : literal

  • Constante: Quando em um algoritmo temos a necessidade de representar um dado que no sofrer alterao, ao invs de variveis temos uma constante.

    var

    nota1, nota2, media: real

    inicio

    // Seo de Comandos

    leia (nota1)

    leia (nota2)

    media:= (nota1 + nota2) / 2 CONSTANTE

    escreva (A media foi: , media)

    fim

  • Atribuio de dados

    A atribuio a ao de guardar um dado a uma varivel. J sabemos que o comando LEIA recebe o dado e guarda em uma varivel, mas na atribuio o dado no recebido da digitao de um usurio via teclado, mas conforme o programador. A atribuio ocorre atravs do comando := (dois pontos e igual sem espao entre eles). Quando encontramos este comando l-se Recebe.

    :=

    Exemplo: resposta := numero1 + numero2 numero := 125 nome := Joo

  • 1. Escreva um algoritmo para ler 3 nmeros inteiros e mostrar a

    soma deles.

    2. Escreva um algoritmo para ler 3 nmeros reais e mostrar

    soma deles.

    3. Escreva um algoritmo para ler 4 nmeros e mostrar: a) a

    soma do primeiro nmero com o segundo; b) a soma do

    terceiro nmero com o quarto; c) a soma do resultado do

    item a com o resultado do item b.

  • 4. Escreva um algoritmo para ler 2 nmeros para as variveis

    numero1 e numero2, inverter os valores das variveis e

    mostr-las na tela. Exemplo: Se o valor digitado para a

    varivel numero1 for 40 e o valor digitado para a varivel

    numero2 for 250, o processamento do algoritmo dever fazer

    com que a varivel numero1 fique com o valor 250 e a

    varivel numero2 fique com 40.