Exercícios

43 respostas
rodrigo_salla

Bom dia!!!
Por gentileza alguem poderia me ajudar a resolver os exercicios abaixo:
Muito obrigado!!1

1)Imprima todos os números de 150 a 300.

2)Imprima a soma de 1 até 1000.

3)Imprima todos os múltiplos de 3, entre 1 e 100.

4)Imprima os fatoriais de 1 a 10.
O fatorial de um número n é n * n1* n2… até n = 1. Lembrese de utilizar os parênteses.
O fatorial de 0 é 1
O fatorial de 1 é (0!) * 1 = 1
O fatorial de 2 é (1!) * 2 = 2
O fatorial de 3 é (2!) * 3 = 6
O fatorial de 4 é (3!) * 4 = 24
Faça um for que inicie uma variável n (número) como 1 e fatorial (resultado) como 1 e varia n de 1 até 10:
for (int n=1, fatorial=1; n <= 10; n++) {

5)Aumente a quantidade de números que terão os fatoriais impressos, até 20, 30, 40. Em um determinado momento, além desse cálculo demorar, vai começar a mostrar respostas completamente erradas. Porque? Mude de int para long, e você poderá ver alguma mudança.

  1. (opcional) Imprima os primeiros números da série de Fibonacci até passar de 100. A série de Fibonacci é a seguinte: 0, 1, 1, 2, 3, 5, 8, 13, 21, etc… Para calculála, o primeiro e segundo elementos valem 1, daí por diante, o nésimo elemento vale o n1ésimo elemento somando ao n2ésimo
    elemento (ex: 8 = 5 + 3).
7)(opcional) Escreva um programa que, dada uma variável x (com valor 180, por exemplo), temos y de acordo com a seguinte regra:

se x é par, y = x / 2

se x é impar, y = 3 * x + 1

imprime y

O programa deve então jogar o valor de y em x e continuar até que y tenha o valor final de 1. Por exemplo, para x = 13, a saída será:

40 >

20 >

10 >

5 >

16 >

8 >

4 >

2 >

1

Um detalhe importante do método que estamos usando até agora é que uma quebra de linha é impressa toda vez que chamado. Para não pular uma linha usamos o método a seguir:

System.out.print(variavel);

8)(opcional) Imprima a seguinte tabela, usando fors encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n

43 Respostas

s4nchez

Eu posso ajudar. Qual está sendo sua dificuldade? Começar?

rodrigo_salla

Eu fiz o exercicio 1 dessa forma:

public class Cap3ex1

{

public static void main(String[] args)

{

int comeco = 150;

int fim = 300;
for(int a = comeco; a <= fim; a++)
	{
		System.out.println(a);
	}
}

}

mas não consigo prosseguir nos exercícios 2 e 4, o n 3, creio que eu consiga fazer utilizando o operador % mais ou menos assim.

if(x%3 ==0)

