Sorting an array of doubles in descending order not working

  • (3 Pages)
  • +
  • 1
  • 2
  • 3

30 Replies - 2243 Views - Last Post: 03 November 2012 - 01:17 PM Rate Topic: -----

#16 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 07:56 AM

View PostRozenKristal, on 01 November 2012 - 05:06 PM, said:

Isnt loopIndex suppose to start at 0? Since array index start from 0 instead of 1?


After going through it again I realized that yes indeed it did have to be 0 thank you for making me look again! :)
Was This Post Helpful? 0
  • +
  • -

#17 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 08:02 AM

Ok, I got it to the point where I'm passing stuff through to another method. I have 2 parameters that I'm wanting to pass, one String, and one double.

On the one hand if I put double percent at line 46 it tells me the following: StudentGrades2.java:47: error: variable percent might not have been initialized
gradeReports(studentName, percent);
^
1 error

On the other if I remove it I get this: StudentGrades2.java:46: error: cannot find symbol
gradeReports(studentName, percent);

Percent is actually initialized up in the program at line 32. Do I just need to use a different parameter name to pass? I wan to pass the percent and the student's name.

and here is my code so far. At this point I just want it to see the data that is being passed and recognize my new method.

Then I must figure out how to use the parallel array to match the student's percent with the appropriate percentGrade to arrive at a letter grade, and to do that I am thinking that I need to have a series of if/elseif statements. And would like to know do I begin with a while (percent>0) or something different? I need a jumping point.... thanks!


import java.util.*;
import javax.swing.*;
import java.io.*;
public class StudentGrades2
	{
	public static void main(String args[])throws Exception
  		{
		// Declare input file to be opened.
		FileReader fr = new FileReader ("scores.dat");
		BufferedReader br = new BufferedReader (fr);
 		
		String studentName;
		String scoreString;
		int counter;
		double totalScore;
		final int MAX_SCORE = 9;

		double scoresArray[] = new double[MAX_SCORE];
				
		while ((studentName = br.readLine()) != null)//Beginning of outer loop.
			{
					totalScore = 0;
					System.out.println (studentName);
					for (counter = 0; counter<MAX_SCORE; counter++)
					{
					 scoreString = (br.readLine());
					 scoresArray[counter] = Double.parseDouble(scoreString);
					}
						
						int loopIndex;
						double MAX_TOTAL =600;
						double percent = 0;
						double topScores = 0;
						Arrays.sort(scoresArray);
																							
						for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
						{	
						System.out.print ("Scores: "+ scoresArray[loopIndex]);
						topScores = (scoresArray[loopIndex] + topScores);
						percent = ((topScores/MAX_TOTAL)*100);
						}
						System.out.printf ("Top Score Total:  %.2f", topScores);
						System.out.print ("Percentage:  " + percent+ "%");
				}
				
				double percent;
				gradeReports(studentName, percent);
				br.close();		
				System.exit(0);//End of main()method.
		}
		public static void gradeReports(String studentName, double percent)
			{
			final int SIZE = 11;
			String studentName;
			String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
			double percent;
			double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;
							
				{
				}	
			
			System.out.println (":  "+studentName);
			System.out.print (":  "+ percent);
			System.out.println (":  " +ltrGrade);
			}
}


This post has been edited by ValeriePurvis: 03 November 2012 - 11:35 AM

Was This Post Helpful? 0
  • +
  • -

#18 GregBrannon  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 2198
  • View blog
  • Posts: 5,226
  • Joined: 10-September 10

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 10:27 AM

The error message is trying as best it can . . .

Remove the semi-colon from the end of line 51.
Was This Post Helpful? 2
  • +
  • -

#19 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 11:30 AM

semicolon removed. Does not like my parameter percent. says it's not initialized but it's just where the percent is stored. How do I initialize it without changing what's in it? In other words it's not passing the information from the main to the gradeReport method.... Any thoughts, please.
Was This Post Helpful? 0
  • +
  • -

#20 GregBrannon  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 2198
  • View blog
  • Posts: 5,226
  • Joined: 10-September 10

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 11:41 AM

You have several variables names 'percent'. That can be okay (not always), but we can't be sure which one you're talking about, and it may be confusing you.

An example where it's not okay is in the method gradeReports(). You have a variable named percent declared in the method signature and another local variable named percent declared in the method body. In this case you're confusing the compiler, because it doesn't know why you have two variables with the same name in the same scope.

As for the "variables not initialized" error, this has been causing a lot of confusion lately. Initializing local variables is required by Java, and it simply means giving it a value, as in

double percent = 0.0;

However, this may be a special case of this error, one I haven't seen before. Why at line 46 would you say,

double percent = percent;

? That's odd on a number of levels.
Was This Post Helpful? 1
  • +
  • -

#21 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 11:46 AM

Actually Greg, I took that line 46 =percent off, because it didn't do what I thought it would.

My thinking is along these lines.

In the beginning I had some scores in an array, I read those, and I sorted them in ascending order, never could get them to sort in descending order, then since I only needed the top 6 grades I entered a loop at loopIndex 3 and took the 6 scores added them, then divided them by the 600 possible percentage points. Got the percent, multiply by 100 to give percent. Then I was thinking that to get the percent to the new method, I needed to keep calling it percent..... should I indeed call it something else?
Was This Post Helpful? 0
  • +
  • -

#22 GregBrannon  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 2198
  • View blog
  • Posts: 5,226
  • Joined: 10-September 10

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 11:51 AM

Quote

I took that line 46 =percent off, because it didn't do what I thought it would.

Another reason to always post updated code, or at least accurately describe changes. There is rarely a reason to go back over ground already covered no matter who it was covered by.

As for your eventual question, I don't understand it. You can call your variables whatever you want within the bounds of Java syntax and compiler/language rules. As I said, sometimes having different variables with the same variable name throughout a program is fine, sometimes not. I showed you a case - two, actually - where it is not.
Was This Post Helpful? 1
  • +
  • -

#23 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 12:03 PM

I think I see. here is my new code with the changes you mentioned, and if I'm understanding you correctly I need to call percent in the method signature something different? I don't want it to be different or initialized to 0, because it is the value of the computed percent and I want to take it to the new method so that it can be turned into a letter grade. does that make a difference? I changed it to pcent instead.
import java.util.*;
import javax.swing.*;
import java.io.*;
public class StudentGrades2
	{
	public static void main(String args[])throws Exception
  		{
		// Declare input file to be opened.
		FileReader fr = new FileReader ("scores.dat");
		BufferedReader br = new BufferedReader (fr);
 		
		String studentName;
		String scoreString;
		int counter;
		final int MAX_SCORE = 9;

		double scoresArray[] = new double[MAX_SCORE];
				
		while ((studentName = br.readLine()) != null)//Beginning of outer loop.
			{
					System.out.println (studentName);
					for (counter = 0; counter<MAX_SCORE; counter++)
					{
					 scoreString = (br.readLine());
					 scoresArray[counter] = Double.parseDouble(scoreString);
					}
						
						int loopIndex;
						double MAX_TOTAL =600;
						double percent = 0;
						double topScores = 0;
						Arrays.sort(scoresArray);
																							
						for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
						{	
						System.out.print ("Scores: "+ scoresArray[loopIndex]);
						topScores = (scoresArray[loopIndex] + topScores);
						percent = ((topScores/MAX_TOTAL)*100);
						}
						System.out.printf ("Top Score Total:  %.2f", topScores);
						System.out.print ("Percentage:  " + percent+ "%");
				}
				// Sending studentName, and percent to gradeReports()method.
				gradeReports(studentName, percent);
				br.close();		
				System.exit(0);//End of main()method.
		}
		public static void gradeReports(String studentName, double pcent)	
			{
			final int SIZE = 11;
			String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
			double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;
			
						
			System.out.println (":  "+studentName);
			System.out.print (":  "+ pcent);
			System.out.println (":  " +ltrGrade);
			}
}




When I try to compile now it tells me the following: StudentGrades2.java:44: error: cannot find symbol
gradeReports(studentName, percent);
^
symbol: variable percent
location: class StudentGrades2
1 error
Was This Post Helpful? 0
  • +
  • -

#24 JackOfAllTrades  Icon User is offline

  • Saucy!
  • member icon

Reputation: 6048
  • View blog
  • Posts: 23,473
  • Joined: 23-August 08

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 12:16 PM

If we do a little re-indentation on your code, the problem becomes quite obvious:

