بسمه تعالی ﺁﺯﻣﻮﻥ ﭘﺎﻳﺎﻥﺗﺮﻡ ﻣﺒﺎﻧﯽ ﺑﺮﻧﺎﻣﻪﺳﺎﺯﯼ گروه ۷ دانشگاه صنعتی شریف دانشکده مهندسی کامپیوتر ۲بهمن ۸۹ مدت ۱۵۰ :دقیقه سؤال :۱ توابع print1و print2را در نظر بگیرید .توضیح دهید که این دو تابع چه کاری انجام میدهند .شباهت)ها( و تفاوت)های( آنها را بیان کنید و آنها را برای ورودیهای یکسان مقایسه نمائید ۱۵) .نمره( {)void print1(char * s[],int c ;"cout <<"print1\n )for(int i=0;i<c;i++ ;cout << *(s+i) << endl } {)void print2(char * s[],int c ;"cout <<"print2\n )for(int i=c;i>0;i-- ;cout << s[c-i] << endl } سؤال :۲ تابع reverseبا prototypeداده شده در زیر را بگونهای بنویسید که رشتههای ورودی را معکوس کند. ) ۱۵نمره( )راهنمایی :برای این کار ،ابتدا طول آرایه را با هر روشی که ممکن است ،بدست آورده و سپس درایههای ال اگر آرایه دارای ۹عضو باشد ،درایهی اول با درایهی نهم ،درایهی دوم با موجود در آن را معکوس کنید .مث ً درایهی هشتم و ...جایگزین خواهند شد(. {)void reverse(char * s "//reverse a string in place: "one" to "end } آزمون پایانترم صفحهی ۱از ۴ گروه ۷ سؤال :۳ خروجی تابع زیر را بدست آورده و علت آن را توضیح دهید ۲۰) .نمره( >#include<iostream ;using namespace std {)void f(int *a,int &b ;a=&b ; return } {)void f2(int *a,int *b ;a=b } {)(int main ;int b=14 ;int c=13 ;int *a ;a=&c ;)f(a,b ;cout<<2*(*a)<<endl ;)f2(a,&b ;cout<<2*(*a)<<endl } سؤال :۴ برنامهای بنویسید که یک خط از یک متن را از ورودی گرفته ،آنرا با استفاده از تابع tokenize ،strtok کرده و tokenها را به صورت معکوس در خروجی چاپ کند .فرض کنید که تعداد tokenهای موجود در یک سطر حداکثر برابر ۲۰عدد است ۲۵) .نمره( راهنمایی :به عنوان مثال میتوانید ورودی و خروجی زیر را در نظر بگیرید: Input: This is my final exam for Introduction to Programming course. Output: course. Programming to Introduction for exam final my is This آزمون پایانترم صفحهی ۲از ۴ گروه ۷ سؤال :۵ به یکی از دو سؤال زیر پاسخ دهید ۲۵) .نمره( .۱.۵فرض کنید یک bagمجموعهای از اعداد صحیح است که اعضاء موجود در آن بصورت تصادفی حذف میشوند .بصورت پیش فرض bag ،در ابتدا خالی است و سپس یک عضو میتواند به آن اضافه شود .پس یک bagفقط عملیات زیر را پشتیبانی میکند: void add(int item); // add an item into the bag int remove(); // remove a random item from the bag حال بر اساس توضیحات باال ،کالسی تعریف کنید که شامل تعدادی تابع و داده برای پیادهسازی bagباشد. شما باید ساختار دادهی مناسب برای نگهداری اعضای bagرا در قسمت دادههای کالس تعریف کرده و از پنهانسازی اطالعات برای مخفی کردن دادهها استفاده نمائید )فرض کنید تابعی به صورت )rand(n وجود دارد که یک عدد تصادفی در بازهی 0تا n-1برمیگرداند(. .۲.۵در زیر یک پیادهسازی بصورت ساختیافته از یک ساختمان دادهی پیچیده به نام complexارائه شده است. { complex ;mod,angle { )real(complex& c ;)c.mod*cos(c.angle { )imag(complex& c ;)c.mod*sin(c.angle struct double ;} double return } double return } کد ساختیافتهی فوق را به تعریف کالس در C++تبدیل کنید .توجه داشته باشید که نام کالس complexبوده و تعریف آن باید به نحوی باشد که ضمن دربرگرفتن تمامی عملیات فوق ،قادر باشد توسط تابع mainزیر قابل استفاده باشد .همچنین باید از پنهان سازی اطالعات در تعریف دادههای عضو استفاده شود. آزمون پایانترم صفحهی ۳از ۴ گروه ۷ void main() { const double PI = 3.14159256; complex a(5.0,PI/6); // angle in radians cout << a.real() << endl; // 4.33 cout << a.imag() << endl; // 2.5 } .موفق باشید انتظاری ۷ گروه ۴ از۴ صفحهی آزمون پایانترم
© Copyright 2025 Paperzz