View Full Version : سوال: عدم error یک برنامه
yashar666
چهارشنبه 22 آذر 1391, 17:20 عصر
با سلام
چرا این برنامه در محیط pascal استاندارد هم error نمیده ! مگه succ d . بعد اینکه 3 بار حلقه اجرا میشه برای بار 4 رم خارج از محدوده نوع شمارشی من نمیشه ؟
type day=(adine,shanbe,yekshanbe);
var
d:day;
begin
d:=adine;
while ord(d)<7 do
begin
write(ord(d));
d:=succ(d);
end;
end.
خروجی 0123456 میشه !!!!!!
BORHAN TEC
پنج شنبه 23 آذر 1391, 01:36 صبح
سلام
روشی که شما به کار برده اید از لحاظ منطقی خیلی درست نیست و کامپایلر هم یه جورایی حق داره که Error نده!
مثلاً توجه داشته باشید که کد بالا را می توانید به شکل زیر هم بنویسید(این کد از باب مثال عرض شده):
type
TDay = (adine, shanbe=8, yekshanbe=12);
حالا با کد بالا و ادامه دادن کد توقع دارید که دلفی چکار کند؟؟؟:متعجب:
پس در نتیجه کد شما اصلاً کد درستی نیست!:چشمک:
یکی از کارهایی که می توانید انجام دهید به شکل زیر است:
type
Tday = (adine, shanbe, yekshanbe);
var
d: Tday;
begin
d := adine;
while d in [adine..yekshanbe] do
begin
write(ord(d));
d := succ(d);
end;
readln;
end.
و اما روش بهتر::لبخند:
type
TDay = (adine, shanbe, yekshanbe);
TDays = set of TDay;
var
d: TDay;
days : TDays;
begin
d := adine;
days := [adine..yekshanbe];
while d in days do
begin
write(ord(d));
d := succ(d);
end;
readln;
end.
فعلاً بیشتر از این حضور ذهن ندارم. اگه بازم روش بهتری به ذهنم برسه اضافه می کنم.
موفق باشید...
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.