Hi Leute,
nach einiger Zeit melde ich mich auch mal wieder :D.
Ok fang ich gleich mal an.
Wir sind jetzt die ersten an unserer Schule die ein Projekt machen(Lazarus) und da habe ich eine Frage an Leute die das vielleicht schon kennen.Unzwar sollen wir jetzt ein Programm machen mit dem man 3 Seiten angeben kann und das Programm guckt dann ob diese Seiten ein Dreieck ergeben könnten.Mir fällt nichts ein wie das gehen könnte.Hier der Link zur Lazarus Homepage (wer es sich vielleicht mal anschauen will):http://lazarus.freepascal.org/
P.S:Der Editor sieht fast genau so aus wie der von Koda
[Lazarus]
-
- Sonstiges
-
meyermeyer11 -
1. Juni 2012 um 22:33 -
Erledigt
-
-
Hi
Ich hab mit Lazarus bisher immer nur Dll´s für AutoIt erstellt.
Consolenprogramme bekomm ich auch noch hin, aber bei GUI Anwendungen muss ich mich leider ausklinken...Am besten stellst du die Frage in einem Delphi-Forum; Viele Delphi-User kennen sich auch mit Lazarus aus bzw. ist es quasi ja fast dieselbe Sprache...
E
-
P.S: Der Editor sieht fast genau so aus wie der von KodaNein. Koda sieht fast genau so aus, wie der Editor von Borland für Pascal und alle ähnlichen Sprachen (Delphi, Lazarus, ...).
-
mit dem man 3 Seiten angeben kann und das Programm guckt dann ob diese Seiten ein Dreieck ergeben könnten
Könntest du das evtl. näher beschreiben? Wo liegt denn allgemein das Problem? An der Sprache oder an der Umsetzung?
-
Also das Problem liegt darin das ich vorher mit der Sprache nichts zu tun hatte und sie deshalb nicht so gut kann.Ich kann nur einen einfachen Taschenrechner der alle 4 Grundrechenarten kann und sonnst nichts eigentlich.
-
Dann musst du wohl nur die GUI zusammenklicken (3 Textfelder für Seitenlängen, 1 Button, 1 Ausgabefeld) und dann beim Buttonklick die Felder auslesen und dann die Länge testen: a+b > c AND a+c > b AND b+c > a
-
Hier für alle die es mal probieren wollen ihr ist das was ich habe:
Spoiler anzeigen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;type
{ TForm1 }
TForm1 = class(TForm)
btndrei: TButton;
edtZahl1: TEdit;
edtZahl3: TEdit;
edtZahl2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
lbldrei: TLabel;
procedure btndreiClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;var
Form1: TForm1;implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.btndreiClick(Sender: TObject);
var Zahl1 :real;
Zahl2 :real;
Zahl3 :real;
Ergebnis :real;
begin
Zahl1:=StrtoFloat(edtZahl1.text);
Zahl2:=StrtoFloat(edtZahl2.text);
Zahl3:=StrtoFloat(edtZahl3.text);
if Zahl1+Zahl2>Zahl3;
and Zahl1+Zahl2>Zahl3;
and Zahl2+Zahl3>Zahl1; then
Ergebnis:='ja'
lbldrei.caption:=Ergebnis
else
Ergebnis:='nein'
lbldrei.caption:=Ergebnis;
end;end.
-
Nicht schlecht, aber Ergebnis muss ein String sein und in der If-Bedingung fehlt Zahl1+Zahl3, dafür ist etwas anderes doppelt.
-
Habs jetzt hinbekommen und in meinen Taschenrechner eingefügt:D
Hier der code von dem Dreieck:Spoiler anzeigen
unit unTest;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;type
{ TForm1 }
TForm1 = class(TForm)
btnlesen: TButton;
edtZahl1: TEdit;
edtzahl3: TEdit;
edtzahl2: TEdit;
lblErg: TLabel;
Label2: TLabel;
procedure btnlesenClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;var
Form1: TForm1;implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.btnlesenClick(Sender: TObject);
var Zahl1 :real;
Zahl2 :real;
Zahl3 :real;
begin
Zahl1:=StrtoFloat(edtzahl1.text);
Zahl2:=StrtoFloat(edtzahl2.text);
Zahl3:=StrtoFloat(edtzahl3.text);
if (Zahl1+Zahl2>Zahl3) and (Zahl1+Zahl3>Zahl2) and (Zahl2+Zahl3>Zahl1) then
begin
lblErg.caption:='Ja'
end
else
begin
lblErg.caption:='Nein'
end;
end;end.
und hier von dem Taschenrechner:Spoiler anzeigen
unit unTaschenrechner;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;type
{ TForm1 }
TForm1 = class(TForm)
btnAddieren: TButton;
btnminus: TButton;
btnMal: TButton;
btnTeil: TButton;
btnwurzel2: TButton;
btnwurzel1: TButton;
btnDrei: TButton;
edtZahl3: TEdit;
edtZahl1: TEdit;
edtZahl2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
lblErgaus: TLabel;
procedure btnAddierenClick(Sender: TObject);
procedure btnDreiClick(Sender: TObject);
procedure btnMalClick(Sender: TObject);
procedure btnminusClick(Sender: TObject);
procedure btnTeilClick(Sender: TObject);
procedure btnwurzel1Click(Sender: TObject);
procedure btnwurzel2Click(Sender: TObject);
procedure edtZahl1Change(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;var
Form1: TForm1;implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.edtZahl1Change(Sender: TObject);
beginend;
procedure TForm1.btnAddierenClick(Sender: TObject);
var Summand1 :Real;
Summand2 :Real;
summe :Real;
begin
summand1:=StrtoFloat(edtzahl1.text);
summand2:=StrtoFloat(edtzahl2.text);
summe:=summand1 + summand2;
FloatToStr(Summe);
lblergaus.caption:=FloattoStr(summe)
end;procedure TForm1.btnDreiClick(Sender: TObject);
var Zahl1 :real;
Zahl2 :real;
Zahl3 :real;
begin
Zahl1:=StrtoFloat(edtzahl1.text);
Zahl2:=StrtoFloat(edtzahl2.text);
Zahl3:=StrtoFloat(edtzahl3.text);
if (Zahl1+Zahl2>Zahl3) and (Zahl1+Zahl3>Zahl2) and (Zahl2+Zahl3>Zahl1) then
begin
lblErgaus.caption:='Ja'
end
else
begin
lblErgaus.caption:='Nein'
end;
end;procedure TForm1.btnMalClick(Sender: TObject);
var Mal1 :Real;
Mal2 :Real;
Mal :Real;
begin
Mal1:=StrtoFloat(edtzahl1.text);
Mal2:=StrtoFloat(edtzahl2.text);
Mal:=Mal1 * Mal2;
FloatToStr(Mal);
lblergaus.caption:=FloattoStr(Mal)end;
procedure TForm1.btnminusClick(Sender: TObject);
var Minuend1 :Real;
Minuend2:Real;
Minus :Real;
begin
Minuend1:=StrtoFloat(edtzahl1.text);
Minuend2:=StrtoFloat(edtzahl2.text);
Minus:=Minuend1 - Minuend2;
FloatToStr(Minus);
lblergaus.caption:=FloattoStr(Minus)
end;
procedure TForm1.btnTeilClick(Sender: TObject);
var Teilen1 :Real;
Teilen2 :Real;
Teilen :Real;
begin
Teilen1:=StrtoFloat(edtzahl1.text);
Teilen2:=StrtoFloat(edtzahl2.text);
if Teilen2=0 then
begin
lblergaus.caption:='Nicht definiert';
end
else
begin
Teilen:=Teilen1 / Teilen2;
FloatToStr(Teilen);
lblergaus.caption:=FloattoStr(Teilen)
end;
end;procedure TForm1.btnwurzel1Click(Sender: TObject);
var Teilen1 :Real;
Teilen :Real;
begin
Teilen1:=StrtoFloat(edtzahl1.text);
Teilen:=sqrt(Teilen1);
FloatToStr(Teilen);
lblErgaus.caption:=FloatToStr(Teilen);
end;procedure TForm1.btnwurzel2Click(Sender: TObject);
var Teilen1 :Real;
Teilen :Real;
begin
Teilen1:=StrtoFloat(edtzahl2.text);
Teilen:=sqrt(Teilen1);
FloatToStr(Teilen);
lblErgaus.caption:=FloatToStr(Teilen);
end;end.
-
Da ich das jetzt geschafft habe habe ich jetzt eine neue Frage,die sich eigentlich gar nicht so richtig auf Lazarus bezieht:
Wir sollen einen Zinsrechner "bauen" der aus Anfangskapital und Zinssatz das Endkapital berechnet.Ich habe jetzt das Problem das die Rechnung die auf dem Aufgabenblatt steht,falsch ist.Da steht nämlich das Endkapital=Anfangskapital*Zinssatz/100 ist aber bei mir zeigt er dann etwas falsches an.
Ich hoffe das war ausführlich genug -
Zins = Kapital * Zinssatz
1Jahr = Kapital + Kapital * Zinssatz = (1 + Zinssatz) * Kapital
2Jahr = 1Jahr + 1Jahr * Zinssatz = (1 + Zinssatz) * (1 + Zinssatz) * Kapital
...
==> Enbetrag = Startkapital * (1 + Zinssatz) ^ Jahre
Zinssatz als x% / 100%, z.B. 3% = 0.03