lógica de programação parte 1 compacta

Upload: vinicius-morais-breda

Post on 07-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    1/18

    Resumo - Lógica de Programação Parte I

    Algoritmo: É uma sequência finita de passos formalmente definidos para resolução de um problema ou tarefa;

    Diagrama de blocos: É uma ferramenta usada para descrever o método e a sequência do

     processo dos planos num computador através de símbolos geométricos.Pseudocódigo  : também chamado de português estruturado, é uma linguagem que une oformalismo das linguagens de programação facilidade de compreensão da linguagem natural.

    Linguagem de programação: é uma linguagem formal que permite a programação decomputadores.

    Estrutura

    !iagrama de "locos

    Variáeis

    #ma vari$vel é uma posição nomeada de mem%ria, que é usada para guardar um valor que pode ser modificado pelo programa. &bai'o segue a sinta'e de declaração de vari$veis, tanto uma por linha, como para mais de uma.

    !!!

    In"cio

    #im

    (seudoc%digo

    Algoritmo )*ome do algorítmo+

    In"cio

    $

    #im

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    !!!

    return ,

    .

    !eclaração de vari$vel em

    (seudoc%digoAlgoritmo )*ome do algorítmo+

    In"cio

    ar )tipo+ )nome+;

      )tipo+ )nome+, )nome+;

    $

    #im

    !eclaração de vari$vel em

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    )tipo+ )nome+;

    )tipo+ )nome+, )nome+;

    !!!

    return ,

    .

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    2/18

    -egras para a nomenclatura das vari$veis:

    ipos de vari$veis:

    Pseudocódigo / E0emplo

    /nteiro int 012; 2; 341-eal float 012.31; 2.5; 341.67

    aractere char 8a8; 898

    adeia uma frase ou palavra

    also

    ?@ais informaçAes sobre vari$veis em na p$gina 15 do arquivo /nfoB.

    /onstantes

    Cimilar a uma vari$vel, porém com valor pré0definido que não pode ser modificado por nenhuma função de um programa.

    1omenclatura: !eve obedecer s mesmas regras que os nomes de vari$veis. &penas paraficar f$cil a diferenciação entre vari$veis e constantes nos programas, aconselha0se que todas asletras dos nomes das constantes seDam maiEsculas.

    !eclaração de constante em(seudoc%digo

    Algoritmo )*ome do algorítmo+

    In"cio

    const )tipo+ )nome+ F )valor+;

    $

    #im

    !eclaração de constante em

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    const )tipo+ )nome+ F )valor+;

    !!!return ,

    .

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    3/18

    /omando de atribuição

    Cerve para dar um valor para uma vari$vel ou uma constante. (ossui a seguinte sinta'e:

    /omando de 2a"da de Dados

    &través da utili9ação do comando de saída de dados conseguimos e'ibir mensagens ou valores para o usu$rio de nossos programas. É através desse comando que nosso algoritmo consegue secomunicar com os usu$rios para solicitar a entrada de dados ou para fornecer saídas de dados.

    G comando de saída de dados e'ibe no monitor valores de constantes, vari$veis ou e'pressAes.

    &tribuição de valores em(seudoc%digo

    Algoritmo )*ome do algorítmo+

    In"cio

    ar inteiro minhaHvar;

    minhaHvar F B14;

    minhaHvar B14;

    $

    #im3(ode ser usada qualquer uma dassinta'es acima.

    !eclaração de vari$vel em %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    int minhaHvar;

    minhaHvar F B14;

    !!!

    return ,

    .

    )I'pressão+

    !iagrama de"locos

    Caída de dados em (seudoc%digo

    escrea))e'pressão+, )vari$vel+*;

    escrea))e'pressãoB+, )vari$velB+, e'pressão1+, )vari$vel1+*;

    Caída de dados em

    print4))e'pressão+, )vari$vel+*;

    print4))e'pressão+,)vari$vel+, )vari$vel1+*;

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    4/18

    E0emplo:

    Caída de dados em (seudoc%digo

    Algoritmo )*ome do algorítmo+

    In"cio

    ar inteiro vB, v1;vB F B14;

    v1 F 536;

    escrea)#ma vari$vel tem valor: , vB, . I a outra: , v1, .*

    #im

    Caída de dados em

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    int vB, v1;

    vB F B14;

    v1 F 536;

    print4)#ma v$ri$vel tem valor: Jd Kn I a outra: Jd., vB, v1*return ,

    .

    In"cio

    vB F B14v1 F 536

    #ma vari$vel tem valor: vB.I a outra: v1.

    #im

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    5/18

    & função print4 , como pode ser visto no e'emplo, possui alguns caracteres de escape Lnoe'emplo KnM, e caracteres de controle Lno e'emplo JdM. &s tabelas a seguir mostram os caracteresdisponíveis e sua função.

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    6/18

    /omando de Entrada de Dados

    >requentemente, na construção de algoritmos, precisamos solicitar que usu$rios informem, por meio do teclado, alguns valores a serem utili9ados durante a e'ecução. (or e'emplo, se fi9ermosum algoritmo para calcular a média das notas de um aluno, precisaremos solicitar quais foram asnotas, para depois calcularmos a média.

    G comando de entrada de dados ser$ respons$vel pela leitura e arma9enamento desses dadosem uma vari$vel.

    E0emplo

    Im devemos especificar o tipo de vari$vel que ser$ lida através dos especificadores de formato,como Jd e Jf no e'emplo. G nome das vari$veis deve vir precedido do caractere N.

    !iagrama de"locos

    vB, v1, v4

    Intrada de dados em (seudoc%digo

    leia))vari$vel+*;

    leia))vari$vel1+, )vari$vel4+*;

    Intrada de dados em

    scan4))e'pressão de entrada+, N)vari$vel+*;

    scan4))e'pressão de entrada+, N)vari$ve1+, N)vari$vel4+*;

    Intrada de dados em (seudoc%digo

    Algoritmo )*ome do algorítmo+

    In"cio

    ar inteiro vB, v1;

      real v4;leia)vB*

    leia)v1, v4*;

    #im

    Intrada de dados em

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +int vB, v1;

    4loat v4;

    scan4)Jd, NvB*

    scan4)Jd Jf, Nv1, Nv4*;

    return ,

    .

    In"cio

    #im

    vB

    v1, v4

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    7/18

    5peradores Aritm6ticos

    Gperador Gperação @atem$tica Oierarquia de Gperação

    L M (arênteses BP

    ? @ultiplicação 1P

    Q !ivisão 1P

    J -esto da divisão 1P

    R Coma 4P

    0 Cubtração 4P

    -esolve0se primeiro as e'pressAes contidas nos parênteses mais internos, seguindo a ordem de

     precedência entre operadores, passando depois para os parênteses mais e'ternos. I'emplo:nota1 + (nota2 + nota3) / 2

    (rimeiro somamos nota1 a nota4; o resultado é divido por 1 e s% depois somamos com nota B.

    Desio /ondicional#tili9ado quando queremos verificar alguma condição para determinar a e'ecução de certo

     pedaço do c%digo. (odem ser divididos em desvio condicional simples, composto e encadeados.Cegue abai'o do diagrama de blocos dos três tipos de desvios condicionais.

    !esvio ondicional Cimples !esvio ondicional omposto

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    8/18

    omo pode0se perceber, o desvio condicional encadeado é simplesmente uma composição dev$rios desvios condicionais simples e compostos encadeados um dentro do outro.

    !esvio ondicional Incadeado

    !esvio condicional Cimples em (seudoc%digo

    se L)condição+M então

    &instruçAes para condição verdadeira+4im7se

    )instruçAes para condição falsa ou ap%s ser verdadeira+

    !esvio condicional omposto em (seudoc%digo

    se L)condição+M então

    &instruçAes para condição verdadeira+

    senão

    )instruçAes para condição falsa+

    4im7se

    )instruçAes ap%s a a condição verdadeira ou verdadeira+

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    9/18

    !esvio condicional Incadeado em (seudoc%digo

    se L)condiçãoB+M então  )instruçAes para condiçãoB verdadeira+senão  se L)condição1+M então  )instruçAes para condição1 verdadeira e condiçãoB falsa+  senão  )instruçAes para condiçãoB e condição1 falsas+  4im7se4im7se

    !esvio condicional Cimples em

    i4 )&condição+* +

    &instruçAes para condição verdadeira+.

    )instruçAes para condição falsa ou ap%s ser verdadeira+

    !esvio condicional omposto em

    i4 ))condição+*+

    &instruçAes para condição verdadeira+

    .

    else +)instruçAes para condição falsa+

    .

    )instruçAes ap%s a a condição verdadeira ou verdadeira+

    !esvio condicional Incadeado em

    i4 L)condiçãoB+M +  )instruçAes para condiçãoB verdadeira+.

    else +  i4 L)condição1+M +  )instruçAes para condição1 verdadeira e condiçãoB falsa+  .  else +  )instruçAes para condiçãoB e condição1 falsas+  ..

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    10/18

    5peradores Relacionais: & estrutura condicional implica na utili9ação de condiçAes paraverificar o estado de uma determinada vari$vel quanto a verdadeiro ou falso. Istas verificaçAes sãoefetuadas com a utili9ação dos chamados operadores relacionais, conforme a tabela:

    Címbolo Cignificado I'emplo

    FF /gual a a FF b

    SF !iferente de a SF 2

    + @aior que La + bM

    ) @enor que L La R bM ) cM

    +F @aior ou igual a a +F b

    )F @enor ou igual a a )F 2

    5peradores Lógicos

    (ode ser necess$rio, em algum momento, trabalhar com o relacionamento de duas ou maiscondiçAes ao mesmo tempo na mesma instrução se, efetuando desta forma testes mEltiplos. (araestes casos é necess$rio trabalhar com a utili9ação dos operadores l%gicos, também conhecidoscomo operadores booleanos. Gs operadores l%gicos mais comuns são: E8 59 e 15.

    G operador E fa9 com que o resultado da operação seDa verdadeiro se, e somente se, todas ascondiçAes forem verdadeiras.

    G operador 59  fa9 com que o resultado da operação seDa verdadeiro se, e somente se, pelomenos uma das condiçAes for verdadeira.

    G operador 15 inverte o resultado de uma codição ou operação.

    & tabela verdade abai'o mostra o resultado desses operadores para todas as possibilidades deduas condiçAes & e ", bem como a sinta'e em pseudoc%digo e .

    /ondição A /ondição ;

    5peração

    (seudoc%digo & E " & 59 " 15 A

    & NN " & TT " alsa

    =erdadeira >alsa >alsa =erdadeira >alsa

    >alsa =erdadeira >alsa =erdadeira =erdadeira>alsa >alsa >alsa >alsa =erdadeira

    E0emplo do uso de 5peradores Lógicos

    (seudoc%digo

    se ) a +F b E  b )F c * então i4 ) a +F b == b )F c* +

    se ) a FF b 59 d ) c * então i4 ) a FF b >> d ) c * +

    se ) 15) L a FF bM 59 L a FF cM M * então i4 ) 

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    11/18

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    12/18

    Laços de Repetição ou Loopings

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    13/18

    e'ecutado novamente. & estrutura repita sempre ir$ processar um conDunto deinstruçAes no mínimo uma ve9. (ara a estrutura repita, um conDunto deinstruçAes é e'ecutado enquanto a condição se mantém verdadeira.

    • Para: rata0se de uma estrutura feita para facilitar a implementação de loopings

    em que se e'igem contadores. Gu seDa, é uma estrutura especialmentedesenvolvida para loopings que possuem um nEmero finito de e'ecuçAes.!ei'ando as estruturas do tipo en?uanto e repita para os loopings em que nãose conhece de antemão o nEmeo de ve9es que o looping dever$ ser e'ecutado.& estrutura para tem o seu funcionamento controlado por uma vari$veldenominada contador. Cendo assim, poder$ e'ecutar um determinado conDuntode instruçAes um dterminado nEmero de ve9es.

    /nstruçAes e'ecutadasenquanto a condição

    é verdadeira

    ondição>

    ondição

    /nstruçAes e'ecutadasenquanto a condição

    é falsa=

    =

    >

    varHcontador F valorHinicial,condição, e'pressãoHdeHincremento

    /nstruçAes

    Estrutura En?uanto

    Estrutura Repita

    Estrutura Para

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    14/18

    Istrutura Inquanto em (seudoc%digo

    en?uanto L)condição+M 4aça

    )instruçAes e'ecutadas dentro do looping+4im7en?uanto

    )instruçAes ap%s sair do looping+

    Istrutura -epita em (seudoc%digo

    repita

    )instruçAes e'ecutadas dentro do looping+

    en?uanto L)condição+M

    )instruçAes ap%s sair do looping+

    Istrutura (ara em (seudoc%digo

    para )vari$vel+ F )valorHinicial+, )condição+, )e'pressãoHdeHincremento+ 4aça

    )instruçAes e'ecutadas dentro do looping+

    4im7para

    )instruçAes ap%s sair do looping+

    Istrutura Inquanto em @'ile )&condição+* +

    )instruçAes e'ecutadas dentro do looping+

    .

    )instruçAes ap%s sair do looping+

    Istrutura -epita em

    do +

    )instruçAes e'ecutadas dentro do looping+

    . @'ile L)condição+M;

    )instruçAes ap%s sair do looping+

    Istrutura (ara em

    4or ))vari$vel+ F )valorHinicial+; )condição+; )e'pressãoHdeHincremento+* +

    )instruçAes e'ecutadas dentro do looping+

    .

    )instruçAes ap%s sair do looping+

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    15/18

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    16/18

    • #tili9ando a estrutura repita:&lgoritmo:

    B U riar uma vari$vel para servir como contador com valor inicial B;1 U a9er - F V ? 4;5 U &presentar o valor de -;3 U &crescentar RB a vari$vel contador, definida no passo B;6 U -epetir os passos 1, 4, 5 e 3 enquanto o contador for menor ou igual a 3.

    (seudoc%digo

    Algoritmo I'emplo

    In"cio

    ar inteiro cont, V, -;

    en?uanto L cont )F 3 M 4aça

      escrea)!igite o valor de V.*;

      leia)V*;

      - F V ? 4;

      escreaL-M;

      cont F cont R B;

    4im7en?uanto

    #im

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    int cont, V, -;

    @'ile L cont )F 3M

    X

      print4 )!igite o valor de V.Kn*;

      scan4 )Jd, NV*;

      - F V ? 4;

      print4  LJd Kn, -M;

      cont F cont R B;.

    return ,

    .

    /nício ont F B

    ont )F 3

    !igite um valor para V

    V

    - F V ? 4

    ont F ont R B >im

      C

     *

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    17/18

    • #tili9ando a estrutura para:&lgoritmo:B U !efinir um contador variando de B a 3;1 U a9er - F V ? 4;5 U &presentar o valor de -;3 U -epetir os passos 1, 4, e 5 até que o contador seDa encerrado.

    (seudoc%digo

    Algoritmo I'emplo

    In"cio

    ar inteiro cont, V, -;

    repita

      escrea)!igite o valor de V.*;

      leia)V*;

      - F V ? 4;

      escreaL-M;

      cont F cont R B;

    en?uanto Lcont )F 3M

    #im

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    int cont, V, -;

    do

    X

      print4 )!igite o valor de V.Kn*;

      scan4 )Jd, NV*;

      - F V ? 4;

      print4  LJd Kn, -M;

      cont F cont R B;. @'ile Lcont )F 3M;

    return ,

    .

    /nício

    !igite um valor para V

    V

    - F V ? 4

    >im

    cont F B, cont )F3,

    cont F cont R B

  • 8/18/2019 Lógica de Programação Parte 1 Compacta

    18/18

    (seudoc%digo

    Algoritmo I'emplo

    In"cio

    ar inteiro cont, V, -;

    para cont FB, cont )F 3, cont F cont R B 4aça

      escrea)!igite o valor de V.*;

      leia)V*;

      - F V ? 4;

      escreaL-M;

    4im7para

    #im

    %include&stdlib!'(

    %include&stdio!'(

    int main)* +

    int cont, V, -;

    4or Lcont F B; cont )F 3; cont F cont R BM

    X

      print4 )!igite o valor de V.Kn*;

      scan4 )Jd, NV*;

      - F V ? 4;

      print4  LJd Kn, -M;

    .return ,

    .