ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 04 Dez 2014, 22:21 
Offline
Nuby

Registriert: 04 Dez 2014, 21:52
Beiträge: 2
Hallo,
folgende Aufgabe soll ich lösen:

In dieser Aufgabe soll das Zeichen an Position i aus einer Zeichenkette str entfernt werden. Zum Beispiel soll man für die Zeichenkette "monkey" und Position 3 das Ergebnis "money" erhalten. Dieselbe Aufgabe soll einmal mit einer Funktion und einmal mit einer mutierenden Prozedur gelöst werden.
(a) Definieren Sie in Ruby eine Funktion remove_at(str,i), welche die Zeichenkette str ohne das Zeichen an Position i zurückgibt (ohne str selbst dabei zu verändern).
(b) Definieren Sie in Ruby eine mutierende Prozedur remove_at!(str,i), welche das Zeichen an Position i aus der gegebenen Zeichenkette str entfernt.
(c) Ergänzen Sie in den folgenden Programmen jeweils die fehlende Zeile. Links soll die Funktion remove_at aufgerufen werden, rechts die Prozedur remove_at!. In beiden Programmen soll die Variable var nach dem Aufruf den Wert "money" haben.



1
2
3
4
# Funktion removeAt verwenden          # Prozedur removeAt! verwenden
var = "monkey"; var = "monkey";
??? ???
puts(var); puts(var);

Mein Vorschlag für a:



1
2
3
4
x = "monkey"
y = x;
y[3,1] = "";
puts(y)

