Jump to content

Recommended Posts

Boa noite/dia gente. Preciso de ajuda aqui. Tenho um exercício no qual tenho de fazer um programa em pascal com o seguinte enunciado:

Considere a soma S dos termo da série infinita apresentada abaixo:

soma_infinita.png

Fazer um programa em Free Pascal que calcule o valor aproximado da soma S dos termos da série até o momento em que a diferença das normas (módulo) de 2 termos consecutivos for menor que 0,000001 ({i.e.}, norma da diferença das normas de dois termos consecutivos).

 

Segue meu algoritmos/programa:

 

program calcserie;
var
   soma, a1, a2, an  : real;
   sinal                : longint;
   cont, n, fat         : integer;

begin
   n := 0;
   a1 := 1;
   a2 := 0;
   soma := 0;
   cont := 1;
   fat := 1;
   an := 1;
   sinal := 1;

   while (an) > 0.000001 do
      begin
      n := n + 2;
        while cont <= n do
            begin
            fat := fat * cont;
            cont := cont + 1;
        end;
     soma := (soma + (a1 * sinal));
     sinal := sinal * -1;
     a2 := a1;
     a1 := ((1/fat));
        if (a2 < 0) then
        an := (a2 * -1) - a1
        else if (a1 < 0) then
        an := (a2) - (a1 * -1);
        end;
   write (soma:0:15);
end.

 

Meu erro está sendo a partir da 3 casa decimal

02.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Daniel Talian
      Gostaria de agradecer a ajuda desde já!
       
      Estou com a seguinte dificuldade, estou gerando uma matriz aleatoriamente, na hora de mostrar os números gerados gostaria de fazer uma operação aritmética (soma), e mostrar somente os 8 números que fechem o resultado dessa soma, no exemplo estou procurando o resultado 500
       
      #include <stdlib.h>
      #include <time.h>
      #define N 1000
      #define L 8
      #define F 100

      int main (){
          int freq[F]; 
          int jogo[N][L], jogo1[N][L], i, j, k, aux, soma, somacont;
          char ja_consta;
          for (i=0; i<F; i++)
              freq = 0;
          srand (time(NULL));
          
          for (i=0; i<N; i++){ 
              for (j=0; j<L; j++){
                  do{
                      jogo[j] = rand() % F + 1; 
                      ja_consta = 'N';
                      for (k=0; k<j; k++) 
                          if (jogo[j] == jogo[k])
                              ja_consta = 'S';
                  }while (ja_consta == 'S'); 
                  jogo1[j] = jogo[j]; 
                  freq[jogo[j]-1]++; 
              }
          }
          printf("Jogos sorteados\n"); \\AQUI EM VEZ DE MOSTRAR TUDO, GOSTARIA DE REALIZAR A SOMA E MOSTRAR SOMENTE OS QUE BATEM COM OS 500
          somacont=0;
          for(i=0;i<N;i++){ 
              soma=0;
              printf("Jogo %d:    ", i+1);
              for(j=0;j<L;j++){
                  soma += jogo[j]; 
             printf("%d ", jogo[j]);
                  if(soma == 500){
                      printf(" Soma: %d ", soma);
                      printf("%d ", jogo[j]); //AQUI ESTA IMPRIMINDO SOMENTE O ULTIMO NUMERO DA LINHA,E NÃO TODA LINHA
                      somacont++;
                      }       
                  }printf("\n");        
              }
          printf("\n");
          printf("Vezes que a media Saiu:%d ", somacont);
          printf("\n");
          
          return 0;
      }
    • By jinxx
      Gente alguém pode me da uma luz nesse algoritmo? como eu resolvo isso pelo menos? Tentei utilizar o comando arquivo <> no visualg, mas não da certo. 
       
      Você decidiu comprar um carro e para ajudar na sua decisão, você resolveu desenvolver um código que mostre ao final qual é o menor custo ao final de ano para cada modelo escolhido baseado no custo total de compra do carro, custo com impostos, custo com combustível (considerando o consumo médio de cada veículo e um total estimado de 10.000 Km rodados no ano e o valor de médio R$ 3,98 para o litro de combustível) e custos com seguro.
      Como dados de entrada você pode criar um arquivo que contenha as seguintes informações que serão carregadas no programa.
      Modelo do veículo
      Custo total de compra
      Custo total de impostos
      Consumo médio de combustível (Km/l)
      Custos com seguro
      Chevrolet Ônix
      R$36.000,00
      R$1.400,00
      11,8
      R$1.600,00
      Ford Fiesta
      R$32.000,00
      R$1.300,00
      13,5
      R$1.800,00
      VW Fox
      R$31.000,00
      R$1.450,00
      12,3
      R$1.300,00
      VW Polo
      R$41.000,00
      R$1.600,00
      13,5
      R$1.500,00
      Hyundai HB20
      R$40.000,00
      R$1.200,00
      11,6
      R$1.200,00
      Renault Sandero
      R$30.000,00
      R$1.300,00
      12,8
      R$1.900,00
      Ao final o programa deverá mostrar os dados apresentados na tabela para cada veículo e o custo total no final de um ano para cada um deles.
    • By Jhonata Candido
      Bom dia amigos,
       
      Não consigo imprimir na tela o resultado da consulta. Direto no banco o resultado é exibido, porém com o código abaixo não consigo exibir na tela. O que estou fazendo de errado?
       
              <?php                $sql_pagamento = "SELECT SUM(montante_pago) AS valor from dados INNER JOIN agenda ON 'dados.fornecedor' = '$fornecedor' AND 'dados.dt_execucao_prog' > '$lancamento'";                $query_pagamento = mysql_query($sql_pagamento);                while ($exibir = mysql_fetch_array($query_pagamento)){                    echo $exibir['valor'];                 }         ?>  
    • By Maykel dos Santos Figueire
      Gostaria de saber como faço para somar um valor já existente em um campo com um novo vindo através do method POST e somar os dois armazenando o resultado...
    • By Robson Wenzel
      Bom Dia!
       
      Estou enfrentando problemas ao realizar somas no report viewer, tenho um dataset configurado com a coluna VALOR do tipo string, e dai no tablix (tabela) eu converto os dados para o tipo monetario pelo código SQL "=FormatCurrency(Fields!Valor.Value,2)", até ai tudo certo. Mas quando eu vou somar o valor total da coluna na tabela da erro, eu uso a função "=Sum(Fields!Valor.Value)". Vocês poderiam me ajudar, gostaria de somar o total do valor e sempre da erro...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.