|
You last visited: Today at 18:56
Advertisement
Maximum bestimmen!
Discussion on Maximum bestimmen! within the General Coding forum part of the Coders Den category.
03/26/2014, 19:26
|
#1
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
Maximum bestimmen!
Hey Leute,
ich bin noch ganz am Anfang(Delphi 7)!
Aber besser früher als nie
Ich habe ein Problem und hoffe ihr könnt mir bei der einfachen Aufgabe behilflich sein!
Es geht um Delphi 7 und ich habe jetzt aus eigener Interesse so ein Programm erstellt der das Maximum aus 3 Zahlen berechnet jedoch spuckt er mir nicht das Maximum aus sondern gar nicht :/
Code:
unit Aufgabe1II2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Panel1: TPanel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
var a,b,c,max:single;
procedure TForm1.ButtonClick(Sender:Object);
begin
with Form1 do
begin
val(Edit1.Text,a,code);
val(Edit2.Text,b,code);
val(Edit3.Text,c,code);
end;
procedure max;
begin
if a> b then max:= a;
if c> max then max:= c;
Label1.Caption := max;
end;
end.
wie gesagt hoffe ihr hated mich nicht auch wenn es aus eurer Sicht zu einfach ist !
Ich danke im vorraus !
|
|
|
03/26/2014, 19:28
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Bist du sicher das du Singles zu einem ANSI-String (oder PChar? Bin nicht so fit in Delphi) einfach so assignen kannst?
Die Zeile
Code:
Label1.Caption := max;
müsste glaube ich
Code:
Label1.Caption := FloatToStr(max);
lauten.
|
|
|
03/26/2014, 19:30
|
#3
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
No, geht noch immer nicht :/
trzd danke!
|
|
|
03/26/2014, 19:43
|
#4
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Wenn ich das richtig sehe, rufst du nirgends die Prozedur auf.
Du überprüfst übrigens nicht, ob b die größte Zahl ist.
|
|
|
03/26/2014, 19:56
|
#5
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
Ok danke  D das mit b hab ich auch grad gemerkt^^...
Wie rufe ich denn eine Prozedur auf ?
|
|
|
03/26/2014, 19:58
|
#6
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Statt einer Prozedur würde ich eine Funktion bevorzugen, da kannst du was returnen lassen und direkt weiterverarbeiten. Wenn du von deiner Eingabe (a,b,c) etwas zurückerwartest (a, b oder c) dann nimm lieber Funktionen. Das Caption-setten sollte nicht in der Prozedur erfolgen.
|
|
|
03/26/2014, 20:17
|
#7
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
Habs nochmal etwas geändert...
Code:
procedure max;
var a,b,c,max:integer;
begin
with Form1 do
begin
if a > b then max := a;
if b> max then max:= b;
if c> max then max:= c;
val(Edit1.Text,a,code);
val(Edit2.Text,b,code);
val(Edit3.Text,c,code);
end;
Label1.Caption := FloatToStr(max);
end;
end.
...mit function zeigt der haufenweise Fehler an :0
Bei mir zeigt der bei max := a nen Fehler an :/
|
|
|
03/26/2014, 20:19
|
#8
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Vielleicht wegen deiner If-Abfrage?
Delphi bitcht häufig wegen kleinstem Scheiß rum wobei andere Sprachen richtig tolerant sind.
Versuch mal
Code:
If (a>b) then max := a;
statt dem ursprünglichen.
|
|
|
03/26/2014, 20:27
|
#9
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
Quote:
Originally Posted by alpines
Vielleicht wegen deiner If-Abfrage?
Delphi bitcht häufig wegen kleinstem Scheiß rum wobei andere Sprachen richtig tolerant sind.
Versuch mal
Code:
If (a>b) then max := a;
statt dem ursprünglichen.
|
haha
jetzt zeigt der mir bei
Code:
val(Edit1.Text,a,code);
den Fehler an um genau zu sein für code...
Wenn ich das jetzt raus schneide zeigt der mir bei
Code:
Label1.Caption := FloatToStr(max)
den Fehler an
|
|
|
03/26/2014, 21:33
|
#10
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Sicherlich zeigt der dafür einen Fehler an wenn keine Variable code definiert ist, was soll val() überhaupt machen?
Und der Grund warum der beim letzten einen Fehler anzeigt ist, weil du ein Semikolon ; vergessen hast.
|
|
|
03/27/2014, 05:44
|
#11
|
elite*gold: 1
Join Date: Mar 2011
Posts: 828
Received Thanks: 1,395
|
val() ist das selbe wie StrToInt().
1) das "with Form1 do" kannst du weglassen, da Form1 (Self) in einer Klassenmethode automatisch impliziert wird
2) A, B, C und Max solltest du lokal deklarieren und nicht global
3) du kannst nicht einfach so eine procedure/function innerhalb des Codeteils einer anderen Funktion deklarieren. Das hat doch sicher schon zur compiletime Fehlermeldungen gehagelt? Pack die Funktion entweder in die private/evtl. public Section des Formulars oder in eine extra Unit/Klasse.
Optimal wäre sowas:
Code:
type
TForm12 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
function Max(A1, A2: Integer): Integer;
public
{ Public-Deklarationen }
end;
var
Form12: TForm12;
implementation
{$R *.dfm}
procedure TForm12.Button1Click(Sender: TObject);
var
A, B, C: Integer;
begin
A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);
C := StrToInt(Edit3.Text);
Label1.Caption := IntToStr(Max(Max(A, B), C));
end;
function TForm12.Max(A1, A2: Integer): Integer;
begin
Result := A1;
if (A2 > A1) then Result := A2;
end;
|
|
|
03/27/2014, 20:31
|
#12
|
elite*gold: 0
Join Date: Aug 2011
Posts: 142
Received Thanks: 14
|
Danke an alle das Problem ist jetzt gelöst  !
|
|
|
 |
Similar Threads
|
[REQ] Wert mit .ini bestimmen.
10/24/2013 - C/C++ - 6 Replies
Hallo ich möchte einen wert in einer .asi mit einer .ini bestimmen.
Da ich aber keinerlei Kenntnisse in c++ habe kann ich das selbst nicht machen.
Ich möchte den wert *fDistance = 1500.0; (Wenn es an ist)
und den wert *fDistance = 50.0; (Wenn es aus ist)
in einer .ini bestimmen können
Ich hoffe das mir das jemand machen kann :)
Danke im voraus.
|
ItemBlock auf Map bestimmen?
04/17/2013 - Metin2 Private Server - 0 Replies
Hey Leude,
meine Frage wurde schon paar mal gestellt aber nie richtig gelöst. Folgendes:
Ich suche die Methode Clientside per Pyhton Items wie Rote Potts oder 100% Potts auf einer Map zu verbieten (ihre Nutzung verhindern)
Bei den Taus dachte in an eine Quest welche die Bonis wieder abzieht. Aber ich denke und weiß das es eine methode per Pyhton im Client gibt welche mir das ganze etwas besser möglich macht..
Hab das ganze schonmal von Musicinstructor gesehen welcher aber nicht so...
|
NPC blickrichtung bestimmen ?
03/01/2011 - Metin2 Private Server - 3 Replies
wie lege ich die blickrichtung eines Npcs fest
hier die zeile
m 351 483 0 0 0 0 1m 100 1 9003
|
DT schmied bestimmen?
12/10/2010 - Metin2 - 6 Replies
http://www.imgbox.de/users/public/images/ZdscSzwal K.JPG
Die map aus dem video von FuBu.. angeblich kann man damit bestimmen (indem man den king auf den richtigen felder killt) welcher schmied erscheint.
Nun wollte ich euch fragen was die map aus sich hat?
Stimmt es? oder ist es nur ein Fake ?
Und kann es mal einer übersetzten? xD
|
IP Bestimmen?
07/03/2010 - Diablo 2 - 6 Replies
ich suche nach nem tool, mit dem ich die ip selber einstellen kann worauf ich in d2 connecte, gibt es sowas und könnte evtl. jmd nen link geben? ist es safe? mir is das ewige suchen der ip zu lästig geworden und kissclonehunter is auch nich grade der burner, nie krieg ich die ip die ich suche... könnte villt einer mit sowas auskennen :)
|
All times are GMT +1. The time now is 18:57.
|
|