Boas a todos,
Comecei a fazer o curso recentemente, e devido a algumas dúvidas vim aos forums em busca de utilizadores com as mesmas duvidas que eu.
Mas reparei que infelizmente não há muita actividade no forum e a informação referente a resolução de exercícios está muitos dispersa.
Não por culpa dos administradores, mas porque quem posta normalmente abre um tópico novo.
Por isso decidi colocar aqui de forma a que todos possam consultar as soluções dos exercícios
"Questões usando o laço While"
Atenção:
Como o Administrados diz no início do curso, há várias soluções para qualquer problema, o código aqui descrito foi o meu jeito de resolver esses exercícios.Aconselho a tentar resolver do vosso jeito e usem as soluções para tirar duvidas.
Se alguém tiver alguma dúvida é só postar
Não se esqueçam, eu comecei o curso recentemente, por isso não tenho muita experiência, se tiver alguma dica de como eu optimizar os meus códigos e só falar que eu agradeço.
PS: eu faço copy/paste do meu código directo do editor, dependendo do tipo de browser que está usando, por vezes pode parecer confuso, por isso em caso de dúvida aconselho a fazer copy do meu código exactamente como está e em seguida paste no vosso editor, que assim vai aparecer exactamente como aparece na minha tela.
- exercício 0 - Programa em Java dos patinhos da Xuxa
exercício 1 - Programa em Java que mostra os números ímpares
exercício 2 - Programa em Java que mostra os números pares
exercício 3 -Programa em Java que mostra os números pares e ímpares
exercico 4 - Programa em Java que calcula a média das notas de uma turma
exercício 5 - Achando o maior número
exercício 6 - Achando os dois maiores números
exercício 7 - Quadrado de asteriscos
Decidi comentar este código, pois demorei muito até encontrar a lógica necessária. Confesso que até agora foi o exercício que mais dificuldades me criou. Imagino que os colegas que se estão a iniciar se vão deparar com as mesmas barreiras lógicas que eu. Por isso esqueci um pouco os conselhos do prof em não comentar demasiado, e comento quase cada linha de código para que possam perceber como cheguei a essa lógica.
Do jeito que fiz é possível desenhar tanto quadrados como rectângulos. Para isso basta adicionar outra entrada para o utilizador e atribuir esse valor a outra variável "larg"
e usar esta variável para comparar dentro do segundo laço while, ficava while (countlarg <= larg ).
Se não conseguirem mandem uma PM que envio o código para fazer também rectângulos
exercício 8 - Quadrado de asteriscos e espaços em branco
neste exercício resolvi usar a sugestão que dei no exercício anterior, e fiz o código para funcionar também com rectângulos. De reparar que usei o código do exercício anterior e acrescentei um if - else com uma regra para imprimir em branco a partir do 2º espaço até ao penúltimo tanto para a altura como para a largura.
o código está comentado nas alterações.
Aqui termino os exercícios com while, e dou seguimento à minha aprendizagem. Assim que iniciar os próximos exercícios que serão os do laço "for" faço novo tópico com as soluções.
Abraço
Comecei a fazer o curso recentemente, e devido a algumas dúvidas vim aos forums em busca de utilizadores com as mesmas duvidas que eu.
Mas reparei que infelizmente não há muita actividade no forum e a informação referente a resolução de exercícios está muitos dispersa.
Não por culpa dos administradores, mas porque quem posta normalmente abre um tópico novo.
Por isso decidi colocar aqui de forma a que todos possam consultar as soluções dos exercícios
"Questões usando o laço While"
Atenção:
Como o Administrados diz no início do curso, há várias soluções para qualquer problema, o código aqui descrito foi o meu jeito de resolver esses exercícios.Aconselho a tentar resolver do vosso jeito e usem as soluções para tirar duvidas.
Se alguém tiver alguma dúvida é só postar
Não se esqueçam, eu comecei o curso recentemente, por isso não tenho muita experiência, se tiver alguma dica de como eu optimizar os meus códigos e só falar que eu agradeço.
PS: eu faço copy/paste do meu código directo do editor, dependendo do tipo de browser que está usando, por vezes pode parecer confuso, por isso em caso de dúvida aconselho a fazer copy do meu código exactamente como está e em seguida paste no vosso editor, que assim vai aparecer exactamente como aparece na minha tela.
- exercício 0 - Programa em Java dos patinhos da Xuxa
- Código:
package whileexecontarpatinhos;
import java.util.Scanner;
public class Whileexecontarpatinhos {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int patos_iniciais;
System.out.println("Vou cantar uma canção, mas preciso de ajuda!");
System.out.println("Preciso que escolha um numero de 1 a 20!");
patos_iniciais = entrada.nextInt();
int patos_var = patos_iniciais;
if ((patos_iniciais >=1) && (patos_iniciais <=20)) {
while (patos_var != 1) {
System.out.println(patos_var + " patinhos foram passear");
System.out.println("Além das montanhas");
System.out.println("Para brincar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá Mas só " + (patos_var-1) + " patinhos");
System.out.println("voltaram de lá.");
patos_var--;
}
if (patos_var == 1) {
System.out.println( + patos_var + " patinho foi passear");
System.out.println("Além das montanhas");
System.out.println("Para brincar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá Mas nenhum patinho");
System.out.println("voltou de lá.");
patos_var--;
}
if (patos_var == 0) {
System.out.println("A mamãe patinha foi procurar");
System.out.println("Além das montanhas");
System.out.println("Na beira do mar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá");
System.out.println("E os " + patos_iniciais + " patinhos voltaram de lá.");
}
} else {
System.out.println("Desculpe mas tem de ser um numero entre 1 a 20!");
System.out.println("Terminando programa...tente de novo!!!");
}
}
}
exercício 1 - Programa em Java que mostra os números ímpares
- Código:
package whileparimparate100;
public class Whileparimparate100 {
public static void main(String[] args) {
int count=0;
System.out.println("Calculando todos os nº impares de 1 a 100....");
System.out.println(".............................................");
while (count <= 100) {
if (count %2 !=0) {
System.out.println(count);
}
count++;
}
}
}
exercício 2 - Programa em Java que mostra os números pares
- Código:
package whilepar1a100;
public class Whilepar1a100 {
public static void main(String[] args) {
int count=0;
System.out.println("Calculando todos os nº pares de 1 a 100....");
System.out.println(".............................................");
while (count <= 100) {
if (count %2 ==0) {
System.out.println(count);
}
count++;
}
}
}
exercício 3 -Programa em Java que mostra os números pares e ímpares
- Código:
package whileparimparaomesmotempo;
import java.util.Scanner;
public class Whileparimparaomesmotempo {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int operacao;
int num;
int countimp=1;
int countpar=1;
System.out.println("para saber todos os numeros pares e impares ate ao");
System.out.println("numero que digitou!!!");
System.out.println();
System.out.println("Escolha uma opção: 0 = saber pares e impares || 1 = saber impares || 2 = saber pares");
operacao = entrada.nextInt();
if (( operacao >=0) && (operacao <=2)) {
System.out.println("Digite um numero por favor....");
num = entrada.nextInt();
if (operacao == 0) {
System.out.println("imprimindo impares de 0 a " + num);
while (countimp <= num) {
if (countimp % 2 != 0) {
System.out.println("Ímpar: " + countimp);
}
countimp++;
}
System.out.println("imprimindo pares de 0 a " + num);
while (countpar <= num) {
if (countpar % 2 == 0) {
System.out.println("Par: " + countpar);
}
countpar++;
}
}
if (operacao == 1) {
System.out.println("imprimindo impares de 0 a " + num);
while (countimp <= num) {
if (countimp % 2 != 0) {
System.out.println("Ímpar: " + countimp);
}
countimp++;
}
}
if (operacao ==2) {
System.out.println("imprimindo pares de 0 a " + num);
while (countpar <= num) {
if (countpar % 2 == 0) {
System.out.println("Par: " + countpar);
}
countpar++;
}
}
} else {
System.out.println("Desculpe, mas so pode escolher 0, 1 ou 2 como opção. Terminando programa. Tente de novo");
}
}
}
exercico 4 - Programa em Java que calcula a média das notas de uma turma
- Código:
package whilemediadaturma10entradas;
import java.util.Scanner;
public class Whilemediadaturma10entradas {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float media;
float totalfinal=0;
int alunos;
int count=1;
float nota;
System.out.println("Vamos saber a média da sua turma!");
System.out.println("Insira o numero total de alunos da sua turma...");
alunos = entrada.nextInt();
while (count <= alunos) {
System.out.println("Insira a nota do aluno " + count);
nota = entrada.nextFloat();
totalfinal = (totalfinal + nota);
count++;
}
media = (totalfinal / alunos);
System.out.printf("\nMédia da turma = soma de todas as notas : alunos --> %.2f : %d = %.2f\n", totalfinal, alunos, media);
System.out.printf("\nA média da turma é: %.2f\n", media);
}
}
exercício 5 - Achando o maior número
- Código:
package whilequalomaiorde10entradas;
import java.util.Scanner;
public class Whilequalomaiorde10entradas {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int count=2;
int prox;
int maior;
int comparar;
System.out.println("Vamos descubrir qual o maior numero de uma lista ");
System.out.println("Quantos numeros quer comparar?");
comparar = entrada.nextInt();
System.out.println("Insira o primeiro numero");
maior = entrada.nextInt();
while (count <= comparar) {
System.out.println("insira o " + count + " numero");
prox = entrada.nextInt();
if (prox > maior) {
maior = prox;
}
count++;
}
System.out.println("o maior numero digitado foi " + maior );
}
}
exercício 6 - Achando os dois maiores números
- Código:
package while2maioresdeumalista;
import java.util.Scanner;
public class While2maioresdeumalista {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int count=2;
int prox;
int maior;
int comparar;
int maior2=0;
System.out.println("Vamos descubrir qual o maior numero de uma lista ");
System.out.println("Quantos numeros quer comparar?");
comparar = entrada.nextInt();
System.out.println("Insira o primeiro numero");
maior = entrada.nextInt();
while (count <= comparar) {
System.out.println("insira o " + count + " numero");
prox = entrada.nextInt();
if (prox > maior) {
maior2 = maior;
maior = prox;
} else {
if (prox > maior2) {
maior2= prox;
}
}
count++;
}
System.out.println("o maior numero digitado foi " + maior );
System.out.println("o 2º maior numero digitado foi " + maior2 );
}
}
exercício 7 - Quadrado de asteriscos
Decidi comentar este código, pois demorei muito até encontrar a lógica necessária. Confesso que até agora foi o exercício que mais dificuldades me criou. Imagino que os colegas que se estão a iniciar se vão deparar com as mesmas barreiras lógicas que eu. Por isso esqueci um pouco os conselhos do prof em não comentar demasiado, e comento quase cada linha de código para que possam perceber como cheguei a essa lógica.
Do jeito que fiz é possível desenhar tanto quadrados como rectângulos. Para isso basta adicionar outra entrada para o utilizador e atribuir esse valor a outra variável "larg"
e usar esta variável para comparar dentro do segundo laço while, ficava while (countlarg <= larg ).
Se não conseguirem mandem uma PM que envio o código para fazer também rectângulos
- Código:
package whilequadradocheio;
import java.util.Scanner;
public class Whilequadradocheio {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int lado;
int countalt=1; // contador criado para o primeiro laço while (principal)
// este contador vai controlar o numero de linhas prenchidas com "*"
int countlarg=1; // contador criado para o segundo laço while (secundário)
// este contador vai controlar o numero de "*" imprimidos na linha
System.out.println("Vamos desenhar um quadrado");
System.out.println("insira quantos espaços terá o lado do quadrado...");
lado = entrada.nextInt();
System.out.println(); // quebra de linha estetica
while ( countalt <= lado) { // vai imprimir a altura do quadrado com quebra de linha
// conforme o SOUT no fim deste laço while
while (countlarg <= lado) { // vai imprimir a largura do quadrado com o nº de "*"
System.out.print("*"); // correspondente
countlarg++;
} // ++++++criando uma entrada para o utilizador com um valor
// largura e adicionando essa variavel, poderiamos imprimir
// tanto quadrado como rectangulos++++++++
System.out.print("\n");
countalt++;
countlarg=1; // precisamos de meter o segundo contador do inicio para quando voltar
} // a executar o laço secundario
System.out.print("\n"); // quebra de linha estetica
}
}
exercício 8 - Quadrado de asteriscos e espaços em branco
neste exercício resolvi usar a sugestão que dei no exercício anterior, e fiz o código para funcionar também com rectângulos. De reparar que usei o código do exercício anterior e acrescentei um if - else com uma regra para imprimir em branco a partir do 2º espaço até ao penúltimo tanto para a altura como para a largura.
o código está comentado nas alterações.
- Código:
package whilequadradooco;
import java.util.Scanner;
public class Whilequadradooco {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int alt, larg; // em vez de termos 1 so variavel para lado, temos 2 variaveis,
// 1 para a altura e outra para largura, assim tambem podemos fazer rectangulos
int countalt=1;
int countlarg=1;
System.out.println("Vamos desenhar um quadrado ou rectangulo");
System.out.println("insira quantos espaços terá a altura..."); // entradas dos valores
alt = entrada.nextInt(); // altura e largura
System.out.println("insira quantos espaços terá a largura..."); //
larg = entrada.nextInt(); //
System.out.println();
while ( countalt <= alt) {
while (countlarg <= larg) {
if ((countlarg >= 2 && countlarg <= (larg - 1))// em relação ao codido do quadrado cheio
&& (countalt >= 2 && countalt <= (alt - 1))){ // a unica coisa que muda é a introdução
System.out.print(" "); // do if else que vai criar uma regra para
}else{ // imprimir em branco a partir do 2º espaço
// até ao penuntimo tanto para a altura como
System.out.print("*"); // para a largura, caso nao esteja entre o 2ª
} // e o penultimo (sera o primeiro e ultimo)
countlarg++; // imprime o esterisco
}
System.out.print("\n");
countalt++;
countlarg=1;
}
System.out.print("\n");
}
}
Aqui termino os exercícios com while, e dou seguimento à minha aprendizagem. Assim que iniciar os próximos exercícios que serão os do laço "for" faço novo tópico com as soluções.
Abraço