System.out.println(x + "E multiplo de 3);

Muito obrigado

diego2005

Você não consegue fazer o 2??? É quase a mesma coisa do primeiro, a única diferença é que você vai ter que ter uma variável para armazenar a soma:

public class Exercicio2 {
    public static void main(String[] args){
        int i, soma;

        soma = 0;

        for(i = 1; i <= 1000; i++)
            soma += i;

        System.out.println("Soma de 1 a 1000 = " + soma);
    }
}

Agora tenta pelo menos começar os outros, e a medida que for surgindo as dúvidas vai postando.

Ah, só uma dica, quando postar código coloque nas tags.

bebad

vai com fé filho. :wink:

rodrigo_salla

desculpe, mas como faço pra colocar nas tags?

R

auhauah c ta querendo que os outros façam os exercicios pra vc…

rodrigo_salla

Rafael, sinto em lhe informar, mas você está redondamente enganado, se não puder ajudar, por favor, não atrapalhe…

diego2005

Na hora de postar tem as tags ai em cima.

ou então vc msm coloca, a tag de abertura é [code] e de fechamento tem uma barra antes do code..

rodrigo_salla
public class Exercicio2 {
     public static void main(String[] args){
         int i, soma;
 
         soma = 0;
 
         for(i = 1; i <= 1000; i++)
             soma += i;
 
         System.out.println("Soma de 1 a 1000 = " + soma);
     }
 }

testando pra ver se eu acertei, desculpe pela duvida banal e muito obrigado pela atenção!!!

rodrigo_salla

Diego, voce poderia por gentileza me explicar essa parte do codigo

soma += i

nao entendi a logica disso

cassio

soma += i é uma maneira resumida de escrever

soma = soma + i

é a mesma coisa :slight_smile:

tecgirl

Olá meninos, bem Rodrigo estou fazendo os exercícios que você postou aqui, tb sou iniciante, quanto mais exercitar melhor, certo? :slight_smile: :thumbup:

renatoes

Olá

Exatamente pratique sempre :stuck_out_tongue:
Nem ligue mto para o “desempenho” do programa, faça-o funcional primeiro depois aprimore suas técnicas para fazê-lo melhor :wink:

[]'s, se tiverem duvidas postem ai q a galera do forum ajuda !

tecgirl

Gostaria de saber de onde o comando (% ) ta pegando o resto da divisão, se não tem divisão no código? Alguém poderia me explicar?

import java.io.*;
public class Multiplo {
    
        public static void main (String [] args) {
        int i;
        
        for ( i = 3; i <=100; i++){
          
           if (i % 3 == 0){
          
           System.out.print(" "+ i);
            }
        }
   }
    
}

Desde já agradeço a atenção…

renatoes

o comando % serve para isso mesmo!

ele pega o resto da divisão de um número por outro

Exemplo:

7 / 4 = 1
7 % 4 = 3

:wink:

cassio

O % executa a divisão implicitamente e já retorna o resto da dita cuja… O % É uma divisão, mas ao invés de retornar o quociente, retorna o resto…

O que seu código faz é imprimir todos os números divisíveis por 3 no intervalo de 0 a 100.

E

Vou ajuda-lo com o exercício do factorial e fibonacci ambos recursivos!

public class Fibonacci
{

//declaração recursica do método fibonacci
public long fibonacci( long number)
{
	if(( number == 0) || ( number == 1))// casos básicos
	return number;
	
	else // passo da recursão
	
	return fibonacci ( number - 1) + fibonacci ( number -2 );
	
}


public void showFibonacci()
{
	
	for ( int counter = 0; counter <= 10; counter ++ )
	{ 
	
	   System.out.printf( "Fibonacci de %d e: %d\n", counter, fibonacci (counter) );
	
	}
}	
	
public static void main ( String [] args )
{
	new Fibonacci().showFibonacci();
}

}

// Factorial

public class Factorial

{

//declaração recursiva do método factorial

public long factorial( long number )

{

long result = 1;
//declaração iterativa do método factorial
	
	for ( long i = number ; i >= 1; i--)
	result *= i;
	
	
    return result;	
}

public void showFactorials()
{
	for( int counter = 0; counter <= 10; counter++ )
	System.out.printf("%d! = %d\n", counter, factorial( counter ));
}

// Insira o método main aqui assim como no fibonacci, 
// mas chamando o método showFactorials()

}

tecgirl

Obrigada, (Cassio e Lordi) são uns amores… :wink: …é q ja tinha feito um programinha assim( em pascal), mas era um pouquinho direfente(pra não dizer muito, hehehe).

*Mais uma vez obrigada pela atenção…

gbmesso

Olá. Os exercicios são bons para treino e prática sim. De repente poderia até ter um Forum só para postagem de exercicíos…

Mas fiz o terceiro

public class ImprimeMultiploTres
{
	public static void main(String args[])
	{
		for (int cont = 1; cont < 101; cont++)
		{
			if (cont % 3 == 0)
			System.out.println(cont);
		}
	}

}
paulinhohd

gbmesso:
De repente poderia até ter um Forum só para postagem de exercicíos…

Realmente a idéia de um índice só para exercícios seria bom, se bem que pensando por outro lado, já imaginou o tanto que alguns iriam folgar?

Muito do Java a gente tem que correr atrás, não apenas postando, tenho este exercício abaixo para fazer, alguémpode me ajudar?
Assim a pessoa nem se estimula a fazer, o que sai prejudicada para os daqui que respondem!

Sei lá, apenas uma opinião minha! 8)

tecgirl
O exercicio q tinha postado antes(3) eu tinha encontrado aqui mesmo, mas o que eu estava tentando fazer era desta forma (segue código abaixo) na verdade é a mesma coisa, chega-se ao mesmo resultado hehehe :) (pessoalmente preferi o método anterior, por ser mais prático).. :wink:
/**
 *
 * @author Rosane Ananias
 */
public class Exercicio3 {
    
    /** Creates a new instance of Exercicio3 */
   
