terça-feira, 22 de julho de 2014

Lista de exercícios de estruturas de repetições - 34 - Faça um algoritmo que calcule o mínimo multiplicador comum entre dois números inteiros positivos a serem lidos.

//Questao34
Faça um algoritmo que calcule o mínimo multiplicador comum entre dois números inteiros positivos a serem lidos.


import java.util.Scanner;


public class Questao34 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

int n1, n2, soma, aux;

System.out.println("Digite o primeiro numero");
n1 = leia.nextInt();

System.out.println("Digite o segundo numero");
n2 = leia.nextInt();

if ( n1 < n2 ) {
aux = n1;
n1 = n2;
n2 = aux;
}

soma = n1;

while ( soma % n2 != 0 ) {
soma += n1;
}

System.out.println( "MMC " + soma);
}

}

Lista de exercícios de estruturas de repetições - 33 - Faça um algoritmo que calcule o máximo divisor comum (MDC) entre dois números inteiros positivos a serem lidos.

//Questao33
Faça um algoritmo que calcule o máximo divisor comum (MDC) entre dois números inteiros positivos a serem lidos.

import java.util.Scanner;


public class Questao33 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

int n1, n2, resto, aux;

System.out.println("Digite o primeiro numero");
n1 = leia.nextInt();

System.out.println("Digite o segundo numero");
n2 = leia.nextInt();

if ( n1 < n2 ) {
aux = n1;
n1 = n2;
n2 = aux;
}

resto = n1 % n2;

while ( resto != 0 ) {
n1 = n2;
n2 = resto;
resto = n1 % n2;
}

System.out.println( "MDC " + n2);
}


}

Lista de exercícios de estruturas de repetições - 32 - Faça um algoritmo que entre com um número e verifique se ele é triangular. Um número é triangular quando o resultado do produto de três números consecutivos. Exemplo 24 = 2 * 3 * 4.

//Questao32
Faça um algoritmo que entre com um número e verifique se ele é triangular. Um número é triangular quando o resultado do produto de três números consecutivos.
Exemplo 24 = 2 * 3 * 4.

import java.util.Scanner;


public class Questao32 {

public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

int n, a, b, c, t = 0, i = 0;
boolean isTriangular = true;

String msg = "Digite um numero inteiro positivo";
System.out.println( msg );
n = leia.nextInt();

while ( t < n ) {
a = i + 1;
b = i + 2;
c = i + 3;

t = ((a * b) * c);

if ( t == n ) {
isTriangular = true;
} else {
isTriangular = false;
break; /// se nao for já forço a parada do laço! não necessito continuar!
}
i++;
}

System.out.println("o numero "
+ n + 
( isTriangular ? " e " : " nao e ") + "triangular" );

}

}

Lista de exercícios de estruturas de repetições - 31 - Faça um algoritmo para entrar vários números e verificar se eles são quadrados perfeitos. O algoritmo deve terminar quando se digitar um número menor ou igual a 0. E verificar quantos desses números eram primos.

//Questao31
Faça um algoritmo para entrar vários números e verificar se eles são quadrados perfeitos. O algoritmo deve terminar quando se digitar um número menor ou igual a 0. E verificar quantos desses números eram primos.

import java.util.Scanner;

public class Questao31 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

boolean isPrimo = true;
int n, p, i, primos = 0, c = 2;

String msg = "Digite um numero inteiro positivo";
System.out.println( msg );
n = leia.nextInt();

while ( n > 0 ) {

i = 1;
p = i * i;

while ( p < n ) {
i++;
p = i * i;
}

if ( p == n ) {
System.out.println("o numero " + n + " e qp");
} else {
System.out.println("o numero " + n + " nao e qp");
}

isPrimo = true;

while ( c < n && isPrimo ) {
if ( n % c == 0 ) {
isPrimo = false;
}
c++;
}

if ( isPrimo ) {
primos++;
}

//mudança na bandeira
System.out.println( msg );
n = leia.nextInt();
}

System.out.println("O numero de primos digitados " + primos);
}

}

Lista de exercícios de estruturas de repetições - 30 - Faça um algoritmo para entrar com um número e verificar se ele é um número primo.

