AGB  ·  Datenschutz  ·  Impressum  







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

Bußgeldrechner

Ein Thema von rhesusaffe89 · begonnen am 2. Dez 2008 · letzter Beitrag vom 4. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
rhesusaffe89

Registriert seit: 2. Dez 2008
5 Beiträge
 
#1

Bußgeldrechner

  Alt 2. Dez 2008, 23:33
Hallo.
Bin ein ziemlicher Delphi Neuling. Bis auf die Schulischen Übungen habe ich nicht viel Erfahrung im Programmieren. Nur jetzt in der Uni.
Eine Aufgabe ist jetzt das Erstellen eine Bußgeldrechners.
Dabei sind die zulässige Höchstgeschwindigkeit, die gefahrene Geschwindigkeit einzugeben. Weiterhin ist einzugeben, ob es in einer Ortschaft war oder nicht (habe ich durch eine Radiogroup versucht zu realisieren)
Auszugeben sind das Bußgeld, evtl. Punkte und Fahrverbot.
Zunächst habe ich versucht durch eine if-then anweisung den bußgeldrechner zu programmieren. das heißt, wenn ein auto zwischen 50 und 60 fährt, dann gibt es 15 euro bußgeld usw.
das programm läuft allerdings nicht mal, irgendein gleitkommawertfehler soll vorliegen. Hab da natürlich nicht so den plan davon.
Hier mal der Quelltext. Sieht noch ziemlich spärlich aus, wie gesagt bin Neuling.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
  var zulgesch, gefgesch, bußgeld, inort, punkte, fahrverbot : real;

begin
case radiogroup1.itemindex of
    0 : inort := 'ja';
    1 : inort := 'nein';
    end;
begin
    zulgesch:= StrToFloat(Edit1.Text);
    gefgesch:= StrToFloat(Edit2.Text);
    bußgeld:= StrToFloat(Edit3.Text);
    if (gefgesch >= 50) and (gefgesch <=60) then
    bußgeld:= 15;
    if (gefgesch >= 60) and (gefgesch <=65) then
    bußgeld:= 25;
    end;

end;

end.
Vielleicht habt ihr Tips, Tricks oder schonmal sowas programmiert?
Mfg rhesusaffe

[edit=Matze][delphi]-Tags gesetzt. MfG, Matze[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Bußgeldrechner

  Alt 2. Dez 2008, 23:41
Zitat von rhesusaffe89:
das programm läuft allerdings nicht mal, irgendein gleitkommawertfehler soll vorliegen.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  zulgesch, gefgesch, bußgeld: Double;
  inort: String;
  punkte, fahrverbot: Integer;
begin
  case radiogroup1.itemindex of
    0 : inort := 'ja';
    1 : inort := 'nein';
  end;
  zulgesch:= StrToFloat(Edit1.Text);
  gefgesch:= StrToFloat(Edit2.Text);
  bußgeld:= StrToFloat(Edit3.Text);
  if (gefgesch >= 50) and (gefgesch <=60) then
    bußgeld:= 15;
  if (gefgesch >= 60) and (gefgesch <=65) then
    bußgeld:= 25;
  end;
end;
end.

Hi und willkommen.
Verwende doch das nächste Mal die "Delphi"-Tags im Editor.

Hab Deine Prozedur mal überarbeitet.
Du hattest inort als Real deklariert, hast dann aber versucht eine Zeichenkette zuzuweisen.
Desweiteren nicht real sondern als Dezimaldatentyp Double verwenden.

Gruß
Michael
  Mit Zitat antworten Zitat
rhesusaffe89

Registriert seit: 2. Dez 2008
5 Beiträge
 
#3

Re: Bußgeldrechner

  Alt 2. Dez 2008, 23:47
ok danke schon mal soweit. stimmt, das inort hätte ich als string deklarieren sollen, hatte ich auch erst. hab mir aber gedacht, das programm läuft trotzdem nicht, also liegt der fehler wohl nicht daran.
naja gut, werde mich dann nochmal dran setzen und schauen wie weit ich komme!
mfg rhesusaffe

PS: nächstes mal nehme ich die tag-funktion im editor
  Mit Zitat antworten Zitat
rhesusaffe89

Registriert seit: 2. Dez 2008
5 Beiträge
 
#4

Re: Bußgeldrechner

  Alt 3. Dez 2008, 10:26
Hmm naja so richtig weiter bin ich nicht gekommen. Hat einer vielleicht "die" zündende Idee, das Programm zu laufen zu bekommen?
Mfg rhesusaffe
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#5

Re: Bußgeldrechner

  Alt 3. Dez 2008, 10:35
Was genau läuft denn nicht?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#6

Re: Bußgeldrechner

  Alt 3. Dez 2008, 10:42
Mir erscheint das mit der Geschwindigkeit zwischen 50 und 60 nicht logisch. Wahrscheinlich meinst du, dass 50 das Limit ist und man bei bis zu 10km/h schneller 15 Euro zahlen muss. Im prinzip ist das doch recht einfach. Du hast immerin alle 3 Angaben:
- Zulässige Höchstgeschwindigkeit
- gefahrene Geschwindigkeit
- Innerorts, Außerorts

Die Differenz zwischen zulässige Höchstgeschwindigkeit und gefahrener ist dann die Übertretung. Nun musst du nur noch schauen ob es Innerorts oder Außerorts und jenachdem einfach einen Wert ausgeben (die Strafe).
Erik
Alles gut?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Bußgeldrechner

  Alt 3. Dez 2008, 10:46
Zitat von rhesusaffe89:
Hmm naja so richtig weiter bin ich nicht gekommen. Hat einer vielleicht "die" zündende Idee, das Programm zu laufen zu bekommen?
Ein ganz heißer Tipp wäre eventuell, das Ergebnis auch auszugeben, statt es vorher einzulesen
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  zulgesch, gefgesch, bußgeld: Double;
  inort: String;
  punkte, fahrverbot: Integer;
begin
  case radiogroup1.itemindex of
    0 : inort := 'ja';
    1 : inort := 'nein';
  end;
  zulgesch:= StrToFloat(Edit1.Text);
  gefgesch:= StrToFloat(Edit2.Text);
  //bußgeld:= StrToFloat(Edit3.Text); <-- Hier liest du ein, was der User gerne für ein Bußgeld hätte ;)
  if (gefgesch >= 50) and (gefgesch <=60) then
    bußgeld:= 15;
  if (gefgesch >= 60) and (gefgesch <=65) then
    bußgeld:= 25;
  end;

  Edit3.Text := FloatToStr(bußgeld); //<-- Besser wäre es, das Ergebnis am Ende der Methode auszugeben ;)
end;
end.
Im Übrigen bin ich mir nicht wirklich sicher, was Delphi zu dem 'ß' sagt. AFAIK sollte man darauf (und auch auf Umlaute) bei der Programmierung verzichten

Achso, und warum ein String für 'inort'? Ein Boolean wäre da doch IMHO deutlich sinnvoller:
Delphi-Quellcode:
inort : Boolean;
//...
inort := (RadioGroup1.ItemIndex = 1);
Und noch ein Edit: Der Hinweis von Frankfurtoder ist sowieso sehr sinnvoll. Warum denn so komplizierte If-Konstrukte, wenn es doch im Endeffekt immer nur um die Geschwindigkeitsübertretung geht?
Das ließe sich doch mit einem Case mit Bereichsüberprüfung deutlich übersichtlicher gestalten. Voraussetzung wäre allerdings, dass du die Geschwindkigeiten als Integer definierst. Ich sehe aber im Moment sowieso keinen Sinn darin, dafür einen Double zu benutzen...
Delphi-Quellcode:
Case gefgesch-zulgesch of
  0..10: bußgeld := 15;
  11..15: bußgeld := 25;
  else bußgeld := 42;
end;
Btw stimmen die Bußgelder doch sowieso nicht... Deinem Code nach muss ich 15€ Strafe zahlen, wenn ich mit 50 durch die Stadt fahre?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
rhesusaffe89

Registriert seit: 2. Dez 2008
5 Beiträge
 
#8

Re: Bußgeldrechner

  Alt 3. Dez 2008, 20:14
ui ui ui
danke erstmal der antworten!
naja wenn da einiges ziemlich unlogisch erscheint, wie gesagt ich hatte bis jetzt mit delphi nicht viel am hut!
mich verwirrt das hier auch alles n bisschen!
naja nicht so meine sprache, die programmiersprache :\
  Mit Zitat antworten Zitat
rhesusaffe89

Registriert seit: 2. Dez 2008
5 Beiträge
 
#9

Re: Bußgeldrechner

  Alt 3. Dez 2008, 22:39
Kann mir denn wenigstens einer nen Struktogramm zu meiner Aufgabe schreiben? Daraus könnte ich dann ja ein Programm schreiben.
Wie gesagt, habe mein Programm soweit geschrieben, aber seh da wohl die logischen Zusammenhänge nicht so richtig.
Ich brauch hilfe

Mfg Rhesusaffe
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#10

Re: Bußgeldrechner

  Alt 3. Dez 2008, 23:01
Versuch doch die Basics zu verstehen die hier angesprochen wurden.

Variablen und Konstanten
Verzweigungen

Les dir das mal in Ruhe durch und versuch das umzusetzen was hier vorgeschlagen wurde.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:58 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