1.می خواستم بدونم در بورلند 30++ میشه متن رنگی داشت
اگه لطف کنید یک نمونه برام بزارید ممنون میشم
2.یه قطعه کد که هر بار (حتی با خارج کردن و اجرای 2باره)عددی 4 رقمی به ما بده که تکراری نباشه(این اعداد مثل کد دفترچه)
میبخشید که 2سوال هم زمان پرسیدم
1.می خواستم بدونم در بورلند 30++ میشه متن رنگی داشت
اگه لطف کنید یک نمونه برام بزارید ممنون میشم
2.یه قطعه کد که هر بار (حتی با خارج کردن و اجرای 2باره)عددی 4 رقمی به ما بده که تکراری نباشه(این اعداد مثل کد دفترچه)
میبخشید که 2سوال هم زمان پرسیدم
اگر ایرادی هست به تازه واردی من ببخشید
در مورد سوال دومت:
برای چاپ اعداد به صورت رندوم میتونی از تابع rand() در هدر فایل stdlib.h استفاده کنی و برای اینکه اعدادی که میده به صورت چهار رقمی در بیان باید اینطور بنویسی:
1000+rand()%1000
که تابع rand میاد یه عدد تولید میکنه و باقیمونده عدد به 1000 به دست میاد که بین 0تا 999 هستش که وقتی در ادامه با 1000 جمع بشه یه عدد بین 1000 تا 1999 به دست میاد که چهار رقمی هست
ضمنا برای اینکه اعداد کاملا رندوم بشن باید عبارت
srand(time(0))
رو اضافه کنی که از ساعت سیستم برای تولید اعداد استفاده کنه ضمنا برای لستفاده از این دستور time.h رو هم به برنامت اضافه کن
نمی تونید در رابطه با رنگی نوشتن کمکم کنید؟
در مورد رنگی نوشتن اطلاعاتی ندارم
من این قطعه کد رو نوشتم . قاعدتا باید عددی 11 رقمی رو در خروجی چاپ کنه اما عدد 10 رقمی هست . چرا؟
#include<iostream.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
void main(){
l:long int p;
const long int o=10000000000;
srand(time(0));
p=o+rand()%o;
cout<<p<<endl;
char x;
cin>>x;
if(x=='y')
goto l;
}
به خاطر اینه که عددی که به دست میاد در گستره int نمی گنجه اگه برنامه رو اینجوری هم امتحان کنی می بینی که عدد درستی رو چاپ نمیکنه
#include<iostream.h>
void main()
{
long int p;
const long int o=10000000000;
cout<<o<<endl;
}
گستره int و long int بین -2147483647 تا 2147483647 است
ممنون
خوب الن من باید عدد رو از چه نوعی تعریف کنم که یک عدد 11 رقمی به من بده؟
فقط با double میتونی همچین کستره ای رو پوشش بدی که اگه این کار رو بکونی از این خط error میگیره:
p=o+rand()%o
چون اگر o رو هم از نوع double تعریف کنی دیگه باقیمونده ای نداره
این کاری که شما می خوای بکنی فکر نکنم اصلا درست باشه چون ماکزیمم عددی که تابع rand تولید میکنه 32767 است که اگر با قیمونده اون رو به o به دست بیاریهمون خود مفدار rand میشه که اگه برنامه رو هم به این صورت بنویسی فقط عددی 11 رقمی بین 10 میلیارد تا 10000032767 بهت میده
#include<iostream.h>
#include<conio.h>
#include<time.h>
#include<iomanip.h>
#include<stdlib.h>
void main(){
l:
double p=10000000000;
long int o=100000;
srand(time(0));
p=p+rand()%o;
cout<<setiosflags(ios::fixed)<<setprecision(0)<<p< <endl;
char x;
cin>>x;
if(x=='y')
goto l;
}
برای ایجاد اعداد مختلف از تابع Randomize() استفاده کن و برای چاپ رنگی از cprintf()
با این دستوری که نوشتید کار کردم اما بازم 10 رقمی شد(اقای عماد 67)
برای رنگی نوشتن
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
int gdriver = EGA, gmode = EGAHI, errorcode;
int color, maxcolor, x, y;
char msg[80];
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
maxcolor = getmaxcolor();
settextjustify(CENTER_TEXT, CENTER_TEXT);
x = getmaxx() / 2;
y = getmaxy() / 2;
for (color=1; color<=maxcolor; color++)
{
cleardevice();
setcolor(color);
sprintf(msg, "Color: %d", color);
outtextxy(x, y, msg);
getch();
}
closegraph();
return 0;
}
اگه جاییش را نفهمیدی تا توضیح بدم
کار اصلی را تابع setcolor انجام میده
قبلش هم یک سری کارای مقدماتی باید انجم بدی مثل initgraph و بقیه که در کد مشخص شده
برای هر کار گرافیکی بایستی این اعمال را انجام بدی
مهدی کیانی
شما همون کدی رو که نوشتم کمپایل کردی؟با این دستوری که نوشتید کار کردم اما بازم 10 رقمی شد(اقای عماد 67)
چون من مجددا چک کردم و 11 رقمی میده
اینم کدش:
#include<iostream.h>
#include<conio.h>
#include<time.h>
#include<iomanip.h>
#include<stdlib.h>
void main(){
l:
double p=10000000000;
long int o=100000;
srand(time(0));
p=p+rand()%o;
cout<<setiosflags(ios::fixed)<<setprecision(0)<<p< <endl;
char x;
cin>>x;
if(x=='y')
goto l;
}
به اتفاقا الانم پیست کردم 10 رقمی داد
(من از توربو سی++ استفاده می کنم)
مشکل باید از کامپایلرت باشه به احتمال زیاد چون من هم با vC++ وهم با borland C++ چک کردم و هر دو تاشون 11 زقمی دادندبه اتفاقا الانم پیست کردم 10 رقمی داد
(من از توربو سی++ استفاده می کنم)
من برنامتون رو وقتی compile میکنم یه error میده که میگه BGI geraphics not suport under windows می میخواستم بدونم چی کار باید بکنم؟اگه جاییش را نفهمیدی تا توضیح بدم
کار اصلی را تابع setcolor انجام میده
قبلش هم یک سری کارای مقدماتی باید انجم بدی مثل initgraph و بقیه که در کد مشخص شده
برای هر کار گرافیکی بایستی این اعمال را انجام بدی
شما باید فایل EGAVGA.bgi را کنار برنامه هایی که از گرافیک استفاده می کنند بذاری
یه نمونه برنامه خیلی ساده برات میذارم
تا فایل فوق نباشه برنامه های گرافکی کار نمی کنند
فایل فوق در واقع برای detect کردن و تغییر صفحه نمایش از mode متنی به mode گرافیکی به کار میره
برنامه زیر فقط یک در است که باز و بسته میشهوکار خاصی نمیکنه
فقط برای اینه که متوجه منظورم بشی
اگه خواستی کدش را بهت بدم خدت کاملش کن
دقت کن که اگه اون فایل کنار فایل exe نباشه باز هم همون error را میده
امییدوارم کمکت کنه
مهدی کیانی
خیلی ممنون از جوابتون
ولی می خواستم بدونم چی کار باید کرد که موقع کامپایل این ارور BGI رو نده چون من فایل EGAVGA.bgi رو هم در کنار فایل cpp قرار دادم ولی باز هم ارور میده و اصلا نمیشه فایل exe رو ساخت
کارت گرافیکت نصب ؟
file BGi را برای کامپایل کنار فایل exe خود TC بذار
برای اجرا باید پیش فایل exe باشه
کارت گرافیکم نصب هستکارت گرافیکت نصب ؟
file BGi را برای کامپایل کنار فایل exe خود TC بذار
برای اجرا باید پیش فایل exe باشه
من مشکلم اینه که وقتی کامپایل میکنم ارور BGI میده و اصلا فایل exe ساخته نمیشه که من بخوام برا اجرا فایل BGI رو کنار اون بزارم
دقیقا من هم این مشکل را دارم میگن برای کار گرافیکی باید از ++cتحت داس استفاده کنید
اگه بگی عدد یازده رقمی را برای چی می خوای و چطور مقداردهی میشه می تونم کمکت کنم
این کارم کردم ولی بازم ارور میگیره که BGI geraphic not suported under windowsدر برنامه آقای کیانی مقدار gdrive=DETECT,gmode=0 بذار درست میشه
من گفتم فایل bgi را کنر فابل exe خود TC بذارید
این کار را کردید و باز خطا داد؟
البته بعضی از کامپالر های زبان های C , C++ با گرافیک مشکل دارن
من یک کامپایلر خوب دارم اگه خواستید میتونم براتون آپلود کنم
من خودم ازش استفاده می کنم و مشکلی ندارم
موفق باشید
مهدی کیانی
آخه مشکل من اینه که اصلا فایل exe ساخته نمیشه که فایل bji رو بخوام بذارم کنارش وقتی کامپایلر ارور میده خوب اصلا فایل exe ساخته نمیشه
ببخشید دوباره مزاحمتون میشم من با borland کار میکنم و فایل bgi رو کنار فایلی که خود borland باهاش اجرا میشه گذاشتم یعنی تو فولدر Bin ولی نشد و بازم همون ارور را دادقربون قدت برم
منظور من از فایل TC یعنی فایل BGI را بذار کنار فایل exe خود TC.EXE یعنی فایلی که باهاش خود کامپایلر سی را اجرا می کنی
دیگه واضح تر از این نمیتونم بگم
اگه خیلی سنگین نیست upload کنید ممنون میشمراستش من خودم با TC کار میکنم و هیچ مشکلی هم ندارم
بعضی از دوستام هم که با borland کار می کنند مشکل شما را دارند
پیشنهاد می کنم از یه TC خوب استفاده کنی و خودتو خلاص کنی
خواستی من یکی خوبشو دارم
برات آپ کنم
موفق باشید
مهدی کیانی
راستش حدود 4 meg هستش
یه بار می خواستم آپ کنم ولی نشد
یه هاست دارم روی اون آپ می کنم و لینکش را میذارم
موفق باشید
مهدی کیانی
http://www.esnips.com/doc/4a9eec01-2...-Compiler-Full
ببخشید که یکمی دیر شد
ترم اخره و هزارو یک دربدری
موفق باشید
مهدی کیانی
امید وارم با این کامپایلر مشکلمون حل بشه
سلام
این کارا چیه دیگه واسه رنگی کردن که نباید بری سراغ محیط گرافیکی که تو همون محیط ساده متنی هم میشه!
#include <conio.h>
int main(void)
{
int i, j;
clrscr();
for (i=0; i<9; i++)
{
for (j=0; j<80; j++)
cprintf("C");
cprintf("\r\n");
textcolor(i+1);
textbackground(i);
}
return 0;
}
این کارا چیه دیگه واسه رنگی کردن که نباید بری سراغ محیط گرافیکی که تو همون محیط ساده متنی هم میشه
اون چیزایی که من گفتم کلا برای کار کردن با محیط گرافیکی در C++ بود
اگه همه پستهای این topic را میخوندی میدیدی که به دستور cprintf هم قبلا اشاره شده بود
بهتر نیست قبل از پست دادن به بقیه پست ها هم یه نگاهی بندازی تا مطلب تکراری ندی؟
این تاپیک 4 صفحه پست داره !!!!!!!
توی صفحه 2 گذاشته شده
راستش من تمام صفحات رو نگاه کرده بودم اما ندیده بودم از cprintf چیزی نوشته شده باشه. دوباره که مرور کردم دیدم که یکی از دوستان اشاره ای کرده به هر حال معذرت!
البته تا اونجا که من میدونم آقا آرمان برای پروژه بانک این سوال رو پرسید بنابراین بهتره از همون حالت متنی استفاده کنه و خودش رو درگیر مد گرافیک نکنه.
این مشکلی هم که پیش اومده بعید میدونم مربوط به استفاده از BC باشه چون من بارها از محیط گرافیکی اون استفاده کردم فقط 2 تا نکته هست که حتما دوستان میدونند یکی اینکه
تو منو options تحت گزینه linker\libraries باید graphics library تیک بخوره و دوم اینکه تو تابع initgraph پارامتر سوم مسیر فایل bgi.* که معمولا تو دایرکتوری bgi قرار داره به اون به صورت کامل داده بشه.
موفق باشید.