//Questao30
Faça um algoritmo para entrar com um número e verificar se ele é um número primo.


import java.util.Scanner;


public class Questao30 {


    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    boolean isPrimo = true;

    System.out.println("Digite um numero");
        int n = leia.nextInt();
        
        //o primeiro numero primo é 2
        int cont = 2;
        
        //algumas linguagens nao oferencem break (mecanismo para parar o laço)
        //a solucao então seria verificar se isPrimo na condicao junto a bandeira
        while ( cont < n /* && isPrimo */ ) {            
            if ( n % cont == 0 ) {
                isPrimo = false;
                break; //forca a parada do lao pois já nao será mais primor
            }
            cont++;
        }
        System.out.println( isPrimo 
                ? "Numero " + n + " e primo"
                : "Numero " + n + " nao e primo");
    }

}

Lista de exercícios de estruturas de repetições - 29 - Palíndromos são palavras (frases também) que são iguais quando lidas de frente para trás e de trás para frente. (Desconsidere acentos e sinais digitados). Num palíndromo, normalmente são desconsiderados os sinais ortográficos (diacríticos ou de pontuação), assim como os espaços entre palavras, bem como maiúsculas e minúsculas.

//Questao29
Palíndromos são palavras (frases também) que são iguais quando lidas de frente para trás e de trás para frente. (Desconsidere acentos e sinais digitados).
Num palíndromo, normalmente são desconsiderados os sinais ortográficos (diacríticos ou de pontuação), assim como os espaços entre palavras, bem como maiúsculas e minúsculas.

Exemplo a palavra OVO é um palíndromo.
As frases abaixo também são palíndromos:
Ame o poema
Amor a Roma
Ate o poeta
Luz azul
Socorram-me, subi no ônibus em Marrocos

import java.util.Scanner;

public class Questao29 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

String palavra;
String normalizar;

System.out.println("Digite um texto");
// aqui precisamos usar nextLine pois next só pega a primeira palavra
   palavra = leia.nextLine();


// removendo acentos, espacos etc
normalizar = palavra;
normalizar = normalizar.replaceAll("[�����]", "A");
normalizar = normalizar.replaceAll("[�����]", "a");
normalizar = normalizar.replaceAll("[����]", "E");
normalizar = normalizar.replaceAll("[����]", "e");
normalizar = normalizar.replaceAll("����", "I");
normalizar = normalizar.replaceAll("����", "i");
normalizar = normalizar.replaceAll("[�����]", "O");
normalizar = normalizar.replaceAll("[�����]", "o");
normalizar = normalizar.replaceAll("[����]", "U");
normalizar = normalizar.replaceAll("[����]", "u");
normalizar = normalizar.replaceAll("�", "C");
normalizar = normalizar.replaceAll("�", "c");
normalizar = normalizar.replaceAll("[��]", "y");
normalizar = normalizar.replaceAll("�", "Y");
normalizar = normalizar.replaceAll("�", "n");
normalizar = normalizar.replaceAll("�", "N");
normalizar = normalizar.replaceAll("[-+=*&%$#@!_]", "");
normalizar = normalizar.replaceAll("['\"]", "");
normalizar = normalizar.replaceAll("[<>()\\{\\}]", "");
normalizar = normalizar.replaceAll("['\\\\.,()|/]", "");
normalizar = normalizar.replaceAll("[^!-�]{1}[^ -�]{0,}[^!-�]{1}|[^!-�]{1}", " ");
normalizar = normalizar.replaceAll(" ", "");
char[] letras = normalizar.toCharArray();
String inverso = "";
for (int i = letras.length - 1; i >= 0; i--) {
inverso += letras[i];
}
System.out.println("inverso " + inverso );
if ( normalizar.equalsIgnoreCase(inverso) ) {
System.out.println("A frase " + normalizar + " e palindrome");
} else {
System.out.println("A frase " + normalizar + " nao e palindrome");
}
}
}


Lista de exercícios de estruturas de repetições - 28 - Crie um algoritmo que entre um literal (String) e conte quantas ocorrências de A, E, I, O e U essa literal tem. Considere maiúsculas e minúsculas. Caso a literal não tenha nenhuma vogal mostre a mensagem “Palavras sem vogais“.

//Questao28
Crie um algoritmo que entre um literal (String) e conte quantas ocorrências de A, E, I, O e U essa literal tem. Considere maiúsculas e minúsculas. Caso a literal não tenha nenhuma vogal mostre a mensagem “Palavras sem vogais“.

import java.util.Scanner;

public class Questao28 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

String palavra;
char c;
int a = 0, e = 0, i = 0, o = 0, u = 0;

System.out.println("Digite uma palavra");
palavra = leia.next();

for (int j = 0; j < palavra.length(); j++) {
c = palavra.charAt(j);

if (c == 'a' || c == 'A')
a++;
else if (c == 'e' || c == 'E')
e++;
else if (c == 'i' || c == 'I')
i++;
else if (c == 'o' || c == 'O')
o++;
else if (c == 'u' || c == 'U')
u++;

}

if (a == 0 && e == 0 && i == 0 && o == 0 && u == 0) {
System.out.println("Palavra sem vogais");
} else {
System.out.println("O numero de vogais");
System.out.println("a = " + a);
System.out.println("e = " + e);
System.out.println("i = " + i);
System.out.println("o = " + o);
System.out.println("u = " + u);
}
}

}

//////

import java.util.Scanner;


public class Questao28ComSwitchCase {

public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
String palavra;
char c;
int a = 0, e = 0, i = 0, o = 0, u = 0;
System.out.println("Digite uma palavra");
palavra = leia.next();
for (int j = 0; j < palavra.length(); j++) {
c = palavra.charAt( j );
switch ( c )  {
case 'a':
a++;
break;
case 'A':
a++;
break;
case 'e':
e++;
break;
case 'E':
e++;
break;
case 'i':
i++;
break;
case 'I':
i++;
break;
case 'o':
o++;
break;
case 'O':
o++;
break;
case 'u':
u++;
break;
case 'U':
u++;
break;
}
if ( a == 0 && e == 0 && i == 0 && o == 0 && u == 0) {
System.out.println("Palavra sem vogais");
} else {
System.out.println("O numero de vogais");
System.out.println("a = " + a);
System.out.println("e = " + e);
System.out.println("i = " + i);
System.out.println("o = " + o);
System.out.println("u = " + u);
}
}
}



Lista de exercícios de estruturas de repetições - 27 - Crie um algoritmo que entre um literal (String) e conte quantas vogais essa literal possui. Considere maiúsculas e minúsculas. (Lembre-se Java faz distinção de caracteres maiúsculos e minúsculos, desconsidere acentuação).

//Questao27
Crie um algoritmo que entre um literal (String) e conte quantas vogais essa literal possui. Considere maiúsculas e minúsculas. (Lembre-se Java faz distinção de caracteres maiúsculos e minúsculos, desconsidere acentuação).

import java.util.Scanner;


public class Questao27 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

char c;
int vogais = 0;
String palavra;

System.out.println("Digite uma palavra");
palavra = leia.next();

for (int i = 0; i < palavra.length(); i++) {
c = palavra.charAt( i );

if ( c == 'a' || c == 'A' || c == 'e' || c == 'E'
|| c == 'i' || c == 'I' || c == 'o' || c == 'O'
|| c == 'u' || c == 'U') {

vogais++;
}
}
if ( vogais == 0) {
System.out.println("Palavra " + palavra + " sem vogais");
} else {
System.out.println("O numero de vogais e " + vogais);
}
}

}

Lista de exercícios de estruturas de repetições - 26 - Crie um algoritmo que entre uma literal (String) e que verifique se o número de caracteres é impar (para obter o número de caracteres de uma String use .length() ) e imprima conforme o exemplo abaixo. Se for par imprima “Não é possível“. Palavra digitada: SONHO SONHO ONH N

//Questao26
Crie um algoritmo que entre uma literal (String) e que verifique se o número de caracteres é impar (para obter o número de caracteres de uma String use .length() ) e imprima conforme o exemplo abaixo. Se for par imprima “Não é possível“.
Palavra digitada: SONHO
SONHO
ONH
N

import java.util.Scanner;


public class Questao26 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

String palavra;
int a = 0, p = 0, m, t;

System.out.println("Digite uma palavra");
palavra = leia.next();

//calculando o caracter do meio
t = palavra.length();
p = t - 1;

if ( t % 2 != 0 ) {
m = (t - 1) / 2;

for (int j = 0; j <= m; j++) {
for (int i = a; i <= p; i++) {
System.out.print( palavra.charAt( i ) );
}
a++;
p--;
System.out.println();
}

} else {
System.out.println("Nao e possivel");
}
}
}

Lista de exercícios de estruturas de repetições - 25 - Crie um algoritmo que entre uma literal (String) e que verifique se o número de caracteres é impar (para obter o número de caracteres de uma String use .length() ) e imprima conforme o exemplo abaixo. Se for par imprima “Não é possivel“. Palavra digitada: SONHO N ONH SONHO

//Questao25
Crie um algoritmo que entre uma literal (String) e que verifique se o número de caracteres é impar (para obter o número de caracteres de uma String use .length() ) e imprima conforme o exemplo abaixo. Se for par imprima “Não é possivel“.
Palavra digitada: SONHO
N
ONH
SONHO

import java.util.Scanner;


public class Questao25 {


public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

String palavra;
int a = 0, p = 0, m, t;

System.out.println("Digite uma palavra");
palavra = leia.next();

//calculando o meio
t = palavra.length();

if ( t % 2 != 0 ) {
m = (t - 1) / 2;
for (int i = 0; i <= m; i++) {
if ( i == 0 ) {
System.out.println( palavra.charAt( m ) );
a = m;
p = m;
} else {
for (int j = a; j <= p; j++) {
System.out.print( palavra.charAt( j ) );
}
System.out.println();
}
a--;
p++;
}
} else {
System.out.println("Nao e possivel");
}
}


}



Lista de exercícios de estruturas de repetições - 24 - Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo. Palavra digitada: PAZ PAZ PA P

//Questao24
Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo.
Palavra digitada: PAZ
PAZ
PA
P

import java.util.Scanner;


public class Questao24 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    String palavra;
   
        System.out.println("Digite uma palavra");
        palavra =  leia.next();
        
        for (int i = palavra.length() -1; i >= 0; i--) {
            System.out.println();
            for (int j = 0; j <= i; j++) {
                System.out.print( palavra.charAt( j ) );
            }
        }
    }
}

Lista de exercícios de estruturas de repetições - 23 - Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo. Palavra digitada: PAZ Z ZA ZAP

//Questao23
Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo.
Palavra digitada: PAZ
Z
ZA
ZAP


import java.util.Scanner;


public class Questao23 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    String palavra;
        
    System.out.println("Digite uma palavra");
        palavra =  leia.next();
        
        for (int i = palavra.length() -1; i >= 0 ; i--) {
            System.out.println();
            for (int j = palavra.length() -1; j >= i; j--) {
                System.out.print( palavra.charAt( j ) );
            }
        }
    }
}

Lista de exercícios de estruturas de repetições - 22 - Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo. Palavra digitada: PAZ P PA PAZ

//Questao22
Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo. Palavra digitada: PAZ
P
PA
PAZ

import java.util.Scanner;


public class Questao22 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    String palavra;
        
    System.out.println("Digite uma palavra");
        palavra =  leia.next();
        
        for (int i = 0; i < palavra.length(); i++) {
            System.out.println();
            for (int j = 0; j <= i; j++) {
                System.out.print( palavra.charAt( j ) );
            }
        }
    }

}

Lista de exercícios de estruturas de repetições - 21 - Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo. Palavra digitada: PAZ Saída ser: ZAP

//Questao21
Crie um algoritmo que entre uma literal (String) e imprima conforme o exemplo abaixo.
Palavra digitada: PAZ
Saída ser: ZAP

import java.util.Scanner;


public class Questao21 {


public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);
        
        String palavra;
        
        System.out.println("Digite uma palavra");
        palavra =  leia.next();
        
        //o ultimo caractere e length -1 
        //e o primeiro 0
        for (int i = palavra.length() -1; i >= 0; i--) {
            System.out.print( palavra.charAt( i ) );
        }

}


}

