Anfänger oder Fortgeschrittener?Versuche dich an der Aufgabe

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » So Sep 07, 2008 8:49 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

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

Beitrag von nufan » So Sep 07, 2008 9:02 pm

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » So Sep 07, 2008 9:49 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

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

Beitrag von fat-lobyte » Mo Sep 08, 2008 8:56 am

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 ;) )
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

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

Beitrag von Dirty Oerti » Mo Sep 15, 2008 11:04 am

*Grins*

Warum nicht :)
Nette Aufgabe.

Ich mach mich mal dran.
Mal schauen wie weit ich komme^^
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

aqe89
Beiträge: 70
Registriert: Sa Jul 05, 2008 9:36 am
Wohnort: Schweiz

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

Beitrag von aqe89 » Fr Sep 26, 2008 8:53 am

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » Fr Sep 26, 2008 9:05 am

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 ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

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

Beitrag von fat-lobyte » Fr Sep 26, 2008 9:08 am

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!
Haters gonna hate, potatoes gonna potate.

aqe89
Beiträge: 70
Registriert: Sa Jul 05, 2008 9:36 am
Wohnort: Schweiz

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

Beitrag von aqe89 » Fr Sep 26, 2008 5:19 pm

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

Antworten