From 517c976643b67f70d1cb6b964f769d45f27a974c Mon Sep 17 00:00:00 2001 From: alexchilab Date: Thu, 29 May 2025 20:22:06 +0200 Subject: [PATCH] Program: ma3 --- MA3/josephus.c | 57 ++++++++++++++++++++++ MA3/josephus.exe | Bin 0 -> 55962 bytes MA3/josephus.o | Bin 0 -> 1590 bytes MA3/libqueue.a | Bin 0 -> 1656 bytes MA3/queue.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++ MA3/queue.h | 63 ++++++++++++++++++++++++ MA3/queue.o | Bin 0 -> 1496 bytes 7 files changed, 242 insertions(+) create mode 100644 MA3/josephus.c create mode 100755 MA3/josephus.exe create mode 100644 MA3/josephus.o create mode 100644 MA3/libqueue.a create mode 100644 MA3/queue.c create mode 100644 MA3/queue.h create mode 100644 MA3/queue.o diff --git a/MA3/josephus.c b/MA3/josephus.c new file mode 100644 index 0000000..3d83629 --- /dev/null +++ b/MA3/josephus.c @@ -0,0 +1,57 @@ +/**********************************************************************\ +* Kurzbeschreibung: +* Realisiert das Josephus Spiel zum Test einer Queue +* +* Datum: Autor: +* 30.9.2015 Prof. Dr. Helmut Herold +* +\**********************************************************************/ + +/*--- #includes ------------------------------------------------------*/ +#define _CRT_SECURE_NO_WARNINGS //VC++: keine scanf() Warnungen +#include // Einbinden der Standard-Ein-/Ausgabefunktionen +#include "queue.h" // Einbinden der selbstgeschriebenen Queue-Funktionen + +/*--- #defines -------------------------------------------------------*/ + +/*--- Datentypen (typedef) -------------------------------------------*/ + +/*--- Prototypen lokaler Funktionen ----------------------------------*/ + +/*--- main -----------------------------------------------------------*/ +int main(void) +{ + int n, z, i=1, nr; // n = Personenanzahl, z = wievielte wird entfernt, i = Laufvariable, nr = zum Prüfen von scanf + + // Abfrage wie viele Personen mitspielen, solange wiederholen bis richtige Zahl eingegeben wurde + do { + printf("Wie viele Personen: "); // Frage ausgeben + nr = scanf("%d", &n); getchar(); // Zahl einlesen und Eingabe bestätigen lassen + } while (nr != 1 || n < 0); // solange wiederholen bis gültige Zahl + + // Abfrage wievielte Person entfernt wird, auch hier wird auf korrekte Eingabe geprüft + do { + printf("Wie vielte ist auszusondern: "); // Frage ausgeben + nr = scanf("%d", &z); getchar(); // Zahl einlesen und Eingabe bestätigen lassen + } while (nr != 1 || z < 0); // solange wiederholen bis gültige Zahl + + // Die Queue wird mit Zahlen von 1 bis n gefüllt + for (i = 1; i <= n; i++) // von 1 bis n + put(i); // füge die Zahl in die Queue ein + + // Solange die Queue nicht leer ist (also noch Personen da sind) + while (!isEmpty()) { + // Wiederhole z-1 mal: hole die vorderste Zahl aus der Queue und füge sie hinten wieder ein + for (i = 1; i < z; i++) { + if (put(get()) == FALSE) { // Zahl nach hinten verschieben, wenn das schief geht: + fprintf(stderr, "Fehler beim Einfügen\n"); // Fehlermeldung + return 1; // Programm abbrechen mit Fehler + } + } + // Jetzt hole die vorderste Zahl (die z-te) und gib sie aus (sie wird entfernt) + printf("%d, ", get()); // Zahl ausgeben und aus Queue entfernen (nicht mehr einfügen) + } + printf("\n"); // Zeilenumbruch am Ende + + return 0; // Programm endet erfolgreich +} \ No newline at end of file diff --git a/MA3/josephus.exe b/MA3/josephus.exe new file mode 100755 index 0000000000000000000000000000000000000000..f16da75c1164e8ec0a5822549e3e8c75a14a4fbe GIT binary patch literal 55962 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 E-`s_zW&i*H literal 0 HcmV?d00001 diff --git a/MA3/josephus.o b/MA3/josephus.o new file mode 100644 index 0000000000000000000000000000000000000000..70176ebf84b0590b8f7c64d66d0e14b6805f28e5 GIT binary patch literal 1590 zcmah}&1(};5TEUCwHB>l>$itR6jYjRgp$@?jF#Al6hc9IQMdVcNwy}NWj|^fRD@6= zghKxdZ{CDfilkQ1g9kyqco)Qa2+~8rVx4)rn{LvA13UYBzxmC)eedm?%=3dl)+Yg+ z<46L8cYFe0G9+e{OwvvUbo;?5BpOP}vi6Gwxo4y^+Y8R1;9gfy z1%UOUO1WKk7$vKFbm6FC?A3ihUDI0!y`m6~4h?tC0q|u{y+rhGy!Jg_{T2Q}^7pZA z+!BZ{9-$GZ;)}7(clP$sdT#s!oG|C@QaLN~8PV+xGP0I16+vuyu zwrgu{P5c6^crCX5^yfy-7mV|mCs}AXLo2kBc)c4v?0mXiTf4DL2l(3i`Uqm4vP{Ir zNR?M@V%5j5+)}ilNngdOg@(Pf((6;p2q0d47rwu~)MnEfljk&6U~+<)R!L|2m<$&) z;PW<N(|a**P^O6jCiIBiJyVh>BwX@5 ztpIIee0)s4R343}k>QY0vb1u@V)>BC=E8&WO-C!(a%x_l)bxqz&~#*2Hq6p2OWT*_ zQRS)<1~`N@j^QK0N%XW%iQkO@j;^%0Aw+c25{#gyO_ksddN+eU%FTGt;?juRjE9Ka zj5;EkM}imV>Bo@ZWs7@*sGoCR(YuwuAv(>u-{{?pKdmU>F1Yh{BRa!%{fN$TgbwQi zh}^rV2gh`WL{PF?fgvLMy91CDW=j?`@{Xm@r*kVNHQmPo$k2tgJ1y8jC@czeHniSd z3w96sMaBK<1Ud)Z)_paBuEEzMOzlqMptzyt~>wgB!&g(Rj_eVKy~bv!`bU<5`cp3*9lKQj{}43 zoSM%$xscy+Xh3#Loo_V4wnSL*d6oQH(SVoH=J;y{pBSJSYAx#5kH!u3`$$oq_cJzj#?=+H${JYd6493CFx>VSy<1Q*=d zp5=btC8g7~V;~qNe@i1+4h)#@WZ+jyoQe2M3A1Shw1&A=kM|tB7 zd>q3dr%|UdkB#nUa$@2RyV1(%vwAvNt2RolWW!!e*6ruoEjHdPl^r&}%%)0}$(iJg zo@TXr^{Kt!46uxvQZ<0H7=!*{1s-5e(G_?ss352+=!Kxyg5C;xC+L%)uY$e_`XT7I zpqPI?1$qQs6f}Tz0eux17jq89txhj&1`GG>+4ib-cn$dAo>s0ajS5{Wwex;DB6lcw{y<}G$Fe`am HC?U7Mze@4d literal 0 HcmV?d00001 diff --git a/MA3/queue.c b/MA3/queue.c new file mode 100644 index 0000000..2a0a106 --- /dev/null +++ b/MA3/queue.c @@ -0,0 +1,122 @@ +/**********************************************************************\ +* Kurzbeschreibung: +* queue.c - realisiert eine Queue (Warteschlange) +* +* Datum: Autor: +* +* +\**********************************************************************/ + +/*--- #includes ------------------------------------------------------*/ +#include // Standard Ein-/Ausgabe +#include // Für malloc und free +#include "queue.h" // Für die Typen und Funktionsdeklarationen + +/*--- Modulglobale static Variablen ----------------------------------*/ +// Das sind Zeiger auf das erste und letzte Element der Queue. +// Sie sind nur hier sichtbar (static = nur in dieser Datei). +static Queue_Elem *Anfang_Element = NULL; // Zeigt auf das erste Element in der Queue +static Queue_Elem *Ende_Element = NULL; // Zeigt auf das letzte Element in der Queue + +/*--------------------------------------------------------------------*\ + * Einfuegen in Liste + * Parameter: + * zahl fügt die übergebene Zahl 'zahl' am Ende der Liste ein + * Return Wert: + * TRUE wenn noch genug Speicherplatz vorhanden + * FALSE wenn kein Speicherplatz mehr allokiert werden konnte + *--------------------------------------------------------------------*/ +Bool put(int zahl) +{ + // Speicherplatz für ein neues Element anfordern + Queue_Elem* neues_Element = (Queue_Elem*)malloc(sizeof(Queue_Elem)); + + // Prüfen, ob der Speicher angelegt werden konnte + if (neues_Element == NULL) + { + return FALSE; // Fehler, kein Speicher mehr + } + else + { + neues_Element->wert = zahl; // Wert setzen + neues_Element->Element_next = NULL; // Nächstes Element gibt es noch nicht + neues_Element->Element_prev = NULL; // Vorheriges Element gibt es noch nicht + + // Wenn Queue noch leer ist (erstes Element) + if (Anfang_Element == NULL) + { + Anfang_Element = neues_Element; // Sowohl Anfang als auch Ende zeigen auf das neue Element + Ende_Element = neues_Element; + } + else // Sonst: Am Ende anhängen + { + if (Ende_Element != NULL) + { + Ende_Element->Element_next = neues_Element; // Das aktuelle Ende zeigt auf das neue Element + neues_Element->Element_prev = Ende_Element; // Das neue Element weiß, was vorher war + Ende_Element = neues_Element; // Das neue Element ist jetzt das Ende + } + } + } + return TRUE; // Hat geklappt! +} + +/*--------------------------------------------------------------------*\ + * Auslesen aus Liste + * Parameter: + * keine + * Return Wert: + * Zahl am Anfang der Liste oder aber QLEER, wenn Liste leer ist. + *--------------------------------------------------------------------*/ +int get(void) +{ + int zahl; + // Zeiger auf das erste Element (wird gleich gelöscht) + Queue_Elem* temp = Anfang_Element; + + // Wenn mindestens ein Element in der Queue ist + if(Anfang_Element != NULL && Ende_Element != NULL) + { + zahl = (Anfang_Element)->wert; // Wert des ersten Elements speichern + + // Wenn es noch mehr als ein Element gibt + if(Anfang_Element->Element_next != NULL) + { + Anfang_Element->Element_next->Element_prev = NULL; // Das neue Erste zeigt auf nix vorher + Anfang_Element = Anfang_Element->Element_next; // Anfang_Element zeigt jetzt auf das neue Erste + } + else // Es gibt nur ein Element (das wird jetzt gelöscht) + { + Anfang_Element = NULL; + Ende_Element = NULL; + } + + free(temp); // Speicherplatz freigeben + } + else // Die Queue ist leer + { + zahl = QLEER; // Rückgabewert für "leer" + } + + return zahl; // Zahl oder QLEER zurückgeben +} + +/*--------------------------------------------------------------------*\ + * Pruefen der Liste + * Parameter: + * keine + * Return Wert: + * liefert TRUE, wenn Queue leer ist, sonst FALSE + *--------------------------------------------------------------------*/ +Bool isEmpty(void) +{ + // Ist Anfang und Ende auf NULL -> Queue ist leer + if(Anfang_Element == NULL && Ende_Element == NULL) + { + return TRUE; + } + else + { + return FALSE; + } +} \ No newline at end of file diff --git a/MA3/queue.h b/MA3/queue.h new file mode 100644 index 0000000..6adf929 --- /dev/null +++ b/MA3/queue.h @@ -0,0 +1,63 @@ +/**********************************************************************\ +* Kurzbeschreibung: +* queue.h - realisiert eine Queue (Warteschlange) als verkettete Liste +* +* Datum: Autor: +* 30.9.2015 Prof. Dr. Helmut Herold +* +\**********************************************************************/ +#ifndef QUEUE_H +#define QUEUE_H + +/*--- #includes ------------------------------------------------------*/ +#include // Für INT_MIN + +/*--- #defines -------------------------------------------------------*/ +#define TRUE 1 +#define FALSE 0 +#define QLEER INT_MIN // Konstante, um "Queue ist leer" zu kennzeichnen + +/*--- Datentypen (typedef) -------------------------------------------*/ +typedef int Bool; // Bool ist einfach nur ein int + +// Struktur für ein Queue-Element +typedef struct Queue_Element { + int wert; // Der gespeicherte Wert (die Zahl) + struct Queue_Element* Element_next; // Zeiger auf das nächste Element + struct Queue_Element* Element_prev; // Zeiger auf das vorherige Element +} Queue_Elem; + +/*--- Prototypen globaler Funktionen ---------------------------------*/ + +/*--------------------------------------------------------------------*\ + * Einfuegen in Liste + * Parameter: + * zahl fügt die übergebene Zahl 'zahl' am Ende der Liste ein + * Return Wert: + * TRUE wenn noch genug Speicherplatz vorhanden + * FALSE wenn kein Speicherplatz mehr allokiert werden konnte + * Hinweis: + * - dynamische Verwaltung von Speicher muss mit malloc() und free() + * durchgeführt werden; dynamische Arrays sind nicht erlaubt !!! + *--------------------------------------------------------------------*/ +Bool put(int zahl); + +/*--------------------------------------------------------------------*\ + * Auslesen aus Liste + * Parameter: + * keine + * Return Wert: + * Zahl am Anfang der Liste oder aber QLEER, wenn Liste leer ist. + *--------------------------------------------------------------------*/ +int get(void); + +/*--------------------------------------------------------------------*\ + * Pruefen der Liste + * Parameter: + * keine + * Return Wert: + * liefert TRUE, wenn Queue leer ist, sonst FALSE + *--------------------------------------------------------------------*/ +Bool isEmpty(void); + +#endif /*QUEUE_H*/ \ No newline at end of file diff --git a/MA3/queue.o b/MA3/queue.o new file mode 100644 index 0000000000000000000000000000000000000000..7819b856d0d7e3660a91a0fa912c688aab4f1260 GIT binary patch literal 1496 zcmZuxPiqrV5TEVt+6Yo3YN;Z!hoTmnH9`o*OV^gA3sMO}=s~2W%_c_jXH7PeMubAB zuq;TwfOqeDs2~`rkb@tnQ1yma39_z(|TZr&Zf(GRJ`bMi2jU}T-fVYX)i6^{*F*jH< z{KSB?p*wNjECzRx_fh7o)2N7dD-(XjwSnsWfBAAo-txX%y`O1sHThu%IR`|yJac6A zUXGwWxkvWUv3zsn=aXKNfHg1@jK(o5$?{d^+Ud7v7{}u_Q9PCC!)wSPVD0qX%OUpj z7|$hwPbj>H-3F`oCH-hW++3L4GY>I(DFVXkTIMbm}Au2J}$y`7^cRu&m#`X!?sZoLzQ)Je>Wmh zLRJ$G6j{mv#4zPYdBYXciDGn&(EJheC7Ic-6|t)~IbVGjC-6}X3Q%C5jefl2~31bQLR zYk}Sh^iH5p0(}+en?OGV`Yn(e)Th9dK$irXLv#_j3M>iVeSt6l)NL8#AtHN<`KT@) zrPJn!s^(GZBlpoQ<46-xy;P~%Xp#KEzo9HWYujyG-{dawJ{usqc>MBRMZ~j_$7#EQ zD}e?Rxc7ghY;z8sI^#g4W!4;bi=8?5L?;rZkR|#TsG4JmP9wVH@(F82ClTAT#BRcI z5=7A{M17Sd>QG#w6Nv7(EYS?2xf7S0fk`t~mKNhdv}%QFwIP~{{ee=`4jYeg@?=r# fO`3SK-EJ4|)=PzYdEKnqHM{PDSufhch|vB5w6fH_ literal 0 HcmV?d00001