Frage zur Funktionen und Strukturen ( C++ , Javascript)

vram78

Lieutenant
Registriert
Dez. 2015
Beiträge
712
Hi,

Ich verstehe etwas nicht..



Hier mal ein Beispiel von Javascript: (Hab ich übrigens von dieser Seite hier: http://www.highscore.de/grundlagen/ )



<html>
<head>
<title>Allgemeine Grundlagen der Programmierung</title>
<script type="text/javascript">
function add(a, b) {
alert(a + b);
}

var i = 1, j = 2;
add(i, j);
</script>
</head>
<body>
</body>
</html>

Hier wird also eine Funktion mit dem Namen "add" erstellt. und dass soll beim Aufruf dieses a + b wiedergeben.. aber
unten steht was anderes. da sind zwei variablen die i und j heißen und nicht a und b .. und warum wird dort in den klammern i, j geschrieben? also bei add(i,j) oder warum wird bei function add(a, b) in den klammern das a, b angebeben? Müsste es nicht wie ich es geschrieben habe sein? Und es gibt doch garkeine Variable mit a und b

Ich würde es so machen:



function add() {
alert(i + j);
var i = 1, j = 2;
}


add(i, j);



Aber meins würde sowieso falsch sein.. gehe ich mal davon aus. Nur warum ist mein Beispiel falsch und das obere Beispiel richtig?



Jetzt noch eine Frage zu der Struktur (C++) ( http://www.highscore.de/grundlagen/ )


struct adresse
{
string Vorname;
string Nachname;
string Strasse;
int PLZ;
string Ort;
};

adresse MeineAdresse;


Mit einer Struktur kann man also eine neuen Datentyp erstellen, habe ich das richtig verstanden? hier im Beispiel kann also das Datentyp "adresse" die unten genannten Sachen speichern, Vorname, Nachname, Plz usw . und schon hat man einen neuen Datentyp. Ist meine Erklärung halbwegs richtig oder wie ist dass jetzt?






Vielen dank schonmal









MFG
 
Zuletzt bearbeitet:
Wie du Variablen intern in der Funktion nennst (in dem Fall a, b) ist vollkommen unabhängig von den Namen der Variablen die du übergibst (in dem Fall i, j).
Wäre ja auch schrecklich, wenn man vor dem Aufruf einer Funktion drauf achten müsste, dass diese den selben Namen haben.

Ja du hast das mit struct richtig verstanden.

die letzten drei, mag ich jetzt nich ausführen. Da musst dich grundsätzlich mal bisschen einlesen und nicht alles vorkauen lassen ;) Gibts genügend Infos im Netz für so allgemeine Fragen. Das gehört nunmal zur Basis bei Programmierung, dass man auch viel am Googlen ist, wenns um bisher unbekannte Sachen oder best practices geht.
 
Zuletzt bearbeitet:
Das mit den Funktionen verstehe ich immer noch nicht.. Also ich weiß zwar ungefähr was eine Funktion ist.. aber ich verstehe es mit den Parametern nicht.. Warum kommt beim Aufruf der Funktion "add" zwischen den Klammern "i, j" ?
 
dein Code gibts überhuapt keinen Sinn. Die deklarierst die Variablen innerhalb der Funktion, du gibst nicht an, wieviele Parameter der Funktion übergeben werden.
Bitte mal in die Basics und die Logik einlesen, sonst kommen wir hier nicht weiter.

btw: Code lässt sich viel einfacher lesen, wenn du ihn her im Forum anständig formatierst.
 
Mit Parameter sind Variablen gemeint oder? Die muss man immer mit in die Funktion rüber geben. Also wenn man eine Funktion aufrufen möche. Habe ich es halbwegs verstanden?
 
Du bist nicht einmal weit genug zu wissen, welche Fragen du hast. Ich rate dazu, dir ein Mindestmaß an Verständnis oder zumindest Vokabular aufzubauen und dich dann ggf. noch einmal zu melden (oder dann eben besser doch nicht).

Was du fragst geht querbeet über etliche Themen, hat keinen internen Zusammenhang und wirkt für mich mehr wie blinde Herumstocherei als zielführendes Fragen mit Aussicht auf Erkenntnisgewinn. Du kannst deine Fragen nicht einmal nachvollziehbar artikulieren. Ich glaube nicht, dass wir dir dabei helfen können.

€: Ein Vokabeltip für den Anfang: Nachschlagen, was die Begriffe freie und gebundene Variablen bedeuten.
 
Zuletzt bearbeitet:
Wie bitte? Ich kann mich also nicht artikulieren? Komisch, dass es von 2 Usern verstanden worden ist..
Und meine Fragen waren zielführend. Ich habe nur geschrieben was ich nicht verstanden habe. Also verstehe ich grade dein Problem mit "zielführendes Fragen mit Aussicht auf Erkenntnisgewinn" nicht.
 
Zuletzt bearbeitet:
Ich hab dir aber auch gesagt, dass ich dir nicht alles vorkauen werde.
Dir fehlen die kompletten Grundlagen und da musst dich schon selber einlesen.
 
Was ich auch momentan tue ^^
 
Code:
/* Hier definierst du deine Funktion, das sieht immer so aus: function functionName(parameter1, parameter2 ...) { Aktion }*/
function add(a, b) { 
alert(a + b); // Das ist deine Aktion, wobei alert ebenfalls eine Funktion ist. Nur muss sie nicht definiert werden, da sie ein Bestandteil von JavaScript ist
} 

var i = 1, j = 2; // Hier legst du die Parameter-Werte fest
add(i, j); // Hier rufst du die zuvor definierte Funktion add() mit den Werten der Variablen i und j auf als add(1, 2)

Daher sind in deinem Code zwei verschiedene Buchstaben-Paare. a und b sind Parameter die ein beliebiger Datentyp sein können und i und j sind Variablen deren Wert an eine Funktion übergeben wird.

Für JavaScript-Basics kannst du auch immer mal wieder auf http://www.w3schools.com nachlesen. Für deine Fragestellungen habe ich dir mal den Artikel zu Funktionen rausgesucht: http://www.w3schools.com/js/js_functions.asp


/edit:

Anbei noch ein Beispiel, ich denke damit wird dir klar warum es so ist:

Code:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.2/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <h1>Erster Funktionsaufruf mit Variablen i,j</h1>
    <p id="call1"></p>
    <h1>Zweiter Funktionsaufruf mit Variablen m,n</h1>
    <p id="call2"></p>

    <script type="text/javascript">
      function add(a, b) {
        return a+b;
      };

      var i=3, j=5, m=1,n=9;

      document.getElementById("call1").innerHTML = add(i, j);
      document.getElementById("call2").innerHTML = add(m, n);
    </script>
  </body>
</html>
 
Zuletzt bearbeitet:
Ich glaub, ich habs verstanden :D danke :)
 
Zurück
Oben