Programmieren in C Tutorial #09 - Funktionen und Rückgabewert

Поділитися
Вставка
  • Опубліковано 13 гру 2024

КОМЕНТАРІ • 59

  • @Franneck
    @Franneck  3 роки тому +1

    Hallo Leute!
    Viel Erfolg beim Kurs, hier sind ein paar wichtige Links:
    IDE: www.codeblocks.org/downloads
    Code zum Kurs: github.com/franneck94/UA-camVideos/tree/master/Programmieren%20in%20C
    Hier gibt es meine Udemy Kurse zu C/C++ etc. im Rabatt: github.com/franneck94/UA-camVideos/blob/master/README.md
    Viele Grüße.

  • @frenchlit6758
    @frenchlit6758 7 років тому +14

    An für sich hasse ich yt tutorials weil dann beim lernen die musik ausfällt, aber deine c-reihe macht auch ohne musik laune :D danke dafür

    • @marcel_k02
      @marcel_k02 7 років тому +4

      mach dir halt eigene musik an... LOL

  • @alexsoccer1196
    @alexsoccer1196 4 роки тому

    FRANNEEECKK !!! 👏👏👏🥇🥇 Danke dir ! :)

  • @rudiborn2027
    @rudiborn2027 9 років тому +3

    Hey, Franneck
    bei dem Code bekommt man ein falsches Ergebnis, wenn man eine negative Zahl mit der 0 vergleicht. Ist ja auch klar, denn 0 wäre die größere Zahl, aber bei 0 sagt das Programm, dass die beiden Zahlen gleich sind. Habe das Problem gelöst, in dem ich in die if-Bedingung in der main-Frunktion statt "big != 0" direkt "zahl1 != zahl2" geschrieben habe. So bleibt mir die 0 als mögliche größere Zahl erhalten.

  • @Ayln-qj2hx
    @Ayln-qj2hx 2 роки тому

    Sehr gutes Video👌

  • @redbird9157
    @redbird9157 9 років тому +2

    cool cool danke dir, endlich verstanden :D
    worauf du vielleicht noch hättest eingehen können ist wegen den Deklaration in den Funktionsköpfen, dass diese am besten vor der main funktion stehen sollten, sonst findet zb der compiler die deklarationen nicht die evtl. weiter unten stehen. Die Programme laufen ja von oben nach unten durch

    • @shlimsady
      @shlimsady 5 років тому

      RedBird 91 ich hab ewig gebraucht bis ich herausgefunden habe, dass die Reihenfolge der Funktionen mein Fehler war😂😂

    • @Heiko_Jantz
      @Heiko_Jantz 2 роки тому

      Moin. Ich meine man kann die Funktion auch unter main() schreiben. Man muß dabei nur vor main() einen Funktionsprototypen angeben: int bignum(int,int);
      Ich weiß nur nicht wie das in der Praxis gehandhabt wird. Da weiß Franneck sicherlich besser Bescheid.
      LG Heiko

  • @jellie4295
    @jellie4295 7 років тому +11

    Warum genau verwendest du Code Blocks?

    • @akumaoni2837
      @akumaoni2837 5 років тому +1

      Ist wahrscheinlich was spät für die Antwort.
      Code:: Blocks wird oft von Uni's im Unterricht und im DV Labor benutzt und ist komplett kostenlos.
      Und da Franneck zu der Zeit Student war, macht das Sinn.

    • @andreashampp9183
      @andreashampp9183 3 роки тому

      @@akumaoni2837 auch ich bin zu spät. würde dennoch aber Visual Studio benutzen, da es industrieller Standard ist und auch kostenlos ist

  • @kryzuu1558
    @kryzuu1558 7 років тому +18

    verstehe die folge nicht mehr wirklich...

    • @VedoVido
      @VedoVido Рік тому +1

      er erklärt die einfachen Sachen sehr langsam, und die bissl komplizierten sehr schnell

  • @eric8372
    @eric8372 6 років тому +1

    Vielen Dank für deine Tutorial-Reihe, hat mir sehr geholfen!
    Ich habe noch eine Frage zu den Funktionen:
    Wenn ich in einer Funktion "A" an irgendeiner Stelle zur "main"-Funktion springen will, funktioniert das ja an sich ganz einfach mit "main()".
    Beim kompilieren wird mir aber dabei immer ein "warning" angezeigt, was ich gerne verhindern würde, da ich das Programm auch vor anderen Präsentieren muss.
    Kann ich also beim Kompilieren mit dem mingw Compiler solche "warnings" oder auch "notes" verhindern bzw. einfach ausblenden (denn das Programm funktioniert trotz "warnings" tadellos)?
    Ich bin für jede Hilfe dankbar!

  • @tentgerryfarms8650
    @tentgerryfarms8650 Рік тому +1

    nee sorry, hintergrundmukke nervig und schrift zu klein....

  • @lenjaminbang
    @lenjaminbang 4 роки тому

    10/10 Intro omg MitiS - Born!!

  • @abysmal111
    @abysmal111 9 років тому

    Danke dir, jetzt weiß ich, wo der Fehler in meinem Programm war. ^^

  • @lephobix
    @lephobix 7 років тому +1

    das ist mega effektive!

  • @blackatomic1669
    @blackatomic1669 9 років тому

    Hey du bist mein Held.
    1000 danke wirklich.
    Ich schreibe morgen eben eine Prüfung über das ( mache eine Informatiker ausbildung)
    Mach weiter so :)

  • @1990idris
    @1990idris 7 років тому +2

    Hai, Kannst du mir noch über "Call by value" und "Call by reference" erklären?

  • @pudinnpudinn6239
    @pudinnpudinn6239 Рік тому

    bei mir ist die 2 zahl immer die größere warum? ich habs mal mit dem debugger angeschaut und bei mir wird bei wert2 angezeigt das 32500 als wert feststeht. kann mir wer helfen

  • @FurryDanOriginal
    @FurryDanOriginal 7 років тому +6

    Sehr gutes und verständliches Tutorial, bei dem ich vieles neues lernen und verstehen konnte. Danke dafür!
    Allerdings ist mir aufgefallen, da wenn big = 0 ist, einfach angenommen wird, dass die Zahl gleich gross, wie die andere ist und somit der Wert 0 an big gegeben worden ist, aber was wenn der Benutzer 0 und eine Zahl die kleiner, wie 0 ist eingibt? (z.B. 0 & -2) Dann wird ja geschrieben, dass beide Zahlen gleich gross sind, obwohl 0 ja logischerweise grösser als -2 ist. Deswegen habe ich als Ausgabe beim else-Fall einfach die Variable "c" anstatt 0 gegeben und meinen Script demnach angepasst, sodass jetzt auch wenn 0 als eigentlich grössere Zahl auftritt, steht, dass 0 grösser als die andere Zahl ist und jetzt die Nachricht, dass beide Werte gleich gross sind, wirklich nur auftreten kann, wenn beide Werte gleich gross waren.
    Ansonsten wirklich Top Tutorial :)

    • @Heiko_Jantz
      @Heiko_Jantz 2 роки тому

      Moin.
      Ich glaube da hast Du unrecht. Zeile 23 if(big!=0) wird big ja auch auf < 0 geprüft. != heißt m. E. ungleich 0.

  • @matze489
    @matze489 3 роки тому

    Wie heißt das Lied vom Intro?

  • @luminar6256
    @luminar6256 6 років тому +2

    Guter Inhalt, schlechte Bilddarstellung.

  • @alihaydaratasoy2000
    @alihaydaratasoy2000 7 років тому

    @Franneck was bedeutet != oder == und was ist der Unterschied zwischen %d, %ld etc. kannst du es mir vielleicht erklären danke

    • @Franneck
      @Franneck  7 років тому

      Ali Haydar Atasoy ungleicher oder gleicher wert beduetet das

    • @alihaydaratasoy2000
      @alihaydaratasoy2000 7 років тому

      Franneck vielen Dank

  • @bahaelgit3800
    @bahaelgit3800 8 років тому

    Wie kann ich den Schiefen Wurf damit machen? Ich habe dein Tutorial angeschaut, weiß aber immernoch nicht, wie ich den Schiefen Wurf programmieren soll.

    • @Franneck
      @Franneck  8 років тому

      Bin gerade ein bisschen verwirrt, wie kommst du jetzt auf nen schiefen wurf? :D

    • @bahaelgit3800
      @bahaelgit3800 8 років тому

      Weil man für den Schiefen Wurf das Thema Funktionen braucht. Und da du das als Tutorial gemacht hast, und ich es verstanden habe, so müsste ich den Schiefen Wurf als Aufgabe programmieren können. Leider kann ich das noch nicht,.

    • @halid9457
      @halid9457 3 роки тому

      @@bahaelgit3800 MATHEMATISCHE funktionen, nicht funktionen beim programmieren!!! xD

  • @soundmodul4503
    @soundmodul4503 8 років тому +2

    Hallo, könnte mir jemand helfen ? Mein Programm schließt sich von alleine, obwohl es das nicht soll !!! Kann mir jemand sagen was ich machen soll !?! Ich bin Anfänger und soweit ich weiß soll getchar verhindern dass das Programm von selbst schließt, doch bei mir ist das nicht so ! Hoffe mir kann jemand helfen, danke !!!# include
    // Test_Beispiel
    using namespace std;
    int main()
    {
    float fFaktor;
    float fEuro;
    float fDollar;
    fFaktor = 1,1231;
    cout

    • @berliner628
      @berliner628 8 років тому +1

      vll du hast {} vergessen zu schreiben .du kannst mir dein Projekt schicken , dann kann ich dir sagen ,was dein
      Fehler war .
      LG

  • @gintokiamv7811
    @gintokiamv7811 3 роки тому

    Müssen wir a und b nicht mit char deklarieren?

  • @superfreiheit1
    @superfreiheit1 3 роки тому +1

    Da ist so klein. Man sieht garnichts

  • @davids3282
    @davids3282 7 років тому

    Kommt vielleicht ein bisschen spät aber kannst du erklären was es mit void auf sich hat, bzw wann man es benützen sollte in c? Ich find dazu irgendwie nichts im internet was weiterhilft.

    • @Franneck
      @Franneck  7 років тому +1

      wenn eine Funktion nichts returnen soll

    • @Heiko_Jantz
      @Heiko_Jantz 2 роки тому

      @@Franneck schreibt man void funktion(void) oder void funktion () ?
      Und bei main, muß man da ein Returnwert zurückgeben? int main() oder int main(void) ?
      Danke.

    • @Franneck
      @Franneck  2 роки тому

      @@Heiko_Jantz heutzutage ist int main() oder int main(void) eigentlich beides gleiche bzw. egal was man nimmt

  • @M3rtyville
    @M3rtyville 10 років тому

    ich hab probiert dass programm mal blind selber zu schreiben und dann mit deinem zu vergleichen.
    komischerweise, immer wenn ich zwei zahlen mit der selben größe habe, sagt mein programm: 0 ist die groessere Zahl.
    #include
    #include
    #include
    int groesser(int a, int b){
    if (a > b){
    return a;
    }
    else if (a < b)
    return b;
    else
    return 0;
    }
    int main(){
    int zahl1, zahl2, gross;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d",&zahl1);
    printf("Geben Sie noch eine Zahl ein: ");
    scanf("%d",&zahl2);
    gross = groesser(zahl1, zahl2);
    if(groesser!=0){
    printf("%d ist die groessere Zahl
    ",gross);
    }
    else
    printf("Beide Zahlen haben den gleichen Wert
    ");
    return 0;
    }

    • @Franneck
      @Franneck  10 років тому

      Das hat mit:
      else
      return 0;
      zu tun, am besten das weglassen und eine printf mit "beide gleich oder so"

    • @M3rtyville
      @M3rtyville 10 років тому

      Franneck das hat nicht geholfen, aber nun ist mir aufgefallen, dass ich bei der if-anweisung groesser statt gross geschrieben habe
      gross = groesser(zahl1, zahl2);
      if(groesser!=0){
      und da lag der fehler den ich die ganze zeit nicht bemerkt habe xD

    • @barayar
      @barayar 9 років тому

      M3rtyville eigentlich liegt der fehler bei der anweisung
      if (a > b){
      return a;
      }
      richtig ist es
      if (a > b)
      return a;

    • @FurryDanOriginal
      @FurryDanOriginal 7 років тому

      +Pewby bissl spät, aber glaube nicht, dass diese Anweisung den Fehler auslösen hätte können. Zumindest bei mir habe ich auch diese Klammern zuerst aus versehen eingebaut, aber bei mir hats dann trotzdem geklappt.

    • @rykecsgo570
      @rykecsgo570 6 років тому

      int groesser(int a, int b){
      return a > b ? a : b;
      }

  • @ikoj.1781
    @ikoj.1781 7 років тому +4

    mit Taschenrechner aufgenommen ?

  • @itzinfect3053
    @itzinfect3053 9 років тому

    Hey Franneck mir ist aufgefallen das ein Fehler immer bei deinem letzten Beispiel kommt und ich weiß nicht ob ich es richtig verbessert habe, weil vor der Verbesserung kam immer(, wenn ich erst eine kleine Zahl schreibe dann eine Große) "Die Zahlen haben den selben Wert" . Kannst du mal gucken ob es so wie ich es gemacht habe richtig ist (Habe heute erst angefangen.)
    Mfg Freshboy305 :D

    • @Franneck
      @Franneck  9 років тому

      schreib deinen code rein oder am besten bei facebook

    • @itzinfect3053
      @itzinfect3053 9 років тому

      Franneck Sorry habe es vergessen wollte noch fragen ob ich die Funktion verstanden haben, man soll zwei Zahlen/Werte eingeben und die Funktion findet die Größere aber egal hier der code: ▼
      #include
      #include
      #include
      int bignum(int a, int b) {
      if (a > b)
      return a;
      else if(b > a)
      return b;
      else
      printf ("Beide Zahlen sind gleich !
      ");
      return 0;
      }
      int main(void) {
      int wert1, wert2, big;
      printf ("Erste Zahl eingeben: ");
      scanf ("%d", &wert1);
      printf ("Zweite Zahl eingeben: ");
      scanf ("%d", &wert2);
      big = bignum(wert1, wert2);
      if (big != 0)
      printf("%d ist die groessere Zahl
      ", big);
      return 0;
      }

    • @dimitriblume2298
      @dimitriblume2298 7 років тому

      jo jo lasershow

  • @adhemarnabil6863
    @adhemarnabil6863 7 років тому

    Was ist wenn ich irgend eine negative Zahl mit 0 vergleiche?!

  • @ParalyticAngel
    @ParalyticAngel 2 дні тому

    Statt jedes mal "ganz wichtig, das Semikolon nicht vergessen" sagen zu müssen, wieso erklärst Du den Neulingen nicht was das Semikolon bedeutet?
    Die Leute sind nicht blöd, aber aus den Fingern können sie sich das nicht ziehen. 1 mal erklärt und nie wieder musst Du es erwähnen. Spart Dir und uns einen ganze Haufen Zeit.
    Ich erwähne mal was das ist:
    Beim Programmieren geben wir die ganze Zeit Anweisungen die das Programm (die CPU im entfernteren Sinne) ausführen soll. Beispielsweise printf("irgendwas");
    Nur Anhand des Semikolons erkennt der Compiler (später auch das Programm), dass eine Anweisung beendet ist und führt diese aus, wenn der Compiler nicht gemeckert hat.
    Das wars auch schon. Also ein Semikolon ist das Zeichen für das Ende einer jeden Anweisung.
    Und im gleichen Zug kann man auch den Block erklären:
    Auf eine jede Funktion folgt ein Block, welche z.B. mehrere Anweisungen beinhalten kann. Auch wenn eine Funktion nur eine Anweisung beinhaltet, so wird diese trotz dessen in einem Block geschrieben. Auch auf ein Schleife oder if-Anweisung folgt ein Block, da auch hier ein bis mehrere Anweisung erwartet werden. Bei nur einer Anweisung darf man sogar den Block hier allerdings weglassen. Bei Funktionen nicht. Beispiele:
    int Quadriere(int x) {
    return x * x;
    }
    for (int i = 0; i < 10; i++)
    printf("%d
    ", i);
    if (x < 0)
    printf("Deine Zahl ist negativ.");
    while (x > 0) {
    printf("Deine Zahl ist positiv.");
    x -= 1;
    }
    Die einzige Anweisung der oberen Funktion ist in einem Block geschrieben, die einzige Anweisung der for-Schleife und die erste if-Anweisung in Kurzschreibweise ohne Block. Kann zur besseren Lesbarkeit aber trotzdem in einem Block geschrieben werden, auch wenn nur eine Anweisung existiert. Folgendes geht auch:
    for (int i = 0; i < 10; i++) printf("%d
    ", i);
    Doch dies ist ziemlich unübersichtlich wenn dann auch der Code noch etwas länger ist umso schlimmer. Ich verwende z.B. bei nur einer Anweisung in Schleifen oder if-Anweisungen die Kurzschreibvariante ohne Block, aber mit Einrückung in neuer Zeile. Denn unnötige Blöcke verlängern nun auch mal den Code.^^ Sofern mehr als nur eine Anweisung vorhanden ist, muss man einen Block auf jeden Fall nutzen.

  • @irgendwerirgendwo2720
    @irgendwerirgendwo2720 5 років тому +1

    Habs nicht verstanden :(

  • @datascience9712
    @datascience9712 7 років тому

    10000000 Danke

  • @sirping1948
    @sirping1948 8 років тому

    Hallo Jan! Ich kenn dich