From: Jeff Wood Date: 2005-11-12T14:05:30+09:00 Subject: Re: I rea......lly need your help ( C++ ) ------=_Part_3779_8678964.1131771927724 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Uhm, 2 things, you learn by figuring things out for yourself. And 2, the Ruby list is for talking about programs & programming in Ruby. Not to sound harsh, but you are much more likely to get a response in an ir= c #c++ chat room than spamming a mailing list about a completely different programming language... I wish you luck. j. On 11/11/05, ashmangat@yahoo.com wrote: > > Hey I am new, but I don't have time to intruduce myself yet. > I am intro to C++ > and this is a programme I have to write. > all the direction are here, It will be very nice of someone to figure > this out. > note: I only in intro C++ which is about to be finished by the next two > weeks. > The topic which I am on in my book is "POINTERS" > > Text from the book: > > Write a program that can be used to gather statistical data about the > number > of movies college students see in a month. The program should perform > the > following steps: > Ask the user how many students were surveyed. An array of > integers with this many elements should be dynamically allocated. > Allow the user to enter the number of movies each student saw into the > array. > Calculate and display the average, median, and mode of the values > entered. > (Use the functions you wrote in problem 6 and 7 to calculate the median > and mode.) > > Input Validation: Do not accept negative numbers for input. > > > Additional Notes: > > Use the following skeleton for the main program: > > void main(void) > { > int *dyn_array; > int mode, students; > float avrg; > > do > { > cout << "How many students will you enter? "; > cin >> students; > }while ( students <=3D 0 ); > > dyn_array =3D create_array( students ); > //this funtion creates a dynamic array > //and is found in the book > enter_data( dyn_array, students ); > //use 'pointer' notation in this function to > //access array elements > mode =3D get_mode( dyn_array, students ); > //check out pc6 for an explanation of 'mode' > //median =3D median( dyn_array, students ); > //don't do median in this exercise > avrg =3D average( dyn_array, students ); > //should be trivial > > > cout << "The array is: "; > showArray( dyn_array, students); > //you should already have this function > cout << endl; > cout << "The Mode is " << mode << ".\n"; > cout << "The average is " << avrg << ".\n"; > > delete [] dyn_array; > return 0; > } > > Some help (and requirements) for the mode function: > > 'mode' as explained in pc6: "In Statistics, the 'mode' of a set of > value is the > value, which occurs most often or with the greatest frequency". > > Note: Very important to completely understand the explanation below. > Get > on the discussion board if there is any confusion. > > The call: > mode =3D get_mode(dyn_array, student); > > The function header: > int get_mode(int *student_data, int num_students) > > get_mode should do the following: > > create an array 'frequency' of 1000 integers. 1000 is arbitrarily > chosen as > the absolute maximum of movies a college student could see in a week. > This array > will keep track of frequencies of weekly movie watching values. > > Intialize array 'frequency' elements to zeros (use a loop) > > Populate the 'frequency' array with the data (how many students see 1, > 2, 3, > etc. movies a week) > > The following algorithm is a useful method to easily increment random > values: > > Run a loop on 'student_data' from 0 to 'num_students'. > > The content of 'student_data' array becomes the > index of the 'frequency' array and the content of that 'frequency' > array > element gets incremented. Very important to understand this process. > > Here is a little animation help for > the sentence content of 'student_data' array becomes the index of the > 'frequency' array'. > > In subscript notation, it would look like this: > > frequency [ student_data[index] ] ++ > > However, a requirement for the code above is to implement > student_data[index]' in pointer notation and leave frequency[] in > subscript > notation. > > Example of processing the mode with 'frequency' and 'student_array': > > If, at the beginning, the frequency array contains: > > 0 0 0 0 0 0 ... > and 'student_data' contains: > > 2 4 1 2 ... > > In the loop the first element '2' points to the third element (index 2) > in the > 'frequency' array and increments it. So now 'frequency' looks like > this: > > 0 0 1 0 0 0 ... > > By the time the loop runs through all 4 elements of 'student_data', > 'frequency' > will look like this: > > 0 1 2 0 1 0 ... > > Notice that the 'frequency' array above now contains the mode: 2 movies > a week > (the third element, but index 2) contains the biggest number. Makes > sense? If > you aggree with the process described above, then you can write the > program to > accomplish it. > > > After the 'frequency' array is updated with frequencies of all data, > make a > new loop with the 'frequency' array to pick out the largest value. Use > the same > function used in earlier assignment. It should look something like: > > for(i =3D 0; i < 1000; i++) > { > if(max < frequency[i]) > { max =3D frequency[i]; > maxi =3D i; > } > } > return maxi -- remember that the index corresponds to the movies seen > per week! > > > Note: Do not worry about making the program handle bimodal values (mode > having > two values). > Don't forget to block-comment every function definition. Example: > > //******************************************* > // enter_data() > // This function inputs data for all students > // into dynimacally created array > //******************************************* > > > -- "Remember. Understand. Believe. Yield! -> http://ruby-lang.org" Jeff Wood ------=_Part_3779_8678964.1131771927724--