    public static void main (String[] args){
    int i, resultado, resto;
    
    System.out.println(" Os multiplos de 3 entre 1 e 100 são:\n" );
    //Fazendo o looping
        for(i = 1; i <= 100; i++){
    //Calculando  
        resultado = (i / 3);
        resto = (i % 3);
          //Condição
          if(resto == 0){
            //Se condição Verdadeira
            System.out.println("" +i);
          }
        }
    }
}
tecgirl

[color=blue]A ideia de ter um índice so de exercícios e realmente boa.[/color]
paulinhohd, vc tem razão, muitos iriam folgar, mas quem mais perderia? eles, não adianta, ctrl c e ctrl v pode dar notas, na facu ou em cursos (no caso de trabalhos), mas em provas? (ta certo q até ai, muitos damos um jeitinho :roll: ), mas e na vida profissional? ai não tem ctrl c…ctrl v que dê jeito. Moral da história? hahaha

“Tem que fazer, zequinha ou você não irá aprender” :lol:

paulinhohd

tecgirl:
“Tem que fazer zequinha ou você não irá aprender” :lol:

Hahah boa tecgirl…e é por isso que a educação não vai pra frente rs…E é realmente na hora em que a pessoa chega an empresa que olha pra trás e vê que o ctrl+c ctrl+v não adiantou muito rs…
8)

E

Isso é muito relativo, se vc dah crtl z crtl v e nada mais com certeza um dia c irá sentir dificuldades no mercado de trabalho mas, se vc dah crtl z crtl v e tenta estudar o problema ( programa ) c irá aprender a lógica do programa, aprenderá melhor ainda se tentar modifica-lo fazendo suas próprias experiências, acho q é isso que enriquece o aluno, aprender, modificar fazendo suas próprias experiências!

silva.fernandes

Acredito que esse é o principal intuito de um Forum.

As pessoas aprenderem pelo troca de informação, troca de experiências e não poucos se aproveitarem deste troca e levarem vantagem nisso.

Isso é questão de cultura.

:slight_smile:

Mantu

Pra exercitar: tentem fazer o fibonacci não-recursivo com o menor número possível de variáveis

bebad

muito boa essa do topic com exercicios…muito mesmo!!!

quem nao quizer, nao precisa responder, apenas os interessados!!!

renatoes

Concordo, até mesmo a Sun disponibiliza seus tutoriais para aprendizado já com o código do programa (que é pra justamente vc aprender a lógica de como utilizar tal código).

Quanto a idéia de uma parte do fórum dedicada só a exercicios seria mto bom! As vezes exercicios de livros e net nao empolgam mto, e aqueles que já tem mais conhecimento e experiencia poderia lançar alguns exercicios mais desafiadores, até pra que cada um tente implementar e comparar seus resultados com outros.

Se precisar conte comigo pra ajudar qto a isso ^^

[]'s

rodrigo_salla

tecgirl, bom dia…

Pensei em utilizar o operador % no exercicio 3, ele e parecido com o for do primeiro para gerar os numeros e com o if penso em imprimir os multiplo de 3, não mas fiz ainda, mas a ideia e mais ou menos assim:

3)Imprima todos os múltiplos de 3, entre 1 e 100.

for…(exe n1)

if(talNumero % 3 ==0)

{

System.out.println(talNumero + " e multiplo de 3.");

}
gbmesso

Essa também é legal: Calculo de Juros Composto (para investimento ou financiamento…)
Fiz o algoritimo mas acredito que o resultado não está muito certo. Não deu tempo de eu analisar. Mas podem testar com Valor Presente: 6000, Juros (3,5%) mas na tela deve-se digitar 0,035 (da até para fazer a conversão… depois eu faço) e a taxa de juros em numero de meses…
Tai meu código… quem quiser estudar e aprimorar… acho um exemplo legal

import java.util.Scanner;

public class CalculoJurosComposto
{
	public static void main ( String argv[] )
	{

		double valorPrincipal = 0;
		double taxa = 0;
		int tempo = 0;
		double valorCalculado = 0;
		int contador = 1;

		Scanner input = new Scanner(System.in);

		System.out.print("Informe o valor principal: ");
		valorPrincipal = input.nextDouble();

		System.out.print("Informe taxa de juros: ");
		taxa  = input.nextDouble();

		System.out.print("Informe período (a.m.): ");
		tempo  = input.nextInt();

		while ( contador <= tempo  )
		{
			System.out.printf("Valor calculado mes a mes (%d) : %.2f\n", contador, calcula(valorPrincipal, taxa, 

contador));

			valorCalculado += calcula(valorPrincipal, taxa, contador);
			++contador;
		}

		System.out.printf("Valor calculado com juros %.2f", valorCalculado);
		
	}

