Ir ao conteúdo
  • Cadastre-se

erro em programa na linguagem c++


Posts recomendados

   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;
}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...