PDA

View Full Version : مبتدی: محاسبه مقدار اولیه و نهایی شرط حلقه For



elham.sha
یک شنبه 30 شهریور 1393, 21:47 عصر
سلام

یک سوال بسیار بسیار ابتدایی.

من با زبان پاسکال و دلفی آشنا نیستم. شنیدم که گفته میشه در این دو زبان مقدار اولیه و نهایی حلقه یک بار در ابتدا محاسبه میشه و در صورتی که در برنامه تغییر کنه روی تعداد دفعات اجرای برنامه تاثیری نداره. من این موضوع برام قابل درک نیست.

الان تو قطعه کد زیر

for (i=5,j=i*j+6;i<j*3+4;i++)

مقدار i و j در ابتدای ورود به حلقه یکبار محاسبه میشه و اگر در بدنه برنامه تغییری در مقدار این دو متغییر ایجاد بشه روی شرط حلقه تاثیری نداره؟ دقیقا نمیدونم چه اتفاقی داره می افته ؟!:متفکر:

یوسف زالی
یک شنبه 30 شهریور 1393, 23:48 عصر
سلام.
پاسکال رو یادم نیست، ولی دلفی اجازه چنین کاری به شما نمی ده.

online_com
دوشنبه 31 شهریور 1393, 09:50 صبح
سلام
اين موردي كه شما گفتيد فقط در مورد حلقه هاي پياده سازي شده با for هستش و دلفي اجازه ايجاد حلقه با for با شرطي كه گذاشتيد رو نمي ده و حتي اجازه تغيير در شمارنده حلقه و معرفي بيش از يك متغير رو نمي ده و مقدار نهايي حلقتون بايد يك مقدار ثابت باشه و ولي مي تونيد از روش هاي ديگري براي پياده سازي حلقتون استفاده كنيد كه در آن شرط انتهايي حلقتون مي تونه يك عبارت محاسباتي و شرطي باشه و يه همچين حلقه اي رو اگر بخواهيد در دلفي اجرا كنيد بايد با while يا repeat پياده سازي كنيد
يه چيزي مثل دستور زير


j:=0;
i:=5;
j:=i*j+6;
repeat
{your code}
inc(i);
j:=i*j+6;
until i<j*3+4;