SlideShare uma empresa Scribd logo
1 de 25
Revisão de Algoritmos em Java

         Prof. Adriano Teixeira de Souza
   Na linguagem Java, a estrutura condicional
    simples possui a seguinte sintaxe:

    if ( <expressão> )
    {

        <comandos>

    }




                         Prof. Adriano Teixeira de Souza
   Na linguagem Java, a estrutura condicional
    composta possui a seguinte sintaxe:

    if ( <expressão> )
    {
       <comandos>
    }
    else
    {
       <comandos>
    }



                         Prof. Adriano Teixeira de Souza
   Quando temos estruturas condicionais presentes em
    blocos de comandos de outras estruturas
    condicionais, chamamos de estruturas aninhadas ou
    encadeadas:
    if ( <expressão> )
    {
          if ( <expressão> )
          {
                    <comandos>
          }
          else
          {
                    <comandos>
          }
    }
    else
    {
          if ( <expressão> )
          {
                    <comandos>
          }
          else
          {
                    <comandos>
          }
                                 Prof. Adriano Teixeira de Souza
    }
   Ambigüidade: na falta de chaves, a linguagem Java
    associa o else sempre ao último if.
   Portanto, para que a construção funcione como
    desejado, pode-se resolver o problema usando bloco.
    x = 2;
    if ( x < 2 )
        if ( x >= -3 )
           System.out.println(“n x está entre [-3;1]”);
    else System.out.println(“x é maior que 1”);
    ----------------------------------------------
    x = 2;
    if ( x < 2 )
    {
        if ( x >= -3 )
            System.out.println(“n x está entre [-3;1]”);
    }
    else System.out.println(“x é maior que 1”);



                             Prof. Adriano Teixeira de Souza
   O operador ternário ? possui a seguinte
    sintaxe:

    Expr1 ? Expr2 : Expr3

   Exp1 é avaliada:
    ◦ Se for verdadeira, Exp2 é avaliada se torna o seu valor da
      instrução.
    ◦ Se for falsa, Exp3 é avaliada se torna o seu valor da
      instrução.




                                 Prof. Adriano Teixeira de Souza
   Equivale ao seguinte código if-else:

    Expr1 ? Expr2 : Expr3

   É equivalente a:

    if (Exp1)
       Exp2;
    else
       Exp3;



                        Prof. Adriano Teixeira de Souza
   Faça um programa no qual o usuário entre
    com um par de valores (x, y)
   Eles representam as coordenadas de um
    ponto no plano
   Determinar:
    ◦ o quadrante ao qual pertence o ponto, ou se está
      sobre um dos eixos cartesianos




                            Prof. Adriano Teixeira de Souza
   Instrução de seleção de múltipla escolha
    CASE na linguagem Java:

    switch (<expressão_ou_valor>)
    {
       case Constante1:
             <comandos1>
             break;
       case Constante2:
             <comandos2>
             break;
       ...
       default:
             <comandosN>
    }
                        Prof. Adriano Teixeira de Souza
   Funcionamento do comando switch:
    ◦ Analisa a expressão ou valor.
    ◦ Caso seja igual a Constante1, então executa
      “comandos1” e vai para o final do switch.
    ◦ Caso seja Constante2, então executa
      “comandos2” e vai para o final do switch.
    ◦ Assim sucessivamente...
    ◦ Caso não seja nenhuma das alternativas, vai para
      o default, executa “comandosN” e encerra o
      switch.


                           Prof. Adriano Teixeira de Souza
   O parâmetro do switch deve ser int ou
    char, string ou enum.
   O valor após o case dever ser uma
    constante (não pode ser uma variável).
   Instrução break:
    ◦ Faz com que aconteça a saída imediata daquela
      estrutura (no caso, o comando switch).
    ◦ A execução do programa continua com a primeira
      instrução depois da estrutura.
    ◦ Sua ausência faz o controle passar ao próximo
      case, o que não é desejado.



                          Prof. Adriano Teixeira de Souza
   Os funcionários de uma empresa receberam
    um aumento de salário:
    ◦ Técnicos: 50%
    ◦ Gerentes: 30%
    ◦ Demais: 20%

   Escrever um programa que receba como
    entrada o salário atual e o cargo do
    funcionário, e apresente o novo salário após
    o aumento.



                         Prof. Adriano Teixeira de Souza
   Permite que um certo trecho de programa
    seja repetido ENQUANTO uma certa condição
    for verdadeira.

    while (<condição>)
    {
         <comandos_a_repetir>
    }
    <comandos_após_laço_while>


                       Prof. Adriano Teixeira de Souza
   Funcionamento:
    1.Testar a condição.
    2.Se a condição for falsa, então sair do laço.
    3.Se a condição for verdadeira, então executar cada
     um dos comandos do interior do laço.
    4.Após executar o último comando do laço while,
     voltar ao passo 1.




                            Prof. Adriano Teixeira de Souza
   O while deve ser usado sempre que:
    ◦ Não soubermos exatamente quantas vezes o laço
      deve ser repetido
    ◦ O teste deva ser feito antes de iniciar a execução de
      um bloco de comandos
    ◦ Houver casos em que o laço não deva ser repetido
      nenhuma vez antes do teste da condição

   Atenção:
    ◦ As variáveis usadas no teste devem ser inicializadas
      antes do teste.



                             Prof. Adriano Teixeira de Souza
   Permite que um certo trecho de programa
    seja repetido ATÉ QUE uma certa condição
    deixe de ser verdadeira:


    do
    {
      <comandos_a_repetir>
    } while (<condição>);

    <comandos_após_laço_do-while>

                        Prof. Adriano Teixeira de Souza
   Funcionamento:
    1.Executar os comando dentro do bloco do-while.
    2.Testar a condição.
    3.Se a condição for falsa, então sair do laço.
    4.Se a condição for verdadeira, então retornar para
     o passo 1.




                           Prof. Adriano Teixeira de Souza
   O comando do-while deve ser usado sempre
    que:
    ◦ Não soubermos exatamente quantas vezes o laço
      deve ser repetido

    ◦ O teste deva ser feito depois da execução de um
      bloco de comandos

    ◦ O bloco de comandos deve se executado pelo
      menos uma vez



                            Prof. Adriano Teixeira de Souza
   Ler um número e verificar se este é ou não
    um número primo.

   Dada uma dívida de 10 mil reais que cresce a
    juros de 2,5% ao mês e uma aplicação de
    1.500 reais com rendimento de 4% ao
    mês, escrever um algoritmo que determine o
    numero de meses necessários para pagar a
    dívida.




                         Prof. Adriano Teixeira de Souza
   Permite que um certo trecho de programa
    seja repetido um número determinado de
    vezes.

