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

لغز حلو .... من يقدر عليه ؟؟

بدأه azzoz2 في 17 يوليو 2008 · 15 رد · 1,524 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم ....

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

اللغز يا شباب منقول من أحد المنتديات لكن أضفت عليه بحيث يكون أصعب

اللغز هو:

برنامج يطلب من المستخدم ادخال عدد الصفوف والأعمده ويقوم برسم شكل مستطيل والعلامه المستخدمه في الرسم النجمه (*)

مثال : عدد الصفوف 3 والأعمده 5

راح يكون الرسم بشكل هذا

*****

*****

*****

مع مراعاة الآتي في كتابة الكود:

عدم استخدام loops

يعني من دون ما نستخدم for او while او do ..while

أيضا ممنوع استخدام goto

وممنوع استخدام recursion

اللغز سهل لكن يبغى تفكير شوي .... والله يقويكم

#2

السلام عليكم:

هذا حل:

  1.  
  2. #include <iostream>
  3. using namespace std;
  4. void drawline(int n)
  5. { cout<<"*"; if(n>1) drawline(n=n-1);}
  6. void draw(int n,int m ){drawline(n);if(m>1) {cout<<endl;draw(n,m=m-1);}}
  7. int main(int argc, char *argv[])
  8. {draw(7,2); return 0;}
  9.  
  10.  

هل هو مطابق للشروط؟

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 17 يوليو 2008 في 18:13

tvquran_6.gif

#3

للأسف أخوي فهد لم يطابق الشروط ....

لأنك استخدمت recursion هنا:

drawline(n=n-1);

أيضا:

draw(n,m=m-1);
#4

طيب لي محاوله أخرى إن شاء الله.

tvquran_6.gif

#5

السلام عليكم

هذه تجربه

وأعرف انها مخالفه لشرط

recursion


using namespace std;
void draw(int m,int n)
{
char c;
c=cout.fill('*');
cout.width(n);
cout<<'*';
cout<<endl;
if(m>1) draw(m-1,n);
}
int main()
{
int n,m;

cin>>n>>m;
draw(n,m);
return 0;
}
#include <iostream>

ولكنها محاوله :wacko:

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#6

هل الفكرة فى استخدام Inline ASM ؟ أظن انة يطابق الشروط :)

#7

مممم بص أخي كبداية تذكرت كود يقوم بتكرار حرف معين لعدد معين من المرات و هو :

string aaa(n,char);

إجعل الحرف هو النجمة أما العدد فهو عدد الأعمدة يعني

string aaa(5,'*');
cout  << aaa;

بس كيف نكررها لعدد الصفوف المطلوبة اصبر علينا شوية

#8
#include "stdafx.h"
#include <iostream.h>
#include <memory.h>

int cols;

class CTest
{
public:
	CTest()
	{
		char *pBuff;

		pBuff = new char[cols+1];
		memset(pBuff, '*', cols);
		pBuff[cols]=0;
		cout << pBuff << endl;
		delete[] pBuff;
	}
};

int main(int argc, char* argv[])
{
	int rows;

	cout << endl;
	cout << "Enter rows: "; cin >> rows;
	cin.ignore();
	cout << "Enter cols: "; cin >> cols;

	CTest *t = new CTest[rows];
	delete[] t;

	cin >> rows;

	return 0;
}

تم تعديل هذه المشاركة بواسطة نورا مجدى في 17 يوليو 2008 في 19:56

#9

أحسنت أخي نورا مجدي .... هذا هو الحل ...

لكن أعتقد إن دالة memset تستعمل for .... أليس كذلك ؟؟

إذا كانت الإجابة بنعم .... فاستعمالك لهذه الدالة مخالف للشروط ...

#10

أذا كان استخدام الدوال غير cout مسموح فهناك حلول وليس حل.

tvquran_6.gif

#11

بدون memset :)

#include "stdafx.h"
#include <iostream.h>

int rows, cols;

class CPrint
{
public:
	CPrint()
	{
		cout << "*";
	}
};

class CTest
{
public:
	CTest()
	{
		CPrint	*p = new CPrint[cols];
		delete[] p;
		cout << endl;
	}
};

int main(int argc, char* argv[])
{
	cout << endl;
	cout << "Enter rows: "; cin >> rows;
	cin.ignore();
	cout << "Enter cols: "; cin >> cols;

	CTest *t = new CTest[rows];
	delete[] t;

	cin >> rows;

	return 0;
}

تم تعديل هذه المشاركة بواسطة نورا مجدى في 17 يوليو 2008 في 20:44

#12

بعد إذن الأخت نورا

سأستعير بعض فكرتك الرائعه فى تحسين برنامجى


using namespace std;
int c;
class abc
{
public:
abc()
{
char h;
h=cout.fill('*');
cout.width(c);
cout<<'*';
cout<<endl;
}
};
int main()
{
int r;
abc *a;
cout<<"Enter rows : ";
cin>>r;
cout<<"Ener columns : ";
cin>>c;
a=new abc[r];
delete[]a;
return 0;
}
#include <iostream>

بارك الله فيكى دنيا وأخرى

تم تعديل هذه المشاركة بواسطة amin_mu123 في 17 يوليو 2008 في 21:27

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#13
فهدالشلوي كتب:
أذا كان استخدام الدوال غير cout مسموح فهناك حلول وليس حل.

cout مش دالة اخي فهد..هي كائن Object

:happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#14

أحسنت أخت نورا .... حلك صحيح 100%

الله ينفع بك الإسلام والمسلمين ....

#15
اقتباس
cout مش دالة اخي فهد..هي كائن Object

صحيح كلامك واصلا معروف لكن من السرعه فقط.

لاني كنت افكر في الحل ومشغول فيه.

اقتباس
الله ينفع بك الإسلام والمسلمين ....

آمين ...

نترقب لغز آخر من أجل مزيد من الحماس.

tvquran_6.gif

#16
فهدالشلوي كتب:
صحيح كلامك واصلا معروف لكن من السرعه فقط.

لاني كنت افكر في الحل ومشغول فيه.

صحيح لأني ملاحظة من فترة بأن كتير هون يفكروا بأن cout .دالة وهي مش هيك..فكنت خايفة تُشاع الفكرة مش اكتر

,.,.,.,.,.

وبالمناسبة اخوتي الكرام(للمعلومة) cin كمان كائن object الدوال هم >> و << لكل وحدة فيهم..معمولين بطريقة إعادة التعريف Operators Overloading

,.,.,.,.,,.

Have a nice time

:happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

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