Programmier Tagebuch

Präsentation und Organisation von eigenen Projekten
Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Programmier Tagebuch

Beitrag von Hallou » Sa Jan 12, 2013 11:27 pm

4. Budgetrechner1.1.JPG
3.Budgetrechner.JPG
1.NewWorld.JPG
Hallo
liebe proggren.org Community.
Ich habe vor kurzem angefangen, mir Schrittweise die Programmiersprache C näher zu bringen. Da mir auf dieser Seite bereits bei Problemen mit meinem Compiler geholfen wurde, habe ich mich kurzfristig auch für euer Tutorial entschieden.
Zu dem muss ich sagen, dass man dort als Anfänger von Fachbegriffen bombardiert wird, die man auf den ersten und oft auch auf den zweiten Blick nicht kapiert oder garnicht erst behalten kann :oops: . Meistens kapiert man es aber dann, wenn man die vorgegebenen Zeilen stückweise abschreibt und dabei nochmal nachblättert, was die einzelnen Befehle für eine Funktion haben. Wenn man erstmal dahinter gekommen ist, kann man sich bei dieser ausführlichen Beschreibung auch sicher sein, dass nichts fehlt. Die Aufgabenstellungen am Ende eines Kapitels geben Anregungen, selbst etwas zu schreiben, wobei meiner Meinung nach das eigentliche lernen stattfindet und die Befehle langsam routiniert werden, top!

Dass Interesse geweckt ist, zeigen die drei Programme, die ich bis jetzt selbstständig geschrieben habe. Ich bin erst bis "Werte verarbeiten" gekommen, also erwartet nicht zu viel, aber ich denke, man sieht den langsamen Vortschritt recht gut.

Das erste von unten ist praktisch nur "Hello World" nur mit ein paar Zeilen mehr und einem anderen Text.
Beim zweiten habe ich ein paar Versuche zum Rechnen gemacht (Kapitel "Werte verarbeiten"). Rausgekommen ist ein Programm, dass meinen Gehalt nimmt, Abzüge mit einberechnet, das ganze auf ein Jahr hochrechnet und den bereits bestehenden Kontostand dazurechnet. Also sowas wie ein Budgetplaner.
Das Obere ist praktisch eine überarbeitete Version des Budgetrechners. Die unterschiedlichen Abzüge werden jetzt schon vom Programm selbst zusammengerechnet und zudem werden auch Zwischenergebnise ausführlicher im Programm angezeigt. (Die Zahlen sind übrigens erfunden, sie zeigen nicht meinen echten Kontostand :D )

Über Kommentare von euch würde ich mich gerne freuen. Wenn ich irgentwelche Fehler gemacht haben sollte, sagt mir bescheid, weil wie gesagt: Ich hab sie mir ausgedacht und keine Vorlage verwendet.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8471
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von Xin » So Jan 13, 2013 10:55 am

Code: Alles auswählen

printf( "Hallo Marco\n" );
:D
Hallou hat geschrieben:Hallo liebe proggren.org Community.
Ich habe vor kurzem angefangen, mir Schrittweise die Programmiersprache C näher zu bringen. Da mir auf dieser Seite bereits bei Problemen mit meinem Compiler geholfen wurde, habe ich mich kurzfristig auch für euer Tutorial entschieden.
Zu dem muss ich sagen, dass man dort als Anfänger von Fachbegriffen bombardiert wird, die man auf den ersten und oft auch auf den zweiten Blick nicht kapiert oder garnicht erst behalten kann :oops: .
Dazu ist schwer Stellung zu nehmen, den zum einen muss man klar sagen, dass Du offenbar in einen neuen Fachbereich in Deinem Leben eintrittst und dazu gehört halt das Lernen von Vokabeln dazu. Andere, die bereits Programmierkenntnisse haben, erkennen diese Vokabeln hoffentlich wieder und haben es so leichter. Du wirst diese Vokabeln brauchen, um Dich später mit anderen Entwicklern unterhalten zu können.
Unabhängig davon lass mir doch mal Deine 'Vokabelliste' zukommen, bzw. gib mir die Info, wenn Du Fachbegriffe nicht verstehst.
Hallou hat geschrieben:Meistens kapiert man es aber dann, wenn man die vorgegebenen Zeilen stückweise abschreibt und dabei nochmal nachblättert, was die einzelnen Befehle für eine Funktion haben. Wenn man erstmal dahinter gekommen ist, kann man sich bei dieser ausführlichen Beschreibung auch sicher sein, dass nichts fehlt. Die Aufgabenstellungen am Ende eines Kapitels geben Anregungen, selbst etwas zu schreiben, wobei meiner Meinung nach das eigentliche lernen stattfindet und die Befehle langsam routiniert werden, top!
Schlussendlich ist ein Programmieren-Lern-Tutorial immer ein Selbsterfahrungskurs. Was Du selbst schreiben möchtest - woher also Deine Motivation kommt - kann ja niemand wissen.
Hallou hat geschrieben:Dass Interesse geweckt ist, zeigen die drei Programme, die ich bis jetzt selbstständig geschrieben habe. Ich bin erst bis "Werte verarbeiten" gekommen, also erwartet nicht zu viel, aber ich denke, man sieht den langsamen Vortschritt recht gut.
Der Budgetplaner setzt das bisher Bekannte doch schon ganz gut um. :-)
Um sowas geht's ja auch: Ausprobieren nach den Lektionen, mit dem gerade gelernten spielen.
Ich glaube, den Vorschlag für einen solchen Budgetplaner schreibe ich mal ins Tutorial rein - schöne Idee.
Hallou hat geschrieben:(Die Zahlen sind übrigens erfunden, sie zeigen nicht meinen echten Kontostand :D )
Ich vermutete es fast schon... Ich entnehme Deinem Budget, dass Du noch keine Miete zahlen musst. Den meisten fällt zum Thema Kosten nämlich als erstes "Miete" ein und nicht "Bahnticket" und auch "andere Ausgaben" wären mit 50 Euro angenehm bemessen, die bei mir nie hinhaut. ^^ ;-)
Hallou hat geschrieben:Wenn ich irgentwelche Fehler gemacht haben sollte, sagt mir bescheid
Eine Kleinigkeit. ^^

Wir haben Code-Tags, da kannst Du den Quelltest reinkopieren und ggfs. auch die Ausgabe. Die Bilder sind zusammen 350kb groß. proggen.org läuft zwar alleine auf einem Server, das heißt die Festplatten stehen uns frei zur Verfügung, aber diese 350kb werden jetzt jeden Tag als Backup durch Internet gejagt. Und der Backup-Server hat nicht soviel Platz. ^^
Halb so wild... aber für die Zukunft vielleicht doch lieber einfach Code-Tags verwenden, wie ich das mit 'printf( "Hallo Marco");' gemacht habe.
Danke :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von darksider3 » So Jan 13, 2013 2:52 pm

Diese Bilder haben soeben das ganze Layout verzogen :-/
...Budgetplaner ist auf jeden fall ein guter Ansatz zum lernen, das gute an solchen "lernprojekten" ist ja, dass man wirklich alles einbauen kann, wenn man will - was bedeutet, das man jede erfahrung in dieses Projekt bauen kann( "Anwendungsorientiertes Lernen" :D)
Mit den unverständlichkeiten ist es leider immer so - Entweder man Googlet es, oder man führt und ändert es so oft, bis man es verstanden hat^^
PS: Ich finde die Idee "Programmier Tagebuch" richtig gut - vielleicht könnte man das ja in form einer Anwendung mit API auf Proggen.org erstellen...
Mfg
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Programmier Tagebuch

Beitrag von Hallou » So Jan 13, 2013 7:47 pm

