Liebe Alle,
hier unsere HÜ. Uns ist in der letzten Einheit wohl nicht alles ganz klar gewesen, daher gibt es einige Fragen.
*** Aufgabe 1a: *** /**/ p1 = .Person~New("Kurt","Ostbahn","45000") p2 = .Person~New("Jazz","Gitti",55000) SAY p1~firstName p1~familyName p1~salary SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary ::CLASS Person ::METHOD INIT EXPOSE firstName familyName salary USE ARG firstName, familyName, salary ::ATTRIBUTE firstName ::ATTRIBUTE familyName ::ATTRIBUTE salary ::METHOD increaseSalary EXPOSE salary USE ARG increase salary = salary + increase SAY p1~salary
Output: Kurt Ostbahn 45000 18 *-* SAY p1~salary 5 *-* SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary Error 97 running C:\U line 18: Object method not found. Error 97.1: Object "P1" does not understand message "SALARY".
Process finished with exit code -97 Frage: Warum bekommen wir diese Fehlermeldung?
*** Aufgabe 1b: ***
/**/
p1 = .Person~New("Kurt","Ostbahn","45000")
p2 = .Person~New("Jazz","Gitti",55000)
SAY p1~firstName p1~familyName p1~salary
SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary
::CLASS Person
::METHOD INIT
EXPOSE firstName familyName salary
USE ARG firstName, familyName, salary
::ATTRIBUTE firstName
::ATTRIBUTE familyName
::ATTRIBUTE salary
::METHOD increaseSalary
EXPOSE salary
USE ARG increase
salary = salary + increase
SAY "Hallihallo"
Output: Kurt Ostbahn 45000 Hallihallo Kurt 45000 55000 Frage: Warum ist es mit „Hallihallo“ möglich (vgl. zu Aufgabe 1a) ? Wieso ist „Hallihallo“ in der zweiten Ausgabezeile?
*** Aufgabe 2: ***
tmpColl = .stream ~new("meininput.txt")~~open
SAY "a" tmpColl~class~id":"
DO i OVER tmpColl
SAY "["i"]"
END
tmpColl~close
Output: a Stream:
Process finished with exit code 0 Frage: Wo soll mein input.txt gespeichert sein (Pfad), damit es im Output wiedergegeben wird?
*** Aufgabe 3: ***
shoppinglist = .list~of("orange", "banana", "apple", "almonds", "kiwi")
shoppinglistArray = shoppinglist~makeArray-- make array
say "This is my shopping list:"
say shoppinglistArray
shoppinglistArray = shoppinglist~makeArray~sort-- make & sort array
say "This is my shopping list nicely ordered:" shoppinglistArray
shoppinglistStream = .Stream~new("myoutput.txt")~~open("replace")
shoppinglistStream~ArrayOut(shoppinglistArray)
shoppinglistStream~close
Output: This is my shopping list: orange banana apple almonds kiwi This is my shopping list nicely ordered: almonds apple banana kiwi orange
Process finished with exit code 0
Frage: wo soll das myoutput.txt dann zu finden sein (Pfad)?
Danke schon mal für eure Ideen und Lösungen 😊 Liebe Grüße und ein schönes Wochenende wünschen Jana & Birgit
Birgit Hietel Studienrecht study regulations
WU Wirtschaftsuniversität Wien Vienna University of Economics and Business Gebäude LC, Ebene +2 Welthandelsplatz 1, 1020 Wien, Austria
Tel: +43-1-313 36-5836 E-Mail: birgit.hietel@wu.ac.atmailto:birgit.hietel@wu.ac.at www.wu.ac.athttp://www.wu.ac.at/
Liebe Gruppe 3,
ganz kurz.
On 24.11.2022 16:01, Hietel, Birgit wrote:
Liebe Alle,
hier unsere HÜ.
Uns ist in der letzten Einheit wohl nicht alles ganz klar gewesen, daher gibt es einige Fragen.
*** Aufgabe 1a: ***
/**/
p1 = .Person~New("Kurt","Ostbahn","45000")
p2 = .Person~New("Jazz","Gitti",55000)
SAY p1~firstName p1~familyName p1~salary
SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary
::CLASS Person
::METHOD INIT
EXPOSE firstName familyName salary
USE ARG firstName, familyName, salary
::ATTRIBUTE firstName
::ATTRIBUTE familyName
::ATTRIBUTE salary
::METHOD increaseSalary
EXPOSE salary
USE ARG increase
salary = salary + increase
SAY p1~salary
In der Methode "increaseSalary" hat die Variable "p1" keinen Wert, sodass der Name der Variable in Großbuchstaben (eine Zeichenkette) eingesetzt wird. Die Zeichenkette "P1" verfügt über keine Methode, die "salary" heißt, einfach in rexxref.pdf nachschlagen und die Methoden der Klasse "String" studieren.
Output: Kurt Ostbahn 45000 18 *-* SAY p1~salary 5 *-* SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary Error 97 running C:\U line 18: Object method not found. Error 97.1: Object "P1" does not understand message "SALARY".
Process finished with exit code -97
Frage: Warum bekommen wir diese Fehlermeldung?
Siehe obige Erklärung.
*** Aufgabe 1b: ***
/**/ p1 = .Person~New("Kurt","Ostbahn","45000") p2 = .Person~New("Jazz","Gitti",55000) SAY p1~firstName p1~familyName p1~salary SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary ::CLASS Person ::METHOD INIT EXPOSE firstName familyName salary USE ARG firstName, familyName, salary ::ATTRIBUTE firstName ::ATTRIBUTE familyName ::ATTRIBUTE salary ::METHOD increaseSalary EXPOSE salary USE ARG increase salary = salary + increase SAY "Hallihallo"
Output: Kurt Ostbahn 45000 Hallihallo Kurt 45000 55000
Frage: Warum ist es mit „Hallihallo“ möglich (vgl. zu Aufgabe 1a) ? Wieso ist „Hallihallo“ in der zweiten Ausgabezeile?
Wo sollte sie denn erscheinen (und warum)?
Schauen Sie sich Ihr Programm noch einmal an und gehen es, Zeile für Zeile durch. (Die SAY-Ausgabe im Hauptprogramm wird erst dann erfolgen, wenn der Ausdruck vollständig abgearbeitet wurde, d.h. erst nachdem z.B. increaseSalary gefolgt von salary gelaufen ist.)
*** Aufgabe 2: ***
tmpColl = .stream ~new("meininput.txt")~~open SAY "a" tmpColl~class~id":" DO i OVER tmpColl SAY "["i"]" END tmpColl~close
Output: a Stream:
Process finished with exit code 0
Frage: Wo soll mein input.txt gespeichert sein (Pfad), damit es im Output wiedergegeben wird?
Fügen Sie ein "say tmpColl~qualify" ein und Sie sehen den Pfad, studieren Sie dazu die Methoden in rexxref.pdf, die die Streamklasse besitzt!
Sie könnten auch "say directory()" schreiben und würden den Pfad zum Verzeichnis sehen, in dem das Rexxprogramm ausgeführt wird und wo die Datei gespeichert werden würde, nachdem kein Pfad by ".stream~new(...)" angegeben wurde.
*** Aufgabe 3: ***
shoppinglist = .list~of("orange", "banana", "apple", "almonds", "kiwi") shoppinglistArray = shoppinglist~makeArray-- make array say "This is my shopping list:" say shoppinglistArray shoppinglistArray = shoppinglist~makeArray~sort-- make & sort array say "This is my shopping list nicely ordered:" shoppinglistArray shoppinglistStream = .Stream~new("myoutput.txt")~~open("replace") shoppinglistStream~ArrayOut(shoppinglistArray) shoppinglistStream~close
Output: This is my shopping list: orange banana apple almonds kiwi This is my shopping list nicely ordered: almonds apple banana kiwi orange
Process finished with exit code 0
Frage: wo soll das myoutput.txt dann zu finden sein (Pfad)?
Siehe oben.
Mit freundlichem Gruß
Rony G. Flatscher
Danke Prof.Flatscher.
Nur z.Kts, rexxref ist auf https://www.oorexx.org/docs/ nicht mehr verfügbar.
(Not found. The requested URL /docs/rexxref/rexxref.pdf was not found on this server)
Ich glaube die Datei is auf https://sourceforge.net/projects/oorexx/files/oorexx-docs/5.0.0beta/ zu finden.
Lg, Jana
From: Wu_bp_2022w wu_bp_2022w-bounces@alice.wu.ac.at On Behalf Of Rony G. Flatscher Sent: Donnerstag, 24. November 2022 16:53 To: wu_bp_2022w@alice.wu.ac.at Subject: Re: [Wu_bp_2022w] G03 T06
Liebe Gruppe 3,
ganz kurz.
On 24.11.2022 16:01, Hietel, Birgit wrote:
Liebe Alle,
hier unsere HÜ.
Uns ist in der letzten Einheit wohl nicht alles ganz klar gewesen, daher gibt es einige Fragen.
*** Aufgabe 1a: ***
/**/
p1 = .Person~New("Kurt","Ostbahn","45000")
p2 = .Person~New("Jazz","Gitti",55000)
SAY p1~firstName p1~familyName p1~salary
SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary
::CLASS Person
::METHOD INIT
EXPOSE firstName familyName salary
USE ARG firstName, familyName, salary
::ATTRIBUTE firstName
::ATTRIBUTE familyName
::ATTRIBUTE salary
::METHOD increaseSalary
EXPOSE salary
USE ARG increase
salary = salary + increase
SAY p1~salary
In der Methode "increaseSalary" hat die Variable "p1" keinen Wert, sodass der Name der Variable in Großbuchstaben (eine Zeichenkette) eingesetzt wird. Die Zeichenkette "P1" verfügt über keine Methode, die "salary" heißt, einfach in rexxref.pdf nachschlagen und die Methoden der Klasse "String" studieren.
Output: Kurt Ostbahn 45000 18 *-* SAY p1~salary 5 *-* SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary Error 97 running C:\U line 18: Object method not found. Error 97.1: Object "P1" does not understand message "SALARY".
Process finished with exit code -97
Frage: Warum bekommen wir diese Fehlermeldung?
Siehe obige Erklärung.
*** Aufgabe 1b: ***
/**/ p1 = .Person~New("Kurt","Ostbahn","45000") p2 = .Person~New("Jazz","Gitti",55000) SAY p1~firstName p1~familyName p1~salary
SAY p1~firstName p1~salary p1~~increaseSalary(10000)~salary ::CLASS Person ::METHOD INIT EXPOSE firstName familyName salary USE ARG firstName, familyName, salary ::ATTRIBUTE firstName ::ATTRIBUTE familyName ::ATTRIBUTE salary ::METHOD increaseSalary EXPOSE salary USE ARG increase salary = salary + increase
SAY "Hallihallo"
Output: Kurt Ostbahn 45000 Hallihallo Kurt 45000 55000
Frage: Warum ist es mit „Hallihallo“ möglich (vgl. zu Aufgabe 1a) ? Wieso ist „Hallihallo“ in der zweiten Ausgabezeile?
Wo sollte sie denn erscheinen (und warum)?
Schauen Sie sich Ihr Programm noch einmal an und gehen es, Zeile für Zeile durch. (Die SAY-Ausgabe im Hauptprogramm wird erst dann erfolgen, wenn der Ausdruck vollständig abgearbeitet wurde, d.h. erst nachdem z.B. increaseSalary gefolgt von salary gelaufen ist.)
*** Aufgabe 2: ***
tmpColl = .stream ~new("meininput.txt")~~open SAY "a" tmpColl~class~id":" DO i OVER tmpColl SAY "["i"]" END tmpColl~close
Output: a Stream:
Process finished with exit code 0
Frage: Wo soll mein input.txt gespeichert sein (Pfad), damit es im Output wiedergegeben wird?
Fügen Sie ein "say tmpColl~qualify" ein und Sie sehen den Pfad, studieren Sie dazu die Methoden in rexxref.pdf, die die Streamklasse besitzt!
Sie könnten auch "say directory()" schreiben und würden den Pfad zum Verzeichnis sehen, in dem das Rexxprogramm ausgeführt wird und wo die Datei gespeichert werden würde, nachdem kein Pfad by ".stream~new(...)" angegeben wurde.
*** Aufgabe 3: ***
shoppinglist = .list~of("orange", "banana", "apple", "almonds", "kiwi") shoppinglistArray = shoppinglist~makeArray-- make array say "This is my shopping list:" say shoppinglistArray shoppinglistArray = shoppinglist~makeArray~sort-- make & sort array say "This is my shopping list nicely ordered:" shoppinglistArray shoppinglistStream = .Stream~new("myoutput.txt")~~open("replace") shoppinglistStream~ArrayOut(shoppinglistArray) shoppinglistStream~close
Output: This is my shopping list: orange banana apple almonds kiwi This is my shopping list nicely ordered: almonds apple banana kiwi orange
Process finished with exit code 0
Frage: wo soll das myoutput.txt dann zu finden sein (Pfad)?
Siehe oben.
Mit freundlichem Gruß
Rony G. Flatscher