GIDForums  

Go Back   GIDForums > Computer Programming Forums > C++ Forum
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 22-Mar-2010, 17:15
Petr_Kropotkin Petr_Kropotkin is offline
Junior Member
 
Join Date: Feb 2010
Posts: 83
Petr_Kropotkin is on a distinguished road

A program that simulates the rolling of two dice


Here is a simple program. Write a program that simulates the rolling of
two dice...
Here is the solution out of Deital's manual 3d ed. . This is not compiled code.
CPP / C++ / C Code:
#include <iostream>
using std::cout;
using std::ios;

#include <iomanip>

using std::setw;
using std::setprecision;
 using std::setiosflags;

 #include <cstdlib>
#include <ctime>

 int main()
 {
 const long ROLLS = 36000;
const int SIZE = 13;
// array exepected contains counts for the expected
 [b]// number of times each sum occurs in 36 rolls of the dice
int expected[ SIZE ] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };[/b]
 int x, y, sum[ SIZE ] = { 0 };

 srand( time( 0 ) );

for ( long i = 1; i <= ROLLS; ++i ) {
 x = 1 + rand() % 6;
 y = 1 + rand() % 6;
 ++sum[ x + y ];
cout << setw( 10 ) << "Sum" << setw( 10 ) << "Total" << setw( 10 );
<< "Expected" << setw( 10 ) << "Actual\n"
<< setiosflags( ios::fixed | ios::showpoint );

 for ( int j = 2; j < SIZE; ++j )
 cout << setw( 10 ) << j << setw( 10 ) << sum[ j ] << setprecision( 3 )
 << setw( 9 ) << 100.0 * expected[ j ] / 36 << "%" << setprecision(3)
 << setw( 9 ) << 100.0 * sum[ j ] / 36000 << "%\n";

 return 0;
 }

The bolded is part of the problem I couldn't figure out and is unimportant
for the discussion.
Here is a section of the readout.
Sum Total Expected Actual
2 996 2.778% 2.767%
3 2015 5.556% 5.597%
4 3005 8.333% 8.347%
5 3965 11.111% 11.014%


Now here is where things get wierd. So I decided to compile it.
Here is my code:
CPP / C++ / C Code:
#include <iostream>
#include <stdlib.h>
#include <ctime>
#include <iomanip>
using namespace std;

