![Tuli](https://2img.net/u/3717/57/13/10/avatars/1-57.jpg)
TuliAdmin
![Admin Admin](https://2img.net/h/www.bilder-upload.eu/upload/c50f11-1476205467.png)
Anzahl der Beiträge : 28 Anmeldedatum : 10.10.16
![Lösungen zu BAI1PTEXAM - Probeklausur - Team DedSec Empty](https://2img.net/i/fa/empty.gif) | Thema: Lösungen zu BAI1PTEXAM - Probeklausur - Team DedSec Fr Dez 09, 2016 12:19 pm | |
| So Leute, wie erwünscht, werde ich hier noch einmal die Lösungen zur PT Probeklausur veröffentlichen. ungerade_zahl.rb - Code:
-
class UngeradeZahl include Comparable attr_reader :zahl def initialize(zahl) raise ArgumentError unless zahl.is_a?(Integer) && zahl.odd? @zahl = zahl end def succ end def <=>(other) if other.is_a?(UngeradeZahl) # oder self.class @zahl<=>other.zahl end end def succ UngeradeZahl.new(@zahl+2) end def to_s return "Bitte geben Sie einen Integer-Wert an." end end summen.rb - Code:
-
def test_input(enum) raise ArgumentError, 'Kein Enumerable übergeben.' unless enum.is_a?(Enumerable) enum.each_entry {|entry| raise TypeError, 'Kein Numeric übergeben' unless entry.is_a?(Numeric)} end
public def summe_each(enum) test_input(enum) result = 0 enum.each_entry do |entry| result += entry end result end
def summe_rekursiv(enum) test_input(enum) return 0 if enum.first.nil? enum.first + summe_rekursiv(enum.drop(1)) end
def summe_reduce(enum) test_input(enum) enum.reduce(0) {|result, item| result + item} end stack.rb - Code:
-
class Stack def initialize @stack = [] end
def empty? @stack.length == 0 end
def push(item) raise ArgumentError, "cant push nil" if (item == nil) @stack << item return self end
def peek raise EmptyStackError if @stack.empty? @stack.last end
def pop raise EmptyStackError if @stack.empty? @stack.pop end
def to_s " Anzahl der enthaltenen Elemente: #{@stack.length} #{self.peek}" end
end |
|