تبليغاتX
C++ برنامه نویسی کاربردی به زبان
C++ Learning
:: الگوریتم های کاربردی 1 

سلام دوستان گرامی

در اینجا می خوام به دو سوال که برام Mail زده بودید جواب بدم :

1. چگونه می توان زمان جاری سیستم را نشان داد :

این کد زمان جاری سیستم را در خروجی چاپ می کند

 /*########################################
  #  WWW  : cpp.blogfa.com               #
  #  mail : mail:
cpp.blogfa@gmail.com   #
  ########################################*/
 
#include <stdio.h>
#include <conio.h>
#include <time.h>

int main()
  {
    clrscr();

    struct tm * Current_Time ;
    time_t lt;
    lt = time (NULL);
    Current_Time = localtime(<);

    textcolor(13);
    cprintf(asctime(Current_Time));
    getch();
    return 0;
}


2. چگونه می توان از وقف ها در زبان 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  : cpp.blogfa.com               #
  ########################################*/

#include <stdio.h>
#include <conio.h>
#include <dos.h>

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); }


3. چگونه یک Progress Bar را در محیط Text پیاده سازی کنیم ؟

 

for (i = 0;i < 80;i ++) { gotoxy (wherex(),21); cprintf ("کاراکتر مورد نظر"); delay (50); }

|+| نوشته شده توسط پژمان رودخانه ای در شنبه یازدهم تیر 1384 و ساعت 12:42  
بالا