Ruby-Hilfe für Anfänger

Neue Frage »

Auf diesen Beitrag antworten »
LadyClueless Ruby-Hilfe für Anfänger

Meine Frage:
Hallo ihr Lieben, ich brauche ganz dringend Hilfe! Ich lerne gerade die Programmiersprache Ruby, habe aber noch nicht viel Erfahrung sammeln können. Ganz einfache Fragen kann ich mittlerweile lösen, aber an folgenden Aufgabenstellungen beiße ich mir die Zähne aus:

Aufgabe 1
Entwickeln Sie Ruby-Funktionsdefinitionen, die die folgenden Aufgaben lösen.

1.Gegeben ist eine Liste von ganzen Zahlen. Gesucht ist die Anzahl der Vorkommen von geraden Zahlen.

2.Gegeben ist eine Liste von Listen mit jeweils zwei Elementen, von denen das erste eine Gleitkommazahl ist. Gesucht ist die Summe der jeweils ersten Listenelemente. Geben Sie zwei Definitionen an: eine mit map, eine ohne.

3.Gegeben ist eine Liste von Zeichenketten. Gesucht ist eine der längsten Zeichenketten in dieser Liste. (Die Länge einer Zeichenkette kann mit length ermittelt werden, z.B. wird "abc".length zu 3 ausgewertet.)

4.Was macht Ihre Funktion aus der vorherigen Aufgabe, wenn sie für ["a", "abc", "def", ""] ausgewertet wird? Gibt sie "abc" oder "def" aus? Beschreiben Sie das Ergebnis Ihrer Funktion im Allgemeinen. Entwickeln Sie eine Variante Ihrer Funktion, die den anderen Wert bestimmen würde.

Aufgabe 2

1.Kommentieren Sie die folgende Funktionsdefinition und markieren Sie die Stelle, an der das Ergebnis erzeugt wird:
# ...
def count_positive(list)
n = 0
list.each { |x| n = n + (if x > 0 then 1 else 0 end) }
n
end


2.Kommentieren Sie die folgende Funktionsdefinition und vergeben Sie einen geeigneten Namen:
#
def ... (list)
sum = 0
list.map {|x| if x > 0 then x else -x end}
end


3.Die folgende Funktionsdefinition ist fehlerhaft - korrigieren Sie sie. Damit Sie wissen, was gemeint ist: reciprocal_sum([2,4,8]) ? 0.875.
def reciprocal sum(list)
sum = 0
list.map (|x| 1/x).each (|x| sum = sum + x)
end



Meine Ideen:
Ich benutze 'Ruby 2.1.9-p490-x64' und habe alles Mögliche probiert, bin mir aber bei vielem entweder nicht sicher oder bekomme Fehlermeldungen beim Bestätigen meiner Funktionen. In den Unterlagen, welche mir zur Verfügung stehen, kann ich keine sinnvolle Hilfe finden, eben sowenig im Internet. Ich komme nicht mehr weiter und bin langsam am verzweifeln. Ist jemand so lieb und kann mir die Fragen beantworten und erklären, wie es geht? Jeder Tipp und jede Hilfe sind herzlich willkommen! Vielen, vielen Dank!!
 
Auf diesen Beitrag antworten »
eulerscheZahl RE: Ruby-Hilfe für Anfänger

Die erste Aufgabe kannst du ja fast schon vom Code weiter unten abschreiben.
code:
1:
2:
3:
4:
5:
def count_positive(list)
  n = 0
  list.each { |x| n = n + (if x > 0 then 1 else 0 end) }
  n
end

if x > 0 ist der Teil, der prüft, ob eine Zahl positiv ist. Ersetzen wir den doch einfach durch if x % 2 == 0, um zu prüfen, ob die Zahl gerade ist.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »