| Autor |
Beitrag |
R4Z0R
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 15.05.04 11:14
Hi,
Ich war leider so dumm um INformatik zu wählen... Ist anscheinend doch nichts für mich und deswegen kome cih imit den wöchentlichen Programmier Hausaufgaben nicht klar.
Besonders wenn man noch für andere KLausuren lernen muss habe ich keine Zeit 3 Stunden an einem kleinen PRog zu sitzen , was andere Leute in 15 min machen:
Wir sollten ein Programm schreiben, mit dem man Dinge an einem Dreieck berrechnen kann. (Umfang + Flächeninhalt)
Umfang habe ich glaube ich zu 95% fertig, aber es gibt da glaube ich einen kleinen Fehler.
Und beim Flächeninhalt habe ich 0 Ahnung.
Tipps wurden uns keine gegeben.
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:
| unit mDreieck;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TDreieck = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; EdSeite1: TEdit; EdSeite2: TEdit; EdSeite3: TEdit; EdErgebnis: TEdit; Btrechnen: TButton; Btende: TButton; procedure BtendeClick(Sender: TObject); procedure BtrechnenClick(Sender: TObject); private public function fUmfang(a,b,c:Real):Real; end;
var Dreieck: TDreieck; Umfang: Real;
implementation
{$R *.dfm}
function TDreieck.fUmfang(a,b,c:Real):Real; begin if (a + b > c) or (b + c > a) or (c + a > b) then fUmfang := 0 else fUmfang := a+b+c; end;
procedure TDreieck.BtrechnenClick(Sender: TObject); var a1,b1,c1:Real ; begin a1 := StrtoFloat(edseite1.text); b1 := StrtoFloat(edseite2.text); c1 := StrtoFloat(edseite3.Text); Umfang := fumfang(a1,b1,c1); if umfang = 0 then edergebnis.text := 'error' else edergebnis.Text := FloattoStr(Umfang); end;
procedure TDreieck.BtendeClick(Sender: TObject); begin dreieck.Close; end;
end. |
Alsao in dem Prog sollen die drei seiten in edit feldern angegeben werden - habe ich
Dann wenn man auf den Button klickt soll der Umfang berechnet werden - habe ich
Dann sollten wir das Prog so modifizieren , dass es "Error" anstatt dem Eregebnis anzeigt , wenn das Dreieck unmöglich wäre.
(diese Konditionen wurden von der Lehrerin angegeben ) (a + b > c) or (b + c > a) or (c + a > b)
Als ich das einfügte kam kein Ergebnis sondern nur noch Error raus
Das ist mein erstes PRob
Das zweite ist WIE geht das mit dem Umfang = 0 Ahnung
Danke für alle Hilfe - wie man sieht habe ich ja da auch schon für mein Können relativ viel Arbeit reingesteckt - sehr frustierend wenn ich bei anderem zeug mit so viel Arbeit viel mehr rausbekommen könnte
Moderiert von Peter Lustig (12:34, 15.05.2004): Code- durch Delphi-Tags ersetzt
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: Sa 15.05.04 14:14
Machs am besten mit der Herons Formel::
sqrt(s·(s-a)·(s-b)·(s-c))
im Programm wäre das::
s := (a+b+c) / 2
wert := s*(s-a)*(s-b)*(s-c)
wert := sqrt(wert);
und schon hast du den flächeninhalt .. ohne die stressige Höhenkacke..
sqrt steht übrigends für Quadratwurzel (Squareroot)
Denke sollte klappen.. wenn du noch fragen hast .. post it..
Have fun
_________________ Chaos, Panic, Disorder - My work here is done
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 15.05.04 20:11
Auf jeden Fall schonmal danke für die Hilfe
hmmm
ich glaube ich bin relativ nahe am Ziel, habe aber einen Fehler drin , denn es kommt immer 0 raus.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function TDreieck.fInhalt(a,b,c:Real):Real; var s,Wert:Real; begin s := (a+b+c) / 2; wert := s*(s-a)*(s-b)*(s-c); wert := sqrt(wert); end;
procedure TDreieck.Button1Click(Sender: TObject); var a,b,c:Real; begin a := StrtoFloat(edit1.text); b := StrtoFloat(edit2.text); c := StrtoFloat(edit3.Text); inhalt := sqrt(wert); edit4.text := FLoattostr(inhalt); end; |
Ich glaube bei inhalt := ist etwas falsch.
Und weiß jemand was der andere Fehler in meinem Prog ist bei dem Umfang , dass immer Error statt der Zahl rauskommt?
Danke für alle HIlfe
Moderiert von Peter Lustig (21:23, 15.05.2004): Code- durch Delphi-Tags ersetzt
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 16.05.04 09:42
em... was wurde da editiert?
Es ist gar kein Unterschied zu vorher da.
Außerdem kann mir bitte jemand helfen???
Muss heute fertig werden.
Danke
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 10:05
ersetze in der letzten Zeile vom Inhalt
Delphi-Quelltext 1: 2: 3:
| wert := sqrt(wert)
result := sqrt(wert) |
_________________ Chaos, Panic, Disorder - My work here is done
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 16.05.04 10:14
Hallo!
Editiert habe ich folgendes:
vorher: s := (a+b+c) / 2; //Ein Kommentar
nachher: s := (a+b+c) / 2;
Also die Code- durch die Delphi-Tags ausgetauscht, damit das Syntaxhighlighting verwendet wird.
Zu Deinem Code: Wo wird "Wert" im Button1Click den mit .. ähm ... Wert gefüllt?
MfG
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 10:20
Hey R4Z0R!
Noop sein ist nich schlimm .. aber deine ganzen Hausaufgaben machen wir auf keinen Fall..
"Informatik" setzt logisches Denken vorraus .. Wenn du das nich gerafft kriss, was wir hier posten na denn prost mahlzeit...
**Übrigends ich habe soeben erfahren, dass ich meine Informatik-LK Abschluss-Klausur verkackt habe -- Schei ss Mnemonic Code .... grrrrrrrrrr
_________________ Chaos, Panic, Disorder - My work here is done
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 16.05.04 11:30
| Zitat: | | Übrigends ich habe soeben erfahren, dass ich meine Informatik-LK Abschluss-Klausur verkackt habe -- Schei ss Mnemonic Code .... grrrrrrrrrr |
Das hängt glaube ich auch davon ab wie du verkacken definierst... Ich wäre mit ner 4 froh!!!!
Deswegen sind die Hausaufgaben auch sow ichtig , weil ich wenn die ok sind nicht durchfalle. (MAthe ist auch nciht viel besser (blödes logisches denken  ))
| Zitat: | deine ganzen Hausaufgaben machen wir auf keinen Fall..
|
Das erwarte ich auch nicht... ein paar mehr tipps sind auch recht  ... nur noch ein paar wochen aah dann ist das Fach auch abgewählt.
| Zitat: | | "Informatik" setzt logisches Denken vorraus |
Genau deswegen habe ich alle anderen solcher "logischen" Fächer à la Physik etc. abgewählt.
Warum ich aber INformatik genommen ahbe kA  ... Wir konntne so 2 Stunden testen und da war das so easy , dass selbst ich das sofort gerafft habe.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 16.05.04 11:50
Haben die Tipps, die Chefkoch und ich als letztes gegeben haben, denn nun etwas gebracht?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 16.05.04 12:24
Ich habe schon Ergebnisse außer "0" bekommen. Nur sind die glaube ich nicht richtig.
Werte à la 1,08646250808739E-31 bei a=3 b=3 c=3
:S Bin im Moment ziemlich durcheinander.
Ich muss wahrschienlich noch etwas mit a,b,c tun , weil da steht "Value assigned to a,b,c but never used"
| Zitat: | | Wo wird "Wert" im Button1Click den mit .. ähm ... Wert gefüllt? |
Bedeutet das Wert:= ???????? unter button1click
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 12:26
also .. ich habe mich gerade dazu durchgerungen dir die hausis fertig zu machen ..
gedulde dich noch ne halbe stunde .. bis denn
_________________ Chaos, Panic, Disorder - My work here is done
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 16.05.04 12:34
| R4Z0R hat folgendes geschrieben: |
Ich muss wahrschienlich noch etwas mit a,b,c tun , weil da steht "Value assigned to a,b,c but never used"
| Zitat: | | Wo wird "Wert" im Button1Click den mit .. ähm ... Wert gefüllt? |
Bedeutet das Wert:= ???????? unter button1click |
Nun ja, Du benutzt die Variable "Wert" in Button1Click, aber es wird ihr nie ein Wert zugewiesen (wert := ???). IMHO muss irgendwo in Button1Click auch mal die Funktion zum Berechnen des Wertes aufgerufen werden. Sonst könnte man sie ja auch weglassen, oder?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 12:51
so .. prog ist fertig..
änders so weit du magst .. so das der penner von info lehrer das nich checked, dass du das nich gemacht hast
Hier der Link [url] www.gatzen.biz/_div/dreieck.zip[/url]
_________________ Chaos, Panic, Disorder - My work here is done
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 16.05.04 16:13
danke!!!
Einziges Manko , das Prog ist viel zuschwer (würde die Lehrerin selbst net hinbekommen xD)
Egal habs schon schön abgespeckt.
Blos es kommt immer ein Error wenn ich zahlen über 9 gebrauche. Könnte man das Problem einfach beheben?
Egal - Auf jeden fall danke!!!
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 16:21
poste mal eben den neuen quellcode .. dann schau ich mir das nochmal an
_________________ Chaos, Panic, Disorder - My work here is done
|
|
R4Z0R 
Hält's aus hier
Beiträge: 7
|
Verfasst: So 16.05.04 16:32
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:
| function umfangberechnen:Real; var a,b,c : real; begin a := strtofloat(main.seitea.text); b := strtofloat(main.seiteb.text); c := strtofloat(main.seitec.text); main.umfang.caption := 'Umfang: '+floattostr(a+b+c); end;
function flaecheberechnen:Real; var a,b,c,s : real; begin a := strtofloat(main.seitea.text); b := strtofloat(main.seiteb.text); c := strtofloat(main.seitec.text); s := (a+b+c) / 2; s := sqrt(s*(s-a)*(s-b)*(s-c)); main.flaeche.caption := 'Fläche: '+floattostr(s); end;
procedure TMain.BtrechnenClick(Sender: TObject); begin umfangberechnen; flaecheberechnen; end;
procedure TMain.BtEndeClick(Sender: TObject); begin Main.Close; end;
end. |
NVM Habs schon abgeschickt.
Danke vielmals!
Moderiert von Peter Lustig (18:27, 16.05.2004): Code- durch Delphi-Tags ersetzt
|
|
chefkoch
      
Beiträge: 48
WIN XP pro
D7
|
Verfasst: So 16.05.04 18:50
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:
| function umfangberechnen:Real; var a,b,c : real; begin a := strtofloat(main.seitea.text); b := strtofloat(main.seiteb.text); c := strtofloat(main.seitec.text); result := a+b+c; end;
function flaecheberechnen:Real; var a,b,c,s : real; begin a := strtofloat(main.seitea.text); b := strtofloat(main.seiteb.text); c := strtofloat(main.seitec.text); s := (a+b+c) / 2; s := sqrt(s*(s-a)*(s-b)*(s-c)); result := s; end;
procedure TMain.BtrechnenClick(Sender: TObject); begin umfang.caption := 'Umfang:'+floattostr(umfangberechnen); flaeche.caption := 'Fläche'+floattostr(flaecheberechnen); end;
procedure TMain.BtEndeClick(Sender: TObject); begin Main.Close; end;
end. |
Habs nich mehr getestet .. sollte aber funzen
_________________ Chaos, Panic, Disorder - My work here is done
|
|