Case + or? 
Author Message
 Case + or?

Hi, Ich habe ein problem mit folgendem code (isoliertes problem...):
Das Array Knoten[irgendeinezahl].besetzt wird nicht ge?ndert, wenn count
durchl?uft... (Beispiel als Kommentar im Code...)
Was habe ich falsch gemacht?

program Warum_funktioniert_das_nicht?
type          KD = record
                   Besetzt      :WORD;
                   Gezeichnet   :Boolean;
                   Level        :Integer;
                   End;
VAR Knoten : array [0..61] of KD;
    count : integer;

procedure Start_L(SpielerNo : WORD);
begin
  for count := 20 to 26 do begin
    case count of
      26 or 21 : Knoten[count].besetzt := SpielerNo * 10 + 1;
      25 or 20 or 22 : Knoten[count].besetzt := SpielerNo * 10 + 2;
      24 or 23 : Knoten[count].besetzt := SpielerNo * 10 + 3;
    end;
  end;
end;

begin
Start_L(6);
{Wenn Count = 23 ist, m?te Knoten[24].besetzt = 6 * 10 + 3 = 63 sein...}
{Das MistDing bleibt aber Null... !!!!! :( (und alle anderen auch...)}
{Warum funktioniert das verdammt noch mal nicht????????? :( !!}
end.



Wed, 18 Jun 1902 08:00:00 GMT  
 Case + or?

Quote:
>Hi, Ich habe ein problem mit folgendem code (isoliertes problem...):
>Das Array Knoten[irgendeinezahl].besetzt wird nicht ge?ndert, wenn count
>durchl?uft... (Beispiel als Kommentar im Code...)
>Was habe ich falsch gemacht?

>program Warum_funktioniert_das_nicht?
>type          KD = record
>                   Besetzt      :WORD;
>                   Gezeichnet   :Boolean;
>                   Level        :Integer;
>                   End;
>VAR Knoten : array [0..61] of KD;
>    count : integer;

>procedure Start_L(SpielerNo : WORD);
>begin
>  for count := 20 to 26 do begin
>    case count of
>      26 or 21 : Knoten[count].besetzt := SpielerNo * 10 + 1;
>      25 or 20 or 22 : Knoten[count].besetzt := SpielerNo * 10 + 2;
>      24 or 23 : Knoten[count].besetzt := SpielerNo * 10 + 3;
>    end;
>  end;
>end;

Hi ????

We speak english here....
Aber:
Was Du da getippt hast kann nicht klappen. Das OR in
der case-Anweisung wird boolsch ausgewertet und nicht
als umgangssprachliches ODER.
Die 1.case bedingung trifft also zu, wenn count den
wert 26 OR 21 (also bitweise geodert)  enthalten wrde.

Richtig ist:

procedure Start_L(SpielerNo : WORD);
begin
  for count := 20 to 26 do begin
    case count of
      26,21 : Knoten[count].besetzt := SpielerNo * 10 + 1;
      25,20,22 : Knoten[count].besetzt := SpielerNo * 10 + 2;
      24,23 : Knoten[count].besetzt := SpielerNo * 10 + 3;
    end;
  end;
end;

JOE :-))



Wed, 18 Jun 1902 08:00:00 GMT  
 Case + or?
Quote:
> procedure Start_L(SpielerNo : WORD);
> begin
>   for count := 20 to 26 do begin
>     case count of
>       26 or 21 :  $1A OR $15 = $1F = 31
>       25 or 20 or 22 : $19 OR $14 OR $16 = $1F = 31
>       24 or 23 : $18 OR $17 = $1F = 31
>     end;
>   end;
> end;

A very interesting case construct, indeed!

      case count of
        26,21 : blabla
     25,20,22 : bloblo
        24,23 : blibli

Franz Glaser



Wed, 18 Jun 1902 08:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Mixed Case Surnames

2. D1: DBF & Non-Case Sensitive Indicies

3. Watcom Case Sensitivity

4. CASE and SET

5. Q: CASE tools for Delphi development?

6. lower case

7. CASE tools for Delphi

8. Case Statments Borland Pascal

9. Help - case-insensitive search?

10. Another case of unhelpful help?

11. Which CASE Tools ?

12. using an REAL as part of a CASE statement

 

 
Powered by phpBB® Forum Software