PDA

View Full Version : سوال: من درست میگم یا استاد؟



persian_sky
جمعه 06 اسفند 1389, 23:04 عصر
در درس ساختمان داده ها استاد یک کد از c++ نوشت و گفت این حلقه n+1 بار اجرا میشه:

for (int i = 1 ; i <= n ; i ++ ) //dddddddddddddddddddddddddddddddddddddd

من با نگاه به این کد حدس زدم این حلقه n بار اجرا میشه نه n+1 بار .........

وقتی به خونه اومدم بعد از این حلقه یک cout گذاشتم و تعداد خروجی ها n بار بود.

حالا به نظر شما من درست میگم یا استاد؟

لطف می کنید ...

xman_1365_x
جمعه 06 اسفند 1389, 23:36 عصر
حرف استادتون درسته،استادتون دستور for رو گفته كه دليلشم اينه آخرين بار مقايسه ميشه i<=n كه n+1=i چون شرط نقض ميشه از حلقه خارج ميشه ولي دستورات داخل حلقه n-1 بار اجرا ميشه كه ميشه همون n
پس استاد تعداد تكرار حلقه رو گفتن و شما تعداد تكرار دستورات داخل حلقه

مسعود اقدسی فام
شنبه 07 اسفند 1389, 16:28 عصر
در درس ساختمان داده ها استاد یک کد از c++ نوشت و گفت این حلقه n+1 بار اجرا میشه:

for (int i = 1 ; i <= n ; i ++ ) //dddddddddddddddddddddddddddddddddddddd

من با نگاه به این کد حدس زدم این حلقه n بار اجرا میشه نه n+1 بار .........

وقتی به خونه اومدم بعد از این حلقه یک cout گذاشتم و تعداد خروجی ها n بار بود.

حالا به نظر شما من درست میگم یا استاد؟

لطف می کنید ...

دستور int i = 1 به تعداد یکبار، i <= n به تعداد n + 1 بار، ++i به تعداد n بار، و دستورات داخل بلوک حلقه هم به تعداد n بار اجرا می‌شن.

mohammadian7
شنبه 07 اسفند 1389, 16:34 عصر
همانطور که دوستان گفتند شرط حلقه همواره یک بار بیشتر از بدنه حلقه اجرا میشود.
برای اثبات میتوانید شرطی را در نظر بگیرید که همواره غلط است.
شرط حتما یکبار اجرا میشود. ولی بدنه حلقه به دلیل غلط بودن شرط هرگز اجرا نمیشود.

hercool
یک شنبه 08 اسفند 1389, 18:08 عصر
اگر بجای شرط حلقه i<n بود میشد مرتبه اش n درسته؟
در کل حلقه هم اینجوری هست که
n+1-1+1 که میشه n+1 درسته؟

xman_1365_x
دوشنبه 09 اسفند 1389, 00:38 صبح
اگر بجای شرط حلقه i<n بود میشد مرتبه اش n درسته؟
بله درسته

در کل حلقه هم اینجوری هست که
n+1-1+1 که میشه n+1 درسته؟
منظورتون رو نفهميدم اما بستگي به نوع انديس هاي حلقه داره