تمرین سری سوم تاریخ تحویل تمرین 30آبان 1393 درس مبانی برنامه سازی CE153 • • • • • • • توضیحات اولیه آخرین مهلت تمرین ،ساعت 23:59دقیقه 30آبان 1393است. بعد از اتمام زمان ارسال ،تا 3روز میتوانید تمرین های خود را با تاخیر ارسال نمایید. به ازای هر روز تاخیر %20از نمره شما کسر می شود. به ازای همه سوال های این تمرین هدف یاد گیری و درک مفهوم توابع و چگونگی تعریف آنهاست؛ لذا نیازی به بررسی سرریز در سواالت نمی باشد و محدوده ورودی ها به گونه ایست که سرریز رخ ندهد. در کلیه سواالت استفاده از آرایه ها ،اشارهگر ها و توابع به صورت بازگشتی غیر مجاز است. پاسخ هر چهار سوال را در جاج آپلود کنید ،با این وجود تنها نمرهی سوال اول و دوم را از جاج خواهید گرفت و نمره دو سوال دیگر ،در تحویل حضوری داده خواهد شد. سواالت خود را در پیاتزا مطرح کنید. سوال اول .1ابتدا تابعی بنویسید به صورت زیر که باقیمانده بر عدد 11را بدون استفاده از عمل ٪11حساب کند. ;)int mode11 (int n ورودی این تابع عددی است که میخواهیم باقی مانده آن بر 11را چک کنیم. خروجی تابع هم باقیمانده عدد nبر 11است. می دانیم برای به دست آوردن باقی مانده یک عدد بر 11میتوان رقم های آن را از سمت راست با عالمت های به ترتیب +و -جدا کرد و سپس این ارقام را باهام جمع زد .این کار را به قدری تکرار می کنیم تا عددی بین 0تا 10به دست آید که در اصل همان باقی مانده بر 11است. برای نمونه باقی مانده 2۷20۸۷912۴۶بر 11برابر است با : +۶ -۴ +1-2 +9- ۷+ ۸ -0+ 2 -۷ + 2=10 سپس با استفاده از این تابع برنامه ای بنویسید که عددی از کاربر بگیرد و باقی مانده آن بر 11را چاپ کند. ورودی نمونه خروجی نمونه 671257 4 123456 3 سوال دوم می خواهیم برنامه ای بنویسیم که عددی دریافت کند و آن را تجزیه کند .برای این کار توابع زیر را پیاده سازی می کنیم: ;)int prime (int n این تابع چک می کند که عدد nاول هست یا نه که در صورت اول بودن عدد 1و در غیر اینصورت عدد 0را برمی گرداند. ;)int exponent (int n , int p خروجی این تابع بزرگترین توان pموجود در nاست. حال با استفاده از این دو تابع عددی از کاربر بگیرید و آنرا به فرمت زیر به عوامل اولش تجزیه کنید( :ترتیب چاپ عوامل اول به صورت نزولی باشد). ورودی نمونه خروجی نمونه 30 5^1*3^1*2^1 24 3^1*2^3 سوال سوم خاندان آقای مربعی همه به صورت شکل زیر هستند در سایز های متفاوت ولی همه در سایز 4k+3با کمک ۴تابع برای چشم راست ،چشم چپ ،دهان و صورت برنامه ای بنویسید که با گرفتن سایز رد مورد نظر قیافه او را بکشد. هر کدام از تابع ها 3پارامتر x,y,lرا میگیرد ( x,yمختصات گوشه باال و سمت چپ اعضای صورت هستند). در زیر 2فرد کوچک خاندان کشیده شده اند. نسبت ها ی افقی چشم ها: 4k+3 --> 2, 2k-1, 1, 2k-1, 2 نسبت های عمودی: * * * * * * * * * * * 4k+3 --> 1, 2k-1, 2, 2k-1, 2 * * * * * ^ * * * * * * * ^ * * * * * * * * * * * * * * * * * * * * * * * * * * * “ * * * * * * * * * * * * * * * * * * * * * ^ * ^ * “ * * * * * * * * * سوال چهارم میخواهیم حاصل انتگرال تابع x^2را در محدودهی صفر و یک تخمین بزنیم. با تولید تعدادی نقطه تصادفی در محدوده 0<x<1و 0<y<1نسبت تعداد نقاط زیر نمودار به تعداد کل نقاط را حساب کنید. این نسبت حاصل انتگرال مورد نظر است. بدین ترتیب تابع Integrationرا به گونه ای بنویسید که تعیین کند که تعداد نقاط تصادفی باید حد اقل چند تا باشد تا به خطای حداکثر یک صدم برسیم. ;)(int Integration سپس یک عدد از ورودی خوانده و به تعداد آن تابع Integrationرا صدا بزنید و میانگین خروجی ها را به عنوان نتیجه نهایی چاپ کنید. راهنمایی در هدر فایل )gotoxy(x,yبرای تغییر دادن نشان گر ماوس میتوانید از تابع از این تابع پشتیبانی dev C++استفاده کنید .اما با توجه به اینکه conio.h نمی کند می توانید این تابع را به صورت زیر پیاده سازی کنید. >#include<windows.h )void gotoxy(int x, int y { ;Static HANDLE h= NULL )if(!h ;)h = GeStdHandle(STD_OUTPUT_HANDLE ;} COORD c = { x, y ;)SetConsoleCursorPosition(h,c } • • • • • • • • •
© Copyright 2025 Paperzz