Naloga/Programiranje/Objektno programiranje/Razred Ulomek/Rešitev1 (Java)

Iz MaFiRaWiki

  1. public class Ulomek {
  2. int st;
  3. int im;
  4.  
  5. public Ulomek(int x, int y) {
  6. this.st = x;
  7. this.im = y;
  8. okrajsaj();
  9. }
  10. public Ulomek(int x) {
  11. this.st = x;
  12. this.im = 1;
  13. }
  14. public String toString() {
  15. String s = "";
  16. if (im == 1) s = "" + st;
  17. else s = st + "/" + im;
  18. return s;
  19. }
  20. public static int gcd(int a, int b) {
  21. a = Math.abs(a);
  22. b = Math.abs(b);
  23. while(b!=0){
  24. int c = a%b;
  25. a=b;
  26. b=c;
  27. }
  28. return a;
  29. }
  30.  
  31. public void okrajsaj() {
  32. int c = gcd (st,im);
  33. st = st/c;
  34. im = im/c;
  35.  
  36. if(im < 0){
  37. st= -st;
  38. im = -im;
  39. }
  40. }
  41. public int compareTo(Ulomek p) {
  42. return (this.st*p.im -this.im*p.st);
  43. }
  44. public boolean equals(Ulomek p){
  45. return(this.st*p.im == this.im*p.st);
  46. }
  47. public void pristej(Ulomek p) {
  48. st = st*p.im +im * p.st;
  49. im = im*p.im;
  50. okrajsaj();
  51. }
  52. public Ulomek vsota(Ulomek p) {
  53. return new Ulomek(st*p.im +im * p.st, im*p.im);
  54. }
  55. public void odstej(Ulomek p) {
  56. st = st*p.im -im * p.st;
  57. im = im*p.im;
  58. okrajsaj();
  59.  
  60. }
  61. public Ulomek razlika(Ulomek p) {
  62. return new Ulomek(st*p.im -im * p.st, im*p.im);
  63. }
  64. public void pomnozi(Ulomek p) {
  65. st = st * p.st;
  66. im = im * p.im;
  67. okrajsaj();
  68. }
  69. public Ulomek zmnozek(Ulomek p) {
  70. return new Ulomek(st * p.st,im * p.im);
  71. }
  72. public void deli(Ulomek p) {
  73. st = st * p.im;
  74. im = im*p.st;
  75. okrajsaj();
  76. }
  77. public Ulomek kvocient(Ulomek p) {
  78. return new Ulomek(st * p.im, im*p.st);
  79. }
  80. public static void main(String[] args){
  81. Ulomek a = new Ulomek(1,2);
  82. Ulomek b = new Ulomek(8,10);
  83. Ulomek c = a.vsota(b);
  84. System.out.println(c.toString());
  85.  
  86. }
  87. }
Osebna orodja