int main( )
{
 unsigned long int mySum[12]={0},die_score[11]={0}
int die1,die2,sum,x=0,y=0,X;

srand(time(0));
for(int count=0;count<=36000;++count)
 {
die1=1+rand()%6;
die2=1+rand()%6;
++mySum[die1+die2];
}
cout<<"sum"<<setw(8)<<"total"<<setw(25)<<"Experiemental Prob."<<endl;
for(int j=2;j<13;++j)
cout<<j<<setw(8)<<mySum[j]<<setw(23)<<100.0*mySum[j]/36000<<endl;
cin>>X;
My solution set was completely different using the same code !
Here is my partial readout:
Sum Total Experimental Prob.
2 950 2.64%
3 1995 5.54%
4 2938 8.16%
5 4086 11.35%

Pretty wierd huh ?

How can I reconcile this. Is it property of psuedo-random numbers,my code ,probabilty. Looking at the Experimental Prob, the results
are pretty close but Totals are pretty far apart for some the scores. If we look at Sum 5 it over a 100 points !

One other question if using a Case-Switch statement with an array counter, should counts be the same?
Ex
CPP / C++ / C Code:
case (sum)
{
switch 2:
 ++die_score[0];
break;
switch 3:
++die_score[1];
break;
...
}
You think that the totals from die_score[11] would reflect the ones from mySum[die1+die2]. I found they didn't. I can't figure it out
  #2  
Old 22-Mar-2010, 18:25
WaltP's Avatar
WaltP WaltP is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Midwest US
Posts: 3,435
WaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to all

Re: what's happening here ?


What's weird? What's to reconcile?
Your answers are well within random expectations.
Code:
total yours %diff 2 996 950 4.84% 3 2015 1995 0.99% 4 3005 2938 2.23% 5 3965 4086 2.96%
Were you expecting to get exactly what Deital had? You're dealing with randomness. You have random error.
__________________

Definition: Politics
Latin, from
poly meaning many and
tics meaning blood sucking parasites
-- Tom Smothers
  #3  
Old 22-Mar-2010, 18:58
Petr_Kropotkin Petr_Kropotkin is offline
Junior Member
 
Join Date: Feb 2010
Posts: 83
Petr_Kropotkin is on a distinguished road

Re: what's happening here ?


No. Some of the data counts just seemed a bit unreasonable.
Thanks.
  #4  
Old 22-Mar-2010, 19:50
Mexican Bob's Avatar
Mexican Bob Mexican Bob is offline
Regular Member
 
Join Date: Mar 2008
Location: Chicxulub, Yucatán
Posts: 680
Mexican Bob is a jewel in the roughMexican Bob is a jewel in the roughMexican Bob is a jewel in the roughMexican Bob is a jewel in the rough

Re: what's happening here ?


You previously stated that you use whitespace effectively. Did you happen to notice the difference between the book code that you posted (which is copyrighted) and "your" code, which most definitely (notice, no 'a') is NOT particularly whitespace friendly?

If anything, the Deitel (again, no 'a' ...hello, McFly, WAKE UP!) code excessively uses whitespace while your code has no sense of whitespace at all.

Here's the deal. The REAL deal. If you do not have the "attention to detail" to even be able to accurately copy the name of the authors whose book you have in your possession, how can we expect anything but a lack of attention to detail in everything else from you?

Of course, you're likely to disagree with me. You have demonstrated a limited ability to comprehend the fundamentals of the language without an argument.


MxB
  #5  
Old 22-Mar-2010, 20:21
Petr_Kropotkin Petr_Kropotkin is offline
Junior Member
 
Join Date: Feb 2010
Posts: 83
Petr_Kropotkin is on a distinguished road

Re: what's happening here ?


I will put more white spaces next time and try to make my code more friendly for people to read.
Here is the example of my code with white spaces
CPP / C++ / C Code:
#include <iostream>
#include <stdlib.h>
#include <ctime>
#include <iomanip>
using namespace std;

int main( )
{

unsigned long int mySum[12]={0},die_score[11]={0}
int die1,die2,sum,x=0,y=0,X;

srand(time(0));

  for(int count=0;count<=36000;++count)
  {
  die1=1+rand()%6;
  die2=1+rand()%6;
  ++mySum[die1+die2];
 }

  cout<<"sum"<<setw(8)<<"total"<<setw(25)<<"Experiemental Prob."<<endl;

 for(int j=2;j<13;++j)
 cout<<j<<setw(8)<<mySum[j]<<setw(23)<<100.0*mySum[j]/36000<<endl;

cin>>X;
exit 0;
}
  #6  
Old 22-Mar-2010, 20:48
Howard_L Howard_L is offline
Senior Member
 
Join Date: Apr 2007
Location: Maryland/PA, USA
Posts: 1,007
Howard_L is a jewel in the roughHoward_L is a jewel in the roughHoward_L is a jewel in the rough

Re: what's happening here ?


Next Time!

Well if you ain't got the time, what makes you think we do?
I'mnottoointerestedintryingtoreadabunchofstuffcram medtogether! Are you?
  #7  
Old 22-Mar-2010, 22:50
WaltP's Avatar
WaltP WaltP is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Midwest US
Posts: 3,435
WaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to allWaltP is a name known to all

Re: what's happening here ?


What Howard is trying to say is use better formatting.
__________________

Definition: Politics
Latin, from
poly meaning many and
tics meaning blood sucking parasites
-- Tom Smothers
  #8  
Old 22-Mar-2010, 23:46
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 6,153
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: what's happening here ?


Quote:
Originally Posted by Petr_Kropotkin
...
The bolded is part of the problem I couldn't figure out and is unimportant
for the discussion.
Huh? You couldn't figure it out? And it's unimportant?
Then why did you attempt to bold it?

Oh, well, maybe it's important to others who may be reading this but are too shy to ask.

So...

CPP / C++ / C Code:
// array exepcted contains counts for the expected
// number of times each sum occurs in 36 rolls of the dice
int expected[ SIZE ] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };
When you roll two six-sided dice there are 36 possible outcomes.

