Code
helloworld.cpp
// Integrated Development Environment (IDE)
// Editor, (Compiler), Debugger
// Präprozessor-Direktiven
// Bibliotheken einbinden
#include <iostream>
#include <random>
using namespace std;
// Call by reference: Adressübergabe per Adressoperator &
void Swap(int& a, int& b) {
// Sowohl 'a' als auch 'b' werden "by reference" übergeben,
// deshalb ist eine Zuweisung möglich.
int temp = a;
a = b;
b = temp;
}
// Call by value: Wertübergabe
int square(int a) {
return a * a;
}
// Hauptfunktion ("Highlander"-Prinzip – es kann nur eine geben)
int main() {
std::cout << "Hello World";
// Compilieren / Compiler: Übersetzt vom Quell- zum Zielprogramm
// Maschinencode / Bytecode
// g++ helloworld.cpp -> a.out
// Lexik: Definiert die gültigen Zeichen und Wörter, aus
// denen Programme der Programmiersprache zusammengesetzt
// sein dürfen
/*
Syntax: Definiert den korrekten Aufbau der Sätze aus
gültigen Zeichen bzw. Wörtern, d.h. sie legt fest, in
welcher Reihenfolge lexikalisch korrekte Zeichen
bzw. Wörter im Programm auftreten dürfen
Semantik: Definiert die Bedeutung syntaktisch korrekter
Sätze, d.h. sie beschreibt, was passiert, wenn bspw.
bestimmte Anweisungen ausgeführt werden.
Pragmatik: Definiert ihren Einsatzbereich, d.h. sie gibt
an, für welche Arten von Problemen die
Programmiersprache gut geeignet ist.
vgl. http://www.java-hamster-modell.de/eBooks/hamster1.pdf
*/
// Variable
// Deklaration: Es gibt diese bestimmte Variable
int zahl;
// Initialisierung: initialen Wert zuweisen
zahl = 23;
// int - Integer, ganze Zahlen
// Bereich, int (32 Bit): -2.147.483.648 bis 2.147.483.647
zahl = 2147483647;
cout << endl;
cout << "Zahl: " << zahl;
// bool - Wahrheitswerte: falsch oder wahr
// float - Fließkommazahlen
// double - Fließkommazahlen mit doppelter Genauigkeit
zahl = 25;
cout << endl;
cout << "Weitere Zahl: " << zahl;
// C++ ist eine statisch typisierte Programmiersprache
// C++ ist eine compilierte Programmiersprache
// Call by reference vs. call by value
cout << endl;
cout << "Adresse der Variable zahl: " << &zahl;
cout << endl;
int zahlEins = 15;
int zahlZwei = 25;
cout << endl;
cout << "zahlEins vor Aufruf von Swap()" << zahlEins;
cout << endl;
cout << "zahlZwei vor Aufruf von Swap()" << zahlZwei;
Swap(zahlEins, zahlZwei);
cout << endl;
cout << "zahlEins nach Aufruf von Swap()" << zahlEins;
cout << endl;
cout << "zahlZwei nach Aufruf von Swap()" << zahlZwei;
int a = 123;
cout << endl;
cout << "Quadrat" << square(a) << endl;
cout << endl;
/*
Programmierparadigmen:
- Imperative P.: BASIC, PASCAL
- Funktionale P.: Haskell, LISP
- Prädikative / deklarative P.: PROLOG
- Regelbasierte P.: OPS5
- Objektorientierte P.: C++
vgl. http://www.java-hamster-modell.de/eBooks/hamster1.pdf
*/
cout << endl << "****** ***** *****" << endl;
// Camel Case
int zufallsZahl = 55;
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dist(1, 100);
zufallsZahl = dist(gen);
int eingabeZahl;
// Schleifen: for(), while()
bool erraten = false;
while (!erraten) {
cout << endl << "Ihre Zahl: ";
cin >> eingabeZahl;
// Auswahlanweisung: if / else / switch
if (eingabeZahl == zufallsZahl) {
cout << "Herzlichen Glückwunsch!" << endl;
erraten = true;
} else if (eingabeZahl > zufallsZahl) {
cout << "Ihre eingegebene Zahl ist groesser!" << endl;
} else {
cout << "Ihre eingegebenen Zahl ist kleiner!" << endl;
}
}
cout << endl << "****** ***** *****" << endl;
// Rückgabewert der Funktion main()
return 0;
}
helloworld.js
var zahl = 23;
console.log(zahl);
zahl = 23.15;
console.log(zahl);
zahl = "eine Zeichenkette"
console.log(zahl);
zahl = 23;
console.loggg(zahl);
zahl = 23 + 1;
console.log(zahl);
zahl = 23 + '1';
console.log(zahl);
// Js ist eine dynamisch typisierte Programmiersprache
// JS ist eine interpretierte Programmiersprache
->