Brauche Hilfe Bei Pflichtübung



  • 5 Euro?

    Dafür schalte ich ichtmal den Computer ein.

    Zeiten sind das heutzutage...



  • Entenwickler schrieb:

    Ich machs dir fuer 5 Euro (Paypal) und verspreche dir 95% der Punkte in der Aufgabe.

    Du verkaufst die recht billig



  • Wenn ich dafuer 20min brauchen wuerde waeren es immer noch 15 Euros/Stunde [unversteuert]. Wenn ich bedenke, dass ich sonst fuer 8 Euros Rotoren niete... Achja PC ist ja schon an 😉



  • Entenwickler schrieb:

    Wenn ich bedenke, dass ich sonst fuer 8 Euros Rotoren niete...

    Ich dachte du wickelst Enten 😕



  • THX 1138 schrieb:

    Entenwickler schrieb:

    Wenn ich bedenke, dass ich sonst fuer 8 Euros Rotoren niete...

    Ich dachte du wickelst Enten 😕

    Ja aber in der Ausbildung zum Entenwickler verdient man zu wenig, muss mich als Rotorennieter ueber Wasser halten 😞



  • hallo brauche die gleiche Übung,
    wäre also super, wenn du sie, wenn du sie bekommen hast ins netz stellen könntest



  • machen wir hier versteigerungen wer für wieviel programmiert -.- ?

    schreibt halt paar ansätze hin dann wird euch bestimmt geholfen, aber ohne ansätze usw. kommt ihr wohl nicht um eine bezahlung herum



  • aller anfang ist halt schwer. wenn ich wüsste, wie ich anfange, hätte ich nicht gefragt?



  • hi,
    diese pflichtübung musste ich heute auch abgeben.
    hab die auch noch nicht so 100%ig verstanden, aber trozdem mal bisl was dran rum gefummelt.
    ist exakt die selbe aufgabe und ich habe folgende lösung:

    #define LEN 20
    #include <stdlib.h>
    
    typedef unsigned short WORD;
    typedef struct {
    	int Top;
       WORD Daten[LEN];
    }Buffer;
    typedef Buffer *HDLD;
    typedef enum {BufOK=0, BufEmpty=1,BufFull=2, BufError=0xFF}BufStatus;
    
    //aufgabe A
    HDLD InitBuf();
    {
    	HDLD myBuffer=calloc(1,sizeof(Buffer)); //Anlegen eines Speicherplatzes
       myBuffer -> Top=-1; //Setzt den Buffer auf Top=-1
       return myBuffer; //Gibt die Adresse von myBuffer zurück
    }
    //A Ende
    //aufgabe B
    BufStatus WriteElem(HDLD Buf, WORD w)
    {
    	if (Buf == NULL) //für den Fall, das der Buffer nicht angelegt wurde
       {
       	return BufError;
       }
       else
       {
       	if (Buf->Top<LEN-1)
          {
          	Buf->Top++;
          	Buf->Daten[Top]=w; //Wert von 'w' wird in den Speicher geschrieben
             return BufOK; //Gibt wieder, das das Schreiben in den Buffer OK war
          }
          else
          {
          	return BufFull; //Gibt wieder, dass der Buffer voll ist
          }
    	}
    }
    //Ende B
    //Aufgabe C
    BufStatus ReadElem(HDLD Buf, WORD *w)
    {
    	if(Buf == NULL)     //Für den Fall, dass der Buffer nicht angelegt wurde
       {
    		return BufError;
       }
       else
       {
         	if	((Buf->Top)>buf->Top-1)
          {
         		w=buf->Daten[Top]; //Wert wird an w übergeben
          	buf->Top--; //dekrementierung von Top
             return BufOK;
          }
          else
          {
          	return BufEmpty;
          }
       }
    }
    //Ende C
    //Aufgabe D
    int ChkBuf(HDLD buf, WORD min, WORD max);
    
    	int Ergebnis=0;
       HDLD Temp=InitBuf;
       while(ReadElem(Buf,&w)!=BufEmpty)
       {
       	WriteElem(temp,w);
          if (w< min)
          {
          	Ergebnis=-1;     //wenn min kleiner daraus folgt -1
          }
          else
          {
          	if (w>max)
             {
             	Ergebnis=1;  //wenn max größer daraus folgt 1
             }
          }
    
    while (ReadElem(temp,&w)!=BufEmtpy)        //schreibt die Werte wieder zurück in den ersten Speicher
    {
    	WriteElem(buf,w);                       //Chk stimmt mit Buf exakt überein
    }
    return Ergebnis; //Gibt das Ergebnis wieder
    }
    
    //Ende D
    

    wäre euch sehr dankbar, wenn ihr en paar sachen erleutern könntet.
    zum beispiel.. ähm alles 😃
    nein quatsch.

    if (Buf->Top<LEN-1)
          {
          	Buf->Top++;
          	Buf->Daten[Top]=w; //Wert von 'w' wird in den Speicher geschrieben
             return BufOK; //Gibt wieder, das das Schreiben in den Buffer OK warif (Buf->Top<LEN-1)
          {
          	Buf->Top++;
          	Buf->Daten[Top]=w; //Wert von 'w' wird in den Speicher geschrieben
             return BufOK; //Gibt wieder, das das Schreiben in den Buffer OK war
    
    HDLD InitBuf();
    
    HDLD Temp=InitBuf;
    
    while(ReadElem(Buf,&w)!=BufEmpty)
       {
       	WriteElem(temp,w);
    

    besonders diese WriteElem und ReadElem geschichte hab ich noch nich so 100%ig aufm kasten. kann das jemand besser erklären als die "herkömmlichen" erklärungen, die zu finden sind ? also auch für doofe 😉



  • also alle erklärungen für doofe ^^


Anmelden zum Antworten