Autor Beitrag
Snippy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61



BeitragVerfasst: Mi 21.05.03 21:29 
So!

Ich hab hier mal ein Programm für alle, die es leid sind die Geometriehausaufgaben zu machen :wink:

Hiermit könnt ihr Oberfläche und Volumen verschiedener dreidimensionaler Körper berechnen!

Ist nicht wirklich kompliziert, aber praktisch :D

Da gibt es alles [url]www.snippytown.de/Delphi/Koerper.ace[/url]

_________________
Carpe Diem!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 21.05.03 22:17 

  • Ein Ring hat eine Höhe?
  • Prisma: Kantenlänge1, Anzahl der Seiten, Höhe :shock: Eine Skizze wäre da nicht schlecht.
  • Pyramide: Kantenlänge. Welche? Die der Grundseite oder der Pyramidenseite?
  • Kegel: Höhe - OK, Radius - OK, Mantellänge - ??? Woher soll ich das wissen? Aber mit radius und Höhe kannst du sie im Programm doch selber ermitteln.

Gibt man nichts ein und klickt auch eine Schaltfläche gibt es eine saftige Fehlermeldung:
Zitat:

---------------------------
Project1
---------------------------
'' is not a valid floating point value.
---------------------------
OK
---------------------------

In der Taskbar steht "Projekt1".
Wie wäre es mit einerm Icon?
Und wieder diese seltsame Verhalten, wenn man das Fenster maximeiren will.

Die Backup-Dateien sind im Archiv überflüssig.
Snippy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61



BeitragVerfasst: Mi 21.05.03 22:27 
Ich bin eben kein Procoder und auch kein Perfektionist!

Das war einfach nur dazu gedacht, dass ihr da ein bisschen mit rumrechnen könnt und eben um Hausaufgaben zu machen und genau aus diesem Grund habe ich das schnell mal gemacht^^

Das da soviel dran auszusetzen ist hätte ich jetzt nicht gedacht!

Cu

_________________
Carpe Diem!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 21.05.03 22:30 
Ich würde es nicht als "ausetzten", sondern als "konstruktive Kritik" Bezeichnen.

Aber gerade weil wir mit arbeiten sollen, sollten wird doch wissen, was wir da wo eingeben müssen.
Snippy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61



BeitragVerfasst: Mi 21.05.03 22:32 
Das stimmt wohl

Aber was ne Mantellänge is solltest du eigentlich wissen :wink:

Und ein Ring hat ne Höhe (Ein Fingerring is ja auch nicht nur eine Atomhöhe hoch^^)
Hier gehe ich eben von einem Ring mit "eckigen" Kanten aus

Bei der Kantenlänge is die Grundseite gemeint

_________________
Carpe Diem!


Zuletzt bearbeitet von Snippy am Mi 21.05.03 22:35, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 21.05.03 22:35 
Ich weiß, was die Mantellänge ist, nur wen ich Radius und Höhe habe, muß ich selber noch mit dem Taschenrechner die Mantellänge ausrechen.

Ok das mit dem Ring, habe ich mit einem Kreisring verwechselt, das ist ein 2D-Ring. :wink:
Snippy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61



BeitragVerfasst: Mi 21.05.03 22:36 
Du kannst sie auch im Objekt nachmessen^^

_________________
Carpe Diem!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 21.05.03 22:44 
Stimmt ich bastele mir immer vor einen Kegel.

Das Problem ist eben, dass mehrer unterschiedliche Dinge gegebn sein können. Das würde das Programm natürlich sehr komplex machen.
Snippy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 61



BeitragVerfasst: Fr 23.05.03 13:11 
Das ganze sollte ja auch überschaubar bleiben und eben nur was für zwischendurch sein^^

_________________
Carpe Diem!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: So 25.07.04 22:06 
Das proggy ist eigentlich mathematisch sehr korrekt: wenn man bei der Pyramide von der Kantenlänge spricht, dann ist es ohne zweifel die grundflächenkantenlänge. das andere wäre nämlich die Seitenlänge.
Was mich stört is: WIEVIELE ECKEN HAT EIGENTLICH DIE GRUNDSEITE?! denn das ist unklar. ich gehe davon aus dass du eine Pyramide mit quadratischer Grundfläche meinst, aber es gibt auch Rechteckige, Trapezförmige, Dreieckige(gleichseitig, schenklig und was noch alles), und so weiter. du könntest von einer regelmäßigen Pyramide ausgehen und die Grundflächenkantenanzahl angeben lassen.
PS: Alles was ich hier gesagt habe würde das Program wahrscheinlich zu kompliziert machen. nur vielleicht sollte man es erwähen, welche form die pyramiede hat. das mit der Skizze wäre wirklich sehr schlau. und dann könte man noch erwähnen, dass ein Kreisring einfach mit der höhe 1 berechenbar ist. Jaja... wenn ein Gymnasiast anfängt, vom augenblicklichen thema zu schwallen...
Ignoriert mich einfach :wink:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mi 28.07.04 16:17 
ich hab mir mal die zeit genommen, und mal dein Programm unter die lupe genommen.

das erste, was mir beim starten der exe auffiel, das alle felder sichtbar waren! ich dachte zuerst, ich muss das alles eingeben. bis ich dahinter kam, das man erst mal eine auswahl treffen musste.

keinerlei quelltext formatierung! keine komponenten umbenannt!

warum stellst du eine constante mit dem wert von pi? warum nimmst du nicht "pi", was dir delphi bereitstellt?

ich stell den von mir geänderten quelltext mal hier rein! ist wesentlich kürzer, und dezent geändert.

dauert aber noch ne kleine weile!

mfg matthias
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 29.07.04 12:36 
so, hab mal deinen quelltext bissle korigiert.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Menus, math;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    RadioButton9: TRadioButton;
    RadioButton10: TRadioButton;
    RadioButton11: TRadioButton;
    Edit5: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    MainMenu1: TMainMenu;
    Programm1: TMenuItem;
    Beenden1: TMenuItem;
    Info1: TMenuItem;
    Label6: TLabel;
    Edit6: TEdit;
    Edit7: TEdit;
    Label7: TLabel;
    procedure Beenden1Click(Sender: TObject);
    procedure Info1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton6Click(Sender: TObject);
    procedure RadioButton7Click(Sender: TObject);
    procedure RadioButton8Click(Sender: TObject);
    procedure RadioButton9Click(Sender: TObject);
    procedure RadioButton10Click(Sender: TObject);
    procedure RadioButton11Click(Sender: TObject);
    procedure RadioButton5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure EditsClear;
    procedure Visible1(str : string);
    procedure Visible2(str : string);
    function IsInteger(const Str: String): Boolean;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Info1Click(Sender: TObject);
begin
  Form2.ShowModal;
end;

function TForm1.IsInteger(const Str: String): Boolean;
begin
  if not (str = ''then
  begin
    Result := StrToIntDef(Str,0) = StrToIntDef(Str,1);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Kanten1,Kanten2,Mantel,Hoehe,Radius1,Radius2,Ergebnis : real;
begin
  if IsInteger(Edit1.Text) = true and IsInteger(Edit2.Text) and
     IsInteger(Edit3.Text) = true and IsInteger(Edit4.Text) and
     IsInteger(Edit5.Text) = true and IsInteger(Edit6.Text) then
  begin
    if RadioButton1.Checked = true then
    begin
      Hoehe := StrToFloat(Edit4.Text);
      Radius1 := StrToFloat(Edit5.Text);
      Radius2 := StrToFloat(Edit6.Text);
      Ergebnis := (Radius1*2*PI*Hoehe)+
                  (Radius2*2*PI*Hoehe)+
                  (((Radius1*Radius2*PI)-
                  (Radius2*Radius2*PI))*2);
      Edit7.Text := FloatToStr(Ergebnis);
      if Radius1 < Radius2 then
      begin
        ShowMessage('Radius1 muss größer als Radius2 sein!');
      end;
    end;

    if RadioButton2.Checked = true then
    begin
      Radius1 := StrToFloat(Edit5.Text);
      Ergebnis := 4*PI*(Radius1*Radius1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton3.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Kanten2 := StrToFloat(Edit2.Text);
      Hoehe := StrToFloat(Edit4.Text);
      Ergebnis := ((Kanten1/2)/tan(360/Kanten2/2))*
                  Kanten2*2+Kanten1*Hoehe*Kanten2;
      if Kanten2 = 3 then
      begin
        Ergebnis := Kanten1*Kanten2/4*sqrt(3)*2+Kanten1*Hoehe*3;
      end;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton4.Checked = true then
    begin
      Hoehe := StrToFloat(Edit4.Text);
      Radius1 := StrToFloat(Edit5.Text);
      Ergebnis := 2*(PI*Radius1*Radius1)+2*PI*Radius1*Hoehe;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton5.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Hoehe := StrToFloat(Edit4.Text);
      Ergebnis := (1/3)*Kanten1*Kanten1*Hoehe;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton6.Checked = true then
    begin
      Mantel := StrToFloat(Edit3.Text);
      Radius1 := StrToFloat(Edit5.Text);
      Ergebnis := PI*Radius1*Radius1+PI*Radius1*Mantel;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton7.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := sqrt(3*Kanten1*Kanten1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton8.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.text);
      Ergebnis := 6*Kanten1*Kanten1;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton9.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := 2*sqrt(3*Kanten1*Kanten1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton10.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := 3*Kanten1*Kanten1*sqrt(25+10*sqrt(5));
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton11.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := 5*sqrt(3*Kanten1*Kanten1*Kanten1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;
  end;
end;

procedure TForm1.EditsClear;
var a : integer;
begin
  for a := 1 to 6 do
  (FindComponent('Edit'+IntToStr(a)) as TEdit).Text := '';
end;

procedure TForm1.Visible1(str : string);
begin
  if str[1] = '0' then Edit1.Visible := true else Edit1.Visible := false;
  if str[2] = '0' then Edit2.Visible := true else Edit2.Visible := false;
  if str[3] = '0' then Edit3.Visible := true else Edit3.Visible := false;
  if str[4] = '0' then Edit4.Visible := true else Edit4.Visible := false;
  if str[5] = '0' then Edit5.Visible := true else Edit5.Visible := false;
  if str[6] = '0' then Edit6.Visible := true else Edit6.Visible := false;
  if str[7] = '0' then Edit7.Visible := true else Edit7.Visible := false;
end;

procedure TForm1.Visible2(str : string);
begin
  if str[1] = '0' then Label1.Visible := true else Label1.Visible := false;
  if str[2] = '0' then Label2.Visible := true else Label2.Visible := false;
  if str[3] = '0' then Label3.Visible := true else Label3.Visible := false;
  if str[4] = '0' then Label4.Visible := true else Label4.Visible := false;
  if str[5] = '0' then Label5.Visible := true else Label5.Visible := false;
  if str[6] = '0' then Label6.Visible := true else Label6.Visible := false;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  Visible1('111000');
  Visible2('111000');
  Label2.Caption := 'Kantenlänge2';
  EditsClear;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  Visible1('111101');
  Visible2('111101');
  Label2.Caption := 'Kantenlänge2';
  EditsClear;
end;

procedure TForm1.RadioButton4Click(Sender: TObject);
begin
  Visible1('111001');
  Visible2('111001');
  Label2.Caption := 'Kantenlänge2';
  EditsClear;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  Visible1('001011');
  Visible2('001011');
  Label2.Caption := 'Anzahl der Seiten'
end;

procedure TForm1.RadioButton6Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('110001');
  Visible2('110001');
  EditsClear;
  Label3.Caption := 'Mantellänge'
end;

procedure TForm1.RadioButton7Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011111');
  Visible2('011111');
  EditsClear;
end;

procedure TForm1.RadioButton8Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011111');
  Visible2('011111');
  EditsClear;
end;

procedure TForm1.RadioButton9Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011111');
  Visible2('011111');
  EditsClear;
end;

procedure TForm1.RadioButton10Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011111');
  Visible2('011111');
  EditsClear;
end;

procedure TForm1.RadioButton11Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011111');
  Visible2('011111');
  EditsClear;
end;

procedure TForm1.RadioButton5Click(Sender: TObject);
begin
  Label2.Caption := 'Kantenlänge2';
  Visible1('011011');
  Visible2('011011');
  EditsClear;
end;

procedure TForm1.Button2Click(Sender: TObject);
var Kanten1,Kanten2,Mantel,Hoehe,Radius1,Radius2,Ergebnis : real;
begin
  if IsInteger(Edit1.Text) = true and IsInteger(Edit2.Text) = true and
     IsInteger(Edit3.Text) = true and IsInteger(Edit4.Text) = true and
     IsInteger(Edit5.Text) = true and IsInteger(Edit6.Text) = true then
  begin
    if RadioButton1.Checked = true then
    begin
      Hoehe := StrToFloat(Edit4.Text);
      Radius1 := StrToFloat(Edit5.Text);
      Radius2 := StrToFloat(Edit6.Text);
      Ergebnis := ((Radius1*Radius2*PI)-(Radius2*Radius2*PI))*Hoehe;
      Edit7.Text := FloatToStr(Ergebnis);
      if Radius1 < Radius2 then
      begin
        ShowMessage('Radius1 muss größer als Radius2 sein!');
      end;
    end;

    if RadioButton2.Checked = true then
    begin
      Radius1 := StrToFloat(Edit5.Text);
      Ergebnis := (4/3)*PI*(Radius1*Radius1*Radius1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton3.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Kanten2 := StrToFloat(Edit2.Text);
      Hoehe   := StrToFloat(Edit4.Text);
      Ergebnis := ((Kanten1/2)/(tan(360/Kanten2/2)))*Kanten2*Hoehe;
      if Kanten2 = 3 then
      begin
        Ergebnis := ((Kanten1*Kanten1)/4)*sqrt(3)*Hoehe;
      end;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton4.Checked = true then
    begin
      Hoehe    := StrToFloat(Edit4.Text);
      Radius1  := StrToFloat(Edit5.Text);
      Ergebnis := PI*Hoehe*Radius1*Radius1;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton5.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Hoehe := StrToFloat(Edit4.Text);
      Ergebnis := Kanten1*Kanten1+2*Kanten1*sqrt(Hoehe*Hoehe+(0.5*Kanten1)*(0.5*Kanten1));
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton6.Checked = true then
    begin
      Hoehe := StrToFloat(Edit4.text);
      Radius1 := StrToFloat(Edit5.text);
      Ergebnis := (1/3)*PI*Radius1*Radius1*Hoehe;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton7.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := (1/12)*sqrt(2*Kanten1*Kanten1*Kanten1);
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButon8.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := Kanten1*Kanten1*Kanten1;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton9.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := (sqrt(2)/3)*Kanten1*Kanten1*Kanten1;
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton10.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := (Kanten1*Kanten1*Kanten1/4)*(15+7*sqrt(5));
      Edit7.Text := FloatToStr(Ergebnis);
    end;

    if RadioButton11.Checked = true then
    begin
      Kanten1 := StrToFloat(Edit1.Text);
      Ergebnis := (5/12)*Kanten1*Kanten1*Kanten1*(3+sqrt(5));
      Edit7.Text := FloatToStr(Ergebnis);
    end;
  end;
end;

end.
delphist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN XP, 98, 95; SUSE LINUX 8.1, 6.1, 6.0

BeitragVerfasst: Di 03.08.04 22:31 
Hallo,
Seid doch froh, dass es Nachwuschs gibt :-)
Und *mist*t hier keine 7t Klässler zusammen. MENSCH.! :-)

_________________
3w + freehostlist + de
3w + bild-stoerung + de
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 03.08.04 22:59 
Hier könnte man es etwas komfortabler gestalten:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
      if Radius1 < Radius2 then   
      begin   
        ShowMessage('Radius1 muss größer als Radius2 sein!');   
      end;   
    end;

Statt dessen hätte ich es so gemacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
    if RadioButton1.Checked = true then   
    begin   
      Radius1 := StrToFloat(Edit5.Text);   
      Radius2 := StrToFloat(Edit6.Text);   
        if Radius1 < Radius2 then   
        begin   
          Radius1 := StrToFloat(Edit6.Text);   
          Radius2 := StrToFloat(Edit5.Text);   
        end;
      Hoehe := StrToFloat(Edit4.Text); 
      Ergebnis := (Radius1*2*PI*Hoehe)+   
                  (Radius2*2*PI*Hoehe)+   
                  (((Radius1*Radius2*PI)-   
                  (Radius2*Radius2*PI))*2);   
      Edit7.Text := FloatToStr(Ergebnis);   
    end;


Auf die Art ist es egal, ob man versehentlich die beiden Radien vertauscht, und man spart sich eine (mehr oder weniger) nervige Fehlermeldung!

Aber Recht hat der delphist! Schweine! :evil:
Als ich in der 7. war hab ich voll schlecht gecodet. naja.. nach langer arbeit hätt ich son program auch grad so auf die beine gestellt. aber son nen schönen Hintergrund...! ich muss mal versuchen für meine sachen auch so nette bildchen zu bekommen...!

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mi 04.08.04 00:41 
erstens: es war in keinem fall meine absicht, einen 7. klässler zusammen zu stauchen. mit meinen vorschlägen beabsichtige ich nur, das er sich mit meinen verbesserungen auseinander setzt, und darüber nachdenkt, warum ich es so gelöst habe. denn daraus wird er sicher noch etwas mit lernen können. denke ich zumindest mal! weiterhin denke ich nicht, das er erst in der 7. klasse ist, denn da er wird er es wohl kaum fertig bringen, so ein programm zu schreiben.

ich finde allerdings, das die fehlermeldung schon ihren sinn dort findet! weil es kann ja sein, das man nur den falschen radius eingegeben hat. was nützt es da, wenn die radien vertauscht werden? das ist alles bissle wage theorie! es kann so und so sein! beides ist jedoch, wie ich finde, eine relativ gute lösung!

mfg matthias
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 04.08.04 00:53 
Ich hab auch ned gesagt dass du ihn zusammen gestaucht hast, ich hab mich einfach delphists meinung angeschlossen, aber vergessen ein ;) dazu zu machen... sry.. :roll:
Ach und: ich denke dass man in der 7. sehr wohl schon ein gutes Programm schreiben kann, solange man vorkenntnisse hat, und es nicht erst in ITG lernt. (In ITG hatten wir den "Linsenmaier", der war so verpeilt, dass wir die ganze Zeit C&C Renegade Demo gezockt haben, während wir lernen sollten, wie man in Word eine Datei läd... :twisted: ) Ich konnte es vorher schon(delphi), weil ich einen kumpel hatte, dessen vater mit der 5 Prof. arbeitet. kleiner Tipp: er ist hier auch registriert unter dem namen "McManiaC" :) Ein freundlicher Gruß an dieser stelle :wink2: !!

Ok Bevor dasshier in die OffTopic kommt nur wegen mir, hier noch was nützliches:

Ich denke das nicht, denn wer (versehentlich) einen Fehler beim eintippen macht, der muss es so und so ändern, egal ob er erst eine fehlermeldung wegklickt oder ob er die lösung ignoriert.
Man könnte natürlich einfach Labels hinzufügen von wegen: "Hier der grössere Radius" und "Hier der kleinere...".
Das würde natürlich quelltextveränderungen sparen...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mi 04.08.04 10:39 
wie ich schon gesagt habe, es kann beides sein!

deshalb ist wegen der fehlerabfang routine auch nichts wirklich der weisheit letzter schluss!

ein 7. klässler kann das! aber es ist doch sehr unwahrscheinlich, das so einer ein programm für geometrie schreibt, welches auch teilweise die höhere mathematik betrifft! aber schluss jetzt!

weitere diskusionen zum thema "zu jung" entweder per pn oder neues topic in offtopic!

mfg matthias
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.08.04 15:08 
Eventuell auch einfach mal hier: www.luckie-online.de...kel/CodeDesign.shtml kucken.
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mi 04.08.04 23:45 
is echt nicht schlecht!

sehr gut erklärt, wie ich meine!

kann mancher noch was von lernen!

mfg matthias