Kurs:Programmierung in Ruby
Einführung
BearbeitenRuby
Bearbeiten- Ruby
- Unter Windows installiert man Ruby am besten mit dem rubyinstaller
- Dokumentation: ruby-doc.org
- Quick Reference Cards
- Erster Einstieg in Ruby: tryruby.org
Aufgabe 1: Sternchenmuster
BearbeitenErzeugen Sie die folgenden Sternchenmuster unter Verwendung von Schleifen.
***** ***** ***** ***** ***** * ** *** **** ***** ****** ******* ******** ********* ********** * ** *** **** ***** ****** ******* ******** ********* ********** * *** ***** ******* ********* *********** ************* *************** ***************** ******************* * ******************* *** ***************** ***** *************** ******* ************* ********* *********** *********** ********* ************* ******* *************** ***** ***************** *** ******************* * * ****************** ** ***************** *** **************** **** *************** ***** ************** ****** ************* ******* ************ ******** *********** ********* ********** ********* ********* * ** *** *** *** ** * * ** *** *** *** ** * * ** *** *** *** ** * Kopfnuss: * ** *** **** *** ** ** *** * *** * ** * * * * * * ** * * * *** * * **** * **** *** ** * * ** *** **** *** ** ** *** * *** * ** * * * * * * ** * * * *** * * **** * **** *** ** *
Wenn Sie fertig sind, dann denken Sie sich selbst Sternchenmuster aus. Programmieren Sie diese und stellen Sie sie hier ins Wiki ein. Die anderen Kursteilnehmer müssen dann versuchen, diese nachzuprogrammieren!
Aufgabe 2: Listen
Bearbeiten- Schreiben Sie ein Programm, das alle Zahlen in einer Liste addiert und anschließend die Summe ausgibt.
- Schreiben Sie ein Programm, das den Inhalt einer Liste rumdreht.
- Schreiben Sie ein Programm, das die Zahlen zweier Listen komponentenweise addiert.
- Überlegen Sie sich selbst Programmieraufgaben, in denen Listen eine wesentliche Rolle spielen. Stellen Sie die Aufgaben hier ein, nachdem Sie sie selbst gelöst haben.
Aufgabe 3: Sortierverfahren
Bearbeiten- Implementieren Sie Bubblesort.
- Implementieren Sie Insertionsort.
- Implementieren Sie Shakersort.
- Implementieren Sie Swapsort
Aufgabe 3/2: Suchverfahren
Bearbeiten- Implementieren Sie die Lineare Suche
- Implementieren Sie die Binäre Suche. (Was ist die Voraussetzung, damit der Algorithmus funktioniert?)
Aufgabe 4: Klassen
BearbeitenAufgabe 4.1: Objektorientierte Modellierung
BearbeitenModellieren Sie eine der folgenden Klassen und setzen sie diese in Ruby um:
- Auto
- Katze
- Tamagotchi
- Radio
- Kaffeeautomat
- ...
Überlegen Sie sich dabei, welche Attribute und welche Methoden sinnvoll sind, und implementieren Sie diese entsprechend. Testen Sie Ihre Klasse, indem Sie mehrere Objekte erzeugen und damit spielen.
Aufgabe 4.2: Klasse Calc
BearbeitenSchreiben Sie die Klasse Calc, die einen "Akkumulator-Taschenrechner" darstellen soll. Beispielhafte Methoden sind
- set(x)
- add(x)
- sub(x)
- abs
- getvalue
Folgende Aufrufreihenfolge soll damit z.B. möglich sein:
- C = new Calc(3)
- c.add(6)
- c.add(2)
- c.sub(3)
- puts c.getValue
In diesem Beispielprogramm soll der Wert 8 ausgegeben werden.
Erweitern Sie anschließend Ihren Taschenrechner um zusätzliche Funktionen. Welche sind sinnvoll?
Aufgabe 4.3: Klasse Array
BearbeitenErweitern Sie die Klasse Array um die folgenden Methoden
- bubblesort
- swap(m,n)
- mean
- sum
- min
- max
Aufgabe 4.4: Klasse Bruchzahl
BearbeitenSchreiben Sie eine Klasse, mit deren Hilfe Bruchzahlen repräsentiert und Bruchzahloperationen durchgeführt werden können.
Aufgabe 4.5: Klasse Vektor
BearbeitenSchreiben Sie eine Klasse, die Vektorrechnung im dreidimensionalen Raum umsetzt. Implementieren Sie die Vektoraddition, die Vektormultiplikation, die Multiplikation mit einem Skalar und das Skalarprodukt.
Aufgabe 4.6: Klassen für geometrische Figuren
BearbeitenSchreiben Sie Klassen für geometrische Figuren wie beispielsweise KREIS, QUADRAT, RECHTECK, DREIECK, ..., die Methoden z.B. zur Berechung der Umfangs und des Flächeninhalts anbieten.
Aufgabe 5: Zweidimensionale Arrays
BearbeitenAnalysieren Sie das Kopfrechengitter.
- Können alle Zahlen von 0 bis 100 gebildet werden?
- Können alle Zahlen von 0 bis 100 "gleich oft" gebildet werden? Oder gibt es Zahlen, die "häufiger vorkommen"?
Aufgabe 7: A-N-N-A, von vorne wie von hinten
Bearbeiten- Informieren Sie sich, was ein Palindrom ist.
- Schreiben Sie eine Prozedur, die erkennt, ob eine Zeichenkette ein Palindrom ist. Vielleicht ist hierzu die Dokumentation der Klasse String hilfreich.
Aufgabe 8: Quersumme
BearbeitenSchreiben Sie eine Prozedur, welche die Quersumme einer gegebenen Zahl berechnet. Eventuell hilft Ihnen hier auch die Dokumentation der Klasse Fixnum weiter
Aufgabe 9: Übersichtlichkeit rulez
BearbeitenSchreiben Sie eine Prozedur, die eine gegebene Zahl strukturiert darstellt, indem sie von rechts jeweils drei Ziffern zusammenfasst und durch einen Punkt abtrennt. Also: 4546743 wird dargestellt als 4.546.743
Aufgabe 10: Pascalsches Dreieck
BearbeitenSchreiben Sie ein Programm, dass das Pascalsche Dreieck ausgibt. Die Höhe des Dreiecks soll über die Kommandozeile übergeben werden.