AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit schleife

Ein Thema von herrentor · begonnen am 29. Mai 2004 · letzter Beitrag vom 30. Mai 2004
Antwort Antwort
Seite 2 von 3     12 3      
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#11

Re: problem mit schleife

  Alt 29. Mai 2004, 18:02
ok, danke erstmal. ich werd das mal versuchen.
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#12

Re: problem mit schleife

  Alt 29. Mai 2004, 18:12
@ ingod7

ich find es übrigens nur legitim, wenn man sich möglichst viele informationen zu seinem problem einholt auch von anderen plattformen.

außerdem war mir nicht bewusst, wie aktiv die foren sind.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#13

Re: problem mit schleife

  Alt 29. Mai 2004, 18:24
herrentor

schon erfolge?
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: problem mit schleife

  Alt 29. Mai 2004, 18:57
Zitat von herrentor:
@ ingod7

ich find es übrigens nur legitim, wenn man sich möglichst viele informationen zu seinem problem einholt auch von anderen plattformen.
Ich finde das allermeistens nicht.

Weil sich dann "tausend" Leute die gleichen Gedanken machen, die - so es in unterschiedlichen Foren geschieht - nichts voneinander wissen.

Ein gutes Beispiel ist kiar hier und ich im Delphi-Forum. kiar kümmert sich hier um dein Problem und macht dir Lösungsvorschläge. Ich versuche an anderer Stelle, dir überhaupt erstmal klar zu machen, wo genau dein Logikfehler steckt. Kannst du uns beiden folgen? Kannst du uns beiden gerecht werden? Oder hörst du irgendwann einem von uns nur noch mit halben Ohr zu, weil die Ansätze, dir zu helfen, völlig verschieden sind.

kiar und ich wissen ja nicht unbedingt voneinander. Wir wissen nicht unbedingt, was du mit dem jeweils anderen schon herausgefunden hast. Da kann viel Arbeit für die Tonne draus erwachsen.

Ich bin momentan z.B. der Meinung, dass wenn du erstmal wirklich verstanden hast, wo der (Logik-)Fehler in deinem Code steckt, du kiars Lösungsvorschläge hier nicht mehr verwenden wirst, weil ich denke, dass du dann die Logik deines Codes gänzlich umstellen wirst (ich kann mich natürlich täuschen, aber trotzdem). kiars Arbeit wäre damit umsonst.

Anders herum: Sollte kiar dir hier irgendwann irgendwie Copy&Paste-fähigen Code präsentieren, der dein Problem umschifft, so wirst du den liebend gerne nehmen, wirst froh sein, dass dein Problem endlich vom Tisch ist und meine Mühen im anderen Forum waren umsonst.

Um sowas zu verhindern, werden in Delphi-Groups Cross-Postings in die Tonne getreten. Zurecht, wie ich meine.

Es ist durchaus möglich, dass man irgendwann zusätzlich die Hilfe einer anderen Community in Anspruch nehmen möchte/muss. Aber nicht gleich sofort am Anfang.

Ende der Predigt.
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#15

Re: problem mit schleife

  Alt 29. Mai 2004, 19:06
ok, so hab ich das noch nicht gesehen. akzeptiert.

zu kiar's vorschlag: jetzt rechnet er nur noch item 0

hier mal das komplette programm, vielleicht bin auch nur zu verpeilt:

[Schnipp Schnapp]

[edit=Sharky]Solche überlangen Codes bitte als Datei anhängen. Danke Mfg, Sharky[/edit]
Angehängte Dateien
Dateityp: pas u_rotationskoerper_hf.pas (11,3 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: problem mit schleife

  Alt 29. Mai 2004, 19:56
Zitat von herrentor:
zu kiar's vorschlag: jetzt rechnet er nur noch item 0
Weil es immer noch derselbe - mit Verlaub - Unfug ist. index hat bei dir während sämtlicher Schleifendurchläufe immer den Wert, den es bei der letzten ComboBox-Änderung bekommen hat. Deshalb rechnet er alle Zeilen mit derselben Rechenart.

Wenn ich deinen Code halbwegs verstehe, so klickst du irgendwann per ComboBox1 die Rechenart in deine Tab-Zeilen. Dann musst du auch in der Schleife statt index das Feld aus Tab benutzen, welches du mit den Klicks gefüllt hast und in dem steht, welche Rechenart für die jeweilige Zeile genutzt werden soll.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#17

Re: problem mit schleife

  Alt 29. Mai 2004, 20:10
@herrentor: Auch wenn ich kein Mod bin, aber bitte hänge bei so langem Code die Dateien an, anstatt den Code einzufügen. Dadurch bleibt der Thread übersichtlich.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#18

Re: problem mit schleife

  Alt 29. Mai 2004, 20:40
[etwas OT:] Es erhöht auch die Leserlichkeit deines Textes, wenn du bei functionen wie reset einfach 2 For-Schleifen nutzt und nicht solche MonsterBlöcke hinschreibst. [/etwas OT:]
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#19

Re: problem mit schleife

  Alt 30. Mai 2004, 04:00
endlich! was für eine schwere geburt. danke nochmal an alle die sich meiner probleme angenommen haben. allerdings hab ich noch eine frage.
das programm läuft jetzt, weil ich diesen teil geändert habe:

Code:

   case ComboBox1.ItemIndex of                       {Fallunterscheidung} 

    0: begin                                         {Rechteck} 
        A:=mass1*mass2;                              {Fläche} 
        Xs:=Lx+mass1/2;                              {Schwerpunkt auf der X-Achse} 
        Ys:=Ly+mass2/2;                              {Schwerpunkt auf der Y-Achse} 
       end;

    1: begin                                         {Dreieck} 
        A:=(mass1*mass2)/2;                          {Fläche} 
        Xs:=Lx+mass1/3;                              {Schwerpunkt auf der X-Achse} 
        Ys:=Ly+mass2/3;                              {Schwerpunkt auf der Y-Achse} 
       end;

    2: begin                                         {Kreissektor} 
       A:=pi*sqr(mass1)*mass2/360;                   {Fläche} 
       s:=2*mass1*sin(mass2/2*pi/180);               {Sehne} 
       b:=pi*mass1*mass2/180;                        {Bogenlänge} 
       Xs:=Lx;                                       {Schwerpunkt auf der X-Achse} 
       Ys:=Ly+((2/3)*(mass1*s)/b);                   {Schwerpunkt auf der Y-Achse} 
      end;

    3: begin                                         {Kreisabschnitt} 
        b:=pi*mass1*mass2/180;                       {Bogenlänge} 
        s:=2*mass1*sin(mass2/2*pi/180);              {Sehne} 
        h:=2*mass1*sqr(sin(mass2/4*pi/180));         {Bogenhöhe} 
        A:=(mass1*(b-s)+s*h)/2;                      {Fläche} 
        Xs:=Lx;                                      {Schwerpunkt auf der X-Achse} 
        Ys:=Ly+(1/12)*((s*s*s)/A);                   {Schwerpunkt auf der Y-Achse} 
       end;

    4: begin                                         {Kreis} 
        A:=pi*sqr(2*mass1)/4;                        {Fläche} 
        Xs:=Lx+0;                                    {Schwerpunkt auf der X-Achse} 
        Ys:=Ly+0;                                    {Schwerpunkt auf der Y-Achse} 
       end;

   end;
und zwar folgendermaßen:

Code:

    if Tab.Cells[1,i] = ComboBox1.Items[0] then      

       begin                                         {Rechteck}
        A:=mass1*mass2;                              {Fläche}
        Xs:=Lx+mass1/2;                              {Schwerpunkt auf der X-Achse}
        Ys:=Ly+mass2/2;                              {Schwerpunkt auf der Y-Achse}
       end;

    if Tab.Cells[1,i] = ComboBox1.Items[1] then

       begin                                         {Dreieck}
        A:=(mass1*mass2)/2;                          {Fläche}
        Xs:=Lx+mass1/3;                              {Schwerpunkt auf der X-Achse}
        Ys:=Ly+mass2/3;                              {Schwerpunkt auf der Y-Achse}
       end;

    if Tab.Cells[1,i] = ComboBox1.Items[2] then

      begin                                         {Kreissektor}
       A:=pi*sqr(mass1)*mass2/360;                   {Fläche}
       s:=2*mass1*sin(mass2/2*pi/180);               {Sehne}
       b:=pi*mass1*mass2/180;                        {Bogenlänge}
       Xs:=Lx;                                       {Schwerpunkt auf der X-Achse}
       Ys:=Ly+((2/3)*(mass1*s)/b);                   {Schwerpunkt auf der Y-Achse}
      end;

    if Tab.Cells[1,i] = ComboBox1.Items[3] then

       begin                                         {Kreisabschnitt}
        b:=pi*mass1*mass2/180;                       {Bogenlänge}
        s:=2*mass1*sin(mass2/2*pi/180);              {Sehne}
        h:=2*mass1*sqr(sin(mass2/4*pi/180));         {Bogenhöhe}
        A:=(mass1*(b-s)+s*h)/2;                      {Fläche}
        Xs:=Lx;                                      {Schwerpunkt auf der X-Achse}
        Ys:=Ly+(1/12)*((s*s*s)/A);                   {Schwerpunkt auf der Y-Achse}
       end;

    if Tab.Cells[1,i] = ComboBox1.Items[4] then

       begin                                         {Kreis}
        A:=pi*sqr(2*mass1)/4;                        {Fläche}
        Xs:=Lx+0;                                    {Schwerpunkt auf der X-Achse}
        Ys:=Ly+0;                                    {Schwerpunkt auf der Y-Achse}
       end;
wie kann ich das mit einer fallunterscheidung (case) realisieren? wie kann ich folgendes anders schreiben, so dass es akzeptiert wird?

Code:

   case Tab.Cells[1,i] = ComboBox1.ItemIndex of
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#20

Re: problem mit schleife

  Alt 30. Mai 2004, 05:06
nein, die OH () sagt folgendes:
Delphi-Quellcode:
case selectorExpression of
  caseList1: statement1;
   ...
  caseListn: statementn;
  else
    statements;
end;
SelectorExpression ist eine Ordinalvariable, also kein String oder auch kein Float. Eine Integer-Variable kann damit aber immer abgeprüft werden:
Delphi-Quellcode:
case i of
  1: //Einzelner Wert
  2, 5, 7: //Auflistung
  8..13: //Bereich
  else
    //Ansonsten...
end;
Natürlich sind auch überall begin-end-Blöcke möglich.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz