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

افتتاح أكبر تجمع لعشاق لغتي السي و السي++ على منتديات الفريق العربي للبرمجة.

مغلقرائج
بدأه Snack3r في 25 يونيو 2010 · 322 رد · 21,470 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#251

أنا بصراحة لا أخشى من الفشل

لكن أخشى من شيء آخر ، أن أرسب في امتحانات الفاينال إذا قمت بحل اللغز :lol:

آمل أجد وقتاً لذلك .

اقتباس
* تعنى صفر او اكثر من اى شئ (صفر تعنى لا شئ)

Is  ""  Like  "*"  =  False

لماذا false إذن ؟

اقتباس

يسمح بإستخدام العلامات |!- داخل النص كحروف عاديه و ايضا القوسين [] و يتم تمييز إذا ما كان القوسين يستخدموا كحروف عاديه او اقواس لتحديد مدى يتم من السياق

أرجو التوضيح ..

هل هناك طريقة معينة للتمييز ، هل قصدك أن يسبقها رمز معين لنعلم أنها حرف عادي ؟

هل ! لها تأثير داخل الأقواس [ ] في الوضع الطبيعي ؟

* * * * * * * * *

كيف يتم استخدام المجموعة الأولى والثانية معاً عند الإدخال ؟

أرجو المزيد من الأمثلة ..

تم تعديل هذه المشاركة بواسطة namespace في 30 يوليو 2010 في 10:49

البرمجة = الرياضيات

#252
اقتباس
لماذا false إذن ؟

هذا السطر من المفترض ان يكون True، معذره خطأ كتابى تم إصلاحه.

اقتباس
يسمح بإستخدام العلامات |!- داخل النص كحروف عاديه و ايضا القوسين [] و يتم تمييز إذا ما كان القوسين يستخدموا كحروف عاديه او اقواس لتحديد مدى يتم من السياق

المفترض ان العلامات |!- يتم استخدامها من داخل الأقواس فقط لذا قد يقوم البعض بحصر استخدامها على وجودها داخل الأقواس و لكن بالنسبه لمن سيبرمج قد يواجهه مشكلة وجود هذه العلامات داخل سياق الـ pattern حيث ان لها معنى مميز جدا بالنسبه للكود الخاص به.

بالنسبه للأقواس سأعطيك مثال بالـ Cpp ليوضح وجهة النظر، انظر الكود التالى:

int x = 10;

int r = *(int*)x * 3;

كما ترى علامة * تم استخدامها فى اكثر من موضع و المترجم يقوم بمعرفة معناهم بناءا على السياق فتارة تجد أن * تعنى dereference و تارة اخرى تجدها تحويل لمؤشر و مره اخرى كعلامة ضرب.

بالنسبه للأقواس فأنت توجد لديك معايير معينه يتم استخدام الأقواس بها فإن وجدت قوس لا يطابق هذه المعايير فإما هو يستخدم كحرف عادى او هو خطأ لعدم وجوب استخدامه فى هذا المكان.

اقتباس
هل ! لها تأثير داخل الأقواس [ ] في الوضع الطبيعي ؟

بالتأكيد فعندما توجد كأول حرف داخل القوسين [] يتم اعتبار نفي للشرط الموجود داخل الأقواس فندلا عندما تكت مثل [R-Z!] فهى تعني اى حرف ماعدا الموجود فى المدى من R إلى Z و بالطبع إن وجد اكثر من مدى داخل الأقواس كالتالى: [A-M|q-z!] فتعنى المطابقه مع اى حرف ليس فى المدى A إلى M أو فى المدى q إلى z، لاحظ ايضا ان حالة الحروف مهمه فالحرف R ليس الحرف r.

اقتباس
كيف يتم استخدام المجموعة الأولى والثانية معاً عند الإدخال ؟

لمطابقة البريد الإلكترونى لموقع yahoo استخدم التالى:

?*@[Y|y]ahoo.com

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#253

لدي استفسار أخي محمد

هل أنا مجبر باستخدام ما وضع سواء الدوال التي وضعتها ( strings.h ) أو الدوال التي طلبتها أم بإمكاني حل اللغز كما أراه مناسب :)

#254

بالنسبه لدوال النصوص الموجوده بـ strings.h فلك مطلق الحريه فى عدم استخدامها، أما الدوال الخاصه بالـ pattern.h فهى إجباريه.

اصنع الدوال التى تريدها كيفما تشاء و لكن فى النهايه الـ interface التى سيتم استخدامها عند التجربه هى الموجوده داخل الملف pattern.h و هى ما انت مطالب بجعلها تعمل.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 31 يوليو 2010 في 01:32

مدونتي: C++ Tips and Tricks

#255

سأنضم إليكم إبتداء من غد إن شاء الله تعالى...

#256
اقتباس
سأنضم إليكم إبتداء من غد إن شاء الله تعالى...

لم أبدأ بعد بالبرمجة

أنا ويّاك والزمن طويل :lol:

البرمجة = الرياضيات

#257

السلام عليكم

قد يشكوا البعض من وقوف شعره في هذا الإختبار :P و أنا أنصحكم بحلاقة الشعر لكي لا يقف مرة أخرى :lol:

أتمنى لكم التوفيق :)

#258

أريد أن استفسر أخي الكريم ما هو آخر موعد هل هو يوم الثلاثاء أم الأربعاء

أرجوا أن يسعفني الوقت لحل هذا اللغز <<<<<<<< انشغلت هذه الأيام ولا أعلم هل سأحل هذا اللغز أم لأ :sad:

#259

سأعلن الإجابات يوم الأربعاء (إذا كان هناك ايهم :sleep: )

مدونتي: C++ Tips and Tricks

#260

غدا سيتم عرض الإجابات - التى هى لا شئ حتى الأن :mad: - بعد العصر إن شاء الله.

لا اعتقد ان اللغز على هذه الدرجه من الصعوبه يا شباب.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#261

حقيقة أخي محمد نريد أشياء خفيفه,, ولكن لغزك أظن أنه ليس من هذه العينه (حقيقة لم أبدأ في الحل حتي,,, مشغول هاليومين)

#262

السلام عليكم

اقتباس
غدا سيتم عرض الإجابات - التى هى لا شئ حتى الأن :mad: - بعد العصر إن شاء الله.

و الله كنت متوقع هالنتيجة ! :sleep:

اللغز صعب (سواء قالوا أم لا) و لا تتعجب إن لم تكن هناك محاولات :blush:

اقتباس
لا اعتقد ان اللغز على هذه الدرجه من الصعوبه يا شباب.

أعتقد أن المسابقة خرجت عن نطاقها المشروع قليلا .. فالأخ أحمد المتألق وضع المسابقة لإفادة المبتدئين و إنعاش أفكار المحترفين .. لاحظ أن الإقبال على اللغز الأول كان كثيفا و لكن بعد ذلك بدأ الإقبال في التناقص .. إلى أن اختفى الآن !!!

أرجوا منكم أن تضعوا ألغاز تكون معقولة و بإمكان الجميع المحاولة و المشاركة أيضا أو أن تضعوا لغزين الأول يكون جميل و الثاني يتولى مهمة توقيف الشعر (استر يا رب) :lol:

أما أن تكون جميع الألغاز من العيار الثقيل فهذا أمر ليس بصالح المسابقة :blink: و بإمكانك التجربة :wink:

#263

حسنا، حيث انه لم يقم احد بالحل يمكن اعتبار هذا اللغز لاغي.

يعود التحكم الأن للأخ namespace.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#264

السلام عليكم

في البداية عذراً على التأخير بسبب الانشغال بالامتحانات

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

بعد طول عناء ، وبعد وقوف للشعر إلى زوايا تقدر أحياناً بـ 90 درجة

أنتم الآن على وشك التعرف على حل اللغز السادس

( الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله )

سأعرض عليكم الحل مبدئياً - وأطلب من الأستاذ محمد علاء الدين الحكم على الحل

إلى أن أعود لاحقاً بإذن الله تعالى كاتباً الحل من جديد لكن commented ومع الشرح أيضاً

أترككم مع الحل :

// Programmed By : Hamzeh Soboh
// Computer Engineering
// Yarmouk University

// All Rights Reserved 4-8-2010

// ****** Main.cpp ****** //

#include "Same_Sum.h"

int sp;
int st;

int symbols;
int multi;

int matches;

char pattern[50];
char txt[500];

void count(char p[]);

bool charlist(int start, int end, int index);

bool search(int start, int end, int a[]);

int main ()
{
	cout << "Please enter a pattern to search for : ";
	cin.getline(pattern, 50);

	cout << "\nPlease enter the text to search in :\n\n";
	cin.getline(txt, 500);

	sp = strlen(pattern);
	st = strlen(txt);

	matches = 0;

	count(pattern);

	int a[] = {1};

	if(multi == 0)
		for(int i=0; i<=st-symbols; i++)
			search(i, symbols+i, a); 

	else

	for(int i=0; i<=st-symbols; i++)
	{
		if(symbols == 0 && i == 0)
			continue;

		Same_Sum s(multi, i);

		while(!s.stop)
		{
			for(int k=0; k<=st-symbols-i; k++)
			{
				search(k, k+symbols+i, s.num); 
			}

			s.next();
		}
	}

	if(matches > 0)
		cout<<"\n\n"<<matches<<" matches found\n\n\n";
	else
		cout<<"\n\nNo matches found\n\n\n";

	return 0;
}

void count(char p[])
{
	int g;

	symbols = 0;
	multi = 0;

	for(int i=0; i<sp;  i++)
	{
		if(p != '%' && p != '$' && p != '*')
		{
			if(p == '[')
			{
				g = i;

				while(p[g] != ']' && g < sp)
					g++;

				if(g < sp)
				{
					if(g == i + 1) symbols--;

					i = g;
				}
			}

			symbols++;
		}
		else multi++;
	}
}

bool charlist(int start, int end, int index)
{
	bool invert = (pattern[start] == '!');

	char* p = new char[end - start + 1];

	for(int k=start; k<end; k++)
		p[k-start] = pattern[k];

	p[k - start] = NULL;

	char *s;

	s = strtok(p, "|");

	int a1, a2;

	while(s != NULL)
	{
		a1 = 0;
		a2 = 2;

		if(s[0] == '!')
		{
			a1++;
			a2++;
		}

		if(s[a1+1] == '-')
		{
			if(txt[index] >= s[a1] && txt[index] <= s[a2])
				return true^invert;
		}

		else
		{
			for(int i=a1; i<strlen(s); i++)
				if(txt[index] == s)
					return true^invert;
		}

		s = strtok(NULL, "|");
	}

	return false^invert;
}

bool search(int start, int end, int a[])
{
	int k=0;
	int g;

	int pointer = start;

	for(int h=0; h<sp; h++)
	{
		if(pattern[h] != '%' && pattern[h] != '$' && pattern[h] != '*')
		{
			if(pattern[h] == '[')
			{
				g = h;

				while(pattern[g] != ']' && g < sp)
					g++;

				if(g < sp)
				{
					if(!charlist(h+1, g, pointer) && g-h>1)
						return false;

					if(g == h + 1) pointer--;

					h = g;
				}

				else if(txt[pointer] != '[')
					return false;
			}

			else if(pattern[h] == '#')
			{
				if(!(txt[pointer]>='0' && txt[pointer]<='9'))
					return false;
			}

			else if(pattern[h] == '?')
			{
				if(!((txt[pointer]>='A' && txt[pointer]<='Z') ||
					(txt[pointer]>='a' && txt[pointer]<='z')))

					return false;
			}

			else if(pattern[h] != txt[pointer])
					return false;

			pointer++;
		}

		else
		{
			int t;

			if(pattern[h] == '%')
				for(t=pointer; t<pointer+a[k]; t++)
					if(!(txt[t]>='0' && txt[t]<='9'))
						return false;

			if(pattern[h] == '$')
				for(t=pointer; t<pointer+a[k]; t++)
					if(!((txt[t]>='A' && txt[t]<='Z') || (txt[t]>='a' && txt[t]<='z')))
						return false;

			pointer += a[k++];
		}
	}

	matches++;

	if(matches == 1)
		cout<<"\n\nIndex\tPattern\n";

	cout<<'\n'<<start<<'\t';

	for(int m=start; m<end; m++)
		cout<<txt[m];

	return true;
}

السر هنا :

// Programmed By : Hamzeh Soboh
// Computer Engineering
// Yarmouk University

// All Rights Reserved 4-8-2010

// ****** Same_Sum.h ****** //

#include<iostream>
using namespace std;

