اذهب إلى المحتوى
  • 0

ضعيف في تحليل البرمجيات

الشيخ المختار الشنقيطس

السؤال

السلام عليكم ورحمة الله، اهلا شباب، انا مسبقا درست الخوارزميات في موقع محمد هرموش ولكن انا في اختبارات تحليل الخوارزميات وهياكل البيانات لذي في موقع هرموش، انا ضيعف في تحليل تلك الاختبارات، دة ضبيعي ؟ وكيف احسن نفسي؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

  • ولكن
    لا بد من ذكر هذه المعلومة المهمة ، أن ليس كل الأشخاص بنفس المستوى من الذكاء و المبرمج الناجح بالتأكيد  يجب أن يكون شخص ذكي .  و البرمجة لا تصلح كمهنة أو دراسة لكل الأشخاص ـ لذلك على كل من يرى أنه لا يوجد توافق بينه  و بين تعلم البرمجة أن يترك هذه المجال و يبحث عن شيء آخر و يختصر عليه الوقت و الجهد . 
     

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

سأتحدث عن تجربتي الشخصية,

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

مع أن دراستي كانت أكاديمية و كانت تحوي على مواد لتعليم مختلف لغات البرمجة و الخوارزميات, أجد أن معظم زملائي لم يتمكنو من فهم سليم و تنفيذ ما تعلموه بسبب نقص التجربة اليدوية و الخبرة الناتجة عن حل مسائل برمجية (أي تجريب ما تعلمته).

شاركت في العديد من المسابقات في الجامعة نفسها و مسابقات online على مختلف المواقع التعليمية.

