PDA

View Full Version : حل برنامه در زبانturbo c 3.0



hamid_01
شنبه 22 آذر 1393, 18:05 عصر
سلام دوستان
استاد ازمون خواسته یه برنامه در turbo c.3 بنویسیم که شروع کنه عدد 1 تا 150 رو با دیلی 500 میلی ثانیه چاپ کنه و هر زمان کلید esc فشار داده شد برنامه هرجایی بود قطع بشه و شروع کنه به چاپ عدد از 150 تا 1... یعنی عکس حالت اول........
همه چیزشو می فهمم بجز تعریف اون کلید esc ... یه جورایی مثل این میمونه که تو حلقه بینهایت با ctrl+break خارج بشی.
با دستور kbhit() نوشتم ولی مشکل اینه که هر کلیدی فشار داده بشه برنامه قطع میشه و من فقط میخوام با کلید esc روند برنامه عکس بشه

iut.ali
شنبه 22 آذر 1393, 22:57 عصر
خب کد اسکی اسکیپ ۲۷ هستش که به راحتی میتونی با یه if شرطتو اعمال کنی

hamid_01
یک شنبه 23 آذر 1393, 00:22 صبح
مرسی جواب دادی ولی قراره برنامه به صورت اتوماتیک این کارو انجام بده و جایی از من سوال نمی پرسه که کلیدی رو فشار بدم... باید از وقفه ها و دستور int86 استفاده کنم ولی طریقه استفاده رو بلد نیستم ...

rahnema1
یک شنبه 23 آذر 1393, 13:33 عصر
نکته اینجاست که getch بافر را خالی می کنه

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

int main()
{
int i =1;
int inc = 1;
int reversed = 0;
while(!(i>150) && !(i<1))
{
if(!reversed && kbhit() && getch()== 27)
{
i = 150;
inc = -1;
reversed = 1;
}
else
{
printf("%d\n",i);
i+=inc;
}
delay(500);
}
}