There is no way to get a total of zero.

There is no way to get a total of one.

Thre is only one way that you can get a total of 2: 1-1

Here are the two ways that you can get total of 3: 1-2, 2-1

Here are the three ways that you can get a total of 4: 1-3 2-2 3-1

Here are the four ways that you can get a total of 5: 1-4, 2-3, 3-2, 4-1

Here are the five ways that you can get a total of 6: 1-5, 2-4, 3-3, 4-2, 5-1

Here are the six ways that you can get a total of 7: 1-6, 2-5, 3-4, 4-3, 5-2, 6-1

Here are the five ways that you can get a total of 8: 2-6, 3-5, 4-4, 5-3, 6-2

Here are the four ways that you can get a total of 9: 3-6, 4-5, 5-4, 6-3

Here are the three ways that you can get a total of 10: 4-6, 5-5, 6-4

Here are the two ways that you can get a total of 11: 5-6, 6-5

There is only one way that you can get a total of 12: 6-6

There are no other possibilities (Unless one of them---or, maybe, both---falls off of the table, in which case my friends in Reno will mockingly shout, "No Dice!")

Now do you understand why the array members have the values that are shown?

Then for values of j from zero through 12, the probability that a given roll of two fair dice will have a value of j is given by the array element expected[j] divided by 36.0.

Now, forget the program for a minute.

Suppose I told you that I had rolled a pair of dice 36,000 times and I got the following results:

Code:
Number of rolls = 36000 Value Observed Expected 2 1024 1000 3 2026 2000 4 3018 3000 5 3987 4000 6 4870 5000 7 5917 6000 8 5075 5000 9 4074 4000 10 3048 3000 11 1991 2000 12 970 1000

See how it goes? The expected number of occurrences of a particular value is equal to the number of throws times the probability of the occurrence of that particular value.

