TP Problem - Billard Bandenkollision

  • geschlossen
  • Delphi

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TP Problem - Billard Bandenkollision

    Aufgabe:
    Eine Billard Kugel läuft im Punkt P(x/y) am Rand eines Billardtisches mit der Länge L und der Breite B mit der Steigung m los. Dabei sollen jeweils immer die Kollisionspunkte mit der Bande ausgegeben werden und wenn die Kugel in das Loch (genau in der Tischmitte also L (L:2/B:2)) fällt soll abgebrochen werden.

    Mein Ansatz: (leider nicht funktionierend)

    Quellcode

    1. program billard;
    2. var x,y,m,n,l,b,mx,c,my,bandey,bandex : real;
    3. procedure eingabe(var ex,ey,em,el,eb : real);
    4. begin
    5. write('Bitte geben sie die x Koordinate des Startpunkts ein: '); readln(ex);
    6. write('Bitte geben sie die y Koordinate des Startpunkts ein: '); readln(ey);
    7. write('Bitte geben sie den Anstieg m ein: '); readln(em);
    8. write('Bitte geben sie den L„nge des Billardstisch ein: '); readln(el);
    9. write('Bitte geben sie den Breite des Billardstisch ein: '); readln(eb);
    10. end;
    11. function coly(bx,bm,cbx:real):real;
    12. var bn : real;
    13. begin
    14. bn:=-(cbx*bm);
    15. coly:=bm*bx+bn;
    16. end;
    17. function colx(cy,cm,cx:real):real;
    18. var cn : real;
    19. begin
    20. cn:=-(cx*cm);
    21. colx:=(cy-cn)/cm;
    22. end;
    23. begin
    24. Eingabe(x,y,m,l,b);
    25. mx:=b/2;
    26. my:=l/2;
    27. c:=x;
    28. IF ((m<>0) and (x<>my)) then begin
    29. repeat
    30. bandey:=coly(x,m,c);
    31. x:=x+0.1;
    32. IF ((bandey=b) or (x=l)) then
    33. begin
    34. bandex:=colx(bandey,m,c);
    35. m:=-1/m;
    36. writeln('Bandenkollision im Punkt (',bandex:8:2,'/',bandey:8:2,')');
    37. end;
    38. until ((bandey=b) or (bandex=l));
    39. end;
    40. readln;
    41. end.
    Alles anzeigen


    Bitte um Hilfe...

    Mfg kc
    [size=1]It's not a bug, it's a feature.[/size]
    [size=3]Bin vom 05.06.2006 - 10.06.2006 im Urlaub[/Size]
  • Was genau funktioniert den an deinem Quellcode nicht?
    Ist das ein logischer Fehler oder syntaktisch (Fehlermeldung vom Compiler)?

    Bin nicht so bewandert in Delphi, aber bei nem logischen Fehler lässt sich bestimmt was rauskriegen. Aber bevor ich das jetzt Durcharbeite will ich erstmal wissen wo der Fehler liegt

    devil2k
  • tja .... ich stimme da meinem vor-antworter zu.....erläter bitte besser wo genau der fehler liegt, da keine zeit hat hier den code zeile für zeile durchzuarbeiten .... und ein bischen inline-doku wär auch nicht zu verachten.

    aber ansonste schaut mir das problem nicht so schwer aus.


    ps: kleiner tipp am rande .... steig auf c++ um....bereitet weniger kopfschmerzen