So, dann hab ich hier mal den Fortschritt von heute:
Inzwischen bin ich bei "Entscheidungen treffen" angekommen.
Wie empfohlen hab ich erstmal ein paar Versuche in einem nicht weiter nennenswerten Programm gemacht :) und hab mich danach dran gemacht, meinen Budgetrechner zu verbessern und zu erweitern. Ich habe unter anderem noch zweimal die Möglichkeit eingefügt, einmalige Ausgaben zu nennen und mit einberechnen zu lassen und man kann jetzt auch ein Zielguthaben nennen, welches man nach einem Jahr auf dem Konto sehen will.
Zudem warnt er (ganz wichtig: mit Ton ;) ) mich jetzt, wenn ich in einem Monat zu viel Geld ausgegeben habe, wenn noch genug vorhanden ist, sagt wird dies auch bestätigt.
Selbes Spiel beim Zielguthaben. Wenn der Kontostand in einem Jahr darunter liegt, gibt er "Du hast dein Sparziel nicht erreicht" aus, andernfalls gibt er aus, dass ich es erreicht habe.
Um die Ausgabe etwas übersichtlicher zu gestalten, habe ich zwischen den Werten und den Ergebnissen und deren Hinweisen immer eine Zeile frei gelassen.
Ich bin mal gespannt, wann ich lerne, wie man die Werte im Ausgeführten Programm ändern kann. Es immer in Quellcode schreiben zu müssen wird doch langsam etwas unübersichtlich.

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int natuerlicheZahl = 1;
    float Kontostand= 1.11;
    float Bahnticket= 1.12;
    float Essensausgaben= 1.13;
    float AndereAusgaben= 1.14;
    float Gehalt= 1.15;
    float imBesitz= 1.16;
    float einmaligeExtrazahlungenges= 1.17;
    float einmaligeExtrazahlungen1= 1.18;
    float einmaligeExtrazahlungen2= 1.19;
    float Zielguthaben= 1.20;
    //Variablen und deren Wert bekanntgegeben//
    Gehalt = 1664.26;
    printf("Gehalt: %f\n", Gehalt);
    //Neuer Wert für Gehalt, wird Angezeigt//
    Bahnticket = 92.70;
    printf("Bahnticket: %f\n", Bahnticket);
    //Neuer Wert für Bahnticket, wird Angezeigt//
    Essensausgaben = 4.60*20;
    printf("Essensausgaben: %f\n", Essensausgaben);
    //Berechnen und Anzeigen der Essensausgaben//
    AndereAusgaben = 70;
    printf("Andere Ausgaben: %f\n\n", AndereAusgaben);
    //Neuer Wert für Ausgaben, wird Angezeigt//
    Kontostand = Gehalt-Bahnticket-Essensausgaben-AndereAusgaben;
    printf("Restgeld am Ende des Monates: %f\n", Kontostand);
    //Berechnung und Anzeige des restlichen Geldes//
    if(Kontostand<= 250)
        //Wenn Geld am Ende des Monats wenigr oder gleich 250//
    {
        printf("Du musst mehr Geld sparen!\n\n\a");
    //Dann Zeige "Du musst mehr.." an und geb Wahnton//
    }
    else
    {
        printf("Deine Ausgaben sind in Ordnung!\n\n");
        //Sonst zeige an "Deine..."//
    }
    Kontostand= Kontostand*12;
    printf("Geld nach einem Jahr: %f\n",Kontostand);
    //Berechnung Geld nach einem Jahr//
    imBesitz= 11767,27;
    printf("vorheriger Kontostand: %f\n", imBesitz);
    //Neuer Wert für imBesitz, wird angezeigt//
    einmaligeExtrazahlungen1= 2500.67;
    einmaligeExtrazahlungen2= 134,44;
    //Neue Werte für Extrazahlungen//
    einmaligeExtrazahlungenges= einmaligeExtrazahlungen1+einmaligeExtrazahlungen2;
    //Berechnung einmalige Zahlungen Gesamt//
    printf("Einmalige  Zusatzkosten: %f\n", einmaligeExtrazahlungenges);
    //Anzeige der einmaliger Zusatzkosten//
    Zielguthaben= 4500.00;
    printf("Zielguthaben nach 1 Jahr: %f\n\n", Zielguthaben);
    //Neuer Wert für Zielguthaben, wird angezeigt//
    Kontostand= Kontostand+imBesitz-einmaligeExtrazahlungenges;
    printf("Gesamtvermoegen nach einem Jahr: %f\n", Kontostand);
    //Berechnung Gesamtvermögen nach einem Jahr//
    if(Kontostand<=Zielguthaben)
    {
        printf("Du hast dein Sparziel nicht erreicht!\n\a");
        //Wenn reelleZahl kleiner als Zielguthaben, zeige an, mit Warnton//
    }
    else
    {
        printf("Du hast dein Sparziel erreicht!\n");
    }

    return 0;
}
Ist das so richtig mit dem Code-Tag?

Eine Verbesserungsmöglichkeit für das Tutorial ist mir noch eingefallen:
Während man lernt, werden ja immer gewisse die Befehle, Operatoren, oder was auch sonst man gerade durchnimmt hingeschrieben und manchmal auch in kleinen Tabellen angezeigt. Könnte man an das Tutorial eine Liste mit all diesen Befehlen zum Drucken anbringen, damit man einen Überblick hat, bis man es irgentwann auswendig kann?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8471
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von Xin » Mo Jan 14, 2013 11:28 am

darksider3 hat geschrieben:PS: Ich finde die Idee "Programmier Tagebuch" richtig gut - vielleicht könnte man das ja in form einer Anwendung mit API auf Proggen.org erstellen...
Definiere Anwendung.

Ich vermute aber, ich weiß, was Du meinst und derartiges ist tatsächlich bereits angedacht.
Hallou hat geschrieben:Zudem warnt er (ganz wichtig: mit Ton ;) )
Hehehe, wo hast Du denn die Klingel gefunden!? Die wird soweit ich weiß im ganzen Wiki nicht erwähnt ;-)
Hallou hat geschrieben:Ich bin mal gespannt, wann ich lerne, wie man die Werte im Ausgeführten Programm ändern kann. Es immer in Quellcode schreiben zu müssen wird doch langsam etwas unübersichtlich.
Ich kann Dir hierzu die Funktion scanf(), was so eine Art umgedrehtes printf() ist nennen. Diese Funktion wird im ganzen Tutorial nicht verwendet, da sie bei echter Programmierung eher gefährlich als nützlich ist. Für Deinen Budgetplaner würde sie gehen. Allerdings: Eine falsch formulierte Eingabe und das Programm gerät aus den Fugen.

Ganz am Ende des C-Tutorials lernst Du GTK einzubinden, das ist eine graphische Oberfläche. An einem GTK-Tutorial wird allerdings noch geschraubt, wobei unser Schrauber vermutlichlich verloren gegangen ist.
Hallou hat geschrieben:Ist das so richtig mit dem Code-Tag?
Wunderbar :-)

Ich habe Deinen Budgetplaner übrigens als Übung im Tutorial als Aufforderung an die Lernenden übernommen.
Hallou hat geschrieben:Eine Verbesserungsmöglichkeit für das Tutorial ist mir noch eingefallen:
Während man lernt, werden ja immer gewisse die Befehle, Operatoren, oder was auch sonst man gerade durchnimmt hingeschrieben und manchmal auch in kleinen Tabellen angezeigt. Könnte man an das Tutorial eine Liste mit all diesen Befehlen zum Drucken anbringen, damit man einen Überblick hat, bis man es irgentwann auswendig kann?
Grundsätzlich gefällt mir die Idee. Was schlägst Du denn regelmäßig nach, also was muss Deiner Meinung nach dringend auf den Pfuschzettel drauf?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Programmier Tagebuch

Beitrag von Hallou » Mo Jan 14, 2013 4:47 pm

Hehehe, wo hast Du denn die Klingel gefunden!? Die wird soweit ich weiß im ganzen Wiki nicht erwähnt ;-)
Dann ist es entweder ein Überbleibsel des anderen Tutorials, dass ich angefangen hatte, oder ein Kumpel von mir hats mir schon erzählt (Programmierbegeistert, schmeißt aber mit Formeln und Funktionen um sich, die ich ohne Vorkenntnisse nicht wirklich nachvollziehen kann: "%3i und %0.2f" waren die letzten, die er mir gestern gegen den Kopf geknallt hat :D ).

Schade, dass der "Schrauber" verloren gegangen ist, aber ich werde es mal mit scanf () versuchen. Mal schauen, obs diese Woche noch was wird, Urlaub ist vorbei und Ausbildung geht vor. Liege ich mit der Vermutung richtig, dass C an sich also eigentlich garnicht nicht dazu gedacht ist, Programme mit grafischer Oberfläche zu entwerfen?

Dass der Budgetrechner im Tutorial aufgenommen wurde, ist schön, allerdings irritiert mich die Aufgabenstellung gleich am Anfang etwas
Berechne Deine monatlichen Einnahmen und monatlichen Ausgaben und ziehe Dein Gehalt davon ab
Ich nehme im Monat Geld ein und geb auch wieder etwas aus. Aber warum soll ich von dieser Summe, die sich daraus ergibt, nochmal mein Gehalt abziehen? Mein Gehalt ist doch meine Einnahmequelle?!

Zum "Puschzettel": Inzwischen kann ich einen Großteil der Eingaben schon, wenn man es aber für jeden Neuanfänger leichter machen will, würde ich so ziehmlich alles in diese Liste einfügen. Angefangen beim Befehlt "Printf()" über die Möglichkeit ganze Zahlen einzufügen "int" bzw. reelle Zahlen "float" usw.
In welcher Reihenfolge das jetzt am schlausten aufgelistet wird, müsste man sich noch überlegen. Da aber das ganze Tutorial nach einer immer aufeinanderbauenden Reihenfolge geht, könnte es ganz nützlich sein, diese auch bei der Liste so zu übertragen. Ich stelle sie mir so ähnlich vor vor:
Befehl:..................Funktion:
printf()......................... gibt eingegebenen Text im Programm aus
nur halt mit einer Tabelle außen herum, damits eine übersichtliche Form behält ^^

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8471
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von Xin » Mo Jan 14, 2013 5:15 pm

Hallou hat geschrieben:Dann ist es entweder ein Überbleibsel des anderen Tutorials, dass ich angefangen hatte, oder ein Kumpel von mir hats mir schon erzählt (Programmierbegeistert, schmeißt aber mit Formeln und Funktionen um sich, die ich ohne Vorkenntnisse nicht wirklich nachvollziehen kann: "%3i und %0.2f" waren die letzten, die er mir gestern gegen den Kopf geknallt hat :D ).
Die Formatstrings findest Du hier beschrieben: c:lib:stdio:formatstring
Hallou hat geschrieben:Schade, dass der "Schrauber" verloren gegangen ist, aber ich werde es mal mit scanf () versuchen. Mal schauen, obs diese Woche noch was wird, Urlaub ist vorbei und Ausbildung geht vor.
Erwarte von scanf() aber nicht zuviel, wenn Du keinen Frust erwartest. ;-)
Hallou hat geschrieben:Liege ich mit der Vermutung richtig, dass C an sich also eigentlich garnicht nicht dazu gedacht ist, Programme mit grafischer Oberfläche zu entwerfen?
C ist eine Sprache, die genauso für GUIs verwendet werden kann, wie für vieles andere. Es gibt unterschiedliche GUI-Varianten, Gtk oder WxWidgets läuft problemlos unter C, für Qt braucht man C++.

GUIs sind ein externer Aufsatz auf die Sprache und nicht in der Sprache enthalten. Sowas gibt es bei einigen Sprachen, dann hat man in der Regel aber einfach eine GUI als Teil der Sprache definiert und fertig.
Hallou hat geschrieben:Dass der Budgetrechner im Tutorial aufgenommen wurde, ist schön, allerdings irritiert mich die Aufgabenstellung gleich am Anfang etwas
Berechne Deine monatlichen Einnahmen und monatlichen Ausgaben und ziehe Dein Gehalt davon ab
Ich nehme im Monat Geld ein und geb auch wieder etwas aus. Aber warum soll ich von dieser Summe, die sich daraus ergibt, nochmal mein Gehalt abziehen? Mein Gehalt ist doch meine Einnahmequelle?!
Klugscheißerle :->
Hallou hat geschrieben:Zum "Puschzettel": Inzwischen kann ich einen Großteil der Eingaben schon, wenn man es aber für jeden Neuanfänger leichter machen will, würde ich so ziehmlich alles in diese Liste einfügen. Angefangen beim Befehlt "Printf()" über die Möglichkeit ganze Zahlen einzufügen "int" bzw. reelle Zahlen "float" usw.
In welcher Reihenfolge das jetzt am schlausten aufgelistet wird, müsste man sich noch überlegen. Da aber das ganze Tutorial nach einer immer aufeinanderbauenden Reihenfolge geht, könnte es ganz nützlich sein, diese auch bei der Liste so zu übertragen. Ich stelle sie mir so ähnlich vor vor:
Befehl:..................Funktion:
printf()......................... gibt eingegebenen Text im Programm aus
nur halt mit einer Tabelle außen herum, damits eine übersichtliche Form behält ^^
Dir geht's also erstmal um die wichtigsten Funktionen... ich denke, da lässt sich was draus machen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von darksider3 » Mo Jan 14, 2013 7:57 pm

Definiere Anwendung.

Ich vermute aber, ich weiß, was Du meinst und derartiges ist tatsächlich bereits angedacht.
Ich meine eine Anwendung, entweder web- oder (wie sagt man das?) Rechnerbasiert.
Sodass man über eine Oberfläche seine Erfahrungen und Fortschritte "Aufzeichnen" kann, und ggf. ändern/was hinzufügen. Cool wäre es ja auch noch, wenn man eine Art "Index" dafür kriegt, also dass man sieht, ob oder wer eine Sache eingetragen hat.
[...]Dir geht's also erstmal um die wichtigsten Funktionen... ich denke, da lässt sich was draus machen.
Hier würde ich 3 Seiten, jeweils eine Tabelle mit den Befehlen empfehlen. Seite1 Anfänger/Grundlagen, Seite 2 Fortgeschrittenes, Seite 3 Alles andere (Ob man es als "Profi" oder "Guru" bezeichnen kann...bin mir da nicht ganz sicher).
EDIT:/ Es ist schon Sinnvoll wie Xin das dort beschrieben hat(lassen?). Er möchte ja, das die Leute das Rechnen hinkriegen, d.h wir müssen soviel wie möglich Rechnen. Aber mit dem Gehalt stimmts. Eine Mögliche änderung währe doch sowas wie:
Eine schöne Übung ist einen Budgetplaner zu schreiben. Berechne Deine monatlichen Einnahmen und monatlichen Ausgaben. Multipliziere dein Gehalt mit 12 und Addiere es zum Ergebnis. Addiere jährliche Einnahmen (Steuerrückzahlung, Weihnachtsgeld) und subtrahiere jährliche Kosten (Versicherung, KFZ-Steuer).
(Das Fett markierte ist das geänderte...Ergibt wenigstens Sinn so, da hat Halluo schon recht
Mfg
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Programmier Tagebuch

Beitrag von Hallou » Di Jan 15, 2013 5:34 pm

Eine schöne Übung ist einen Budgetplaner zu schreiben. Berechne Deine monatlichen Einnahmen und monatlichen Ausgaben. Multipliziere dein Gehalt mit 12 und Addiere es zum Ergebnis. Addiere jährliche Einnahmen (Steuerrückzahlung, Weihnachtsgeld) und subtrahiere jährliche Kosten (Versicherung, KFZ-Steuer).
Ergibt für mich immernoch noch nicht 100%igen Sinn. Mein Programm rechnet, kurzgefasst, so: (Gehalt-Ausgaben)*12= Gewinn nach einem Jahr. Gewinn nach...+jetziger Kontostand- Einmalige Jährliche Ausgaben.
Bei deinem ginge das so: (Gehalt-Ausgaben)+(Gehalt*12)....

Naja, zurück zur laufenden Weiterentwicklung meines Budgetplaners :D :
Scanf () ging und ging nicht, ich war schon am Verzweifeln, doch dann hat mir Google zugeflüstert, dass man so ein dämliches "&" nicht vergessen darf! Aufeinmal lief es (mehr oder weniger).
Ich habe Scanf jetzt soweit eingebracht, dass beim starten des Programmes immer erst die Eingabeaufforderung kommt "Gebe Gehalt an", man den Wert eingibt und nach betätigen von Enter die nächte Eingabe angefordert wird. Allerdings sind da momentan noch 3 Fehler, die ich nicht wegbekomme:
1. Nach Eingabe des Gehaltes, drückt man Enter, muss dann nochmal einen Wert eingeben und dann erst geht es zu den Fahrtkosten über. Warum es nicht direkt auf Fahrtkosten springt und was mit dem eingegebenen Wert passiert, ist mir schleierhaft...
2.Ich vermute, dass 1. und 2. zusammenhängen. Das Ergebnis der Rechnung ist nicht korrekt. Es ist nichtmal so, dass es geringe Abweichungen gibt, sondern das Ergebnis ist so falsch, dass ich kA hab, was da im Hintergrund überhaupt gerechnet wurde ^^ Ich kann mir aber vorstellen, dass die verschwundenen Werte von 1. da eine Rolle spielen.
3. um ein Ergebnis etwas gesondert auszugeben, kann ich bei Scanf Ausgaben nichtmehr \n\n benutzen, das zweite mal wird es mehr oder weniger einfach vom System ignoriert

Hier ist nochmal der aktuellste Quellcode. Vielleicht findet ihr ja den Fehler.

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int natuerlicheZahl = 1;
    float Kontostand= 1.11;
    float Bahnticket= 1.12;
    float Essensausgaben= 1.13;
    float AndereAusgaben= 1.14;
    float Gehalt= 1.15;
    float imBesitz= 1.16;
    float einmaligeExtrazahlungenges= 1.17;
    float einmaligeExtrazahlungen1= 1.18;
    float einmaligeExtrazahlungen2= 1.19;
    float Zielguthaben= 1.20;
    float Zeitraum = 1.21;
    //Variablen und deren Wert bekanntgegeben//
    printf("Gebe Sie Ihr Gehalt an:");
    scanf("%f\n", &Gehalt);
    //Eingabe Wert für Gehalt, wird Angezeigt//
    printf("Geben Sie den Preis fuer monatliche Fahrtkosten:");
    scanf("%f\n", &Bahnticket);
    //Eingabe Wert Bahnticket//
    printf("Geben Sie die taeglichen Kosten fuer Essen an:");
    scanf("%f\n", &Essensausgaben);
    //Eingabe Wert Essensausgaben//
    Essensausgaben = Essensausgaben*30;
    //Berechnen monatlicher Essensausgaben//
    printf("Geben Sie zusaetzliche monatliche Ausgaben an:");
    scanf("%f\n", &AndereAusgaben);
    //Eingabe Wert anderer Ausgaben//
    Kontostand = Gehalt-Bahnticket-Essensausgaben-AndereAusgaben;
    printf("Restgeld am Ende des Monates: %f\n", Kontostand);
    //Berechnung und Anzeige des restlichen Geldes//
    if(Kontostand<= 250)
        //Wenn Geld am Ende des Monats wenigr oder gleich 250//
    {
        printf("Sie muessen mehr Geld sparen!\n\n\a");
    //Dann Zeige "Du musst mehr.." an und geb Wahnton//
    }
    else
    {
        printf("Ihre Ausgaben sind in Ordnung!\n\n");
        //Sonst zeige an "Deine..."//
    }
    printf("Geben Sie den gewuenschten Zeitraum in Monaten an:");
    //Eingabe des gewünschten Zeitraums//
    scanf("%f\n", &Zeitraum);
    Kontostand= Kontostand*Zeitraum;
    printf("Geld nach angegebenem Zeitraum: %f\n",Kontostand);
    //Berechnung Geld nach einem Zeitraum//
    printf("Geben Sie ihren aktuellen Kontostand an:");
    scanf("%f\n", &imBesitz);
    //Eingabe Wert für imBesitz//
    printf("Geben Sie einmalige Extrazahlungen an:\n");
    printf("1. einmalige Extrazahlung:");
    scanf("%f\n", &einmaligeExtrazahlungen1);
    printf("2. einmalige Extrazahlungen");
    scanf("%f\n", &einmaligeExtrazahlungen2);
    //Eingabe Werte Extrazahlungen//
    einmaligeExtrazahlungenges= einmaligeExtrazahlungen1+einmaligeExtrazahlungen2;
    //Berechnung einmalige Zahlungen Gesamt//
    printf("Einmalige  Zusatzkosten: %f\n", einmaligeExtrazahlungenges);
    //Anzeige der einmaliger Zusatzkosten//
    printf("Geben Sie ihr Zielguthaben an:");
    scanf("%f\n\n", &Zielguthaben);
    //Eingabe Wert für Zielguthaben//
    Kontostand= Kontostand+imBesitz-einmaligeExtrazahlungenges;
    printf("Ihr Gesamtvermoegen nach einem Jahr: %f\n", Kontostand);
    //Berechnung Gesamtvermögen nach einem Jahr//
    if(Kontostand<=Zielguthaben)
    {
        printf("Sie werden Ihr Sparziel nicht erreichen!\n\a");
        //Wenn reelleZahl kleiner als Zielguthaben, zeige an, mit Warnton//
    }
    else
    {
        printf("Sie werden Ihr Sparziel erreichen!\n");
    }

    return 0;
}

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8471
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Programmier Tagebuch

Beitrag von Xin » Di Jan 15, 2013 5:50 pm

Hallou hat geschrieben:Scanf () ging und ging nicht, ich war schon am Verzweifeln, doch dann hat mir Google zugeflüstert, dass man so ein dämliches "&" nicht vergessen darf! Aufeinmal lief es (mehr oder weniger).
Ich habe Scanf jetzt soweit eingebracht, dass beim starten des Programmes immer erst die Eingabeaufforderung kommt "Gebe Gehalt an", man den Wert eingibt und nach betätigen von Enter die nächte Eingabe angefordert wird. Allerdings sind da momentan noch 3 Fehler, die ich nicht wegbekomme:
1. Nach Eingabe des Gehaltes, drückt man Enter, muss dann nochmal einen Wert eingeben und dann erst geht es zu den Fahrtkosten über. Warum es nicht direkt auf Fahrtkosten springt und was mit dem eingegebenen Wert passiert, ist mir schleierhaft...
Lass das "\n" bei scanf weg. scanf ist nicht printf!
Hallou hat geschrieben:2.Ich vermute, dass 1. und 2. zusammenhängen. Das Ergebnis der Rechnung ist nicht korrekt. Es ist nichtmal so, dass es geringe Abweichungen gibt, sondern das Ergebnis ist so falsch, dass ich kA hab, was da im Hintergrund überhaupt gerechnet wurde ^^ Ich kann mir aber vorstellen, dass die verschwundenen Werte von 1. da eine Rolle spielen.
Keine Ahnung, was da passiert (nicht ausprobiert), aber vielleicht erwähnte ich schon, dass scanf nicht ganz ungefährlich ist?
Ich könnte mir vorstellen, dass Du Dir gemütlich den Stack zerschießt.
Hallou hat geschrieben:3. um ein Ergebnis etwas gesondert auszugeben, kann ich bei Scanf Ausgaben nichtmehr \n\n benutzen, das zweite mal wird es mehr oder weniger einfach vom System ignoriert
scanf-Ausgaben!?

scanf macht keine Ausgaben... (Außer Entwicklerkosten, um die Bugs zu finden ;-))
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten