kostenloser Webspace werbefrei: lima-city


Hilfe

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    r******i

    Ich hab ein kleines Problem mit einem Programm das ich scheiben muss.

    Die Aufgabe sieht so aus:

    1. Schreibe ein Programm, das alle geraden Zahlen von 2 bis zu einem vom Benutzer angegebenen Wert in ein Array schreibt und diese dann am Bildschirm untereinander ausgibt
    2. Schreibe ein Programm, das eine Funktion besitzt, die den Wert einer ?bergebenen Flie?kommavariablen halbiert! Verwende die Funktion f?r eine Variable mit dem Wert 17.5!
    3. Schreibe ein Programm, das die 5 Zahlen aus der Datei ?Zahlen.txt? liest, sie liest, sie aufaddiert und das Ergebnis so ausgibt: Die Summe der Zahlen aus ?Zahlen.txt? ist.

    Und ich muss noch wissen was

    Passing-by-reference
    und
    Passing-by-value

    ist.

    Danke im Voraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k******s

    Ein bisschen Codce zu Programm 1:

    ...
    vector<int> GeradeZahlen;
    ...
    for (int i=2; i<=Eingabe; i++)
    {
    if( !(i & 1) ) GeradeZahlen.push_back(i);
    }
    ...


    so in etwa w?rd ich das anstellen.
    Und das "if( !(i & 1) )" ist dabei der Knackpunkt. Da bei einer binaer Zahl ( & ist binaer) das niederwertigste Bit nur dann 1 ist wenn es eine Ungerade zahl ist zB:
    Binaer: 1 0<-- Niederwertgstes Bit. (Dec: 2)
    Binaer: 1 1<-- Niederwetigstes Bit. (Dec: 3)

    Das sollte dir bei der L?sung des ersten Programms helfen.

    Knuckl3s
    http://knuckles-gfx.de/
  4. Noch 'ne dritte Variante: Wenn x%2==0 gilt, ist die Zahl x gerade :biggrin:



    remasuri schrieb:
    Und ich muss noch wissen was

    Passing-by-reference
    und
    Passing-by-value


    Passing-by-Value ist, wenn du einer Funktion ganz normal einen Variablenwert ?bergibst, z.B.

    void myfunc(int x);

    void main() {
    int z=7;
    myfunc(z);
    }

    Die Funktion myfunc bekommt dann eine Kopie des Wertes z ?bergeben. Das hei?t, wenn du innerhalb von myfunc den Wert z ?nderst, bleibt in main der urspr?ngliche Wert (7) erhalten.

    Bei Passing-by-Referenz ?bergibst du einen Pointer (auch: Zeiger) auf diesen Wert:

    void myfunc(int* x);

    void main() {
    int z=7;
    myfunc(&z);
    }

    Der Wert x in myfunc enth?lt dann nicht die 7 sondern die Speicheradresse, an der die 7 gespeichert ist. Wenn der Wert *x innerhalb von myfunc jedoch ge?ndert wird, ?ndert sich auch der Wert z au?erhalb von myfunc!

    N?tzlich ist sowas z.B. bei der Verarbeitung von Zeichenketten, als Mechanismus zur R?ckgabe von Werten.

    MfG,
    thw
  5. c******a

    was soll man da noch sagen... und schon sind die _hausaufgaben_ erledigt.

    @thw -es ist wohl wirklich passing by reference (referenzen nicht zeiger) gemeint. google schafft mit "passing by reference c++" abhilfe


    sei noch hinzu zu fuegen:
    http://tggc.tg.funpic.de/index.php?cat=8&page=5

  6. @thw -es ist wohl wirklich passing by reference (referenzen nicht zeiger) gemeint. google schafft mit "passing by reference c++" abhilfe


    Mh... naja? Z.B. laut http://www.algorithmic-solutions.info/leda_manual/Arguments.html ist das doch genau das was ich versucht habe zu erkl?ren :-/

    Intern wird das immer ?ber Zeiger geregelt, wie man das letztendlich nennt ist doch wurscht... oder gibt's da in C++ noch was anderes von dem ich noch nix wei??

    MfG,
    thw
  7. c******a

    wenn man es so nimmt gibt es nur parameteruebergaben per value. es werden bei pointern und referenzen schliesslich auch nur die adressen uebergeben.
    naja der unterschied zwischen referenzen und zeigern in parameterlisten ist der das man zeiger erst noch dereferenzieren muss und direkt die adressen uebergeben muss wohingegen bei referenzen der kompiler dies wohl implizit erledigt.

  8. naja der unterschied zwischen referenzen und zeigern in parameterlisten ist der das man zeiger erst noch dereferenzieren muss und direkt die adressen uebergeben muss wohingegen bei referenzen der kompiler dies wohl implizit erledigt.


    Oha, das kenne ich noch gar nicht. Gibt's in C aber nicht, oder (also ich spreche vom ANSI C 99 Standard)?

    Aber danke f?r die Erkl?rung, ich werd's mir merken!

    MfG,
    thw
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!