Ĺadny brzuch
Dlaczego jak mam zmienną typu ShortInt jak wsadzę do CASE () OF i jako argumenty podaję nazwy stałych typu ShortInt to wywala błąd? Chodzi mi oto, że poprzes coś takiego można zrobić kod czytelniejszym.
var ZmiennaTypuShortInt : ShortInt = 0; ... const Argument1 : ShortInt = -1; Argument2 : ShortInt = 0; ... case (ZmiennaTypuShortInt) of Argument1 : //Błąd: Constant expression expected begin PROCEDURA; end; Argument2 : //Błąd: Constant expression expected begin PROCEDURA; end; 1 : // tak niema błędu begin PROCEDURA; end; end;
Nazwa błędu jest w kodzie powyżej. Błąd jest w tych linijkach, gdzie go napisałem.
Chodzi dokładnie o to, co jest napisane w wiadomości o błędzie: nie możesz w tym miejscu podać zmiennej (ogólniej: nie możesz podać wyrażenia), musi to być wyrażenie stałe (zwykle: jakaś stała). Taka już jest składnia Pascala...
Inaczej (na czas chyba zmieniłem treśc) :D
Możesz dać tak:
const a = 1; b = 2; var x: integer; begin case x of a: begin {bla bla} end; b: begin {bla bla} end; end;
Użytkownik p1101 edytował ten post 27 październik 2005, 19:01
To na jakiej zasadzie wie, że ma być argument1 a nie argument2 skoro nie porównuje?
//A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.
Użytkownik mariuszlorenc edytował ten post 27 październik 2005, 19:01
poza tym, że ja dodałem typy przy stałych.
//A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.
i na 99% tu jest blad ;)
BTW - case to nie petla :)
nie mam pojęcia może sie zakochałeś w dziewczynie starszej o kilka lat a ona w tobie i teraz nie wie jak to powiedzieć swojemu narzeczonemu, że to już koniec... że kocham tylko mariuszlorenc`a
a tak naprawde to nie wiem o czym myslałeś, wogóle to było pytanie ?
nie ważne i tak masz :rozga:
fajna fotka
Nie wnikam, ale przecież jest:
const  Argument1 : ShortInt = -1; Argument2 : ShortInt = 0;:P
A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.
I właśnie to dodanie typu powoduje, że taką "stałą" można zmienić - a tego case nie przełknie.
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Jasne, że istnieje. Zapraszam do helpa B)
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Do Migajek: Spotakłem się już z tym, że instrukcja Case jest nazywana także pętlą. ShortInt: -2^15 .. 2^15-1
ShortInt: -2^15 .. 2^15-1
Nie SmallInt tylko ShortInt B)
Czyli -2^7 .. 2^7-1
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Do Migajek: Spotakłem się już z tym, że instrukcja Case jest nazywana także pętlą.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
var ZmiennaTypuShortInt : ShortInt = 0; ... const Argument1 : ShortInt = -1; Argument2 : ShortInt = 0; ... case (ZmiennaTypuShortInt) of Argument1 : //Błąd: Constant expression expected begin PROCEDURA; end; Argument2 : //Błąd: Constant expression expected begin PROCEDURA; end; 1 : // tak niema błędu begin PROCEDURA; end; end;
Nazwa błędu jest w kodzie powyżej. Błąd jest w tych linijkach, gdzie go napisałem.
Chodzi dokładnie o to, co jest napisane w wiadomości o błędzie: nie możesz w tym miejscu podać zmiennej (ogólniej: nie możesz podać wyrażenia), musi to być wyrażenie stałe (zwykle: jakaś stała). Taka już jest składnia Pascala...

Inaczej (na czas chyba zmieniłem treśc) :D
Możesz dać tak:
const a = 1; b = 2; var x: integer; begin case x of a: begin {bla bla} end; b: begin {bla bla} end; end;
Użytkownik p1101 edytował ten post 27 październik 2005, 19:01
To na jakiej zasadzie wie, że ma być argument1 a nie argument2 skoro nie porównuje?
//A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.
Użytkownik mariuszlorenc edytował ten post 27 październik 2005, 19:01
poza tym, że ja dodałem typy przy stałych.

//A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.

i na 99% tu jest blad ;)
BTW - case to nie petla :)

nie mam pojęcia może sie zakochałeś w dziewczynie starszej o kilka lat a ona w tobie i teraz nie wie jak to powiedzieć swojemu narzeczonemu, że to już koniec... że kocham tylko mariuszlorenc`a
a tak naprawde to nie wiem o czym myslałeś, wogóle to było pytanie ?
nie ważne i tak masz :rozga:
fajna fotka
Nie wnikam, ale przecież jest:
const  Argument1 : ShortInt = -1; Argument2 : ShortInt = 0;:P

A ja tak niezrobiłem? Bo niewidze różnicy pomiędzy moim kodem, a twoim poza tym, że ja dodałem typy przy stałych.
I właśnie to dodanie typu powoduje, że taką "stałą" można zmienić - a tego case nie przełknie.
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Jasne, że istnieje. Zapraszam do helpa B)
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Do Migajek: Spotakłem się już z tym, że instrukcja Case jest nazywana także pętlą. ShortInt: -2^15 .. 2^15-1
ShortInt: -2^15 .. 2^15-1
Nie SmallInt tylko ShortInt B)
Czyli -2^7 .. 2^7-1
Nie wiem czy wogule coś takiego istnieje jak; ShortInt o Shortstring słyszałem ale ShortInt ????
Do Migajek: Spotakłem się już z tym, że instrukcja Case jest nazywana także pętlą.
