diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/Prog1/Prakt5 | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Bachelor/Prog1/Prakt5')
| -rw-r--r-- | Bachelor/Prog1/Prakt5/index.htm | 414 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_1/main.cpp | 124 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp | 100 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsw | 29 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_2/main.cpp | 178 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsp | 100 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_2/prg1p5_2.dsw | 29 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_3/main.cpp | 128 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp | 100 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsw | 29 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_4/main.cpp | 438 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp | 100 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsw | 29 |
13 files changed, 1798 insertions, 0 deletions
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 @@ +<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>Praktikum 5</title>
+</head>
+
+<body>
+
+
+<table BORDER CELLSPACING=0 WIDTH="100%" >
+<caption> </caption>
+
+<tr>
+<td WIDTH="25%" BGCOLOR="#EFEFDE">FH Darmstadt
+<br>FB Informatik
+<br>Prof.Dr. H.P.Weber</td>
+
+<td>
+<center><font size="+3">Programmieren I </font>
+<br><font size=+3>Praktikum</font></center>
+</td>
+
+<td WIDTH="25%" BGCOLOR="#EFEFDE">
+<center><font size=+4>5</font></center>
+</td>
+</tr>
+</table>
+
+<br>
+<table border WIDTH="100%" >
+<tr VALIGN=TOP>
+<td>Ziel:</td><td>
+ Sie sollen die Verwendung von Zeigern, Arrays, Funktionen und Rekursion üben
+ sowie das Sortierverfahren Quicksort und einen Backtrackingalgorithmus
+ realisieren.
+</td>
+</tr>
+</table>
+
+<br>
+<table BORDER CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+<b>1 Verbesserter Misch- und Gebe-Algorithmus</b></h3>
+<ul>
+<li>
+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.</li>
+
+<li>
+Initialisieren Sie das <font face="Courier New"><b> deck</b></font> Array wie folgt:
+<table border="1">
+ <tr>
+ <td> </td>
+ <td><i>0</i></td>
+ <td><i>1</i></td>
+ <td><i>2</i></td>
+ <td><i>3</i></td>
+ <td><i>4</i></td>
+ <td><i>5</i></td>
+ <td><i>6</i></td>
+ <td><i>7</i></td>
+ <td><i>8</i></td>
+ <td><i>9</i></td>
+ <td><i>10</i></td>
+ <td><i>11</i></td>
+ <td><i>12</i></td>
+ </tr>
+ <tr>
+ <td><i>0</i></td>
+ <td><b>1</b></td>
+ <td><b>2</b></td>
+ <td><b>3</b></td>
+ <td><b>4</b></td>
+ <td><b>5</b></td>
+ <td><b>6</b></td>
+ <td><b>7</b></td>
+ <td><b>8</b></td>
+ <td><b>9</b></td>
+ <td><b>10</b></td>
+ <td><b>11</b></td>
+ <td><b>12</b></td>
+ <td><b>13</b></td>
+ </tr>
+ <tr>
+ <td><i>1</i></td>
+ <td><b>14</b></td>
+ <td><b>15</b></td>
+ <td><b>16</b></td>
+ <td><b>17</b></td>
+ <td><b>18</b></td>
+ <td><b>19</b></td>
+ <td><b>20</b></td>
+ <td><b>21</b></td>
+ <td><b>22</b></td>
+ <td><b>23</b></td>
+ <td><b>24</b></td>
+ <td><b>25</b></td>
+ <td><b>26</b></td>
+ </tr>
+ <tr>
+ <td><i>2</i></td>
+ <td><b>27</b></td>
+ <td><b>28</b></td>
+ <td><b>29</b></td>
+ <td><b>30</b></td>
+ <td><b>31</b></td>
+ <td><b>32</b></td>
+ <td><b>33</b></td>
+ <td><b>34</b></td>
+ <td><b>35</b></td>
+ <td><b>36</b></td>
+ <td><b>37</b></td>
+ <td><b>38</b></td>
+ <td><b>39</b></td>
+ </tr>
+ <tr>
+ <td><i>3</i></td>
+ <td><b>40</b></td>
+ <td><b>41</b></td>
+ <td><b>42</b></td>
+ <td><b>43</b></td>
+ <td><b>44</b></td>
+ <td><b>45</b></td>
+ <td><b>46</b></td>
+ <td><b>47</b></td>
+ <td><b>48</b></td>
+ <td><b>49</b></td>
+ <td><b>50</b></td>
+ <td><b>51</b></td>
+ <td><b>52</b></td>
+ </tr>
+</table>
+<br>
+</li>
+
+<li>
+Modifizieren Sie die <font face="Courier New"><b>shuffle</b></font> 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 <font face="Courier New"><b>shuffle</b></font>
+Funktion soll so oft ausgeführt werden, bis das Blatt gut gemischt ist.
+Überprüfen Sie dies durch Ausdrucken des Arrays.</li>
+
+<li>
+Optimieren Sie zusätzlich auch den Gebe-Algorithmus in der <font face="Courier New"><b>deal</b></font>
+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.</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+
+<br>
+<table BORDER="1" CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+<b>2 Sortierverfahren 'Quicksort'</b></h3>
+
+<ul>
+<li>
+Das rekursive Sortierverfahren 'Quicksort' besteht aus zwei Schritten:
+<ul>
+<li>
+<b>
+Partitionierungsschritt:</b> 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.
+</li>
+
+<li>
+<b>Rekursionschritt:</b> Führe den Partitionierungsschritt für jedes
+unsortierte Teilarray aus, solange, bis die Teilarrays nur noch aus einem
+Element bestehen.</li>
+
+</ul>
+<li>Die Bestimmung der endgültigen Position des Partitionierungselementes im
+ Partitionierungsschritt läuft folgendermaßen ab:
+<ul>
+<li>
+
+Beginnend beim letzten Element des Arrays wird das erste Element gesucht, das
+kleiner als das Partitionierungselement ist und dieses wird mit dem
+Partitionierungselement vertauscht:
+<table border="1">
+ <tr>
+ <td><b>37</b></td>
+ <td>2</td>
+ <td>6</td>
+ <td>4</td>
+ <td>89</td>
+ <td>8</td>
+ <td>10</td>
+ <td><i>12</i></td>
+ <td>68</td>
+ <td>45</td>
+ </tr>
+</table>
+führt also zu
+<table border="1">
+ <tr>
+ <td><i>12</i></td>
+ <td>2</td>
+ <td>6</td>
+ <td>4</td>
+ <td>89</td>
+ <td>8</td>
+ <td>10</td>
+ <td><b>37</b></td>
+ <td>68</td>
+ <td>45</td>
+ </tr>
+</table>
+
+</li>
+<li>
+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:
+<table border="1">
+ <tr>
+ <td>12</td>
+ <td>2</td>
+ <td>6</td>
+ <td>4</td>
+ <td><b>37</b></td>
+ <td>8</td>
+ <td>10</td>
+ <td><i>89</i></td>
+ <td>68</td>
+ <td>45</td>
+ </tr>
+</table>
+</li>
+<li>
+
+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:
+<table border="1">
+ <tr>
+ <td>12</td>
+ <td>2</td>
+ <td>6</td>
+ <td>4</td>
+ <td><i>10</i></td>
+ <td>8</td>
+ <td><b>37</b></td>
+ <td><i>89</i></td>
+ <td>68</td>
+ <td>45</td>
+ </tr>
+</table>
+</li>
+<li>
+
+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 <b>37</b> mit sich selbst die
+endgültige Position von <b>37</b> fest steht.
+
+</ul>
+<li>Schreiben Sie eine rekursive Funktion <font face="Courier New"><b>quickSort</b></font>,
+ 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 <font face="Courier New"><b>partition</b></font>
+ soll von <b><font face="Courier New">quickSort</font> </b>zur Durchführung
+ des
+ Partitionierungsschritts aufgerufen werden.</li>
+</ul>
+</td>
+</tr>
+</table>
+
+<br>
+<table BORDER CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+3<b> Labyrinth (Backtracking)</b></h3>
+<ul>
+
+<li>
+Folgendes Gitter aus Kreuzen(<font face="Courier New"><b>#</b></font>),
+Leerstellen(<font face="Courier New"><b> </b></font>) und Punkten(<font face="Courier New"><b>.</b></font>) stellt ein Labyrinth in Form eines
+doppelt indizierten Arrays dar:
+<br>
+<br>
+<font face="Courier New"><b>..............<br>
+.############.<br>
+.# # #.<br>
+. # # #### #.<br>
+.### # # #.<br>
+. ### # .<br>
+.#### # # # #.<br>
+.# # # # # #.<br>
+.## # # # # #.<br>
+.# # #.<br>
+.###### ### #.<br>
+.# # #.<br>
+.######## ###.<br>
+..............</b></font>
+<br>
+<br>
+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.
+</li>
+
+<li>
+Schreiben Sie eine rekursive Funktion <font face="Courier New"><b>mazeTraverse</b></font>
+zum Durchlaufen des Labyrinths. Die Funktion soll als Argumente ein 14mal14 <b>
+<font face="Courier New">ch</font></b><font face="Courier New"><b>ar</b></font>-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 <font face="Courier New"><b>
+mazeTraverse</b></font> versucht, den Ausgang aus dem Labyrinth zu finden, soll
+jede Leerstelle auf dem gelaufenen Weg durch ein <font face="Courier New"><b>x</b></font>
+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.</li>
+
+<li>
+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 <font face="Courier New"><b>
+mazeTraverse</b></font> 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'.</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+
+<br>
+
+<table BORDER CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>4<b> Geben und Beurteilen eines Pokerblatts </b>
+ <b>(fakultativ)</b>
+</h3>
+
+<ul>
+<li>
+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:
+<ul>
+
+<li>Bestimmen, ob das Blatt 'One pair' (z.B. 2 Buben) enthält.</li>
+<li>Bestimmen, ob das Blatt 'Two pair' enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Three-of-a-kind' (z.B. 3 Damen) enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Straight' (5 direkt aufeinander folgende Karten
+beliebiger Farbe)
+enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Flush' (5 Karten der gleichen Farbe) enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Full house' ('One pair' + 'Three of a kind') enthält. </li>
+
+<li>
+Bestimmen, ob das Blatt 'Four-of-a-kind' (z.B. 4 Asse) enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Straight flush' (5 direkt aufeinander folgende Karten
+einer Farbe)
+enthält.</li>
+
+<li>
+Bestimmen, ob das Blatt 'Royal flush' (Zehn, Bube, Dame, König, Ass in einer
+Farbe)
+enthält.</li>
+</ul>
+<li>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?</li>
+<li>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.</li>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
\ 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 <iostream>
+
+using std::cin;
+using std::cout;
+using std::endl;
+using std::left;
+using std::right;
+
+
+#include <iomanip>
+
+using std::setprecision;
+using std::setw;
+
+// contains function prototypes for functions srand and rand
+#include <cstdlib>
+#include <ctime>
+
+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<maxColumns;column++) {
+ for (int row=0;row<maxRows;row++) {
+ randCol=rand()%maxColumns;
+ randRow=rand()%maxRows;
+ temp=wDeck[row][column];
+ wDeck[row][column]=wDeck[randRow][randCol];
+ wDeck[randRow][randCol]=temp;
+ }
+ }
+ for (int row=0;row<maxRows;row++) {
+ for (column=0;column<maxColumns;column++) {
+ cout << setw(4) << wDeck[row][column];
+ }
+ cout<<endl;
+ }
+
+
+} // end function shuffle
+
+// deal cards in deck
+void deal( const int wDeck[][ 13 ], const char *wFace[],
+ const char *wSuit[] )
+{
+ enum found {FALSE,TRUE};
+ int row,column;
+ found cardFound=FALSE;
+ // for each of the 52 cards
+ for ( int card = 1; card <= maxCards; card++ ) {
+ cardFound=FALSE;
+ row=0;
+ while ((row<maxRows)&&cardFound==FALSE)
+ {
+ column=0;
+ while((column<maxColumns)&&cardFound==FALSE)
+ {
+ // if slot contains current card, display card
+ if ( wDeck[ row ][ column ] == card ) {
+ cout << setw( 5 ) << right << wFace[ column ]
+ << " of " << setw( 8 ) << left
+ << wSuit[ row ]
+ << ( card % 2 == 0 ? '\n' : '\t' );
+ cardFound=TRUE;
+ }
+ column++;
+
+ } // end while
+ row++;
+ }
+ }
+} // end function deal
diff --git a/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp b/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp new file mode 100644 index 0000000..3318d1a --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_1/prg1p5_1.dsp @@ -0,0 +1,100 @@ +# Microsoft Developer Studio Project File - Name="prg1p5_1" - Package Owner=<4>
+# 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 <iostream>
+
+using std::cin;
+using std::cout;
+using std::endl;
+
+#include <iomanip>
+
+using std::setprecision;
+using std::setw;
+
+// contains function prototypes for functions srand and rand
+#include <cstdlib>
+
+#include <ctime>
+
+// 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<arraySize;i++) {
+ array[i]=rand()%maxNum;
+ }
+
+ // show it unsorted
+ cout << "Unsorted:" << endl;
+ for (i=0;i<arraySize;i++) {
+ cout << setw(4) << array[i];
+ }
+ cout << endl;
+
+ // sort it
+ quickSort(array,arrayStart,arrayEnd);
+
+ // show it sorted
+ cout << "Sorted:" << endl;
+ for (i=0;i<arraySize;i++) {
+ cout << setw(4) << array[i];
+ }
+ cout << endl;
+ // habe fertisch
+ return 0;
+}// end function main
+
+void quickSort(int toSort[], int start, int end)
+{
+ int pos;
+ // partition the array and get pos, where array is divided
+ partition(toSort,start,end,pos);
+ if (pos > 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 <iostream>
+
+using std::cin;
+using std::cout;
+using std::endl;
+
+// contains function prototypes for functions srand and rand
+#include <cstdlib>
+
+// 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<maxLines;i++)
+ {
+ for (int j=0;j<maxRows;j++)
+ cout << array[i][j];
+ cout << "\n";
+ }
+ //cout << "\n" << count;
+ //system ("pause");
+}
\ No newline at end of file diff --git a/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp b/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp new file mode 100644 index 0000000..f9bca6e --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_3/prg1p5_3.dsp @@ -0,0 +1,100 @@ +# Microsoft Developer Studio Project File - Name="prg1p5_3" - Package Owner=<4>
+# 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 <iostream>
+
+using std::cin;
+using std::cout;
+using std::endl;
+using std::left;
+using std::right;
+
+
+#include <iomanip>
+
+using std::setprecision;
+using std::setw;
+
+// contains function prototypes for functions srand and rand
+#include <cstdlib>
+#include <ctime>
+
+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<cards;i++)
+ cout << blatt[i].wert << " of " << blatt[i].farbe << endl;
+}// end function print hand
+
+void printResults(const int erg[], const char *results[])
+{
+ cout << endl;
+ for (int i=0;i<maxResults;i++)
+ {
+ cout << results[i] << ": " << erg[i] << endl;
+ }
+}
+
+void analyseCards(const hand blatt[],const char *wFace[],
+ const char *wSuit[],int erg[], const char *results[])
+{
+ int hasOnePair=0;
+ int hasTwoPairs=0;
+ int hasThreeOfAKind=0;
+ int hasFullHouse=0;
+ int hasFourOfAk=0;
+ int hasFlush=0;
+ int hasStraight=0;
+ int hasStraightFlush=0;
+ int hasRoyalFlush=0;
+
+ hasOnePair=onePair(blatt,wFace);
+ hasTwoPairs=twoPairs(blatt,wFace);
+ hasThreeOfAKind=threeOfAKind(blatt,wFace);
+ hasFullHouse=fullHouse(blatt,wFace);
+ hasFourOfAk=fourOfAKind(blatt,wFace);
+
+ if (1 == hasOnePair)
+ {
+ erg[1]++;
+ }
+
+ if (1 == hasTwoPairs)
+ {
+ erg[2]++;
+ }
+ if (1 == hasThreeOfAKind)
+ {
+ if(1==hasFullHouse)
+ {
+ erg[6]++;
+ }
+ else
+ {
+ erg[3]++;
+ }
+ }
+
+ if (1==hasFourOfAk)
+ erg[7]++;
+
+ hasFlush=flush(blatt,wSuit);
+ hasStraight=straight(blatt,wFace);
+ hasStraightFlush=straightFlush(blatt,wFace,wSuit);
+ hasRoyalFlush=royalFlush(blatt,wFace,wSuit);
+ if(1==hasFlush)
+ {
+ if(1==hasStraight)
+ {
+
+ if(1==hasStraightFlush)
+ {
+ if(1==hasRoyalFlush)
+ {
+ erg[9]++;
+ }
+ else
+ {
+ erg[8]++;
+ }
+ }
+ }
+ else
+ {
+ erg[5]++;
+ }
+ }
+ else
+ {
+ if(1==hasStraight)
+ {
+ erg[4]++;
+ }
+ }
+
+ if (hasOnePair==0 && hasTwoPairs==0 && hasThreeOfAKind==0 && hasFullHouse==0 && hasFourOfAk==0 && hasFlush==0 && hasStraight==0 && hasStraightFlush==0 && hasRoyalFlush==0)
+ erg[0]++;
+}
+
+
+// shuffle cards in deck
+void shuffle( int wDeck[][ 13 ] )
+{
+ int temp=0;
+ int randRow,
+ randCol;
+
+ for (int column=0;column<maxColumns;column++) {
+ for (int row=0;row<maxRows;row++) {
+ randCol=rand()%maxColumns;
+ randRow=rand()%maxRows;
+ temp=wDeck[row][column];
+ wDeck[row][column]=wDeck[randRow][randCol];
+ wDeck[randRow][randCol]=temp;
+ }
+ }
+} // end function shuffle
+
+// deal cards in deck
+void deal( const int wDeck[][ 13 ], const char *wFace[],
+ const char *wSuit[], hand karten[cards] )
+{
+ enum found {FALSE,TRUE};
+ int row,column;
+ found cardFound=FALSE;
+ // give first 5 cards
+ for ( int card = 1; card <= cards; card++ ) {
+ cardFound=FALSE;
+ row=0;
+ while ((row<maxRows)&&cardFound==FALSE)
+ {
+ column=0;
+ while((column<maxColumns)&&cardFound==FALSE)
+ {
+ // if slot contains current card, display card
+ if ( wDeck[ row ][ column ] == card ) {
+ /* cout << setw( 5 ) << right << wFace[ column ]
+ << " of " << setw( 8 ) << left
+ << wSuit[ row ]
+ << ( card % 2 == 0 ? '\n' : '\t' );
+ */
+ karten[card-1].farbe=wSuit[row];
+ karten[card-1].wert=wFace[column];
+ cardFound=TRUE;
+ }
+ column++;
+
+ } // end while
+ row++;
+ }
+ }
+} // end function deal
+
+int onePair(const hand mycards[], const char *myFace[])
+{
+ int faces[13]={0};
+ int pairCounter=0;
+ int pair=0;
+ int n;
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+ for (n=0;n<13;n++)
+ {
+ if (faces[n]==2)
+ pairCounter++;
+ }
+ if (pairCounter==1)
+ pair=1;
+ return pair;
+}
+
+int twoPairs(const hand mycards[], const char *myFace[])
+{
+ int faces[13]={0};
+ int twoPairs=0;
+ int pairCounter=0;
+ int n;
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+ for (n=0;n<13;n++)
+ {
+ if (faces[n]==2)
+ pairCounter++;
+ }
+ if (pairCounter==2)
+ twoPairs=1;
+
+ return twoPairs;
+}
+int threeOfAKind(const hand mycards[], const char *myFace[])
+{
+ int faces[13]={0};
+ int toak=0;
+ int n;
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+ for (n=0;n<13;n++)
+ {
+ if (faces[n]==3)
+ toak=1;
+ }
+ return toak;
+}
+int straight(const hand mycards[], const char *myFace[])
+{
+ int str=0;
+ int n;
+ int faces[13]={0};
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+ for (n=0;n<13;n++)
+ {
+ if (faces[n]==1 && faces[n+1]==1 && faces[n+2]==1 && faces[n+3]==1 && faces[n+4]==1)
+ str=1;
+ }
+ return str;
+}
+int flush(const hand mycards[], const char *mySuit[])
+{
+ int suits[4]={0};
+ int flush=0;
+ int n;
+ const int countingCards=5;
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<4;n++)
+ if (mycards[i].farbe == mySuit[n])
+ suits[n]++;
+ }
+ for (n=0;n<4;n++)
+ {
+ if (suits[n]==countingCards)
+ flush=1;
+ }
+ return flush;
+}
+int fullHouse(const hand mycards[], const char *myFace[])
+{
+ int full=0;
+ if(1==threeOfAKind(mycards,myFace)&&1==twoPairs(mycards,myFace))
+ {
+ full=1;
+ //cout << endl << "Full House" <<endl;
+ }
+ return full;
+}
+int fourOfAKind(const hand mycards[], const char *myFace[])
+{
+ int faces[13]={0};
+ int foak=0;
+ int n;
+
+ for (int i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+ for (n=0;n<13;n++)
+ {
+ if (faces[n]==4)
+ {
+ foak=1;
+ }
+ }
+
+ return foak;
+}
+int straightFlush(const hand mycards[], const char *myFace[], const char *mySuit[])
+{
+ int strFlu=0;
+ if (1==straight(mycards,myFace) && 1==flush(mycards,mySuit))
+ {
+ strFlu=1;
+ //printHand(mycards);
+ }
+ return strFlu;
+}
+int royalFlush(const hand mycards[], const char *myFace[], const char *mySuit[])
+{
+ int roy1=0;
+ int roy2=0;
+ int roy=0;
+ int i,n;
+ int faces[13]={0};
+ int suits[4]={0};
+ const int countingCards=5;
+
+ for (i=0;i<cards;i++)
+ {
+ for (n=0;n<13;n++)
+ if (mycards[i].wert == myFace[n])
+ faces[n]++;
+ }
+
+ if (faces[0]==1 && faces[9]==1 && faces[10]==1 && faces[11]==1 && faces[12]==1)
+ roy1=1;
+
+
+ for (i=0;i<cards;i++)
+ {
+ for (n=0;n<4;n++)
+ if (mycards[i].farbe == mySuit[n])
+ suits[n]++;
+ }
+ for (n=0;n<4;n++)
+ {
+ if (suits[n]==countingCards)
+ roy2=1;
+ }
+ if (roy1==1 && roy2==1)
+ {
+ //printHand(mycards);
+ roy=1;
+ }
+ return roy;
+}
\ No newline at end of file diff --git a/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp b/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp new file mode 100644 index 0000000..5150ad2 --- /dev/null +++ b/Bachelor/Prog1/Prakt5/prg1p5_4/prg1p5_4.dsp @@ -0,0 +1,100 @@ +# Microsoft Developer Studio Project File - Name="prg1p5_4" - Package Owner=<4>
+# 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>
+{{{
+}}}
+
+###############################################################################
+
|
