Autor Beitrag
sm4rty
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 23.02.08 19:00 
also ich hab eine werte tabelle vom weitsprung..

zb 1.33 entspricht 1 pkt
1.37 9 pkt
1.41 16
1.45 24


so jetzt wird im stringgrid in der zelle [7,i] für i von 1 bis zur aus einem editfeld angelesenen zeilenanzahl

so in den zellen steht zb sowas wie 1.35 oder 1.38 oder 1.46 usw also nicht genau die werte in der wertetabelle jetzt will ich das wenn zb 1.35<p<1.37 wobei p der aus einem stringgrid ausgelsene wert ist der punktwert 1 aus der wertetabelle ermittelt und in eine zelle geschrieben wird.


ich hoffe das war jetzt nicht zu viel kauderwelsch aber ich weiss nich wie ich das anders ausdrücken soll
sm4rty Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 24.02.08 16:06 
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:
procedure TForm2.Button3Click(Sender: TObject);
var
i,aa,p:integer;
a,b:real;
m:string;
begin
aa:=strtoint(edit1.text);
for i:= 1 to aa do

begin
a:=strtofloat(stringgrid1.Cells[7,i]);

if a<1.33 then p:=0 else begin
if a>1.33 then begin if a<1.37 then p:=1 end;
if a>1.37 then begin if a<1.41 then p:=9 end;
if a>1.41 then begin if a<1.45 then p:=16 end;
if a>1.45 then begin if a<1.49 then p:=24 end;
if a>1.49 then begin if a<1.53 then p:=32 end;
if a>1.53 then begin if a<1.57 then p:=39 end;
if a>1.57 then begin if a<1.61 then p:=46 end;
if a>1.61 then begin if a<1.65 then p:=54 end;
if a>1.65 then begin if a<1.69 then p:=61 end;
if a>1.69 then begin if a<1.73 then p:=68 end;
if a>1.73 then begin if a<1.77 then p:=75 end;
if a>1.77 then begin if a<1.81 then p:=82 end;
if a>1.81 then begin if a<1.85 then p:=89 end;
if a>1.85 then begin if a<1.89 then p:=95 end;
if a>1.89 then begin if a<1.93 then p:=102 end;
if a>1.93 then begin if a<1.97 then p:=109 end;
if a>1.97 then begin if a<2.01 then p:=115 end;
if a>2.01 then begin if a<2.05 then p:=122 end;
if a>2.05 then begin if a<2.09 then p:=128 end;
if a>2.09 then begin if a<2.13 then p:=134 end;
if a>2.13 then begin if a<2.17 then p:=141 end;
if a>2.17 then begin if a<2.21 then p:=147 end;
if a>2.21 then begin if a<2.25 then p:=153 end;
if a>2.25 then begin if a<2.29 then p:=159 end;
if a>2.29 then begin if a<2.33 then p:=165 end;
if a>2.33 then begin if a<2.37 then p:=171 end;
if a>2.37 then begin if a<2.41 then p:=177 end;
if a>2.41 then begin if a<2.45 then p:=183 end;
if a>2.45 then begin if a<2.49 then p:=189 end;
if a>2.49 then begin if a<2.53 then p:=195 end;
if a>2.53 then begin if a<2.57 then p:=201 end;
if a>2.57 then begin if a<2.61 then p:=206 end;
if a>2.61 then begin if a<2.65 then p:=212 end;
if a>2.65 then begin if a<2.69 then p:=218 end;
if a>2.69 then begin if a<2.73 then p:=223 end;
if a>2.73 then begin if a<2.77 then p:=229 end;
if a>2.77 then begin if a<2.81 then p:=234 end;
if a>2.81 then begin if a<2.85 then p:=240 end;
if a>2.85 then begin if a<2.89 then p:=245 end;
if a>2.89 then begin if a<2.93 then p:=251 end;
if a>2.93 then begin if a<2.97 then p:=256 end;
if a>2.97 then begin if a<3.01 then p:=261 end;
if a>3.01 then begin if a<3.05 then p:=266 end;
if a>3.05 then begin if a<3.09 then p:=272 end;
if a>3.09 then begin if a<3.13 then p:=277 end;
if a>3.13 then begin if a<3.17 then p:=282 end;
if a>3.17 then begin if a<3.21 then p:=287 end;
if a>3.21 then begin if a<3.25 then p:=292 end;
if a>3.25 then begin if a<3.29 then p:=297 end;
if a>3.29 then begin if a<3.33 then p:=302 end;
if a>3.33 then begin if a<3.37 then p:=308 end;
if a>3.37 then begin if a<3.41 then p:=313 end;
if a>3.41 then begin if a<3.45 then p:=317 end;
if a>3.45 then begin if a<3.49 then p:=322 end;
if a>3.49 then begin if a<3.53 then p:=327 end;
if a>3.53 then begin if a<3.57 then p:=332 end;
if a>3.57 then begin if a<3.61 then p:=337 end;
if a>3.61 then begin if a<3.65 then p:=342 end;
if a>3.65 then begin if a<3.69 then p:=347 end;
if a>3.69 then begin if a<3.73 then p:=351 end;
if a>3.73 then begin if a<3.77 then p:=356 end;
if a>3.77 then begin if a<3.81 then p:=361 end;
if a>3.81 then begin if a<3.85 then p:=366 end;
if a>3.85 then begin if a<3.89 then p:=370 end;
if a>3.89 then begin if a<3.93 then p:=375 end;
if a>3.93 then begin if a<3.97 then p:=379 end;
if a>3.97 then begin if a<4.01 then p:=384 end;
if a>4.01 then begin if a<4.05 then p:=389 end;
if a>4.05 then begin if a<4.09 then p:=393 end;
if a>4.09 then begin if a<4.13 then p:=498 end;
if a>4.13 then begin if a<4.17 then p:=402 end;
if a>4.17 then begin if a<4.21 then p:=407 end;
if a>4.21 then begin if a<4.25 then p:=411 end;
if a>4.25 then begin if a<4.29 then p:=416 end;
if a>4.29 then begin if a<4.33 then p:=420 end;
if a>4.33 then begin if a<4.37 then p:=424 end;
if a>4.37 then begin if a<4.41 then p:=429 end;
if a>4.41 then begin if a<4.45 then p:=433 end;
if a>4.45 then begin if a<4.49 then p:=438 end;
if a>4.49 then begin if a<4.53 then p:=442 end;
if a>4.53 then begin if a<4.57 then p:=446 end;
if a>4.57 then begin if a<4.61 then p:=450 end;
if a>4.61 then begin if a<4.65 then p:=455 end;
if a>4.65 then begin if a<4.69 then p:=459 end;
if a>4.69 then begin if a<4.73 then p:=463 end;
if a>4.73 then begin if a<4.77 then p:=467 end;
if a>4.77 then begin if a<4.81 then p:=472 end;
if a>4.81 then begin if a<4.85 then p:=476 end;
if a>4.85 then begin if a<4.89 then p:=480 end;
if a=4.89 then begin if a<4.93 then p:=484 end;
if a>4.93 then begin if a<4.97 then p:=488 end;
if a>4.97 then begin if a<5.01 then p:=492 end;
if a>5.01 then begin if a<5.05 then p:=496 end;
if a>5.05 then begin if a<5.09 then p:=500 end;
if a>5.09 then begin if a<5.13 then p:=504 end;
if a>5.13 then begin if a<5.17 then p:=508 end;
if a>5.17 then begin if a<5.21 then p:=513 end;
if a>5.21 then begin if a<5.25 then p:=517 end;
if a>5.25 then begin if a<5.29 then p:=521 end;
if a>5.29 then begin if a<5.33 then p:=524 end;
if a>5.33 then begin if a<5.37 then p:=528 end;
if a>5.37 then begin if a<5.41 then p:=532 end;
if a>5.41 then begin if a<5.45 then p:=536 end;
if a>5.45 then begin if a<5.49 then p:=540 end;
if a>5.49 then begin if a<5.53 then p:=544 end;
if a>5.53 then begin if a<5.57 then p:=548 end;
if a>5.57 then begin if a<5.61 then p:=552 end;
if a>5.61 then begin if a<5.65 then p:=556 end;
if a>5.65 then begin if a<5.69 then p:=560 end;
if a>5.69 then begin if a<5.73 then p:=563 end;
if a>5.73 then begin if a<5.77 then p:=567 end;
if a>5.77 then begin if a<5.81 then p:=571 end;
if a>5.81 then begin if a<5.85 then p:=575 end;
if a>5.85 then begin if a<5.89 then p:=579 end;
if a>5.89 then begin if a<5.93 then p:=582 end;
if a>5.93 then begin if a<5.97 then p:=586 end;
if a>5.97 then begin if a<6.01 then p:=590 end;
if a>6.01 then begin if a<6.05 then p:=594 end;
if a>6.05 then begin if a<6.09 then p:=597 end;
if a>6.09 then begin if a<6.13 then p:=601 end;
if a>6.13 then begin if a<6.17 then p:=605 end;
if a>6.17 then begin if a<6.21 then p:=608 end;
if a>6.21 then begin if a<6.25 then p:=612 end;
if a>6.25 then begin if a<6.29 then p:=616 end;
if a>6.29 then begin if a<6.33 then p:=619 end;
if a>6.33 then begin if a<6.37 then p:=623 end;
if a>6.37 then begin if a<6.41 then p:=627 end;
if a>6.41 then begin if a<6.45 then p:=630 end;
if a>6.45 then begin if a<6.49 then p:=634 end;
if a>6.49 then begin if a<6.53 then p:=638 end;
if a>6.53 then begin if a<6.57 then p:=641 end;
if a>6.57 then begin if a<6.61 then p:=645 end;
if a>6.61 then begin if a<6.65 then p:=648 end;
if a>6.65 then begin if a<6.69 then p:=652 end;
if a>6.69 then begin if a<6.73 then p:=655 end;
if a>6.73 then begin if a<6.77 then p:=659 end;
if a>6.77 then begin if a<6.81 then p:=662 end;
if a>6.81 then begin if a<6.85 then p:=666 end;
if a>6.85 then begin if a<6.89 then p:=669 end;
if a>6.89 then begin if a<6.93 then p:=673 end;
if a>6.93 then begin if a<6.97 then P:=676 end;
if a>6.97 then begin if a<7.01 then p:=680 end;
if a>7.01 then begin if a<7.05 then p:=683 end;
if a>7.05 then begin if a<7.09 then p:=687 end;
if a>7.09 then begin if a<7.13 then p:=690 end;
if a>7.13 then begin if a<7.17 then p:=694 end;
if a>7.17 then begin if a<7.21 then p:=697 end;
if a>7.21 then begin if a<7.25 then p:=700 end;
if a>7.25 then begin if a<7.29 then p:=704 end;
if a>7.29 then begin if a<7.33 then p:=707 end;
if a>7.33 then begin if a<7.37 then p:=711 end;
if a>7.37 then begin if a<7.41 then p:=714 end;
if a>7.41 then begin if a<7.45 then p:=717 end;
if a>7.45 then begin if a<7.49 then p:=721 end;
if a>7.49 then begin if a<7.53 then p:=724 end;
if a>7.53 then begin if a<7.57 then p:=727 end;
if a>7.57 then begin if a<7.61 then p:=731 end;
if a>7.61 then begin if a<7.65 then p:=734 end;
if a>7.65 then begin if a<7.69 then p:=737 end;
if a>7.69 then begin if a<7.73 then p:=741 end;
if a>7.73 then begin if a<7.77 then p:=744 end;
if a>7.77 then begin if a<7.81 then p:=747 end;
if a>7.81 then begin if a<7.85 then p:=750 end;
if a>7.85 then begin if a<7.89 then p:=754 end;
if a>7.89 then begin if a<7.93 then p:=757 end;
if a>7.93 then begin if a<7.97 then P:=760 end;
if a>7.97 then begin if a<8.01 then p:=763 end;
if a>8.01 then begin if a<8.05 then p:=767 end;

if a>8.05 then begin p:=770 end;
end;


stringgrid1.Cells[8,i]:=inttostr(p);
end;  end;


ich hab das jetzt so versucht zu lösen, aber wenn ich jetzt zb 7,97 im stringgrid eintippe sucht er mir den wert 760 obwohl es 763 sein sollte

könntet ihr mir helfen bitte ich verzweifel gleich
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 24.02.08 16:40 
Hi!
Schon einmal etwas von der Schreibweiße "if (a > b) and (a < c) then..." gehört?
Zudem ">" <> ">=" ! Daher ist der Wert 760 bei 7,97 auch richtig.

Rein theoretisch sollte auch dies funktionieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function P(v: Real): integer;
const
  a: array[1..44] of Integer =
  (1,9,16,24,32,39,46,54,61,68,75,82,89,95,102,109,115,122,128,
   134,141,147,153,159,165,171,177,183,195,201,206,212,218,223,229,
   234,240,245,251,256,261,266,272,277);
var
  i: byte;
begin
  i :=  Trunc( (v - 1.33) / 0.04 ) + 1 ;
  result := a[i];
end;


Grüße
sm4rty Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 24.02.08 16:44 
ja von der schreibeweise hab ich schonmal gehört, wenn ich >= mache kommt aber das selbe der ignoriert das = irgendwie