Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ideen für eine C-Übungsaufgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.11.2008, 13:44 Uhr
PHANTOMIAS



Hallo an alle!

Ich biete ein Tutorium an einer Hochschule für "Programmierung in C" an.
Ich bin nun auf der Suche nach einer kleinen C-Aufgabe, welche von C-Einsteigern
eigentlich problemlos innerhalb von gut 1h gelöst werden kann/soll.
Die Tutorienteilnehmer haben alle schon Programmierkenntnisse, entweder Java oder Delphi,
wobei das Verhältnis Javaelphi bei ca. 5:1 liegt.

Folgende Themengebiete sind bereits bekannt:
- if, for, while, do-while, switch
- Datentypen (int, double, floar, char)
- Konstanten anlegen und verwenden
- Tastatureingaben
- Adressen, Pointer, Arrays, Strings
- Funktionen mit Parametern und Rückgabewerten
- Mehrdimensionale Arrays

Die Aufgabe soll dazu dienen den bisherigen Wissensstand beurteilen zu können. Es soll
also keine knifflige Aufgabe sein, sondern zeigen ob sie den Umgang mit C bzw. Pointern,
Arrays, Strings verstanden haben.

Habt Ihr Ideen, was man für eine Aufgabe stellen könnte?

Gruß PHANTOMIAS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.11.2008, 14:28 Uhr
ao

(Operator)


Eine Übungsaufgabe mit einer Stunde Bearbeitungszeit, die all das abfragt, und zwar aussagekräftig und nicht nur angekratzt? Halte ich für schwierig.

Zumal beispielsweise "ordentliche" Tastatureingaben ja nicht nackt scanf oder getch oder sowas machen, sondern auch Buffer-Überschreitungen, ungültige Zeichen usw. geeignet abfangen. Eine Routine, die das gut erledigt, wäre z.B. eine denkbare Teilaufgabe, die auch noch weiterverwendet werden könnte.

Vielleicht: einen Satz eingeben und damit irgendeine Statistik treiben, Buchstaben zählen, nach Häufigkeit sortieren, Wortlängen auswerten, und das Ganze zum Vergleich mit deutschen und englischen Sätzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.11.2008, 14:55 Uhr
PHANTOMIAS



Danke für deine Antwort!

Ja, alles abfragen ist natürlich nicht möglich!

Aber halt mal eine Eingabe machen oder mehrere, diese in ein Array schreiben und was tun lassen mit Funktionsaufrufen, "Übergabe der Referenz", also der Adresse, und irgendwie wieder mit einer Schleife ausgeben lassen...
Ja, ordentliche Tastatureingaben mit der scanf()/gets()-Problematik will ich außen vor lassen. Das ist eine andere Baustelle, die nur Verwirrung schafft, da die Teilnehmer darüber noch nicht aufgeklärt sind.

Also mit einem Satz kann man glaube ich nicht allzu viel anstellen. Also ein wenig mehr dürfte es schon sein :-)

Gruß PHANTOMIAS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.11.2008, 18:47 Uhr
Hans
Library Walker
(Operator)


... mal sehen...

als erstes eine Zahl eingeben lassen, die als Radius einer Kugel gedeutet wird.
Die Zahl überprüfen, ob sie grösser als Null ist; Wenn nicht, Eingabe wiederholen.
Eine Funktion berechnet jeweils das Volumen und die Oberfläche der Kugel bei gegebenem, d.h. eingegebenem Radius. (Formeln in mathematischer Notation vorgeben.)
Die Ergebnisse merken.
Anschliessend Volumen und Oberfläche eines Ikosaeders berechnen lassen. In den Formeln ist eine Wurzel(2) als Faktor enthalten -> konstante.
Also Bonus dann berechnen, um wieviel Prozent sich Volumen und Oberfläche der beiden Körper voneinander unterscheiden.

Die ersten 20 oder 30 Elemente aus der Reihe der Fibonacci-Zahlen berechnen lassen und in einem Array merken. Ebenso die Werte für n! (n Fakultät) für n=1..30. Anschliessend die jeweils n-te Fibonacci-Zahl mit der n-ten Fakultät addieren, und die Ergebnisse in einem weiteren Array merken. Das ganze kann man auch in einem Array Z[30][3] machen.
Da die Zahlen dieser Reihen schnell sehr gross werden, kann man hier Typenkonvertierung ins Spiel bringen, sofern die schon bekannt ist.

