From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog1/Prakt5/index.htm | 414 ++++++++++++++++++++++++++ Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp | 124 ++++++++ Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp | 100 +++++++ Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw | 29 ++ Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp | 178 +++++++++++ Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp | 100 +++++++ Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw | 29 ++ Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp | 128 ++++++++ Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp | 100 +++++++ Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw | 29 ++ Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp | 438 ++++++++++++++++++++++++++++ Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp | 100 +++++++ Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw | 29 ++ 13 files changed, 1798 insertions(+) create mode 100644 Bachelor/Prog1/Prakt5/index.htm create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp create mode 100644 Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw (limited to 'Bachelor/Prog1/Prakt5') diff --git a/Bachelor/Prog1/Prakt5/index.htm b/Bachelor/Prog1/Prakt5/index.htm new file mode 100644 index 0000000..a96b249 --- /dev/null +++ b/Bachelor/Prog1/Prakt5/index.htm @@ -0,0 +1,414 @@ + + + + + + +Praktikum 5 + + + + +  + + + + + + + + + + +
 
FH Darmstadt  +
FB Informatik  +
Prof.Dr. H.P.Weber
+
Programmieren I  +
Praktikum
+
+
5
+
+ +
+ + + + +
Ziel: + Sie sollen die Verwendung von Zeigern, Arrays, Funktionen und Rekursion üben + sowie das Sortierverfahren Quicksort und einen Backtrackingalgorithmus + realisieren.  +
+ +
+ + + + +
+

+1    Verbesserter Misch- und Gebe-Algorithmus

+
    +
  • +Im Kartenmisch- und -gebeprogramm der Vorlesung wurde ein ineffizienter +Mischalgorithmus verwendet, bei dem es nicht garantiert war, dass er in einer +bestimmten Zeit abgeschlossen ist. Dieser Algorithmus soll verbessert werden.
  • + +
  • +Initialisieren Sie das deck Array wie folgt: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     0123456789101112
    012345678910111213
    114151617181920212223242526
    227282930313233343536373839
    340414243444546474849505152
    +
    +
  • + +
  • +Modifizieren Sie die shuffle Funktion so, +dass sie Zeile für Zeile und Spalte für Spalte durch das Array läuft und +jedes Element einmal bearbeitet: Jedes Element soll mit einem zufällig +ausgewählten Element des Arrays vertauscht werden. Die shuffle +Funktion soll so oft ausgeführt werden, bis das Blatt gut gemischt ist. +Überprüfen Sie dies durch Ausdrucken des Arrays.
  • + +
  • +Optimieren Sie zusätzlich auch den Gebe-Algorithmus in der deal +Funktion: Sobald eine Karte ausgegeben ist, soll nicht weiter nach der Nummer +dieser Karte gesucht werden, sondern das Programm soll sofort mit dem Geben der +nächsten Karte fortfahren.
  • + +
+ +
+ +
+ + + + +
+

+2    Sortierverfahren 'Quicksort'

+ +
    +
  • +Das rekursive Sortierverfahren 'Quicksort' besteht aus zwei Schritten: +
      +
    • + +Partitionierungsschritt: Nimm das erste Element des unsortierten Arrays +('Partitionierungselement') und bestimme seine endgültige Position im sortierten Array (d.h. alle Werte +links des Elementes sind kleiner und alle Werte rechts des Elementes sind +größer). Ergebnis dieses Schrittes ist ein Element an der richtigen Position +und zwei unsortierte Teilarrays. +
    • + +
    • +Rekursionschritt: Führe den Partitionierungsschritt für jedes +unsortierte Teilarray aus, solange, bis die Teilarrays nur noch aus einem +Element bestehen.
    • + +
    +
  • Die Bestimmung der endgültigen Position des Partitionierungselementes im + Partitionierungsschritt läuft folgendermaßen ab: +
      +
    • + +Beginnend beim letzten Element des Arrays wird das erste Element gesucht, das +kleiner als das Partitionierungselement ist und dieses wird mit dem +Partitionierungselement vertauscht: + + + + + + + + + + + + + +
      3726489810126845
      +führt also zu + + + + + + + + + + + + + +
      1226489810376845
      + +
    • +
    • +Nun wird von links aus (aber ohne das bereits behandelte Element 12) das erste +Element gesucht, das größer als das Partitionierungselement ist und dieses wird mit dem +Partitionierungselement vertauscht: + + + + + + + + + + + + + +
      1226437810896845
      +
    • +
    • + +Wieder von rechts, aber beginnend mit dem Element vor dem gerade behandelten +Element 89 wird das erste Element gesucht, das +kleiner als das Partitionierungselement ist und dieses wird mit dem +Partitionierungselement vertauscht: + + + + + + + + + + + + + +
      1226410837896845
      +
    • +
    • + +Wieder von links, aber beginnend mit dem Element hinter dem gerade behandelten +Element 10 wird das erste +Element gesucht, das größer als das Partitionierungselement ist. Es wird keins +mehr gefunden, so dass beim Vergleich von 37 mit sich selbst die +endgültige Position von 37 fest steht. + +
    +
  • Schreiben Sie eine rekursive Funktion quickSort, + die ein Array mit 100 zufälligen int-Werten (aus dem Bereich von 1 bis 1000) sortiert. Die Funktion soll als Argumente + das int-Array, einen Anfangsindex und einen Endindex erhalten. Eine Funktion partition + soll von quickSort zur Durchführung + des + Partitionierungsschritts aufgerufen werden.
  • +
+
+ +
+ + + + +
+

+3    Labyrinth (Backtracking)

