diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..9e6febf --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/clang", + "cStandard": "c17", + "cppStandard": "c++14", + "intelliSenseMode": "linux-clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 2369810..3d0fbfb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,8 +17,55 @@ "files.autoSave": "afterDelay", "screencastMode.onlyKeyboardShortcuts": true, "terminal.integrated.fontSize": 18, - "workbench.activityBar.visible": true, "workbench.colorTheme": "Visual Studio Dark", "workbench.fontAliasing": "antialiased", - "workbench.statusBar.visible": true -} + "workbench.statusBar.visible": true, + "files.associations": { + "limits": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "new": "cpp", + "ostream": "cpp", + "ranges": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 09db09d..3052afc 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -17,10 +17,30 @@ "problemMatcher": [ "$gcc" ], + "group": "build" + }, + { + "type": "cppbuild", + "label": "C/C++: g++ Aktive Datei kompilieren", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], "group": { "kind": "build", "isDefault": true - } - }, + }, + "detail": "Vom Debugger generierte Aufgabe." + } ] } \ No newline at end of file diff --git a/loesungen/04_04/main_uebung_2.cpp b/loesungen/04_04/main_uebung_2.cpp index 6a90fbc..fa26c75 100644 --- a/loesungen/04_04/main_uebung_2.cpp +++ b/loesungen/04_04/main_uebung_2.cpp @@ -5,7 +5,7 @@ float berechnung(float parameter_1, float parameter_2) { float erhoeter_param = parameter_2 + 2; - float resultat = parameter_1 * parameter_2; + float resultat = parameter_1 * erhoeter_param; return resultat; } diff --git a/src/main b/src/main new file mode 100755 index 0000000..57fdcd7 Binary files /dev/null and b/src/main differ diff --git a/src/main_02_Variablen_und_Basistypen.cpp b/src/main_02_Variablen_und_Basistypen.cpp new file mode 100644 index 0000000..dd03c68 --- /dev/null +++ b/src/main_02_Variablen_und_Basistypen.cpp @@ -0,0 +1,58 @@ +#include +#include + +int main() +{ + // Ich bin eine Notiz. + std::cout << "Hallo, mein Name ist Chris." << std::endl; + int imin = std::numeric_limits::min(); // minimum value + int imax = std::numeric_limits::max(); + + std::cout << "Min int" << imin << std::endl; + std::cout << "Max int" << imax << std::endl; + + int fmin = std::numeric_limits::min(); // minimum value + int fmax = std::numeric_limits::max(); + + std::cout << "Min float" << fmin << std::endl; + std::cout << "Max float" << fmax << std::endl; + + int meine_erste_int_variable = 4; + int meine_zweite_int_variable = 2; + int mein_int_ergebnis = meine_erste_int_variable + meine_zweite_int_variable; + + std::cout << "Int Ergebnis: " << mein_int_ergebnis << std::endl; + + float meine_erste_float_variable = 4.8; + float meine_zweite_float_variable = -2.9; + float mein_float_ergebnis = meine_erste_float_variable + meine_zweite_float_variable; + + std::cout << "Float Ergebnis: " << mein_float_ergebnis << std::endl; + + double meine_erste_double_variable = 4.8; + double meine_zweite_double_variable = -2.9; + double mein_double_ergebnis = meine_erste_double_variable + meine_zweite_double_variable; + + std::cout << "Double Ergebnis: " << mein_double_ergebnis << std::endl; + + bool wahre_variable = true; + bool falsche_variable = false; + + std::cout << "Wahre Variable: " << wahre_variable << std::endl; + std::cout << "Falsche Variable: " << falsche_variable << std::endl; + + char mein_zeichen = 'x'; + + std::cout << "Meine Char Variable: " << mein_zeichen << std::endl; + + int mein_array [7] = {}; + + std::cout << "Mein Array an Index 3: " << mein_array[3] << std::endl; + + mein_array[4] = -9; + + std::cout << "Mein Array an Index 3: " << mein_array[3] << std::endl; + std::cout << "Mein Array an Index 4: " << mein_array[4] << std::endl; + + return 0; +} \ No newline at end of file diff --git a/src/main_03_07 b/src/main_03_07 new file mode 100755 index 0000000..a553cb2 Binary files /dev/null and b/src/main_03_07 differ diff --git a/src/main_03_07.cpp b/src/main_03_07.cpp new file mode 100644 index 0000000..f6f1858 --- /dev/null +++ b/src/main_03_07.cpp @@ -0,0 +1,28 @@ +#include + +int main() +{ + int array[5] = {}; + + for(int index = 0; index < 5; index++){ + array[index] = 3 * index; + if (array[index] >= 6) + { + std::cout << "Array[" << index << "] = " << array[index] << std::endl; + } + } + + int variable_1 = 10; + int variable_2 = 2; + + while (variable_1 >= variable_2) + { + variable_1 += 1; + variable_2 += 2; + if (variable_2 > variable_1) + { + std::cout << "Variable 1: " << variable_1 << "; Variable 2: " << variable_2 << std::endl; + } + } + return 0; + } diff --git a/src/main_04_04 b/src/main_04_04 new file mode 100755 index 0000000..737b5a8 Binary files /dev/null and b/src/main_04_04 differ diff --git a/src/main_04_04.cpp b/src/main_04_04.cpp new file mode 100644 index 0000000..02cdc5a --- /dev/null +++ b/src/main_04_04.cpp @@ -0,0 +1,49 @@ +#include + +void ausgabeMeinArray(int* array, int array_size) +{ + for (int index = 0; index < array_size; index++) + { + std::cout << "Array[" << index << "]=" << array[index] << std::endl; + } +} + +float multiply_floaty_plus2(float par1, float par2){ + float product=0; + product=par1*(par2+2); + return product; +} + +bool test_3_var_smaller(int var1, int var2, int var3) +{ + bool result; + if((var1 + +std::string mapping(int choosen) +{ + std::string word = ""; + switch (choosen) + { + case 1: + word="Schere"; + break; + case 2: + word="Stein"; + break; + case 3: + word="Papier"; + break; + } + return word; +} + +int main() +{ + bool weiterspielen = true; + + while (weiterspielen==true) + { + + int comp=0; + int usr=0; + std::string winner={}; + + + + while((usr<1)||(usr>3)) + { + std::cout << "Wählen Sie zwischen:\n Schere(1)\n Stein(2)\n Papier(3):" << std::endl; + std::cin>> usr; + + if ((usr < 1) + || (usr > 3)) + std::cout << "Falsche Eingabe!"<< std::endl; + } + + comp = rand() %3 + 1; + + /* usr comp result + 1 1 equal + 1 2 comp + 1 3 usr + 2 1 usr + 2 2 equal + 2 3 comp + 3 1 comp + 3 2 usr + 3 3 equal + */ + if(usr==comp) + { + winner="Niemand (Unentschieden)"; + }else if((usr == 1 && comp == 3)|| + (usr == 2 && comp == 1)|| + (usr == 3 && comp == 2)){ + winner="der Spieler"; + } + else{ + winner="der Computer"; + } + + std::cout<< "Der Spieler hat " << mapping(usr) << " ausgewählt." << std::endl; + std::cout << "Der Computer hat " << mapping(comp) << " ausgewählt." << std::endl; + std::cout << "Es gewinnt " << winner << std::endl; + + char choice=NULL; + weiterspielen = NULL; + std::cout << "Möchten Sie noch einmal spielen? (Drücken Sie 'J' für Ja oder 'N' für Nein): "; + while (choice != 'N' && choice != 'n' && choice != 'J' && choice != 'j') + { + std::cin >> choice; + + if (choice == 'N' || choice == 'n') + { + std::cout << "Das Spiel wird beendet." << std::endl; + weiterspielen=false; + } + else if(choice == 'J' || choice == 'j') + { + + std::cout << "Sie spielen noch einmal" << std::endl; + weiterspielen=true; + // ... + } + else{ + weiterspielen=NULL; + } + } + } + return 0; +} \ No newline at end of file diff --git a/src/main_06_05 b/src/main_06_05 new file mode 100755 index 0000000..00d0568 Binary files /dev/null and b/src/main_06_05 differ diff --git a/src/main_06_05.cpp b/src/main_06_05.cpp new file mode 100644 index 0000000..6d33a80 --- /dev/null +++ b/src/main_06_05.cpp @@ -0,0 +1,104 @@ +#include + +char zeichenWandler(int in) +{ + char out=' '; + switch (in) + { + case 1: + out='X'; + break; + case 2: + out='O'; + break; + default: + out=' '; + break; + } + return out; +} + +void ausgabeSpielfeld(int array[]) +{ + std::cout << zeichenWandler(array[0]) << " | " << zeichenWandler(array[1]) << " | " << zeichenWandler(array[2]) << std::endl; + std::cout << "---------" << std::endl; + std::cout << zeichenWandler(array[3]) << " | " << zeichenWandler(array[4]) << " | " << zeichenWandler(array[5]) << std::endl; + std::cout << "---------" << std::endl; + std::cout << zeichenWandler(array[6]) << " | " << zeichenWandler(array[7]) << " | " << zeichenWandler(array[8]) << std::endl; +} + +bool gameOver(int array[],int spieler) +{ + if ((array[0] == spieler && array[1] == spieler && array[2] == spieler) || + (array[3] == spieler && array[4] == spieler && array[5] == spieler) || + (array[6] == spieler && array[7] == spieler && array[8] == spieler) || + (array[0] == spieler && array[3] == spieler && array[6] == spieler) || + (array[1] == spieler && array[4] == spieler && array[7] == spieler) || + (array[2] == spieler && array[5] == spieler && array[8] == spieler) || + (array[0] == spieler && array[4] == spieler && array[8] == spieler) || + (array[2] == spieler && array[4] == spieler && array[6] == spieler)){ + std::cout << "Spieler " << spieler << " hat gewonnen!" << std::endl; + std::cout << "Game Over!" << std::endl; + return true; + }else{ + return false; + } +} + +void eingabeprüfung(int* array, int spieler) +{ + int feld; + bool eingabe_gueltig=false; + while(eingabe_gueltig==false) + { + std::cout << "Spieler " << spieler << ", bitte wähle ein freies Feld (0-8): "; + std::cin >> feld; + + if (array[feld] != 1 && array[feld] != 2 && feld>=0 && feld<=8) + { + // Eingabe gültig + array[feld]=spieler; + eingabe_gueltig=true; + }else{ + eingabe_gueltig = false; + std::cout << "Eingabe war nicht gültig! Feld ist bereits besetzt oder Eingabe außerhalb des Spielfeldes! " << std::endl; + } + } + + +} + +int togglespieler(int spieler){ + switch (spieler) + { + case 1: + return 2; + break; + case 2: + return 1; + break; + default: + return 1; + break; + } + +} + +int main() +{ + int array[9]={0,0,0,0,0,0,0,0,0}; + + bool gameover=false; + + int spieler=1; + + while (gameover==false) + { + eingabeprüfung(array,spieler); + ausgabeSpielfeld(array); + gameover=gameOver(array,spieler); + spieler = togglespieler(spieler); + } + + return 0; +} \ No newline at end of file