تعالو نقترح الحلول للاحجيات(الالغاز) البرمجيه المطروحه

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

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

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

لا اعلم هل لاقى الموضوع القبول او لا
لكن
ساقدم الاحجيه على امل ان كل عضو يفيد ويستفيد
اللغز او احجيه الاسبوع

لغز برمجي بسيييييييييييط يقيس مدى فهمك في البرمجة

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

مثلا
x=4
y=2

كيف نستطيع ان نجعل

x=2
y=4

الطريقة المعروفة هي ان نستخدم متغير وسيط كالتالي


[CENTER][COLOR=purple][B]x=4[/b][/color]
[COLOR=purple][B]y=2[/b][/color]
[COLOR=purple][B]tmp=y[/b][/color]
[COLOR=purple][B]y=x[/b][/color]
[COLOR=purple][B]x=tmp[/b][/color][/center]
 

انا اريد طريقة غير هذي الطريقه كيف؟؟؟؟

السلام عليكم ورحمه الله وبركاته
الحل بنسخه لكم
وبما انه ماحدى تحمس للفكره خلص حنوقف
الحل هو:-
الاول:
x=4 & y=2

x = x + y

y= x - y

x = x - y
تطبيق الحل بمثال
x=4 & y=2

x = x + y = 6

y= x - y = 6 - 2 = 4

x = x - y = 6 - 4 = 2

و صاااااااااااااااااااار

x=2 & y=4
الثانى:
x=x * y

y=x / y

x= x / y

وبالامثله

x=6 & y=5

x=x * y = 6 * 5 = 30
y=x /y = 30 /5 = 6 … y=6
x= x /y = 30 / 6= 5 … x=5
الحل الثالث:
push x
push y
pop x
pop y
يعنى لو فرضنا
x=5
y=10
ودخلناها فى ال Stack
x ثم y
بعدين نخرج x فتصبح هيه قيمه y
x=10بعدين نخرج y فتصبح
y=5
والسلام عليكم ورحمه الله وبركاته[COLOR=purple]

[/color]

شيء رائع خطرت على بالي الطريق الثانيه

بالمناسبه يمكن التبدير بين الاشارت والمتغيرات

يعني بدل من

[CENTER][B][SIZE=4][COLOR=#800080]x=x * y

y=x / y
x= x / y [/center]
[/color][/size][/b]
يمكن ان تكون

[B][SIZE=4][COLOR=#800080]x=y* x

[/color][/size][/b][CENTER]y=y/ x

x= y /x

ومنتظرين للاحجيه القادمه
واتمنى تثبيت الموضوع[/center]

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

[CENTER]-----------------
vemos en O antes del Viernes

لنا عوده ان شاء الله

[/center]

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

سابداء باول احجيه ولا ادري هل تناسب النوع من الالغاز المقصود بها هنا ولاكني ساطرحها ببساطتها و شيوعها

السوال يقول
لديك رقم معين 99.99 كيف تستطيع ان تستخرج عدد العشرات فيه ثم عدد الخمسات المتبقيه ثم عدد الواحداتالمتبقيه ثم عدد الانصاف المتبقيه ثم عدد الارباع المتبقيه ثم عدد العشر واخيرا عدد ال 0.01 المتبقي

مثلا العدد فيه
9 عشرات 90
1 خمسه 5
4 واحدات 4
1 نصف 0.5
1 ربع 0.25
2 اعشار 0.2
4 سنتات 0.04

مجموعهن 99.99

تحياتي

hi all

الفكره مش واضحه ولا اللغز مش في محله ولا الموضوع مش مؤهل

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

all the best

الفكره اعتقد واضحه
بس السؤال بيظل اسبوع كامل
ويوم الجمعه صاحب السؤال بينزل الحل اذا محدا حله
بقى على الاسبوع يوم
ان شاء الله يكون فيه تجاوب مع الموضوع
اتمنى الجميع يشارك
تحياتى

فكرت بالسؤال

وكتبت كود بالماتلاب
الكود:

 
 
 
[LEFT][B][SIZE=4][COLOR=black]in=input('ENTER THE NUMBER: ');[/color][/size][/b]
[B][SIZE=4][COLOR=black]nn=in;[/color][/size][/b]
[B][SIZE=4][COLOR=black]a=[10 5 1 0.50 0.25 0.2 0.04];[/color][/size][/b]
[B][SIZE=4][COLOR=black][m,n]=size(a);[/color][/size][/b]
[B][SIZE=4][COLOR=black]a1=[ ];[/color][/size][/b]
[B][SIZE=4][COLOR=black]for i=1:n[/color][/size][/b]
[B][SIZE=4][COLOR=black]i[/color][/size][/b]
[B][SIZE=4][COLOR=black]if in>a(i) [/color][/size][/b]
[B][SIZE=4][COLOR=black]e1=in/a(i);[/color][/size][/b]
[B][SIZE=4][COLOR=black]e2=fix(e1);[/color][/size][/b]
[B][SIZE=4][COLOR=black]e3=e2*a(i);[/color][/size][/b]
[B][SIZE=4][COLOR=black] in=in-e3;[/color][/size][/b]
[B][SIZE=4][COLOR=black]a1(i)=e2;[/color][/size][/b]
[B][SIZE=4][COLOR=black]elseif in==a(i)[/color][/size][/b]
[B][SIZE=4][COLOR=black]      e2=1;[/color][/size][/b]
[B][SIZE=4][COLOR=black]      e3=e2*a(i);[/color][/size][/b]
[B][SIZE=4][COLOR=black]     in=in-e3;[/color][/size][/b]
[B][SIZE=4][COLOR=black]     a1(i)=e2;[/color][/size][/b]
[B][SIZE=4][COLOR=black]else[/color][/size][/b]
[B][SIZE=4][COLOR=black]a1(i)=0.00    [/color][/size][/b]
[B][SIZE=4][COLOR=black]end[/color][/size][/b]
[B][SIZE=4][COLOR=black]end[/color][/size][/b]
[B][SIZE=4][COLOR=black]p=a.*a1;[/color][/size][/b]
[B][SIZE=4][COLOR=black]num=sum(p);[/color][/size][/b]
[B][SIZE=4][COLOR=black]a1[/color][/size][/b]
[B][SIZE=4][COLOR=black]in[/color][/size][/b]
[B][SIZE=4][COLOR=black]p[/color][/size][/b]
[B][SIZE=4][COLOR=black]num[/color][/size][/b]
[B][SIZE=4][COLOR=black]nn=nn-num[/color][/size][/b][/left]
 
 
 

شرح الكود:
1-السطر الاول لادخال قيمه من المستخدم ونخزنها فى المتغير in
2-اخزن نفس القيمه المدخله من قبل المستخدم فى متغير اخر اسمه nn
3-اعرف مصفوفه واخزن فيها القيم المراد معرفه عدد تكرارها فى الرقم المدخل من قبل المستخدم
4-احسب ابعاد المصفوف aوهى صف واحد وسبع اعمده فتكون mصفوف n اعمده
5-انشئ مصفوفه فارغه اسمها a1
6-استخدم for لتمر على جميع عناصر المصفوفه aمن الدليل 1 الى الدليل 7 وايضا تقوم بالتخزين فى المصفوفه a1(i)
7-لطباعه i
8-استخدمت if لتختبر هل العنصر الموجود فى المصفوفه aوالموقع i اكبر من االرقم in
9-قسمت in(وهو الرقم المدخل ) على العنصر فى المصفوفه a
10-fixتقوم باخذ الرقم الصحيح من العدد وتخزينه فى e2
11-ضرب العدد الصحيحe2 والذى يمثل تكرار الرقم الذى فى المصفوفه a
بالعنصر الموجود فى a وذلك لطرحه من الرفم المدخل
12- طرح الرقم المدخل من حاصل الضرب حتى نحسب تكرار بقيه ارقام المصفوفه a ويخزن فى in
13-نخزن فى المصفوفه a1 قيمه تكرار الرقم
وهكذا
14-لاختبار الرقم المدخل من قبل المستقبل او باقى الرقم الذى تم طرحه(in) هل يساوى a(i)
15-بما ان الرقمين متساوين فلبنتيجه ستكون واحد فخزنت فى المتغير e2 الرقم 1
16-نضرب مثل الخطوره رقم 11
17-مثل 12
18- مثل الخطوه رقم 13 وهى لتخزين
19-اذا in لا تساوى a(i) ولا اكبر منها (اى انها اصغر)
20-اخزن فى الصفوفه a1 الرقم 0
21-end لنهايه if
22-end لنهايه for
23-ضرب المصفوفتين لينتج مصفوفه مكونه من الرقم *تكراره
24-نجمع عناصر المصفوفه لتكون مساويه للرقم المدخل من قبل للمستخدم
25-26-27-28 جميعها لطباعه
29- لطباعه لانه لم نضع فاصله منقوطه وايضا لحساب معامل الخطأ للبرنامج
اذا كانت بصفر فالبرنامج قسم الرقم كله
اما اذا كانت لاتساوى الصفر فرقم لم يقسم كله
التطبيق للبرنامج
الرقم المدخل 110.5

ان شاء الله الشرح يكون وافى
والحل منطقى

شي جميل مشكوره على المحاوله الرائعه وهذا حل اخر للغات البرمجه الاخرى كالجافا وغيرها


 
double a,ten,five,one,quarter,dimes,nickles,pennies;

ten= (int)a/10;
five= (int) (a-(ten*10))/5;
one= (int) (a-(ten*10)-(five*5));
quarter= (int)((a-(int)a)*4);
dimes= (int)((a-(int)a)*10/4);
pennies = (int)((a-(int)a)*100)-quarter*25 -dimes*10;
 
 

وبعدها تتم عمليه الطباعه

وساقوم بشرحه لاحقا اذا كان هناك اي غموض فليس لدي وقت الان ولنا عوده مع الكود القادم في نهايه الاسبوع القادم

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

واشكر المشرف عبد العزيز على مشاركته وننتظر شرح الكود حتى يستفيد القارئ