class Same_Sum
{
public:

	int *num;
	int max;

	short size;

	bool stop;

	Same_Sum(int s=0, int m=0)
	{
		num = new int;

		size = s;
		max = m;

		reset();
	}

	void reset()
	{
		for(int i=0; i<size-1; i++)
			num = 0;

		num[size-1] = max;

		stop = false;
	}

	void operator++()
	{
		num[size-1]++;

		for(int i=size-1; i>0; i--)
		{
			if(num > max)
			{
				num = 0;

				num[i-1]++;
			}
		}

		if(num[0] > max)
		{
			stop = true;
			num[0] = 0;
		}
	}

	int sum()
	{
		int s=0;

		for(int i=0; i<size; i++)
			s += num;

		return s;
	}

	void next()
	{
		do
		{
			++(*this);
		}
		while(sum() != max);
	}
};

في أمان الله

Search.rar

تم تعديل هذه المشاركة بواسطة namespace في 5 أغسطس 2010 في 12:18

2

البرمجة = الرياضيات

#265

صدقني يا حمزه, ستفوذ بالمسابقة, فلم يحلها غيرك :P

#266

شكرا جزيلا للأخ حمزه لمحاوله حل اللغز، مع العلم انه لم يلتزم بالمطلوب و لكنه حاول على الأقل:

الحل الخاص بك يحتوى على بعض الأخطأ اللغويه و هى:

اعادة تعريف المعامل >> داخل الفئه Same_Sum خاطيء حيث بدلا من التعريف التالى:

friend ostream operator<<(ostream out, Same_Sum s)

لابد ان يكون كالتالى:

friend ostream& operator<<(ostream& out, Same_Sum s)

ايضا يوجد خطأ داخل الداله charlist بالسطر 121 بالكود التالى:

p[k-start] = NULL;

حيث ان k معرف فقط داخل اللوب الذى يسبق هذا السطر لذا فدد اعتقدت انه يقصد جعل الحرف الموجود بالموقع start يساوى null حتى لا يقوم بعدّه مره اخرى و بالتالى يصبح هذا الكود كالتالى:

p[start] = NULL;

بعد التجربه حصلت على التالى:

Please enter a pattern to search for : #%.#%

Please enter the text to search in :

i like the number 3.14159265 which name is PI.


Index   Pattern

18      3.1
18      3.14
18      3.141
18      3.1415
18      3.14159
18      3.141592
18      3.1415926
18      3.14159265

8 matches found


Press any key to continue . . .

المفترض ان النتيجه التى تظهر هى اخر واحده فقط و ليس كل الإحتمالات، و لكن مجهود ممتاز اخي حمزه و انا اهنئك عليه.

السؤال الذى يطرح نفسه كيف يمكن حل مثل هذا اللغز؟

حل هذا اللغز يتم حله بإستخدام ما يسمى Deterministic Finite-State Automation او اختصارا DFA، شرح هذا الأمر يطول و إن كنت مهتم بحل اسهل كثيرا (كما ذكرت من قبل) يمكنك مراجعة الكتاب Compiler Design In C (موجود بمكتبة القسم) الجزء Finite Automata صفحة 73، الكتاب كله اكثر من رائع و بنهائيته ستعرف كيف تصنع محرك Regular Expression جيد و ايضا Lexer جيد.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 5 أغسطس 2010 في 21:02

مدونتي: C++ Tips and Tricks

#267
اقتباس
شكرا جزيلا للأخ حمزه لمحاوله حل اللغز

العفو - هل هذا يعني أنني لم أحل اللغز ؟

اقتباس
مع العلم انه لم يلتزم بالمطلوب و لكنه حاول على الأقل

يبدو أن هناك سوء تفاهم - التزمت بالمطلوب ، والنتائج أتت كما هو مفترض من خلال السؤال

اقتباس
اعادة تعريف المعامل >> داخل الفئه Same_Sum خاطيء حيث بدلا من التعريف التالى:

friend ostream operator<<(ostream out, Same_Sum s)

لابد ان يكون كالتالى:

friend ostream& operator<<(ostream& out, Same_Sum s)

لعلك لم تلاحظ فالاقتران غير موجود الآن - كان في النسخة المبدئية لأغراض debugging & troubleshooting

اقتباس

