Aula 02 - Algoritmos_introdução Aula 2

61
Lógica de Programação Data: 09/2014

description

Algoritmos

Transcript of Aula 02 - Algoritmos_introdução Aula 2

  • Lgica de Programao

    Data: 09/2014

  • Conceitos Veremos...

    Dados x Informao

    Estruturando informaes

    Programas

    Algoritmos

    Estruturas

  • Dado, Informao e Conhecimento

    Dado o componente bsico a partir do qual a informao

    criada

    Informao so dados inseridos em um context

    Contexto a situao que est sendo analisada

    A partir da informao vem o conhecimento, que permite

    tomar decises adequadas, trazendo vantagem

    competitiva

  • Dado

    entendido como um elemento da informao, um

    conjunto de letras, nmeros ou dgitos, que tomado

    isoladamente, no contm nenhum significado claro.

    Ex:

    A B A

    44

    17111963

    No transmite por si s nenhum conhecimento.

  • Dado

    Dado a estrutura fundamental sobre a qual um

    sistema de informao construdo.

    Preciso um critrio importante na avaliao da

    validade de um dado.

    O que Dado: so fatos, imagens ou sons que

    podem ou no ser teis para uma determinada

    tarefa.

  • Informao

    todo dado trabalhado, til, tratado, com valor

    significativo atribudo ou agregado a ele e com um

    sentido natural e lgico para quem usa esta informao.

    Ex:

    Curso: TCNICO DE INFORMTICA

    Perodo: 1

    Data: 05/09/2014

  • Informao

    O que Informao: Dados cuja forma e contedo so

    apresentados de uma maneira tal que so teis para uso

    no processo de tomada de deciso.

    A transformao de dados em informao freqentemente

    realizada atravs da apresentao dos dados em uma forma

    compreensvel ao usurio.

    Parte do processo de criar informao generalizado a

    partir da base de dados.

  • Informao

    UMA INFORMAO DEVE:

    Suprir a organizao com informaes valiosas

    (acessveis, completas, econmicas, relevantes, seguras,

    oportunas e verificveis).

    Para isso, deve usar filtros ou tcnicas de reduo,

    mostrando apenas o que interessa (transmitir informaes

    apenas para as pessoas certas, resumir as informaes, permitir

    a seletividade conforme a pessoa ou necessidade e eliminar

    informaes desnecessrias).

  • Conhecimento

    uma informao valiosa da mente humana resultante de reflexo, anlise, contextualizao e sntese.

    a informao trabalhada por pessoas e/ou por recursos computacionais, possibilitando a gerao de cenrios, simulaes e oportunidades.

    Ex:

    Relatrio da Evoluo das Vendas

    Demonstrativo Receitas e Despesas

    Quadro Comparativo da Curva de Aprendizagem

  • Conhecimento

    Uma combinao de instintos, idias, regras e

    procedimentos que guiam as aes e decises.

    O xito do conhecimento em explicar a forma como

    as coisas acontecem um critrio importante na

    validao desse conhecimento.

    Fornece a capacidade de resolver

    problemas, inovar e aprender baseando-se

    em experincias prvias.

  • Em resumo...

    INFORMAES BOAS E OUTRAS, NEM TANTO

    Nem toda informao valiosa.

    Com freqncia recebemos mais informao do que

    podemos tratar.

    O resultado pode ser uma doena da anti-informao:

    o Estresse que ameaa a organizao e seus

    empregados.

  • Em resumo...

    O Valor da informao

    Pode conferir poder, pois est presente em todas as

    atividades que envolvem processos, sistemas,

    recursos financeiros, tecnologias etc.

    medida em que se sedimenta, qualquer atividade

    pode ser realizada com custo menor, com menos

    recursos, em tempo reduzido e com resultado

    melhor.

  • Em resumo...

    Dado

    Simples observaes sobre o

    estado do mundo.

    Facilmente estruturado.

    Facilmente obtido por

    mquinas.

    Freqentemente quantificado.

    Facilmente transfervel.

    Exemplos:

    - Quantidade de produo,

    - Custo de matria-prima,

    - Nmero de empregados.

    Informao

    Dado dotado de relevncia e

    propsito.

    Requer unidade de anlise.

    Exige consenso em relao

    ao significado.

    Exige necessariamente a

    mediao humana.

    Exemplos:

    - Capacidade de produo

    - Custo de venda de produto

    - Produtividade do funcionrio

    Conhecimento

    Informao valiosa da

    mente humana.

    Inclui reflexo, sntese,

    contexto.

    De difcil estruturao.

    De difcil captura em

    mquinas.

    Freqentemente tcito.

    De difcil transferncia.

    Exemplos:

    - Incremento da produo

    abaixo da capacidade.

    - Venda com rentabilidade

    acima do padro.

    - Bnus pela produtividade

  • Conceitos

    Dado x Informao

    Estruturando informaes

    Programas

    Algoritmos

    Estruturas

  • Estruturando Informaes

    DadosInstrues de

    programas

    Exemplo de estruturao da informao:

    Catlogo telefnico

    Fichrio organizado alfabeticamente

    Objetivo: coletar, organizar, armazenar e recuperar dados

    e informaes de forma eficiente

  • de fundamental importncia a forma e a

    organizao do armazenamento da informao sob

    seus componentes, os dados, para que possamos

    ter eficincia nos processos de manipulao e

    tratamento da mesma.

    Estruturando Informaes

  • Conceitos

    Dados x Informao

    Estruturando informaes

    Programas

    Algoritmos

    Estruturas

  • Programas

    Seqncia de instrues codificadas em

    uma linguagem de programao

    Execuo

    Armazenado na memria do computador

    O desenvolvimento de programas visa a

    soluo de problemas computacionais atravs

    da manipulao de dados

    Entrada e sada

    Exemplos de Linguagens de Programao:

    COBOL, PASCAL, C, PHP, JAVA

  • Programas

    Etapas para soluo de um problema computacional

    1 Anlise do Problema

    Compreenso do enunciado do problema, entradas e

    sadas. Estudo dos mtodos existentes para a

    resoluo do problema.

    2Projeto (algoritmos e

    estrutura de dados)

    Desenvolvimento do algoritmo e definio das

    estruturas de dados, visando a construo de um

    programa que apresente melhor tempo de execuo

    e melhor aproveitamento de espao de memria

    3 ImplementaoCodificao do algoritmo em uma linguagem de

    programao (Pascal, C, Java, etc)

    4Verificao do

    Comportamento

    Avaliao do programa: grau de satisfao da soluo

    do problema e desempenho (memria e tempo).

  • Programas

    Etapas para soluo de um problema computacional

    Fase 1 Anlise do Problema

    Qual o problema??

    Fase 2 Projeto

    Como se resolve o problema ?

    Fase 3 Implementao

    Como viabilizar a soluo no ambiente disponvel ?

    Fase 4 Verificao de Comportamento

    A soluo contempla integralmente a especificao do problema ?

  • Conceitos

    Dados x Informao

    Estruturando informaes

    Programas

    Algoritmos

    Estruturas

  • Algoritmos

    Seqncia finita de instrues ou operaes bsicas,

    cuja execuo, em tempo finito, resolve um problema

    computacional, qualquer que seja sua instncia

    A seqncia de instrues ou operaes

    organizada segundo o que foi estabelecido durante a

    fase de anlise do problema

  • Algoritmos

    Representao em linguagem algortmica ou

    fluxogramas

    Fluxograma

    Cada operao bsica representada por uma figura

    Linguagem Algortmica

    Cada operao bsica descrita por uma construo de

    linguagem semelhante linguagem natural

    Regras comuns s linguagens de programao

  • Algoritmos

    Fluxograma Diagrama de Chapin PORTUGOL

    INCIO

    Se Media

    >= 7

    FIM

    Media (Nota1+Nota2) / 2

    Nota1,Nota2

    Reprovado

    Aprovado

    No

    Sim

    Leia Nota1

    Leia Nota2

    Media (Nota1 + Nota2) /2

    Se Media

    >= 7

    Imprima

    Aprovado

    Imprima

    Reprovado

    algoritmo CalculaMedia"

    var

    Nota1, Nota2, Media: Real

    inicio

    Leia Nota1

    Leia Nota2

    Media:=(Nota1+Nota2)/2

    Se Media >= 7 ento

    Imprima Aprovado

    Seno

    Imprima Reprovado

    fimalgoritmo

    V F

  • Conceitos

    Dados x Informao

    Estruturando informaes

    Programas

    Algoritmos

    Estruturas

  • Estruturas

    de Dados

    Uma estrutura de dados retrata as relaes lgicas existentes entre os dados (Entidades, ex: Aluno, Disciplinas).

    OperaesAs operaes manipulam e transformam as estruturas de dados (Incluir, Alterar, ...)

    Nvel Abstrato

    Estrutura de

    Representao

    utilizada para o armazenamento de dados na memria do computador (Formato dos Dados, ex: inteiro, real, ...)

    Nvel Fsico

    Estruturas de Dados

  • Perguntas?

  • ALGORITMOS

    Variveis, Operadores e Constantes

    01/10/2014

    Ubiratan Costa

  • Agenda

    Introduo

    Tipos de Resolues

    Variveis

    Dado e informao

    Operadores

    Exerccios

    Constantes

    Atividade

    01/10/2014Ubiratan Costa

  • Introduo

    O sucesso de um algoritmo ou programa depende da

    correta declarao de variveis e constantes.

    A utilizao de operadores fundamental, se utilizados

    erroneamente, o programa pode apresentar o famoso:

    erro de lgica.

    01/10/2014Ubiratan Costa

  • Tipos de Resolues

    Resolues Sequenciais neste tipo de resoluo, o

    problema simples, como uma nica forma de

    resoluo;

    Resolues condicionais so problemas que podem

    ter mais de um caminho para resoluo ou condies

    que podem apresentar mais de uma opo de escolha

    de acordo com um pr-requisito;

    Resolues com ponto de repetio neste tipo de

    resoluo, necessria a contagem de um determinado

    elemento.

    01/10/2014Ubiratan Costa

  • Exemplos de Expresses

    0.5 * base * altura

    (nota1 + nota2) / 2.0

    (temperatura > 0) e (quantidade < limite)

    4 mod 3 + 5

    A > B

  • Expresses

    Observar os smbolos usados para multiplicao (*) e

    diviso (/).

    Avaliar primeiro as operaes de maior prioridade, porexemplo (multiplicao e diviso).

    Se temos de escolher entre operadores de mesmaprioridade ento escolher o que est mais esquerda.

    Ex. 4/2*3 -- primeiro divide-se 4 por 2 e em seguida multiplica-seo resultado por 3, dando como resultado 6

    Caso queira trocar a prioridade use parnteses.

    No so permitidos outros smbolos para esta funo tais como {} e [ ].

  • Variveis

    Na sua declarao, devemos informar o tipo...

    Abrindo um parnteses (

    Nem toda linguagem de programao exige uma declarao de

    varivel tipada

    Fechando... )

    Tipadas: so aquelas em que a declarao do tipo

    obrigatria.

    Um tipo significa informar ao computador o que essa

    varivel poder receber e armazenar na memria do

    computador

    01/10/2014Ubiratan Costa

  • Variveis

    Como tipos podemos ter:

    Inteiros - para valores inteiros (nmeros positivos ou

    negativos - sem vrgulas);

    Caracter - para valores que recebero somente um

    caracter (letra ou nmero de 0 a 9 ou um sinal);

    Real - para valores decimais (nmeros com vrgulas);

    Lgico - para retornar os valores Falso ou

    Verdadeiro e, no caso de Java, retornar true ou false.

    01/10/2014Ubiratan Costa

  • Variveis

    Algumas regras na criao das variveis:

    Utilize nomes significativos para as variveis, de

    preferncia nomes curtos;

    Nunca utlize nomes para variveis comeando com

    nmeros, exemplo:

    1numero, o certo numero1 sem espaos e nem

    acento. No utilize caracteres especiais como: * , @

    ou {, etc...

    Em Java, letras maisculas so diferentes de letras

    minsculas, ou seja: A diferente de a. Portanto, nos

    programas, evite utilizar nomes de variveis com

    letras maisculas.

  • Constantes

    utilizada para armazenar informaes (valores)

    que sero imutveis durante toda a execuo de

    um programa

    A constante inicialmente uma varivel que, uma

    vez definida como sendo uma constante, o seu

    valor no poder ser modificado

  • Operadores

    So elementos utilizados nas expresses matemticas,

    lgicas e relacionais. A maioria dos operadores

    possuem a mesma representao nas linguagens de

    programao

    Eles so classificados em:

    Aritmticos

    Relacionais

    Lgicos

    01/10/2014Ubiratan Costa

  • Operadores

    Um caso especial o dos operadores relacionais,

    que permitem comparar pares de operandos de

    tipos de dados iguais, resultando sempre num valor

    lgico.

  • Operador de Atribuio

    Um operador de atribuio serve para atribuir umvalor a uma varivel.

    Em Algoritmo usamos o operador de atribuio: ou :=

    A sintaxe de uma atribuio :NomedaVariavel expressao

    A expresso localizada no lado direito do sinal deigual avaliada e armazenado o valor resultante navarivel esquerda.

    O nome da varivel aparece sempre sozinho, nolado esquerdo do sinal de igual deste comando.

  • Operador de Atribuio

    Todo comando de atribuio pode ser dividido emduas etapas: Avaliao da expresso;

    Armazenamento do resultado da avaliao na posio de memria representada pela varivel.

    Exemplo: a 35 * 6 + 2

    O comando acima faz com que o resultado da expresso(=212) seja armazenado na varivel a.

  • Operadores :: Aritmticos

    Chamamos de operadores aritmticos o conjunto

    de smbolos que representam operaes bsicas

    da matemtica

    Algoritmo Java C++ Funo Prioridade

    + + + Adio 2

    - - - Subtrao 2

    * * * Multiplicao 1

    / / / Diviso 1

    mod % % Resto da diviso 1

    div / / Quociente da diviso 1

  • Operadores :: Aritmticos

    1 / 4 resultado 0.25

    1 / 4 + 7.1 resultado 7.35 1a. Operao: 1 / 4 = 0.25

    2a. Operaco: 0.25 + 7.1 = 7.35

    (2 + 4)/(3 1) resultado 3 1a. Operao: 2 + 4 = 6

    2a. Operao: 3 1 = 2

    3a. Operao: 6 / 2 = 3

    10 mod3 resultado 1 O resto da diviso de 10 por 3 igual a 1.

  • Operadores :: Aritmticos

    Qual o resultado das expresses abaixo?

    1 / 3 * 3

    10 / 3 * 2

    3 + 6 / 3 - 1

    12 / 2 mod 4

  • Operadores :: Relacionais

    So utilizados para comparar valores

    Algoritmo Java C++ Funo

    > > > Maior que

    < < < Menor que

    = == == Igual

    >= >= >= Maior ou igual

  • Operadores :: Relacionais

    Considere a=3, b=7, total=200.0, mdia=8.1 e ano=2014

    a > b -- resultado falso

    total = 100.0 -- resultado falso

    mdia >= 7.0 -- resultado verdadeiro

    ano 2001 -- resultado verdadeiro

  • Operadores :: Relacionais Exerccios

    Considerando a=3, b=7, t=20.0 e m=8.1 qual oresultado das expresses?

    t 100.0

    (m + b)

  • Operadores :: Lgicos

    Operadores lgicos ou booleanos so usados

    para combinar expresses relacionais e resultam

    nos valores lgicos verdadeiro ou falso.

    Existem outros operadores lgicos, como porexemplo, os operadores ou-exclusivo*, ne (noe), nou (no ou).

    Estes outros operadores podem ser obtidos apartir dos trs j definidos (e, ou e no).

    *Ou Exclusivo - Se as duas condies forem diferentes, asentena verdadeira.

  • Operadores :: Lgicos

    Algoritmo Java C++ Funo Prioridade

    E && &&

    Ser verdadeiro o resultado

    somente se na comparao todos

    os valores forem verdadeiros

    3

    OU || ||

    Ser verdadeiro o resultado se

    um dos valores na comparao

    for verdadeiro

    2

    NO ! !Ser verdadeiro somente se a

    expresso for falsa1

  • Operadores :: Lgicos

    Na expresso

    (X=0) OU (X>=2) E (X=2) E (X

  • Operadores :: Lgicos

    Considerando a=falso, b=verdadeiro e c=falso, qual o resultado das expresses?

    a) a ou b e c

    b) (a e c) ou b

    c) a e (b ou c)

    d) no (a e b)

    e) a ou b ou c

  • Faa um algoritmo que receba dois nmeros e exiba o

    resultado da sua soma.

    01/10/2014Ubiratan Costa

    Exerccios

    Algoritmo "ex1"

    var

    x, y: inteiro

    inicio

    escreva("Digite o primeiro nmero: ")

    leia (x)

    escreva("Digite o segundo nmero: ")

    leia (y)

    escreva("A soma dos nmeros : ",x+y)

    fimalgoritmo

  • Operadores Caracteres

    Um exemplo de operao comum em vrias linguagens

    a concatenao de duas cadeias de caracteres.

    Smbolo + usado em algumas linguagens para

    representar esta operao.

    Considere as cadeias 'dia', ' ', 'da' e 'semana'

    A operao

    'dia' + ' ' + 'da' + ' ' + 'semana'

    Cria a cadeia

    'dia da semana'

  • Expresses mistas

    muito comum em algoritmos juntar operadores

    relacionais e lgicos em expresses.

    Estas expresses so geralmente do tipo:

    (nota1 > 7.0) ou (nota2 > 7.0)

    (salario > valor) e (ano > 2001)

    O resultado destas expresses do tipo lgico

    (verdadeiro ou falso).

  • Expresses mistas

    Considerando l1=5, l2=3, l3=4 e l4=7:

    (l1 > l3) e (l2 > l4)

    ((l1+2) = l3) ou (l2 = 7.0) e presente

  • Exerccios

    Faa um algoritmo que receba dois nmeros e exiba o

    resultado da sua soma.

    Algoritmo soma"

    var

    num1,num2: inteiro

    inicio

    escreval ("Digite o primeiro nmero: ")

    leia (num1)

    escreval("Digite o segundo nmero: ")

    leia (num2)

    escreva ("A soma dos nmeros : ", num1+num2)

    fimalgoritmo

  • 1 de outubro de 2014Fundamentos e Classificao 57

  • Exerccios

  • 1. Faa um algoritmo que receba dois nmeros e ao final

    mostre a soma, subtrao, multiplicao e a diviso

    dos nmeros lidos.

    2. Escrever um algoritmo para determinar o consumo

    mdio de um automvel sendo fornecida a distncia

    total percorrida pelo automvel e o total de

    combustvel gasto.

    01/10/2014Ubiratan Costa

    Exerccio para prxima

    aula.

  • 3. Elaborar 10 questes COM RESPOSTAS do material

    apresentado em sala;

    01/10/2014Ubiratan Costa

    Exerccio para prxima

    aula.

  • 61

    Obrigado:

    e-mail: [email protected]

    [email protected]

    Foco no Aluno Gente Meritocracia Qualidade Foco no Resultado Inovao Simplicidade tica

    1 de outubro de 2014Fundamentos e Classificao

    mailto:[email protected]