Ir ao conteúdo
  • Cadastre-se
Wesley Vilela

erro em programa na linguagem c++

Recommended Posts

   Olá,sou extremamente novo e imaturo na programação,comecei faz menos de 1 mês.Nesse sentido,estou fazendo um programa que tem como fim gerar variáveis aleatórias,armazenar em um vetor,impor uma condição e por fim realizar um cálculo básico.No entanto,o programa possui dois problemas:

1° quando o vetor passa de 10 mil o programa começa a dar erro.

2° aparentemente a operação final não está sendo realizada com sucesso.

Mas o porquê desse programa,a ideia é utilizar o método de Monte Carlo em um caso particular(bem abordado no livro do Giordano de física computacional),no qual é feito um lançamento de dardos aleatoriamente em um tabuleiro quadrado de lado 2,com uma circunferência de raio 1 circunscrita.Assim se analisa o primeiro quadrante e faz-se uma razão entre todos os dardos que caíram dentro da curva pelo total de dardos lançados,assim se descobre a área da curva,intuitivamente multiplica-se por 4 e se acha a área total do círculo que é pi.

OBS: o método trabalha com aproximação,ou seja,não é necessariamente exato e sim com o aumento de lançamentos de dardos a razão abordada converge para pi.

   Enfim,me ajude a solucionar o problema fazendo um imenso favor,desde já agradeço.

 

CÓDIGO

 

#include <iostream>

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main()
{
    int i,j,resultado,total;
    int vetorx[1000000];
    int vetory[1000000];
    int dentro=0;
    int fora=0;
 
    srand( (unsigned)time(NULL) );
 
    for(i=1 ; i <= 100000 ; i++)
    {
        printf("\n");
        vetorx[1000] = rand()%101;
        cout << vetorx[1000000] << endl;
        printf("\n");
    }
    for(j=1 ; j <= 100000 ; j++)
    {
        printf("\n");
        vetory[1000000] = rand()%101;
        cout << vetory[1000000] << endl;
        printf("\n");
    }
    if(vetory[1000000] <= sqrt(1-vetorx[1000000]^2))
    {
        dentro = dentro +1;
    } else
        {
        fora = fora +1;
        }
    total= fora+dentro;
    resultado = dentro/total;
    resultado= resultado * 4;
 
    printf("\n\nO RESULTADO E: %d\n\n",resultado);
 
    system("pause");
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×