Ir ao conteúdo

C Série matematica com ponto flutuante


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Boa noite gente, então, eu tenho que desenvolver um programa em C que calcule uma série matematica que mostre a mesma ao usuario, mas não tenho ideia de como fazer, podem me ajudar?

 

esse é o enunciado:

Citação

 

Elabore um programa que receba um número inteiro n,

calcule e mostre o valor da seguinte Série = 1 + 1/2 + 1/3 + ... + 1/n.

Inicie um laço de repetição com teste no final e:

a) escreva Séries Matemáticas

b). escreva Digite um número inteiro:

c). leia o número informado.

d). calcule e escreva a Série = 1 + 1/2 + 1/3 + ... + 1/n. Dica: use um laço for para calcular a série, com a variável que controla o índice variando de 1 até n.

e). escreva a série na notação matemática, conforme exemplo. (Dica: use o laço for, com índice variando de 1 até n).

Obs.: Você pode juntar as instruções dos itens d e e num único laço for.

f). o resultado da série pode ser um número com alta precisão decimal, portanto, formate a saída para que seja apresentada com duas casas decimais.

Por exemplo: se n = 5, o somatório da Série será 2,283333333.

Neste caso, escreva apenas 2.28. printf(“%.2f”, nome_variavel);

 

 

Conseguem me auxiliar? não sou familiarizado com laço ou o uso do For, estou no primeiro semestre da faculdade e o o professor ainda não ensinou a programar, eu tive que aprender por fora e ele ainda pede uns exercicios que nunca vi na vida.

Postado

@Ragnarbrody Para chegar no resultado do exemplo de n=5,

 

O For pode ser assim,

 

  for(n=1; n<=5; n++){
      f=f+(1/n);
  }

 

Para testar é só declarar as variáveis na função main e imprimir o resultado com printf.

  • Curtir 1
Postado

@Midori Eu não consegui....

meu código:

        int N1=0, i;
        float S=0;
        printf("\n");
        printf("    Série Matemática");
        printf("\n");
        printf("\nDigite aqui um número inteiro: ");
        scanf("%d", &N1);
        for (i = 1; i <= N1; i++)
        {
            S = S+(1/i);
        }
        printf("\n %f", S);

Também tentei assim:

  int N1=0, i;
        float S=0;
        printf("\n");
        printf("    Série Matemática");
        printf("\n");
        printf("\nDigite aqui um número inteiro: ");
        scanf("%d", &N1);
        for (i = 1; i <= N1; i++)
        {
            S = S+(1/N1); //tentei trocar o 'i' por 'N1'
        }
        printf("\n %f", S);

 

adicionado 2 minutos depois

a resposta deve ser exibida assim:

 

Citação

Série = 1 + 1/2 + 1/3 + 1/4 + 1/5 = 2,28.

 

Postado

@Ragnarbrody  Como a sua variável i é do tipo int, o cálculo está vindo inteiro.

 

Você pode resolver isso declarando i como float ou usando um cast: (float)i

 

Seu código com cast,

 

        int N1=0, i;
        float S=0;
        printf("\n");
        printf("    Série Matemática");
        printf("\n");
        printf("\nDigite aqui um número inteiro: ");
        scanf("%d", &N1);
        for (i = 1; i <= N1; i++)
        {
            S = S+(1/(float)i);
        }
        printf("\n %f", S);

 

  • Curtir 1
Postado

@Midori Funcionou!!!, muito obrigado

eu não sabia da existência da função cast!! me ajudou muito mesmo.

mas sabe o que posso fazer pra exibir o resultado assim:

 

Série = 1 + 1/2 + 1/3 + 1/4 + 1/5 = 2,28.

  • Solução
Postado

@Ragnarbrody Você pode fazer assim,

 

       int N1=0, i;
        float S=0;
        printf("\n");
        printf("    Série Matemática");
        printf("\n");
        printf("\nDigite aqui um número inteiro: ");
        scanf("%d", &N1);
        for (i = 1; i <= N1; i++)
        {
            S = S+(1/(float)i);
            if(i==1)
              printf("Série = 1");
            else
              printf(" + 1/%d", i);
        }
        printf(" = %.2f\n", S);

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...