Taschenrechner geschlossen 

  • Ersteller Ersteller ElvisTheKing
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Fakultät ist doch
das Produkt von 1 bis n oder?

Also Fakultät von 5 ist
1*2*3*4*5 = 120

Also Lösungsansatz:
Code:
integer ergebnis = 1;
integer zaehler

for zaehler = 5 downto 1 do
begin
ergebnis = ergebnis * zaehler;
end;
Dann solltest du im ergebnis 120 stehen haben :)

Quersumme ist tatsächlich etwas schwerer, da kann ich dir auch nicht wirklich helfen, weil ich ja wie gesagt kein Delphi kann...

Nur soviel:
Quersumme bedeutet das alle Ziffern einer natürlichen Zahl addiert werden. Also: Quersumme von 95 = 9+5 = 14

Was du also tun musst ist irgendwie die Ziffern zu trennen. Da du ja vermutlich ein String aus dem Textfeld bekommst sollte das nicht alzu schwer sein. Kann dir aber grad keine Lösung nennen.

Wie wolltest du denn den ggT und kgV implementieren??
 
Ich hab noch en paar Fragen:
1.
das betrifft aber nur 5!, oder?
2. ich weiß schon was quersumme ist, ich hab mathe-lk
3.
was heißt implementieren?

1. Ja die 5 habe ich jetzt beispielhaft genommen, du wirst dann dafür die zahl aus dem eingabefeld nehmen...
2. wundervoll
3.
Implementieren ist die Umsetzung von festgelegten Strukturen und (Arbeits-)Abläufen in einem System unter Berücksichtigung von Rahmenbedingungen, Regeln und Zielvorgaben - also einer Spezifikation.
Also wie möchtest du ggT und kgV umsetzen, benutzen, ins programm einfügen... was auch immer
 
Also, man gibt zwei zahlen in die beiden Eingabefelder, drückt auf kgT bzw. ggV und dann steht die lösung im Ausgabefeld.
 
ggT:
Code:
function ggT(a integer, b integer) : integer
var
c : integer
begin
if(b = 0) result := a
else
begin
c:= a mod b;
ggT(b, c);
end;
end;

kgV:
Code:
result := A*B/ggT(A, B);

Bekomm ich eigentlich was dafür das ich deine Hausaufgaben mach?? ;)
 
Bekomm ich eigentlich was dafür das ich deine Hausaufgaben mach?? ;)

Jetzt noch Anforderungen stellen, wie? :D
Erst wenn alles klappt!

Ok, passt alles, wunderbar, bis auf die Quersumme.
Aber dazu hab ich heut abend nicht mehr die nötige Konzentrationsfähigkeit.
(Was nicht heißt, das hier nicht weitergepostet werden darf :D )
Ich schreib ma meinen kompletten Code hin, is zwar nicht ganz effizient, erfüllt aber seinen Zweck:
Code:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:real;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=a+b;
d:=a-b;
edit3.text:=floattostr(c);
edit4.text:=floattostr(d);
end;

procedure TForm1.Button2Click(Sender: TObject);
var a,b,c,d:real;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=a*b;
d:=a/b;
edit3.text:=floattostr(c);
edit4.text:=floattostr(d);
end;

procedure TForm1.Button5Click(Sender: TObject);
var isprim: boolean; zaehler, zahl: integer;
begin
isprim:=true;
zahl:=strtoint(edit1.text);
for zaehler:= 2 to Trunc(sqrt(zahl))+1 do
begin
if ((zahl mod zaehler)=0) then
isprim:=false;
end;
if isprim = true then edit5.text:='ja'
else edit5.text:='nein';

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close
end;

procedure TForm1.Button6Click(Sender: TObject);
var a,r : Double; i:Integer;
begin
r:=strtofloat(edit1.text);
a:=1;
for i:= 1 to 100 do
begin
a:= 0.5 *(a + r/a);
end;

edit3.text :=floattostr(a)
end;

procedure TForm1.Button4Click(Sender: TObject);
var a,b,c:integer;
begin

a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
for c:=2 to b do
a:=a*a;
edit3.text:=inttostr(a);
end;

end.

mfg
 
Ok habs hinbekommen! Alles in Butter!
Nochma vielen Dank an Zerd!
Kann geschlossen werden

mfg
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten