Veröffentlicht 17. Februar 200916 j Hallo, zusammen benötige hilfe bei Folgender Aufgabe Erstellen Sie eine 4x4 Matrix und lesen Sie die Werte mit Hilfe einer Tastatur ein. Währe nett wenn Ihr mir bei dieser Aufgabe helfen könntet.
17. Februar 200916 j naja, ich glaube Dir fehlt der Bezug was eine 4x4 Matrix im Rechner ist Wenn man sich ganz pragmatisch vorstellt, dass das ein zweidimensionales Array ist, sollte es Dir jetzt einfacher fallen, eine Lösung zu implementieren.
17. Februar 200916 j erlich gesagt ich verstehe immer noch Bahnhof. Ich habe von Programieren überhaupt kein Ahnung und soll nähste woche eine Arbeit davon schreiben.
17. Februar 200916 j Hmm, dann gibt es zwei Möglichkeiten: - Du hast nicht aufgepasst oder gelernt - Du bist im falschen Kurs Stell eines von beiden ab, dann sollte das klappen. Sollst Du den Algorithmus entwickeln, oder das ganze in einer Programmiersprache umsetzen? Was hast Du, was fehlt Dir konkret? Deine Hausaufgaben wird hier niemand machen. Peter
17. Februar 200916 j Deine Hausaufgaben wird hier niemand machen währe schön wenn das so währe die Zeit mit den Hausaufgaben ist bei mir schon lange vorbei. Das ist eine Klausuraufgabe im meinem Elektrotechnik studium. Also es soll als Algorithmus dargestellt werden Folgendes habe ich schon weiss aber nicht ob das so richtig ist. Das währe dann die Matrix: [0][1][2][3] [4] [0] 1 2 3 4 5 [1] 6 7 8 9 10 [2] 11 12 13 14 15 [3] 16 17 18 19 20 [4] 21 22 23 24 25
17. Februar 200916 j Das währe dann die Matrix: [0][1][2][3] [4] [0] 1 2 3 4 5 [1] 6 7 8 9 10 [2] 11 12 13 14 15 [3] 16 17 18 19 20 [4] 21 22 23 24 25Das ist eine 5x5-Matrix. Und ein Algorithmus ist es nicht.
17. Februar 200916 j OK dann halt das ganze in Programmiersprache und hier die richtige Matrix [0][1][2][3] [0] 1 2 3 4 [1] 5 6 7 8 [2] 9 10 11 [3]12 13 14 und wie geht das mit den Wete einlesen ???
17. Februar 200916 j und wie geht das mit den Wete einlesen ???Naja, einen nach dem anderen. Vermutlich soll das auf eine verschachtelte Schleife hinauslaufen. Weißt du, was ein Algorithmus ist?
17. Februar 200916 j Naja, einen nach dem anderen. Vermutlich soll das auf eine verschachtelte Schleife hinauslaufen. Weißt du, was ein Algorithmus ist? Ich habe es eben nachgeguckt Ein Algorithmus ist eine Verarbeitungsvorschrift, die aus einer endlichen Folge von eindeutig ausführbaren Anweisungen besteht, mit der man eine Vielzahl gleichartiger Aufgaben lösen kann. Ein Algorithmus gibt an, wie Eingabegrößen schrittweise in Ausgabegrößen umgewandelt werden.
17. Februar 200916 j UI, um Dir da konkreter weiterhelfen zu können, wäre es gut zu wissen, ob Du als Ergebnis eine theoretische Beschreibung des Algorithmus (zbsp. Struktugramm) oder einen Quellcode liefern sollst. kingofbrain hats schon gefragt und ich glaube Klotzkopp meinte das mit seiner Frage was ein Algorithmus ist, aber ich frags nochmal anders denn vielleicht hab ich's auch nicht verstanden Bearbeitet 17. Februar 200916 j von VaNaTiC
17. Februar 200916 j Also als Struktugramm definitiv nicht. das Ergebniss soll als Quellcode dargestellt werden.
17. Februar 200916 j Hallo, ich denke, es geht deinem Lehrer/Prof nur darum, zu testen, ob du algorithmisch denken kannst. Wenn du "ET"-Vorkenntnise hast, dann weisst du, wie man Widerstandsnetzwerke analysiert. Das ist ein Algorithmus. LG André
18. Februar 200916 j Naja, algorithmisches Denken ist eigentlich trivial, theoretisch muss man sich nur vorstellen, dass der Rechner dumm ist und ihm einfach jeden Schritt erklären, so wie man es selbst machen würde und dies dann in die jeweilige Syntax umsetzen. Pseudocode: Deklariere maxRow für maximale ZeilenanzahlDeklariere maxCol für maximale SpaltenanzahlDeklariere mehrdimensionales Feld (Array) mit maxRow und maxColFür currentRow = 0; currentRow < maxRow; increment currentRowFür currentCol = 0; currentCol < maxCol; increment currentColLese Feld[currentRow][currentCol] von Tastatur einEnde Schleife currentCol Ende Schleife currentRow :hells:
18. Februar 200916 j Ich habe hier eine ähnliche Aufgabe so sollte diese auch aussehen. 7.) Geben Sie im folgenden die jeweils erforderlichen Vereinbarungen / Anweisungen an: a.) Vereinbaren Sie einen Strukturtyp: lager und eine Strukturvariable: bestand des Typs lager mit den geeignet festzulegenden Komponenten: artikel, anzahl und preis. b.) Lesen Sie per Tastatur auf alle Komponenten Werte ein; dabei soll bei nicht erfolgreichem Lesen die jeweilige Eingabe des Wertes wiederholt werden! Lösung: a.) typedef struct {char artikel[20]; int anzahl; float preis;} lager; lager bestand; b.) int b; do { fflush (stdin); // Löschen Tastaturpuffer b = scanf("%s",bestand.artikel); } while (b == 0); do { fflush (stdin); // Löschen Tastaturpuffer b = scanf("%i",&bestand.anzahl); } while (b == 0); do { fflush (stdin); // Löschen Tastaturpuffer b = scanf("%f",&bestand.preis); } while (b == 0);
19. Februar 200916 j Ob Haus- oder Klausuraufgabe ist im Prinzip das selbe. Bei Studenten finde ich persönlich es ein wenig dreister, wenn nach einer Komplettlösung gefragt wird, weshalb Du hier voraussichtlich (von mir auf jeden Fall) keine Lösung kriegen wirst. Du hast in Deinem Beispiel ja schon gezeigt, dass Du (oder der Ersteller des Beispiels) weiß, wie Werte eingelesen werden. Jetzt überleg, was Du machen musst, damit Du die Werte für eine Matrix (Array von Arrays) erhältst (Stichwort Schleife). Und jetzt noch mal die Aufgabe an Dich: Arbeite an der Lösung und komm mit konkreten Problemen wieder. Deine skizzierte Matrix aus Deinem zweiten und dritten Post gilt nicht als Lösungsversuch. Peter
19. Februar 200916 j Also als Struktugramm definitiv nicht. das Ergebniss soll als Quellcode dargestellt werden. In einer bestimmten Programmiersprache, oder als Pseudocode? Im ersteren Fall wärst du hier im falschen Forum.
19. Februar 200916 j In einer bestimmten Programmiersprache, oder als Pseudocode? Im ersteren Fall wärst du hier im falschen Forum. Der Post 18.02.2009, 21:04 sieht ein bisschen nach C aus. :beagolisc
21. Februar 200916 j Habe für die Aufgabe: Erstellen Sie eine 4x4 Matrix und lesen Sie die Werte mit Hilfe einer Tastatur ein. Was raus gefunden: [0][1][2][3] [0] 1 2 3 4 [1] 5 6 7 8 [2] 9 10 11 [3]12 13 14 int b; do { fflush (stdin); // Löschen Tastaturpuffer b = scanf("%s",Matrix); } while (b == 0); Kann das so sein ?
22. Februar 200916 j Also mein C ist ein wenig eingerostet, deshalb ohne Gewähr: Du definierst eine Variable b, startest eine Schleife und liest in dieser Schleife so lange Werte aus der Standardeingabe in die Variable b, bis die Zahl "0" eingegeben wurde. Wo ist Deine Matrix? Und warum hörst Du beim ersten "0" auf? Wenn ich beim ersten Mal "0" eingebe, ist der Spaß vorbei. Definier also zu "b" noch Deine Matrix (int[][] matrix - evtl. musst Du die noch initialisieren, da kenne ich C zu schlecht) und lese die Werte in diese Matrix ein. Die einfache Schleife mit Deiner Abbruchbedingung hilft Dir da nicht. Du wirst vermutlich eine geschachtelte Schleife brauchen. In der ersten iterierst Du durch die Zeilen und in der zweiten durch die Spalten jeder Zeile. Dann sind Deine Abbruchbedingungen auch nicht die Eingabewerte, sondern die Länge der Arrays in Deiner Matrix. Hier mal ein bisschen Pseudocode: initialisiere Matrix und Eingabewert Variablen sowie Zählvariable für Spalte und Zeile (jeweils 0) Solange die aktuelle Zeile < der letzten Zeile in der Matrix ist Solange die aktuelle Spalte < der letzten Spalte in der Zeile ist Lies einen Wert ein und speichere ihn in der Matrix an der Stelle Zeile / Spalte Peter
25. Februar 200916 j Pseudocode: Deklariere maxRow für maximale ZeilenanzahlDeklariere maxCol für maximale SpaltenanzahlDeklariere mehrdimensionales Feld (Array) mit maxRow und maxColFür currentRow = 0; currentRow < maxRow; increment currentRowFür currentCol = 0; currentCol < maxCol; increment currentColLese Feld[currentRow][currentCol] von Tastatur einEnde Schleife currentCol Ende Schleife currentRow int maxRow = 4: int maxCol = 4; int matrix[maxRow][maxCol]; for (int currentRow = 0; currentRow < maxRow; ++currentRow) { for (int currentCol = 0; currentCol < maxCol; ++currentCol) { char *buffer = malloc(sizeof(char)); scanf("%s", buffer); matrix[currentRow][currentCol] = atoi(buffer); free(buffer); buffer = NULL; } } :hells:
26. Februar 200916 j habe im Internet etwas gefunden kann das so stimmen ?? Matrix: -------- -----[0][1][2][3] -----[0] 1 2 3 4 [Z]--[1] 5 6 7 8 -----[2] 9 10 11 -----[3]12 13 14 int z,s; for (Z=0; Z<4; Z++) for (S=0; S<4; S++)
27. Februar 200916 j habe im Internet etwas gefunden kann das so stimmen ??Ich finde es etwas verwunderlich, warum eine 4x4-Matrix nur 14 Einträge hat. Der gezeigte Code tut übrigens nichts. Ich glaube nicht, dass deine Strategie, irgendwelchen Code im Web zu suchen und dann hier zu fragen, ob das richtig ist, zielführend ist. Solche Aufgaben kann man üblicherweise nur lösen, wenn man über etwas verfügt, das im Fachjargon oft "Ahnung" genannt wird. Außerdem hat TDM dir bereits eine fast richtige Komplettlösung hingeklatscht - wenn es denn nun wirklich um C geht, denn meine Frage diesbezüglich hast du nicht beantwortet. Davon bin ich persönlich zwar nicht begeistert. Aber offenbar ist sie ja bei dir nicht angekommen.
27. Februar 200916 j TDM hat die Frage doch schon beantwortet natürlich geht es um CIch bin nicht davon ausgegangen, dass TDM an dich gestellte Fragen beantworten kann. Allerdings hatte ich vermutet, du hättest dir etwas dabei gedacht, als du diese Frage ins Algorithmik- und nicht ins C-Forum gestellt hast. Thread verschoben -> C und C++
27. Februar 200916 j Ich finde es etwas verwunderlich, warum eine 4x4-Matrix nur 14 Einträge hat. Weil Zeile [2] und [3] nur 3 Einträge hat. A.d.R: Flüchtigkeitsfehler. Außerdem hat TDM dir bereits eine fast richtige Komplettlösung hingeklatscht Fast?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.