أستطيع أن أقدم لك موقع يحوي على مسائل برمجية متنوعة من حيث الصعوبة و اعتمادها على مختلف المهارات البرمجية التي تحتاجها مستقبلا (من ناحية حل المشكلات و التفكير البرمجي و اختيار أنسب بنى المعطيات لتعطي حل أمثلي يعمل بكفائة باستهلاك الموارد (ذاكرة + وقت تنفيذ و معالجة)

أشهر موقع للمستبقات البرمجية و مسائل البرمجة هو https://codeforces.com/ 

أتمنى لك التوفيق و أن تتعلم البرمجة بكفاءة عالية.

تحياتي.

تم التعديل في بواسطة Wael Aljamal
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال Mohammed Saber:

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

نعو انا الان اتدرب على تمارينات الخوارزميات وهياكل البيانات على موقع هرموش وهي جيدة ولكن اصبحت اشعر بقوة في في التحليل وايضا الاختبارات اصبحت صعبة جدا،

اقتباس

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

لم افهمك في هذا الجزء بصراحة، ممكن توضيح؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 دقائق مضت قال الشيخ المختار الشنقيطس:

لم افهمك في هذا الجزء بصراحة، ممكن توضيح؟

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال ماجد قطوسة:

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

  • ولكن
    لا بد من ذكر هذه المعلومة المهمة ، أن ليس كل الأشخاص بنفس المستوى من الذكاء و المبرمج الناجح بالتأكيد  يجب أن يكون شخص ذكي .  و البرمجة لا تصلح كمهنة أو دراسة لكل الأشخاص ـ لذلك على كل من يرى أنه لا يوجد توافق بينه  و بين تعلم البرمجة أن يترك هذه المجال و يبحث عن شيء آخر و يختصر عليه الوقت و الجهد . 
     

 

ههههه بصراحة ادهشتني في الجملة الاخيرة 

اقتباس

لذلك على كل من يرى أنه لا يوجد توافق بينه  و بين تعلم البرمجة أن يترك هذه المجال و يبحث عن شيء آخر و يختصر عليه الوقت و الجهد . 
 

اتوقع انك تقصدني بها، لكن اخي انا التقنية مجالي واحبه والبرمجة هي مهنتي والتقنية يشكل عام، وحتى اصدقائي يسمونني "الشيخ البرمجي" الانهم يعرفون انني احب البرمجة واحب التقنية بجنون والله الحمد، 

اوفقك الرأى البرمجة ليست للجميع، ولكن انا شخصيا اراى انني قد هذه المسوؤلية 😉، ولو كنت تعرفني الادركت ذلك اخي ذلك،

اقتباس

بالتأكيد الموضوع طبيعي نسبياً ،  فهو يعتمد على الخبرة و الممارسة و المتابعة و التجربة ، و لن تكون محترف في تحليل و دراسة الخورزميات من البداية . 

فعلا انا درستها مرة واحدة منذو 4 اشهر ولكن ساعيد دراستها من جديد الان واضعها ضمن جدولي اليومي .

بتاريخ منذ ساعة مضت قال Wael Aljamal:

سأتحدث عن تجربتي الشخصية,

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

مع أن دراستي كانت أكاديمية و كانت تحوي على مواد لتعليم مختلف لغات البرمجة و الخوارزميات, أجد أن معظم زملائي لم يتمكنو من فهم سليم و تنفيذ ما تعلموه بسبب نقص التجربة اليدوية و الخبرة الناتجة عن حل مسائل برمجية (أي تجريب ما تعلمته).

شاركت في العديد من المسابقات في الجامعة نفسها و مسابقات online على مختلف المواقع التعليمية.

أستطيع أن أقدم لك موقع يحوي على مسائل برمجية متنوعة من حيث الصعوبة و اعتمادها على مختلف

اقتباس

 

المهارات البرمجية التي تحتاجها مستقبلا (من ناحية حل المشكلات و التفكير البرمجي و اختيار أنسب بنى المعطيات لتعطي حل أمثلي يعمل بكفائة باستهلاك الموارد (ذاكرة + وقت تنفيذ و معالجة)

أشهر موقع للمستبقات البرمجية و مسائل البرمجة هو https://codeforces.com/ 

أتمنى لك التوفيق و أن تتعلم البرمجة بكفاءة عالية.

تحياتي.

اعجبتني تجربتك،

 

اقتباس

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

هذا الموقع اعطاه لي احد الشباب في الاكاديمية ولكن ارى انه موقع فاشل او انه اصبح فاشل واعتقد به فائدة كبيرة، هل لديك بديل له ؟

اقتباس

أتمنى لك التوفيق و أن تتعلم البرمجة بكفاءة عالية.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 45 دقائق مضت قال Mohammed Saber:

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

فعلا هذا ما اطمح اليه ان شاء الله وسادرسها قدر الامكان  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحباً @الشيخ المختار الشنقيطس

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

الخوارزمية هي عبارة عن مجموعة من التعليمات البسيطة و المراد بها الوصول إلى هدف محدد

بعد كتابة الخوارزمية تأتي مرحلة التجريب و في هذه المرحلة تقوم بتنفيذ التعليمات إنطلاقا من قيم مبدئية و هذا للتأكد من صحة الخوارزمية

بعدها تأتي مرحلة تطبيق الخوارزمية بلغة برمجة 

فلنأخذ المثال التالي: 

المشكلة: جِد قائمة قواسم عدد 

نص المشكلة بشكل ابسط: فلنفرض أنه لدينا العدد الصحيح N و نريد إنجاز أو إنشاء حل لإيجاد قائمة قواسم هذا العدد 

I- التحليل: 

1- ليكن N عدد صحيح

2- نقسم بشكل متتالي العدد N على i = 1, 2, 3, ... , N/2

3- في كل مرة عندما يكون باقي قسمة N على i يساوي 0 ( إذن i يعتبر قاسم لِ N ) 

---> في هذه الحالة إطبع i 

II- الخوارزمية: 

ALGORITHM dividers
var N, i: integer
BEGIN
READ(N)
FOR i <- 1 to (N DIV 2) DO
	BFOR
    IF (N MOD i) = 0 THEN
		BIF
        write(i)
        ENDIF
	ENDFOR
END
		

III- التجريب:

deroulment.thumb.PNG.a3c34ebd2d32e9419b13cdfae1e82868.PNG

IV- تنفيذ الخوارزمية بلغة C 

#include <stdio.h>

int main()
{
    int N, i;
    scanf("%d", &N);
    for(i = 1; i < N/2; i++) {
        if(N % i == 0) {
            printf("%d\n", i);
        }
    }

    return 0;
}

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

هياكل البيانات مادة دسمة و تحتاج تركيز و جهد عالي لفهمها 

بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعات قال الشيخ المختار الشنقيطس:

ههههه بصراحة ادهشتني في الجملة الاخيرة 

اتوقع انك تقصدني بها، لكن اخي انا التقنية مجالي واحبه والبرمجة هي مهنتي والتقنية يشكل عام، وحتى اصدقائي يسمونني "الشيخ البرمجي" الانهم يعرفون انني احب البرمجة واحب التقنية بجنون والله الحمد، 

اوفقك الرأى البرمجة ليست للجميع، ولكن انا شخصيا اراى انني قد هذه المسوؤلية 😉، ولو كنت تعرفني الادركت ذلك اخي ذلك،

فعلا انا درستها مرة واحدة منذو 4 اشهر ولكن ساعيد دراستها من جديد الان واضعها ضمن جدولي اليومي .

اعجبتني تجربتك،

 

هذا الموقع اعطاه لي احد الشباب في الاكاديمية ولكن ارى انه موقع فاشل او انه اصبح فاشل واعتقد به فائدة كبيرة، هل لديك بديل له ؟

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

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

و يشرفني أن أشارك معك بمحادثة لنستفيد من بعضنا البعض . 
شكرا لك . 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 9 ساعات قال عبود سمير:

مرحباً @الشيخ المختار الشنقيطس

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

الخوارزمية هي عبارة عن مجموعة من التعليمات البسيطة و المراد بها الوصول إلى هدف محدد

بعد كتابة الخوارزمية تأتي مرحلة التجريب و في هذه المرحلة تقوم بتنفيذ التعليمات إنطلاقا من قيم مبدئية و هذا للتأكد من صحة الخوارزمية

بعدها تأتي مرحلة تطبيق الخوارزمية بلغة برمجة 

فلنأخذ المثال التالي: 

المشكلة: جِد قائمة قواسم عدد 

نص المشكلة بشكل ابسط: فلنفرض أنه لدينا العدد الصحيح N و نريد إنجاز أو إنشاء حل لإيجاد قائمة قواسم هذا العدد 

I- التحليل: 

1- ليكن N عدد صحيح

2- نقسم بشكل متتالي العدد N على i = 1, 2, 3, ... , N/2

3- في كل مرة عندما يكون باقي قسمة N على i يساوي 0 ( إذن i يعتبر قاسم لِ N ) 

---> في هذه الحالة إطبع i 

II- الخوارزمية: 


ALGORITHM dividers
var N, i: integer
BEGIN
READ(N)
FOR i <- 1 to (N DIV 2) DO
	BFOR
    IF (N MOD i) = 0 THEN
		BIF
        write(i)
        ENDIF
	ENDFOR
END
		

III- التجريب:

deroulment.thumb.PNG.a3c34ebd2d32e9419b13cdfae1e82868.PNG

IV- تنفيذ الخوارزمية بلغة C 


#include <stdio.h>

int main()
{
    int N, i;
    scanf("%d", &N);
    for(i = 1; i < N/2; i++) {
        if(N % i == 0) {
            printf("%d\n", i);
        }
    }

    return 0;
}

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

هياكل البيانات مادة دسمة و تحتاج تركيز و جهد عالي لفهمها 

بالتوفيق

جميل، ولكن لم اغهمك جيدا رجاء استعمل خوارزميات جافا الانها اللغة التي ادرس 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 17 دقائق مضت قال الشيخ المختار الشنقيطس:

جميل، ولكن لم اغهمك جيدا رجاء استعمل خوارزميات جافا الانها اللغة التي ادرس 

مرحباً @الشيخ المختار الشنقيطس
تطبيق الخوارزمية بأي لغة كانت يحتاج فقط معرفة و إلمام بطريقة الكتابة او ال syntax الخاص باللغة عليك التركيز على الخوارزمية نفسها و ليس على لغة البرمجة فبفهمك و إتقانك لمبادئ البرمجة يُمكنك التغيير من لغة إلى أخرى بسهولة مستقبلاً لاحظ أن كتابتي للخوارزمية لم تكن بإستخدام لغة برمجة و إنما باللغة الإنجليزية بإعتماد شكل محدد و كان هذا الشكل:

ALGORITHM algorithm_name   // هنا نقوم بإعطاء إسم للخوارزمية
  
// هنا نقوم بتعريف كافة المتغيرات التي نحتاجها
  
BEGIN // هنا نقوم بالإعلان عن بداية تعليمات الخوارزمية
  
  // هنا نضع تعليمات الخوارزمية
  // <-- التعليمة الاولى
  // <-- التعليمة الثانية
  // و هكذا
  
ُEDN // هنا نقوم بإنهاء الخوارزمية

و هذا تطبيق لخوارزمية المثال السابق بإستعمال لغة جافا:

import java.util.Scanner; // نحتاج هذه الحزمة لقراءة القيمة التي يدخلها المستخدم

public class Main
{
	public static void main(String[] args) {
		int N, i; // هنا قمنا بالتصريح عن المتغيرات
      	
      	// التعليمتين التاليتين لقراءة قيمة عددية يدخلها المستخدم و تخزينها في المتغير N
        Scanner in = new Scanner(System.in);  
        N = in.nextInt();
        
        for(i = 1; i < N/2; i++) { // عمل حلقة من 1 إلى N/2
            if(N % i == 0) { // إذا كان N يقبل القسمة على i 
                System.out.println(i); // نطبع i
            }
        }
		
	}
}

و هذا تطبيق للخوارزمية بلغة C++

#include <iostream>
using namespace std;

int main()
{
    int N, i;
    cin >> N;
    
    for(i = 1; i < N/2; i++) {
        if(N % i == 0) {
            cout << i << endl;
        }
    }
    

    return 0;
}

هناك العديد من المشاكل والمسائل يُمكنك البحث عن حلول لها على سبيل المثال :

  • جد العاملي أو المضروب لعدد طبيعي N: لفهم ما معنى العاملي : إضغط هنا
  • أكتب خوارزمية لمعرفة إذا كان عدد طبيعي N: عدد أولي: لأخذ نظرة عن الأعداد الأولية: إضغط هنا
  • أكتب خوارزمية لطباعة كافة الأعداد الأولية الأقل من عدد مُعطى N
  • أكتب خوارزمية لطباعة العنصر ذو الترتيب N في متتالية فيبوناتشي: لفهم متتالية فيبوناتشي: إضغط هنا
  • أكتب خوارزمية لتحويل عدد من النظام العشري إلى النظام الثنائي و العكس
  • ليكن في علمك أنه يوجد 4 أعداد محصورة بين 100 و 500 بحيث مجموع مكعبات الأرقام المكونة لكل عدد يساوي العدد نفسه مثال عن أحدها:algo1.PNG.648df46759cb55cfb318d4885a3570d9.PNGأكتب خوارزمية لطباعة هذه الأعداد
  • العدد المثالي هو عدد طبيعي يساوي مجموع قواسمه بإستثناء نفسه أكتب خوارزمية لايجاد كل الأعداد المثالية المحصورة بين 1 و N و هنا شرح للعدد المثالي: إضغط هنا
  • أكتب خوارزمية لتبديل رقمي عدد الأول و الأخير فقط مثلا إذا كان العدد 5931 ترجع الخوارزمية 1935 و إذا كان العدد -81 ترجع -18 و هكذا 
  • هذه بعض المسائل و هناك العديد منها و إذا قمت بالتمرن عليها سيتطور مستواك 

بالتوفيق

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال عبود سمير:

مرحباً @الشيخ المختار الشنقيطس
تطبيق الخوارزمية بأي لغة كانت يحتاج فقط معرفة و إلمام بطريقة الكتابة او ال syntax الخاص باللغة عليك التركيز على الخوارزمية نفسها و ليس على لغة البرمجة فبفهمك و إتقانك لمبادئ البرمجة يُمكنك التغيير من لغة إلى أخرى بسهولة مستقبلاً لاحظ أن كتابتي للخوارزمية لم تكن بإستخدام لغة برمجة و إنما باللغة الإنجليزية بإعتماد شكل محدد و كان هذا الشكل:


ALGORITHM algorithm_name   // هنا نقوم بإعطاء إسم للخوارزمية
  
// هنا نقوم بتعريف كافة المتغيرات التي نحتاجها
  
BEGIN // هنا نقوم بالإعلان عن بداية تعليمات الخوارزمية
  
  // هنا نضع تعليمات الخوارزمية
  // <-- التعليمة الاولى
  // <-- التعليمة الثانية
  // و هكذا
  
ُEDN // هنا نقوم بإنهاء الخوارزمية

و هذا تطبيق لخوارزمية المثال السابق بإستعمال لغة جافا:


import java.util.Scanner; // نحتاج هذه الحزمة لقراءة القيمة التي يدخلها المستخدم

public class Main
{
	public static void main(String[] args) {
		int N, i; // هنا قمنا بالتصريح عن المتغيرات
      	
      	// التعليمتين التاليتين لقراءة قيمة عددية يدخلها المستخدم و تخزينها في المتغير N
        Scanner in = new Scanner(System.in);  
        N = in.nextInt();
        
        for(i = 1; i < N/2; i++) { // عمل حلقة من 1 إلى N/2
            if(N % i == 0) { // إذا كان N يقبل القسمة على i 
                System.out.println(i); // نطبع i
            }
        }
		
	}
}

و هذا تطبيق للخوارزمية بلغة C++


#include <iostream>
using namespace std;

int main()
{
    int N, i;
    cin >> N;
    
    for(i = 1; i < N/2; i++) {
        if(N % i == 0) {
            cout << i << endl;
        }
    }
    

    return 0;
}

هناك العديد من المشاكل والمسائل يُمكنك البحث عن حلول لها على سبيل المثال :

  • جد العاملي أو المضروب لعدد طبيعي N: لفهم ما معنى العاملي : إضغط هنا
  • أكتب خوارزمية لمعرفة إذا كان عدد طبيعي N: عدد أولي: لأخذ نظرة عن الأعداد الأولية: إضغط هنا
  • أكتب خوارزمية لطباعة كافة الأعداد الأولية الأقل من عدد مُعطى N
  • أكتب خوارزمية لطباعة العنصر ذو الترتيب N في متتالية فيبوناتشي: لفهم متتالية فيبوناتشي: إضغط هنا
  • أكتب خوارزمية لتحويل عدد من النظام العشري إلى النظام الثنائي و العكس
  • ليكن في علمك أنه يوجد 4 أعداد محصورة بين 100 و 500 بحيث مجموع مكعبات الأرقام المكونة لكل عدد يساوي العدد نفسه مثال عن أحدها:algo1.PNG.648df46759cb55cfb318d4885a3570d9.PNGأكتب خوارزمية لطباعة هذه الأعداد
  • العدد المثالي هو عدد طبيعي يساوي مجموع قواسمه بإستثناء نفسه أكتب خوارزمية لايجاد كل الأعداد المثالية المحصورة بين 1 و N و هنا شرح للعدد المثالي: إضغط هنا
  • أكتب خوارزمية لتبديل رقمي عدد الأول و الأخير فقط مثلا إذا كان العدد 5931 ترجع الخوارزمية 1935 و إذا كان العدد -81 ترجع -18 و هكذا 
  • هذه بعض المسائل و هناك العديد منها و إذا قمت بالتمرن عليها سيتطور مستواك 

بالتوفيق

توضيح جيد جدا ولاكن في المؤخرة لم افهم شئ ههه، سالوم باعادة دراسة الحلقات المتداخلة من جديد 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...