	private static double calcula(double valorPrincipal, double taxa, int tempo)
	{
		return valorPrincipal * Math.pow(1 + taxa, tempo);
	}
}
gbvbahia01

Estou realmente necessitando de ajuda no exercicio 8:
(opcional) Imprima a seguinte tabela, usando fors encadeados:
1
2 4
3 6 9
4 8 12 16
n n*2 n*3 .... n*n

O outros eu já fiz, inclusive o Fibonacci de maneira mais simples...
public class P26_6
{
	public static void main ( String[] args )
	{
		int s1 = 0;
		int controle = 0;
		int s2 = 1;
		for (int i = 0; controle <= 100; )
		{
			System.out.println(s1 );
			i = s1 + s2;
			controle = s1;
			s1 = s2;
			s2 = i;
			
			
			
		}
	}
}
Fogo tá o monte de variaveis hehehe!
sergiotaborda
gbvbahia01:
Estou realmente necessitando de ajuda no exercicio 8: (opcional) Imprima a seguinte tabela, usando fors encadeados: 1 2 4 3 6 9 4 8 12 16 n n*2 n*3 .... n*n O outros eu já fiz, inclusive o Fibonacci de maneira mais simples...
public class P26_6
{
	public static void main ( String[] args )
	{
		int s1 = 0;
		int controle = 0;
		int s2 = 1;
		for (int i = 0; controle <= 100; )
		{
			System.out.println(s1 );
			i = s1 + s2;
			controle = s1;
			s1 = s2;
			s2 = i;
			
			
			
		}
	}
}
Fogo tá o monte de variaveis hehehe!

O problema 8 não tem nada a haver com a sequencia de fibonacci.
Vc tem que imprimir na mesma linha todos os multiplos de n de 1 até n ou seja

1 = 1X1
2 4 = 1x2 2x2
3 6 9 = 1x3 2x3 3x3

Repare que a cada linha o numero é diferente e a cada "coluna" o multiplicador é diferente.

(Nota: o seu algoritmo de fibonacci imprime 0. 0 não faz parte da sequencia que é 1 1 2 3 5 8 .. )

gbvbahia01

Valeu pela dica!
"O problema 8 não tem nada a haver com a sequencia de fibonacci. " Eu sei, so estava querendo falar que estou ralando um bocado e não quero nada de mão beijada, entedeu?
Sobre o 0, na apostila da Caelum no enuciado mostra: 0,1,1,2,3,5,8,13,21… O mais dificil que eu achei foi por esse 0, e você me fala que tá errado… aff que raiva, tinha perdido meia hora a menos… hehehehehe

Valeu a dica, estava com dificuldade de bolar uma maneira de fazer esse for… você me deu umas ideias!

claudneto
class Exercicio {
  
  public void oito () {
    int i = 1;
    while (i < 20) {
      int n = 1;
      while (n <= i) {
        System.out.print (n*i + " -> ");
        n++;
      }
      System.out.println();
      i++;
    }
  }
}

Eu fiz com while...passe pra for agora...

^^ :wink:

gbvbahia01
Fiz o fibonacci :)
int i = 1;
		int j = 0;
		do
		{
			System.out.println( i + j + " " );
			i = j + i;
			System.out.println( i + j + " " );
			j = i + j;

		}
		while ( ( i + j ) <= 100 );
o for de multiplos eu não consegui... tive uma ajudinha :(
for ( int i = 1; i <= 10; i++ )

	    {

	        for ( int j = 1; j <= i; j++ )

	        {

	            System.out.print( i * j + " " );

	        }

	        System.out.print( "\n" );

	    }

Valeu galera :)

RDSILVA

Olá
O % é nossa antiga função MOD de outras linguagens
você deve ter visto como esta função MOD funciona na faculdade, sempre retorna o resto da divisão
se você utilizar o / retorna a parte inteira da divisão

abraço

F
gbvbahia01:
Estou realmente necessitando de ajuda no exercicio 8: (opcional) Imprima a seguinte tabela, usando fors encadeados: 1 2 4 3 6 9 4 8 12 16 n n*2 n*3 .... n*n O outros eu já fiz, inclusive o Fibonacci de maneira mais simples...
public class P26_6
{
	public static void main ( String[] args )
	{
		int s1 = 0;
		int controle = 0;
		int s2 = 1;
		for (int i = 0; controle <= 100; )
		{
			System.out.println(s1 );
			i = s1 + s2;
			controle = s1;
			s1 = s2;
			s2 = i;
			
			
			
		}
	}
}
Fogo tá o monte de variaveis hehehe!
Consegui!

Mas só depois de analisar uma solução semelhante com o while.

Lá vai:

public class ex8 {
public static void main(String[] Args) {
int n=1;
for (;n<=6;n++){
int r=1;
for(;r<=n;r++){
System.out.print(n*r+" ");
}
System.out.println();
}
}
}

cleyvison

.

pedrinho98765

.

pedrinho98765

pedrinho98765

!

pedrinho98765
falecomroberto:
gbvbahia01:
Estou realmente necessitando de ajuda no exercicio 8: (opcional) Imprima a seguinte tabela, usando fors encadeados: 1 2 4 3 6 9 4 8 12 16 n n*2 n*3 .... n*n O outros eu já fiz, inclusive o Fibonacci de maneira mais simples...
public class P26_6
{
	public static void main ( String[] args )
	{
		int s1 = 0;
		int controle = 0;
		int s2 = 1;
		for (int i = 0; controle <= 100; )
		{
			System.out.println(s1 );
			i = s1 + s2;
			controle = s1;
			s1 = s2;
			s2 = i;
			
			
			
		}
	}
}
Fogo tá o monte de variaveis hehehe!
Consegui!

Mas só depois de analisar uma solução semelhante com o while.

Lá vai:

public class ex8 {
public static void main(String[] Args) {
int n=1;
for (;n<=6;n++){
int r=1;
for(;r<=n;r++){
System.out.print(n*r+" ");
}
System.out.println();
}
}
}

caraca falecomroberto....

dei uma modificadazinha no seu programa, e consegui fazer com que ele imprima a potenciacao ao quadrado dos numeros passador por argumentos, que sao os respectivos intervalos...

void pows(int a, int b) {
		System.out.print("Quadrados\n{ ");
		for (;a<=b;a++){
			int r=a;
			for(;r<=a;r++){
				if (a*r==Math.pow(b, 2)) {
				System.out.print(a*r+" }\n\n");
				} else {
					System.out.print(a*r+", ");
				}
			}
		}
	}

consegui tbm outra alteraçao do seu exemplo que faz aquela montanha com intervalos definidos pelo usuario...
só não tentei fazer com que ela inicie no cantinho da tela quando você coloca o 1º número diferente de 1.... se segue:

void lock(int n, int o) {
		System.out.print("Tabuada multiplicação em montanha\n");
		for (; n<=o; n++) {
			int r = 1;
			for(; r<=n; r++){
				if (n*r != n*n) {
					System.out.print(n*r+" ");
					} else if (o*o == n*r) {
						System.out.println(n*r);
						} else {
							System.out.print(n*r);
						}
				}
			System.out.println();
			}
		}
	}

e meu fibonacci ficou assim.....

void fibonacci(int z) {
		int y = z+1;	//'x' corresponde ao número de termos desejado
		
		int[] seq = new int[y];
		{
			seq[0] = 0;
			seq[1] = 1;
			
			System.out.print("Sequência de Fibonacci\n{ "+seq[1]+",");
			
			for (int i = 2; i < seq.length; i++) {
				seq[i] = seq[i-1] + seq[i-2];
				if (i==(seq.length-1)) {
					System.out.print(" "+seq[i]);
					}
				else {
					System.out.print(" "+seq[i]+",");
					}
				}
			System.out.print("... }");
			}
		}
	}
.. esses sao alguns dos meu exemplos..
Edu22SNT

tecgirl:
Gostaria de saber de onde o comando (% ) ta pegando o resto da divisão, se não tem divisão no código? Alguém poderia me explicar?

import java.io.*;
public class Multiplo {
    
        public static void main (String [] args) {
        int i;
        
        for ( i = 3; i <=100; i++){
          
           if (i % 3 == 0){
          
           System.out.print(" "+ i);
            }
        }
   }
    
}

Desde já agradeço a atenção…

Nesse caso tecgril ele vai pegar todos os multiplos de 3 usando o %.

Criado 17 de dezembro de 2006
Ultima resposta 26 de jun. de 2012
Respostas 43
Participantes 21