HUE


  • Mod



  • wo scheiterts denn? an der ausgabe, die ist leicht, wenn man sich mal ein wenig
    damit beschäftigt, scheue nicht davor stift und papier zu verwenden, das zeugs
    beisst nich =b

    ich vermute du bist im 1. Jahr, woraus folgt du hast von printf - arrays alles
    gelernt (pointer wahrscheinlich erst nächstes jahr)...

    also, schau dir die ausgabe an, da hast du ja 3*3 elemente... also 9 elemente
    daraus folgt du nimmst am besten ein int feld:

    //#define FELD_SIZE 9
    int table[FELD_SIZE];
    

    soweit du wohl wissen wirst, fängt der index eines vektors bei 0 an, woraus folgt:

    1. Element ist 1A, woraufhin du den index auf 0 stellst, letztes element ist 3C,
    woraufhin du den index auf 8 stellst.

    -->

    //char stringListe[9][3]={
    //		"1A", "1B", "1C", "2A", "2B", "2C", "3A", "3B", "3C"
    //	};
    
    for(i=0; i<FELD_SIZE; i++)
      if(strcmp(input, stringListe[i] == 0){
         idx=i;
         break;
      }
    

    jetzt hast du den index =b

    von dieser grundlage her solltest du das programm herleiten können =b

    [EDIT:] hab jetzt die indexierung verwechselt, soll ja so heissen:

    //char stringListe[9][3]={
    //		"1A", "2A", "3A", "1B", "2B", "3B", "1C", "2C", "3C"
    //	};
    


  • Ich würde für ein zweidimensionales Spielfeld auch eine zweidimensionale Datenstruktur nehmen, etwa so:

    #include <stdio.h>
    
    struct feld
    {
    	char reihe;
    	char spalte;
    	char inhalt;
    };
    
    struct feld spielfeld[4][4];
    
    void iniSpielfeld()
    {
    	int reihe;
    	int spalte;
    
    	char reiheBez[] = " ABC";
    	char spalteBez[] = " 123";
    
    	for(reihe = 0; reihe < 4; ++reihe)
    		for(spalte = 0; spalte < 4; ++spalte)
    		{
    			spielfeld[reihe][spalte].reihe = reiheBez[reihe];
    			spielfeld[reihe][spalte].spalte = reiheBez[spalte];
    			if(!reihe)
    				spielfeld[reihe][spalte].inhalt = spalteBez[spalte];
    			else if(!spalte)
    				spielfeld[reihe][spalte].inhalt = reiheBez[reihe];
    			else
    				spielfeld[reihe][spalte].inhalt = ' ';
    		}
    }
    
    void druckSpielfeld()
    {
    	int reihe;
    	int spalte;
    
    	printf("--------\n");
    	for(reihe = 0; reihe < 4; ++reihe)
    	{
    		for(spalte = 0; spalte < 4; ++spalte)
    		{
    			printf("%c%c", 179, spielfeld[reihe][spalte].inhalt);
    		}
    		printf("%c\n--------\n", 179);
    	}
    }
    
    int main()
    {
    	iniSpielfeld();
    	druckSpielfeld();
    }
    


  • CStoll schrieb:

    Was hast du denn bisher schon geschafft? Fertige Programme bekommst du hier idR nur, wenn du genug Bargeld anbietest. Ansonsten bieten wir eher Hilfe zur Selbsthilfe an.

    Ist doch toll: "Ich habe eine Hausaufgabe und weiss nicht, wie ich die lösen soll - viel nachdenken will ich auch nicht". Erstaunlich nur, dass solchen Faulpelzen oft sogar auf die Sprünge geholfen wird. Sollten wir besser seinlassen! 😃



  • berniebutt schrieb:

    CStoll schrieb:

    Was hast du denn bisher schon geschafft? Fertige Programme bekommst du hier idR nur, wenn du genug Bargeld anbietest. Ansonsten bieten wir eher Hilfe zur Selbsthilfe an.

    Ist doch toll: "Ich habe eine Hausaufgabe und weiss nicht, wie ich die lösen soll - viel nachdenken will ich auch nicht". Erstaunlich nur, dass solchen Faulpelzen oft sogar auf die Sprünge geholfen wird. Sollten wir besser seinlassen! 😃

    Wahrscheinlich kompensieren wir damit, dass wir früher unsere Hausaufgaben auch nicht gemacht haben - Restschuld begleichen 😃



  • PrettyP schrieb:

    Wahrscheinlich kompensieren wir damit, dass wir früher unsere Hausaufgaben auch nicht gemacht haben - Restschuld begleichen 😃

    so is es =b

    @Belli
    ach ja wegen der datenstructur... wer weiß ob die strukturen auch schon in der
    1. gemacht haben... zudem: unnötig, da du "zeile, spalte" nicht brauchst, inhalt
    alleine reicht schon, weil du ja durch das zweidimensionale feld das gesuchte
    Feld hast.



  • Ja, wer weiß das schon?
    Und wer weiß schon, ob er überhaupt in 'der 1.' ist?
    Und da die relevanten Zeilen und Spalten nicht direkt durch ihre Position, sondern durch einen Namen ('A' ... bzw. '1' ...) beschrieben werden, ist es schon sinnvoll, dieses Bezeichnung mit in die Struktur aufzunehmen.
    Man könnte zB. auf die Idee kommen, die Trennzeichen ('-', '│') bei der Initialisierung des Spielfeldes gleich mit in das Array aufzunehmen, und dann ist Spalte 1 eben nicht mehr Array-Element [][1] ...

    Im übrigen zielte 'Datenstruktur' auch nicht darauf ab, eine Struktur zur Beschreibung eines Feldes zu benutzen, sondern darauf, dass in Deinem fetzenhaften Vorschlag eindimensionale Arrays zum Einsatz kommen sollten, um ein zweidimensionales Spielfeld zu verwalten.



  • 1. Das Beispiel ist keines falls ein ende 2. Klasse oder höher gerecht, das schreibt
    zum beispiel ein HTL Schüler ende 2. Klasse (ein Genügend Schüler) in maximal
    10 minuten.
    2. Da hast du durchaus recht, hab mich da ein wenig zu sehr auf das Schema das
    vorgegeben war verlassen.
    3. inwiefern 1 dimensional? Es ist ein 2 dimensionales, für jedes element die bezeichnung.

    Und vorab noch was: wenn ein schüler, der so ein leichtes Beispiel erhält, keinerlei
    Source-Code preis gibt, erfolgt folgendes: es ist ein Schüler, welcher wohl gerade
    mal ein genügend kandidat ist und sich schwer tut. Was ja kein problem ist, für
    sowas ist ein forum da, um denjenigen zu helfen.



  • Zumindest das hier:

    itedvo schrieb:

    //#define FELD_SIZE 9
    int table[FELD_SIZE];
    

    ...

    //char stringListe[9][3]={
    //		"1A", "1B", "1C", "2A", "2B", "2C", "3A", "3B", "3C"
    //	};
    
    for(i=0; i<FELD_SIZE; i++)
      if(strcmp(input, stringListe[i] == 0){
         idx=i;
         break;
      }
    

    jetzt hast du den index =b

    [/cpp]

    sieht für mich alles nach eindimensionalen Arrays aus ..., wenn man mal davon absieht, dass C-Strings per se schon eine Dimension haben, und ein Array von Strings aus diesem Grunde technisch gesehen natürlich zwei Dimensionen haben muss. Aber bei Deinen Codeauszügen zur Bearbeitung (for ...) sehe ich nichts von der Berücksichtigung einer zweiten Dimension ...

    itedvo schrieb:

    1. Das Beispiel ist keines falls ein ende 2. Klasse oder höher gerecht, das schreibt
    zum beispiel ein HTL Schüler ende 2. Klasse (ein Genügend Schüler) in maximal
    10 minuten.
    2. Da hast du durchaus recht, hab mich da ein wenig zu sehr auf das Schema das
    vorgegeben war verlassen.
    3. inwiefern 1 dimensional? Es ist ein 2 dimensionales, für jedes element die bezeichnung.

    Und vorab noch was: wenn ein schüler, der so ein leichtes Beispiel erhält, keinerlei
    Source-Code preis gibt, erfolgt folgendes: es ist ein Schüler, welcher wohl gerade
    mal ein genügend kandidat ist und sich schwer tut. Was ja kein problem ist, für
    sowas ist ein forum da, um denjenigen zu helfen.

    Zu 1.
    Wie kann man das wissen, wenn man diese Aufgabe doch nur Schülern der 1. vorlegt ...?
    Zu 3. siehe oben

    Zu vorab noch etwas (wieso kommt 'vorab noch etwas' eigentlich zum Schluss?):
    ähhh, ja ... und? Was sollen mir diese Worte sagen?



  • berniebutt schrieb:

    Erstaunlich nur, dass solchen Faulpelzen oft sogar auf die Sprünge geholfen wird. Sollten wir besser seinlassen! 😃

    Helfen ist kein Problem - nur imho bringt es weder uns noch einem Fragesteller etwas, wenn wir die Aufgaben für ihn lösen. Deshalb sagte ich auch "Hilfe zur Selbsthilfe" - der Fragesteller sollte seine bisherigen Ansätze hier vorführen, dann können die Experten ihn auf Fehler hinweisen oder Verbesserungsvorschläge geben.

    itedvo schrieb:

    Und vorab noch was: wenn ein schüler, der so ein leichtes Beispiel erhält, keinerlei
    Source-Code preis gibt, erfolgt folgendes: es ist ein Schüler, welcher wohl gerade
    mal ein genügend kandidat ist und sich schwer tut. Was ja kein problem ist, für
    sowas ist ein forum da, um denjenigen zu helfen.

    Gerade bei einem Schüler sollte man davon ausgehen, daß die gestellten Aufgaben mit den Kenntnissen zu lösen sind, die vorher im Unterricht vermittelt wurden - wer da keinen Lösungsansatz findet, hat vermutlich das falsche Fach gewählt.


Anmelden zum Antworten