Lista de exercícios de estruturas de repetições - 20 - Crie um algoritmo que entre uma literal (String) e que mostre cada uma suas letras do fim ao inicial. Exemplo de literal digitada: PAZ Saída será Z

//Questao20
Crie um algoritmo que entre uma literal (String) e que mostre cada uma suas letras do fim ao inicial. Exemplo de literal digitada: PAZ
Saída será
Z


import java.util.Scanner;

public class Questao20 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    String palavra;
   
    System.out.println("Digite uma palavra");
        palavra = leia.next();
        
        //o ultimo caractere e length -1 
        //e o primeiro 0
        for (int i = palavra.length() -1; i >= 0; i--) {
            System.out.println( palavra.charAt( i ) );
        }
    }

}

Lista de exercícios de estruturas de repetições - 19 - Crie um algoritmo que entre uma literal (String) e que mostre cada uma de suas letras em cada linha exemplo literal digitada: PAZ Saída será P A Z

//Questao19
Crie um algoritmo que entre uma literal (String) e que mostre cada uma de suas letras em cada linha exemplo literal digitada: PAZ
Saída será
P
A
Z

import java.util.Scanner;

public class Questao19 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    String palavra;
   
        System.out.println("Digite uma palavra");
        palavra = leia.next();
        
        for (int i = 0; i < palavra.length(); i++) {
        //voce pode pegar caracter por uma posicao com charAt
            System.out.println( palavra.charAt( i ) );
        }
        
        //ou podes pegar o array de caracteres com toCharArray
        char[] letras = palavra.toCharArray();
        
        for (int i = 0; i < letras.length; i++) {
            System.out.println( letras[i] );
            
        }
    }

}



Lista de exercícios de estruturas de repetições - 18 - Crie um algoritmo que entre 10 números inteiros e imprima quantos são pares e quantos são impares.

//Questao18
Crie um algoritmo que entre 10 números inteiros e imprima quantos são pares e quantos são impares.


import java.util.Scanner;


public class Questao16 {


    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
        double tmp, soma = 0;
        
        for (int i = 0; i < 4; i++) {
            System.out.println("Digite o " + (i + 1)  + " numero");
            tmp = leia.nextDouble();
            
            if ( tmp >= 0.0 && tmp <= 10.0 ) {
                soma += tmp;
            } else {
            
            do {                    
                    System.out.println("O numero digitado deve ser entre 0 e 10");
                    tmp = leia.nextDouble();
                } while (tmp < 0.0 || tmp > 10.0);
           
                soma += tmp;
            }
        }
        System.out.println("Media: " + soma /4 );
    }

}

Lista de exercícios de estruturas de repetições - 17 - Crie um algoritmo que entre um número inteiro positivo e imprima todos os seus divisores.

//Questao17
Crie um algoritmo que entre um número inteiro positivo e imprima todos os seus divisores.

import java.util.Scanner;

public class Questao17 {

    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
    int n;
        
    System.out.println("Digite um numero");
        n = leia.nextInt();
        
        for (int i = 1; i <= n; i++) {
            if ( n % i == 0 ) {
                System.out.println( i );
            }
        }
    }

}

Lista de exercícios de estruturas de repetições - 16 - Crie um algoritmo que entre 4 números flutuantes de 0.0 a 10.0 e mostre a média aritmética desses números.

//Questao16
Crie um algoritmo que entre 4 números flutuantes de 0.0 a 10.0 e mostre a média aritmética desses números.

import java.util.Scanner;


public class Questao16 {


    public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
   
        double tmp, soma = 0;
        
        for (int i = 0; i < 4; i++) {
            System.out.println("Digite o " + (i + 1)  + " numero");
            tmp = leia.nextDouble();
            
            if ( tmp >= 0.0 && tmp <= 10.0 ) {
                soma += tmp;
            } else {
            
            do {                    
                    System.out.println("O numero digitado deve ser entre 0 e 10");
                    tmp = leia.nextDouble();
                } while (tmp < 0.0 || tmp > 10.0);
           
                soma += tmp;
            }
        }
        System.out.println("Media: " + soma /4 );
    }

}