for (comandos_inic; condição_teste;
     incre/decremento)
{
  <comandos_a_repetir>
}

<comandos_após_laço_for>;


                       Prof. Adriano Teixeira de Souza
   Funcionamento:
    1.Executar os comandos de inicialização.
    2.Testar a condição.
    3.Se a condição for falsa então sair do laço for.
    4.Se a condição for verdadeira então executar os
     comandos que estão subordinados ao for.
    5.Executar os comandos de incremento/decremento.
    6.Voltar ao passo 2.


                             Prof. Adriano Teixeira de Souza
   Observações:

    ◦ Os comandos de inicialização são executados
      apenas uma vez.

    ◦ O contador é incrementado/decrementado sempre
      ao final da execução do bloco.

    ◦ O teste é feito sempre antes do início da execução
      do bloco de comandos.



                            Prof. Adriano Teixeira de Souza
   O comando for deve ser usado sempre que:

    ◦ Soubermos exatamente quantas vezes o laço deve
      ser repetido.

    ◦ O teste deva ser feito antes da execução de um
      bloco de comandos.

    ◦ Houver casos em que o laço não deva ser repetido
      nenhuma vez.



                            Prof. Adriano Teixeira de Souza
   Comandos for aninhados
    ◦ Um comando for pode ser utilizado dentro de
      outro comando for.
    ◦ Cuidados devem ser tomados para não aumentar o
      tempo de execução do algoritmo.




                          Prof. Adriano Teixeira de Souza
   Desenvolver 3 programas, cada programa
    deverá imprimir uma das figuras abaixo
**********           *****              **********
*********            ****               **** ****
********             ***                ***    ***
*******              **                 **      **
******               *                  *        *
*****                *                  *        *
****                 **                 **      **
***                  ***                ***    ***
**                   ****               **** ****
*                    *****              **********


                       Prof. Adriano Teixeira de Souza

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
samuelthiago
 

Mais procurados (20)

Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Algoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetiçãoAlgoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetição
 
Informática básica-01
Informática básica-01Informática básica-01
Informática básica-01
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e SaídaAula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e Saída
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 

Destaque

Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Adriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Adriano Teixeira de Souza
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
Regis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
Regis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Regis Magalhães
 

Destaque (20)

Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Refinamento e boas práticas de programação
Refinamento e boas práticas de programaçãoRefinamento e boas práticas de programação
Refinamento e boas práticas de programação
 
