Seite 3 von 3

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: So Sep 07, 2008 8:49 pm
von Xin
dani93 hat geschrieben:
Xin hat geschrieben:Programmierst Du die Aufgabe auch?
Ich hab schon zwei mal angesetzt, bin aber immer schon ziemlich am Anfang hängen geblieben...
Woran hakt's denn?
dani93 hat geschrieben:
Xin hat geschrieben:Bisher hat nämlich noch niemand das spaßige Wort, um das es bei der Aufgabe geht, genannt. ^^
Welches spaßige Wort?
HerrKlinke wüsste es vermutlich, er outete sich als Kellerkind und jedes anständige Kellerkind kennt das Wort.

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: So Sep 07, 2008 9:02 pm
von nufan
Xin hat geschrieben:Woran hakt's denn?
An vielem... ich will jetzt nicht alles aufzählen. Ich versuch mich morgen noch mal dran und melde mich dann mit Problemen (die es sicher geben wird).
Xin hat geschrieben:HerrKlinke wüsste es vermutlich, er outete sich als Kellerkind und jedes anständige Kellerkind kennt das Wort.
Wie wärs mit noch einem kleinen Tipp? ;)

Lg

EDIT: Eingabe mit scanf oder Parameter? Wenn Parameter mit Leerzeichen zwischen den Zeichen (mehrere Strings) oder ohne (nur 1 String)?

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: So Sep 07, 2008 9:49 pm
von Xin
dani93 hat geschrieben:
Xin hat geschrieben:Woran hakt's denn?
An vielem... ich will jetzt nicht alles aufzählen. Ich versuch mich morgen noch mal dran und melde mich dann mit Problemen (die es sicher geben wird).
Normal... darum ist es ja auch eine gute Übung, damit man lernt diese Probleme zu umgehen.
dani93 hat geschrieben:
Xin hat geschrieben:HerrKlinke wüsste es vermutlich, er outete sich als Kellerkind und jedes anständige Kellerkind kennt das Wort.
Wie wärs mit noch einem kleinen Tipp? ;)
Ich gebe keine Tipps ;)
dani93 hat geschrieben:EDIT: Eingabe mit scanf oder Parameter? Wenn Parameter mit Leerzeichen zwischen den Zeichen (mehrere Strings) oder ohne (nur 1 String)?
Scanf... taugt (hier wie überall) nicht viel.

afair: programm "1+2*3"

Ansonsten pack den String einfach ins Programm... das Programm soll schließlich ein Beispiel sein, keine Anwendung.

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Mo Sep 08, 2008 8:56 am
von fat-lobyte
dani93 hat geschrieben:EDIT: Eingabe mit scanf oder Parameter? Wenn Parameter mit Leerzeichen zwischen den Zeichen (mehrere Strings) oder ohne (nur 1 String)?
Ihr konzentriert euch zu sehr auf Details. Wie die eingabe funktioniert ist egal. scanf, cout, parameter, datei oder mit Schmetterlingen.
Das war in der Aufgabe nicht vorgegeben, also steht es euch frei. Sucht euch das nötigste aus.

Das was ihr bis jetzt als "eigentlich machbar", und "nur kleine Probleme" beschrieben habt, das ist nicht ganz richtig. In der Aufgabe stecken so einige Konzepte drinnen. Deine "kleinen Problemchen" sind also das, was den Anfänger vom Fortgeschrittenen unterscheidet.
Versucht mal etwas weniger zu fragen, und etwas mehr selbst zu arbeiten - das gehört nämlich auch dazu.
Natürlich könnt ihr fragen wenn ihr mal nicht weiterkommt. Allerdings: "Nicht weiterkommen" bedeutet, dass ihr auch selbst genug über das Problem nachgedacht habt, ohne eine Lösung zu finden. Ich persönlich versuche erst eine Woche lang nachzudenken, und erst dann irgendwo Fragen zu stellen. Bis dahin: probieren, lesen und vor allem VIIEEEEL googeln.
Bis jetzt hats immer geholfen. (Und zwar meistens als ich kurz vorm aufgeben war ;) )

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Mo Sep 15, 2008 11:04 am
von Dirty Oerti
*Grins*

Warum nicht :)
Nette Aufgabe.

Ich mach mich mal dran.
Mal schauen wie weit ich komme^^

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Fr Sep 26, 2008 8:53 am
von aqe89
Befohr ich für eine Weile inaktiv werde wollte ich noch sagen das ich mir vorgestern ein paar gedanken zum Rechner gemacht habe und insgesamt 2 Stunden lang programmiert habe, der grossteil ist Fertig.

Es fehlen ein paar Funktionen:
-Wurzel, währe aber nicht schwer zu machen
-Ein paar Bearbeitungen des Strings (zusammenfügen, ersetzen, splitten)
-die Speicheranforderung mittels malloc für die eingegebenen Zahlenwerte
-Wertezuweisung für eine Struktur
-main Funktion

Ich werde heute abend noch den Quellcode den ich bis jetzt gemacht habe Posten, bitte nicht erschrecken. Für die Planung und die programmieren habe ich nur 3 Stunden gebracuht, da kann nicht ein hochqualitativer Code entstehen.

Die Komentare sind auch wenige, und die es gibt sind manchmal ein bischen Verwirend.

grues AQE89

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Fr Sep 26, 2008 9:05 am
von Xin
aqe89 hat geschrieben:Befohr ich für eine Weile inaktiv werde wollte ich noch sagen das ich mir vorgestern ein paar gedanken zum Rechner gemacht habe und insgesamt 2 Stunden lang programmiert habe, der grossteil ist Fertig.
Was kommt bei der Aufgabe raus: "1+2*3"?
aqe89 hat geschrieben:Ich werde heute abend noch den Quellcode den ich bis jetzt gemacht habe Posten, bitte nicht erschrecken. Für die Planung und die programmieren habe ich nur 3 Stunden gebracuht, da kann nicht ein hochqualitativer Code entstehen.
Dann bin ich mal gespannt, ob Du die wesentliche Datenstruktur gefunden hast.
Die meisten anderen haben ja anscheinend aufgegeben, was eher enttäuschend ist.
aqe89 hat geschrieben:Die Komentare sind auch wenige, und die es gibt sind manchmal ein bischen Verwirend.
Wenn Code und Comment voneinander abweichen ist wahrscheinlich, dass beide falsch sind ;-)

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Fr Sep 26, 2008 9:08 am
von fat-lobyte
aqe89 hat geschrieben:Befohr ich für eine Weile inaktiv werde wollte ich noch sagen das ich mir vorgestern ein paar gedanken zum Rechner gemacht habe und insgesamt 2 Stunden lang programmiert habe, der grossteil ist Fertig.

Es fehlen ein paar Funktionen:
-Wurzel, währe aber nicht schwer zu machen
-Ein paar Bearbeitungen des Strings (zusammenfügen, ersetzen, splitten)
-die Speicheranforderung mittels malloc für die eingegebenen Zahlenwerte
-Wertezuweisung für eine Struktur
-main Funktion

Ich werde heute abend noch den Quellcode den ich bis jetzt gemacht habe Posten, bitte nicht erschrecken. Für die Planung und die programmieren habe ich nur 3 Stunden gebracuht, da kann nicht ein hochqualitativer Code entstehen.

Die Komentare sind auch wenige, und die es gibt sind manchmal ein bischen Verwirend.

grues AQE89
Na dann bin ich mal gespannt ;-)
Happy Coding!

Re: Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Verfasst: Fr Sep 26, 2008 5:19 pm
von aqe89
Jetzt ist es so weit. Der Code sieht Schlimmer aus als ich gedacht habe.
Er ist noch nicht lauffähig und Hinten und Vorne noch nicht Fertig. Da ich aber in den nächsten wochen/Monaten keine Zeit dafür finden werde habe ich gedacht ich poste mal das was ich habe.


Was noch verbessert werden müsste:
-Alle Funktionen Fertig schreiben
-Kommentare müssen aussagekräftiger sein, und viel mehr$
-die Speichzeranforderung: malloc und weitere
-Überarbeiten von Returnwerten/Übergabewerten was wo ist
-Namen überarbeiten
und noch ein paar Kleinigkeiten


Bitte nicht erschrecken:

Code: Alles auswählen

#include <stdio.h>
#include <string.h>


/*chararray:
  char num_ersatz[9]={'0','1','2','3','4','5','6','7','8','9'}*/

/*
Es fehlt noch Die Funktion die nach /vor der mathe funktion den string zerkleinert.
00*(01-02)+03
wird dann zu:
00*01+03
*/


struct matfunc
  {
  bool aktiv;
  char *sig[3];
  short (*function)(short); /*warscheinlich mit void * pointer...Zeiger auf Matfunktion*/
  }matfunc[2][3];/*erste '2' für die abstufung, priorität.  zweite '3' für die einzelnen matfunktionen*/
  
#error Wertzuweisen für struct matfunc

double *numbrlist;  /*zeiger auf double array mit allen zahlen drin*/



int main (int anzahl, char arg)
  {
  /*
  struct *s_daten;
  char *rechnung;
  
  wertet Argumente aus
  
  prase_string(arg, 0);
  mittels malloc speicher anfordern und als zeiger numbrlist von den globalen variablen benutzen
  s_daten=prase_string(arg, 1);
  
  while(Fertig)
    {
    rechnung search_klmr(s_daten.opt_strng);
    pcal(rechnung);
    }
  */
  }


struct *prase_string(char *arg, bool rorw)
  {
  /*mit malloc Speicher für struct data anfordern:
  struct data
    {
    short anz_num;
    char *opt_strng;
    }*/
  
  
  for(k=0;arg[k]!='\n';k++)
    {
    if(/*Zahl Anfang*/)
      {
      if(rorw)
        {anz++;}
      else
        {
        numbrlist[anz]=strtod();   //strtod()  konvertiert string zu double
        /*überträgt anz in neuen string*/
        anz++;
        }
      }
    if else(/*wenn operator oder klammer->übertragen.*/)
      {
      /*übertragen*/
      }    
    }
   return data;
  }

#error mehr komentare


char* search_klmr(char *opt_strng)
  {
  short k, j, i;
  char rechnung[255];
  
  while(opt_strng[k]!=')'&&'\0'!=opt_strng)
    {
    k++;
    j++;
    if(opt_strng[k]=='(')
      {
      j=0;
      }
    }
  for(i=0;i>j;i++)
    {
    rechnung[i]=opt_strng[k-j+i];
    }
  /*string muss noch aufgespalten werden und dann wieder zusammengefügen*/
  
  //return rechnung;
  }



char* pcal (char *calc)
  {
  short k=0, j=0, i=0;
  short index[1];/*zur speicherung von denn IndexWerten der Zahlen*/
  
  for(k=0;k<=2;k++)
    {
    for(j=0;matfunc.aktiv;j++)
      {
      while(calc[j]!='\0')
        {
        i++;
        if(calc[i]==matfunc[k][j].sig[0])/*funktionsaufruf matest, überprüft ob übereinstimmt, ignoriert leerzeichen und \0*/
          {
          index=search_index(calc, i);
          (matfunc[k][j].*function)(index);
          /*ändert den string*/
          }
        }
      }
    }

  return 0;
  }



short ma_test()



short search_index (char *rechnung, short pos)
  {
  short index[1];
  
  /*sucht im string die vorhergehende und nachfolgende indexzahl.*/
  
  return index;
  }


short output (char* arg, double resultat)
  {
  
  
  
  
  }

out_bin (char* arg, double resultat)

out_dec (char* arg, double resultat)

out_oct (char* arg, double resultat)
#error überprüfen wegen variablen gültigkeit ob alle variablen verfügbar sind
  
short r_wuzel (short *index)/*Resultat wird in array gespeichert.*/
  {
  
  }

short r_potenz (short *index)/*Resultat wird in array gespeichert.*/
  {
  #error prüfen ob k übereinstimmt
  int k;
  int num_urs = numbrlist[index[0]];
  for(k=0;k<numbrlist[index[1]];k++)
    {
    numbrlist[index[0]]*=num_urs;
    }
  return 0;
  }

short r_multi (short *index)
  {
  numbrlist[index[0]]=numbrlist[index[0]]*numbrlist[index[1]]; /*Resultat wird in array gespeichert.*/
  return 0;
  }

short r_divi (short *index)
  {
  numbrlist[index[0]]=numbrlist[index[0]]/numbrlist[index[1]];/*Resultat wird in array gespeichert.*/
  return 0;
  }

short r_sup (short *index)
  {
  numbrlist[index[0]]=numbrlist[index[0]]-numbrlist[index[1]];/*Resultat wird in array gespeichert.*/
  return 0;
  }

short r_add (short *index)
  {
  numbrlist[index[0]]=numbrlist[index[0]]+numbrlist[index[1]];/*Resultat wird in array gespeichert.*/
  return 0;
  }