[gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

[gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Meillo » 24.11.2011 13:42:55

Hoi Leute,

ich suche fuer C-Anfaenger eine interessante Aufgabenstellung, damit sie sich mit Pointern in C beschaeftigen. Von dynamischem Speicher (malloc) wissen sie noch nichts und das gienge mir auch zu weit. Ich stelle mir was auf Array-Basis vor. (Da kann noch nicht so viel schief gehen und man findet Fehler schneller.) Sie sollten halt statt Arrayzugriffen Zeiger verwenden.

Eine typische Aufgabe waere, die Stringfunktionen der Standardbibliothek nachzuprogrammieren. Aber das ist halt etwas oede.

Habt ihr vielleicht gute Ideen?
Use ed once in a while!

Benutzeravatar
TRex
Moderator
Beiträge: 8333
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von TRex » 24.11.2011 14:04:34

Wie wärs mit ein paar Sortieralgorithmen?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Meillo » 24.11.2011 14:45:31

TRex hat geschrieben:Wie wärs mit ein paar Sortieralgorithmen?
Ist leider auch nicht spannender, IMO.

Zudem halte ich persoenlich wenig davon mehrere von denen zu kennen. Normalerweise nimmt man in C qsort() mit einen Funktionszeiger und muss sich nicht darum kuemmen. (Funktionszeiger sind momentan hier noch zu kompliziert.) Und fuer (fast) alles andere eignet sich Bubblesort.

Nichts desto trotz: Danke fuer den Vorschlag.
Use ed once in a while!

uname
Beiträge: 12414
Registriert: 03.06.2008 09:33:02

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von uname » 24.11.2011 15:00:40

Also ein http://de.wikipedia.org/wiki/B-Baum welcher ja auch eine Art von Sortierung ist finde ich schon interessant.

Benutzeravatar
Dogge
Beiträge: 1899
Registriert: 13.09.2010 11:07:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Dogge » 24.11.2011 15:04:10

Wenn ich dran denke schau ich zu Hause mal nach Übungsaufgaben. Könnte da noch was haben.
Debian Testing + Gnome | Linux-Anfänger seit 04/2003
http://files.mdosch.de/2014-07/0xE13D657D.asc

Benutzeravatar
TRex
Moderator
Beiträge: 8333
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von TRex » 24.11.2011 15:27:45

Uns wurde damals ein AVL-Baum aufgetragen (grad in den alten Übungsblättern nachgesehen). Das setzt aber schon Vorwissen vorraus :)
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
crhn
Beiträge: 67
Registriert: 30.04.2011 12:24:27
Lizenz eigener Beiträge: MIT Lizenz

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von crhn » 24.11.2011 21:54:28

Auf Palindrome (OTTO) prüfen kann man mit Pointern machen.
Jetzt auch nicht so spannend, hat mir aber damals Spaß gemacht.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von lemak » 24.11.2011 23:38:59

IMO erklären Listen und Bäume Zeiger ganz gut. Am Array kann man wiederum gut aufzeigen das man mit Zeigern auch Rechnen, inkrementieren, usw. kann. Was bei Ketten und Bäume schwierig sein sollte.

Vllt eine "binäre Suche" auf dem Array - Fände ich jetzt nicht unbedingt langweilig. Gerade wenn man das Prinzip so zu suchen vorher noch nicht kannte (http://www-i1.informatik.rwth-aachen.de ... /algo1.php).
crhn hat geschrieben:Auf Palindrome (OTTO) prüfen kann man mit Pointern machen.
Auch gut.

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von bmario » 25.11.2011 10:53:45

Zahlenraten mt Löwensuche.
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

Dot
Beiträge: 124
Registriert: 22.10.2010 22:20:42
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Gießen

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Dot » 25.11.2011 16:58:52

Hallo Meillo,

evtl. ist hier was dabei.
http://c.learncodethehardway.org/book/
Habe die Aufgaben selber nicht gemacht, deshalb kann ich nicht sagen ob sie wirklich spannend sind,
aber einen Blick sind sie bestimmt Wert :)

Grüße
Dot
Notebook: Debian Wheezy / i3-WM
"Höflichkeit ist Klugheit, folglich ist Unhöflichkeit Dummheit." (Arthur Schopenhauer)

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Meillo » 25.11.2011 18:44:39

Danke fuer die vielen Vorschlaege.
uname hat geschrieben:Also ein http://de.wikipedia.org/wiki/B-Baum welcher ja auch eine Art von Sortierung ist finde ich schon interessant.
Hmm. Momentan sind verzeigerte Datenstrukturen (die man ueblicherweise auch mit malloc() anlegt) noch unbekannt. Es geht um die Vorstufe: Zeiger schon, aber nicht zum Verketten von Objekten.

Wenn wir bei verketteten Datenstrukturen und dynamischem Speicher sind, dann steht eine ganze Welt von interessanten Aufgaben offen.

crhn hat geschrieben:Auf Palindrome (OTTO) prüfen kann man mit Pointern machen.
Jetzt auch nicht so spannend, hat mir aber damals Spaß gemacht.
Das hoert sich nicht schlecht an.

bmario hat geschrieben:Zahlenraten mt Löwensuche.
Was bitte ist denn die Loewensuche? Mir scheint, da lerne ich auch noch was Neues. ;-)

Dot hat geschrieben: evtl. ist hier was dabei.
http://c.learncodethehardway.org/book/
Habe die Aufgaben selber nicht gemacht, deshalb kann ich nicht sagen ob sie wirklich spannend sind,
aber einen Blick sind sie bestimmt Wert :)
Ach, das gibt's auch fuer C. Ich kenne ``Programming the Hard Way'' und fand das inspirativ. Danke fuer den Tipp. Ich werd's mir anschauen.
Use ed once in a while!

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von bmario » 26.11.2011 13:48:37

Meillo hat geschrieben:
bmario hat geschrieben:Zahlenraten mt Löwensuche.
Was bitte ist denn die Loewensuche? Mir scheint, da lerne ich auch noch was Neues. ;-)
Kennst du sicher, nur nicht unter diesem Namen.

Prinzip:

Code: Alles auswählen

#define SIZE 10
int data[size];
int* lower,upper;

for(int i=0;i<SIZE; i++)
{
    data[i] = i;
}

printf("Denke dir eine Zahl zwischen 0 und %d\n", SIZE-1);


while(1)
{
  int distance = upper - lower;
  int tipp = (lower + distance / 2);
  printf("Ist die Zahl etwa %d?\n", tipp
  // Lese ein, ob Zahl größer kleiner oder gleich

  // verschiebe upper bzw. lower

  //... 

}

Denke du kennst das ;)

*edit:

Als Löwensuche kenne ich das aus der Mathematik.

"Wie findet man einen Löwen in der Wüste?"
"Man halbiert die Wüste und entweder der Löwe ist in der einen oder der anderen Hälfte. Man halbiere nun die Hälfte, in der sich der Löwe befindet. Nun befindet sich der Löwe in der einen Hälfte oder in der anderen Hälfte...."

Mathematisch gesehen ist das eine konvergente Intervalschachtelung.
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

uname
Beiträge: 12414
Registriert: 03.06.2008 09:33:02

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von uname » 28.11.2011 10:51:26

Also das Löwenproblem kann man auch anders lösen:

http://www.triplespark.net/fun/loewenjagd.html

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: [gesucht] Nette kleine Uebungsaufgabe fuer Pointer in C

Beitrag von Meillo » 29.11.2011 09:11:10

bmario hat geschrieben: "Wie findet man einen Löwen in der Wüste?"
"Man halbiert die Wüste und entweder der Löwe ist in der einen oder der anderen Hälfte. Man halbiere nun die Hälfte, in der sich der Löwe befindet. Nun befindet sich der Löwe in der einen Hälfte oder in der anderen Hälfte...."
Aha: Binaere Suche.
Use ed once in a while!

Antworten