StringGrid



  • Hallo!
    Ich besuche zur Zeit die Berufsschule in Rinteln und beschäftige mich mit Informatik!
    Schwerpunkt: Grafische Oberfläche, StringGrid!
    Leider komme ich überhaupt nicht mehr mit und verstehe einiges nicht!
    Ich soll eine Arbeit berichtigen und weiß nicht, wie ich die Aufgaben lösen soll. Bin voll am verzweifeln und mit meinem Latein am Ende!
    Vielleicht könnt ihr mir ja weiterhelfen!
    Wäre euch sehr dankbar dafür, wenn ihr mir sagen könntet, was ich bei den Aufgaben hinschreiben muss:

    1. Ein Floatwert soll aus einem StringGrid (SG1) gelesen werden.
    Der Wert befindet sich in der ersten Spalte und in der dritten Zeile und wird
    in die Floatvariable z geschrieben. Wie lautet der Befehl?

    2. Eine Tabelle enthält Integerwerte. Sie möchten alle Zellen dieser Tabelle
    addierern und in die Integervariable y schreiben.
    Entwickeln Sie den Quelltext!

    3. Eine Funktion soll in einem StringGrid (SG1) in jeder Zelle, die Zellen mit
    ungeradem Spaltenindex (1, 3, 5 usw.) addieren und die Gesamtsumme
    zurückgeben. Nehmen Sie die notwendigen Änderungen in der Headerdatei
    Unit1.h und in der Quelltextdatei Unit1.cpp vor.
    Die Tabelle enthält Integerwerte.

    Ich bin wirklich am verzweifeln! 😞 🙄
    Der Lehrer will auch wissen, was man in den einzelnen Zeilen des Quelltextes gemacht hat, wie man darauf gekommen ist!
    Vielen Dank schonmal!



  • was genau hast du denn schon versucht? was funktioniert nicht? welche Fehlermeldungen kamen?

    Die Aufgaben sind relativ einfach und wenn du im Unterricht schon mit StringGrid gearbeitet hast, sollten diese Sachen eigentliche kein Problem sein. Prinzipiell machen wir hier keinem die Hausaufgaben (naja, außer einige "wohlmeinende" (Un)Registrierte), da sonst der Lerneffekt gleich Null ist. Aber wir geben gern Tipps. Z.B. schau dir die Eigenschaften und Methoden von TStringGrid in der BCB-Hilfe an, außerdem die von AnsiString.

    Bei konkreten Fragen und Problem helfen wir dir gern weiter. 🙂



  • Ich habe das ganze Thema nicht verstanden.......
    das ganze Prinzip davon, mir fehlen die Grundlagen, dazu.......
    ja, ich weiß, dass hier eigentlich niemand die Hausaufgaben anderer macht.....
    das Einzige, was ich weiß, ist, dass das was mit Cells, RowCount und Coolcount zu tun hat´!
    Nur will der Lehrer das Dienstag sehen und ich weiß einfach nicht, wie ich die Aufgaben lösen soll! Leider habe ich null Ahnung vom Ganzen!
    Deshalb bin ich auf die Idee gekommen hier im Forum nachzufragen!
    Ich habe Angst am Dienstag da leer zu stehen ohne die Aufgaben! 🙄 🙄



  • Dann solltest du dich fragen ob du die richtige Ausbildung hast, denn ich kann mir nicht vorstellen, daß ihr das nicht in irgendeiner Form behandelt habt.

    Hier mal ein grobes Vorgehen: Starte den BCB, lege ein StringGrid auf das Formular, lege einen Button daneben und klicke doppelt auf den Button, in die dadurch erstellte Methode kannst du jetzt deine Quellcode-Versuche eintragen und dann programmier einfach mal drauf los: zuerst das StringGrid mit Werten füllen, dann versuchen die Aufgaben der Reihe nach zu bearbeiten.

    oder du läßt dich ins Projekte-Forum verschieben und zahlst ne Kleinigkeit und bekommst das ganze dann fix und fertig



  • Hallo
    Ich verrate dir nur Punkt 1:

    SG1->Cells[1][3]="12,5652"; //irgendeine Kommazahl (als Ansistring) ins SG1 schreiben
    float z=StrToFloat(SG1->Cells[1][3]);// Wert aus SG1 von AnsiString nach float umwandeln und in die float Variable z schreiben
    

    Dann bekommst Du wenigstens keine sechs...
    ciao



  • Dankeschön!
    Das sieht verständlich aus!
    Wenn ich das richtig verstehe, stehen die beiden Zahlen in den eckigen Klammern einmal für die jew. Spalte und einmal für die jew. Zeile!
    Wenn mir jetzt noch jemand bei Aufgabe 2 und 3 weiterhelfen könnte, wäre ich sehr dankbar! 🙂
    Wenn es nicht anders machbar ist, wird derjenige auch von mir belohnt!



  • darkjulian schrieb:

    Der Lehrer will auch wissen, was man in den einzelnen Zeilen des Quelltextes gemacht hat, wie man darauf gekommen ist!

    Jetzt solltest du wohl dazu schreiben, dass du das aus nem Forum kopiert hast.
    Mal sehn wie du das dann in der Prüfung machst: "Herr Lehrer, ich muß mal kurz ins Forum, damit mir jemand die Lösung vorsagt. Selber kann ich das nämlich nicht, Eigeninitiative hab ich keine und lernen will ich das auch nicht". 👎



  • "Lernen will ich das auch nicht!"
    Das war eine Arbeit, die schon längst wiederbekommen haben!
    Ich soll die berichtigen, wir schreiben zu dem Thema keine Arbeit mehr!
    Und das ich das nicht lernen will, stimmt ja wohl nicht, sonst würde ich hier gar nicht erst im Forum nachfragen! 😉



  • Wenn du etwas lernen wolltest, würdest du Eigeninitiative zeigen, d.h. du würdest z.B. mal die Fragen beantworten die ich in meinem 1. Post geschrieben habe. Aber von dir kam bisher immer nur: "Das kann ich nicht. Das weis ich nicht. Ich will ne fertige Lösung."

    Also wo sind denn nun deine Lösungsansätze? Was genau funktioniert nicht? Kannst du keine Schleifen? Hast du noch nie ein StringGrid gesehen? Kannst du die Grundlagen der Programmierung? Oder war das die 1. Informatikstunde?



  • Also, um ehrlich zu sein:
    Bei den Schleifen fängt es schon an mit meinen Problemen!
    Die Geschichten mit printf, scanf, Konsolenanwendungen wie dem 1. Programm "Hallo Welt" habe ich einigermaßen verstanden!
    Die restl. Grundlagen fehlen mir aber!
    Ab der Grafischen Oberfläche habe ich so gut wie gar nichts mehr verstanden!
    Ich weiß nur, dass man ein Ereignis erzeugen kann, wenn man auf ein Objekt vom Design doppelt drauf klickt, z.B. das OneClick Ereignis!
    Mehr weiß ich leider nicht! 😞



  • Hallo

    darkjulian schrieb:

    Die Geschichten mit printf, scanf, Konsolenanwendungen wie dem 1. Programm "Hallo
    Welt" habe ich einigermaßen verstanden!

    printf und scanf sind schonmal C und nicht C++. Wenn du weiter mit dem Builder inklusive der VCL-GUI arbeiten willst dann solltest du lieber reines C++ lernen und beherrschen.

    Die restl. Grundlagen fehlen mir aber!
    Ab der Grafischen Oberfläche habe ich so gut wie gar nichts mehr verstanden!

    Dann weißt du doch wo du jetzt erstmal anfangen solltest, bei einem modernen C++ Tutorial und einem einfachen Konsolenprogramm.
    TStringGrid gehört jedenfalls nicht zu den Grundlagen sondern setzt Grundlagen voraus. Ohne Verständnis für z.B. OOP wirst du nicht weit kommen.

    bis bald
    akari



  • Das sind meine bisherigen Versuche:

    zu 2. for (int y; y<0; y++)
    {
    cells --> CoolCount;
    cells = true;
    y = C1+C2+C3+C4+C5+C6;
    }

    zu 3. for (int b --> SG1; b<0; b++)
    {
    Cells = true;
    Sleep (100) ;
    Summe = keine Ahnung was da hinkommt
    for (int a --> SG1; a<0; a++)
    {

    Ich habe wirklich kein Plan, wie ich bei den Aufgaben überhaupt beginnen soll, was ich hinschreiben soll und wies weitergeht....
    für weitere Hilfe / Lösungsvorschläge wäre ich sehr dankbar!



  • zu 2.

    //Die Integer y in der alles addiert werden soll
       int y=0;
       //Schleife um durch die Rows zu iterieren
       for (int ypos=0;ypos<StringGrid1->RowCount;ypos++)
       {
          //Schleife um durch die Cols zu iterieren
          for(int xpos=0;xpos<StringGrid1->ColCount;xpos++)
          {
             //Zellinhalt zusammenzählen
             //StrToIntDef damit Zellen ohne Inhalt bzw. mit 'integerfremden Inhalt' keine
             //Exception auslösen. Sonst würde auch StrToInt reichen
             y+=StrToIntDef(StringGrid1->Cells [xpos][ypos], 0);
          }
       }
    

    zu 3.

    int countgrid(TStringGrid *SG1)
    {
       //Die Integer y in der alles addiert werden soll
       int y=0;
       //Schleife um durch die Rows zu iterieren
       //Bei 1 anfangen und um 2 incrementieren
       for (int ypos=1;ypos<SG1->RowCount;ypos+=2)
       {
          //Schleife um durch die Cols zu iterieren
          for(int xpos=0;xpos<SG1->ColCount;xpos++)
          {
             //Zellinhalt zusammenzählen
             //StrToIntDef damit Zellen ohne Inhalt bzw. mit 'integerfremden Inhalt' keine
             //Exception auslösen. Sonst würde auch StrToInt reichen
             y+=StrToIntDef(SG1->Cells [xpos][ypos], 0);
          }
       }
       return y;
    }
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
       int y = countgrid(StringGrid1);
    }
    


  • OffTopic-Gelaber gelöscht.



  • Vielen, vielen Dank!
    Ich habe noch eine Aufgabe, für die benötigt man aber den C++ Builder!
    Handelt sich um eine EXE-Datei!
    Bei Interesse einfach hier oder unter ICQ 337-015-045 melden! 🙂 😉
    Da kann ich, wenn jemand Lust hat, die EXE rüberschicken!
    Die Aufgabe ist umfangreicher als die anderen Aufgaben!
    Ich habe mir die Aufgabe (die EXE) schon angeguckt, nur weiß ich nicht was ich da genau hinschreiben soll, weil ich nur das Programm als EXE habe!



  • Dann wirst du schlecht was an dem Programm ändern können.
    Ohne den Source wird das nichts.
    Oder ist das was du hast eine "Beispiel exe" ?

    Hab und will auch kein ICQ,Skype oder ähnlichen Quark.
    Müsstest du dann schon irgendwo hochladen.



  • Das ist eine EXE, die man öffnen kann! Also das Beispiel, was man dann nachprogrammieren soll mit den C++ Builder!
    Mmh, wo kann ich das denn hochladen??





  • http://rapidshare.com/files/116367320/Rechnen.exe.html
    ---> Der Download-Link für die EXE!
    Du würdest mir einen großen Gefallen damit tun, wenn du noch hinschreiben könntest, was du in den einzelnen Zeilen des Quelltextés gemacht hast.
    Guck dir am besten erst einmal das Programm in Ruhe an! 😉



  • Damit ist wohl alles gesagt, die Diskussion kann auf hausaufgaben.de fortgesetzt werden.


Anmelden zum Antworten