ايضا يوجد خطأ داخل الداله charlist بالسطر 121 بالكود التالى:

p[k-start] = NULL;

حيث ان k معرف فقط داخل اللوب الذى يسبق هذا السطر لذا فدد اعتقدت انه يقصد جعل الحرف الموجود بالموقع start يساوى null حتى لا يقوم بعدّه مره اخرى و بالتالى يصبح هذا الكود كالتالى:

p[start] = NULL;

قيمة start هي موقع بداية الـ list في الـ term كاملاً ، أما k - start فهو موقع نهاية p ، نريده NULL بالضرورة ، وهو يكافئ :

p[end - start] = NULL;

أما start وحدها فيمكن أن تكون كبيرة جداً على p لكنها بداية الـ pattern بالتأكيد ..

اقتباس
بعد التجربه حصلت على التالى:

Please enter a pattern to search for : #%.#%

Please enter the text to search in :

i like the number 3.14159265 which name is PI.


Index   Pattern

18      3.1
18      3.14
18      3.141
18      3.1415
18      3.14159
18      3.141592
18      3.1415926
18      3.14159265

8 matches found


Press any key to continue . . .

بالتأكيد .. ذلك هو الصواب ولا شيء سوى ذلك ، خلال شرحك قلت :

اقتباس

% تعنى صفر او اكثر من رقم (صفر تعنى لا شئ).

أي : لا رقم ، أو رقم واحد ، أو رقمان ، أو ثلاثة أرقام ، ...

وهو بالضبط ما حصلت عليه ، أما إذا كنت تريد الناتج الأخير بالتحديد فعليك أن تكتب : ########.#

اقتباس
السؤال الذى يطرح نفسه كيف يمكن حل مثل هذا اللغز؟

حل هذا اللغز يتم حله بإستخدام ما يسمى Deterministic Finite-State Automation او اختصارا DFA، شرح هذا الأمر يطول و إن كنت مهتم بحل اسهل كثيرا (كما ذكرت من قبل) يمكنك مراجعة الكتاب Compiler Design In C (موجود بمكتبة القسم) الجزء Finite Automata صفحة 73، الكتاب كله اكثر من رائع و بنهائيته ستعرف كيف تصنع محرك Regular Expression جيد و ايضا Lexer جيد.

أنا لست أفضل من مؤلف ذلك الكتاب بالتأكيد ، لكن على الأقل أكتب كوداتي دائماً بحيث تكون friendly قدر الإمكان ، والتعبير friendly مقتبس من الزميل أبو دحيم خلال تصحيحه لأحد الألغاز ، بمعنى آخر يمكنني شرح الكود والمراهنة على أن الجميع باختلاف المستويات سيفهم كل سطر في ذلك الكود بسلاسة ودون تكلف .

على أية حال قمت بعمل testing والنتائج كانت دائماً كما ينبغي ، نسخة أخرى من الكود ستصلكم بإذن الله لكن بالتعليقات comments اللازمة ، أرجو من الجميع تحميل البرنامج من المرفقات وفحص الكود ، وإذا كان هناك أي شيء سقط سهواً أو جهلاً :wink: سأقوم بتعديله ..

سلامي ...

البرمجة = الرياضيات

#268
namespace كتب:

أنا لست أفضل من مؤلف ذلك الكتاب بالتأكيد ، لكن على الأقل أكتب كوداتي دائماً بحيث تكون friendly قدر الإمكان ، والتعبير friendly مقتبس من الزميل أبو دحيم خلال تصحيحه لأحد الألغاز ، بمعنى آخر يمكنني شرح الكود والمراهنة على أن الجميع باختلاف المستويات سيفهم كل سطر في ذلك الكود بسلاسة ودون تكلف .

سلامي ...

أكثر شيئ يعجبني بحلولك هذا الأمر كل من يراه ويملك لو أساس بسيط جدا جدا جدا باللغة يفهمه وبسهولة بالغة :)

حاولت حله حقيقة لكني لم أفلح وأيضا أنا مشغول قليلا فكل ما فعلته مجرد التفكير في فكرة البرنامج من دون كتابة :)

#269
اقتباس
يبدو أن هناك سوء تفاهم - التزمت بالمطلوب ، والنتائج أتت كما هو مفترض من خلال السؤال