Eine Funktion, erhält als Eingabe einen int-Wert und einen Zeiger auf ein char-array. Der int-Wert soll eine dezimale Zahl sein, in dem array soll die Funktion die Zahl als String in Hex-form zurück geben.

Ein Array von ca. 1000 char-elementen wird mit zufälligem Text gefüllt: erst eine (Zufalls-)Zahl zwischen 2 und ca. 12 berechnen, die als Wortlänge gedeutet wird. Dann genau so viele zufällige Buchstaben erzeugen, und in das Array schreiben, anschlissend ein Leerzeichen dahinter setzen. Das ganze so lange, bis das Array voll, bzw. fast voll ist. (Genau mitzählen.) Den Rest mit Nullen auffüllen.
Anschliessend Buchstaben und Wörter zählen: Der "Text" enthält so-und-soviel As, so-und-soviel bs, so-und-soviel Cs, usw. Insgesamt xxx "Wörter".


Soweit erst mal. Gescheiteres fällt mir gerade nicht mehr ein, aber vielleicht kannst Du mit dem einen oder anderen Vorschlag ja was anfangen. In einer Stunde schafft man das eh nicht alles.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.11.2008, 19:34 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ein einfaches sudoku-erzeugungsprogramm wär doch auch was? dürfte all das vorkommen was du dranbringen willst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.11.2008, 23:43 Uhr
Hans
Library Walker
(Operator)



Zitat von Hans:
Anschliessend Volumen und Oberfläche eines Ikosaeders berechnen lassen. In den Formeln ist eine Wurzel(2) als Faktor enthalten -> konstante.

Da hab ich mich vertan. Der konstante Faktor ist nicht Wurzel(2), sondern Wurzel(5) beim Volumen und Wurzel(3) bei der Oberfläche.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.11.2008, 10:11 Uhr
PHANTOMIAS



Danke für all eure Antworten.
Da ist doch schon einiges dabei was ich verwenden könnte.

Das Sudoku-Programm gefällt mir auf den ersten Blick sehr gut. Ich muss es mal selbst programmieren um zu schauen ob ich das denen zutrauen würde :-)

@Hans: Ich weiß schon was die Frage wäre wenn ich "Ikosaeders" in eine Aufgabe schreiben würde. "Was ist denn das?". Fibonacci finde ich da angenehmer, das haben die schon behandelt, das Andere könnte unbekannt sein und das "schreckt" gleich ab.

Ich werde mal Fibonacci und Sudoku ausprobieren.

Danke für eure Hilfe, Gruß PHANTOMIAS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.11.2008, 15:52 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von PHANTOMIAS:
@Hans: Ich weiß schon was die Frage wäre wenn ich "Ikosaeders" in eine Aufgabe schreiben würde. "Was ist denn das?".

ja okay, das kann natürlich passieren. Um dem vorzubeugen könnte man 'ne Skizze davon beifügen, denn gesehen hat so'n Teil wahrscheinlich jeder schon mal. Aber das muss Du ja wissen.


Zitat von PHANTOMIAS:
Fibonacci finde ich da angenehmer, das haben die schon behandelt, das Andere könnte unbekannt sein und das "schreckt" gleich ab.

warum kommt mir das eigentlich bekannt vor???


Zitat von PHANTOMIAS:
Danke für eure Hilfe,

Bitte sehr.

Mir ist übrigens noch was zum Thema Funktionen und Parameterübergabe eingefallen. Sofern Ihr Euch Fachlich irgendwo im naturwissenschaftlich technischen Bereich befindet, sollten doch alle schon mal davon gehört haben, das Temperaturen im angelsächsischen Sprachraum in "Grad Fahrenheit" gemessen werden. Dann könnte man eine Funktion schreiben lassen, die eine gegebene Temperatur von der einen Skala in die andere umrechnet. Was gefragt ist, wird der Funktion mit einem weiteren Parameter mitgeteilt, also etwa so:

C++:
int konvertierTemperatur (int T, char mode);

Dabei ist T der zu konvertierende Temperaturwert, und mode gibt an, ob die Eingabe in Fahrenheit oder Celsius vorliegt. Anhand dieses Parameters wird dann innerhalb der Funktion entschieden, was zu berechnen ist. Die Formel kann man vorgeben.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.11.2008, 23:13 Uhr
PHANTOMIAS



Hallo!

Das mit den Temperaturen ist auch eine Idee. Das werde ich auch mal austesten was man da so mit anstellen kann!

Danke + Gruß PHANTOMIAS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: