Brauche Hilfe bei 2 kleinen Programmen



  • PwN0GrPhy schrieb:

    ... und dann muss ich noch auf den Zug warten usw...

    Prima Zeit ein Buch zu lesen.

    PwN0GrPhy schrieb:

    Und wenn man nicht weiss wie man den Fehler behebt wird man auch nicht viel schlauer oder?
    Ausserdem wenn ich alles wüsste, müsste ich ja nicht nachfragen...

    Das sieht so aus, als ob du noch nicht mal die einfachsten Programme (z.B. "Hallo Welt!", 10 * "Hallo Welt!", Ausgabe der ersten n Quadratzahlen) gemacht hast.
    Dann hättest du schon ein Grundgerüst.



  • hello world haben wir schon "gelernt". "Gelernt" weil Codeblocks(in dem Coden wir) das immer als vorlage liefert, wenn man eine neue .c Datei macht. und bei Hello world muss man nur die einfachste form von printf machen, ned ma strings oder variablen muss man machen/benutzen.

    im zug mache ich die aufgabe oda hole mir was zu essen, wenn er noch nicht da is.


  • Mod

    Super. Und jetzt machst du ein Programm das 10x "Hallo Welt" ausgibt, aber nur einmal den Text "Hallo Welt" und weniger als 10 Semikolons enthält.
    Dann ein Programm, welches eine Zahl N einliest und alle Zahlen bis zu dieser Zahl ausgibt.
    Und dann ein Programm, welches eine Zahl N einliest und dann alle Quadratzahlen bis(!) zu dieser Zahl ausgibt (also bei Eingabe 13 Ausgabe 1 4 9).
    Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.



  • SeppJ schrieb:

    Super. Und jetzt machst du ein Programm das 10x "Hallo Welt" ausgibt, aber nur einmal den Text "Hallo Welt" und weniger als 10 Semikolons enthält.
    Dann ein Programm, welches eine Zahl N einliest und alle Zahlen bis zu dieser Zahl ausgibt.
    Und dann ein Programm, welches eine Zahl N einliest und dann alle Quadratzahlen bis(!) zu dieser Zahl ausgibt (also bei Eingabe 13 Ausgabe 1 4 9).
    Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.

    aha? oO


  • Mod

    PwN0GrPhy schrieb:

    aha? oO

    Du brauchst eindeutig mehr Grundlagen, weil du sie nicht vernünftig gelernt hast. Dies sind gute Übungen auf deinem Niveau, die du auch mal schnell auf einer Zugfahrt programmieren können solltest.



  • PwN0GrPhy schrieb:

    SeppJ schrieb:

    Super. Und jetzt machst du ein Programm das 10x "Hallo Welt" ausgibt, aber nur einmal den Text "Hallo Welt" und weniger als 10 Semikolons enthält.
    Dann ein Programm, welches eine Zahl N einliest und alle Zahlen bis zu dieser Zahl ausgibt.
    Und dann ein Programm, welches eine Zahl N einliest und dann alle Quadratzahlen bis(!) zu dieser Zahl ausgibt (also bei Eingabe 13 Ausgabe 1 4 9).
    Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.

    aha? oO

    SeppJ versucht dir mittelschwere Aufgaben zu stellen, damit du üben kannst. Mach mal diese einfachen Übungs-Programme. Am Anfang grübelst du vielleicht, aber früher oder später hast du den Einfall. Und genau das musst du als Anfänger lernen:

    1. Problem analysieren
    2. Lösung überlegen
    3. Diese dann als Algorhitmus implementieren
    4. Testen: Falls richtig: Glückwunsch, falls falsch: wieder zu Schritt 2


  • SeppJ schrieb:

    Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.

    Mit 2 Semikolons:

    int sum(int n)
    { 
    	return( ( n <= 0 ) ? 0 : (n + sum( n - 1 )) );
    }
    
    int main( int argc, char *argv[] )
    {
    	return( sum( argc - 1 ) );
    }
    

    errorlevel = summer 1
    errorlevel = summer 1 1
    errorlevel = summer 1 1 1
    ...

    🙂


  • Mod

    Das ist auch eine schöne Lösung, aber das zähle ich als verkappte Schleife 🙂 . Ich dachte eher an die clevere Lösung, auf die man durch richtiges Nachdenken kommt (bitte nicht verraten!). Gewisse Genies würden sagen, das wäre kinderleicht *hint*.



  • Ist das nicht in etwa dasselbe Problem wie:

    1. Fig: X
    
    2. Fig: XX
             X
    
    3. Fig: XXX
             XX
              X
    
    4. Fig: XXXX
             XXX
              XX
               X
    
    usw.
    
    Wieviele X hat die 20. Fig
    

    Wenn ja: Ich kenn die Lösung, die ist:
    Nö, so gemein bin ich mal nicht 😃



  • Oder #2 (klappt aber nur bedingt):

    int sum(int n)
    { 
    	return( ( n <= 0 ) ? 0 : (n + sum( n - 1 )) );
    }
    
    int main( int argc, char *argv[] )
    {
    	printf( "%d\n", sum( argc > 1 ? (*argv[1] - 0x30) : 0 ) );
    }
    

    summer 1
    summer 2
    summer 3
    ...

    😉



  • @EOP: Nix Schleife und auch nix Rekursion. Gibt ne viel einfachere Lösung.



  • #3: Gauß :p

    SeppJ hat doch gesagt - nix verraten.
    Die Beiden waren nur Spielereien...



  • @EOP
    Was soll denn das 0x30 ?
    Meinst du damit '0' ?

    Dann schreib das doch auch!



  • DirkB schrieb:

    @EOP
    Was soll denn das 0x30 ?
    Meinst du damit '0' ?

    Dann schreib das doch auch!

    Ich benutze hex für ascii gewohnheitsmäßig seit zig Jahren. Tschuldigung.

    Aber sum will ja auch ein int und nix mit Hochkommas. 😉



  • ASCII. Pah, wie eingeschränkt. 🙂

    Und '0' ist doch ein int. Genau so wie 'A'.



  • DirkB schrieb:

    ASCII. Pah, wie eingeschränkt. 🙂

    Und '0' ist doch ein int. Genau so wie 'A'.

    Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab. 🙂



  • EOP schrieb:

    Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab. 🙂

    Warum sollte ich mich beschweren? Im Post hast du es ja noch richtig geschrieben (Rechtschreibung): Hochkommas

    Im Duden steht:
    "das Komma; Genitiv: des Kommas, Plural: die Kommas und Kommata"



  • DirkB schrieb:

    EOP schrieb:

    Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab. 🙂

    Warum sollte ich mich beschweren? Im Post hast du es ja noch richtig geschrieben (Rechtschreibung): Hochkommas

    Im Duden steht:
    "das Komma; Genitiv: des Kommas, Plural: die Kommas und Kommata"

    Hab's gesehen war aber zu faul für'n edit.

    Und nächstes Mal schreib' ich 060 statt 0x30... 🙂



  • EOP schrieb:

    Und nächstes Mal schreib' ich 060 statt 0x30... 🙂

    Wird Zeit, dass der Standard endlich binäre Zahlen erlaubt.



  • Habs jetzt seit paar Tagen fertig. Wenns wer wissen will, hier sind die Codes:

    #include <stdio.h>
    
    int main(void) {
    
    double zahl = 0;
    
    int h = 0;
    
        printf("Geldschein/Muenzen-Berechnungs-Programm \n");           //Titel es Programms
    
        printf("======================================== \n \n");       //Trennzeile
    
        printf("Betrag in Euro --> ");                                  //Eingabeaufforderung des Betrags(in Euro)
        scanf("%lf", &zahl);                                            //Hier wird das vom User eingegebene eingelesen
        zahl *= 100;                                                    //Hier wird der Betrag in Cent umgerechnet
    
        printf("\n");                                                   //Zeielumbruch(damits besser aussieht)
    
        h = zahl / 50000;                                               //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 500 Euro-Schein(e)\n", h);                           //500 Euro Scheine benoetigt werden
        zahl -= (h * 50000);
    
        h = zahl / 20000;                                               //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 200 Euro-Schein(e)\n", h);                           // 200Euro Scheine benoetigt werden
        zahl -= (h * 20000);
    
        h = zahl / 10000;                                               //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 100 Euro-Schein(e)\n", h);                           // 100Euro Scheine benoetigt werden
        zahl -= (h * 10000);
    
        h = zahl / 5000;                                                //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 50 Euro-Schein(e)\n", h);                            // 50Euro Scheine benoetigt werden
        zahl -= (h * 5000);
    
        h = zahl / 2000;                                                //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 20 Euro-Schein(e)\n", h);                            // 20Euro Scheine benoetigt werden
        zahl -= (h * 2000);
    
        h = zahl / 1000;                                                //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 10 Euro-Schein(e)\n", h);                            // 10Euro Scheine benoetigt werden
        zahl -= (h * 1000);
    
        h = zahl / 500;                                                 //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 5 Euro-Schein(e)\n", h);                             //5Euro Scheine benoetigt werden
        zahl -= (h * 500);
    
        h = zahl / 200;                                                 //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 2 Euro-Muenze(n)\n", h);                             // 2Euro Muenzen benoetigt werden
        zahl -= (h * 200);
    
        h = zahl / 100;                                                 //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 1 Euro-Muenze(n)\n", h);                             // 1 Euro Muenzen benoetigt werden
        zahl -= (h * 100);
    
        h = zahl / 50;                                                  //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 50 Cent-Muenze(n)\n", h);                            // 50Cent Muenzen benoetigt werden
        zahl -= (h * 50);
    
        h = zahl / 20;                                                  //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 20 Cent-Muenze(n)\n", h);                            // 20Cent Muenzen benoetigt werden
        zahl -= (h * 20);
    
        h = zahl / 10;                                                  //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 10 Cent-Muenze(n)\n", h);                            // 10Cent Muenzen benoetigt werden
        zahl -= (h * 10);
    
        h = zahl / 5;                                                   //In diesen 3 Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 5 Cent-Muenze(n)\n", h);                             // 5Cent Muenzen benoetigt werden
        zahl -= (h * 5);
    
        h = zahl / 2;                                                   //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 2 Cent-Muenze(n)\n", h);                             //2Cent Muenzen  benoetigt werden
        zahl -= (h * 2);
    
        h = zahl / 1;                                                   //In diesen 3Zeilen wird berechnet & ausgegeben wie viele
        printf("%d 1 Cent-Muenze(n)\n", h);                             // 1Cent Muenzen benoetigt werden
        zahl -= (h * 1);
    
    return 0;
    
    }
    
    #include <stdio.h>
    
    int main (void) {
    
        double kapital, zinssatz, zinsen;
        int j, m, d;
    
        printf("Kapital (in Euro) --> ");   //Eingabeaufforderung fuer den Betrag in Euro
        scanf("%lf", &kapital);             //Das Kapital wird eingelesen (in Euro)
    
        printf("Zinssatz (in %%) --> ");    //Eingabeaufforderung des Zinssatzes in Prozent
        scanf("%lf", &zinssatz);            //Der zinssatz wird eingelesen(in %)
    
        printf("Verzinsungsdauer (im Format j-m-d) --> ");  //Eingabeaufforderung der Verzinsungsdauer
        scanf("%d-%d-%d", &j, &m, &d);                      //Verzinsungsdauer wird eingelesen
        printf("---------------------------------------------------\n");        //Trennzeile
        zinsen = (kapital * zinssatz * (j * 360 + m * 30 + d)) / (100 * 360);   //Hier wird alles ausgerechnet
    
        printf("Es ergeben sich Zinsen von %.2f Euro.\n", zinsen);              //Hier wird ausgegeben wv Zinsen es sind(in Euro)
        printf("Wert des einfach verzinsten Gesamtkapitals: %.2f Euro.\n", kapital + zinsen);           //Hier wird der Wert des einfach verzinsten Gesamtkapitals ausgegeben
    
        return 0;
    }
    

    MfG

    Btw.: kann geclosed werden


Anmelden zum Antworten