Anfänger hat eine Frage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Anfänger hat eine Frage

    Hallo,

    ich bin ganz am Anfang des Programmierlateins und eigne mir das Wissen über die Materie literarisch an.
    Dazu benutze ich noch die App "Codeacademy" auf dem iPad.

    Leider verstehe ich einen bestimmten Code nicht, der in der App zu lösen gilt.

    Bitte helft mir zu verstehen, wieso "3" in diesem Fall richtig ist.

    Variable a ist "3"
    Wenn 5 größer ist als 10

    Den Rest verstehe ich leider nicht :(

    Ich würde mich über Eure Hilfestellung sehr freuen.

    Vielen Dank und beste Grüße,
    Tolga
    Dateien
  • Falsch, a ist 3 wenn 5 nicht größer als 10 ist (noch dürfen wir davon ausgehen)
    Xcode 4 sucks – „,Multiple exclamation marks‘, he went on, shaking his head, are a sure sign of a diseased mind.‘“ (Terry Pratchett 1992: Eric)

    "Wir ordnen und befehlen hiermit allen Ernstes, dass die Advocati wollene schwarze Mäntel, welche bis unter das Knie gehen, unserer Verordnung gemäß zu tragen haben, damit man die Spitzbuben schon von weitem erkennt." (Friedrich Wilhelm I., Soldatenkönig)
  • Übersetzt in Pseudo-Code:

    Quellcode

    1. sei a = 5
    2. wenn die Ziffer 5 größer als die Ziffer 10 ist
    3. sei a = 7
    4. ansonsten
    5. sei a = 3
    6. wenn a der Ziffer 3 entspricht
    7. gib aus 'richtig'


    Wobei ich dir nicht sagen kann, ob 'entspricht' jetzt 'gleich' oder 'identisch' bedeutet.
    Sollte es sich (das 'var' lässt darauf schließen) um einen Javascript Code ab Version 1.2 handeln, dann heißt 'entspricht' hier 'identisch'.
    Und es kann ja durchaus einmal vorkommen, dass 3 nicht 3 oder 3 sondern 3 ist.

    Oder in C:
    3 (int) ist nicht dasselbe wie 3L (long) ist nicht dasselbe wie 3U (unsigned) ist nicht dasselbe wie 3UL (unsigned long), obwohl sie alle den reinen Zahlwert 3 haben.
    Hingegen ist 3UL (unsigned long) dasselbe wie 3LU (long unsigned)…
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • und es war nicht eher

    Quellcode

    1. if (a > 10) {

    gemeint? Nicht, dass das ein schöner Code wäre, aber wenigstens noch halbwegs sinnig :)

    Du störst Dich wahrscheinlich an dem ">" Zeichen. . Da 5 niemals größer sein wird als 10, springt die if-Abfrage in den else-Zweig und da wird a = 3 gesetzt.
    ----
    Macht's gut und danke für den Fisch
  • Anfänger hat eine Frage

    ichessetoast schrieb:

    und es war nicht eher

    Quellcode

    1. if (a > 10) {

    gemeint? Nicht, dass das ein schöner Code wäre, aber wenigstens noch halbwegs sinnig :)

    Du störst Dich wahrscheinlich an dem ">" Zeichen. . Da 5 niemals größer sein wird als 10, springt die if-Abfrage in den else-Zweig und da wird a = 3 gesetzt.



    Genau so ist es.

    ichessetoast schrieb:

    und es war nicht eher

    Quellcode

    1. if (a > 10) {

    gemeint? Nicht, dass das ein schöner Code wäre, aber wenigstens noch halbwegs sinnig :)

    Du störst Dich wahrscheinlich an dem ">" Zeichen. . Da 5 niemals größer sein wird als 10, springt die if-Abfrage in den else-Zweig und da wird a = 3 gesetzt.



    Hi,

    Genau.

    Quellcode

    1. if (a > 10) {


    wäre für mich logischer, da 5 niemals größer sein wird als 10.

    Ich glaube ich verstehe das jetzt. Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden.

    Habe ich das richtig verstanden?
  • cy2u5 schrieb:

    ichessetoast schrieb:

    und es war nicht eher

    Quellcode

    1. if (a > 10) {

    gemeint? Nicht, dass das ein schöner Code wäre, aber wenigstens noch halbwegs sinnig :)

    Du störst Dich wahrscheinlich an dem ">" Zeichen. . Da 5 niemals größer sein wird als 10, springt die if-Abfrage in den else-Zweig und da wird a = 3 gesetzt.



    Genau so ist es.

    ichessetoast schrieb:

    und es war nicht eher

    Quellcode

    1. if (a > 10) {

    gemeint? Nicht, dass das ein schöner Code wäre, aber wenigstens noch halbwegs sinnig :)

    Du störst Dich wahrscheinlich an dem ">" Zeichen. . Da 5 niemals größer sein wird als 10, springt die if-Abfrage in den else-Zweig und da wird a = 3 gesetzt.



    Hi,

    Genau.

    Quellcode

    1. if (a > 10) {


    wäre für mich logischer, da 5 niemals größer sein wird als 10.

    Ich glaube ich verstehe das jetzt. Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden.

    Habe ich das richtig verstanden?


    ichessetoast schrieb:

    jupp. genauso.
    im Prinzip hat @'Marco Feldmann' Dir oben den Code ja schon schön in lesbar hingeschrieben.

    gruß
    iet


    Nein, hat er nicht. Ein kleiner Fehler ist da noch drin, eventuell auch einfach nur falsch niedergeschrieben. :)

    Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden.

    Habe mal versucht das Problem Farblich zu markieren.
    - Du fängst auf jeden Fall richtig an. a hat nun als Wert 5.
    - Auch die Bedingung hast du korrekt wiedergegeben
    - Nun kommt der kleine Schnitzer. Im roten teil gehst du darauf ein, was wäre wenn die Variabel a in der Bedingung Anwendung finden würde. Da dem aber nicht so ist, wäre es auch egal ob a den Wert 11 hat.

    Nur um das noch zu vervollständigen :)
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • ichessetoast schrieb:


    aber schon sehr geil, dass wir hier if-else-Anweisungen erklären *rofl*
    .


    Find' ich nicht: Das war eine sehr konkrete Frage (zugegeben, nicht gerade ein kniffliges Problem), nett formuliert. Die verdient auf jeden Fall eine konkrete Antwort. Und jeder hat mal klein angefangen.

    Was mich mehr nervt sind die Anfänger, die auch von nix eine Ahnung haben, sich drei Code-Schnipsel zusammen kopieren und sich dann wundern warum nix geht. Und anschließend sowas in der Art fragen: "Ich will eine App schreiben, aber es geht nicht. Schaut Doch mal drüber und sagt mir warum."

    schönen Gruß

    gandhi
  • DanielBocksteger95 schrieb:

    ichessetoast schrieb:

    jupp. genauso.
    im Prinzip hat @'Marco Feldmann' Dir oben den Code ja schon schön in lesbar hingeschrieben.

    gruß
    iet

    Nein, hat er nicht. Ein kleiner Fehler ist da noch drin, eventuell auch einfach nur falsch niedergeschrieben. :)

    Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden.


    Ein guter Einwurf.
    Der Pseudocode übersetzt natürlich nur das, was da steht. Deine Ergänzungen sind Metawissen, das der Code als Text natürlich nicht hat.
    (Pseudo)Code hat nicht den Anspruch, Logiken darzustellen sondern lediglich das Geschriebene zu übersetzen.

    Niemand hindert Dich daran 'var a = 1+2+3+4+5+6+7+8+9+10' zu coden.
    Niemand hindert Dich daran 'var a = (10*11) / 2' zu coden.

    Wenn das dem Compiler zu blöd ist und er da einfach einen 'a DW 55' Assemblercode daraus baut, wird dadurch Dein Code in der Textdatei ja nicht automatisch lesbarer. ;)

    Man könnte sagen: ich war die Sourcedatei, Du der Static Analyzer. ^^

    Im Übrigen vertrete ich die Ansicht, dass man aus kleinen Fehlern besser lernt als aus kleinen Erfolgen.
    (Natürlich sind große Erfolge lehrreicher als große Fehler, aber große Fehler sind das ja nun wirklich nicht.)

    Wenn [cy2u5] sich das durchliest und selbst denkt: "Hä? Wie soll 5 denn JEMALS größer als 10 sein? Das geht doch gar nicht!" haben wir alle viel mehr gewonnen als wenn er sich nach [iet]s Tipp ärgert: "Scheiß Tutorial. Tippfehler drin. Wie soll man denn bitte mit so'm Blödsinn was lernen können?"
    Damit er keine falschen Schlüsse zieht habe ich ihm halt weiter unten darauf aufmerksam gemacht, dass 3 zwar niemals größer oder kleiner als 3, aber durchaus was Anderes als 3 sein könnte.

    Immer schön an die Lösung herangeführt werden ohne sie direkt gezeigt zu bekommen hebt die Motivation, sich selbst in Probleme festzubeißen und die Lösung zu finden. :)
    (Seit ~20 Jahren, im Rahmen von PISA und Konsorten, geht es bei der Jugend- und Erwachsenenbildung immer mehr darum die Leute dazu zu erziehen, 'etwas richtig' zu machen und Fehler komplett zu vermeiden. Sogar etliche Studiengänge werden auf Grund des so genannten 'Fachkräftemangels' dahingehend gedrillt, möglichst alles zu lernen und möglichst wenig zu forschen – Hätten Thomas Alva Edison und Henry Ford ihrerzeit so agiert, wir führen immer noch mit Waltran gefüllte Lampen an unseren Holzkutschen spazieren.)



    [ichessetoast] Den Code einfach umzuschreiben ist irgendwie eine doofe Idee. Ändert sich irgendwo der Wert von a, verhält sich Dein Code unter Umständen anders als der vorgegebene Code. Und zwar fast immer dann, wenn der Wert von a im zweistelligen positiven Bereich angekommen ist.
    Du kennst den Zusammenhang und Aufbau dieses Tutorials/Buchs nicht. Auch weißt Du nicht, an welcher Stelle dieser Übung genau man die Ersetzungen machen konnte.
    (Ich vermute, es wird der hervorgehobene Bereich sein, aber sicher sein kann man sich da natürlich nicht.)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Marco Feltmann schrieb:

    Spoiler anzeigen

    DanielBocksteger95 schrieb:

    ichessetoast schrieb:

    jupp. genauso.
    im Prinzip hat @'Marco Feldmann' Dir oben den Code ja schon schön in lesbar hingeschrieben.

    gruß
    iet

    Nein, hat er nicht. Ein kleiner Fehler ist da noch drin, eventuell auch einfach nur falsch niedergeschrieben. :)

    Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden.


    Ein guter Einwurf.
    Der Pseudocode übersetzt natürlich nur das, was da steht. Deine Ergänzungen sind Metawissen, das der Code als Text natürlich nicht hat.
    (Pseudo)Code hat nicht den Anspruch, Logiken darzustellen sondern lediglich das Geschriebene zu übersetzen.

    Niemand hindert Dich daran 'var a = 1+2+3+4+5+6+7+8+9+10' zu coden.
    Niemand hindert Dich daran 'var a = (10*11) / 2' zu coden.

    Wenn das dem Compiler zu blöd ist und er da einfach einen 'a DW 55' Assemblercode daraus baut, wird dadurch Dein Code in der Textdatei ja nicht automatisch lesbarer.

    Man könnte sagen: ich war die Sourcedatei, Du der Static Analyzer.

    Im Übrigen vertrete ich die Ansicht, dass man aus kleinen Fehlern besser lernt als aus kleinen Erfolgen.
    (Natürlich sind große Erfolge lehrreicher als große Fehler, aber große Fehler sind das ja nun wirklich nicht.)

    Wenn [cy2u5] sich das durchliest und selbst denkt: "Hä? Wie soll 5 denn JEMALS größer als 10 sein? Das geht doch gar nicht!" haben wir alle viel mehr gewonnen als wenn er sich nach [iet]s Tipp ärgert: "Scheiß Tutorial. Tippfehler drin. Wie soll man denn bitte mit so'm Blödsinn was lernen können?"
    Damit er keine falschen Schlüsse zieht habe ich ihm halt weiter unten darauf aufmerksam gemacht, dass 3 zwar niemals größer oder kleiner als 3, aber durchaus was Anderes als 3 sein könnte.

    Immer schön an die Lösung herangeführt werden ohne sie direkt gezeigt zu bekommen hebt die Motivation, sich selbst in Probleme festzubeißen und die Lösung zu finden.
    (Seit ~20 Jahren, im Rahmen von PISA und Konsorten, geht es bei der Jugend- und Erwachsenenbildung immer mehr darum die Leute dazu zu erziehen, 'etwas richtig' zu machen und Fehler komplett zu vermeiden. Sogar etliche Studiengänge werden auf Grund des so genannten 'Fachkräftemangels' dahingehend gedrillt, möglichst alles zu lernen und möglichst wenig zu forschen – Hätten Thomas Alva Edison und Henry Ford ihrerzeit so agiert, wir führen immer noch mit Waltran gefüllte Lampen an unseren Holzkutschen spazieren.)

    [ichessetoast] Den Code einfach umzuschreiben ist irgendwie eine doofe Idee. Ändert sich irgendwo der Wert von a, verhält sich Dein Code unter Umständen anders als der vorgegebene Code. Und zwar fast immer dann, wenn der Wert von a im zweistelligen positiven Bereich angekommen ist.
    Du kennst den Zusammenhang und Aufbau dieses Tutorials/Buchs nicht. Auch weißt Du nicht, an welcher Stelle dieser Übung genau man die Ersetzungen machen konnte.
    (Ich vermute, es wird der hervorgehobene Bereich sein, aber sicher sein kann man sich da natürlich nicht.)


    Hey,

    um das nur eben zu korrigieren Marco, "Nein hat er nicht" war nicht darauf bezogen dass du den Code bereits geschrieben hattest.

    Sondern auf [ichessetoast]s Antwort "jup, genau so" auf folgende Frage:

    cy2u5 schrieb:

    Ich glaube ich verstehe das jetzt. Es wurde a als 5 gesetzt. Wenn die Bedingung (wenn 5 größer ist als 10) erfüllt wird, sei 7, ansonsten sei 3. Da jedoch a als 5 gesetzt ist und somit nicht größer ist als 10, wird aus a = 3. Wäre aber a = 11, würde a aufgrund der Bedingung zu 7 werden. Habe ich das richtig verstanden?


    Deshalb wollte ich die Logik dahinter noch mal aufgreifen, da in seiner Erklärung ja noch ein Schnitzer drin war :)
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io