Advertisement
ryabov

laba2_2 java

Oct 12th, 2021
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. import java.util.Scanner;
  2. public class Laba2_2 {
  3.     final static Scanner scan = new Scanner(System.in);
  4.     static float getFirstFraction() {
  5.         boolean isIncorrect;
  6.         float numerator = 0;
  7.         float denominator = 0;
  8.         do {
  9.             isIncorrect = false;
  10.             System.out.println("Введите числитель первой дроби: ");
  11.             numerator = getException(numerator);
  12.             float numeratorForFindingDivisors = numerator;
  13.             System.out.println("Введите знаменатель первой дроби: ");
  14.             denominator = getException(denominator);
  15.             float denominatorForFindingDivisors = denominator;
  16.             if (denominator == 0) {
  17.                 System.err.println("Введите знаменатель, не равный 0!");
  18.                 isIncorrect = true;
  19.             } else if (numerator == 0){
  20.                 System.err.println("Введите числитель, не равный 0!");
  21.                 isIncorrect = true;
  22.             } else while (denominatorForFindingDivisors != 0) {
  23.                     if (numeratorForFindingDivisors > denominatorForFindingDivisors)
  24.                         numeratorForFindingDivisors = numeratorForFindingDivisors - denominatorForFindingDivisors;
  25.                     else
  26.                         denominatorForFindingDivisors = denominatorForFindingDivisors - numeratorForFindingDivisors;
  27.                 }
  28.             if (numeratorForFindingDivisors > 1) {
  29.                 System.err.println("Дробь должна быть несократимой! Попробуйте ещё.");
  30.                 isIncorrect = true;
  31.             }
  32.         } while(isIncorrect);
  33.         float fraction = numerator / denominator;
  34.         return fraction;
  35.     }
  36.     static float getSecondFraction() {
  37.         boolean isIncorrect;
  38.         float numerator = 0;
  39.         float denominator = 0;
  40.         do {
  41.             isIncorrect = false;
  42.             System.out.println("Введите числитель второй дроби: ");
  43.             numerator = getException(numerator);
  44.             float numeratorForFindingDivisors = numerator;
  45.             System.out.println("Введите знаменатель второй дроби: ");
  46.             denominator = getException(denominator);
  47.             float  denominatorForFindingDivisors = denominator;
  48.             if (denominator == 0) {
  49.                 System.err.println("Введите знаменатель, не равный 0!");
  50.                 isIncorrect = true;
  51.             } else if (numerator == 0){
  52.                 System.err.println("Введите числитель, не равный 0!");
  53.                 isIncorrect = true;
  54.             } else while (denominatorForFindingDivisors != 0) {
  55.                 if (numeratorForFindingDivisors > denominatorForFindingDivisors)
  56.                     numeratorForFindingDivisors = numeratorForFindingDivisors - denominatorForFindingDivisors;
  57.                 else
  58.                     denominatorForFindingDivisors = denominatorForFindingDivisors - numeratorForFindingDivisors;
  59.             }
  60.             if (numeratorForFindingDivisors > 1) {
  61.                 System.err.println("Дробь должна быть несократимой! Попробуйте ещё.");
  62.                 isIncorrect = true;
  63.             }
  64.         } while (isIncorrect);
  65.         float fraction = numerator / denominator;
  66.         return fraction;
  67.     }
  68.     static float getException(float number){
  69.         boolean isIncorrect;
  70.         do{
  71.             isIncorrect = false;
  72.             try {
  73.                 number = Integer.parseInt(scan.nextLine());
  74.             }
  75.             catch (NumberFormatException e) {
  76.                 System.err.println("Введите натуральное число!");
  77.                 isIncorrect = true;
  78.             }
  79.         } while (isIncorrect);
  80.         return number;
  81.     }
  82.     static void getSumOfFractions(float firstFraction, float secondFraction) {
  83.         float sum = firstFraction + secondFraction;
  84.         System.out.println("Сумма дробей: " + sum);
  85.     }
  86.     public static void main(String[] args) {
  87.         System.out.println("Программа считает сумму двух обыкновенных несократимых дробей");
  88.         float firstFraction = getFirstFraction();
  89.         float secondFraction = getSecondFraction();
  90.         getSumOfFractions(firstFraction, secondFraction);
  91.         scan.close();
  92.     }
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement