Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نویسی با زبان های C++ و Delphi و VB -> سوال در مورد ساختارها
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

سوال در مورد ساختارها
نويسنده
پيغام
MGS
در حال رشد
در حال رشد


تاريخ عضويت: 3 شنبه 23 اسفند 1384
تعداد ارسالها: 47
محل سكونت: Arizona


3 شنبه 2 مرداد 1386 - 11:09
پاسخ بصورت نقل قول
لطفا در مورد ساختارها و نمونه ها كمك كنيد و اگر كسي بلده توضيح بده. متشكرم...
sturcts & template<class a> help
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
beelzebub
کاربر جدید
کاربر جدید


تاريخ عضويت: 2 شنبه 11 آبان 1383
تعداد ارسالها: 2


5 شنبه 11 مرداد 1386 - 00:44
پاسخ بصورت نقل قول
ساختارها :
بعضي مواقع ما احتياج داريم تا چند نوع عنصر غير همنوع رو با يك نام استفاده كنيم. اينجاست كه ساختمان ها مورد استفاده قرار مي گيرند
مثلا ما مي خواهيم در يك دانشگاه اطلاعات برخي از دانشجويان مثل نام، نام خانوادگي، سن، شماره دانشجويي آنها رو ذخيره كنيم
به اين صورت يك ساختار با اين مقادير مي سازيم
اين تعريف ساخار مي تونه قبل از تابع main قرار بگيره

كد:

struct studentInfo
{
    char name[20];
    char family[20];
    int age;
    int stNumber;
};


هر ساختار با لغت كليدي struct آغاز و بعد آن هر نامي مي تونه باشه مثل studentInfo
بعد داخل دو اكولاد متغيرهاي مورد نياز و در انتهاي آكولاد آخر يه ويرگول نقطه قرار مي گيره

بعد براي استفاد از اين ساختار بايد يك متغير از نوع ساختاري كه ساختيم بسازيم
اين متغيير مي تونه داخل تابع main مثل ديگر متغير ها تعريف بشه با اين تفاوت كه نوعش به صورت ساختار هست
تا اينجا به اين صورت

كد:

struct studentInfo
{
    char name[20];
    char family[20];
    int age;
    int number;
};

int main()
{
    studentInfo stInfo;
   
    return 0;
}


كه stInfo متغييري هست از نوع ساختار studentInfo
براي دسترسي به متغيير هاي داخل ساختمان مثل نام دانشجويي و ... به اين صورت عمل ميكنيم

كد:

stInfo.name
stInfo.family
stInfo.age
stInfo.number


بعد متغير stInfo يه نقطه و بعد نام متغيري كه داخل ساختار قرار داره
و ميتوان با هر كدام مثل يك متغيير عادي رفتار كرد

كد:

stInfo.age = 34
stInfo.number = 56464


خوب اين اطلاعات براي يك دانشجوست براي اينكه مثلا براي 100 دانشجو اين كارو بكنيم بايد يك آرايه از نوع اون ساختار بسازيم اينجوري

كد:

studentInfo stInfo[100];


و دسترسي به مقادري به اين صورت

كد:

stInfo[0].name
stInfo[0].family
stInfo[0].age
stInfo[0].number

stInfo[1].name
stInfo[1].family
stInfo[1].age
stInfo[1].number

.
.
.
.
stInfo[99].name
stInfo[99].family
stInfo[99].age
stInfo[99].number


و براي قالبها :
ما تابعي داريم مي خواهيم با همون الگويي كه هست براي چندين نوع مثل int , float , double و ... استفادش كنيم
مثلا تابعي كه ماكزيمم سه عدد رو ميگيره
ما همچين الگويي مي سازيم

كد:

template < class T >
T maximum( T value1, T value2, T vulaue3)
{
    T maximumValue = vulue1;
   
    if ( value2 > maximumValue )
        maximumValue = value2;
       
    if ( value3 > maximumValue )
        maximumValue = value3;
   
    return maximumValue;
}


خوب با اين الگو مثلا در جايي خاستيم ماكزيمم سه عدد صحيح (int) رو بيگريم
اينجور استفاده ميكنيم
كد:

int num1, num2, num3, max
max = maximum(num1, num2, num3);


int به طور خودكار جايگزين T در قالب مي شه و نتيجه ماكزيمم به داده مي شه
براي نوع هاي ديگه هم به اين شكل
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
MGS
در حال رشد
در حال رشد


تاريخ عضويت: 3 شنبه 23 اسفند 1384
تعداد ارسالها: 47
محل سكونت: Arizona


1 شنبه 14 مرداد 1386 - 10:28
پاسخ بصورت نقل قول
دستت درد نكنه خيلي كمك كردي
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |