سلام
تو ++C چجوری میشه با زدن دکمه ای از کیبرد از برنامه خارج شد ؟
مثلا من میخوام شرط خروج از برنامه رو کلید ESC در نظر بگیرم
راه حلش چیه ؟
Printable View
سلام
تو ++C چجوری میشه با زدن دکمه ای از کیبرد از برنامه خارج شد ؟
مثلا من میخوام شرط خروج از برنامه رو کلید ESC در نظر بگیرم
راه حلش چیه ؟
تو c با دستور زیر تا زمانی که کلیدی زده نشده از برنامه خارج نمیشیمنقل قول:
[PHP]while(!kbhit())[/PHP]
یعنی توپ وسط حرکت کنه ؟نقل قول:
خب این و ران کنید کار میکنه.
البته وجود gtech بی معنی ه!
این برنامه نویسی گرافیکی من و یاده مرد بزرگ انداخت...:27: میشناسیدش ؟ به خاطر همین پرسیدم کدوم یونی هستید.کد:#include <dos.h>
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
int x=320,y=240;
int dx=1,dy=1;
void showball(){
setcolor(12);
circle(x,y,10);
}
void hideball(){
setcolor(0);
circle(x,y,10);
}
void moveball(){
x+=dx;
y+=dy;
if(x>=640 || x<=0)
dx=-dx;
if(y>=420 || y<=0)
dy=-dy;
}
void main(void){
int gd=DETECT,gm;
initgraph(&gd,&gm,"\\bc\\bgi");
for(int i=0;i<5;i++){
setcolor(5);
circle(320,240,200+i);
circle(320,241,200+i);
}
do{
showball();
delay(100);
hideball();
moveball();
}while(!kbhit());
getch();
closegraph();
}
موفق باشید.
برنامه که باز درست کار نمیکنه .. توپ از دایره برزگ میاد بیرون ... من میخوام به لبه اش خورد برگردهنقل قول:
...
منظورتون کدوم مرد بزرگه ؟ مردهای بزرگ زیادن :31:
چیزی که الان به ذهنم میرسه و احتمالا راحت ترین راه حل اینه که:
مرکز توپ شما نباید از خطی که موازی محور x,y ها نسبت به دایره بزرگتر ؛ عبور کنه.
یعنی میایم 4 تا خط در بالا و پایین و چپ و راست دایره بزرگتر ؛ به صورت موازی و مماس باهاش میکشیم ، بعد میگی جناب توپ مرکز شما باید بین این خطوط باشه...
چون میدونم که نفهمیدید ی شکل هم کشیدم تا واضح تر شه انشا, الله
خط سیاه محور شماست. دایره سیاه همون دایره بزرگ و 200 هم شعاع دایره بزرگه. اون عدد ها هم مختصاتی اند که مرکز توپ باید بینشون حرکت کنه
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
از بچگی نقاشیم خوب نبود :31:
و برای دقیق تر کردن حرکت توپ شما بهتره که به جای بررسی و چک کردن مرکز ،شرط if بر روی مرکز+شعاع توپ تنظیم شه. اینطوری در واقع حرکت توپ حساس تر میشه!
برای اینکه حجم کار زیاد نشه و سنگین نشه ، بعد از اینکه این و نوشتید و کامل شد بگید تا، راه حل اینکه چطوری اون 4مثلث های گوشه از بین بره و داخل اونا نشه هم میگم بهتون.
---
منظور از مرد بزرگ هم استاد عادلی نیا هستند.
بچه ها کسی فرق مقدار دهی اولیه تو c90 و c99 و c++ رو میدونه؟
برنامه ای بنویسید که به تعداد دلخواه عدد گرفته و میانگین انرا چاپ کنید
این سر کلاس استاد نوشته ما هم نوشتیم اومدم خونه وارد کردم مشکل داره مشکلش چیه ؟
[PHP]#include<stdio.h>
#include<conio.h>
void main()
{
int i=0;
float sum,num;
while(getch()!="n")
{
scanf("%f",&num);
sum+=num;
i++;
}
printf("%f",sum/i);
}
[/PHP]
در ضمن من اصلا متوجه نشدم این بخش while رو این به چه صورت هست الان زده تا وقتی که کلید n رو فشار ندادی دستور ادامه بده ؟؟
خب تو سی پلاس پلاس هم با getch تا کاراکتی وارد نکنی از برنامه خارج نمیشهنقل قول:
به هر حال جوابم اینا نیست
یک مثال ساده میزنم
برنامه ای میخوایم بنویسیم که از کاربر عدد دریافت کنه و کاربر تا ESC رو نزده برنامه هی عدد درخواست کنه از کاربر
البته من esc رو مثال میزنم چون کد اسکیش یادمه
که 27 هست
اینو تست کنیدنقل قول:
من کامپایلر ندارم
while میگه اگر کاراکتر ورودی n باشه برنامه خاتمه پیدا کنهکد:
#include<stdio.h>
#include<conio.h>
void main()
{
int i=0;
float sum,num;
while(getch()!=110)
{
scanf("%f",&num);
sum+=num;
i++;
}
printf("%f",sum/i);
}
100 کد اسکی کاراکتر n ااست
اینو تست کنیدنقل قول:
من کامپایلر ندارم
while میگه اگر کاراکتر ورودی n باشه برنامه خاتمه پیدا کنهکد:
#include<stdio.h>
#include<conio.h>
void main()
{
int i=0;
float sum,num;
while(getch()!=110)
{
scanf("%f",&num);
sum+=num;
i++;
}
printf("%f",sum/i);
}
100 کد اسکی کاراکتر n ااست