Dica de programação - JAVA
Olá, Galera!
Venho hoje trazer algumas dicas de programação em linguagem Java.
Vamos lá, nesse post vou considerar que já você já sabe o minimo de Java em outros post colocarei do inicio, vamos tratar de métodos condicionais e velocidade de processamento de alguns deles, recomendo que você não copie e cole o código mas leia e digite, assim poderá absorver melhor o que aqui será abordado.
Enunciado extraido do Uri Judge.
Leia um valor inteiro entre 1 e 12, inclusive. Correspondente a este valor, deve ser apresentado como resposta o mês do ano por extenso, em inglês, com a primeira letra maiúscula.
Entrada
A entrada contém um único valor inteiro.
Saída
Imprima por extenso o nome do mês correspondente ao número existente na entrada, com a primeira letra em maiúscula.
Exemplos de Entrada Exemplos de Saída
4 April
3 March
Link: https://www.urionlinejudge.com.br/judge/pt/problems/view/1052
Primeira Solução:
import java.util.Scanner;
public class Mes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // le entrada do teclado
int mes;// cria o inteiro mes
mes = sc.nextInt();// atribui a entrada de sc para mes
switch (mes) { // recebe o mes e vai para o caso conforme a entrada
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
case 4:
System.out.println("April");
break;
case 5:
System.out.println("May");
break;
case 6:
System.out.println("June");
break;
case 7:
System.out.println("July");
break;
case 8:
System.out.println("August");
break;
case 9:
System.out.println("September");
break;
case 10:
System.out.println("October");
break;
case 11:
System.out.println("November");
break;
case 12:
System.out.println("December");
break;
default:
break;
}
}
}
Segunda Solução:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Mes2_0 {
// adicione o throws NumberFormatException para tratar as exceções
public static void main(String[] args) throws NumberFormatException, IOException {
String Month[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; // vetor onde iremos buscar os dados
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));// leitura pelo teclado, mais rapido que o Scanner
int mes = Integer.parseInt(buffer.readLine()); // Atribui o valor da linha para o inteiro mes, já fazendo a conversão
System.out.println(Month[mes-1]); // mostra na tela o resultado do vetor mes -1, pois o vetor inicia sempre em 0
}
}
Vale Lembrar que nem sempre tamanho de cogido significa maior ou menor tempo de processamento.
No caso acima a segunda solução é mais rápida que a primeira.
Quero abordar aqui também um substituto, para maior parte dos casos, do if/else os popularmente chamados de operadores ternários. O código fica mais bonito e mais eficiente do que o if/else.
Segue abaixo.
IF/ELSE:
If( x == 0){ // se x = 0 faça
x+= 2; // x = x+2
} else{ // caso contrario faça
x -= 1; // x = x - 1
}// fim
Operadores :
x = (x==0)? +2 : -1; // se x = 0 faça x+2 senão faça x-1
Bom galera, por hoje é isso, logo mais postarei novas dicas e videos para facilitar...
Valeu e Até a próxima.
Venho hoje trazer algumas dicas de programação em linguagem Java.
Vamos lá, nesse post vou considerar que já você já sabe o minimo de Java em outros post colocarei do inicio, vamos tratar de métodos condicionais e velocidade de processamento de alguns deles, recomendo que você não copie e cole o código mas leia e digite, assim poderá absorver melhor o que aqui será abordado.
Enunciado extraido do Uri Judge.
Leia um valor inteiro entre 1 e 12, inclusive. Correspondente a este valor, deve ser apresentado como resposta o mês do ano por extenso, em inglês, com a primeira letra maiúscula.
Entrada
A entrada contém um único valor inteiro.
Saída
Imprima por extenso o nome do mês correspondente ao número existente na entrada, com a primeira letra em maiúscula.
Exemplos de Entrada Exemplos de Saída
4 April
3 March
Link: https://www.urionlinejudge.com.br/judge/pt/problems/view/1052
Primeira Solução:
import java.util.Scanner;
public class Mes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // le entrada do teclado
int mes;// cria o inteiro mes
mes = sc.nextInt();// atribui a entrada de sc para mes
switch (mes) { // recebe o mes e vai para o caso conforme a entrada
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
case 4:
System.out.println("April");
break;
case 5:
System.out.println("May");
break;
case 6:
System.out.println("June");
break;
case 7:
System.out.println("July");
break;
case 8:
System.out.println("August");
break;
case 9:
System.out.println("September");
break;
case 10:
System.out.println("October");
break;
case 11:
System.out.println("November");
break;
case 12:
System.out.println("December");
break;
default:
break;
}
}
}
Segunda Solução:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Mes2_0 {
// adicione o throws NumberFormatException para tratar as exceções
public static void main(String[] args) throws NumberFormatException, IOException {
String Month[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; // vetor onde iremos buscar os dados
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));// leitura pelo teclado, mais rapido que o Scanner
int mes = Integer.parseInt(buffer.readLine()); // Atribui o valor da linha para o inteiro mes, já fazendo a conversão
System.out.println(Month[mes-1]); // mostra na tela o resultado do vetor mes -1, pois o vetor inicia sempre em 0
}
}
Vale Lembrar que nem sempre tamanho de cogido significa maior ou menor tempo de processamento.
No caso acima a segunda solução é mais rápida que a primeira.
Quero abordar aqui também um substituto, para maior parte dos casos, do if/else os popularmente chamados de operadores ternários. O código fica mais bonito e mais eficiente do que o if/else.
Segue abaixo.
IF/ELSE:
If( x == 0){ // se x = 0 faça
x+= 2; // x = x+2
} else{ // caso contrario faça
x -= 1; // x = x - 1
}// fim
Operadores :
x = (x==0)? +2 : -1; // se x = 0 faça x+2 senão faça x-1
Bom galera, por hoje é isso, logo mais postarei novas dicas e videos para facilitar...
Valeu e Até a próxima.
Sabe resolver esse problema em Falcon C++ ?
ResponderExcluirOlá,
Excluiruma das formas em C++ seria assim.
#include
#include
#include
using namespace std;
int main(){
int entrada;
string vetor[12];
cin >> entrada;
vetor[0] = "Janeiro";
vetor[1] = "Fevereiro";
vetor[2] = "Março";
vetor[3] = "Abril";
vetor[4] = "Maio";
vetor[5] = "Junho";
vetor[6] = "Julho";
vetor[7] = "Agosto";
vetor[8] = "Setembro";
vetor[9] = "Outubro";
vetor[10] = "Novembro";
vetor[11] = "Dezembro";
cout << " " << vetor[entrada-1];
getch();
return 0;
}
espero ter ajudado.