بخشی از پاورپوینت
اسلاید 1 :
آموزش پایه و اساس برنامه نویسی به زبان C
فصل چهارم : ساختارهای تکرار
اسلاید 3 :
مقدمه
تمرین 8 و 9 فصل قبل
بستن برنامه و اجرای متعدد آن
راهکاری برای تکرار چند بار یک عمل نداریم؟
دریافت 100 عدد و محاسبه مجموع، میانگین و بزرگترین آنها
می توان 100 تا ظرف ( متغیر) تعریف کرد و مسئله را حل نمود. آیا امکان پذیر است؟
در صورتیکه 1000 عدد شود؟ چی؟ 1000000 عدد را چکار خواهید کرد؟
اسلاید 4 :
الگوریتم تکرار
مسئلههای دارای تعداد تکرار
تعداد تکرار از قبل مشخص
تعداد تکرار از قبل نامشخص (بسته به شرایط تغییر می کند)
اسلاید 5 :
ساختار الگوریتم تکرار
شمارنده تعداد تکرار حلقه (اندیس/index شمارنده)
مقدار اولیه برای شمارنده (مقدار اندیس در شروع اجرای حلقه، معمولاً مساوی 1 است)
مقدار نهایی شمارنده حلقه (شرط خاتمه)
مقدار گام افزایش شمارنده حلقه (معمولاً هر بار یک واحد افزایش مییابد)
دستورات داخل حلقه
اسلاید 6 :
ساختار حلقه با تکرار مشخص
دستور for:
for (گام شروع; شرط تکرار و ادامه اجرای دستورات داخل حلقه; گام افزایش و یا کاهش)
{
// مجموعه دستورات داخل حلقه
}
دستورات بعد از حلقه//
اسلاید 7 :
برنامه مثال 1: دریافت 5 عدد و محاسبه مجموع و میانگین آنها
اسلاید 8 :
تست اجرای برنامه
اسلاید 9 :
مثال 2: برنامهای بنویسید که تعدادی عدد صحیح را از ورودی دریافت کرده و سپس بزرگترین آنها را پیدا کرده و چاپ کند.
اسلاید 10 :
تمارین فصل چهارم
تمرین 1: برنامهای بنویسید که عددی صحیح را از کاربر دریافت کرده و سپس فاکتوریل آنرا چاپ کند.
تمرین 2: برنامهای بنویسید که عددی صحیح را از کاربر دریافت کرده و سپس مجموع اعداد بین 1 تا عدد دریافتی از کاربر را محاسبه کرده و چاپ کند.
تمرین 3: برنامهای بنویسید که عددی صحیح را از کاربر دریافت کرده و سپس از میان اعداد بین 1 تا عدد دریافتی از کاربر، مجموع اعداد بخش پذیر بر 3 و 5 را محاسبه کرده و چاپ کند.
تمرین 4: برنامهای بنویسید که تمامی اعداد سه رقمی را چاپ کند.
تمرین 5: برنامهای بنویسید که عددی را دریافت کرده و سپس nn * n! (فاکتوریل) را چاپ کند.
اسلاید 11 :
حلقه های تودرتو
تمرین 4: برنامهای بنویسید که تمامی اعداد سه رقمی را چاپ کند.
اسلاید 12 :
سایر دستورات تکرار (با تعداد تکرار نامشحص)
دستور while
دستور do while
اسلاید 13 :
ساختار دستور while
while (شرط یا شروط)
}
// دستورات
}
while ( a {….}
while (x != 0)
{….}
تا زمانیکه (شرط و یا شروط برقرار باشد)
آنگاه
{دستورات را انجام بده}
اسلاید 14 :
برنامه ای بنویسید که تعدادی عدد را از کاربر دریافت کند و بزرگترین آنها را پیدا کرده و چاپ کند.
کاربر در ابتدا تعداد اعداد ورودی را نمی داند.
در این حالت شرط تکرار دستورات حلقه چی باشد؟
مثلاً تا وقتی کاربر عددی غیر صفر وارد کند.
while ( x!= 0) { … }
مثلاً می تواند تا وقتی ادامه یابد که کاربر عدد مثبت وارد کند
while( x > 0) { … }
اسلاید 15 :
ادامه حل مسئله
مقدار اولیه ظرف max برابر با عددی
بسیار کوچک در نظر می گیریم تا هر چی
کاربر وارد می کند بزرگتر از آن باشد
و جایگزین شود
تا موقعی که کاربر عددی مثبت وارد کند
حلقه ادامه می یابد و عدد بعدی را از کاربر
دریافت می کند.
اسلاید 16 :
اجرای برنامه
تعداد دفعات تکرار حلقه بستگی به ورودیهای کاربر دارد
اجرای اول 7 بار
اجرای دوم 3 بار
اسلاید 17 :
مثال 5: برنامهای بنویسید که عددی را از کاربر دریافت کرده و سپس تعداد ارقام آنرا شمرده و در خروجی چاپ کند.
راه حل: برای شمارش ارقام یک عدد بر 10 تقسیم کرده و خارج قسمت را نگه می داریم و سپس خارج قسمت را بر 10 تقسیم می کنیم تا موقعی که خارج قسمت صفر شود.
شرط تکرار: تا موقعی که خارج قسمت بزرگتر از صفر باشد.
اسلاید 18 :
حل مسئله
اسلاید 19 :
ساختار دستور Do-while
do
}
// دستورات
} while (شرط یا شروط);
do {
….
}while ( a دستور do-while همانند دستور while
است با این تفاوت ابتدا دستورات داخل حلقه اجرا می شود و سپس شرط تکرار بررسی می شود.
نکته: در آخر دستور علامت سمی کولون(;) اجباری است.
اسلاید 20 :
تمرین ها
تمرین 6: برنامهای بنویسید که عدد n را از ورودی دریافت کرده و سپس n جمله اول سری فیبوناچی را چاپ کند. راهنمایی: fn = fn-1 + fn-2 (جمله بعدی مساوی مجموع دو جمله قبلی است) و مقادیر f1=f2=1 است.
تمرین 7: برنامهای بنویسید که عددی را دریافت کرده و سپس اول بودن آن عدد را بررسی کند (عددی اول است که بجز خودش و یک بر هیچ عدد دیگری بخشپذیر نیست).
تمرین 8: برنامهای بنویسید که عددی را از کاربر دریافت کرده و سپس کامل بودن آن عدد را بررسی کند(عددی کامل است که مجموع مقسوم علیههای آن بجز خودش با خودش برابر است). به عنوان مثال مقسوم علیههای عددی 6 اعداد 1،2،3،6 است که مجموع مقسوم علیه آن بجز خودش 1+2+3 مساوی 6 میشود پس 6 عددی کامل است.