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

Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Pacc UAB
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
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çõesAdriano Teixeira de Souza
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 

Mais procurados (20)

Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Aula 7 - Expressões Aritméticas e Lógicas
Aula 7 - Expressões Aritméticas e LógicasAula 7 - Expressões Aritméticas e Lógicas
Aula 7 - Expressões Aritméticas e Lógicas
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
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
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 

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áriasAdriano Teixeira de Souza
 
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...Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)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
 
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çãoAécio Costa
 
Estruturas condicionais e de repetição
Estruturas condicionais e de repetiçãoEstruturas condicionais e de repetição
Estruturas condicionais e de repetiçãoEstela Muenchen Mentges
 
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/2014Pedro Guerreiro
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis 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_webRegis 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 (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
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 - 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
 
Pascal Tipos
Pascal TiposPascal Tipos
Pascal Tipos
 
Java 15 Jar
Java 15 JarJava 15 Jar
Java 15 Jar
 

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 - 2Adriano Teixeira de Souza
 
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_javaMirlem Pereira
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleçãoTácito Graça
 
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çãoProfessor Samuel Ribeiro
 
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çãoAlex Camargo
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionaisYuri Passos
 
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ãoEvelyneBorges
 
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çãoAndré Constantino da Silva
 
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...Os Fantasmas !
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxoprofwtelles
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControleGeorge Mendonça
 

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 - JMSAdriano 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 JavaAdriano 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çõesAdriano 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 ControleAdriano 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çãoAdriano 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 compostosAdriano 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 DadosAdriano 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âmicoAdriano 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çõesAdriano 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 CAdriano 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
 

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