جهِّز نفسك لسوالف كاست، واحصل على Macbook Air
ويكيمانيا 2008. الإسكندرية، من 17 وحتى 19 يوليو

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > تطوير الويب
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#1 (permalink)  
تبادل الخبرات[1].(مالبديل للدالة)for


السلام عليكم

ارتأيت أن أبدأ بدوري سلسلة خاصة بي اقتداءا و الأساتذة القدامى هنا وهذه السلسلة أهذف من خلالها تبادل الخبرات بين شريحة كبيرة من المبرمجين و المصممين ، لكن غالبا ستكون لها علاقة بالبرمجة ..
هذه الحلقة مخصصة للمبرمجين كافة كيفما كانت اللغة التي يبرمج بها ،
الا وهو مالبديل للدالة for() او بالأحرى ماهي خوارزميتها التي تعتمد؟
كيف تعمل وماهي ماهيتها ؟

مثال للدالة for() بال php
كود PHP:
$a 3;
$b 10;
$c 0;
for(
$a;$a<$b;$a++){
$c $a 2;
}
echo 
$c
وهو نفسه بالجافا سكريبت
كود PHP:
var 3;
var 
10;
var 
0;
for(
a;a<b;a++){
2;
}
document.write(c); 
النتيجة التي ستطبع هنا لل المتغير c هي 11
الآن كيف سنصل الى نفس النتيجة بدون الإعتماد على الدالة for و while فقط دالة جديدة سميها ماتشاء و if()
كل المبرمجين مدعوين ليدلو بدلوهم ويعطونا ماعندهم من عندهم، من خبرة وليس نقلا او شيئ من هذا القبيل
أقسم اني بدوري لم أعتمد الا على نفسي و خبرتي في الوصول لنفس النتيجة

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






Zizwar غير متواجد حالياً   قديم 22-03-2005, 02:35 AM
رد مع اقتباس
Banned
تاريخ التسجيل: Feb 2005-
#2 (permalink)  

هو اولا انا مش فاهم حاجه بس شكل الموضوع كبير وكبير اوى
دخل فى سياسة الدوله






Mr.Dosa غير متواجد حالياً   قديم 22-03-2005, 03:03 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2003-
#3 (permalink)  

نستخدم do

لكن شكلي مافهمت سؤالك

الي اعرفه ان الدوران ( loop )

نختار بين do ... or .... while

واسهلها هــي for

وانا اتكلم بالعموم لا اخص لغه معلينه

اتمنى توضيح سؤالك






__________________
---[ كلمتان خفيفتان على اللسان ]---
---[ ثقيلتان في الميزان ]---
---[ حبيبتان الى الرحمن ]---
---[ سبحان الله وبحمده سبحان الله العظيم ]---
WaLeeD غير متواجد حالياً   قديم 22-03-2005, 04:13 AM
رد مع اقتباس
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#4 (permalink)  

أخي WaLeeD شكرا لك
ما نريد هو البديل ل for بدالة من عندك(شخصية)
do و while اخوة ل for لا نريد الاستعانة بهم
الأمر قد يصل الى فلسفة رقمية






Zizwar غير متواجد حالياً   قديم 22-03-2005, 04:28 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Apr 2004-
#5 (permalink)  

أشوف السؤال أقرب إلى أنه يكون لغز

بس هذا الكود يؤدي الغرض

