PDA

View Full Version : سوال: حرکت مورب متن



sereshk
چهارشنبه 31 خرداد 1391, 08:20 صبح
سلام
می خوام یه برنامه بنویسم که متن به صورت مورب در صفحه حرکت کنه
تقریبا مثل این

#include<iostream.h>
#include<conio.h>
#include<dos.h>
void main(){
clrscr();
for (int a=1;a<49;a++)
{
gotoxy(a,a);
cout<<"barnamenevis"<<endl;
delay(500);
}
getch();
}
واسه پیدا کردن اندازه صفحه و پاک کردن متن قبلی به مشکل خوردم
اندازه صفحه رو نمی دونم چجوری بدست بیارم
واسه پاک کردم از clrscr که استفاده می کنم جواب نمی ده

#include<iostream.h>
#include<conio.h>
#include<dos.h>
void main(){
clrscr();
for (int a=1;a<49;a++)
{
gotoxy(a,a);
clrscr();
cout<<"barnamenevis"<<endl;
delay(500);
}
getch();
}
(با Borland دارم برنامه می نویسم)
ممنون می شم راهنماییم کنید

shahmohammadi
چهارشنبه 31 خرداد 1391, 19:39 عصر
سلام.
اشكال برنامه تون اينجاست كه clrscr صفحه رو پاك مي‌كنه و بعد به نقطه‌ي 1و1 بر مي‌گرده و اين تاثير gotoxy رو از بين مي بره. برنامه رو به اين صورت اصلاح كنيد:
#include<iostream.h>
#include<conio.h>
#include<dos.h>

int main(){
clrscr();
for (int a=1;a<49;a++)
{
clrscr();
gotoxy(a,a);

cout<<"barnamenevis";
delay(500);
}
getch();
return 0;
}

sereshk
چهارشنبه 31 خرداد 1391, 22:13 عصر
دوست عزیز (shahmohammadi (http://barnamenevis.org/member.php?191221-shahmohammadi)) ممنون بابت راهنماییتون

تنها مشکلی که باقی می مونه اینه که چجوری ابعاد صفحه رو بدست بیارم

nokhbeh123
پنج شنبه 01 تیر 1391, 00:26 صبح
سلام
این اولین پستمه!:لبخند:
ابعاد صفحه رو می تونی با دو تابع زیر پیدا کنی

getmaxx()
getmaxy()
این دو تابع توی سرآیند graphics.h هستند

sereshk
پنج شنبه 01 تیر 1391, 10:10 صبح
دوست عزیز خیلی ممنون

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
int main(){
clrscr();
int x,y;
x=getmaxx();
y=getmaxy();
cout<<"x :"<<x<<endl;
cout<<"y :"<<y;
getch();
return 0;
}
برنامه موقع کامپایل موشکلی نداره و خطایی پیدا نمی کنه ولی موقع اجرا پیغام خطا می ده

undefined symbol_getmaxx in module
undefined symbol_getmaxy in module

بهروز عباسی
پنج شنبه 01 تیر 1391, 18:00 عصر
برنامه موقع کامپایل موشکلی نداره و خطایی پیدا نمی کنه ولی موقع اجرا پیغام خطا می ده
undefined symbol_getmaxx in module
undefined symbol_getmaxy in module




دوست عزیز از چه کامپایلری استفاده می کنی؟

بهروز عباسی
پنج شنبه 01 تیر 1391, 18:21 عصر
ین دو تابع توی سرآیند graphics.h هستند
شرمنده اینو ندیده بودم دوست عزیز توابع این کتابخونه تقریباً به دایناسورها پیوستن اگر هم نه توی ویندوز به خوبی کار نمی کنن و باید برنامه رو تحت محیط DOS کامپایل کنی تا در ویندوز از فایل اجرای اون بتونی استفاده کنی
و در کامپایلر های جدید بیشتر این توابع ساپورت نمیشن

اگه برنامت تحت کنسول هستش ابعاد صفحه نمایش در این محیط 25 در 75 هستش(یعنی بود درست یادم نیست)
موفق باشید.

بهروز عباسی
پنج شنبه 01 تیر 1391, 18:59 عصر
فکر کنم این برنامه اندازه صفحه رو برگردونه
اگر هم کار نکرد ببخشید()


//coded by : Behrooz abbasi
// compiled in MSVC++‎ 6

#include <iostream>
#include <windows.h>

using namespace std;

int main(){

CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
SMALL_RECT srctWindow;

if (!GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTP UT_HANDLE),&csbiInfo)){

cout << "Error: " << GetLastError() << endl;

}

cout << "Standard Information for Console Buffer" << endl << endl;
cout << "Size: " << csbiInfo.dwSize.X << "X by " << csbiInfo.dwSize.Y << " Y." << endl;

system("Pause");
return 0;

};

sereshk
پنج شنبه 01 تیر 1391, 22:52 عصر
دوست عزیز از چه کامپایلری استفاده می کنی؟
borland 3.1

متاسفانه اون برنامه که دادید جواب نداد
ممنون از راهنمایتون

بهروز عباسی
جمعه 02 تیر 1391, 22:02 عصر
متاسفانه اون برنامه که دادید جواب ندادمن اون برناه رو در MSVC++‎‎6 نوشتم


من این برنامه رو توی دانشگاه برپه عنوان متن متحرک با TC 3 نوشتم شاید به کارت بیاد
#include<iostream.h>
#include<conio.h>

int main()
{
for(int x=0;x<=20;x++) {
for(int y=0;y<=70;y+=5)
{
cout<<"sAm";
for(long int k=1;k<=100000000;k=k+6);/*delay*/
clrscr();
gotoxy(y,x);
}
}
return 0;
}