Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Sieht so aus, als ob libstdc++ nicht dazugelinkt wird. Eigentlich sollte der g++ das von selbst machen. Ich weiß nicht, inwieweit du die Compiler-Kommandozeilenoptionen in deiner Entwicklungsumgebung beeinflussen kannst, aber da scheint mir ein -lstdc++ zu fehlen.
  2. Auf der Downloadseite von MinGW, unter "MinGW zlib".
  3. Dann sind wohl Fehler in deinem Code. Den Code hast du aber nicht gezeigt, also wird es schwer, dir da zu helfen.
  4. Die zlib fehlt oder hat nicht den erwarteten Namen. Schau bitte mal im Library-Ordner des MinGW nach, ob da irgendwelche Dateien drin sind, die libz, zlib oder zdll im Namen enthalten.
  5. Bist du sicher, dass es sich um einen Key (Unterordner) handelt, und nicht um einen Wert?
  6. Was machst du denn mit dem Rückgabewert? Falls du versuchst, ihn einem char[20] zuzuweisen: Einem Array kann man nichts zuweisen. Besser wäre es, wenn du std::string benutzen würdest. Man muss sich in C++ nicht mehr mit Zeigern rumärgern. Dann kann der Aufrufer auch nicht vergessen, den Speicher wieder freizugeben.
  7. Nicht ganz. Du hast jetzt Auslandstätigkeit und Außendienst wieder "entkoppelt", das war aber so, wie es vorher war, schon ganz richtig, siehe PAP.
  8. Nein, das ist derselbe Fehler, nur andersrum. Die Halbtagskraft-, Führungskraft- und Auslands-Verzweigungen müssen dieselbe Breite haben wie die Behindert-Verzweigung, weil die alle voneinander unabhängig sind. In deinem PAP führt doch auch nicht nur einer der beiden Pfeile zur nächsten Verzweigung, sondern beide.
  9. Wenn die Abfrage Behindert/Halbtagskraft/Führungskraft Nein ergibt, lässt du alle weiteren Abfragen aus, das ist falsch. Die nachfolgenden Prüfungen werden auf jeden Fall gemacht, nicht nur, wenn die vorhergehende Ja ergab. Die Halbtagskraft-Abfrage muss also über die volle Breite der darüberliegenden Abfrage gehen, nicht nur über den Ja-Teil, usw.
  10. Ich habe keine Ahnung, was du damit sagen willst. Ich dachte, die Zahlen gehen nur bis 30. :confused: Wie auch immer: Du hast 2^30 Kombinationen. Du kannst die sortieren, z.B. erst die "leere Kombination", dann alle mit einer Zahl, dann die mit 2 Zahlen usw. Die Kombinationen mit gleicher Zahlenanzahl könntest du dann nach der ersten Zahl aufsteigend sortieren, bei Gleicheit nach der nächsten Zahl usw. Von dieser Sortierung nimmst du dann die ersten 10.000 Kombinationen, dann hast du deine Zuordnung. Damit deckst du alle Kombinationen mit 0, 1 oder 2 Zahlen ab, und einige mit 3 Zahlen. Wenn du andere Kombinationen abbilden willst, musst du nur anders sortieren. Beispielsweise könntest du die Kombinationen mit genau 6 Zahlen, die 5, 9, 12 und 18 enthalten, vor alle anderen einsortieren, dann ist deine Beispielkombination in den ersten 10.000 dabei. Das einzige, was du dann wissen musst, um aus der vierstelligen Zahl wieder die Kombination zu ermitteln, ist die verwendete Sortierung.
  11. Wie gesagt, denk dir eine Ordnungsrelation für die Kombinationen aus, bei der genau diese Kombination an 3283. Stelle steht. Dann kannst du einfach abzählen. Darauf läuft es hinaus.
  12. In eine vierstellige Zahl im Dezimalsystem kannst du genau 10^4 = 10.000 Kombinationen stecken. Ein Ansatz wofür? Welche 10.000 du abbilden willst? Denk dir eine beliebige Ordnungsrelation für die Kombinationen aus, und nimm dann die ersten 10.000.
  13. Es sind 2^30, das sind ein paar mehr. Indem man für die Darstellung ein Zahlensystem mit der Basis 181 benutzt. Im Ernst: Wie willst du über 1 Milliarde Kombinationen in 4 Stellen packen?
  14. Wo ist denn das Problem? Da ist keine Schleife drin, kein Sprung, nur Verzweigungen. Das lässt sich doch prima in ein Struktogramm überführen.
  15. Wenn du die Abfrage weglässt, wird für die, bei denen Wert = 0 ist, der Grundbetrag ermittelt, nur um hinterher mit 0 multipliziert zu werden. Das Ergebnis ist richtig, aber das Programm betreibt dann unnötigen Aufwand. Richtig wäre meiner Meinung nach beides. Die Frage ist, ob der PAP möglichst einfach sein soll, oder ob das Programm möglichst effizient arbeiten soll.
  16. Das sieht doch schon gar nicht schlecht aus. Du solltest noch die Bezeichner glattziehen (oben benutzt du Grundbetrag, unten Betrag), und bei +300/+100 solltest du auch dranschreiben, welche Variable du da änderst. Und wie bereits erwähnt, die Umleitung für Wert < 1 brauchst du im Prinzip nicht. Wenn Wert 0 ist, wird eben unten mit Null multipliziert, das Ergebnis stimmt auch dann in jedem Fall.
  17. Es wäre schon, wenn du die Zitatfunktion des Forums benutzen würdest. Bitte schließ Zitate in [ QUOTE ]-Tags ein. Diese Werte stimmen aber nur, wenn derjenige nicht behindert ist. Das trägt nur zur Verwirrung bei, weil man meint, das wäre Teil der Aufgabenstellung. Die Variable Praemie, die im Struktogramm benutzt wird, ist im PAP nicht zu sehen. Die Variable Wert gibt es nur im PAP, nicht im Struktogramm. Im Struktogramm werden vorberechnete Werte für die Kombinationen behindert/Führungskraft/Halbtagskraft verwendet, im PAP wird mit Faktoren gearbeitet. Siehst du diese Unterschiede nicht? Schön, dass wir uns einig sind. Du musst diese Eigenschaften einfach nur unabhängig voneinander verarbeiten, so wie du es im PAP mit Ausland/Außendienst gemacht hast. In der Aufgabenstellung ist nur der Grundbetrag an die Betriebszugehörigkeit gekoppelt, nicht der "Zuschlag". Aber mach es, wie du meinst.
  18. Das ist totaler Blödsinn. Man kann beliebig viele ähnlich komplizierte Lösungswege für beliebige andere "Lösungen" konstruieren.
  19. Erstens steht das schon weiter oben, und zweitens sind da immer noch deine runden Klammern drin, die ja so nicht im Aufgabentext stehen. Die Aufgabenstellung ist doch klar. Unklar ist,ob wir über deinen PAP oder dein Struktogramm reden sollen, denn die zeigen unterschiedliche Programme. Das genannte Problem, das die Information über die Firmenzugehörigkeit fehlt, hast du nämlich nur in dem Struktogramm. Ich betrachte jetzt einfach mal den PAP, weil im Struktogramm mehr Fehler sind: Die Eigenschaften Führungskraft und Halbtagskraft schließen sich meiner Meinung nach nicht aus, die musst du also unabhängig voneinander betrachten. Andererseits impliziert Auslandseinsatz den Außendienst, denn Auslandseinsatz ohne Außendienst geht ja schlecht. Ich glaube nicht, dass Mitarbeiter im Ausland beide Zuschläge bekommen. Und schließlich glaube ich nicht, dass der Zuschlag auch mit der Firmenzugehörigkeit gekoppelt ist. Den würde ich erst nach der Multiplikation draufschlagen. Hier ist aber die Aufgabenstellung nicht eindeutig.
  20. Der PAP und das Struktogramm stellen nicht dasselbe Programm dar. Vielleicht solltest du das erst mal vereinheitlichen, damit klar ist, worüber geredet wird.
  21. Die Funktion initListe hat ein Problem: Parameter in C sind (bis auf Arrays) Call-by-Value, die Funktion arbeitet also immer mit Kopien der Parameter. In diesem Fall ist der Zeiger li also nur eine Kopie des Zeigers, mit dem du diese Funktion aufrufst. Die Änderungen in der Funktion, also das Zuweisen des mit malloc geholten Speichers, betreffen nur diese Kopie. Der Zeiger, der beim Aufruf angegeben wurde, ändert sich nicht. Statt eines Parameters würde sich hier einfach ein Rückgabewert anbieten, denn mit dem reingegeben Zeiger machst du ja eigentlich gar nichts, du überschreibst ihn sofort. In der Funktion vorneEinfuegen sind ein paar Fehler: Du holst für neu Speicher für ein t_element, und benutzt es auch so, deklariert hast du es aber als Zeiger auf t_Listenkopf, das geht in die Hose. Die Zuweisung des Inhalts ist auch falsch. Der Ausdruck inhalt[LAENGE] außerhalb der Deklaration bezieht sich auf ein einzelnes char-Element des Arrays, allerdings an einer Position, die genau hinter dem Ende des Arrays liegt, denn der letzte gültige Index wäre LAENGE-1. Ganz allgemein kannst du Arrays nichts zuweisen. Zum Kopieren von Strings gibt es die Funktion strcpy, hier noch besser strncpy, damit du sicherstellen kannst, dass nicht mehr kopiert wird, als in inhalt hineinpasst (der gefürchtete Pufferüberlauf). Zu guter Letzt muss die Zuweisung an li->erstesElement aus dem if-Block raus. Du musst immer den Anfangszeiger ändern, nicht nur dann, wenn die Liste vorher leer war.
  22. Benuzt CODE-Tags, nicht QUOTE.
  23. :eek Dein Lehrer sollte dringend dem Deutschen Institut für Normung Bescheid geben, die wissen das offenbar noch gar nicht! Bei denen ist die aktuelle Version der DIN 66001 immer noch von Dezember '83. Im Ernst: Ich glaube, hier will irgendwer irgendjemanden auf den Arm nehmen. Was für ein ominöses Buch soll das denn sein?
  24. Zu erfahren, was das Programm denn nun tut, wenn es eben nicht tut, was es soll, wäre wohl auch nützlich. Tut sich gar nichts? Hängt es? Kommt eine Exception? Wenn ja, wie sieht die aus?
  25. Ja. Du musst das Programm nicht ausführen, aber erstellen musst du es. Dieses einfache Programm sollte dann überall laufen, wo das Redist Package installiert ist. Bei komplexeren Programmen kann sich das ändern, z.B. wenn du Funktionen benutzt, die für ältere Windows-Versionen nicht verfügbar sind. Falls du mal .NET-Funktionen benutzt, muss das passende Framework auf dem Zielrechner installiert sein.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...