Zum Inhalt springen

Benötige Hilfe bei einer Aufgabe


Goldrausch

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :D

Bearbeitet von VaNaTiC
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 Zeilenanzahl
  • Deklariere maxCol für maximale Spaltenanzahl
  • Deklariere mehrdimensionales Feld (Array) mit maxRow und maxCol
  • Für currentRow = 0; currentRow < maxRow; increment currentRow
  • Für currentCol = 0; currentCol < maxCol; increment currentCol


  • Lese Feld[currentRow][currentCol] von Tastatur ein


  • Ende Schleife currentCol


  • Ende Schleife currentRow

:hells:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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);

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Pseudocode:

  • Deklariere maxRow für maximale Zeilenanzahl
  • Deklariere maxCol für maximale Spaltenanzahl
  • Deklariere mehrdimensionales Feld (Array) mit maxRow und maxCol
  • Für currentRow = 0; currentRow < maxRow; increment currentRow
  • Für currentCol = 0; currentCol < maxCol; increment currentCol


  • Lese Feld[currentRow][currentCol] von Tastatur ein


  • Ende 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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

TDM hat die Frage doch schon beantwortet natürlich geht es um C
Ich 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++

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...