Wie erstelle ich ein Programm mit zweidimensionalem Array?
-
Hallöchen allerseits,
ich bin vor etwas mehr als einem Monat im zweiten Lehrjahr als "Fachinformatiker Systemintegration" eingestiegen...soweit komm ich eigentlich ganz gut mit. Nur SAE (Software Andwendungsentwicklung) macht mir ziemliche Schwierigkeiten - bis vor Beginn meiner Lehre hab ich noch etwas mit C zu tun gehabt (jaja die Schrauber halt
). Vom logischen Verständnis komme ich so langsam rein, aber im Umgang mit Aufgaben und Problemstellungen ist es doch schon sehr komplex. Nun meine Frage: wir sollen bis Freitag selber ein Programm schreiben in dem ein zweidimensionales Array angelegt und ausgelesen wird. Das soll ungefähr so aussehen: in der x-Achse sollen es ca. 20 stellen, in der y-Achse max. 10 Stellen sein. Diese sollen mit Namen belegt werden (jede Zeile ein Name). Diese sollen anschliessend ausgegeben werden. Das Programm soll die eingegeben Namen untersuchen und die Häufigkeit eines Buchstabens ausgeben. Also nachdem die eingegeben Namen auf dem Bildschirm angezeigt wurden, fragt das Programm nach einem Buchstaben und dessen Häufigkeit im Array wird anschliessend ausgegeben.
Hört sich ziemlich kompliziert an, oder? Naja, als absoluter Neueinsteiger habe ich eigentlich überhaupt keine Ahnung wie ich das bewerkstelligen soll, zumal wir am Freitag noch eine Arbeit darüber schreiben
Ich weiss nur wie man dieses Array wohl anlegt:char beispielarray [20][10]; - wäre das richtig?
Ich bin für jede Hilfe dankbar, besten Dank und schöne Woche, Matthias
-
Da du schon mal weisst wie man so ein Array anlegt bist du a schon ein gutes Stück weiter.
Das was du geschrieben hast stimmt auch.
Du hast ein 20 Elementiges Feld von 10 Elementigen char-Feldern angelget.
Da ein char-Array in aller Regel äquivalent einem String ist, kann man auch sagen du hast ein 20-Elementiges Feld von Strings der festen länge 10.
Zum Einlesen:
Ihr hab sicher schon Schleifen behandelt oder ?
Überleg dir dochmal wie man die Benutzen könnte umd Benutzereingaben in das Array einzufügen.Zum Überprüfen der Häufigkeit:
Der tirivial Algorithmus funktioniert wieder mit Schleifen.
PesudocodeDurchlaufe Array20 von 0 bis Grenze Durchlaufe jedes Element von 0 bis Grenze wenn aktuelles Element = gesuchter Buchstabe zähler=zähler+1 ende ende
Probier mal was aus und wenn du Probleme hast poste die genauen Problem im Ansi-C Forum.
-
JackLucifer schrieb:
in der x-Achse sollen es ca. 20 stellen, in der y-Achse max. 10 Stellen sein
char beispielarray [20][10];Achtung: dein beispielarray[][] (welches eigentlich schon eine Matrix ist :-)) ) besteht aus 20 Zeilen mit jeweils 10 Spalten;
deiner Beschreibung nach sollen die Zeilen aber 20 Stellen lang sein
Zur Beschreibung von Punkten in einem Koordinatensystem gibt man die x-Koordinate (Position in horizontaler Richtung) im Tupel zuerst und dann als zweites die vertikale Position dh die y-Koordinate an (x,y). In einer Matrix beschreibt der erste Index die vertikale Position (Zeile) und der zweite Index die horizontale Position (Spalte) dh die Position innerhalb der Zeile;
Bsp.: tabelle[i][j] beschreibt das Element in Zeile i und spalte j
(denk daran: Indizierung in C/C++ von 0 bis n-1)
Ich hoffe, daß ich dich nicht noch mehr verwirrt habe
-
Danke für eure Hilfe, bin gerad noch am Tutorial wälzen, jetzt hab ich das mit der x,y Achse auch mal verstanden. Starte jetzt mal meinen ersten Anlauf zumindest das Array zu erstellen, eine Eingabe abzufragen, diese ins Array zu schreiben und anschliessen auszugeben.
Nochmal Danke, Matthias