تالار گفتمان مانشت
مشکل در ساختمان داده - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲
RE: مشکل در ساختمان داده - Aurora - 17 اسفند ۱۳۹۰ ۰۷:۴۴ ب.ظ

شرط رسیدن به پایان حلقه اول i<=2 و برای حلقه دوم همj<=2 است. به ازای هربار اجرای حلقه اول حلقه دوم باید اجرا شود. یعنی وقتی در حلقه اول i=1 است شرط i<=2 چک میشه چون شرط برقرار است وارد حلقه دوم شده و حلقه دوم هم اجرا شده (شرط حلقه دوم هم چک میشه j<=2 و در اینجا هم شرط برقرار است) و سپس دستور x=x+1 اجرا میشه. دوباره بر میگرده وارد حلقه دوم و شرط چک میشه j<=2 حالا که j=2 است باز هم شرط برقرار است و باز هم دستورx=x+1 اجرا میشه. دوباره وارد حلقه دو میشه اینبار هم شرط چک میشه و چون j=3 هست شرط برقرار نیست و دستور x=x+1 اجرا نشده و حالا برمی گردیم به حلقه اول. اینبار شرط حلقه اول را برای i=2 چک می کنیم شرط برقراره و وارد حلقه دوم میشیم. در حلقه دوم j=1 رو چک میکنه چون شرط برقرار است پس دستور x=x+1 اجرا شده دوباره شرط حلقه دوم برای j=2چک میشه چون شرط برقرار است پس x=x+1 اجرا میشه . حالا شرط j=3 چک میشه. دیگه شرط برقرار نیست. از حلقه دوم خارج شده وارد حلقه اول میشه.
i=3 رو چک میکنه. اینجا هم شرط برقرار نیست پس دیگه اینجا از حلقه خارج میشه . پس حلقه اول ۳بار چک شد. حلقه دوم ۶بار (۲*۳) چک شد. دستور x=x+1 هم ۴بار (۲*۲). پس کلا ۶+۳+۴=۱۳
حالا درست شد؟

مشکل در ساختمان داده - jafar.sh - 17 اسفند ۱۳۹۰ ۰۹:۳۱ ب.ظ

متشکر از شما
من الان کاملا منظور شما رافهمیدم ولی موقع ای که میخوام توی اون جدول(توی عکس هست) بندازمش یا روی کاغذ پیادش کنم قاطی می کنم!! نمیدونم چرا؟؟

سپاس

مشکل در ساختمان داده - jafar.sh - 17 اسفند ۱۳۹۰ ۱۰:۵۵ ب.ظ

باشه: باز هم سپاس از راهنمایی تان
اگه مشکلی بود دوباره بهتون میگم

موفق باشید

RE: مشکل در ساختمان داده - jafar.sh - 20 اسفند ۱۳۹۰ ۰۵:۳۲ ب.ظ

با سلام
میخواستم بدونم این حلقه درست هست یانه!!
لطفا راهنمایی کنید!؟؟
i = n

while (i>1)
{
x+=1
i-=1
}


سپاس


مشکل در ساختمان داده - fatima1537 - 20 اسفند ۱۳۹۰ ۰۶:۰۳ ب.ظ

درسته.چون در اینجا شرط حلقه بالاخره بعد از مراحل معدودی خاتمه پیدا میکنه و از حلقه خارج میشیم
البته حتما نباید شرط حلقه اینطوری باشه که از حلقه خارج بشیم بلکه باید بالاخره بعد از مراحل محدودی تموم بشه(ولی معمولا شرط while رو اینطوری مینویسن که شمارنده حلقه در جلوی while هست و بعد درون حلقه while از مقدارش کم(یا به اون اضافه )میشه تا بالاخره به اون عدد مطلوب در شرط برسیم.

این حلقه به تعداد n-1 بار اجرا میشه.چون وقتی برای آخرین بار میخواد حلقه رو اجرا کنه مقدار i رو با شرط چک میکنه و میبینه ۱<1 نیست پس دیگه اون یکمرتبه آخر رو اجرا نمیکنه(برای اینکه N بار اجرا بشه باید شرط به صورت i>=1 باشه تا شرط درست دربیاد و مرحله یکم(آخر) رو اجرا کنه)