برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی


اونایی که هنوز تصمیم نگرفتن بخوابن و حالا حالا ها بیدارن!

خسته نباشید:)

 

لطفا فردا بدون استرس بیاین سر جلسه با اعتماد بنفس! اینجوری بهتر نتیجه میگیرید.

 

قبل از 12 هم بخوابیدا!

 

این قسمتو فقط دوما بخونن:

در ضمن دوم های عزیز مطالب و نت برداری هایی که دارین رو مطالعه کنید و یادتون باشه هر چی برای این امتحان یادبگیرین برای امتحان عملی کمکتون میکنه!

در ضمن من که میدونم شما استرس و اضطراب ندارین ولی برای محکم کاری ،از اون یه درصدی که استرس دارن خواهش میکنم آرامش خودشون رو حفظ کنن! چون این امتحان یه بخشی از نمره شماست ، امتحان عملی و تمرین و موارد دیگه هم  بخش هایی از نمره نهایی شما خواهد بود!

 

شب خوبی داشته باشید بچه ها:)

  • علیرضایی


سلام به بچه های گل پایه اول

 

یادآوری: ارزش و تاثیر کار کلاسی و حضور کلاسی بالاترین ارزشو در تعیین نمره مستمر شما داره حتی بیشتر از میانترم!

 

برای امتحان فردا حواستون جم باشه ! نمیخوام بی دقتی ببینم!!!

 

یه عالمه موفق باشید و پر از آرامش:)

  • علیرضایی


سلام به دومای عزیز!:)

امتحان روز چهارشنبه پایه دوم به صورت تئوری میباشد ! امتحان عملی نیز هفته آینده برگزار خواهد شد!

 

حسابی بخونیداااا !

بی دقتی نمیخوام ببینم!

موفق باشید یه عالمه!

  • علیرضایی

تابع موضوع غیر آشنایی برای ما نیست ، تا به اینجا ما در برنامه های خود بارها و بارها از توابع استفاده کرده ایم.

توابعی مثل:( )sqrt() ,pow(2,3) ,rand

این توابع به صورت آماده در اختیار ما بود تا هر زمان که لازم داشتیم از آنها استفاده کنیم، اما ممکن است ما به یک تابعی احتیاج داشته باشیم که در مجموعه توابع آماده وجود نداشته باشد! پس لازم است که ما هم بتوانیم تابع هایی بر اساس نیاز خود تعریف و پیاده سازی کنیم!

 

اول از مثال های ساده شروع میکنیم:

تابعی بنویسید که 2 برابر یک عدد را حساب کند.

توجه: قدم اول برای نوشتن یک تابع این است که بفهمیم که تابع ما چه چیزی میگیرد و چه چیزی رو برمیگردونه:

 مثلا تابع توان((pow(2,3 )  دو تا عدد میگیره و حاصل اولی به توان دومی را به ما میدهد( در اینجا 2 به توان 3 یعنی 8) ! خب حالا تابع ساده ای که ما  داریم مینویسیم قراره چی بگیره؟

یک عدد میگیره و 2 برابر آنرا برمیگردونه!

به اون چیزی که تابع میگیره میگن ورودی و به اون چیزی که برمیگردونه هم میگن خروجی.

در واقع تابع یه سری عملیات رویه ورودی انجام میده تا به خروجی نهایی برسه!

 

نحوه تعریف تابع ها در زبان++c:

 

(انواع ورودی)    اسم تابع       نوع خروجی    

  دستورات       }

{                         

 

توجه!توجه!توجه: تعریف تابع حتما قبل از main است.

 

نوع خروجی: خروجی یک تابع ممکن است عدد صحی، عدد اعشاری، کارکتر، رشته، پوچ و ... باشد.

انواع ورودی: یک تابع ممکن است یک، دو یا تعداد زیادی ورودی داشته باشد و در مواقعی هم اصن وردی نداشته باشه! اما اگر تابع شما ورودی داره باید نوع اون مشخص باشه که عدد صحیحه ، کاراکتر ، عدد اعشاری و یا ...

 

اسم تابع : همانند اسم متغیرها میتوان اسامی مختلفی برای توابع در نظر گرفت!

 

دستورات: شامل عملیاتی است که بر روی ورودی(ها) مورد نظر انجام میشود!

 

تعریف تابعی که 2 برابر یک عدد را حساب میکند!

 

( double f2 (double a 

}

 ; a= a*2

 ; return a

 {

 

اسم تابع رو به دلخواه f2 انتخاب شده! نوع ورودی رو عدد اعشاری در نظر گرفتم و چون این تابع قراره 2 برابر یک عدد رو حساب کنه و ورودی ما اعداد اعشاری رو هم شامل میشه نوع خروجی رو هم اعشاری انتخاب کردم!

 

دستورات این تابع: ابتدا 2 برابر a را حساب کردم و در a ریختم. سپس مقدار a رو برگردوندیم!

 

return   حاصل عملیاتی که تابع بر روی ورودی ها انجام داده با استفاده از دستور return برگردانده میشود.

 

سوال؟ به کجا برگردونده میشه؟ ما از توابع همانند گذشته در برنامه هامون استفاده خواهیم کرد و برنامه هامون رو هم که مثل قبل داخل main مینویسیم! پس هر جایی از main که ا ز یک تابع استفاده میکنیم اون تابع خروجی خودش رو که حساب کرده به همون نقطه برمیگردونه.

 به برنامه زیر توجه کنید:

 

درون main یک متغییر به اسم s داریم که اون رو برابر مقدار تابع f2 قرار دادیم به ازای عدد 7. در اینجا main که به این تابع مبرسه، از درون این تابع خبر نداره و فقط ازش میخواد مقدار ورودی که در اختیارش قرار داده(7) رو بگیره و یک خروجی به اون بده! که در اینجا خروجی تابع f2 وقتی به درون main برگردونده میشه دورن متغیر s ذخیره میشه! چون در برنامه s برابر با این تابع است.

 

مثال: تابعی بنویسید که 2 عدد بگیرد و مقدار کوچکتر رو برگردونه:

 

 

مثال: تابعی بنویسید که یک عدد گرفته اگر زوج است چاپ کند "zoj" و اگر فرد است "fard" .

 

 

 

 

نوع خروجی در تابع بالاvoid است؟! چرا؟ زمانیکه تابع ما قرار است نهایتا نوعی خروجی به صورت دستور cout و یا رسم شکلی داشته باشد میگوییم خروجی از نوع void یا پوچ است چرا که رسم شکل و یا cout ،خروجی لحظه ای است و یک لحظه قابل رویت است و بعد از آن در ادامه برنامه به آن دسترسی نداریم.

 

در تابعی که نوع خروجی void است از return به هیچ عنوان استفاده نمیشود.

 

 توابع به طور کلی به 4 قسمت تقسیم میشوند:

 

1- با ورودی-با خروجی

2-با ورودی-بدون خروجی

3--بدون ورودی-با خروجی

4-بدون ورودی-بدون خروجی

 

1-با وردی -با خروجی

 

مثال: تابعی بنویسید که یک عدد بگیرد قرینه آنرا حساب کند:

 

 

توجه کنید که این تابع مقدار قرینه را حساب میکند و بعد ما در جایی دیگر از برنامه(main) میتوانیم نتیجه کار تابع مورد نظر را چاپ کنیم.

 

 

2- با ورودی- بدون خروجی

 

مثال: تابعی بنویسید که یک عدد گرفته قرینه آنرا چاپ کند.

 

 

توجه کنید که وقتی قرار است خود تابع کار چاپ را انجام دهد خروجی آن از نوع void  میشود.

 

 

3- بدون ورودی- با خروجی

 

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

 

 

 

 

 

 

 

 

 

تان

  • علیرضایی

دریافت 

با سلااااااااام!

 

نتیجه امتحان میانترم بد نبود اما من بیشتر از اینا انتظار داشتم! میخوام برا امتحان پایانی حسابی تلاش کنید!

اگه سوالی هم دارید و یا مطلبی رو لازم دارید که تو وبلاگ بزارم زودتر بگین تا فرصتش باشه!


جواب امتحان میانترم رو هم دانلود کنید.

  • علیرضایی


توجه: برنامه کامل نیست. قسمت پایگاه داده کامل شده اما قسمت انجام عملیات ناقص است!

 

#include <iostream>
#include <conio.h>
#include<string.h>
using namespace std;
struct student {
string f_name;
string l_name;
string std_no;
string code;
int total_pass;
double num[100]={-1};
double ave;
};
main()
{
   student* std;
   int c,i,j;
   cout<<"please enter number of student: ";
   cin>>c;
   std=new student[c];
    cout<<endl<<"----please complete information of each student----"<<endl<<endl;
   for( i=0;i<c;i++)
    {
    cout<<"fname: ";
    cin>>std[i].f_name;

    cout<<"lname: ";
    cin>>std[i].l_name;

    cout<<"studebt NO: ";
    cin>>std[i].std_no;

    cout<<"Code: ";
    cin>>std[i].code;

    cout<<"Pass course: ";
    cin>>std[i].total_pass;

    for(int j=0;j<std[i].total_pass;j++)
    {
        cout<<"course "<<j+1<<" : ";
        cin>>std[i].num[j];
    }

    cout<<"average: ";
    cin>>std[i].ave;

    cout<<endl<<"-----------------------"<<endl;
    }
    int select;
    cout<<"now select number for do task "<<endl;
cout<<"1>>sort student by lname and print"<<endl;
cout<<"2>>sort student by average and print"<<endl;
cout<<"3>>print informations of pass student in all course or have only one unpass "<<endl<<endl;
cout<<">>> ";
cin>>select;

if(select==1)
{

}

else if(select==2)
{double temp;
string stemp;
     for( i=0;i<c;i++){

         for(j=i+1;j<c;j++){
         if(std[i].ave>std[j].ave)
         {
                      temp=std[i].ave;
                      std[i].ave=std[j].ave;
                      std[j].ave=temp;

                      stemp=std[i].f_name;
                      std[i].f_name=std[j].f_name;
                      std[j].f_name=stemp;

                      stemp=std[i].l_name;
                      std[i].l_name=std[j].l_name;
                      std[j].l_name=stemp;

                      stemp=std[i].f_name;
                      std[i].f_name=std[j].f_name;
                      std[j].f_name=stemp;

                      stemp=std[i].std_no;
                      std[i].std_no=std[j].std_no;
                      std[j].std_no=stemp;

                      stemp=std[i].code;
                      std[i].code=std[j].code;
                      std[j].code=stemp;


                      }}}

                      cout<<" ---sort by average--- "<<endl;
                      for( i=0;i<c;i++)
                      cout<<std[i].ave<<"\t";
                      cout<<endl;

}

 getch();
}

  • علیرضایی

سلام

سوالات در یک فایل pdf میباشد و کد جواب ها در فایل c++ .

توجه کنید که همه جواب ها پشت سر هم به ترتیب شماره هر تمرین در فایل آمده است و هر تمرین با استقاده از /* و */ بلوکه شده است برای اجرای هر تمرین */ و /* آنرا پاک کنید. و اگر خواستید به سراغ اجرا ی تمرین بعدی بروید ابتدا تمرین قبلی را دوباره با */ و /* بلوکه کنید.


دریافت فایل سوالات
حجم: 70.9 کیلوبایت


دریافت فایل کد جواب ها
حجم: 108 کیلوبایت



  • علیرضایی

     

برنامه ای بنویسید که یک آرایه با m سطر و n  ستون ایجاد کند(m و n را از ورودی میخواند) ، آرایه را به صورت رندوم از 1 تا 50 مقدار دهی  و چاپ کند ، سپس با تعریف متغیرها و ساختارهای مناسب با توجه به مقادیر دریافتی از ورودی عملیات shift یا rotate در جهات مختلف و به تعداد دلخواه را انجام دهد.

مثلا اگر کاربر موارد زیر را وارد کرد:

sوu

نتیجه باید 3 بار shift بالا باشد.

مثال دیگر:

11وrوr

نتیجه: 11 بار rotate به راست

توجه: نحوه  و ترتیب دریافت اعداد و یا ورودی های دیگر را به شیوه خود طراحی کنید

  • علیرضایی

سلام به دانش آموزای خوب

امتحان 2 شنبه عملی ایه و به صورت کدنویسی .

الگوریتم های تابستون رو هم بخونید ولی رو قسمت if بیشتر از حلقه وقت بزارید. چون درس کدنویسیمون هنوز به حلقه نرسیده.

گرافیک هم فراموش نشه!!!

موفق باشید .

  • علیرضایی


pizza

  • علیرضایی