Exercício de algoritmos

6 respostas
A

Olá pessoa,estou com dificuldades para resolução de alguns exercícios de algoritmos e por favor se puderem me ajudar agradeço!

  1. (1.0) O objetivo do método abaixo é calcular a potência de xn, onde x é um número real e n um número inteiro positivo. Por exemplo, se n=5 e x=3.0 ele deverá calcular (3.0)5 = 243.0. Porém, existem alguns erros de lógica (faltam algumas linhas de código e temos também instruções incorretas). Você deverá reescrever o código para que ele calcule a potência corretamente.
public int potencia(double x, int n) {

double acumula = 1;

while (n >= 0) {

acumula = x * x;

n = n ? 2;

}

return acumula;

}

6 Respostas

J

leia com atenção:



http://www.ime.usp.br/~pf/algoritmos/aulas/recu.html

CintiaDR

Acho que esse exercício nem carece de recursividade. O seu laço não está ok…

public double potencia(double x, int n) {
  double acumula = 1;

  for (int i = 1; i <= n; i++){
    acumula *= x;
  }

  
  return acumula;
}

Deve ser algo assim.

J

CintiaDR:
Acho que esse exercício nem carece de recursividade. O seu laço não está ok…

public double potencia(double x, int n) {
  double acumula = 1;

  for (int i = 1; i <= n; i++){
    acumula *= x;
  }

  
  return acumula;
}

Deve ser algo assim.


Está perfeito. O tópico sobre recursividade ajuda a pessoa aprender a resolver esses tipos de problema.

A

Muito obrigada pela ajuda de vocês,só que tenho algumas dúvidas ainda,aproveitando estou colocando aqui.Obrigadaa! :slight_smile:

a)Crie uma classe Conjunto que armazenará um conjunto de números reais (double). Nesta classe você deverá ter um construtor que receberá a capacidade deste conjunto. Um método insere por onde você adiciona elementos no vetor, um método limpa que faz o conjunto ficar vazio e um método que verifica se o conjunto está cheio.

b) Escreva um método que recebe um vetor v de números inteiros preenchido com valores entre 1 e 100. Seu método deverá retornar a frequência de cada um desses números, ou seja, o número de vezes que o número 1 aparece no vetor v, o número de vezes que o 2 aparece no vetor v e assim sucessivamente até o número 100.

c)Escreva um programa que lê um número inteiro n positivo e uma sequência de n números inteiros positivos. Seu programa deverá imprimir a quantidade de números da sequência que são primos. Dizemos que um número é primo se os únicos divisores positivos forem o 1 e o próprio número. Por exemplo, se n=7 e a sequência dos números for: 3, 4, 8, 23, 17, 35 e 11. Seu programa deverá imprimir: são 4 números primos. Dica, construa primeiramente um método que dado um número inteiro verificar se ele é primo ou não e depois utilize dentro do seu programa o método

Marcio_Duran

aprendizJava01:
Muito obrigada pela ajuda de vocês,só que tenho algumas dúvidas ainda,aproveitando estou colocando aqui.Obrigadaa! :slight_smile:

a)Crie uma classe Conjunto que armazenará um conjunto de números reais (double). Nesta classe você deverá ter um construtor que receberá a capacidade deste conjunto. Um método insere por onde você adiciona elementos no vetor, um método limpa que faz o conjunto ficar vazio e um método que verifica se o conjunto está cheio.


conceitos aqui estão misturados.


b) Escreva um método que recebe um vetor v de números inteiros preenchido com valores entre 1 e 100. Seu método deverá retornar a frequência de cada um desses números, ou seja, o número de vezes que o número 1 aparece no vetor v, o número de vezes que o 2 aparece no vetor v e assim sucessivamente até o número 100.

Recursão.

S

Marcio Duran:
aprendizJava01:
Muito obrigada pela ajuda de vocês,só que tenho algumas dúvidas ainda,aproveitando estou colocando aqui.Obrigadaa! :slight_smile:

a)Crie uma classe Conjunto que armazenará um conjunto de números reais (double). Nesta classe você deverá ter um construtor que receberá a capacidade deste conjunto. Um método insere por onde você adiciona elementos no vetor, um método limpa que faz o conjunto ficar vazio e um método que verifica se o conjunto está cheio.


conceitos aqui estão misturados.

Na segunda opção não acho legal vc usar recursão por um simples motivo:
Você deve estar iniciando e recursividade é algo avançado.

Pense um pouco, você pode usar um laço dentro de outro para percorrer o vetor v vezes e contar cada número de uma vez. Essa seria uma solução fácil (e porca heheh).

Criado 3 de junho de 2009
Ultima resposta 4 de jun. de 2009
Respostas 6
Participantes 5