Bom dia pessoal, estou com dúvida em fazer o exercício abaixo e gostaria de uma orientação, não quero que me deem a resposta, e sim formas de como eu possa chegar até a resposta… já bati muito a cabeça e nada até agora.
Exercício da Apostila de Java Básico da Caelum.
Imprima a seguinte tabela usando for encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n
o que eu já fiz?.. muitas coisas!, mas só chego a lugar algum, acredito esteja faltando um cálculo, e também não estou conseguindo enxergar esta quebra de linha!
[/code]
public class Encadeado {
public static void main (String[] args){
int tamanho = 5;
for (int a=1; a<=tamanho; a++){
for (int b=1; b<=tamanho; b++){
System.out.print(b + " ");
}
System.out.println(a);
}
}
}
[code]
Aguardo a ajuda de vocês e eu não pesquisei no google, porque pode ser que eu encontre a resposta, e esse não é o meu objetivo, estou estudando para aprender!
[code]public class Encadeado {
public static void main (String[] args){
int tamanho = 5;
for (int a=1; a<=tamanho; a++){
for (int b=1; b<= ? ; b++){
System.out.print(b + " ");
}
System.out.println(a);
}
}
}[/code]
Certo, você pediu para eu não usar o tamanho no segundo for, mas para eu colocar uma outra coisa, ou tem que ser um numeral, ou criar uma variável, não é isso?
A variável de controle do seu for interno tem que ser a atual do for externo, ou seja, a variável a[/quote]
Deixa eu te perguntar, este mesmo processo que você está me orientando na questão da variável…, obedece a quebra de linha ou (a quebra de linha) será o ultimo passo?
a quebra de linha não pode ocorrer no seu for interior, senão o seu output não vai ser igual ao especificado, você precisa encontrar uma maneira de fazer ele quebrar a linha uma só vez, após imprimir toda a informação necessária naquela linha.
Estou sendo vago e dando dicas porque não quero te dar a resposta pronta, já que você disse que quer aprender.
[quote=digaoneves]a quebra de linha não pode ocorrer no seu for interior, senão o seu output não vai ser igual ao especificado, você precisa encontrar uma maneira de fazer ele quebrar a linha uma só vez, após imprimir toda a informação necessária naquela linha.
Estou sendo vago e dando dicas porque não quero te dar a resposta pronta, já que você disse que quer aprender.[/quote]
Eu não estou identificando meu erro… tem mais algum palpite ou dica do que está feito, tipo: é por aí mesmo! rsrsrs
[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=5; a++){
for (int b=a;b<=a*a; b+=a, a=b*a){
System.out.print(b + " ");
}
System.out.print(a);
}
}
a sua iteração tem que ser do jeito que eu falei acima. Agora os cálculos (multiplicações) tem que ocorrer dentro do bloco de código. não na declaração do for.
Cara, estou quase lá… rsrsr
Adicionei (ln) na saida da variável (a) e retirei a multiplicação no final do for interno.
mas no final de cada linha está repetindo a primeira coluna.
tem alguma dica?
[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=a;b<=a*a; b+=a){
System.out.print(b + " ");
}
System.out.println(a);
}
}
}[/code][/quote]
O seu segundo for está errado e o que você está imprimindo dentro do for de dentro está errado. Tambem nao existe motivo para imprimir o a no for de fora.
Seu código tem que ter essa estrutura:[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=1;b<=a; b++){//Tire as operações de multiplicação daqui.
//Se for somar, multiplicar e qualquer outra coisa, faça aqui
}
System.out.println();
}
}
Cara, estou quase lá… rsrsr
Adicionei (ln) na saida da variável (a) e retirei a multiplicação no final do for interno.
mas no final de cada linha está repetindo a primeira coluna.
tem alguma dica?
[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=a;b<=a*a; b+=a){
System.out.print(b + " ");
}
System.out.println(a);
}
}
}[/code][/quote]
Olá,
Como o digaoneves mencionou, você não pode fazer, ou melhor, não é aconselhavel fazer as multiplicações dentro da declaração do FOR, faça isso dentro dele !
[quote=digaoneves]Seu código tem que ter essa estrutura:[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=1;b<=a; b++){//Tire as operações de multiplicação daqui.
//Se for somar, multiplicar e qualquer outra coisa, faça aqui
}
System.out.println();
}
}
}[/code][/quote]
Se eu tirar as operações do for, eu posso incluir a condicional if? pois com os calculos dentro do for interno e a retirada da variável (a) do System externo, o resultado bate!
Porque tenho que tirar as operações de dentro do for, é errado? não é legal calcular dentro do for? fiz um outro exercícios onde calculei dentro o resultado foi ok!
O código compila, e funciona, então pelo ponto de vista da JVM você pode fazer sim.
Porém eu não aconselho, seu código fica difícil de ler, e de manter. Caso você precise fazer alguma alteração, vai ser muito mais complicado alterar o seu for, do que o bloco de código dentro dele.
Cara, estou quase lá… rsrsr
Adicionei (ln) na saida da variável (a) e retirei a multiplicação no final do for interno.
mas no final de cada linha está repetindo a primeira coluna.
tem alguma dica?
[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=a;b<=a*a; b+=a){
System.out.print(b + " ");
}
System.out.println(a);
}
}
}[/code][/quote]
Olá,
Como o digaoneves mencionou, você não pode fazer, ou melhor, não é aconselhavel fazer as multiplicações dentro da declaração do FOR, faça isso dentro dele !
[quote=romim][quote=digaoneves]Seu código tem que ter essa estrutura:[code]public class Encadeado {
public static void main (String[] args){
for (int a=1; a<=4; a++){
for (int b=1;b<=a; b++){//Tire as operações de multiplicação daqui.
//Se for somar, multiplicar e qualquer outra coisa, faça aqui
}
System.out.println();
}
}
}[/code][/quote]
Se eu tirar as operações do for, eu posso incluir a condicional if? pois com os calculos dentro do for interno e a retirada da variável (a) do System externo, o resultado bate!
Porque tenho que tirar as operações de dentro do for, é errado? não é legal calcular dentro do for? fiz um outro exercícios onde calculei dentro o resultado foi ok![/quote]
Fazer as contas dentro do for não te da um controle melhor sobre a aplicação, sem falar que o codigo fica mais complexo.
Vc pode usar IF sim para fazer suas contas, mas como você esta seguindo uma apostila, no enunciado do problema ele permite que vocẽ utilize qualquer forma para resolver ou apenas com FOR ?