المصفوفات Arrays:المصفوفة عبارة عن متغير واحد يحمل عدة قيم بداخلة ولكل قيمة فيها له مفتاح وتبدأ من
المفتاح رقم 0 وهكذا بحسب
عناصر المصفوفة
و أنواع المصفوفات هي: مصفوفة
أرقام صحيحة، أو مصفوفة حروف ، أو مصفوفة نصوص ،
ويحدد ذلك ما قد خزن في أي متغير من
المصفوفة.
سنقوم بتخزين ثلاثة أرقام في
مصفوفة المثال التالي لكي نتمكن من
فهمها:
$a[0]=10;
$a[1]=5;
$a[2]=8;
echo $a[0].' '.$a[1].' '.$a[2];
?> سيتم طباعة التالي : 10 5 8
من المثال
اتضح لنا التالي
:• في السطر الثاني قمنا بتحديد نوع المتغير على أنه مصفوفة
أرقام عددية ، وذلك تخزين الرقم 10 في أول خانة من المصفوفة
والتي يرجع إليها عن طريق المفتاح صفر , فهذا الرقم
دائما ما يدل على أول خانة من المصفوفة.
• قمنا بعد ذلك بتخزين
الرقم 5 في الخانة التي تليها ذات المفتاح
واحد والرقم 8 في الخانة الثالثة والتي يرجع اليها
عن طريق المفتاح رقم 2.
• عن طريق الدالة echo قمنا بعرض ما بداخل المصفوفة.
• والشكل التالي يبين
شكل المصفوفة
المتغير $a[0] $a[1] $a[2]
المفتاح 0
1 2القيمة 10
5 8نستنتج من ذلك كلة ان المصفوفات مفيدة جدا في حمل عدة قيم والإحتفاظ بها
ونجد أن الحلقات عملها سيكون كثيرا مع المصفوفات حيث أن المصفوفة
يمكن تعبئتها أو استخراج مافيها من خلال الحلقات
لنرجع لمثالثنا السابق
ونطبع ما بداخلة من خلال الحلقات وننظر الفرق في سرعة
العمل !
$a[0]=10;
$a[1]=5;
$a[2]=8;
for($i=0;$i<3;$i++)
{
echo $a[$i];
echo "
";
}
?>سنجد أن الناتج
سيكون
:
10
5
8
وهكذا نجد التلاحم الكبير بين
الحلقات والمصفوفات
و لعلي ادرج عددا من الدوال
التي تتعامل مع المصفوفات موضحا عملها
بمثال وهي كالتالي :
الدالة الأولى : array()لإنشاء مصفوفة و اسناد القيم
لها و المصفوفة كما
قلنا أنها تحتوي على مفتاح و
قيمة و دائما المفتاح يبدأ من الصفر و إذا احتجنا أن نحدد قيمة
مفتاح معين في هذه الدالة فإننا نسنده كالآتي :
Key => values
و هذا المثال
يوضح عمل الدالة
/* بداخلها عدد من
المصفوفات لكل مصفوفة عدة متغيراتexamتم
انشاء مصفوفة اسمها
*/
$exam = array (
"mesg" => array ("a"=>"arab",
"b"=>"team", "c"=>"php"),
"numbers" => array (1, 2, 3, 4, 5, 6),
"holes" => array ("first", 5 => "second",
"third"),
// وضعنا عدد من
الأرقام بدون ان نضع
مفتاح لها
babلاحظ في المصفوفة
//و لاحظ رقم 1
السادس وضعنا له مفتاح رقمه
8 و العدد الذي بعده
رقم 4
"bab" => array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13)
);
print_r($exam);
?>ناتج الطباعة هو Array ( [mesg] => Array (
[a] => arab => team [c] => php ) [numbers] => Array ( [0] =>
1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) [holes] =>
Array ( [0] => first [5] => second [6] => third ) [bab] => Array (
[0] => 1 [1] => 1 [2] => 1 [3] => 13 [4] => 1 [8] => 1 [9]
=> 19 ) ) ملاحظه تم الفصل بين المصفوفات
داخل المصفوفة exam ب فاصله , إلا الأخير لا يوضع له
الدالة الثانية : in_array()في هذه الدالة يتم التحقق من وجود المطلوب اخل مصفوفة معية و لعلنا نوضح ذلك بمثال :
$php = array ("ali", "sami", "abomuhammad");
if (in_array ("abomuhammad", $php)) {
print "مرحبا";
}else{print "بالخارج";}
?>طبعا الناتج سيكون ( مرحبا )
الدالة الثالثة ؟: Max()تتعامل هذه الدالة مع
المصفوفات لتخرج لنا أعلى قيمة في المصفوفة و المثال يوضح ذلك
$a = array(1,2,3,4,8);
$b = array(1,2,3,4,);
echo "A: ".max($a)." : ";
echo "B: ".max($b)." : ";
?>و الناتج سبكون
A: 8 : B: 4:
[b]ضرب مصفوفة في
مصفوفة
يتم ضرب مصفوفة في أخرى ولكن بتواجد الشرط
الآتي : أن يكون عدد الأعمدة بالمصفوفة الأولى يساوي عدد الصفوف بالمصفوفة
الثانية. يتم ضرب المصفوفات كالتالي : الصف الأول بالعمود الأول ثم الصف
الثاني بالعمود الثاني .......إلخ،وينتج من ضرب الصف الأول بالعمود الأول العدد
الأول بالمصفوفة الناتجة. ونضرب العدد الأول بالصف بالعدد الأول بالعمود.
ضرب مصفوفة بعدديمكن ضرب أي مصفوفة بعدد حقيقيا كا ن أو
عقديا, نقوم بكل بساطة بضرب كل عنصر من المصفوفة في هدا العدد.
تعريف الخوارزمية Algorithm تعتبر الخوارزميات من اهم العلوم في فرع المعلوماتية و قد أسسها
العالم المسلم محمد بن مسلم الخوارزمي, تبحث الخوارزميات في البحث عن حلول لمسائل
معينة في المعلوماتية بغية تحويلها إلى برامج , كما تبحث أيضا في إيجاد الحل
الافضل في حال تعدد الحلول و قد عرف العالم كنوث الخوارزمية في كتابه "فن
البرمجة" بأنها مجموعة من القواعد التي تتميز بالصفات التالية:
·
يجب أن تكون هذه المجموعة منتهية و
تنتهي بعد عدد منته من التعليمات
·
يجب أن تكون محددة و دقيقة بمعنى
ان تكون كل يجب أن توصف بدون التباس
·
يجب تحديد مجال تعريف معطيات الدخل
إن وجدت (أعداد صحيحة ,حقيقية,أحرف.......)
·
يجب أن تكون هناك نتيجة(واحدة على
الاقل)
·
يجب أن تكون فعّالة أي أن تكون
العمليات كلها قابلة للتنفيذ و في وقت منته من قبل شخص يستخدم الامكانات اليدوية
طرق
التعبير عن الخوارزمية
هنالك عدة طرق للتعبير عن الخوارزمية منها بيانية(مخططات)و منها نصية(عبارات)
و سوف نتحدث عن الطرق البيانية فقط تعتمد الطريقة البيانية لصياغة الخوارزميات على
توضيح خطوات تنفيذ الخوارزمية باستخدام أشكال هندسية خاصة و أسهم تصل بينها إضافة
إلى عبارات باللغة الطبيعية و تعابيير رياضية أو منطقية. وبذلك نحصل على ما يسمى
بالمخطط التدفقي Flowchart Diagram ونلاحظ هنا أن الأسهم تفصل العمليات اللازمة لانجاز العمل و تبين
تسلسلها يستخدم المخطط التدفقي أشكالاً هندسية متفق عليها خصص كل منها لنوع من
العمليات .
·
الدائرة (الشكل البيضوي)لتحديد
بداية الخوارزمية و نهايتها
·
المستطيل العمليات(التنفيذبة
العادية,الحسابية)
·
متوازي الأضلاع عمليات الإدخال و الإخراج
·
المعين العمليات التي ترتبط
باختبار تحقق سشرط ما و تتطلب قراراً منطقياً
·
السهم يحدد اتجاه التنفيذ