+
    + +
  • +Folgendes Gitter aus Kreuzen(#), +Leerstellen( ) und Punkten(.) stellt ein Labyrinth in Form eines +doppelt indizierten Arrays dar: +
    +
    +..............
    +.############.
    +.#   #      #.
    +.  # # #### #.
    +.### #    # #.
    +.     ### #  .
    +.#### # # # #.
    +.#  # # # # #.
    +.## # # # # #.
    +.#        # #.
    +.###### ### #.
    +.#      #   #.
    +.######## ###.
    +..............
    +
    +
    +In dem doppelt indizierten Array repräsentieren die Kreuze die Mauern des +Labyrinths, die Leerstellen die möglichen Wege durch das Labyrinth und die Punkte +die Welt außerhalb des Labyrinths. Man kann also +nur zu einem Ort im Array 'laufen', der eine Leerstelle enthält und man hat +einen Ausgang gefunden, sobald man auf einen Punkt trifft. +
  • + +
  • +Schreiben Sie eine rekursive Funktion mazeTraverse +zum Durchlaufen des Labyrinths. Die Funktion soll als Argumente ein 14mal14 +char-Array +für das Labyrinth und außerdem die Koordinaten für einen Ort innerhalb des +Labyrinths (beim ersten Aufruf der Eingang) übernehmen. Während +mazeTraverse versucht, den Ausgang aus dem Labyrinth zu finden, soll +jede Leerstelle auf dem gelaufenen Weg durch ein x +ersetzt werden. Die Funktion soll das Labyrinth bei jedem Schritt ausgeben, so +dass der Nutzer des Programms zusehen kann, wie das Labyrinth durchlaufen wird. +Die Anzahl der gefundenen Ausgänge soll mitgezählt werden und jeder Ausgang +mit seiner laufenden Nummer gekennzeichnet werden.
  • + +
  • +Hinweis: Von einem gegebenen Ort im Labyrinth kann man versuchen nach rechts, +unten, links oder oben weiterzulaufen. Jeder dieser Versuche wird durch einen +rekursiven Aufruf von +mazeTraverse realisiert. Ist ein Weiterlaufen möglich, folgt der +nächste rekursive Aufruf. Wird hingegen ein Ort erreicht, von dem aus kein +Weiterlaufen mehr möglich ist, wird eine Rekursionsstufe zurückgenommen. Dies +hat den Effekt, dass von einem früher erreichten Ort eine neue Möglichkeit des +Weiterkommens ausprobiert wird. Einen solchen Algorithmus bezeichnet man als +'Backtracking'.
  • + +
+ +
+ +
+ + + + + +
+

4    Geben und Beurteilen eines Pokerblatts + (fakultativ) +

+ +
    +
  • +Modifizieren Sie das Kartenmisch- und -gebeprogramm der Vorlesung, so dass ein +Pokerblatt mit fünf Karten gegeben wird. Schreiben Sie zusätzliche Funktionen, +die folgendes leisten: +
      + +
    • Bestimmen, ob das Blatt 'One pair' (z.B. 2 Buben) enthält.
    • +
    • Bestimmen, ob das Blatt 'Two pair' enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Three-of-a-kind' (z.B. 3 Damen) enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Straight' (5 direkt aufeinander folgende Karten +beliebiger Farbe) +enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Flush' (5 Karten der gleichen Farbe) enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Full house' ('One pair' + 'Three of a kind') enthält. 
    • + +
    • +Bestimmen, ob das Blatt 'Four-of-a-kind' (z.B. 4 Asse) enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Straight flush' (5 direkt aufeinander folgende Karten +einer Farbe) +enthält.
    • + +
    • +Bestimmen, ob das Blatt 'Royal flush' (Zehn, Bube, Dame, König, Ass in einer +Farbe) +enthält.
    • +
    +
  • Wie oft erhalten Sie die angegebenen Pokerblätter von 'One pair' bis + 'Royal flush', wenn Sie 1000 Blätter geben lassen? Wie oft, wenn Sie eine + Million Blätter (oder mehr) geben lassen? Bestätigen Ihre Ergebnisse die + Tatsache, dass die angegebenen neun Blätter von oben nach unten als zunehmend + besser gewertet werden?
  • +
  • Anmerkung: Um realistischere Ergebnisse zu erhalten, können Sie die Aufgabe + auch in der folgenden Variante bearbeiten ('Seven-card stud'): Der Spieler + erhält sieben Karten, aus denen er sich sein Blatt mit fünf Karten + zusammenstellt.
  • +
+ + + \ No newline at end of file diff --git a/Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp b/Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp new file mode 100644 index 0000000..61644cc --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp @@ -0,0 +1,124 @@ +// Programmieren 1, Praktikum 5, Aufgabe 1 +// Sven Eisenhauer +// 16.12.2004 +// +// file: main.cpp +// +// purpose: Shuffle a standard deck of 52 cards and deal them +// + +#include + +using std::cin; +using std::cout; +using std::endl; +using std::left; +using std::right; + + +#include + +using std::setprecision; +using std::setw; + +// contains function prototypes for functions srand and rand +#include +#include + +const int maxColumns=13; +const int maxRows=4; +const int maxCards=52; + +// prototypes +void shuffle( int [][ maxColumns ] ); +void deal( const int [][ maxColumns ], const char *[], const char *[] ); + + + +int main() +{ + // initialize suit array + const char *suit[ 4 ] = + { "Hearts", "Diamonds", "Clubs", "Spades" }; + + // initialize face array + const char *face[ 13 ] = + { "Ace", "Deuce", "Three", "Four", + "Five", "Six", "Seven", "Eight", + "Nine", "Ten", "Jack", "Queen", "King" }; + + // initialize deck array + int deck[ maxRows ][ maxColumns ] = + { + { 1,2,3,4,5,6,7,8,9,10,11,12,13 }, + { 14,15,16,17,18,19,20,21,22,23,24,25,26 }, + { 27,28,29,30,31,32,33,34,35,36,37,38,39 }, + { 40,41,42,43,44,45,46,47,48,49,50,51,52 } + }; + + srand( time( 0 ) ); // seed random number generator + + shuffle( deck ); + deal( deck, face, suit ); + + return 0; // indicates successful termination + +} // end main + +// shuffle cards in deck +void shuffle( int wDeck[][ 13 ] ) +{ + int temp=0; + int randRow, + randCol; + + for (int column=0;column +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=prg1p5_1 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_1.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_1.mak" CFG="prg1p5_1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "prg1p5_1 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "prg1p5_1 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "prg1p5_1 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "prg1p5_1 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "prg1p5_1 - Win32 Release" +# Name "prg1p5_1 - Win32 Debug" +# Begin Group "Quellcodedateien" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Group +# Begin Group "Header-Dateien" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Ressourcendateien" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw b/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw new file mode 100644 index 0000000..08dce0d --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "prg1p5_1"=.\prg1p5_1.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp b/Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp new file mode 100644 index 0000000..5d5b74e --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp @@ -0,0 +1,178 @@ +// Programmieren 1, Praktikum 5, Aufgabe 2 +// Sven Eisenhauer +// 16.12.2004 +// +// file: main.cpp +// +// purpose: QuickSort algorithm +// + +#include + +using std::cin; +using std::cout; +using std::endl; + +#include + +using std::setprecision; +using std::setw; + +// contains function prototypes for functions srand and rand +#include + +#include + +// constant definitions +const int arraySize=100; // number of array elements +const int maxNum=1000; // max. Number in Array plus 1 +const int arrayStart=0; // first array element +const int arrayEnd=arraySize-1; // last array element + +// function prototypes +void quickSort(int [],int,int); +int partition(int [], int,int,int&); +void swapRight(int [], int &,int &, int &, int &, int &); +void swapLeft(int [], int&,int &, int&, int &, int &); + +int main() +{ + int array[arraySize]; + + // initialize random number generator + srand(time(0)); + + // generate array with random content + for (int i=0;i start) + // now sort lower part + quickSort(toSort,start,pos-1); + if (pos < end) + // and higher part + quickSort(toSort,pos+1,end); +}// end function quicksort + +int partition(int array[],int start, int end, int &pos) +{ + int loop=0; + int foundL,foundR; + int newStart=start; + int newEnd=end; + int nextStart=start; + + pos=start; + + do { + foundR=0; + foundL=0; + // decide whether to search from left or right + // 0: right, 1: left + if (0==(loop%2)) { + swapRight(array,newEnd,newStart,nextStart,pos,foundR); + // set newStart for the next call of a swap fct. + newStart=nextStart; + /*cout << endl << " right "<< loop << " "<< endl; + for (int j=0;j<=end;j++) + cout << setw(4) << array[j]; + cout << endl;*/ + } + else { + swapLeft(array,newEnd,newStart,nextStart,pos,foundL); + // set newStart for the next call of a swap fct. + newStart=nextStart; + /*cout << endl << " left "<< loop << " "<< endl; + for (int j=0;j<=end;j++) + cout << setw(4) << array[j]; + cout << endl;*/ + } + loop++; + } while (((1==foundL)||(1==foundR))); + + return 0; +}// end function partition + +void swapRight(int arr[], int &end,int &newStart,int &nextStart, int &pos, int &found) +{ + int i,temp; + // here we start to walk through array, from RIGHT!!! + i=end; + // newStart is the beginning of the area to check of the array + // when newStart==pos (which is the position of we element, which we order at the moment) + // this means: we are done here! + while((i>=newStart)&&(i!=pos)) { + // if we have found a smaller value, when searching from right + if (arr[i]<=arr[pos]) { + // swap the values + temp=arr[i]; + arr[i]=arr[pos]; + arr[pos]=temp; + // now set the next Start of search from left to one field right of + // the element, we currently searched and swapped + nextStart=newStart+1; + // in i is the actual position of the element which should be ordered + // we should not forget this and tell this the place, from where we were called + pos=i; + // YES!!! we found a smaller value by searching from right + found=1; + break; + } + i--; + } +}// end function swapRight + +void swapLeft(int arr[], int &end,int &newStart,int &nextStart, int &pos, int &found) +{ + int i,temp; + // here we start to walk through array, from LEFT!!! + i=newStart; + // newStart is the beginning of the area to check of the array + // when newStart==pos (which is the position of we element, which we order at the moment) + // this means: we are done here! + while((i<=end)&&(i!=pos)) { + // if we have found a bigger value, when searching from left + if (arr[i]>arr[pos]) { + // swap the values + temp=arr[i]; + arr[i]=arr[pos]; + arr[pos]=temp; + // now set the next Start of search from right to one field left of + // the element, we currently searched and swapped + nextStart=newStart-1; + // in i is the actual position of the element which should be ordered + // we should not forget this and tell this the place, from where we were called + pos=i; + // YES!!! we found a smaller value by searching from right + found=1; + break; + } + i++; + } +}// end function swapLeft \ No newline at end of file diff --git a/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp b/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp new file mode 100644 index 0000000..8d19b08 --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp @@ -0,0 +1,100 @@ +# Microsoft Developer Studio Project File - Name="prg1p5_2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=prg1p5_2 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_2.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_2.mak" CFG="prg1p5_2 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "prg1p5_2 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "prg1p5_2 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "prg1p5_2 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "prg1p5_2 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "prg1p5_2 - Win32 Release" +# Name "prg1p5_2 - Win32 Debug" +# Begin Group "Quellcodedateien" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Group +# Begin Group "Header-Dateien" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Ressourcendateien" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw b/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw new file mode 100644 index 0000000..b0380fc --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "prg1p5_2"=.\prg1p5_2.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp b/Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp new file mode 100644 index 0000000..b99a0ab --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp @@ -0,0 +1,128 @@ +// Programmieren 1, Praktikum 5, Aufgabe 3 +// Sven Eisenhauer +// 10.01.2005 +// +// file: main.cpp +// +// purpose: Find all exists of a given maze +// + +#include + +using std::cin; +using std::cout; +using std::endl; + +// contains function prototypes for functions srand and rand +#include + +// constant definitions +const int maxLines=14; +const int maxRows=14; +const int startRow=1; +const int startLine=3; + +//function prototypes +//void mazePrint(const char[][maxRows], const int); +void mazePrint(const char[][maxRows]); +void mazeTraverse(char [][maxRows],int,int,int&); + +int main () +{ + int exitCount=0; + + char maze[maxLines][maxRows] = + { + {'.','.','.','.','.','.','.','.','.','.','.','.','.','.'}, + {'.','#','#','#','#','#','#','#','#','#','#','#','#','.'}, + {'.','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ','#','.'}, + {'.',' ',' ','#',' ','#',' ','#','#','#','#',' ','#','.'}, + {'.','#','#','#',' ','#',' ',' ',' ',' ','#',' ','#','.'}, + {'.',' ',' ',' ',' ',' ','#','#','#',' ','#',' ',' ','.'}, + {'.','#','#','#','#',' ','#',' ','#',' ','#',' ','#','.'}, + {'.','#',' ',' ','#',' ','#',' ','#',' ','#',' ','#','.'}, + {'.','#','#',' ','#',' ','#',' ','#',' ','#',' ','#','.'}, + {'.','#',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','.'}, + {'.','#','#','#','#','#','#',' ','#','#','#',' ','#','.'}, + {'.','#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#','.'}, + {'.','#','#','#','#','#','#','#','#',' ','#','#','#','.'}, + {'.','.','.','.','.','.','.','.','.','.','.','.','.','.'} + }; + + mazeTraverse(maze,startRow,startLine,exitCount); + + cout << "\nNumber of Exits: " << exitCount << endl; + + return 0; +} + +void mazeTraverse(char laby[][maxRows],int x,int y,int &count) +{ + char temp=' '; + + if (x < maxLines && y < maxRows && x > 0 && y > 0) + { + + if (laby[y][x] == ' ') + laby[y][x] = 'x'; + + if (laby[y+1][x] == '.') + { + count++; + itoa(count,&temp,10); + laby[y+1][x]=temp; + } + if (laby[y][x+1] == '.') + { + count++; + itoa(count,&temp,10); + laby[y][x+1]=temp; + } + if (laby[y-1][x] == '.') + { + count++; + itoa(count,&temp,10); + laby[y-1][x]=temp; + } + if (laby[y][x-1] == '.') + { + count++; + itoa(count,&temp,10); + laby[y][x-1]=temp; + } + + //mazePrint(laby,count); + mazePrint(laby); + + if (laby[y+1][x] == ' ') + mazeTraverse(laby,x,y+1,count); + + + if (laby[y][x+1] == ' ') + mazeTraverse(laby,x+1,y,count); + + + if (laby[y-1][x] == ' ') + mazeTraverse(laby,x,y-1,count); + + + if (laby[y][x-1] == ' ') + mazeTraverse(laby,x-1,y,count); + + } + +} + +void mazePrint(const char array[][maxRows]) +//void mazePrint(const char array[][maxRows],const int count) +{ + system ("cls"); + for (int i=0;i +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=prg1p5_3 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_3.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_3.mak" CFG="prg1p5_3 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "prg1p5_3 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "prg1p5_3 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "prg1p5_3 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "prg1p5_3 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "prg1p5_3 - Win32 Release" +# Name "prg1p5_3 - Win32 Debug" +# Begin Group "Quellcodedateien" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Group +# Begin Group "Header-Dateien" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Ressourcendateien" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw b/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw new file mode 100644 index 0000000..5abecf4 --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "prg1p5_3"=.\prg1p5_3.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp b/Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp new file mode 100644 index 0000000..260ff9c --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp @@ -0,0 +1,438 @@ +// Programmieren 1, Praktikum 5, Aufgabe 4 +// Sven Eisenhauer +// 10.01.2005 +// +// file: main.cpp +// +// purpose: Shuffle a standard deck of 52 cards, deal a poker game and analyse the cards of the player +// + +#include + +using std::cin; +using std::cout; +using std::endl; +using std::left; +using std::right; + + +#include + +using std::setprecision; +using std::setw; + +// contains function prototypes for functions srand and rand +#include +#include + +const int maxColumns=13; +const int maxRows=4; +const int maxCards=52; +const int cards=7; +const int maxResults=10; +const int nrGames=1000000; + +struct hand { + const char *farbe; + const char *wert; +}; + + +// prototypes +void shuffle( int [][ maxColumns ] ); +void deal( const int [][ maxColumns ], const char *[], const char *[], hand[] ); +void printHand(const hand []); +void analyseCards(const hand[], const char *[], const char *[],int[],const char *[]); +void printResults(const int[],const char *[]); + +int onePair(const hand[], const char *[]); +int twoPairs(const hand[], const char *[]); +int threeOfAKind(const hand[], const char *[]); +int straight(const hand[], const char *[]); +int flush(const hand[], const char *[]); +int fullHouse(const hand[], const char *[]); +int fourOfAKind(const hand[], const char *[]); +int straightFlush(const hand[], const char *[], const char *[]); +int royalFlush(const hand[], const char *[], const char *[]); + +int main() +{ + hand blatt[cards]; + + int erg[maxResults]={0}; + + const char *results[maxResults] = + { "Nothing","One Pair","Two Pairs","Three of a kind", + "Straight","Flush","Full house","Four of a kind", + "Straight Flush","Royal Flush" }; + + // initialize suit array + const char *suit[ 4 ] = + { "Hearts", "Diamonds", "Clubs", "Spades" }; + + // initialize face array + const char *face[ 13 ] = + { "Ace", "Deuce", "Three", "Four", + "Five", "Six", "Seven", "Eight", + "Nine", "Ten", "Jack", "Queen", "King" }; + + // initialize deck array + int deck[ maxRows ][ maxColumns ] = + { + { 1,2,3,4,5,6,7,8,9,10,11,12,13 }, + { 14,15,16,17,18,19,20,21,22,23,24,25,26 }, + { 27,28,29,30,31,32,33,34,35,36,37,38,39 }, + { 40,41,42,43,44,45,46,47,48,49,50,51,52 } + }; + + srand( time( 0 ) ); // seed random number generator + + for (int n=1;n<=nrGames;n++) + { + shuffle( deck ); + deal( deck, face, suit, blatt ); + //printHand(blatt); + analyseCards(blatt,face,suit,erg,results); + } + printResults(erg,results); + + return 0; // indicates successful termination + +} // end main + +void printHand(const hand blatt[]) +{ + cout << endl << endl << "Player's cards:" << endl; + for (int i=0;i +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=prg1p5_4 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_4.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "prg1p5_4.mak" CFG="prg1p5_4 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "prg1p5_4 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "prg1p5_4 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "prg1p5_4 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "prg1p5_4 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "prg1p5_4 - Win32 Release" +# Name "prg1p5_4 - Win32 Debug" +# Begin Group "Quellcodedateien" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Group +# Begin Group "Header-Dateien" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Ressourcendateien" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw b/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw new file mode 100644 index 0000000..a01539b --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "prg1p5_4"=.\prg1p5_4.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + -- cgit v1.2.3