You are on page 1of 3

‫برای این ار وجود دارد؟‬ ‫)‪ (private‬تع ف کن م‪ .

‬چه دﻻ‬ ‫– در تع ف ک ﻼس‪ ،‬ف لدهای آن را ه طور خصو‬


‫اوﻻ توان م هن ام مقدارد ه این ف لدها اعت ارسن های ﻻزم را انجام ده م تا از ناسازاری دادههای داخل اش اء جلوگ ی کن م‪.‬‬
‫ثان ا ا ر تغی ی در نحوه پ ادهسازی آن ا انجام ده م ن ازی ه تغی تمام کدهای استفاده کننده نخواهد بود‪.‬‬

‫ﭘﺮﺳﺶ ‪ – ۲‬ک رشته را مطلوب نام م ا ر تمام ارا های غ عددی آن را حذف کن م‪ ،‬خواندن رشته ا مانده از چپ و راست‬
‫ً‬
‫ن جه کسا داشته اشد‪ .‬مث رشته ”‪ “a0gd9gg 8s890s‬این خاص ت را دارد چون ا حذف ارا های غ عددی ه‬
‫”‪ “098890‬ت د ل شود که خواندن آن از چپ و راست ک ن جه دارد‪ .‬ا ر رشتهای هیچ ارا عددی نداشته اشد هم مطلوب‬
‫ازگش ه نام ‪ matloob‬بن س د که ک رشته ه عنوان ارام گ د و تعی کند مطلوب است ا نه‪ .‬توان د برای‬ ‫است‪ .‬تا‬
‫خوانا ب ش از توابع م استفاده کن د اما در نوش هیچ ک از توابع از حلقه استفاده نکن د‪.‬‬

‫{ )‪bool isdigit(char c‬‬


‫;'‪return c >= '0' && c <= '9‬‬
‫}‬

‫{ )‪bool matloob(string s‬‬


‫)‪if (s.length() == 0‬‬
‫;‪return true‬‬
‫))]‪if (!isdigit(s[0‬‬
‫;))‪return matloob(s.substr(1‬‬
‫))]‪if (!isdigit(s[s.length()-1‬‬
‫;))‪return matloob(s.substr(0, s.length()-1‬‬
‫;))‪return s[0] == s[s.length()-1] && matloob(s.substr(1, s.length()-2‬‬
‫}‬
‫طب عتا جزئ ات پ ادهسازی تواند متفاوت اشد‪.‬‬

‫ازگش بن س د که ک بردار از اعداد صحیﺢ مث ت ه همراه ک عدد هدف ه عنوان ارام گ د و در صورت‬ ‫ﭘﺮﺳﺶ ‪ – ۳‬تا‬
‫‪.‬‬
‫وجود‪ ،‬ز رمجموعهای از اعداد بردار را بن سد که مجم ع آن ا مساوی عدد هدف شود در صورت ن از توان د ارام های اضافه ن‬
‫برای تابع تع ف کن د‪.‬‬

‫{ )‪bool subset_sum(vector<int>& set, int target, vector<int>& subset, int i = 0‬‬


‫{ )‪if (target == 0‬‬
‫)‪for (int i = 0; i < subset.size(); i++‬‬
‫;' ' << ]‪cout << subset[i‬‬
‫;‪cout << endl‬‬
‫;‪return true‬‬
‫}‬
‫))(‪if (i >= set.size‬‬
‫;‪return false‬‬

‫;)]‪subset.push_back(set[i‬‬
‫))‪if (subset_sum(set, target - set[i], subset, i+1‬‬
‫;‪return true‬‬
‫;)(‪subset.pop_back‬‬

‫;)‪return subset_sum(set, target, subset, i+1‬‬


‫}‬
‫طب عتا جزئ ات پ ادهسازی تواند متفاوت اشد‪.‬‬
‫ﭘﺮﺳﺶ ‪ – ۴‬فرض کن د قرار است ک نرمافزار فروش این ن‬

‫د بال و‬
‫موس تول د کن م‪ .‬در این نرمافزار آلبومهای موس و ا‬
‫تکآهنگها ه طور آنﻼین فروخته شوند‪ .‬در ج ان تول د این‬
‫نرمافزار ا د اطﻼعات آلبومهای موس را در برنامه مدلسازی‬
‫کن م‪ .‬ش ل مقا ل نمونهای از جلد ل ح ف دهی ک آلبوم موس را‬
‫پرشيد‬ ‫نما ش دهد‪ .‬چه ﻼس ا ﻼسها مرت ط ا آلبوم موس تع ف‬
‫کن د؟ ف لدهای این ﻼس)ها( را مشخص کن د )همراه ا تا پ‬
‫آن ا(‪ .‬ن ازی ه تع ف سازندهها ا متدها ن ست‪.‬‬
‫تهيه و پخش‪ :‬خالتور رکوردز – ‪١۴٠٠‬‬

‫راه حل پ شن ادی این است که ک ﻼس برای نگ داری هر ک از ترانهها و ک ﻼس برای نگ داری اطﻼعات ل آلبوم تع ف شود‪.‬‬
‫هر آلبوم ل س از ترانههای خود را نگه دارد‪:‬‬
‫ا ر برای خواننده و ا ترانه ا‬
‫{ ‪class Track‬‬
‫‪public:‬‬
‫ﻼس جدا تع ف شده بود‬
‫‪// ...‬‬ ‫هم درست است‬
‫‪private:‬‬
‫;‪string onvan‬‬
‫;‪string taraane_saraa‬‬
‫;‪int duration‬‬
‫;}‬

‫{ ‪class Album‬‬
‫‪public:‬‬
‫‪// ...‬‬
‫‪private:‬‬
‫;‪string onvan‬‬ ‫‪Track* also‬‬
‫;‪string artist‬‬ ‫‪works‬‬
‫;‪string producer‬‬
‫;‪int year‬‬
‫;‪vector<Track> tracks‬‬
‫}‬
‫ را شان دهد که برای ار ا نقاط در فضای دو عدی تع ف‬Point ‫ – قطعه برنامهی مقا ل نمونهای از استفاده از ﻼس‬۵ ‫ﭘﺮﺳﺶ‬
.(‫ )ن ازی ه نوش دنهی متدها ن ست‬.‫ را بن س د‬Point ‫( ﻼس‬public) ‫ خش عمو‬.‫شده است‬

Point p(10, 2.3);


Point q;
p.translate(12.4, -3.1);
Point r = p.rotate(q, 30);
cout << p.x() << p.y() << endl;

class Point {
public:
Point(double x, double y);
Point();
void translate(double dx, double dy);
Point rotate(Point p, double angle);
double x(); double y();
private:
// ...
};

.‫ا توضیﺢ ده د‬ ‫آن ا را مشخص کن د و مخت‬. ‫ خطای زمان ام ا ل است‬۴ ‫ – برنامهی ز ر حاوی‬۶ ‫ﭘﺮﺳﺶ‬
#include <string>
#include <iostream>
using namespace std;

class book {
public:
void book() { pages = 0; } ‫سازنده ن تواند تا پ ازگشت داشته اشد‬
void set_name(string& n) { title = n; }
string get_title() { return title; }
bool equals(const book& b) const { return title == b.title; }
int pages;
private:
string title;
};

int main() {
book b1(30, “Hungry Horrace”); ‫چن سازندهای ندار م‬
book b2;
b2.pages = 260;
b2.title = “Three Weeks in the Bucket”; ‫ه ف لد خصو مجاز ن ست‬ ‫دس‬
if (b1.equals(m2))
cout << “equal\n”;
if (b1 != b2) ‫عمل ر = ه طور پ شفرض برای ﻼسها تع ف شده است‬
cout << “not equal\n”;
}

You might also like