JAVA - Controle de programa
JAVA - Controle de programaJAVA - Controle de programa
JAVA - Controle de programa
 
Estruturas condicionais e de repetição
Estruturas condicionais e de repetiçãoEstruturas condicionais e de repetição
Estruturas condicionais e de repetição
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 

Semelhante a Estrutura de Dados em Java (Revisão de Algoritimos em Java)

Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2
Adriano Teixeira de Souza
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
Tácito Graça
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
EvelyneBorges
 
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de RepetiçãoAula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
André Constantino da Silva
 

Semelhante a Estrutura de Dados em Java (Revisão de Algoritimos em Java) (20)

Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2
 
EstrutControleC.pdf
EstrutControleC.pdfEstrutControleC.pdf
EstrutControleC.pdf
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionais
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
 
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de RepetiçãoAula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08
 
modulo1.pdf
modulo1.pdfmodulo1.pdf
modulo1.pdf
 
Cap08
Cap08Cap08
Cap08
 
Cap08
Cap08Cap08
Cap08
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxo
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de Controle
 
Java3
Java3Java3
Java3
 

Mais de Adriano Teixeira de Souza

Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
Adriano Teixeira de Souza
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
Adriano Teixeira de Souza
 

Mais de Adriano Teixeira de Souza (16)

Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de Exceções
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de DadosParadigmas de Linguagens de Programação - Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação - Tipos Abstratos de Dados
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 

Último

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Estrutura de Dados em Java (Revisão de Algoritimos em Java)

  • 1. Revisão de Algoritmos em Java Prof. Adriano Teixeira de Souza
  • 2. Na linguagem Java, a estrutura condicional simples possui a seguinte sintaxe: if ( <expressão> ) { <comandos> } Prof. Adriano Teixeira de Souza
  • 3. Na linguagem Java, a estrutura condicional composta possui a seguinte sintaxe: if ( <expressão> ) { <comandos> } else { <comandos> } Prof. Adriano Teixeira de Souza
  • 4. Quando temos estruturas condicionais presentes em blocos de comandos de outras estruturas condicionais, chamamos de estruturas aninhadas ou encadeadas: if ( <expressão> ) { if ( <expressão> ) { <comandos> } else { <comandos> } } else { if ( <expressão> ) { <comandos> } else { <comandos> } Prof. Adriano Teixeira de Souza }
  • 5. Ambigüidade: na falta de chaves, a linguagem Java associa o else sempre ao último if.  Portanto, para que a construção funcione como desejado, pode-se resolver o problema usando bloco. x = 2; if ( x < 2 ) if ( x >= -3 ) System.out.println(“n x está entre [-3;1]”); else System.out.println(“x é maior que 1”); ---------------------------------------------- x = 2; if ( x < 2 ) { if ( x >= -3 ) System.out.println(“n x está entre [-3;1]”); } else System.out.println(“x é maior que 1”); Prof. Adriano Teixeira de Souza
  • 6. O operador ternário ? possui a seguinte sintaxe: Expr1 ? Expr2 : Expr3  Exp1 é avaliada: ◦ Se for verdadeira, Exp2 é avaliada se torna o seu valor da instrução. ◦ Se for falsa, Exp3 é avaliada se torna o seu valor da instrução. Prof. Adriano Teixeira de Souza
  • 7. Equivale ao seguinte código if-else: Expr1 ? Expr2 : Expr3  É equivalente a: if (Exp1) Exp2; else Exp3; Prof. Adriano Teixeira de Souza
  • 8. Faça um programa no qual o usuário entre com um par de valores (x, y)  Eles representam as coordenadas de um ponto no plano  Determinar: ◦ o quadrante ao qual pertence o ponto, ou se está sobre um dos eixos cartesianos Prof. Adriano Teixeira de Souza
  • 9. Instrução de seleção de múltipla escolha CASE na linguagem Java: switch (<expressão_ou_valor>) { case Constante1: <comandos1> break; case Constante2: <comandos2> break; ... default: <comandosN> } Prof. Adriano Teixeira de Souza
  • 10. Funcionamento do comando switch: ◦ Analisa a expressão ou valor. ◦ Caso seja igual a Constante1, então executa “comandos1” e vai para o final do switch. ◦ Caso seja Constante2, então executa “comandos2” e vai para o final do switch. ◦ Assim sucessivamente... ◦ Caso não seja nenhuma das alternativas, vai para o default, executa “comandosN” e encerra o switch. Prof. Adriano Teixeira de Souza
  • 11. O parâmetro do switch deve ser int ou char, string ou enum.  O valor após o case dever ser uma constante (não pode ser uma variável).  Instrução break: ◦ Faz com que aconteça a saída imediata daquela estrutura (no caso, o comando switch). ◦ A execução do programa continua com a primeira instrução depois da estrutura. ◦ Sua ausência faz o controle passar ao próximo case, o que não é desejado. Prof. Adriano Teixeira de Souza
  • 12. Os funcionários de uma empresa receberam um aumento de salário: ◦ Técnicos: 50% ◦ Gerentes: 30% ◦ Demais: 20%  Escrever um programa que receba como entrada o salário atual e o cargo do funcionário, e apresente o novo salário após o aumento. Prof. Adriano Teixeira de Souza
  • 13. Permite que um certo trecho de programa seja repetido ENQUANTO uma certa condição for verdadeira. while (<condição>) { <comandos_a_repetir> } <comandos_após_laço_while> Prof. Adriano Teixeira de Souza
  • 14. Funcionamento: 1.Testar a condição. 2.Se a condição for falsa, então sair do laço. 3.Se a condição for verdadeira, então executar cada um dos comandos do interior do laço. 4.Após executar o último comando do laço while, voltar ao passo 1. Prof. Adriano Teixeira de Souza
  • 15. O while deve ser usado sempre que: ◦ Não soubermos exatamente quantas vezes o laço deve ser repetido ◦ O teste deva ser feito antes de iniciar a execução de um bloco de comandos ◦ Houver casos em que o laço não deva ser repetido nenhuma vez antes do teste da condição  Atenção: ◦ As variáveis usadas no teste devem ser inicializadas antes do teste. Prof. Adriano Teixeira de Souza
  • 16. Permite que um certo trecho de programa seja repetido ATÉ QUE uma certa condição deixe de ser verdadeira: do { <comandos_a_repetir> } while (<condição>); <comandos_após_laço_do-while> Prof. Adriano Teixeira de Souza
  • 17. Funcionamento: 1.Executar os comando dentro do bloco do-while. 2.Testar a condição. 3.Se a condição for falsa, então sair do laço. 4.Se a condição for verdadeira, então retornar para o passo 1. Prof. Adriano Teixeira de Souza
  • 18. O comando do-while deve ser usado sempre que: ◦ Não soubermos exatamente quantas vezes o laço deve ser repetido ◦ O teste deva ser feito depois da execução de um bloco de comandos ◦ O bloco de comandos deve se executado pelo menos uma vez Prof. Adriano Teixeira de Souza
  • 19. Ler um número e verificar se este é ou não um número primo.  Dada uma dívida de 10 mil reais que cresce a juros de 2,5% ao mês e uma aplicação de 1.500 reais com rendimento de 4% ao mês, escrever um algoritmo que determine o numero de meses necessários para pagar a dívida. Prof. Adriano Teixeira de Souza
  • 20. Permite que um certo trecho de programa seja repetido um número determinado de vezes. for (comandos_inic; condição_teste; incre/decremento) { <comandos_a_repetir> } <comandos_após_laço_for>; Prof. Adriano Teixeira de Souza
  • 21. Funcionamento: 1.Executar os comandos de inicialização. 2.Testar a condição. 3.Se a condição for falsa então sair do laço for. 4.Se a condição for verdadeira então executar os comandos que estão subordinados ao for. 5.Executar os comandos de incremento/decremento. 6.Voltar ao passo 2. Prof. Adriano Teixeira de Souza
  • 22. Observações: ◦ Os comandos de inicialização são executados apenas uma vez. ◦ O contador é incrementado/decrementado sempre ao final da execução do bloco. ◦ O teste é feito sempre antes do início da execução do bloco de comandos. Prof. Adriano Teixeira de Souza
  • 23. O comando for deve ser usado sempre que: ◦ Soubermos exatamente quantas vezes o laço deve ser repetido. ◦ O teste deva ser feito antes da execução de um bloco de comandos. ◦ Houver casos em que o laço não deva ser repetido nenhuma vez. Prof. Adriano Teixeira de Souza
  • 24. Comandos for aninhados ◦ Um comando for pode ser utilizado dentro de outro comando for. ◦ Cuidados devem ser tomados para não aumentar o tempo de execução do algoritmo. Prof. Adriano Teixeira de Souza
  • 25. Desenvolver 3 programas, cada programa deverá imprimir uma das figuras abaixo ********** ***** ********** ********* **** **** **** ******** *** *** *** ******* ** ** ** ****** * * * ***** * * * **** ** ** ** *** *** *** *** ** **** **** **** * ***** ********** Prof. Adriano Teixeira de Souza