كود PHP:
function loop($a,$c)
{
global 
$b;

$c $a 2;

if (
$a<$bloop ($a,$c);
else return 
$c;
}

$c=loop($a,$c);
echo 
$c






__________________
هل زرت شبكة المحروقي من قبل؟
http://almah.net
المحروقي غير متواجد حالياً   قديم 22-03-2005, 04:40 AM
رد مع اقتباس
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#6 (permalink)  

المحروقي
اقتربت جدا جدا
وبهذا لم يبقى لغز
لكن يمكن ان تختصره اكثر
واذا امكن شرح بسيط ، رغم ان الكود يشرح نفسه






Zizwar غير متواجد حالياً   قديم 22-03-2005, 05:03 AM
رد مع اقتباس
مراقب و خبير سيرفرات لينكس
تاريخ التسجيل: Mar 2001-
#7 (permalink)  

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

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






__________________
الزيند بين واقع الكسر وهاجس الحماية.
PHP تعد خيار تكتيكي لبناء موقع أو حتى( مويقع )!
الحماية هدف لا يدرك و تجاوزها متعة وهدف أيضا .
إن كنت تريد صندوق لتلعب به فإختر Windows وإلا فاختر Linux.
beshoo غير متواجد حالياً   قديم 22-03-2005, 05:19 AM
رد مع اقتباس
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#8 (permalink)  

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






Zizwar غير متواجد حالياً   قديم 22-03-2005, 05:37 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2004-
#9 (permalink)  

نعم المحروقي وصل للنفس النتيجة وراح اضيف نتيجة اخرى

كود PHP:
var a,b,c
a
=2
b
=2
c
=2

if (a==b) {
document.write(c); 
}
else if (
b==c) {
    
document.write("c");
}
else {
    
document.write("a");







مشراق غير متواجد حالياً   قديم 22-03-2005, 08:41 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Dec 2003-
#10 (permalink)  

أخي زيزوار

البديل هو مايسمى بالRecursion

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

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

المثال : ماقصروا الشباب بالأمثلة

شرح بسيط
http://www.iol.ie/~jmchugh/csc302/

للأمانة الكلام هذا أتذكره من أيام الدراسة في الكلية .

يعني ماهو من خبرتي ower:






الشريف.نت غير متواجد حالياً   قديم 22-03-2005, 09:30 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2004-
#11 (permalink)  

موضوع جميل


أرجو أن تعجل بإرسال الكتب لي بأي وسيلة
ولا تقلق سأتكفل بالمصاريف عندما تصلني الكتب






__________________
CSS - XHTML
مدمن أنترنت غير متواجد حالياً   قديم 22-03-2005, 03:35 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2004-
#12 (permalink)  

إبراهيم ألا توجد ألغاز برمجية ؟






__________________
CSS - XHTML
مدمن أنترنت غير متواجد حالياً   قديم 22-03-2005, 03:44 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2004-
#13 (permalink)  

والله مخي مقفل وراسي يعوررررررررني ومو عارف أكتب كود
وما أدري الكود اللي كتبته صح أو لأ .. ماجربته عملي ..
كود PHP:
function loop($start,$end)
     {
             
$x=0;
             if(
$start>$end)
                    {
                          echo 
$x;
                    }
             else
                    {
                          
$x=loop($start++,$end);
                    }
           echo 
$x;
     } 






__________________
نحن أمة إقرأ التي لا تقرأ
مبرمج إنترنت غير متواجد حالياً   قديم 22-03-2005, 04:45 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2003-
#14 (permalink)  

السلام عليكم

موضوع شيق


البديل هو الركيرجن

نكتب الفنكشن, و نسوي لها كول من الفنكشن نفسها






__________________
قال أحد الشعراء بعد أن واجه المر من الحاقدين في مسابقة للشعر :-

لو كان شعري شعيراً لأكلته الحمير, و لكن شعري شعوراً فأنا للحمير شعورا
bahlink غير متواجد حالياً   قديم 22-03-2005, 05:48 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Apr 2000-
#15 (permalink)  

كما ذكر الأخوة البديل هو الـ Recursion بحيث يتم إستدعاء الدالة Recursively

لكن مشكلة هذه الطريقة انها مكلفة جدا ، حيث يعتبر الـ Big O لدالة تحتوي على اوامر Linear هو :

O(N^2)*X

حيث X هو عدد مرات إستخدام هذه الدالة


بينما إستخدام الـ Loops الجاهزة فتكلفتها :

O(N)*X

حيث X عدد مرات استخدام هذه النوعية من الـ Loops في البرنامج ( على نفس حجم البيانات N )


فهذه الطريقة كما قال أخي بيشو ، خطوة الى الوراء ، وهذه الطريقة تختلف تماما عن الطرق التي تستخدمها الـ Compilers لتمثيل اوامر الـ Loops .






البرواز غير متواجد حالياً   قديم 22-03-2005, 07:59 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Apr 2004-
#16 (permalink)  

Zizwar

الكود ناقصنه ++


وما يحتاج شرح.. الدالة تشرح نفسها بنفسها






__________________
هل زرت شبكة المحروقي من قبل؟
http://almah.net
المحروقي غير متواجد حالياً   قديم 22-03-2005, 09:25 PM
رد مع اقتباس
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#17 (permalink)  

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

اخي مشراق
: شكرا لمشاركتك معنا لكن النتيجة تكون دائما 2 وايضا لا تدور على نفسها لحين مخالفة الشرط

الشريف.نت
: شكرا على على مشاركتك معنا أولا و على الموقع تانيا استفدت منه كثيرا

مدمن أنترنت
: مرة جاية متحلمش بالكتاب
لا أعرف ماذا تقصد بالألغاز البرمجية

bahlink
: نعم تلك هي الطريقة المتفق عليها أن تسوي لها استدعاء من نفس الدالة لحين مخالفة الشرط ، بارك الله فيك

البرواز
: شكرا على هذا الشرح الوافي و الله ماكان في بالي، بارك الله فيك

المحروقي
: ++ بسيط أمرها انت لست ممن سينسوها الا سهوا ، لكن أضن ان الدالة كبيرة نوعا ما سأضع الآن دالتي ونلاحظ الفروق مع بعضنا و أيضا مع من سيلتحقون بنا

====================
هذا الكود
كود PHP:
var 3
var 
10
var 
0
for(
a;a<b;a++){ 
2

document.write(c); 
خوارزميتها التي وصلت اليها هي
كود PHP:
var 3;
var 
10;
var 
0;
For = function(){
a+2;a++;if(a<b)For()}
For();
document.write(c); 
وهذا الشرحها
كود PHP:
var 3;
var 
10;
var 
0;

For = function(){ 
// دالة جديدة
a+2// الأمر الذي تريد تنفيده 
a++; // القيمة التكرارية التي سيأخدها المتغير 
if(a<b// الشرط
    
For(); // اسدعاء الدالة  من جديد مادام الشرط لم يتحقق 
}
For(); 
// استدعاء الدالة 

document.write(c); // طباعة القيمة 
و بال php
كانت
كود PHP:
$a 3
$b 10
$c 0
for(
$a;$a<$b;$a++){ 
$c $a 2

echo 
$c
واصبحت
كود PHP:
$a 3;
$b 10;
$c 0;
For = function(){ 
// دالة جديدة
$c $a+2// الأمر الذي تريد تنفيده 
$a++; // القيمة التكرارية التي سيأخدها المتغير 
if($a<$b// الشرط
    
For(); // اسدعاء الدالة  من جديد مادام الشرط لم يتحقق 
}
For(); 
// استدعاء الدالة 

echo $c // طباعة القيمة 
لم أجرب هل هي ناجحة في ال PHP ام لا

ستكون لي عودة






Zizwar غير متواجد حالياً   قديم 23-03-2005, 02:46 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2004-
#18 (permalink)  

أحد جرب كودي ؟؟؟

جربوه وعلموني النتيجة






__________________
نحن أمة إقرأ التي لا تقرأ
مبرمج إنترنت غير متواجد حالياً   قديم 23-03-2005, 12:27 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Aug 2004-
#19 (permalink)  

للرفع
up
up
up
للرفع






__________________
نحن أمة إقرأ التي لا تقرأ
مبرمج إنترنت غير متواجد حالياً   قديم 27-03-2005, 11:55 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Apr 2004-
#20 (permalink)  

هلا zizwar

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


ودالة PHP فيها بعض الأخطاء اللي أكيد سقطت سهوا..
وهنا الدالة مصححة
كود PHP:
$a 3;
$b 10;
$c 0;
function 
ffor(){ // دالة جديدة
    
global $a,$b,$c;
    
$c $a+2// الأمر الذي تريد تنفيده
    
$a++; // القيمة التكرارية التي سيأخدها المتغير
    
if($a<$b// الشرط
        
ffor(); // اسدعاء الدالة  من جديد مادام الشرط لم يتحقق
}
ffor(); // استدعاء الدالة

echo $c// طباعة القيمة 
للأسف دالة For من reserved words في الـ PHP

دالتك تستخدم global لوصل global environment بـ local environment بينما دالتي تستخدم طريقة تمرير الباراميترز. وفي النهاية النتيجة وحدة






__________________
هل زرت شبكة المحروقي من قبل؟
http://almah.net
المحروقي غير متواجد حالياً   قديم 29-03-2005, 10:36 PM
رد مع اقتباس
خبير JavaScript
تاريخ التسجيل: Jul 2002-
Blog Entries: 15
#21 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة مبرمج إنترنت
أحد جرب كودي ؟؟؟

جربوه وعلموني النتيجة
انا المسؤول و الله نسيتك سهوا رديت على الكل بستتنائك آسف مرة أخرى
بخصوص الكود لم أجرب لكن يمكن أن تستغني على else

==
أخي المحروقي الاخطاء لم تسقط سهوا بل ضننت أن الخوارزمية متشابهة و يبدو ذالك بستتناء الدالة التي تفضلت بشرحها global
بدورك شغلك %100 عدل






Zizwar غير متواجد حالياً   قديم 31-03-2005, 06:26 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Apr 2004-
#22 (permalink)  

عيني عليك باردة ود بلادي






__________________
هل زرت شبكة المحروقي من قبل؟
http://almah.net
المحروقي غير متواجد حالياً   قديم 01-04-2005, 01:52 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#23 (permalink)  

طيب عندى فكرة جميلة جدا جدا جدا جدا

اية رايكم ياشباب نعمل موضوع لالغاز البرمجة

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

ومنه نتعلم ونتبادل الخبرات

وستكون تحدى شيق






__________________
شبكة البيت للتصميمات وبرمجة الاسكربتات الخاصة
http://www.Elbayt.NeT
الزواج - العقارات -الاخبار- مجلات خاصة - نيوك - منتديات - قروبات - مستعمل - الجوال - الوظائف - واى من الاسكربتات الخاصة
elbayt.net غير متواجد حالياً   قديم 12-09-2006, 01:24 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Mar 2000-
#24 (permalink)  

اقتباس:
dim a as integer = 3
dim b as integer = 10
dim c as integer = 0

c=(b-a)+2
document.write(c)
هذا فك الخوارزميه ومهما غيرت القيم سوف تكون النتيجه واحده دون استخدام الداله for or while or do






__________________
قمت بإغلاق مواقعي
من يريد شراء نسخه من جده طرب مراسلتي
r.-f[@]hotmail.com
الثلج غير متواجد حالياً   قديم 25-11-2007, 12:29 AM
رد مع اقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 06:56 PM بتوقيت المملكة العربية السعودية