SHOW ALL YOUR WORK. REMEMBER THAT PROGRAM SEGMENTS ARE TO BE WRITTEN IN JAVA.

Assume that the classes listed in the Java Quick Reference have been imported where appropriate.
Unless otherwise noted in the question, assume that parameters in method calls are not null and that methods are called only when their preconditions are satisfied.
In writing solutions for each question, you may use any of the accessible methods that are listed in classes defined in that question. Writing significant amounts of code that can be replaced by a call to one of these methods will not receive full credit.
 
This question involves computing the greatest common factor between two positive integers and using greatest common factors to reduce fractions. You will write two methods in the NumberSystem class that follows.

public class NumberSystem

{

/\*\* Precondition: a and b are positive integers.

\* Returns the greatest common factor of a and b, as described in part (a).

\*/

public static int gcf(int a, int b)

{ /\* to be implemented in part (a) \*/ }

 

/\*\* Precondition: numerator and denominator are positive integers.

\* Reduces the fraction numerator / denominator

\* and prints the result, as described in part (b).

\*/

public static void reduceFraction(int numerator, int denominator)

{ /\* to be implemented in part (b) \*/ }

}

The greatest common factor (GCF) of two integers a and b is the largest integer that divides evenly into both a and b. For example, the GCF of 8 and 12 is 4.

The greatest common factor can be computed using the following rules.

Case I: If a is evenly divisible by b, then the GCF is b.
Case II: If a is not evenly divisible by b, then the GCF of a and b is equal to the GCF of b and the remainder when a is divided by b.
If the rule in case II is repeatedly applied, it is guaranteed to eventually result in case I. Consider the following examples.

Example 1
In determining the GCF of 30 and 3, case I applies because 30 is evenly divisible by 3. Therefore, the GCF of 30 and 3 is 3.
Example 2
In determining the GCF of 3 and 30, case II applies because 3 is not evenly divisible by 30. The GCF of 3 and 30 will be equal to the GCF of 30 and the remainder when 3 is divided by 30, or 3.
In determining the GCF of 30 and 3, case I applies because 30 is evenly divisible by 3. The GCF of 30 and 3 is 3, and therefore the GCF of 3 and 30 is also 3.
Example 3
In determining the GCF of 24 and 9, case II applies because 24 is not evenly divisible by 9. The GCF of 24 and 9 will be equal to the GCF of 9 and the remainder when 24 is divided by 9, or 6.
In determining the GCF of 9 and 6, case II applies because 9 is not evenly divisible by 6. The GCF of 9 and 6 will be equal to the GCF of 6 and the remainder when 9 is divided by 6, or 3.
In determining the GCF of 6 and 3, case I applies because 6 is evenly divisible by 3. The GCF of 6 and 3 is 3, and therefore the GCF of 24 and 9 is also 3.
Example 4
In determining the GCF of 7 and 3, case II applies because 7 is not evenly divisible by 3. The GCF of 7 and 3 will be equal to the GCF of 3 and the remainder when 7 is divided by 3, or 1.
In determining the GCF of 3 and 1, case I applies because 3 is evenly divisible by 1. The GCF of 3 and 1 is 1, and therefore the GCF of 7 and 3 is also 1.
 

(a) The gcf method returns the greatest common factor of parameters a and b, as determined by case I and case II. Write the gcf method below. You are encouraged to implement this method recursively.

/\*\* Precondition: a and b are positive integers.

\* Returns the greatest common factor of a and b, as described in part (a).

\*/

public static int gcf(int a, int b)
f4d8878d-e378-4087-a99b-c31dad5f0609
ΔΕΙΞΕ ΟΛΗ ΤΗΝ ΔΟΥΛΕΙΑ ΣΟΥ. ΘΥΜΗΣΟΥ ΟΤΙ ΤΑ ΤΜΗΜΑΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΕΠΕΙ ΝΑ ΓΡΑΦΤΟΥΝ ΣΤΗΝ JAVA.

Ας υποθέσουμε ότι οι κλάσεις που αναφέρονται στο Java Quick Reference έχουν εισαχθεί όπου χρειάζονται.
Εκτός εάν ζητάται διαφορετικά στην ερώτηση, υπέθεσε ότι οι παράμετροι των κλήσεων των μεθόδων δεν είναι μηδενικές και ότι οι μέθοδοι καλούνται μόνο όταν ικανοποιούνται οι προϋποθέσεις τους.

Κατά τη σύνταξη λύσεων για κάθε ερώτηση, μπορείς να χρησιμοποιήσεις οποιαδήποτε από τις διαθέσιμες μεθόδους που αναφέρονται στις κλάσεις που ορίζονται σε αυτήν την ερώτηση. Το γράψιμο μεγάλων κομματιών κώδικα που μπορούν να αντικατασταθούν με μια κλήση σε αυτές τις μεθόδους δεν θα λάβει πλήρη βαθμό.

Αυτή η ερώτηση περιλαμβάνει τον υπολογισμό του μέγιστου κοινού παράγοντα μεταξύ δύο θετικών ακεραίων και τη χρήση των μεγαλύτερων κοινών παραγόντων για την απλοποίηση των κλασμάτων. Θα γράψεις δύο μεθόδους στην κλάση NumberSystem που ακολουθεί.

public class NumberSystem

{

/** Προϋπόθεση: το a και το b είναι θετικοί ακέραιοι.

* Επιστρέφει τον μέγιστο κοινό παράγοντα των a και b, όπως περιγράφεται στο μέρος (a).

*/

public static int gcf(int a, int b)

{ /* να υλοποιηθεί στο μέρος (α) */ }

/** Προϋπόθεση: ο αριθμητής και ο παρονομαστής είναι θετικοί ακέραιοι.

* Απλοποιεί τον αριθμητή / παρονομαστή του κλάσματος

* και εμφανίζει το αποτέλεσμα, όπως περιγράφεται στο μέρος (b).

*/

public static void reduceFraction(int numerator, int denominator)

{ /* να υλοποιηθεί στο μέρος (b) */ }

}

Ο μέγιστος κοινός παράγοντας (GCF) δύο ακεραίων αριθμών a και b είναι ο μεγαλύτερος ακέραιος που διαιρεί ακριβώς τόσο το a όσο και το b. Για παράδειγμα, το GCF των 8 και 12 είναι το 4.

Ο μέγιστος κοινός παράγοντας μπορεί να υπολογιστεί χρησιμοποιώντας τους ακόλουθους κανόνες.

Περίπτωση Ι: Αν το a διαιρείται ακριβώς με το b, τότε το GCF είναι το b.
Περίπτωση II: Αν το a δεν διαιρείται ακριβώς με το b, τότε το GCF του a και του b είναι ίσο με το GCF του b και το υπόλοιπο όταν το a διαιρείται με το b.
Εάν ο κανόνας στην περίπτωση ΙΙ εφαρμόζεται επαναληπτικά, είναι εγγυημένο ότι θα καταλήξει τελικά στην περίπτωση Ι. Εξέτασε τα ακόλουθα παραδείγματα.

Παράδειγμα 1
Για τον προσδιορισμό του GCF των 30 και 3, ισχύει η περίπτωση I επειδή το 30 διαιρείται ακριβώς με το 3. Επομένως, το GCF του 30 και του 3 είναι το 3.
Παράδειγμα 2
Για τον προσδιορισμό του GCF του 3 και του 30, ισχύει η περίπτωση II επειδή το 3 δεν διαιρείται ακριβώς με το 30. Το GCF του 3 και του 30 θα είναι ίσο με το GCF του 30 και το υπόλοιπο όταν το 3 διαιρείται με το 30 ή το 3.
Για τον προσδιορισμό του GCF των 30 και 3, ισχύει η περίπτωση I επειδή το 30 διαιρείται ακριβώς με το 3. Το GCF του 30 και του 3 είναι 3, και επομένως το GCF του 3 και του 30 είναι επίσης 3.
Παράδειγμα 3
Για τον προσδιορισμό του GCF του 24 και του 9, ισχύει η περίπτωση II επειδή το 24 δεν διαιρείται ακριβώς με το 9. Το GCF του 24 και του 9 θα είναι ίσο με το GCF του 9 και το υπόλοιπο όταν το 24 διαιρείται με το 9 ή το 6.
Για τον προσδιορισμό του GCF του 9 και του 6, ισχύει η περίπτωση II επειδή το 9 δεν διαιρείται ακριβώς με το 6. Το GCF του 9 και του 6 θα είναι ίσο με το GCF του 6 και το υπόλοιπο όταν το 9 διαιρείται με το 6 ή το 3.
Για τον προσδιορισμό του GCF του 6 και του 3, ισχύει η περίπτωση I επειδή το 6 διαιρείται ακριβώς με το 3. Το GCF του 6 και του 3 είναι 3, και επομένως το GCF του 24 και του 9 είναι επίσης 3.
Παράδειγμα 4
Για τον προσδιορισμό του GCF του 7 και του 3, ισχύει η περίπτωση II επειδή το 7 δεν διαιρείται ακριβώς με το 3. Το GCF του 7 και του 3 θα είναι ίσο με το GCF του 3 και το υπόλοιπο όταν το 7 διαιρείται με το 3 ή το 1.
Για τον προσδιορισμό του GCF των 3 και 1, ισχύει η περίπτωση I επειδή το 3 διαιρείται ακριβώς με το 1. Το GCF του 3 και του 1 είναι 1, και επομένως το GCF του 7 και του 3 είναι επίσης 1.


(α) Η μέθοδος gcf επιστρέφει τον μέγιστο κοινό παράγοντα των παραμέτρων a και b, όπως προσδιορίζεται από την περίπτωση I και την περίπτωση II. Γράψε τη μέθοδο gcf παρακάτω. Σε ενθαρρύνω να εφαρμόσεις αυτή τη μέθοδο αναδρομικά.

/** Προϋπόθεση: τα a και b είναι θετικοί ακέραιοι αριθμοί.

* Επιστρέφει τον μέγιστο κοινό παράγοντα των a και b, όπως περιγράφεται στο μέρος (a).

*/

public static int gcf(int a, int b)

submitted
{"source": "ewof/sharegpt-instruct-unfiltered-deduped", "kind": "human", "evolved_from": null}