import java.util.*;
import javax.swing.*;
import java.io.*;
public class StudentGrades2
{
  public static void main(String args[])throws Exception
  {
		// Declare input file to be opened.
    FileReader fr = new FileReader ("scores.dat");
    BufferedReader br = new BufferedReader (fr);

    String studentName;
    String scoreString;
    int counter;
    final int MAX_SCORE = 9;

    double scoresArray[] = new double[MAX_SCORE];

    while ((studentName = br.readLine()) != null)//Beginning of outer loop.
    {
      System.out.println (studentName);
      for (counter = 0; counter<MAX_SCORE; counter++)
      {
        scoreString = (br.readLine());
        scoresArray[counter] = Double.parseDouble(scoreString);
      }

      int loopIndex;
      double MAX_TOTAL =600;
      double percent = 0;
      double topScores = 0;
      Arrays.sort(scoresArray);
      for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
      {
        System.out.print ("Scores: "+ scoresArray[loopIndex]);
        topScores = (scoresArray[loopIndex] + topScores);
        percent = ((topScores/MAX_TOTAL)*100);
      }
      System.out.printf ("Top Score Total:  %.2f", topScores);
      System.out.print ("Percentage:  " + percent+ "%");
    }

    // Sending studentName, and percent to gradeReports()method.
    gradeReports(studentName, percent);
    br.close();
    System.exit(0);//End of main()method.
  }

  public static void gradeReports(String studentName, double pcent)	
  {
    final int SIZE = 11;
    String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
    double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;

    System.out.println (":  "+studentName);
    System.out.print (":  "+ pcent);
    System.out.println (":  " +ltrGrade);
  }
}



Using { after a statement opens a new scope. Any variables declared and used within that scope disappear when you exit the scope, i.e., reach the terminating } that matches the opening {.

If you look, you'll see that you declared percent within the scope of the while loop, but are trying to use this variable outside of the loop.

But, this raises the question: is your call to gradeReports in the right place for what you're trying to accomplish?
Was This Post Helpful? 1
  • +
  • -

#25 GregBrannon  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 2198
  • View blog
  • Posts: 5,226
  • Joined: 10-September 10

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 12:25 PM

I'm not sure you do see. Let's back up and try again.

This is the method signature:

public static void gradeReports(String studentName, double percent)

The method signature declares the variables local to that method that will be passed to it by any statement that calls the method. A call to the method could look like:

gradeReports( "John Smith", 0.98 );

Notice that "John Smith" is a String and 0.98 is a valid double value. An alternate call to the method could be

String name = "John Smith";
double johnSmithGrade = 0.98;

gradeReports( name, johnSmithGrade );

In this call, name is a String and johnSmithGrade is a double.

What's happening with this code (your old gradeReports() method):
    public static void gradeReports(String studentName, double percent)    
    {
        final int SIZE = 11;
        String studentName;
        String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
        double percent;
. . . }

Is that a local variable called percent is being declared in the method signature:
public static void gradeReports(String studentName, double percent)
                                               HERE ^---- to ----^ HERE


and also at the last line I copied above:
        double percent;
   HERE ^---- to ----^ HERE


There are 2 local variables with the same name, and that's not allowed. The second declaration is not required. You already have a variable named percent in the method provided by the method signature. Remove the second declaration and everything will be fine.

Does that help?
Was This Post Helpful? 1
  • +
  • -

#26 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 12:47 PM

Ok, I'm less confused now than I was Greg. Because I was doing what all the tutorials had told me to do with the new method naming convention. And I read what you said to mean I had to change that parameter However. Now the error jumps back up two lines and tells me this

StudentGrades2.java:44: error: cannot find symbol
gradeReports(studentName, percent);
^
symbol: variable percent
location: class StudentGrades2
1 error

So this lends me to believe that I'm still not comprehending something quite correctly. I have watch video tutorials, I've read many other tutorials... I've looked at code examples, and well here's the next iteration of code.
import java.util.*;
import javax.swing.*;
import java.io.*;
public class StudentGrades2
	{
	public static void main(String args[])throws Exception
  		{
		// Declare input file to be opened.
		FileReader fr = new FileReader ("scores.dat");
		BufferedReader br = new BufferedReader (fr);
 		
		String studentName;
		String scoreString;
		int counter;
		final int MAX_SCORE = 9;

		double scoresArray[] = new double[MAX_SCORE];
				
		while ((studentName = br.readLine()) != null)//Beginning of outer loop.
			{
					System.out.println (studentName);
					for (counter = 0; counter<MAX_SCORE; counter++)
					{
					 scoreString = (br.readLine());
					 scoresArray[counter] = Double.parseDouble(scoreString);
					}
						
						int loopIndex;
						double MAX_TOTAL =600;
						double percent = 0;
						double topScores = 0;
						Arrays.sort(scoresArray);
																							
						for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
						{	
						System.out.print ("Scores: "+ scoresArray[loopIndex]);
						topScores = (scoresArray[loopIndex] + topScores);
						percent = ((topScores/MAX_TOTAL)*100);
						}
						System.out.printf ("Top Score Total:  %.2f", topScores);
						System.out.print ("Percentage:  " + percent+ "%");
				}
				// Sending studentName, and percent to gradeReports()method.
				gradeReports(studentName, percent);
				br.close();		
				System.exit(0);//End of main()method.
		}
		public static void gradeReports(String studentName, double percent)	
			{
			final int SIZE = 11;
			String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
			double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;
			
						
			System.out.println (":  "+studentName);
			System.out.print (":  "+ percent);
			System.out.println (":  " +ltrGrade);
			}
}



@JackofAllTrades: Beats me! According to all that I have read and all that I have viewed in tutorials this is the place, at the end out side of the main that I am to put a different method. Am I comprehending this incorrectly?
Was This Post Helpful? 0
  • +
  • -

#27 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 01:01 PM

When Jack said that the percent was initialized in the while loop and so wasn't being seen outside the while loop after the end, does that mean it has become a local variable and if I wanted it to be a global variable I should put it before the while loop? In the initial declarations? perhaps?
Was This Post Helpful? 0
  • +
  • -

#28 GregBrannon  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 2198
  • View blog
  • Posts: 5,226
  • Joined: 10-September 10

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 01:04 PM

Just saw your latest before posting this, and Yes, you're on the right track. I provided a detailed explanation below.

This is a different matter, but it still involves local variables and their scope. It may also speak to JofAT's comment about indenting correctly, but I'm not sure. In any case, I've clipped out a piece of your latest:
while ((studentName = br.readLine()) != null)//Beginning of outer loop.
{
    System.out.println (studentName);
    for (counter = 0; counter<MAX_SCORE; counter++)
    {
        scoreString = (br.readLine());
        scoresArray[counter] = Double.parseDouble(scoreString);
    }

    int loopIndex;
    double MAX_TOTAL =600;
    double percent = 0;
    double topScores = 0;
    Arrays.sort(scoresArray);

    for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
    {   
        System.out.print ("Scores: "+ scoresArray[loopIndex]);
        topScores = (scoresArray[loopIndex] + topScores);
        percent = ((topScores/MAX_TOTAL)*100);
    }
    System.out.printf ("Top Score Total:  %.2f", topScores);
    System.out.print ("Percentage:  " + percent+ "%");
}
// Sending studentName, and percent to gradeReports()method.
gradeReports(studentName, percent);
br.close();     
System.exit(0);//End of main()method.

Notice that 'percent' is declared and initialized inside the while loop. In that case, the variable percent is said to be a local variable to the while loop. As a local variable to the while loop, it only exists and is 'visible' inside the while loop.

Then, at line 44, you have the method call:

gradeReports(studentName, percent);

but 'percent' is unknown and INvisible at that point, because it's outside the while loop.

How to fix? Change the scope of the variable percent. One option would be to make it an instance variable of the class. Another would be to make it a local variable to the method main(). I chose the latter to be consistent with the rest of your code and posted the resulting main() method below so that you could see how the change is made correctly.
    public static void main(String args[])throws Exception
    {
        // Declare input file to be opened.
        FileReader fr = new FileReader ("scores.dat");
        BufferedReader br = new BufferedReader (fr);

        String studentName;
        String scoreString;
        int counter;
        final int MAX_SCORE = 9;
        
        double percent = 0;

        double scoresArray[] = new double[MAX_SCORE];

        while ((studentName = br.readLine()) != null)//Beginning of outer loop.
        {
            System.out.println (studentName);
            for (counter = 0; counter<MAX_SCORE; counter++)
            {
                scoreString = (br.readLine());
                scoresArray[counter] = Double.parseDouble(scoreString);
            }
        
            int loopIndex;
            double MAX_TOTAL =600;
            percent = 0;
            double topScores = 0;
            Arrays.sort(scoresArray);
        
            for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
            {   
                System.out.print ("Scores: "+ scoresArray[loopIndex]);
                topScores = (scoresArray[loopIndex] + topScores);
                percent = ((topScores/MAX_TOTAL)*100);
            }
            System.out.printf ("Top Score Total:  %.2f", topScores);
            System.out.print ("Percentage:  " + percent+ "%");
        }
        // Sending studentName, and percent to gradeReports()method.
        gradeReports(studentName, percent);
        br.close();     
        System.exit(0);//End of main()method.
    }
    public static void gradeReports(String studentName, double percent) 
    {
        final int SIZE = 11;
        String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
        double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;

        System.out.println (":  "+studentName);
        System.out.print (":  "+ percent);
        System.out.println (":  " +ltrGrade);
    }

Notice that you have two variables in the gradeReports() method that are never used, percentGrade[] and SIZE, but maybe you have growth plans for them. Oh! You mentioned using parallel arrays, and I could see how they might come into play.

Good luck!
Was This Post Helpful? 1
  • +
  • -

#29 ValeriePurvis  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 78
  • Joined: 21-September 12

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 01:06 PM

OH GREG!!! That was it!!! I moved the variable percent... now look what it does!! Goes all the way to the point where I need to figure out how to do the letter grade using the parallel array as the instructor wants... I don't quite get why she wants us to do it that way, but I will try...... Here's the updated code!
import java.util.*;
import javax.swing.*;
import java.io.*;
public class StudentGrades2
	{
	public static void main(String args[])throws Exception
  		{
		// Declare input file to be opened.
		FileReader fr = new FileReader ("scores.dat");
		BufferedReader br = new BufferedReader (fr);
 		
		String studentName;
		String scoreString;
		int counter;
		final int MAX_SCORE = 9;
		double percent = 0;
		double scoresArray[] = new double[MAX_SCORE];
				
		while ((studentName = br.readLine()) != null)//Beginning of outer loop.
			{
					System.out.println (studentName);
					for (counter = 0; counter<MAX_SCORE; counter++)
					{
					 scoreString = (br.readLine());
					 scoresArray[counter] = Double.parseDouble(scoreString);
					}
						
						int loopIndex;
						double MAX_TOTAL =600;
						//double percent = 0;
						double topScores = 0;
						Arrays.sort(scoresArray);
																							
						for (loopIndex = 3; loopIndex < scoresArray.length ;loopIndex++)
						{	
						System.out.print ("Scores: "+ scoresArray[loopIndex]);
						topScores = (scoresArray[loopIndex] + topScores);
						percent = ((topScores/MAX_TOTAL)*100);
						}
						System.out.printf ("Top Score Total:  %.2f", topScores);
						System.out.print ("Percentage:  " + percent+ "%");
				}
				// Sending studentName, and percent to gradeReports()method.
				gradeReports(studentName, percent);
				br.close();		
				System.exit(0);//End of main()method.
		}
		public static void gradeReports(String studentName, double percent)	
			{
			final int SIZE = 11;
			String ltrGrade[] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F"};
			double percentGrade[] = {92.5,90.0,87.5,82.5,80.0,77.5,72.5,70.0,67.5,62.5,60.0,59} ;
			
						
			System.out.println (":  "+studentName);
			System.out.print (":  "+ percent);
			System.out.println (":  " +ltrGrade);
			}
}


Was This Post Helpful? 0
  • +
  • -

#30 JackOfAllTrades  Icon User is offline

  • Saucy!
  • member icon

Reputation: 6048
  • View blog
  • Posts: 23,473
  • Joined: 23-August 08

Re: Sorting an array of doubles in descending order not working

Posted 03 November 2012 - 01:10 PM

But I want you to think about something.

Your function gradeReports takes a single student. Does it make sense that it would be outside the loop that reads multiple student names?
Was This Post Helpful? 0
  • +
  • -

  • (3 Pages)
  • +
  • 1
  • 2
  • 3