(Of course we could execute any number of throws, but 36,000 makes expected numbers easy to calculate, right? Didn't even need a calculator, much less a program.)

The question is: Were these fair throws? There are statistical methods for testing whether results are consistent (to a certain degree of numerical "confidence") with truly random values of each die that was thrown, but that's another topic.

Surely you don't expect that out of 36,000 "random" throws that there will be exactly 1000 snake-eyes and exactly 2000 threes and exactly 3,000 fours, etc., do you? I mean, if the observed numbers were all exactly the same as the statistically expected values, I would suspect that the game was fixed. See Footnote.

As for your program: Since its calculations are based on those from the book, I would expect the results to be consistent. Instead of using srand(time(0), use the same fixed number for both programs. For example
CPP / C++ / C Code:
srand(12345);
Now you will get exactly the same set of values each time that you run the program, and you should get exactly the same set of values from each of the two programs, unless you have made a mistake in translation. Of course, after initial testing, you will probably want to run the program lots of times, each time with a different seed, so time(0) is reasonable, assuming the program runs are at least a second apart.


Other than a missing semicolon and a missing closing brace, your program has a bug that results in undefined behavior: The dimension of your mySum array should be 13, not 12.

There is also a (very minor) bug in your calculations: Your program simulates 36,001 rolls but your percentage calculation has division by 36,000. This results in a very slight bias in your percentages.
Quote:
Originally Posted by Petr_Kropotkin
One other question if using a Case-Switch statement with an array counter, should counts be the same?

Why the heck would you do the case stuff instead of just using the index?

Well, maybe to give you some confidence in your knowledge of program constructs, so, maybe it's worth a little investigation.

So...

If you do the calculations the same, the results have to be the same, right? So, if your results aren't the same, the calculations weren't the same.

The easiest way to compare them is to do the calculations exactly the same:

CPP / C++ / C Code:
    int die_score[13] = {0};
    int sum[13]       = {0};
    int z;
    for (int i = 1; i <= ROLLS; ++i) {
        z  = 1 + rand() % 6;
        z += 1 + rand() % 6;
        ++sum[z];
        switch (z) {
            case 2: ++die_score[2];
                    break;
            case 3: ++die_score[3];
                    break;
            case 4: ++die_score[4];
                    break;
            case 5: ++die_score[5];
                    break;
            case 6: ++die_score[6];
                    break;
            case 7: ++die_score[7];
                    break;
            case 8: ++die_score[8];
                    break;
            case 9: ++die_score[9];
                    break;
            case 10: ++die_score[10];
                    break;
            case 11: ++die_score[11];
                    break;
            case 12: ++die_score[12];
                    break;
        }

    }

The sum array will have exactly the same contents as the die_score array. Exactly.


Regards,

Dave

Footnote:
Left as exercises for the motivated (and talented and knowledgeable) student (but not necessarily a topic for further discussion on a generic programming assistance forum like this one):


What is the probability that, out of 36,000 fair throws, there are exactly 1000 snake-eyes?

What is the probability that there are exactly 2000 threes?

Etc.

Now, what is the probability that there are exactly 1000 snake-eyes and 2000 threes and 3000 fours and etc.

In terms of programming:

If the pseudo-random numbers have all necessary statistical properties to simulate an unlimited number of throws of two six-sided dice, how many program runs of 36,000 throws would you expect to have to execute before you could reasonably expect to see exactly 1000 snake-eyes?

Etc.
Last edited by davekw7x : 23-Mar-2010 at 01:00.
  #9  
Old 23-Mar-2010, 07:01
Petr_Kropotkin Petr_Kropotkin is offline
Junior Member
 
Join Date: Feb 2010
Posts: 83
Petr_Kropotkin is on a distinguished road

Re: what's happening here ?


Quote:
Originally Posted by davekw7x
Huh? You couldn't figure it out? And it's unimportant?
Then why did you attempt to bold it?

Oh, well, maybe it's important to others who may be reading this but are too shy to ask.

So...

CPP / C++ / C Code:
// array exepcted contains counts for the expected
// number of times each sum occurs in 36 rolls of the dice
int expected[ SIZE ] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };
When you roll two six-sided dice there are 36 possible outcomes.

There is no way to get a total of zero.

There is no way to get a total of one.

Thre is only one way that you can get a total of 2: 1-1

Here are the two ways that you can get total of 3: 1-2, 2-1

Here are the three ways that you can get a total of 4: 1-3 2-2 3-1

Here are the four ways that you can get a total of 5: 1-4, 2-3, 3-2, 4-1

Here are the five ways that you can get a total of 6: 1-5, 2-4, 3-3, 4-2, 5-1

Here are the six ways that you can get a total of 7: 1-6, 2-5, 3-4, 4-3, 5-2, 6-1

Here are the five ways that you can get a total of 8: 2-6, 3-5, 4-4, 5-3, 6-2

Here are the four ways that you can get a total of 9: 3-6, 4-5, 5-4, 6-3

Here are the three ways that you can get a total of 10: 4-6, 5-5, 6-4

Here are the two ways that you can get a total of 11: 5-6, 6-5

There is only one way that you can get a total of 12: 6-6

There are no other possibilities (Unless one of them---or, maybe, both---falls off of the table, in which case my friends in Reno will mockingly shout, "No Dice!")

Now do you understand why the array members have the values that are shown?

Then for values of j from zero through 12, the probability that a given roll of two fair dice will have a value of j is given by the array element expected[j] divided by 36.0.

Now, forget the program for a minute.

Suppose I told you that I had rolled a pair of dice 36,000 times and I got the following results:

Code:
Number of rolls = 36000 Value Observed Expected 2 1024 1000 3 2026 2000 4 3018 3000 5 3987 4000 6 4870 5000 7 5917 6000 8 5075 5000 9 4074 4000 10 3048 3000 11 1991 2000 12 970 1000

See how it goes? The expected number of occurrences of a particular value is equal to the number of throws times the probability of the occurrence of that particular value.

(Of course we could execute any number of throws, but 36,000 makes expected numbers easy to calculate, right? Didn't even need a calculator, much less a program.)

The question is: Were these fair throws? There are statistical methods for testing whether results are consistent (to a certain degree of numerical "confidence") with truly random values of each die that was thrown, but that's another topic.

Surely you don't expect that out of 36,000 "random" throws that there will be exactly 1000 snake-eyes and exactly 2000 threes and exactly 3,000 fours, etc., do you? I mean, if the observed numbers were all exactly the same as the statistically expected values, I would suspect that the game was fixed. See Footnote.

As for your program: Since its calculations are based on those from the book, I would expect the results to be consistent. Instead of using srand(time(0), use the same fixed number for both programs. For example
CPP / C++ / C Code:
srand(12345);
Now you will get exactly the same set of values each time that you run the program, and you should get exactly the same set of values from each of the two programs, unless you have made a mistake in translation. Of course, after initial testing, you will probably want to run the program lots of times, each time with a different seed, so time(0) is reasonable, assuming the program runs are at least a second apart.


Other than a missing semicolon and a missing closing brace, your program has a bug that results in undefined behavior: The dimension of your mySum array should be 13, not 12.

There is also a (very minor) bug in your calculations: Your program simulates 36,001 rolls but your percentage calculation has division by 36,000. This results in a very slight bias in your percentages.


Why the heck would you do the case stuff instead of just using the index?

Well, maybe to give you some confidence in your knowledge of program constructs, so, maybe it's worth a little investigation.

So...

If you do the calculations the same, the results have to be the same, right? So, if your results aren't the same, the calculations weren't the same.

The easiest way to compare them is to do the calculations exactly the same:

CPP / C++ / C Code:
    int die_score[13] = {0};
    int sum[13]       = {0};
    int z;
    for (int i = 1; i <= ROLLS; ++i) {
        z  = 1 + rand() % 6;
        z += 1 + rand() % 6;
        ++sum[z];
        switch (z) {
            case 2: ++die_score[2];
                    break;
            case 3: ++die_score[3];
                    break;
            case 4: ++die_score[4];
                    break;
            case 5: ++die_score[5];
                    break;
            case 6: ++die_score[6];
                    break;
            case 7: ++die_score[7];
                    break;
            case 8: ++die_score[8];
                    break;
            case 9: ++die_score[9];
                    break;
            case 10: ++die_score[10];
                    break;
            case 11: ++die_score[11];
                    break;
            case 12: ++die_score[12];
                    break;
        }

    }

The sum array will have exactly the same contents as the die_score array. Exactly.


Regards,

Dave

Footnote:
Left as exercises for the motivated (and talented and knowledgeable) student (but not necessarily a topic for further discussion on a generic programming assistance forum like this one):


What is the probability that, out of 36,000 fair throws, there are exactly 1000 snake-eyes?

What is the probability that there are exactly 2000 threes?

Etc.

Now, what is the probability that there are exactly 1000 snake-eyes and 2000 threes and 3000 fours and etc.

In terms of programming:

If the pseudo-random numbers have all necessary statistical properties to simulate an unlimited number of throws of two six-sided dice, how many program runs of 36,000 throws would you expect to have to execute before you could reasonably expect to see exactly 1000 snake-eyes?

Etc.
That is what I exactly found after I read the last message.
This is not my code:
CPP / C++ / C Code:
 int expected[ SIZE ] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };
I don't know how he constructed it.

I went looking on the net for infornation and found what you showed.
Here is my code for the outcomes of two die based on dietotal.jpg:
I will check later if the table is correct.
CPP / C++ / C Code:

int prob[6][6]={ {2,3,4,5,6,7},
                      {3,4,5,6,7,8},
                      {4,5,6,7,8,9},
                      {5,6,7,8,9,10},
                      {6,7,8,9,10,11},
                     {7,8,9,10,11,12},
                    };

int expected[6]={0};

 for(int count=2; count<=12;count++)
  {                                                    // search through the array prob[]
   for(int i=0;i<=6;i++)                         // and increment.
   for(int j=0;j<=6; j++)
   if(prob[i][j]==count)
     ++expected[i];
    }


7 should be the most displayed number, which did show up when printed out.
I then divided expected[i] by 36.

Other than the code you show, is what I have in program. That is how I initially solved it.
The game would be fixed since the element of randomness was minimized or removed by loading the die.
Well my probability and stats rusty and when looking at the totals , the differences between the two methods just freaked me out.
Attached Images
File Type: jpg dietotal.JPG (11.2 KB, 21 views)
  #10  
Old 23-Mar-2010, 07:48
davekw7x davekw7x is offline
Outstanding Member
 
Join Date: Feb 2004
Location: Left Coast, USA
Posts: 6,153
davekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to beholddavekw7x is a splendid one to behold

Re: what's happening here ?


Quote:
Originally Posted by Petr_Kropotkin
...
This is not my code:
CPP / C++ / C Code:
 int expected[ SIZE ] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };
I don't know how he constructed it.
In the code in your first post, you had surrounded this line and a comment line just before it with [b] and [/b] "bold" tags. In your post you indicated that you didn't understand the part that you had "bolded." I tried (really tried) to give you enough information to see how it was constructed and what it was used for.
Quote:
Originally Posted by Petr_Kropotkin
I will check later if the table is correct.
The table is certainly correct. Your code is certainly not correct.

I tried to use a logical narrative to see how I would arrive at the values for the expected[] array.

Here's a way, using a program, to see how the values of the expected[] array can be calculated:
CPP / C++ / C Code:
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

    //
    // Array "expected" contains counts for the number of times 
    // each sum occurs as we inspect the 36 different possible
    // outcomes of rolling two six-sided dice.
    //
    // Actual values of the sum are 2 through 12, but
    // for program simplicity, I make it a 13-element array.
    //
    // After performing the throws of the dice, the value
    // of "expected[i]" will be the number of times that the
    // sum was equal to "i".
    //
    int expected[13] = { 0 };

    //
    // Let the value of each die go from 1 through 6.
    // Count the number of times each possible sum shows up.
    //
    for (int die1 = 1; die1 <= 6; die1++) {
        for (int die2 = 1; die2 <= 6; die2++) {
            int sum = die1 + die2;
            ++expected[sum];
        }
    }
    for (int i = 0; i < 13; i++) {
        cout << "expected[" << setw(2) << i << "] = " << expected[i] << endl;
    }
    cout << endl << endl;

    cout << "Note that the values of the members of this \"expected\" array" << endl
         << "are the same as the values of the \"expected\" array in " << endl
         << "Deitel's example." << endl;


    return 0;
}

Output:
Code:
expected[ 0] = 0 expected[ 1] = 0 expected[ 2] = 1 expected[ 3] = 2 expected[ 4] = 3 expected[ 5] = 4 expected[ 6] = 5 expected[ 7] = 6 expected[ 8] = 5 expected[ 9] = 4 expected[10] = 3 expected[11] = 2 expected[12] = 1 Note that the values of the members of this "expected" array are the same as the values of the "expected" array in Deitel's example.



Regards,

Dave
Last edited by davekw7x : 23-Mar-2010 at 09:09.
 


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Memory leak when nothing is happening... How can I even debug this ? Algar MS Visual C++ / MFC Forum 10 19-Nov-2007 07:17
help not sure wat is happening saxon Computer Software Forum - Windows 2 26-Mar-2006 16:37
What's happening to nature? priyanka Open Discussion Forum 7 30-Oct-2004 12:58
Looking like a Google 'DeepCrawl'? JdS Search Engine Optimization Forum 13 27-Dec-2003 01:41
Operator overloading (not happening) gmn C++ Forum 11 30-Aug-2003 08:18

Network Sites: GIDNetwork · GIDApp · GIDBlog · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 02:45.


vBulletin, Copyright © 2000 - 2014, Jelsoft Enterprises Ltd.