Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Klotzkopp

    werte

    Damit deklarierst du ein Array mit einem Element, nämlich sum[0]. Auf sum[1] darfst du mit dieser Deklaration gar nicht zugreifen.
  2. Genau. Ohne malloc hast du aber nicht die Möglichkeit, solche Datenstrukturen dynamisch zu verwalten. Ohne malloc bleibt dir nur die Möglichkeit, ein Array mit vorher festgelegter Größe anzulegen, und dieses nach und nach zu füllen.
  3. if ((hilf1 >1 || hilf1 < -1) && ( hilf2 >1 || hilf2 < -1) && (hilf3 >1 || hilf3 < -1) && (hilf4 >1 || hilf4 < -1)) /*für 3*/ Hier ist schon mal ein Fehler: Du fragst hier hilf4 ab, ohne es jemals initialisiert zu haben. hilf4= array [2] -array[4]; Hier ermittelst du dann hilf4, benutzt das Ergebnis aber nie wieder. hilf1 = array [4] - array[5]; hilf2 = array[4] -array [5];[/code]Hier füllst du hilf1 und hilf2 mit demselben Ausdruck. Ist bestimmt auch nicht Sinn der Sache. Aber ich würde das grundsätzlich anders aufziehen. Du merkst ja selbst, wie schwierig die Fehlersuche in solchem Code ist. Schreib dir doch erst mal eine Funktion, die zwei Arrayeinträge prüft und das Ergebnis zurückgibt. Dann kannst du dir die ganzen Hilfsvariablen und Größer-oder-Kleiner-Vergleiche sparen.
  4. Es gibt mehrere Möglichkeiten, das zu tun. Du brauchst eine passende Datenstruktur, z.B. ein Array oder eine Liste. Offenbar sollst du für diese Aufgabe bereits in der Lage sein, so etwas zu benutzen. Sagt dir malloc etwas?
  5. Das ist nicht portabel und funktioniert nur mit einigen Windows-Compilern. Besser ist es, in einer Schleife solange getchar aufzurufen, bis es den Zeilenumbruch zurückliefert.
  6. Das ist falsch. Bedenke, dass m bei jedem Durchlauf der ersten Schleife um n erhöht wird.
  7. Die Aufgabe baut auf den vorhergehenden auf, insofern kann man aus diesem einzelnen Blatt nicht gut erkennen, was da gewünscht ist. this ist ein Zeiger, der innerhalb von Klassenmethoden auf das Objekt verweist, über das die Methode aufgerufen wurde.
  8. Spendier der Methode einen Artikel&-Parameter, dann kannst du *this übergeben. Allerdings sieht das Design ein wenig seltsam aus. Die Objekte myBuchungen und myUebersicht scheinst du nur zu dem Zweck anzulegen, dass du die jeweilige Methode aufrufen kannst. Stellen diese Methoden Operationen dar, die sich auf ein konkretes Buchungsobjekt beziehen? Falls nicht, sollten es keine nichtstatischen Methoden sein. Objektorientierung heißt nicht, einfach alle Funktionen auf Klassen zu verteilen.
  9. Klotzkopp

    Codequalität verbessern

    Beteilige die Mitarbeiter am Erstellen von Styleguides, das erhöht die Akzeptanz solcher Regelwerke. Vielleicht kannst du Codefragmente rumschicken, zu denen die Mitarbeiter sagen können, was ihnen gefällt, und was sie verbessern würden. Frag die Mitarbeiter nach Vorschlägen, wie man eine Qualitätskontrolle umsetzen könnte.
  10. Das ist unnötig komplizierte Denkweise. Dein Programm sollte nicht versuchen, sich selbst zu steuern. Das User Interface heißt so, weil es für den User ist. Du willst nicht, dass hier ein Button gedrückt wird. Du willst, dass hier dasselbe passiert, als ob der Benutzer den Button gedrückt hätte. Diese Denkweise bringt dich zu einem besseren Lösungsansatz: Steck das, was in but_userClick passiert, in eine eigene Funktion/Methode, die du dann sowohl in but_userClick als auch an dieser Stelle aufrufst.
  11. Nein, funktioniert nur, wenn der Nachkommateil nicht mit einer 0 anfängt. Gib doch mal 0.01 ein. Und laut Aufgabenstellung sollst du in einen double einlesen, nicht in zwei int. Dein while-break-Konstrukt ist im Prinzip ein verstecktes goto. Du könntest if-else-Kaskaden verwenden, oder mit einer return-Anweisung die main-Funktion verlassen und damit das Programm beenden.
  12. Du solltest laut Aufgabenstellung in einen double einlesen, nicht in zwei int. Die äußerste while-Schleife ist außerdem überflüssig, da du sie sowieso nach dem ersten Durchlauf mit break verlässt.
  13. Nein. Du liest eine Ganzzahl (int) ein. Du sollst eine Zahl mit Dezimalteil (double) einlesen. Negative Zahlen bewältigt dein Code auch nicht.
  14. Du kannst dich vermutlich vom Laufwerksbuchstaben zum Volume und von dort zum Gerät hangeln, oder andersrum, die Geräte aufzählen und dann die Volumes prüfen. Genaueres kann ich dir aber auch nicht sagen. Womöglich kommst du mit WMI oder SetupDi weiter
  15. Das liegt daran, dass gets zuerst den Zeilenumbruch aus dem Eingabepuffer holt, den scanf dort liegengelassen hat. gets solltest du übrigens nicht verwenden. Diese Funktion ist unsicher. Nimm fgets. Das sollte sich von selbst ergeben, sobald du von deinem einzigen globalen Eintragsobjekt wegkommst. Erstens sollst du mit Sicherheit keine globalen Variabeln verwenden, und zweitens kann man mit einem einzelnen Strukturobjekt nicht viel verwalten.
  16. Vermutlich ist beim Herunterladen etwas schiefgelaufen, das kommt vor. Lad die Datei nochmal runter.
  17. Dann würde ich das so machen: Sei x die Anzahl der zu addierenden Tage. Solange x >= 30: - Monat 1 hochzählen und x um 30 verringern Wenn x > 0 - m = min(30, AnzahlTage(Monat)) - Falls Tag + x > m: -- Monat um 1 hochzählen, Tag = (Tag + x) - m - Sonst -- Tag = Tag + x Tag = min(Tag, 30, AnzahlTage(Monat))
  18. Das heißt, das Ergebnis kann nie der 31. eines Monats sein?
  19. 01.02. + 30 = 01.03. 01.02. + 29 = 01.03. 01.02. + 28 = 01.03. 01.02. + 27 = 28.02. 01.01. + 30 = 01.02. 01.01. + 29 = 30.01. Soweit richtig?
  20. Die Anforderung ist meiner Meinung nach nicht ausreichend spezifiziert. Sollen nur Vielfache von 15 Tagen addiert werden, oder beliebige Werte? Soll nur auf Montagsanfang/-mitte addiert werden, oder auf beliebige Daten? Was soll 31.01. + 30 Tage ergeben?
  21. Hier geht's um legale Downloads. Kann sein, dass das an dir vorübergegangen ist?
  22. Das = muss da weg, das Komma muss ein Punkt sein. Das Define-Symbol verwendest du allerdings gar nicht, insofern ist es egal. Globale Variablen sind ganz schlechter Stil. Du brauchst sie nicht und solltest sie schleunigst durch lokale Variablen ersetzen. Ansonsten kannst du dir die Parameter und Rückgabewerte im Programm auch sparen, weil du damit nur Werte herumreichst, die sowieso global verfügbar sind. Warum hat diese Funktion den Rückgabetyp float, wenn sie einen int einliest? Return ist keine Funktion, lass die Klammern weg. Nur eine Stilfrage, kein Fehler. Hier fehlen die Typen der Parameter. C89 geht in diesem Fall von int aus, und das ist hier das Hauptproblem. 1/7 ist 0, weil hier eine Ganzzahldivision stattfindet. Nimm 1.0/7 oder so etwas, damit eine Fließkommadivision passiert.
  23. Warum? Für ein einfaches "hoch 2"? Was wäre der Vorteil? @freshes: Wenn du da mit rationalen Zahlen arbeiten sollst, ist der Datentyp int ungeeignet, weil der nur ganze Zahlen speichern kann.
  24. 10^n ist eine obere Schranke für eine n-stellige Zahl, denn 10^n ist die kleinste n+1-stellige Zahl.
  25. Das ist eigentlich der einfachere Teil. Du kannst Filestreams genauso wie cout und cin benutzen, das ist ja das Schöne am Stream-Konzept: ifstream foo("deinedatei.txt"); int deinevariable; if(foo >> deinevariable) { // Alles gut } else { // Hier hat was nicht geklappt } [/code]

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...