From c9959f10f1f18746f82513f9b5626c8d3a14ced8 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter@cassini.intern> Date: Thu, 10 Dec 2015 14:15:52 +0100 Subject: [PATCH] Vorbereitung 10.12.2015 (Fortsetzung) --- 20151210/ainf-20151210.pdf | Bin 237797 -> 238897 bytes 20151210/ainf-20151210.tex | 104 +++++++++++++++++++++++-------------- 20151210/sort-0.c | 16 ++++++ 20151210/sort-1.c | 27 ++++++++++ 20151210/sort-10.c | 63 ++++++++++++++++++++++ 20151210/sort-11.c | 65 +++++++++++++++++++++++ 20151210/sort-12.c | 62 ++++++++++++++++++++++ 20151210/sort-13.c | 72 +++++++++++++++++++++++++ 20151210/sort-14.c | 74 ++++++++++++++++++++++++++ 20151210/sort-2.c | 32 ++++++++++++ 20151210/sort-3.c | 39 ++++++++++++++ 20151210/sort-4.c | 40 ++++++++++++++ 20151210/sort-5.c | 40 ++++++++++++++ 20151210/sort-6.c | 46 ++++++++++++++++ 20151210/sort-7.c | 70 +++++++++++++++++++++++++ 20151210/sort-8.c | 56 ++++++++++++++++++++ 20151210/sort-9.c | 63 ++++++++++++++++++++++ 17 files changed, 831 insertions(+), 38 deletions(-) create mode 100644 20151210/sort-0.c create mode 100644 20151210/sort-1.c create mode 100644 20151210/sort-10.c create mode 100644 20151210/sort-11.c create mode 100644 20151210/sort-12.c create mode 100644 20151210/sort-13.c create mode 100644 20151210/sort-14.c create mode 100644 20151210/sort-2.c create mode 100644 20151210/sort-3.c create mode 100644 20151210/sort-4.c create mode 100644 20151210/sort-5.c create mode 100644 20151210/sort-6.c create mode 100644 20151210/sort-7.c create mode 100644 20151210/sort-8.c create mode 100644 20151210/sort-9.c diff --git a/20151210/ainf-20151210.pdf b/20151210/ainf-20151210.pdf index 8184b16afdc756211b714c44ae7c687875d00953..8cec9514dc6be76744accd4a38f15951b91fd40c 100644 GIT binary patch delta 29357 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�`nx#HFL~MT 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 delta 28285 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 V&asqPj@!({+>A?A)z#mP3jnO-KlK0r diff --git a/20151210/ainf-20151210.tex b/20151210/ainf-20151210.tex index 294a15c..8c41d30 100644 --- a/20151210/ainf-20151210.tex +++ b/20151210/ainf-20151210.tex @@ -1,4 +1,4 @@ -% ainf-20151203.pdf - Lecture Slides on Applied Computer Sciences +% ainf-20151210.pdf - Lecture Slides on Applied Computer Sciences % Copyright (C) 2012, 2013, 2015 Peter Gerwinski % % This document is free software: you can redistribute it and/or @@ -43,7 +43,7 @@ \title{Angewandte Informatik} \author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{3.\ Dezember 2015} +\date{10.\ Dezember 2015} \begin{document} @@ -336,41 +336,69 @@ \showsubsection In Output-Port schreiben = Leitungen ansteuern - - \medskip - - Datei: \file{RP6Base/RP6Base\_Examples/RP6Examples\_20080915/\\ - RP6Lib/RP6base/RP6RobotBaseLib.c} - - Suchbegriff: \lstinline{setMotorDir} - - \medskip - - \begin{lstlisting} - void setMotorDir(uint8_t left_dir, uint8_t right_dir) - { - /* ... */ - if(left_dir) - PORTC |= DIR_L; - else - PORTC &= ~DIR_L; - if(right_dir) - PORTC |= DIR_R; - else - PORTC &= ~DIR_R; - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(2.2,0.50){\vector(-2,1){0.5}} - \put(2.25,0.40){\makebox(0,0)[l]{Output-Port}} - \put(4.7,3.0){\vector(-2,1){0.75}} - \put(4.7,3.0){\vector(-2,-1){0.75}} - \put(4.8,3.0){\makebox(0,0)[l]{Manipulation einzelner Bits}} - \end{picture} - - \vspace*{-1.5cm} - \strut\hfill\textarrow\ Steuerung der Motordrehrichtung + \begin{tabbing} + Datei: \= \file{RP6Base/RP6Base\_Examples/RP6Examples\_20080915/}\\ + \> \file{RP6Lib/RP6base/RP6RobotBaseLib.c} + \end{tabbing} + \begin{onlyenv}<1> + Suchbegriff: \lstinline{setMotorDir} + + \medskip + + \begin{lstlisting}[gobble=6] + void setMotorDir(uint8_t left_dir, uint8_t right_dir) + { + /* ... */ + if(left_dir) + PORTC |= DIR_L; + else + PORTC &= ~DIR_L; + if(right_dir) + PORTC |= DIR_R; + else + PORTC &= ~DIR_R; + } + \end{lstlisting} + \begin{picture}(0,0) + \color{red} + \put(2.2,0.50){\vector(-2,1){0.5}} + \put(2.25,0.40){\makebox(0,0)[l]{Output-Port}} + \put(4.7,3.0){\vector(-2,1){0.75}} + \put(4.7,3.0){\vector(-2,-1){0.75}} + \put(4.8,3.0){\makebox(0,0)[l]{Manipulation einzelner Bits}} + \end{picture} + + \vspace*{-1.5cm} + \strut\hfill\textarrow\ Steuerung der Motordrehrichtung + \end{onlyenv} + \begin{onlyenv}<2> + Suchbegriff: \lstinline{updateStatusLEDs} + + \medskip + + \begin{lstlisting}[gobble=6] + DDRB &= ~0x83; + PORTB &= ~0x83; + if(statusLEDs.LED4){ DDRB |= SL4; PORTB |= SL4; } + if(statusLEDs.LED5){ DDRB |= SL5; PORTB |= SL5; } + if(statusLEDs.LED6){ DDRB |= SL6; PORTB |= SL6; } + DDRC &= ~0x70; + PORTC &= ~0x70; + DDRC |= ((statusLEDs.byte << 4) & 0x70); + PORTC |= ((statusLEDs.byte << 4) & 0x70); + \end{lstlisting} + \begin{picture}(0,0) + \color{red} + \put(3.7,3.9){\vector(-1,0){0.5}} + \put(3.75,3.9){\makebox(0,0)[l]{Data Direction Register: auf Input(!) setzen}} + \put(3.7,3.5){\vector(-1,0){0.5}} + \put(3.75,3.5){\makebox(0,0)[l]{internen Pull-Up-Widerstand ausschalten}} + \put(8.7,2.7){\makebox(0,0)[l]{\shortstack{Manipulation\\einzelner Bits}}} + \put(7.2,1.0){\makebox(0,0)[l]{\shortstack{3 Bits\\gemeinsam}}} + \end{picture} + + \lstinline{union statusLEDs}: Bit-Felder vs.\ Byte + \end{onlyenv} \end{frame} @@ -407,7 +435,7 @@ \put(2.0,4.4){\makebox(0,0)[l]{"`Dies ist ein Interrupt-Handler."'}} \put(2.3,3.6){\vector(-1,-1){0.7}} \put(2.4,3.6){\makebox(0,0)[l]{Interrupt-Vektor 0 darauf zeigen lassen}} - \put(3.7,2.9){\makebox(0,0)[l]{Schreibweise herstellerspezifisch!}} + \put(3.7,2.9){\makebox(0,0)[l]{Schreibweise abhängig von Prozessor und Compiler!}} \end{picture} \vspace*{-1.5cm} diff --git a/20151210/sort-0.c b/20151210/sort-0.c new file mode 100644 index 0000000..43814eb --- /dev/null +++ b/20151210/sort-0.c @@ -0,0 +1,16 @@ +#include <stdio.h> + +char *find_first (char **name) +{ + return "Anna"; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + char *first = find_first (name); + printf ("%s\n", first); + return 0; +} diff --git a/20151210/sort-1.c b/20151210/sort-1.c new file mode 100644 index 0000000..75d22da --- /dev/null +++ b/20151210/sort-1.c @@ -0,0 +1,27 @@ +#include <stdio.h> +#include <string.h> + +char *find_first (char **name) +{ + if (name == NULL || name[0] == NULL) + return NULL; + char *first = name[0]; + int i = 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + first = name[i]; + i++; + } + return first; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + char *first = find_first (name); + printf ("%s\n", first); + return 0; +} diff --git a/20151210/sort-10.c b/20151210/sort-10.c new file mode 100644 index 0000000..bb00db2 --- /dev/null +++ b/20151210/sort-10.c @@ -0,0 +1,63 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (100000); + return strcmp (name[left], name[right]); +} + +void sort (char **name, int size) +{ + int sorted = 0; + int n = size; + while (n > 1 && !sorted) + { + sorted = 1; + for (int i = 0; i < n - 1; i++) + if (compare (name, i, i + 1) > 0) + { + sorted = 0; + char *temp = name[i]; + name[i] = name[i + 1]; + name[i + 1] = temp; + } + n--; + } +} + +int main (void) +{ + char *names[] = { "Anna", "Berta", "Box", "Dieter", "Fritz", "Hans", + "Heinrich", "Hugo", "Lisa", "Maria", "Otto", "Peter", + "Siegfried", "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 16); + output (names); + return 0; +} diff --git a/20151210/sort-11.c b/20151210/sort-11.c new file mode 100644 index 0000000..eb8236c --- /dev/null +++ b/20151210/sort-11.c @@ -0,0 +1,65 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (100000); + return strcmp (name[left], name[right]); +} + +void sort (char **name, int size) /* BubbleSort */ +{ /* Wikipedia: bubblesort3 */ + int sorted = 0; + int n = size; + while (n > 1 && !sorted) + { + int newn = 1; + sorted = 1; + for (int i = 0; i < n - 1; i++) + if (compare (name, i, i + 1) > 0) + { + sorted = 0; + char *temp = name[i]; + name[i] = name[i + 1]; + name[i + 1] = temp; + newn = i + 1; + } + n = newn; + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 16); + output (names); + return 0; +} diff --git a/20151210/sort-12.c b/20151210/sort-12.c new file mode 100644 index 0000000..428d4fa --- /dev/null +++ b/20151210/sort-12.c @@ -0,0 +1,62 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (100000); + return strcmp (name[left], name[right]); +} + +void sort (char **name, int size) /* BubbleSort */ +{ /* Wikipedia: bubblesort3 */ + int n = size; + while (n > 1) + { + int newn = 1; + for (int i = 0; i < n - 1; i++) + if (compare (name, i, i + 1) > 0) + { + char *temp = name[i]; + name[i] = name[i + 1]; + name[i + 1] = temp; + newn = i + 1; + } + n = newn; + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 16); + output (names); + return 0; +} diff --git a/20151210/sort-13.c b/20151210/sort-13.c new file mode 100644 index 0000000..5daf805 --- /dev/null +++ b/20151210/sort-13.c @@ -0,0 +1,72 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1); +} + +int compare (char **name, int left, char *right) +{ + comp_counter++; + output_marked (name, left); + usleep (100000); + return strcmp (name[left], right); +} + +void sort (char **name, int left, int right) /* QuickSort */ +{ + if (left < right) + { + int middle = (left + right) / 2; + char *test = name[middle]; + int l = left; + int r = right; + while (l <= r) + { + while (compare (name, l, test) < 0) + l++; + while (compare (name, r, test) > 0) + r--; + if (l <= r) + { + char *temp = name[l]; + name[l] = name[r]; + name[r] = temp; + l++; + r--; + } + } + sort (name, left, r); + sort (name, l, right); + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 0, 15); + output (names); + return 0; +} diff --git a/20151210/sort-14.c b/20151210/sort-14.c new file mode 100644 index 0000000..c3046ab --- /dev/null +++ b/20151210/sort-14.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1); +} + +int compare (char **name, int left, char *right) +{ + comp_counter++; + output_marked (name, left); + usleep (100000); + return strcmp (name[left], right); +} + +void sort (char **name, int left, int right) /* QuickSort */ +{ + if (left < right) + { + int middle = left + rand () % (right - left + 1); + char *test = name[middle]; + int l = left; + int r = right; + while (l <= r) + { + while (compare (name, l, test) < 0) + l++; + while (compare (name, r, test) > 0) + r--; + if (l <= r) + { + char *temp = name[l]; + name[l] = name[r]; + name[r] = temp; + l++; + r--; + } + } + sort (name, left, r); + sort (name, l, right); + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + srand (137); + sort (names, 0, 15); + output (names); + return 0; +} diff --git a/20151210/sort-2.c b/20151210/sort-2.c new file mode 100644 index 0000000..1b4dd9e --- /dev/null +++ b/20151210/sort-2.c @@ -0,0 +1,32 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name) +{ + if (name == NULL || name[0] == NULL) + return -1; + int first_pos = 0; + char *first = name[0]; + int i = 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + { + first_pos = i; + first = name[i]; + } + i++; + } + return first_pos; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + if (first >= 0) + printf ("%s\n", name[first]); + return 0; +} diff --git a/20151210/sort-3.c b/20151210/sort-3.c new file mode 100644 index 0000000..5b74a91 --- /dev/null +++ b/20151210/sort-3.c @@ -0,0 +1,39 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name) +{ + if (name == NULL || name[0] == NULL) + return -1; + int first_pos = 0; + char *first = name[0]; + int i = 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + { + first_pos = i; + first = name[i]; + } + i++; + } + return first_pos; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + if (first >= 0) + { + printf ("%s\n", name[first]); + char *temp = name[0]; + name[0] = name[first]; + name[first] = temp; + first = find_first (name + 1); + printf ("%s\n", name[1 + first]); + } + return 0; +} diff --git a/20151210/sort-4.c b/20151210/sort-4.c new file mode 100644 index 0000000..0d7c1c1 --- /dev/null +++ b/20151210/sort-4.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name) +{ + if (name == NULL || name[0] == NULL) + return -1; + int first_pos = 0; + char *first = name[0]; + int i = 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + { + first_pos = i; + first = name[i]; + } + i++; + } + return first_pos; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int i = 0; + int first = find_first (name + i); + while (first >= 0) + { + printf ("%s\n", name[first + i]); + char *temp = name[0 + i]; + name[0 + i] = name[first + i]; + name[first + i] = temp; + i++; + first = find_first (name + i); + } + return 0; +} diff --git a/20151210/sort-5.c b/20151210/sort-5.c new file mode 100644 index 0000000..7bab242 --- /dev/null +++ b/20151210/sort-5.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name, int start_index) +{ + if (name == NULL || name[start_index] == NULL) + return -1; + int first_pos = start_index; + char *first = name[start_index]; + int i = start_index + 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + { + first_pos = i; + first = name[i]; + } + i++; + } + return first_pos; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int start = 0; + int first = find_first (name, start); + while (first >= 0) + { + printf ("%s\n", name[first]); + char *temp = name[start]; + name[start] = name[first]; + name[first] = temp; + start++; + first = find_first (name, start); + } + return 0; +} diff --git a/20151210/sort-6.c b/20151210/sort-6.c new file mode 100644 index 0000000..83e7800 --- /dev/null +++ b/20151210/sort-6.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name, int start_index) +{ + if (name == NULL || name[start_index] == NULL) + return -1; + int first_pos = start_index; + char *first = name[start_index]; + int i = start_index + 1; + while (name[i]) + { + if (strcmp (name[i], first) < 0) + { + first_pos = i; + first = name[i]; + } + i++; + } + return first_pos; +} + +void sort (char **name) +{ + int start = 0; + int first = find_first (name, start); + while (first >= 0) + { + char *temp = name[start]; + name[start] = name[first]; + name[first] = temp; + start++; + first = find_first (name, start); + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + for (int i = 0; name[i]; i++) + printf ("%s\n", name[i]); + return 0; +} diff --git a/20151210/sort-7.c b/20151210/sort-7.c new file mode 100644 index 0000000..7af587c --- /dev/null +++ b/20151210/sort-7.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (200000); + return strcmp (name[left], name[right]); +} + +int find_first (char **name, int first_pos) +{ + if (name == NULL || name[first_pos] == NULL) + return -1; + int i = first_pos + 1; + while (name[i]) + { + if (compare (name, i, first_pos) < 0) + first_pos = i; + i++; + } + return first_pos; +} + +void sort (char **name) +{ + if (name) + for (int i = 0; name[i] != NULL; i++) + { + int first = find_first (name, i); + char *temp = name[i]; + name[i] = name[first]; + name[first] = temp; + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names); + output (names); + return 0; +} diff --git a/20151210/sort-8.c b/20151210/sort-8.c new file mode 100644 index 0000000..30f7647 --- /dev/null +++ b/20151210/sort-8.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (100000); + return strcmp (name[left], name[right]); +} + +void sort (char **name, int size) /* Wikipedia: bubblesort1 */ +{ + for (int n = size; n > 1; n--) + for (int i = 0; i < n - 1; i++) + if (compare (name, i, i + 1) > 0) + { + char *temp = name[i]; + name[i] = name[i + 1]; + name[i + 1] = temp; + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 16); + output (names); + return 0; +} diff --git a/20151210/sort-9.c b/20151210/sort-9.c new file mode 100644 index 0000000..3fd3f44 --- /dev/null +++ b/20151210/sort-9.c @@ -0,0 +1,63 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comp_counter = 0; + +void clear_screen (void) +{ + printf ("\e[H\e[J"); +} + +void output_marked (char **name, int mark1, int mark2) +{ + clear_screen (); + for (int i = 0; name[i]; i++) + if (i == mark1 || i == mark2) + printf ("%s <--\n", name[i]); + else + printf ("%s\n", name[i]); + printf ("%d\n", comp_counter); +} + +void output (char **name) +{ + output_marked (name, -1, -1); +} + +int compare (char **name, int left, int right) +{ + comp_counter++; + output_marked (name, left, right); + usleep (100000); + return strcmp (name[left], name[right]); +} + +void sort (char **name, int size) /* Wikipedia: bubblesort2 */ +{ + int sorted = 0; + int n = size; + while (n > 1 && !sorted) + { + sorted = 1; + for (int i = 0; i < n - 1; i++) + if (compare (name, i, i + 1) > 0) + { + sorted = 0; + char *temp = name[i]; + name[i] = name[i + 1]; + name[i + 1] = temp; + } + n--; + } +} + +int main (void) +{ + char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (names, 16); + output (names); + return 0; +} -- GitLab