اخى الملف بالمرفقات كان يوجد به الملف pattern.h و الذى كان شرط اساسى و انت لم تقم بتضمين الدوال الموجوده به.

اقتباس
بالتأكيد .. ذلك هو الصواب ولا شيء سوى ذلك

اخى عندما أكتب الـ pattern %#.%# فأنا اعنى اني اريد النص الذى يطابق هذا الـ pattern و ليس كل الإحتمالات التى تطابق هذا الـ pattern (لهذا كانت توجد دوال قمت بطلب الإلتزام بها لإن هدفها واضح و محدد)

اقتباس

الداله like تأخذ منك النص الذى تريد البحث داخله و تأخذ منك pattern و كذلك الموقع الذى سيبدأ البحث عن الـ Pattern منه و عدد الحروف الذى سيتم البحث داخلها و تعود لك بأول قيمة تطابق الـ Pattern و القيمه المعاده منها هى من نوع Match و تحتوى على النتيجه فإن كان لا توجد نتيجه يتم جعل العنصر Index بالقيمه -1 و العنصر Count بصفر 0.

بالنسبه للكود الخاص بك فالمفترض ان يتم مطابقة الـ pattern حتى يتم إيجاد mismatch و فى هذه الحاله يكون اخر نص يطابق الـ pattern فمثلا النتيجه التى حصلت عليها:

Index   Pattern

18      3.1          "#%.#%" not match because next item can include in pattern
18      3.14         "#%.#%" not match because next item can include in pattern
18      3.141        "#%.#%" not match because next item can include in pattern
18      3.1415       "#%.#%" not match because next item can include in pattern
18      3.14159      "#%.#%" not match because next item can include in pattern
18      3.141592     "#%.#%" not match because next item can include in pattern
18      3.1415926    "#%.#%" not match because next item can include in pattern
18      3.14159265   "#%.#%" match because next item can not included in pattern

اقتباس
أي : لا رقم ، أو رقم واحد ، أو رقمان ، أو ثلاثة أرقام ، ...

هذأ غير صحيح، كلمة أو توجد فقط داخل مدى معين و ذلك بإستخدام | و فى حالة العلامات #%$? لابد ان يتم التطابق بإستخدام AND بمعنى ان كل حرف لابد و أن يطابق الـ pattern، يمكنك مراجعة المثال التالى:

Is       "3.14"       Like "#.##"  = True
Is       "3.14"       Like "#%.%"  = True

فى حالة المثال الثانى لم يتم المطابقه مع "3.1" و "3.14" و لكن تم التطابق مع "3.14" بأكملها.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#270
اقتباس
اخى عندما أكتب الـ pattern %#.%# فأنا اعنى اني اريد النص الذى يطابق هذا الـ pattern و ليس كل الإحتمالات التى تطابق هذا الـ pattern

هكذا سيكون الأمر أسهل بكثير :lol:

وأنا رحت مغلب نفسي حتى يجد الكود كل الاحتمالات :lol:

الآن فهمت قصدك عندما قلت :

اقتباس
لا اعتقد ان اللغز على هذه الدرجه من الصعوبه يا شباب.

:lol: :lol:

ربما هكذا كتبت البرنامج عندما قرأت الملاحظات على المجموعة الأولى

أو أن مختبر تصميم أنظمة التشغيل أثر علي في الحل ، لأن النتائج كانت على ذلك الأساس

لا بأس أخي ، اللغز جميل وأنا استفدت كثيراً خلال محاولتي لحله ..

البرمجة = الرياضيات

#271

انتباه انتباه

الليلة بإذن الله لغز جديد - 3 فروع كالعادة

أفضل ما في اللغز أنه لا يوقف الشعر

وأسوأ ما فيه أنه ينشف الريق :lol:

لا تخافوا - الجميع سيشارك بإذن الله

على الأقل في أول فرعين :lol:

فكونوا مستعدين

البرمجة = الرياضيات

#272
Commented Code

Later on

البرمجة = الرياضيات

#273

اللغز السابع

أ - أكتب برنامجاً لإدخال عدد صحيح وحساب كم صفراً سيكون على يمين مضروب ذلك العدد دون حساب المضروب

مثلاً : تدخل 20 فيطبع 4 ، أو تدخل 25 فيطبع 6 ، أو تدخل 100 فيطبع 24

t6yziq.jpg

ب - اشترك 10 أشخاص في مسابقة ثقافية من 10 أسئلة مرتبة تصاعدياً حسب صعوبتها ، الأولوية بالفوز لمن يحل الأسئلة الأصعب :

- لو حل 9 أشخاص الأسئلة الأربعة الأولى بشكل صحيح وحل الشخص العاشر السؤال السابع فقط بشكل صحيح فهو الفائز

- قم بإدخال حالة الإجابات ( true or false ) للطلاب مباشرة في الكود أو بشكل عشوائي حسب رغبتك

t6yziq.jpg

جـ - لديك 100 طالب يرغبون بالتسجيل لـ 3 دورات مختلفة من بين 10 دورات يطرحها أحد المراكز الثقافية ، لسوء الحظ فالمقاعد محدودة ، 30 مقعد فقط لكل دورة ، وآلية التسجيل كالآتي :

1) كل طالب يقوم بإدخال الدورات العشرة التي يطرحها المركز مرتبة تنازلياً حسب أولويتها بالنسبة للطالب

2) يقوم النظام ( الذي هو فعلياً البرنامج الذي ستكتبه ) بعد إدخال جميع الطلاب اختياراتهم ، بمعالجة المدخلات وتسجيل 3 دورات لكل طالب حسب اختياراته

3) لا يشترط أن يحصل كل طالب على أول 3 اختيارات من اختياراته العشرة ، ذلك يكون في أحسن الأحوال فقط ، قد يصادف أن 60 طالب يريدون التسجيل لإحدى الدورات بينما لدينا 30 مقعداً فقط ، لذا ستتدخل العشوائية randomization في الموضوع عند الاضطرار لذلك ، كما لدينا هنا

4) برنامجك ينبغي أن يكون عادلاً قدر الإمكان ، وليس أن يسجل لطالب أول 3 اختيارات بينما آخِر 3 اختيارات لطالب آخر

5) بالنسبة لك قم بإدخال اختيارات الطلاب بشكل عشوائي على فرض أنهم هم من قام بذلك

t6yziq.jpg

المهلة المحددة لحل اللغز : 5 أيام ( حتى نهاية يوم الأربعاء )

انطلق

البرمجة = الرياضيات

#274

السلام عليكم

اخوي namespace

بخصوص الفقره الاولى و هو برنامج المضروب

انا حاولت احله لكن حسبت الـ مضروب و انا اعرف انك تشترط عدم حاسبته لكن للفائده فقط

انا واجهتني مشكله حيث انني وضعت الناتج ( المضروب في متغير ) اسمه fact

لكن اريد ان اساوي ( = ) المتغير fact بمصفوفه و لنفرض انها a

اي جبريا تكون بهذه الطريقه

a[]= fact

لكن لم تنفع هل من طريقه لمساواه المتغير fact بالمصفوفه a

هل نستخدم loop مثلا ؟

و شكرا

#275

namespace

أسئلتك تميل للصعوبة هذه المرة :(

لكن بإذن الله سأحلها ( مع أني مشغول كثيرا هذه الأيام لدي مجموعة مشاريع أريد تنفيذها )

سأحاول وأرسل لك الحل بإذن الله :)

جراند كتب:

السلام عليكم

اخوي namespace

بخصوص الفقره الاولى و هو برنامج المضروب

انا حاولت احله لكن حسبت الـ مضروب و انا اعرف انك تشترط عدم حاسبته لكن للفائده فقط

انا واجهتني مشكله حيث انني وضعت الناتج ( المضروب في متغير ) اسمه fact

لكن اريد ان اساوي ( = ) المتغير fact بمصفوفه و لنفرض انها a

اي جبريا تكون بهذه الطريقه

a[]= fact

لكن لم تنفع هل من طريقه لمساواه المتغير fact بالمصفوفه a

هل نستخدم loop مثلا ؟

و شكرا

المصفوفة عبارة عن عدة متغيرات في متغي واحد فكيف تقوم بإسناد عدة متغيرات إلى متغير واحد

يمكنك فقط إسناد عنصر واحد منها فقط

لا أعلم بالضبط ماذا تريد لكن سؤالك غريب قليلا :wacko:

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…