Assignment 7.pdf

‫تمرین سری هفتم‬
‫درس مثانی ترنامه سازی‬
CE153
1
fall 2011
Sharif University Of Technology
‫توضیحات اولیه‬
‫‪ ‬این تمرین تحویل گرفته نمی شود و صرفا ترای آشناایی شنما تنا نحنوط ی یرا نی‬
‫سوال در مورد کالس ها و اشیا می تاشد‪.‬‬
‫‪ ‬در صورت ارسال تمرین‪ ،‬نمرط اضنافی تلقنك ناواهند گرفنن‪ ،‬تاناتراین از ارسنال آ‬
‫خودداری نمائید‪.‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪2‬‬
‫سواالت‬
:‫ ته صورت زیرپیادط سازی کاید‬ratioanal ‫کالسی تا نام‬.1
class Rational{
public Rational(int num, int denum);
public Rational add(Rational num);
public Rational sub(Rational num);
public Rational mul(Rational num);
public Rational div(Rational num);
public double toFloatingPoint();
public String toString();
}
3
fall 2011
Sharif University Of Technology
‫سواالت (ادامه)‬
‫‪ ‬این کالس تاید محاسثات ریاضی را تر روی کسرها اندام دهد‪ .‬سازندط ی‬
‫این کالس تاید تا دریافن صورت و مارج یک کسر تولید کاد‪ .‬توخه کاید‬
‫که همیشه تاید نتایدی که در متغیرهای درونی خود ذخیرط می کاید‪ ،‬در‬
‫الن سادط شدط تاشاد‪.‬‬
‫‪ ‬ترای مثال کسر ‪ 4/2‬ته صورت یک شیء ذخیرط خواهد شد که صورت آ‬
‫‪ 1‬و مارج آ ‪ 2‬اسن‪.‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪4‬‬
‫سواالت(ادامه)‬
‫تواتع کالس را ته صورت زیر پیادط سازی کاید‪:‬‬
‫‪ .1‬خمع کسر فلقی تا یک کسر دیگر ته وسیقه تاتع ‪add‬‬
‫)‪public Rational add (Rational num‬‬
‫‪ .2‬تفریك کسر فلقی از یک کسر دیگر ته وسیقه ی تاتع ‪sub‬‬
‫)‪public Rational sub (Rational num‬‬
‫‪ .3‬ضرب کسر فلقی تا یک کسر دیگر ته وسیقه تاتع ‪mul‬‬
‫)‪public Rational mul (Rational num‬‬
‫‪ .4‬تمسیم کسر فلقی تا یک کسر دیگر ته وسیقه تاتع ‪div‬‬
‫)‪public Rational div (Rational num‬‬
‫‪ .5‬یک عدد کسری را ته فرمن اعشاری تثدیل کاید‪.‬‬
‫)‪public double toFloatingPoint (Rational num‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪5‬‬
‫سواالت(ادامه)‬
‫توخه کاید که در همه ی تواتع تاال نتایح در شنییی کنه تناتع تنر روی آ‬
‫صدا زدط شدط اسن ذخیرط نمی شوند‪ .‬تقکه تاید در یک شیء کسنر خدیند‬
‫ذخیرط شوند که توسط این تواتع ترگرداندط می شود‪.‬‬
‫ته عاوا مثال اگر اعداد کسری ‪ x‬و ‪ y‬را داشنته تاشنیم و ممندار اولینه ی‬
‫هرکدام از آ ها ‪ 2/1‬تاشد‪ ،‬عمل )‪ x.add(y‬تر روی ممادیر ‪ x‬و ‪ y‬تنثییری‬
‫ناواهد داشن و ممدار هر دوی آ ها ‪ 2/1‬تالی می ماند‪.‬‬
‫یک عدد کسری را ته فرمن اعشاری تثدیل کاید‪.‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪6‬‬
)‫سواالت(ادامه‬
‫ را پیادط سازی کاید که نگهدارندط ی یک‬Polynomial ‫ در این سوال تاید کالس‬.2
.‫چاد خمقه ای اسن‬
class Polynomial {
Polynomial(int degree ,double[] coefficients);
double evaluate(double x);
Polynomial add(Polynomial p);
Polynomial subtract(Polynomial p);
Polynomial differentiate();
double findRoot(double start, double end, double accuracy)
double coefficient(int degree);
7
{fall 2011
Sharif University Of Technology
‫سواالت(ادامه)‬
‫سازندط ی کالس درخه ی چاد خمقه ای و آراینه ای از ضنرایة منی گینرد و چاند‬
‫خمقه ای را می سازد‪.‬‬
‫عالوط تر تواتع زیر کالس تاید شامل تواتع ‪ get‬و ‪ set‬ترای هر فیقد تاشد‪.‬‬
‫تاتع ‪ ،evaluate‬ممدار دادط شدط را ته متغیر چاد خمقه ای ماصوب می کاد و سپس‬
‫تا توخه ته آ ممدار چاد خمقه ای را ته دسن می آورد‪.‬‬
‫تاتع ‪ ،add‬چاد خمقه ای دادط شدط را تا چاد خمقه ای ما خمع می کاد و اصنل را‬
‫ته عاوا خروخی تر می گرداند‪ .‬ترای دسترسی ته فیقد های چاد خمقنه ای دادط‬
‫شدط تاید از تواتع ‪ get‬و ‪ set‬استفادط کاید‪.‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪8‬‬
‫سواالت(ادامه)‬
‫تاتع ‪ ،subtract‬چاد خمقه ای دادط شدط را تا چاند خمقنه ای منا کنم منی کاند و‬
‫اصل را ته عاوا خروخی تر می گرداند‪ .‬ترای دسترسی ته فیقد های چاند خمقنه‬
‫ای دادط شدط تاید از تواتع ‪ get‬و ‪ set‬استفادط کاید‪.‬‬
‫تاتع ‪ ،differentiate‬مشتك چاد خمقه ای را ته عاوا خروخی تر می گرداند‪.‬‬
‫تاتع ‪ ،findRoot‬ریشه ی چاد خمقه ای را از ‪ start‬تا ‪ end‬تا دلنن ‪ accuracy‬تنر‬
‫می گرداند‪ .‬در صورتی که در این محدودط ریشه ای پیدا نشد‪ ،‬ممدار ‪ end+1‬را تنر‬
‫می گرداند‪.‬‬
‫تاتع ‪ ،coefficient‬تا دریافن درخه‪ ،‬ضریة خمقه ای تا آ درخه را تاز می گرداند‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪9‬‬
)‫سواالت(ادامه‬
:‫ را ته صورت زیر پیادط سازی کاید‬Employee ‫کالس‬
class Employee{
string firstName;
string lastName;
double salary;
double reward;
Employee(string first, string last, double sal);
double calculateSalary(int days);
}
10
fall 2011
Sharif University Of Technology
‫سواالت(ادامه)‬
‫سازندط ی کالس تا دریافن نام‪ ،‬نام خانوادگی و موق کارماد یک شیء خدید‬
‫تولید می کاد‪.‬‬
‫تاتع ‪ ،calculateSalary‬تا دریافن تلداد روز درآمد کارماد را محاسثه می کاد و تر‬
‫می گرداند‪.‬‬
‫محاسثه ی درآمد کارماد ته این صورت اسن که در صورتی که ممدار ‪ 10 salary‬و‬
‫ممدار ‪ 20 reward‬تاشد و تاتع ‪ calculateSalary‬تا ورودی ‪ 30‬صدا زدط شدط‬
‫تاشد‪ ،‬میسا درآمد تراتر اسن تا‪:‬‬
‫‪(10*30)+20*(10*30)/100‬‬
‫ممدار ‪ reward‬ته صورت پیش فرض تراتر تا ‪ 0‬در نظر گرفته می شود‪.‬‬
‫‪Sharif University Of Technology‬‬
‫‪fall 2011‬‬
‫‪11‬‬