@@ -336,11 +336,51 @@ isZero
336
336
self subclassResponsibility ! !
337
337
338
338
339
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:27:05'!
340
+ beAddedToEntero: anEnteroAugend
341
+
342
+ self subclassResponsibility ! !
343
+
344
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:29:24'!
345
+ beAddedToFraccion: aFraccionAugend
346
+
347
+ self subclassResponsibility ! !
348
+
339
349
!Numero methodsFor: 'private' stamp: 'HernanWilkinson 5/7/2016 22:48'!
340
350
invalidNumberType
341
351
342
352
self error: self class invalidNumberTypeErrorDescription! !
343
353
354
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:28:48'!
355
+ substractFromEntero: anEnteroMinuend
356
+
357
+ self subclassResponsibility ! !
358
+
359
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:28:33'!
360
+ substractFromFraccion: aFraccionMinuend
361
+
362
+ self subclassResponsibility ! !
363
+
364
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:28:13'!
365
+ useAsDivisorToDivideEntero: anEnteroDividend
366
+
367
+ self subclassResponsibility ! !
368
+
369
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:27:57'!
370
+ useAsDivisorToDivideFraccion: aFraccionDividend
371
+
372
+ self subclassResponsibility ! !
373
+
374
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:27:40'!
375
+ useAsMultiplicandToMultiplyEntero: anEnteroMultiplier
376
+
377
+ self subclassResponsibility ! !
378
+
379
+ !Numero methodsFor: 'private' stamp: 'ML 5/28/2021 19:27:18'!
380
+ useAsMultiplicandToMultiplyFraccion: aFraccionMultiplier
381
+
382
+ self subclassResponsibility ! !
383
+
344
384
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
345
385
346
386
!classDefinition: 'Numero class' category: 'Numeros-Parte2-Ejercicio'!
@@ -364,10 +404,10 @@ Numero subclass: #Entero
364
404
poolDictionaries: ''
365
405
category: 'Numeros-Parte2-Ejercicio'!
366
406
367
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:41:22 '!
407
+ !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 18:56:41 '!
368
408
* aMultiplier
369
409
370
- ^aMultiplier useAsMultiplierToMultiplyEntero : self
410
+ ^aMultiplier useAsMultiplicandToMultiplyEntero : self
371
411
! !
372
412
373
413
!Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/27/2021 23:37:53'!
@@ -386,16 +426,6 @@ Numero subclass: #Entero
386
426
387
427
^aDivisor useAsDivisorToDivideEntero: self. ! !
388
428
389
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/27/2021 23:35:45'!
390
- beAddedToEntero: anEnteroAugend
391
-
392
- ^self class with: (self integerValue + anEnteroAugend integerValue).! !
393
-
394
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/27/2021 23:47:51'!
395
- beAddedToFraccion: aFraccionAugend
396
-
397
- ^((self * aFraccionAugend denominator + aFraccionAugend numerator) / aFraccionAugend denominator). ! !
398
-
399
429
!Entero methodsFor: 'arithmetic operations' stamp: 'HAW 9/24/2018 08:47:50'!
400
430
fibonacci
401
431
@@ -410,38 +440,6 @@ fibonacci
410
440
^ (self - one) fibonacci + (self - two) fibonacci
411
441
! !
412
442
413
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:15:44'!
414
- substractFromEntero: anEnteroMinuend
415
-
416
- ^ self class with: (anEnteroMinuend integerValue - self integerValue) ! !
417
-
418
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:22:39'!
419
- substractFromFraccion: aFraccionMinuend
420
-
421
- ^((aFraccionMinuend numerator - (self * aFraccionMinuend denominator)) / aFraccionMinuend denominator) ! !
422
-
423
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:49:10'!
424
- useAsDivisorToDivideEntero: anEnteroDividend
425
-
426
- ^Fraccion with: anEnteroDividend over: self ! !
427
-
428
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:09:16'!
429
- useAsDivisorToDivideFraccion: aFraccionDividend
430
-
431
- ^(aFraccionDividend numerator / (aFraccionDividend denominator * self))! !
432
-
433
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:39:00'!
434
- useAsMultiplierToMultiplyEntero: anEnteroMultiplicand
435
-
436
- ^self class with: (anEnteroMultiplicand integerValue * self integerValue)
437
-
438
- ! !
439
-
440
- !Entero methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:44:21'!
441
- useAsMultiplierToMultiplyFraccion: aFraccionMultiplicand
442
-
443
- ^(self * aFraccionMultiplicand numerator) / aFraccionMultiplicand denominator ! !
444
-
445
443
446
444
!Entero methodsFor: 'comparing' stamp: 'HernanWilkinson 5/7/2016 21:01'!
447
445
= anObject
@@ -495,11 +493,51 @@ isZero
495
493
496
494
^self class with: value // aDivisor integerValue! !
497
495
496
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:15:44'!
497
+ beAddedToEntero: anEnteroAugend
498
+
499
+ ^self class with: (self integerValue + anEnteroAugend integerValue).! !
500
+
501
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:15:59'!
502
+ beAddedToFraccion: aFraccionAugend
503
+
504
+ ^((self * aFraccionAugend denominator + aFraccionAugend numerator) / aFraccionAugend denominator). ! !
505
+
498
506
!Entero methodsFor: 'arithmetic operations - private' stamp: 'HernanWilkinson 5/7/2016 21:00'!
499
507
greatestCommonDivisorWith: anEntero
500
508
501
509
^self class with: (value gcd: anEntero integerValue)! !
502
510
511
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:16:09'!
512
+ substractFromEntero: anEnteroMinuend
513
+
514
+ ^ self class with: (anEnteroMinuend integerValue - self integerValue) ! !
515
+
516
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:17:33'!
517
+ substractFromFraccion: aFraccionMinuend
518
+
519
+ ^((aFraccionMinuend numerator - (self * aFraccionMinuend denominator)) / aFraccionMinuend denominator) ! !
520
+
521
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:17:22'!
522
+ useAsDivisorToDivideEntero: anEnteroDividend
523
+
524
+ ^Fraccion with: anEnteroDividend over: self ! !
525
+
526
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:17:12'!
527
+ useAsDivisorToDivideFraccion: aFraccionDividend
528
+
529
+ ^(aFraccionDividend numerator / (aFraccionDividend denominator * self))! !
530
+
531
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:17:03'!
532
+ useAsMultiplicandToMultiplyEntero: anEnteroMultiplier
533
+
534
+ ^self class with: (anEnteroMultiplier integerValue * self integerValue)! !
535
+
536
+ !Entero methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:16:50'!
537
+ useAsMultiplicandToMultiplyFraccion: aFraccionMultiplier
538
+
539
+ ^(self * aFraccionMultiplier numerator) / aFraccionMultiplier denominator ! !
540
+
503
541
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
504
542
505
543
!classDefinition: 'Entero class' category: 'Numeros-Parte2-Ejercicio'!
@@ -526,10 +564,10 @@ Numero subclass: #Fraccion
526
564
poolDictionaries: ''
527
565
category: 'Numeros-Parte2-Ejercicio'!
528
566
529
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:44:45 '!
567
+ !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 19:02:29 '!
530
568
* aMultiplier
531
569
532
- ^aMultiplier useAsMultiplierToMultiplyFraccion : self! !
570
+ ^aMultiplier useAsMultiplicandToMultiplyFraccion : self! !
533
571
534
572
!Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:06:55'!
535
573
+ anAdder
@@ -547,58 +585,6 @@ Numero subclass: #Fraccion
547
585
548
586
^ aDivisor useAsDivisorToDivideFraccion: self! !
549
587
550
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/27/2021 23:37:38'!
551
- beAddedToEntero: anEnteroAugend
552
-
553
- ^((anEnteroAugend * denominator + numerator) / denominator) ! !
554
-
555
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/27/2021 23:53:41'!
556
- beAddedToFraccion: aFraccionAugend
557
-
558
- | newNumerator newDenominator |
559
-
560
- newNumerator := (numerator * aFraccionAugend denominator) + (denominator * aFraccionAugend numerator).
561
- newDenominator := denominator * aFraccionAugend denominator.
562
-
563
- ^newNumerator / newDenominator! !
564
-
565
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:16:47'!
566
- substractFromEntero: anEnteroMinuend
567
-
568
- ^(anEnteroMinuend * denominator - numerator) / denominator ! !
569
-
570
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:18:59'!
571
- substractFromFraccion: aFraccionMinuend
572
-
573
- | newNumerator newDenominator |
574
-
575
- newNumerator := (aFraccionMinuend numerator * denominator) - (aFraccionMinuend denominator * numerator).
576
- newDenominator := aFraccionMinuend denominator * denominator.
577
-
578
- ^newNumerator / newDenominator! !
579
-
580
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:02:26'!
581
- useAsDivisorToDivideEntero: anEnteroDividend
582
-
583
- ^(anEnteroDividend * denominator ) / numerator
584
-
585
- ! !
586
-
587
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:22:51'!
588
- useAsDivisorToDivideFraccion: aFraccionDividend
589
-
590
- ^((aFraccionDividend numerator * denominator) / (aFraccionDividend denominator * numerator))! !
591
-
592
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:40:41'!
593
- useAsMultiplierToMultiplyEntero: anEnteroMultiplicand
594
-
595
- ^(anEnteroMultiplicand * numerator) / denominator ! !
596
-
597
- !Fraccion methodsFor: 'arithmetic operations' stamp: 'ML 5/28/2021 00:43:26'!
598
- useAsMultiplierToMultiplyFraccion: aFraccionMultiplicand
599
-
600
- ^(aFraccionMultiplicand numerator * numerator) / (aFraccionMultiplicand denominator * denominator)! !
601
-
602
588
603
589
!Fraccion methodsFor: 'comparing' stamp: 'HernanWilkinson 5/7/2016 20:42'!
604
590
= anObject
@@ -657,6 +643,57 @@ printOn: aStream
657
643
nextPut: $/;
658
644
print: denominator ! !
659
645
646
+
647
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:15'!
648
+ beAddedToEntero: anEnteroAugend
649
+
650
+ ^((anEnteroAugend * denominator + numerator) / denominator) ! !
651
+
652
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:07'!
653
+ beAddedToFraccion: aFraccionAugend
654
+
655
+ | newNumerator newDenominator |
656
+
657
+ newNumerator := (numerator * aFraccionAugend denominator) + (denominator * aFraccionAugend numerator).
658
+ newDenominator := denominator * aFraccionAugend denominator.
659
+
660
+ ^newNumerator / newDenominator! !
661
+
662
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:25:01'!
663
+ substractFromEntero: anEnteroMinuend
664
+
665
+ ^(anEnteroMinuend * denominator - numerator) / denominator! !
666
+
667
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:25:14'!
668
+ substractFromFraccion: aFraccionMinuend
669
+
670
+ | newNumerator newDenominator |
671
+
672
+ newNumerator := (aFraccionMinuend numerator * denominator) - (aFraccionMinuend denominator * numerator).
673
+ newDenominator := aFraccionMinuend denominator * denominator.
674
+
675
+ ^newNumerator / newDenominator! !
676
+
677
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:50'!
678
+ useAsDivisorToDivideEntero: anEnteroDividend
679
+
680
+ ^(anEnteroDividend * denominator ) / numerator ! !
681
+
682
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:38'!
683
+ useAsDivisorToDivideFraccion: aFraccionDividend
684
+
685
+ ^((aFraccionDividend numerator * denominator) / (aFraccionDividend denominator * numerator))! !
686
+
687
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:29'!
688
+ useAsMultiplicandToMultiplyEntero: anEnteroMultiplier
689
+
690
+ ^(anEnteroMultiplier * numerator) / denominator ! !
691
+
692
+ !Fraccion methodsFor: 'arithmetic operations - private' stamp: 'ML 5/28/2021 19:24:21'!
693
+ useAsMultiplicandToMultiplyFraccion: aFraccionMultiplier
694
+
695
+ ^(aFraccionMultiplier numerator * numerator) / (aFraccionMultiplier denominator * denominator)! !
696
+
660
697
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
661
698
662
699
!classDefinition: 'Fraccion class' category: 'Numeros-Parte2-Ejercicio'!
0 commit comments