============> das ist ja keine Funktion. Wie bringe ich das in eine Funktion def?
Ich hatte gedacht= def remove_at(x,3), aber dann weiß ich nicht weiter :( :cry:

Über Lösungsvorschläge bedanke ich mich schon einmal im Voraus.

LG von Yuka


Nach oben
 Profil  
 
BeitragVerfasst: 04 Dez 2014, 23:25 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Yuka hat geschrieben:
(a) Definieren Sie in Ruby eine Funktion remove_at(str,i), welche die Zeichenkette str ohne das Zeichen an Position i zurückgibt (ohne str selbst dabei zu verändern).


Freu dich! die erste Zeile der Funktion hast du schon mal! Einfach ein def davor und du hast den Kopf! Ans Ende schreibst du dann end. Damit ist der Unterbau der Funktion schon mal fertig! Zwischen Funktionskopf und end schreibst du dann einfach nur noch was mit str in Abhängigkeit zu i passieren soll und fertig ist die Sauce.

Yuka hat geschrieben:
(b) Definieren Sie in Ruby eine mutierende Prozedur remove_at!(str,i), welche das Zeichen an Position i aus der gegebenen Zeichenkette str entfernt.


Auch hier brauchst du wieder nur def und end zu ergänzen und zwischendrin die Ruby-Magie wirken lassen um str zu modifizieren. Beachte dabei, dass du dabei nur Methoden nutzt die str direkt modifizieren. Wenn du einmal ne Zuweisung auf str machst, zerstört das die Referenz und str bleibt ausserhalb der Funktion unverändert.

Yuka hat geschrieben:
(c) Ergänzen Sie in den folgenden Programmen jeweils die fehlende Zeile. Links soll die Funktion remove_at aufgerufen werden, rechts die Prozedur remove_at!. In beiden Programmen soll die Variable var nach dem Aufruf den Wert "money" haben.



1
2
3
4
# Funktion removeAt verwenden          # Prozedur removeAt! verwenden
var = "monkey"; var = "monkey";
??? ???
puts(var); puts(var);

Mein Vorschlag für a:



1
2
3
4
x = "monkey"
y = x;
y[3,1] = "";
puts(y)

============> das ist ja keine Funktion. Wie bringe ich das in eine Funktion def?


Siehe oben…

Yuka hat geschrieben:
Über Lösungsvorschläge bedanke ich mich schon einmal im Voraus.


Wird es hier nicht geben. Dieses Forum gibt Hilfe zur Selbsthilfe, macht aber nicht die Hausaufgaben anderer. Brauchst du wirklich jemanden der dir mal eben die Hausaufgaben fertig macht, dann ist viewforum.php?f=17 besser geeignet.

MfG
NobbZ

PS: Meistens ist es bei solchen Aufgaben besser Klassenkameraden/Kommilitonen oder vergleichbare Personengruppen zu fragen, die den selben Unterricht besuchen bzw. die gleiche Veranstaltung besuchen. Wir wissen von hier aus nicht, welche Inhalte ihr bereits im Vorraus vermittelt bekommen habt und wollen auch dem Dozenten/Lehrer jetzt nicht durch die brutale Realität seine kommenden Inhalte zerstören oder gar seine Kompetenz angreifen, fängt es doch schon damit an, dass es in Ruby keine "Prozeduren" in dem Sinne gibt. In Ruby hat ALLES einen Rückgabewert. Statements und Expressions, wie man sie in Sprachen wie Pascal unterscheidet, gibt es in Ruby nicht. Ruby kennt in dem Sinne nur Expressions und ihr Wert wird entweder weiter verwendet oder eben nicht (von Seiteneffekten mal abgesehen).

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 05 Dez 2014, 08:47 
Offline
Nuby

Registriert: 04 Dez 2014, 21:52
Beiträge: 2
Danke trotzdem für deine Antwort.
Ich will ja nicht, dass jemand meine Hausaufgaben macht. Ich wollte halt nur wissen, wie man das in eine Funktion umwandelt. Den Rest hätte ich schon irgendwie hingekommen. Naja egal!

Lg Yuka


Nach oben
 Profil  
 
BeitragVerfasst: 05 Dez 2014, 09:09 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Yuka hat geschrieben:
Danke trotzdem für deine Antwort.
Ich will ja nicht, dass jemand meine Hausaufgaben macht. Ich wollte halt nur wissen, wie man das in eine Funktion umwandelt.


Ich bin mir sicher, dass ihr das im Unterricht bereits gemacht habt. Aber ich geb dir mal ein einfaches Beispiel für eine Funktion:



1
2
3
def foo(bar, baz)
bar * baz
end


Diese Funktion liefert das Produkt von bar und baz.

Aufgrund der Tatsache allerdings, dass euer Lehrer/Dozent der Meinung ist, bei Ruby zwischen Funktionen und Prozeduren unterscheiden zu müssen, gehe ich davon aus, dass ihr vom Rubys implizieten return nichts wisst, sondern Funktionen eben schreiben sollt wie folgt:



1
2
3
def foo(bar, baz)
return bar * baz
end


Das ist aber wirklich nur eine Vermutung.

Yuka hat geschrieben:
Den Rest hätte ich schon irgendwie hingekommen.


Du hast noch 25 Tage um hier deine Fragen zu stellen, dann wird das Forum leider geschlossen.

Yuka hat geschrieben:
Naja egal!


Oh, wenn das für dich wie ein rausschmiss klang, dann möchte ich mich bei dir entschuldigen. Ich bin gerade etwas, sagen wir einfach mal, genervt von meinen Komillitonen, die immer wieder zu mir oder einem der anderen Erfahrenen kommen und immer wieder die gleichen Basics erfragen und das obwohl genau diese Dinge in den letzten Vorlesungen lang und breit erklärt wurden. Dann setzt man sich mit diesen Leuten ne Stunde oder zwei hin (kann natürlich in der Zeit am eigenen Projekt nicht arbeiten), erklärt es denen nochmal langsam und ausführlich, nur um dann am nächsten Tag festzustellen, dass die wieder nicht zugehört haben.

Ich bin nach wie vor gerne bereit anderen zu helfen, aber reagiere leider häufig gereizt bei solchen Basics. Ich hoffe daher, du verzeist mir meinen Ton aus der letzten Antwort, und wir nutzen gemeinsam die Zeit die dem Forum bleibt um deine Probleme aus dem Weg zu räumen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron