نمونه سوال درس برنامه نویسی پیشرفته

دسته بندی : /


تعداد فروش

0 دانشجو

پرسش و پاسخ ها

0 کاربر

تاریخ انتشار

13 اردیبهشت 1402

سطح تمرین

سخت

در این پست قصد داریم چندین نمونه سوال درس برنامه نویسی پیشرفته را بررسی و پاسخ دهیم.

روال بدین صورت میباشد که ابتدا سوال را مطرح و توضیحات راجع به آن میدهیم و سپس پاسخ و دلیل آن و سورس کد را قرار میدهیم.

تمرین پیاده سازی دفترچه تلفن فایل

نمونه سوال درس برنامه نویسی

سوال اول: با توجه به قطعه کد زیر به سوالات پاسخ دهید.

الف) کدام دستور منجر به خطا میشود؟ علت را توضیح و آن دستور را حذف نمایید؟

ب) خروجی برنامه چیست؟

سورس کد به شرح زیر میباشد:

#include <iostream>

using namespace std;

class Distance{
    
    private:
    static int count;
    int feet;float inches;
    
    public:
    Distance(int ft=0,float in=0.0): feet(ft),inches(in){count++;}
    
    ~Distance(){count--;}
    
    int getcount(){return count;}
    
    void getdist(){
        cout<<"\nEnter feet ";
        cin>>feet;
        cout <<"Enter Inches :" ;
        cin>>inches;
        
    }
    void showdist() const {cout<<feet<<"\'-"<<inches <<"\'";}
    
    
};

int Distance::count = 0 ; 

int main()
{
    const Distance d1(7,5);
    Distance * d2 = new Distance();
    Distance d3(12);
    d1.getdist();
    d1.showdist();
    cout<<endl;
    cout<<d2->getcount()<<endl;
    delete d2;
    cout<<d3.getcount()<<endl ; 
    return 0;
}

پاسخ سوال اول از نمونه سوال برنامه نویسی پیشرفته

همانطور که مشاهده میکنید کلاس Distance تعریف شده با متد هایی که هر کدام یک کاری را انجام میدهند.

اگر دقت کنید فیلدی از نوع استاتیک بنام count تعریف شده که خروجی نهایی در این متغییر محاسبه میشود.

کل این سورس کد به این اشاره دارد که ما به ازای سازنده کلاس میتوانیم به فیلد استاتیکی مقدار اضافه کنیم.

و به ازای مخرب کلاس میتوانید از آن مقداری را کسر کنیم.

پس خطای در برنامه کلمه کلیدی const هنگام ایجاد شی از کلاس distance میباشد.

تمرین نمایش تعداد جمله های متن

سورس کد بخش خطا به شرح زیر میباشد:

const Distance d1(7,5);

چرا این خطا به وجود می آید؟

پس از ایجاد شی متد های زیر فراخوانی میشوند:

d1.getdist();
   d1.showdist();

هنگامی که متد get dist فراخوانی میشود مقادیر feet , inches مجدد دریافت میشود ولی ما بالاتر گفتیم که از نوع const هستند پس اینجا خطا بوجود می آید.

پس اگر const را از هنگام تعریف شی d1 برداریم برنامه به درستی کار میکند.

نکته: پس از ثبت نام و یا ورود به حساب کاربری خود میتوانید سورس کد قابل اجرا این نمونه سوال را دریافت نمایید.

خروجی سوال اول نمونه سوال برنامه سازی پیشرفته

اما خروجی این سوال چیست؟ خروجی برنامه میشود تعداد دفعات ساخت و حذف شی از کلاس Distance

یعنی ما سه بار ابتدا از کلاس distance نمونه سازی انجام دادیم پس اولین cout  خروجی 3 دارد.

و ما بعد از آن از دستور delete استفاده کردیم پس یک مخرب فراخوانی شد و cout بعدی خروجی 2 میشود.

خروجی نمونه سوال اول برنامه سازی پیشرفته

سوال دوم از نمونه سوال درس برنامه سازی پیشرفته ++c

سوال دوم: برنامه ای بنویسید که پیغام زیر را نمایش دهد؟

“Salam havij”

پاسخ سوال:

نکته سوال اینجا میباشد که شما برای چاپ ” باید از “\ استفاده نمایید.

سورس کد به شرح زیر میباشد:

#include <iostream>

using namespace std;


int main()
{
  cout << "\"salam havij\"";
    
    return 0;
}

 نمونه سوال برنامه نویسی cpp سوال سوم

سوال سوم: متدی تعریف نمایید که نام کلاس های والد کلاس فعلی را برگرداند؟

برای اینکه بتوانیم نام کلاس های والد کلاس فعلی را برگردانیم باید ابتدا با چند تابع و عملگر آشنا شویم.

تمرین پیاده سازی کلاس string سفارشی

عملگر typeid در سی پلاس پلاس

با کمک این عملگر میتوانیم نوعی به آن بدهیم و آیدی آن را دریافت کنیم و در نهایت با تابع ()name نام کلاس را خروجی بگیریم.

مثال:

typeid(Parent).name()

خروجی میشود نام کلاس Parent به همراه آیدی آن

تابع is_base_of در سی پلاس پلاس

با کمک این تابع میتوانیم بررسی کنیم که کلاسی از یک کلاس دیگر ارث بری میکند یا خیر.

نحوه استفاده تابع is_base_of 

#include <iostream>
#include <type_traits>
#include <string>
using namespace std;


class Parent
{
public:
  Parent(){
      
  }
};

class Parent1
{
public:
  Parent1(){
      
  }
};

class Parent2
{
public:
  Parent2(){
      
  }
};

class Child : public Parent , public Parent1 , public Parent2
{
    
    public :
    void getName(){
       
        
    }
};


int main()
{
        string result; 
        result= std::is_base_of<Parent, Child>() == 1 ? (string)typeid(Parent).name():"";
        cout<<result<<endl;
    return 0;
}

با کمک این مثال مشخص کردیم که آیا کلاس chid زیر مجموعه کلاس Parent هست یا خیر .

اما سورس کد نهایی پروژه به شرح زیر میباشد:

نکته: پس از ثبت نام یا ورود به حساب کاربری خود میتوانید سورس کد کامل را دریافت نمایید.

تمرین با جواب سی پلاس پلاس

پرسش و پاسخ ها

هنوز بررسی‌ای ثبت نشده است.

اولین کسی باشید که دیدگاهی می نویسد “نمونه سوال درس برنامه نویسی پیشرفته”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمرینات مشابه

پروژه مدیریت کتابها در سی شارپ

پروژه مدیریت کتابها در سی شارپ

  • استادیار: وفایی مقدم
  • قیمت: 50,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
پروژه sql دیجی کالا

پروژه sql دیجی کالا

  • استادیار: وفایی مقدم
  • قیمت: 50,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
پروژه نمایش دمای هوا از طریق گوگل

پروژه نمایش دمای هوا از طریق گوگل

  • استادیار: وفایی مقدم
  • قیمت: 50,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
پروژه ساختمان داده بانک یاب

پروژه ساختمان داده بانک یاب

  • استادیار: وفایی مقدم
  • قیمت: 60,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : سخت
تمرین چند ضلعی در سی شارپ

تمرین چند ضلعی در سی شارپ

  • استادیار: وفایی مقدم
  • قیمت: رایگان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
تمرین singleton در سی شارپ

تمرین singleton در سی شارپ

  • استادیار: وفایی مقدم
  • قیمت: رایگان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
محاسبه شیب پاره خط در سی شارپ

محاسبه شیب پاره خط در سی شارپ

  • استادیار: وفایی مقدم
  • قیمت: 35,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط
پروژه محاسبه عملگر های بیتی در سی شارپ

پروژه محاسبه عملگر های بیتی در سی شارپ

  • استادیار: وفایی مقدم
  • قیمت: 50,000 تومان
  • نوع آموزش: ویدیویی
  • سطح تمرین : متوسط