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

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

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

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

۷ مطلب در دی ۱۳۹۲ ثبت شده است


زمان تحویل: ساعت 9 صبح سه شنبه 1 بهمن.

 

نحوه تحویل: ایمیل به alirezaei_e7@yahoo.com

یا ارسال به صورت نظر در وبلاگ

 

صورت سوال:

 

برنامه ای بنویسید که مدام از کاربر عدد گرفته زمانیکه -1 وارد شد به تعداد مجموع اعداد فرد مربع به ضلع 20 رویه هم رسم کند.

نمونه ورودی:  1   2  4  3  -1

خروجی

 

  • علیرضایی


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

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

 

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

 

قبل از 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();
}

  • علیرضایی