Hallo,
ich sitze schon seit längerem an der Hausarbeit zu PRG01 und bin am verzweifeln! Bei den Lösungen, die ich habe, bin ich total unsicher.
Insbesondere mit der Aufgabe 2 - Einkommenssteuerberechnung/ Horner-Schema. Ich hab das Horner-Schema nicht wirklich verstanden; mit meiner Lösung hat es gar nichts zu tun.
Könnte mir jemand seine Hausarbeit zum Abgleich zukommen lassen und/ oder das mit dem Horner-Schema erklären?
Vielen Dank schonmal!
Alexandra
PRG01 - Hausarbeit
- robina_1966
- Forums-Scout
- Beiträge: 559
- Registriert: 23.07.04 09:18
- Wohnort: von der sonne verwöhnt
..
Zuletzt geändert von robina_1966 am 23.10.09 09:46, insgesamt 4-mal geändert.
Hallo zusammen,
also, ich zerbrech mir jetzt auch schon seit Tagen den Kopp zu den Aufgaben 1 (Geldwechselmaschine) und 2 (Einkommensteuer) von Prg101.
Legt man bei der Geldwechselmaschine ein 1- oder 2-dimensionales Array an? Bin außerdem irritiert, dass lt. Aufgabenstellung a1, a2 usw. bereits mit 0 initialisiert wurde (ist meines Erachtens gar nicht notwendig?!)?
Bei der Aufgabe zur Einkommensteuer kapier ich nicht, was nun der grundlegende Unterschied von 1990 (und die Lösung steht ja in Kontrollaufgabe 3) zu 1981 (für die Einsendeaufgabe) sein soll.
Könnt Ihr mir auf die Sprünge helfen???
Ich glaub, ich seh den Wald vor lauter Bäumen nicht javascript:emoticon(':(')
Sad
Danke!
Micha
also, ich zerbrech mir jetzt auch schon seit Tagen den Kopp zu den Aufgaben 1 (Geldwechselmaschine) und 2 (Einkommensteuer) von Prg101.
Legt man bei der Geldwechselmaschine ein 1- oder 2-dimensionales Array an? Bin außerdem irritiert, dass lt. Aufgabenstellung a1, a2 usw. bereits mit 0 initialisiert wurde (ist meines Erachtens gar nicht notwendig?!)?
Bei der Aufgabe zur Einkommensteuer kapier ich nicht, was nun der grundlegende Unterschied von 1990 (und die Lösung steht ja in Kontrollaufgabe 3) zu 1981 (für die Einsendeaufgabe) sein soll.
Könnt Ihr mir auf die Sprünge helfen???
Ich glaub, ich seh den Wald vor lauter Bäumen nicht javascript:emoticon(':(')
Sad
Danke!
Micha
Habe es damals as C-Programm entworfen (finde pseudo.code bescheuert, weil man es nicht testen kann):
Prinzipiell also die Münzen von gross nach klein durch iterieren, Modulo-Division machen (dann hat man den rest) und den rest für den nächsten durchlauf speichern.
Steuerprogramm (kann man kompilieren und ausführen):
Hope that helps.
Code: Alles auswählen
int beispielwert = 83; // ggf. Eingabe
int einheiten[6] = {50, 20, 10, 5, 2, 1 };
int aufteilung[6];
int main() {
int i, rest, rest_temp;
rest = beispielwert
for (i = 0; i < 6; i++) {
rest_temp = rest % einheiten[i];
aufteilung[i] = (rest - rest_temp) / einheiten[i];
printf("%d passt %d mal in %d, Rest: %d\n", einheiten[i], aufteilung[i], rest, rest_temp);
rest = rest_temp;
if (rest == 0) {
break;
}
}
Steuerprogramm (kann man kompilieren und ausführen):
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
double est, e = 0;
int zve;
int main(int argc, char * argv[]) {
zve = atoi(argv[1]);
zve = zve - (zve % 54); // auf einen durch 54 teilbaren Betrag abrunden
if (zve >= 4212 && zve <= 18000) {
est = 0.22 * zve - 926;
} else if (zve > 18000 && zve <= 60000) {
e = (zve - 18000) * 0.0001;
est = (((3.05 * e - 73.76) * e + 695) * e + 2200) * e + 3034;
} else if (zve >= 60000 && zve < 130000) {
e = (zve - 60000) * 0.0001;
est = (((0.09 * e - 5.45) * e + 88.13) * e + 5040) * e + 20018;
} else if (zve >= 130000) {
est = 0.56 * zve - 14837;
}
printf("Zu versteuerndes Einkommen: %d\n", zve);
printf("Einkommensteuer: %f\n", est);
return 0;
}
Hallo,
hat jemand auch einen Lösungvorschlag in Pseudo-Code? C ist momentan noch Neuland für mich.
Für Hilfe wäre ich sehr dankbar. Falls mir jemand seine Einsendeaufgabe mailen könnte, wäre das auch ne sehr coole Sache
.
Vielen Dank im Voraus!
Viele Grüße,
Mark1972
hat jemand auch einen Lösungvorschlag in Pseudo-Code? C ist momentan noch Neuland für mich.
Für Hilfe wäre ich sehr dankbar. Falls mir jemand seine Einsendeaufgabe mailen könnte, wäre das auch ne sehr coole Sache

Vielen Dank im Voraus!
Viele Grüße,
Mark1972
Hallo zusammen,
ich arbeite derzeit auch an der Hausarbeit für prg01. Mich beschäftigt momentan die Aufgabe 1 mit der Entwicklung des Pseudocodes.
Leider kann man bzgl. Pseudocode nur wenig mit unseren Lernunterlagen anfangen.
Eine sehr gute Hilfe könnte deswegen folgender Link sein:
http://www.cs.princeton.edu/courses/arc ... erence.pdf
bzw. das Stichwort "Preudocode Reference"
Für eine korrekte Hausarbeit wäre ich dennoch dankbar.
mailto: sam@sam4fun.de
Gruß André
ich arbeite derzeit auch an der Hausarbeit für prg01. Mich beschäftigt momentan die Aufgabe 1 mit der Entwicklung des Pseudocodes.
Leider kann man bzgl. Pseudocode nur wenig mit unseren Lernunterlagen anfangen.
Eine sehr gute Hilfe könnte deswegen folgender Link sein:
http://www.cs.princeton.edu/courses/arc ... erence.pdf
bzw. das Stichwort "Preudocode Reference"
Für eine korrekte Hausarbeit wäre ich dennoch dankbar.
mailto: sam@sam4fun.de
Gruß André
Hallo zusammen!
Gibt es hier jemanden der seine Hausaufgaben einmal mit mir tauschen möchte? Bin absolut unsicher was meine Lösungen betrifft. Insbesondere Aufgabe 2 ist mir ein absolutes Rätsel. Wird denn anstatt Pseudocode auch C akzeptiert als Lösung?
Vielen Dank schonmal im Voraus!!
Gruß,
AB
Gibt es hier jemanden der seine Hausaufgaben einmal mit mir tauschen möchte? Bin absolut unsicher was meine Lösungen betrifft. Insbesondere Aufgabe 2 ist mir ein absolutes Rätsel. Wird denn anstatt Pseudocode auch C akzeptiert als Lösung?
Vielen Dank schonmal im Voraus!!
Gruß,
AB
Hallo,
ich wäre sehr dankbar, wenn jemand mir die HA von PRG01 zur Kontrolle zusenden könnte.
Kann auch tauschen
tinkerbell_74@web.de
Vielen Dank!
ich wäre sehr dankbar, wenn jemand mir die HA von PRG01 zur Kontrolle zusenden könnte.
Kann auch tauschen

tinkerbell_74@web.de
Vielen Dank!
Hallo,
kann mir jemand die Einsendeaufgabe für PRG01 zusenden? Das wäre super, komm nicht so richtig weiter und bräuchte da eine Hilfestellung.
Viiiiiieeeeeeelen vieeeeeelen Dank!
Gruß Linda
Und nochmal daaaaaaanke!
kann mir jemand die Einsendeaufgabe für PRG01 zusenden? Das wäre super, komm nicht so richtig weiter und bräuchte da eine Hilfestellung.
Viiiiiieeeeeeelen vieeeeeelen Dank!
Gruß Linda
Und nochmal daaaaaaanke!
Zuletzt geändert von Linda84 am 26.05.10 11:26, insgesamt 1-mal geändert.
- TheArchitect
- Neues Mitglied
- Beiträge: 8
- Registriert: 15.11.09 13:35
- Wohnort: NRW (Germany)
Nachfolgend die optimale(n) Lösung(en) zu der Einsendeaufgabe 1 in Form eines C++ - Quellcodes.
Meines Erachtens reichen hier zwei einfache Schleifen sowie eine simple Subtraktion aus. Eine Modulo-Operation würde ich in so einem einfachen Fall nicht vorziehen, zumal die Lösung mit der Subtraktion für Anfänger leichter zu verstehen ist ...
Programmcode ohne „echte“ Wechselfunktion :
Programmcode mit „echter“ Wechselfunktion. Ein Wechseln findet auch dann statt, wenn der Betrag der Stückelung entspricht, also 50,20,10,5,2 oder 1 ist :
Die erste Lösung ohne "echte" Wechselfunktion reicht m.E. aus, da die Aufgabenstellung nicht eindeutig ist.
PS : Bei allen Textelementen nach dem Doppelschrägstrich "//" handelt es sich um Kommentare, welche zum besseren Verständnis beitragen sollen.
Meines Erachtens reichen hier zwei einfache Schleifen sowie eine simple Subtraktion aus. Eine Modulo-Operation würde ich in so einem einfachen Fall nicht vorziehen, zumal die Lösung mit der Subtraktion für Anfänger leichter zu verstehen ist ...
Programmcode ohne „echte“ Wechselfunktion :
Code: Alles auswählen
#include <iostream>
#include <iomanip>
using namespace std;
int anzahl[6]; // Global deklariert, damit Compiler eine automatische
// Initialisierung aller Werte mit 0 vornimmt
int main()
{
int betrag = 89; // Testwert - Bei der Endversion sollte
// eine Eingabe möglich sein -
int stueckelung[] = {50, 20, 10, 5, 2, 1 };
for( int i = 0; i < 6; i++ )
{
while( betrag >= stueckelung[i] )
{
anzahl[i]++; // anzahl[i] = anzahl[i] + 1;
betrag -= stueckelung[i]; // betrag = betrag - stueckelung[i]
}
// Bildschirmausgabe der Stückelungen
cout << setw(10) << stueckelung[i] << setw(10) << anzahl[i]
<< setw(10) << betrag << endl;
}
cin.get();
return 0;
}
Code: Alles auswählen
#include <iostream>
#include <iomanip>
using namespace std;
int anzahl[6]; // Global deklariert, damit Compiler eine automatische
// Initialisierung aller Werte mit 0 vornimmt
int main()
{
int betrag = 89; // Testwert - Bei der Endversion sollte
// eine Eingabe möglich sein -
int stueckelung[] = { 50, 20, 10, 5, 2, 1 };
bool glatterBetrag = true;
for( int i = 0; i < 6; i++ )
{
while( betrag >= stueckelung[i] )
{
if( betrag == stueckelung[i] && glatterBetrag && betrag != 1 )
break;
anzahl[i]++; // anzahl[i] = anzahl[i] + 1;
betrag -= stueckelung[i]; // betrag = betrag - stueckelung[i]
glatterBetrag = false;
}
// Bildschirmausgabe der Stückelungen
cout << setw(10) << stueckelung[i] << setw(10) << anzahl[i]
<< setw(10) << betrag << endl;
}
cin.get();
return 0;
}
PS : Bei allen Textelementen nach dem Doppelschrägstrich "//" handelt es sich um Kommentare, welche zum besseren Verständnis beitragen sollen.
In function 'main()' : your code is suboptimal !
line1 : try the following operation: brain++
line1 : try the following operation: brain++
Nur als Tipp:
Wechselautomat ohne "echte" Wechselfunktion reicht nicht aus. Hatte eine Lösung eingereicht, die die 50, 20, usw. Werte nicht wechselt und dafür Punktabzug bekommen. Korrektorin lies auch nicht mit sich darüber diskutieren.
Gruß Marc
Wechselautomat ohne "echte" Wechselfunktion reicht nicht aus. Hatte eine Lösung eingereicht, die die 50, 20, usw. Werte nicht wechselt und dafür Punktabzug bekommen. Korrektorin lies auch nicht mit sich darüber diskutieren.
Gruß Marc
- TheArchitect
- Neues Mitglied
- Beiträge: 8
- Registriert: 15.11.09 13:35
- Wohnort: NRW (Germany)
Hallo Marc,
ich hätte die Korrektorin dann mal auf folgenden Beitrag im AKAD-Forum hingewiesen :
– Kommentar: Wechseln oder nicht Ernst Günther Hoffmann (Dozent) 26.02.2009 21:38
Hallo Herr ...,
...
Hier folgt jetzt mein Vorschlag zu Ihrer Vorgehensweise:
Sie geben bitte nur EINEN Betrag ein. Dieser soll dann in möglichst
wenigen, möglichst großen Scheinen/Münzen ausgegeben werden.
Das ist dann KEIN Geldwechselautomat.
Bei der Korrektur der Einsendeaufgabe wird diese Lösung akzeptiert werden.
Mit freundlichen Grüßen,
Ernst-Günter Hoffmann
Ich habe leider auch schon oft erlebt, dass die Korrektoren sich nicht an die Ausführungen der AKAD Lerneinheiten halten und ihre eigene Sichtweise haben.
Eine ausführliche Stellungnahme meinerseits, konnte jedoch in allen Fällen zu einer berichtigten Korrektur führen.
Gruß
TheArchitect
ich hätte die Korrektorin dann mal auf folgenden Beitrag im AKAD-Forum hingewiesen :
– Kommentar: Wechseln oder nicht Ernst Günther Hoffmann (Dozent) 26.02.2009 21:38
Hallo Herr ...,
...
Hier folgt jetzt mein Vorschlag zu Ihrer Vorgehensweise:
Sie geben bitte nur EINEN Betrag ein. Dieser soll dann in möglichst
wenigen, möglichst großen Scheinen/Münzen ausgegeben werden.
Das ist dann KEIN Geldwechselautomat.
Bei der Korrektur der Einsendeaufgabe wird diese Lösung akzeptiert werden.
Mit freundlichen Grüßen,
Ernst-Günter Hoffmann
Ich habe leider auch schon oft erlebt, dass die Korrektoren sich nicht an die Ausführungen der AKAD Lerneinheiten halten und ihre eigene Sichtweise haben.
Eine ausführliche Stellungnahme meinerseits, konnte jedoch in allen Fällen zu einer berichtigten Korrektur führen.
Gruß
TheArchitect
In function 'main()' : your code is suboptimal !
line1 : try the following operation: brain++
line1 : try the following operation: brain++