Skip to content
Snippets Groups Projects
Commit e5a55ae5 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Übungsaufgaben und Musterlösung aktualisieren, 30.11.2023

parent 19c17aca
No related branches found
No related tags found
No related merge requests found
#include <stdio.h>
#include <string.h>
void insert_into_string (char src, char *target, int pos)
{
int len = strlen (target);
for (int i = pos; i < len; i++)
target[i + 1] = target[i];
target[pos] = src;
}
int main (void)
{
char test[100] = "Hochshule Bochum";
insert_into_string ('c', test, 5);
printf ("%s\n", test);
return 0;
}
No preview for this file type
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
% Attribution-ShareAlike 3.0 Unported License along with this % Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>. % document. If not, see <http://creativecommons.org/licenses/>.
% README: PBM-Grafik, Einfügen in Strings (Ergänzung), Fakultät % README: PBM-Grafik, Fakultät
\documentclass[a4paper]{article} \documentclass[a4paper]{article}
...@@ -204,6 +204,8 @@ ...@@ -204,6 +204,8 @@
hängt linear von $n$ ab; der Speicherplatzverbrauch ist also $\mathcal{O}(n)$. hängt linear von $n$ ab; der Speicherplatzverbrauch ist also $\mathcal{O}(n)$.
\end{itemize} \end{itemize}
\iffalse
\exercise{Einfügen in Strings (Ergänzung)} \exercise{Einfügen in Strings (Ergänzung)}
Diese Aufgabe ist eine Ergänzung von Aufgabe 3 der Übung vom 31.\ Oktober Diese Aufgabe ist eine Ergänzung von Aufgabe 3 der Übung vom 31.\ Oktober
...@@ -372,4 +374,6 @@ ...@@ -372,4 +374,6 @@
\end{enumerate} \end{enumerate}
\fi
\end{document} \end{document}
No preview for this file type
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
% Attribution-ShareAlike 3.0 Unported License along with this % Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>. % document. If not, see <http://creativecommons.org/licenses/>.
% README: PBM-Grafik, Einfügen in Strings (Ergänzung), Fakultät % README: PBM-Grafik, Fakultät
\documentclass[a4paper]{article} \documentclass[a4paper]{article}
...@@ -38,9 +38,9 @@ ...@@ -38,9 +38,9 @@
Übungsaufgaben -- 30.\ November 2023} Übungsaufgaben -- 30.\ November 2023}
Diese Übung enthält Punkteangaben wie in einer Klausur. Diese Übung enthält Punkteangaben wie in einer Klausur.
Um zu "`bestehen"', müssen Sie innerhalb von 75 Minuten Um zu "`bestehen"', müssen Sie innerhalb von 50 Minuten
unter Verwendung ausschließlich zugelassener Hilfsmittel unter Verwendung ausschließlich zugelassener Hilfsmittel
13 Punkte (von insgesamt \totalpoints) erreichen. 9 Punkte (von insgesamt \totalpoints) erreichen.
\exercise{PBM-Grafik} \exercise{PBM-Grafik}
...@@ -156,6 +156,8 @@ ...@@ -156,6 +156,8 @@
\points{3} \points{3}
\end{enumerate} \end{enumerate}
\iffalse
\exercise{Einfügen in Strings (Ergänzung)} \exercise{Einfügen in Strings (Ergänzung)}
Diese Aufgabe ist eine Ergänzung von Aufgabe 3 der Übung vom 2.\ November 2023 Diese Aufgabe ist eine Ergänzung von Aufgabe 3 der Übung vom 2.\ November 2023
...@@ -251,6 +253,8 @@ ...@@ -251,6 +253,8 @@
% \workspace{35} % \workspace{35}
\end{enumerate} \end{enumerate}
\fi
\begin{flushright} \begin{flushright}
\textit{Viel Erfolg!} \textit{Viel Erfolg!}
\end{flushright} \end{flushright}
......
#include <stdio.h>
#include <string.h>
void insert_into_string (char src, char *target, int pos)
{
int len = strlen (target);
for (int i = len; i >= pos; i--)
target[i + 1] = target[i];
target[pos] = src;
}
void insert_into_string_sorted (char src, char *target)
{
int i = 0;
while (target[i] && target[i] < src)
i++;
insert_into_string (src, target, i);
}
int main (void)
{
char test[100] = "";
insert_into_string_sorted ('c', test);
insert_into_string_sorted ('a', test);
insert_into_string_sorted ('d', test);
insert_into_string_sorted ('b', test);
printf ("test = \"%s\"\n", test);
for (char ch = 'e'; ch < 'z'; ch += 2)
insert_into_string_sorted (ch, test);
insert_into_string_sorted ('n', test);
printf ("test = \"%s\"\n", test);
return 0;
}
#include <stdio.h>
#include <string.h>
void insert_into_string (char src, char *target, int pos)
{
int len = strlen (target);
for (int i = len; i >= pos; i--)
target[i + 1] = target[i];
target[pos] = src;
}
void insert_into_string_sorted (char src, char *target)
{
int l = 0;
int r = 0;
while (target[r])
r++;
int m = (l + r) / 2;
while (m > l)
{
if (src < target[m])
r = m;
else
l = m;
m = (l + r) / 2;
}
if (target[m] == 0 || src < target[m])
insert_into_string (src, target, m);
else
insert_into_string (src, target, m + 1);
}
int main (void)
{
char test[100] = "";
insert_into_string_sorted ('c', test);
insert_into_string_sorted ('a', test);
insert_into_string_sorted ('d', test);
insert_into_string_sorted ('b', test);
printf ("test = \"%s\"\n", test);
for (char ch = 'e'; ch < 'z'; ch += 2)
insert_into_string_sorted (ch, test);
insert_into_string_sorted ('n', test);
printf ("test = \"%s\"\n", test);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment