الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال ادفانس شوي

بدأه تشي جيفارا في 25 ديسمبر 2008 · 4 رد · 636 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

شباب كيف حالكم ,,,

اذا بفيت ارسم خط داخل duble-subscripeted array

يعني matrix ....

بحيث انه البرنامج المستخدم هو اللي يدخل قيمة (x1,y1) , (x2,y2)

راح تكون التيجة زي كذا

...................................++...

................................+++.....

.............................+++........

..........................+++...........

.......................+++..............

....................+++.................

.................+++....................

..............+++.......................

......... +++..........................

........+++.............................

.....+++................................

...++...................................

........................................

........................................

........................................

........................................

........................................

........................................

........................................

........................................

بعد المحاولت و brain storming (عصف الذهني) :)

عرفت اني ما اقدر راح اجيبها الا اذا عرفت السلوب (slop)

قانون السلوب y=y+dx/dy

بعد التطبيق طلع معاي زي كذا

#include<iostream>
#include<cmath>
using namespace std;

const int Rows = 20;
const int Columns = 40;
int main ()
{
	int  x1, x2, y1 , y2;
	char dots[Rows][Columns];
	int y,i,j;
	double  tempy;
	double dx = x1 - x2;
	double dy = y1 - y2;
	char simple ='*';
	tempy = y1;

	cout << "Enter the value x1\n";
	cin >> x1;
	cout << "Enter the value y1\n";
	cin >>  y1;
	cout << "Enter the value x2\n";
	cin >> x2;
	cout << "Enter the value y2\n";
	cin >>y2;



	for(i=0;i<Rows;i++)
	{
		for(j=0;j<Columns;j++)
		{
		if (abs(dx) > abs(dy))
		{
			for (int a=x1+1;a<=x2;a++)
			tempy = tempy +dx/dy; // هنا حسبت السلوب
			y = static_cast<int>(tempy+.5);
			dots[Rows][Columns] = simple; // هنا التغير الى السمبل
			cout << dots[j]; 
		}

			dots[j]= '.';
			cout << dots[j];
		}
		cout<< endl;


}							 
 return 0;
}

شوفي ليا يا شباب ومشكورين مقدما

#2

السلام عليكــم ورحمـة الله وبركاتــه

هذا الكود يرسم خط من نقطة الى نقطة

  1. #include<iostream>
  2. #include<cmath>
  3. using namespace std;
  4.  
  5.  
  6. int main ()
  7. {
  8. const int Rows = 20;
  9. const int Columns = 40;
  10. int x1, x2, y1 , y2,t=0;
  11. char ch;
  12. do{
  13. cout<<"Enter (x1,y1)"<<endl;
  14. cin>>ch>>x1>>ch>>y1>>ch;
  15. }while(x1<0 || x1>Rows ||y1<0 ||y1>Columns);
  16. do{
  17. cout<<"Enter (x2,y2)"<<endl;
  18. cin>>ch>>x2>>ch>>y2>>ch;
  19. }while(x2<0 || x2>Rows ||y2<0 ||y2>Columns);
  20.  
  21. for(int i=1;i<=Columns;i++){
  22. for(int j=1;j<=Columns;j++){
  23. if(x1==i && y1==j )
  24. {
  25. cout<<"+";
  26. t=1;
  27. }
  28. else
  29. cout<<".";
  30.  
  31. }
  32. cout<<endl;
  33. if(x1==x2 && y1==y2) t=0;
  34. x1+=t;y1+=t;
  35. }
  36. cin.get(); cin.get();
  37. return 0;
  38. }
  39.  

مثال على استخدامه

Enter (x1,y1)

(7,8)

Enter (x2,y2)

(12,19)

........................................

........................................

........................................

........................................

........................................

........................................

.......+................................

........+...............................

.........+..............................

..........+.............................

...........+............................

............+...........................

.............+..........................

..............+.........................

...............+........................

................+.......................

.................+......................

..................+.....................

...................+....................

....................+...................

.....................+..................

......................+.................

.......................+................

........................+...............

.........................+..............

..........................+.............

...........................+............

............................+...........

.............................+..........

..............................+.........

...............................+........

................................+.......

.................................+......

..................................+.....

...................................+....

....................................+...

.....................................+..

......................................+.

.......................................+

........................................

tvquran_6.gif

#3

مشكور أخوي فهد على المساعدة

وفكرة ممتازة الصراحة ...

بس فية شي ممكن انا عرفت اوصل المعلومة زين لك ...

هي طيب اذا بغيت من البرنامج يعطيني كذا

....++......................................

........++..................................

............++..............................

................++..........................

....................++......................

........................++..................

............................++..............

................................++..........

....................................++......

........................................++..

أو كذا

............................................

............................................

............................................

.......++++++.........................

...................++++++.............

...............................++++++.

............................................

............................................

............................................

أو كذا

...........................................

...........................................

......................+....................

......................+....................

......................+....................

......................+....................

......................+....................

......................+....................

......................+....................

أتمنى انها وصلت الفكرة والظاهر انها لازم tow array وانتا اعلم مني في هذا

مشكور والله وانتظر نصيحتك

#4

اخي العزيز ..

خذها قاعدة في بالك ..

اي برنامج تريد عمله بالسي ++ يتعامل مع وضع رمز على الشاشة بمكان معين .. فانك تحتاج لان تعطي للبرنامج ذلك المكان .. وطريقة اعطاءه المكان تكون حسب ما انت تريد بالتأكيد .. وما تريده انت يكون بشروط .. اي كل رسم تريده ان يظهر له شرط معين خاص به ..

لنعود الى الكود الذي وضعه فهد ..

انظر السطر رقم 23 ..

if(x1==i  && y1==j )

في هذا السطر وضع فهد الشرط الخاص برسم الخط بصور مائله من اليسار الى اليمن ..

وهو نفس الشرط الخاص بالمحور الرئيسي بالمصفوفة المربعه ..

لو اردت ان تغير الخط المرسوم من اليمين الى اليسار .. سكون شكله فوق المحور الثانوي للمصفوفة ..

وشرط الحور الثانوي كالتالي ..

if(i+j==n-1)

حيث n هي عدد عناصر المصوفة ( الاعمدة × الصفوف) ..

فأنا اقترح لك التالي..

لو ان الاشكال التي وضعتها انت ثابتة في البرنامج .. فانصحك بأن تجعلها موجودة ضمن حلقة switch - case الشرطية

وضع لكل شكل اختيار .. ولكل شكل سيكون شرط وقانون كما اسلفنا سابقا ..

اما اذا كان الشكل اختياري .. اجعل المستخدم يدخل قانونه ثم ضمن القانون المدخل ليكون هو الشرط .. وصراحة هي عملية معقدة عليك لا تفكر بها الان ..

بالنسبه للاقتراح ..

وضع لك فهد قانون الخط المائل مع المحور الرئيسي ووضعت لك المحور المائل مع المحمور الثانوي ..

استغل الافكار انت ونفذ ما تريد ... فلا تطلب كل شئ جاهز ..

اتعب ..

لانه صدقني لو اردت ان اضع لك ما تريد لوضعته في ربع ساعة .. ولكن لن تسفيد شيئا ..

اضن ان فهد معي في هذه النقطه ..

تحياتي العطرة .. واي شئ تحتاجه نحن في الخدمه ..

تم تعديل هذه المشاركة بواسطة سنان محمد صالح في 25 ديسمبر 2008 في 14:55

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5

طيب لو كنت ابى اسوي مربع ومثلث كيف راح يكون الكود

مواضيع مشابهة