

آرشيو موضوعي
كل بازديد ها :
سلام
ازاینکه به این وبلاگ اومدین خوشحالم. اگر در آخر نظر بدهید ممنون میشوم.
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : یکشنبه 1387/07/28
چگونه می توان از وقف ها در زبان C++ استفاده کرد ؟
خوب بد نیست اینجا کمی هم درباره وقفه ها صحبت کنیم . وقفه ها سیگنال هایی هستند که از برنامه های در حال اجرا و یا دستگاه های جانبی کامپیوتر (چاپگر و مونیتور و موس و . . .) در خواست می شود , وقتی وقفه ای اتفاق می افتد اجرای برنامه به تعویق افتاده محتویات ثباتهای CS و IP در پشته نگهداری شده و کنترل روال پاسخگو یی به این وقفه منتقل می شود . پس از پاسخگو یی به وقفه مورد نظر محتویات CS و IP از پشته ها بازیابی می شود. تعداد 256 وقفه وجود دارد که هر یک دارای زیر برنامه و توابع مخصوص به خود می باشند که می تواند اعمال مختلفی را انجام دهند . لیست وقفه ها را می توانید در مراجع اصلی زبان اسمبلی و با جستجو در اینترنت پیدا کنید .
خوب در زبان C/C++ برای اجرای وقفه ها ابتدا ثباتهای مورد نیاز مقدار دهی شده و بع با استفاده از تابع زیر اجرا می شود
int (
int intnum , union REGS *in , union REGS *out )union : یونیونها یک قالب داده می باشد که می تواند انواع مختلفی از داده ها را در خود نگهداری کند و فقط یک نوع داده را می تواند در یک زمان نگهداری کند و این همان تفاوت union با struct ها می باشد , struct ها می تواند در یک زمان چند نوع داده مختلف را نگهداری کند (int , long , double , char)
خوب برای تفهیم بهتر مثالی در زیر آورده شده که که با استفاده از وقفه صفحه نمایش را پاک کره و مکان نما را به مکان (0و0) انتال می دهد :
/*########################################
# WWW :MATLAB87.BLOGFA.com #
########################################*/
#include
#include
#include
void clear_screen(void);//define function
void move_xy(int x,int y);//define function
int main()
{
int x,y;
printf(" This is a test \n");
getch();
clear_screen();// Call Function
move_xy(0,0);//call move_xy function
getch();
return 0;
}
/* Body of clear screen function */
void clear_screen(void)
{
union REGS r ;
r.h.ah = 6;
r.h.al = 0;
r.h.ch = 0;
r.h.cl = 0;
r.h.dh = 23;
r.h.dl = 79;
r.h.bh = 7;
int86(0x10, &r, &r);
}
/* Body of move_xy function */
void move_xy(int x,int y)
{
union REGS r;
r.h.ah = 2;
r.h.bh = 0;
r.h.dh = x;
r.h.dl = y;
int86(0x10, &r, &r);
}
چگونه یک Progress Bar را در محیط Text پیاده سازی کنیم ؟
for (i = 0;i < 80;i ++)
{
gotoxy (wherex(),21);
cprintf ("کاراکتر مورد نظر");
delay (50);
}
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : یکشنبه 1387/07/28
چگونگی ایجاد منوی کلیک راست
خوب ابتدا توسط Menu Editor منو و تعدادی SubMenu (زیر منو) ایجاد کرده و خاصیت Visible منو (فقط منو) را غیر فعال میکنیم

حالا فرض میکنیم که می خواهیم منو را برای هنگامیکه بر روی فرم راست کلیک کردیم ظاهر کنیم , کد زیر را در Event (ٍرویداد) MouseDown می نویسیم :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Button = 1 :::>>> For LeftClick
'Button = 2 :::>> For RightClick
If Button = 2 Then
PopupMenu MnuFile
End If
End Sub
حالا برنامه را Run کنید و بر روی فرم راست کلیک کنید می بینید که فرم ظاهر میشود
خوب شما می توانید منوی کلیک راست رو برای هر عنصری که رویداد MouseDown رو داره پیاده سازی کنید .
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : یکشنبه 1387/07/28
برای ارسال يک آرايه به عنوان آرگومان به يک تابع ، کافيست نام آرايه را بدون علامت براکت ([]) به کار ببريد . به عنوان مثال اگر آرايه ای با نام x به صورت زير تعريف شده باشد :
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : جمعه 1387/02/20
آرايه ها در ++C می توانند بيش از يک انديس داشته باشند . بدين صورت يک آرايه چند انديسه يا چند بعدی خواهيم داشت . کاربردی ترين آرايه چند بعدی ، آرايه دو بعدی می باشد که توسط آن می توان جدولی حاوی مقادير مختلف را شبيه سازی کرد . به دستور زير توجه کنيد :
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : جمعه 1387/02/20
این برنامه یک نوع منو را در محیط گرافیک C++ ارائه می کند.کد این برنامه بسیار روان است و در اغلب موارد همراه با توضیح می باشد :
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : سه شنبه 1387/02/17
با همین چند خط کد کوتاه اشکال زیبایی در محیط گرافیکی ایجاد می شود , تنها با تغییر برخی اندازه ها اشکال جدیدی خلق می شود . برای این دو برنامه کوتاه فکر نکنم نیازی به هیج توضیحی باشد چون در هر کتاب آموزش C/C++ درباره برنامه نویسی در محیط گرافیکی مطلب گفته شده (تنها نکته لازم به ذکر این است که مسیرگرافیکی کتابخانه مبدل گرافیکی c++ درست داده شود مثلاً مسیر گرافیکی C++ من "C:\\tc\\bgi" می باشد , حواستان باشد که باید از \\ استفاده کنید نه از \ . )
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : دوشنبه 1387/02/16
معرفی چند تابع:
1. clreol : این تابع تمام کاراکترها که بعد از مکان نما قرار دارد را تا آخر آن خط پاک میکند بدون آنکه موقعیت مکان نما تغییر کند . علت اینکه من از تابع cptintf در مثال زیر استفاده کردم این است که توابع clreol - clrscr و getch هر سه در کتابخانه Conio.H هستند و تابع cprintf هم در این کتابخانه است و دیگر از printf استفاده نکردم همچنین یکی دیگر از مزیت های cprintf این است که برای چاپ text های رنگی در خروجی از این تابع استفاده می شود , در حالیکه printf چنین امکانی را در اختیارمان قرار نمی دهد . در زیر مثالی ارائه شده تا مفهوم تابع clreol را بهتر متوجه شوید :
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : دوشنبه 1387/02/16
برنامه ای که در زیر کد آنرا مشاهده می کنید بسیار ساده و تا حدی کاربردی هست . این برنامه بصورت داینامیک زمان و تاریخ را نمایش می دهد که می تواند در اکثر پروژهای دانشگاهی از آن استفاده کرد . اگر پیشنهادی هم داشتید ایمیل بزنید.
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : دوشنبه 1387/02/16
در ابتدا می توان بردار ساده ای با 9 عنصر ساخت.
[a = [1 2 3 4 6 4 3 4 5
=a
1 2 3 4 6 4 3 4
حالا می شود 2 را به هر یک از عناصر بردار اضافه و نتيجه را در یک بردار جدید ذخیره کنیم
b = a + 2
=b
3 4 5 6 8 6 5 6 7
لينك ثابت
نويسنده : عاطفه حیدری
تاريخ : چهارشنبه 1387/02/11