Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi geht es auch programmiertechnisch besser? (https://www.delphipraxis.net/17911-geht-es-auch-programmiertechnisch-besser.html)

dR4g0N 11. Mär 2004 13:56


geht es auch programmiertechnisch besser?
 
Also bin noch ein Delphi Anfänger und verfasse mich atm erstmal it Konsolenprogrammen ...
Hab hier 2 Programme geschrieben und wollte wissen, ob es dafür einfachere Lösungen sprich bessere Lösungen gibt ...

Ein Spannung, Widerstand, Strom Umrechner:

Delphi-Quellcode:
program Strom;
{$APPTYPE CONSOLE}
uses
  sysutils;

var U, R, I : Single;

begin

repeat

WriteLn('Bitte geben Sie einen Wert fuer U [Spannung] ein');
ReadLn(U);
WriteLn('Bitte geben Sie einen Wert fuer R [Widerstand] ein');
ReadLn(R);
WriteLn('Bitte geben Sie einen Wert fuer I [Strom] ein');
ReadLn(I);

until (U=0) or (R=0) or (I=0);

if U = 0 then
WriteLn('Die Spannung bestraegt: ', R * I:0:1)
else if R = 0 then
WriteLn('Der Wiederstand betraegt: ', U / I:0:1)
else
WriteLn('Der Strom betraegt: ', U / R:0:1);

ReadLn;
end.

Und nu noch ein Taschenrechner ... Das Ergebnis der ersten Lösung ist gleich der ersten zahl in der 2 Lösüng, falls man weiterrechnen möchte:

Delphi-Quellcode:
program TRKT;
{$APPTYPE CONSOLE}
uses
  sysutils;

var a : single;
    b : single;
    c : single;
    op : char;
    j : string;

begin
writeln ('Bitte geben sie den ersten Wert ein:');
readln (a);
repeat
writeln ('Bitte geben sie den weiteren Wert ein:');
readln (b);
writeln ('Bitte geben sie den Operator ein: [+, -, *, /]');
readln (op);
if op = '+' then
begin
c := a + b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '-' then
begin
c := a - b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '*' then
begin
c := a * b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '/' then
begin
c := a / b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
a := c;
writeln ('Wollen sie mit dem Ergebnis weiter rechnen[j;n]?');
readln (j);
until j = 'n';
readln;
end.

Steve 11. Mär 2004 14:16

Re: geht es auch programmiertechnisch besser?
 
Servus,
Zitat:

Zitat von dR4g0N
Delphi-Quellcode:
{ ... }
if op = '+' then
begin
c := a + b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '-' then
begin
c := a - b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '*' then
begin
c := a * b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
if op = '/' then
begin
c := a / b;
Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
end;
a := c;
{ ... }

..diesen Teil würd ich mit ner CASE-Anweisung lösen:
Delphi-Quellcode:
CASE op OF
  '+' : c := a + b;
  '-' : c := a - b;
  '*' : c := a * b;
  '/' : c := a / b
  ELSE BEGIN
    c := 0;
    Writeln ('Kein gültiger Operator!');
  END; { Else }
END; { Case }

Writeln ('Das Ergebnis lautet:');
writeln (c:0:1);
{ ... }
Außerdem würd ich auch auf fehlerhafte Eingaben prüfen (siehe z.B. ELSE im CASE-Abschnitt) :)
sonst kanns schnell Fehler geben, z.B. wenn im Programm Strom jemand für alle Wert 0 angibt ;)

MfG
Stephan

dR4g0N 11. Mär 2004 15:04

Re: geht es auch programmiertechnisch besser?
 
ahhh diese möglichkeit kannte ich noch nicht. vielen dank :>

roderich 11. Mär 2004 15:23

Re: geht es auch programmiertechnisch besser?
 
mal ne (dumme ??) Frage:

Wozu brauchst Du für so ein lächerliches Programm Delphi 7 Enterprise für ein paar tausend Euro ?
Dafür tut's auch ein Turbo Pascal 3.0 !

Roderich

KingofWerlte 11. Mär 2004 15:27

Re: geht es auch programmiertechnisch besser?
 
paar tausend €? wenns einem unter ungeklärten umständen in die händel fällt gibts das auch billiger :mrgreen:
(ich hab mein D6 von meiner Programmierlehrerin in der Schule bekommen)

dR4g0N 11. Mär 2004 15:54

Re: geht es auch programmiertechnisch besser?
 
hmm des tut zwar nix zur sache aber was würdest du sagen wenn ich Borland.Delphi.v8.0.Architect.Edition hätte ... Najo zurück zu deiner Frage, ich hoffe doch, das es nicht bei den kleinen programmen bleibt, sondern irgendwann mal umfangreichere ... oder war dein erstes programm etwa sowas von umfangreich ... fange eben gerade erst an.

roderich 11. Mär 2004 16:47

Re: geht es auch programmiertechnisch besser?
 
Zitat:

hmm des tut zwar nix zur sache aber was würdest du sagen wenn ich Borland.Delphi.v8.0.Architect.Edition hätte ...
dann würde ich vermutlich sagen, daß du mit diesem Programm gar nichts anfangen könntest, weil du zwar gelernt hast, Raubkopien aus Kazaa zu ziehen, aber niemals lernen wirst, richtig zu programmieren.

Roderich

dR4g0N 11. Mär 2004 16:56

Re: geht es auch programmiertechnisch besser?
 
darauf würde ich sagen das ich jede art von p2p hasse und das du bei mir weder emule noch kazaa finden würdest -.-

XeRo 11. Mär 2004 17:31

Re: geht es auch programmiertechnisch besser?
 
Zitat:

Zitat von roderich
...aber niemals lernen wirst, richtig zu programmieren.

Warum nicht :gruebel:

moritz 11. Mär 2004 17:32

Re: geht es auch programmiertechnisch besser?
 
Zitat:

Zitat von XeRo
Zitat:

Zitat von roderich
...aber niemals lernen wirst, richtig zu programmieren.

Warum nicht :gruebel:

Es kann schon sein, aber ich habe auch was gegen Kazaa und Emule. Ich mein, wenn du dir dein Programm nicht kaufst ist das doch irgendwie nix wert, oder?

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Seite 1 von 2  1 2      

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