Autor Beitrag
Battery
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 20



BeitragVerfasst: So 19.11.06 15:34 
Hallo, in Informatik sollen wir verschiedene Funktionen Programmieren, wie zb die SGN-Funktion, und aber auch die Gaussfunktion, bei der jeder Zahl von -1 bis -1,(periode)9 die zahl -2, jeder zahl von 0 bis 0,(periode)9 die zahl -1, den zahlen x>0 bis 1 die zahl 0, x>1 bis 2 die zahl 1 etc etc zugeordnet wird. Hoffe das ist verständlich :oops:
Klappt bei mir soweit, bis auf dass es nicht für x<0 funktioniert.

2. Problem: Bei der Funktion "Differenz" geht es darum, eine vierstellige Zahl einzulesen, die dann zu spiegeln und die kleinere von der größeren abzuziehen. Wiederholt man das immer wieder mit dem Ergebnis, sollte irgendwann immer die Zahl 1818 rauskommen, allerdings sollen wir nur soweit Programmieren, das mann immer die Differenz bildet, nicht bis ständig 1818 rauskommt. Laut meinem Infolehrer ist der Code in Ordnung, er konnte mir nicht helfen, warum der Fehler kommt.

3. Problem: Die Fibonacci Funktion oder besser Folge??. Tja, da hab ich keine Ahnung wie ich das schreiben soll...die Funktion geht so:
der 1 wird die 1 zugeordnet, der 2 die 1, der 3 die 2, der 4 die 3, der 5 die 5, der 6 die 8, der 7 die 13 etc ...
Irgendwie ist der neue zugeordnete Wert immer die Summe der letzten beiden wenn ich das richtig verstanden habe, für 1 und 2 ist die Folge definiert oder so :?:

Naja, ich hoffe ihr könnt mir helfen.
Ich häng hier mal alles an, also Code und so

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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button2: TButton;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit7: TEdit;
    Label7: TLabel;
    Button3: TButton;
    Edit8: TEdit;
    Label8: TLabel;
    Edit9: TEdit;
    Label9: TLabel;
    Button4: TButton;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Button5: TButton;
    Edit13: TEdit;
    Edit14: TEdit;
    Button6: TButton;
    Edit15: TEdit;
    Edit16: TEdit;
    Button7: TButton;
    Edit17: TEdit;
    Edit18: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);

  private

  function sgn(x:real):integer;
  function quad(x:real):real;
  function gauss(x:real):integer;
  function Minimum(x:real;y:real):real;
  function quersum(x:integer):integer;
  function titzi(x:integer):real;
  function dif(x:integer):integer;

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


type vierstring=string[4];

var  Form1: TForm1;
  a,b,c: real;
  o,i: integer;
implementation

function TForm1.sgn(x:real):integer;
         begin
         if x= 0 then result:=0;
         if x>0  then result:=1;
         if x<0  then result:=-1;
         end;

function TForm1.quad(x:real):real;
         begin
         result:=(a*x*x) +(b*x) + c;
         end;

function TForm1.gauss(x:real):integer;
         var erg: integer;

         begin
         i:=1;
         if x>0 then begin
          //showmessage(inttostr(i));
         repeat
         inc(i); {showmessage(inttostr(i))}
         until x<i;
         erg:=i;
                     end;
         o:=-1;
         if x<0 then begin

         while x<i do i:=i-1;
         erg:=i;
                     end;
         result:=erg;
         end;

function TForm1.Minimum(x:real;y:real): real;
         begin
         if x > y then result := y else result := x;
         end;

function TForm1.quersum(x:integer):integer;
var zahl:string;
    i :integer;
         begin
         zahl := inttostr(x);
         result:=0;
         for i:= 1 to length(zahl) do
         begin
         result := result + strtoint(zahl[i]);
         end;
         end;

function TForm1.titzi(x:integer):real;
var i :integer;
   begin
        result:= 0;
        for i := 1 to x do
        begin
        result:= result + (1/i);
        end;


   end;

function TForm1.dif(x:integer):integer;
var sp: integer;
    xs,sps: vierstring;
   begin
   xs:=inttostr(x);


   sps[1]:=xs[4];
   sps[2]:=xs[3];
   sps[3]:=xs[2];
   sps[4]:=xs[1];
   sp:=strtoint(sps);
   if sp>x then result:=(sp-x) else result:=(x-sp);

   end;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var z:real;
    y:integer;
begin

z:=strtofloat(edit1.text);
y:=sgn(z);
edit2.text:=inttostr(y);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
y,z: real;
begin
a:=strtofloat(edit3.text);
b:=strtofloat(edit4.text);
c:=strtofloat(edit5.text);
z:=strtofloat(edit6.text);
y:=quad(z);
edit7.text:=floattostr(y);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
y: integer;
z: real;
begin
i:=0; o:=-1;
y:=gauss(z);
edit9.text:=inttostr(y);
end;



procedure TForm1.Button4Click(Sender: TObject);
var a, b, erg : real;
begin
     a := strtofloat(edit10.text);
     b := strtofloat(edit11.text);
     erg := Minimum(a,b);
     edit12.text := floattostr(erg);
end;

procedure TForm1.Button5Click(Sender: TObject);
var a, erg : integer;
begin
     a := strtoint(edit13.text);
     erg := quersum(a);
     edit14.text := inttostr(erg);
end;

procedure TForm1.Button6Click(Sender: TObject);
var a: integer; ergeb:real;
begin
     a:=strtoint(edit15.text);
     ergeb:=titzi(a);
     edit16.text:=floattostr(ergeb);

end;

procedure TForm1.Button7Click(Sender: TObject);
var v,erg: integer;
begin
v:=strtoint(edit17.text);
erg:=dif(v);
edit18.text:=inttostr(erg);

end;

end.


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
Einloggen, um Attachments anzusehen!
Battery Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 20



BeitragVerfasst: Mo 20.11.06 21:28 
kann mir niemand helfen?? :cry:
ich schreib morgen ne info arbeit... :?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 20.11.06 21:39 
Auch wenn du morgen ne Info-Arbeit schreibst, mach ich hier dicht. Erstelle bitte pro Frage einen Thread. Mehrere Fragen in einem Topic führen i.A. zu einem Chaos.

_________________
We are, we were and will not be.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.