نوفمبر 032011
 

قد لا تصنف JavaScript كلغة برمجة عند البعض، لأن خواصها تقتصر على جهة المتصفح دون خادم الموقع. فما هي JavaScript؟

جافا سكريبت (بالإنجليزية: JavaScript‏) هي لغة برمجة وتأتي كلمة جافا من الإنجليزية وتعني جزيرة جاوة وهي جزيرة إندونيسية، ولا علاقة لمنشأ اللغة باسمها. طورت جافاسكريبت من قبل شركة نيتسكيب (Netscape) وصن مايكروسيستمز (Sun Micro systems). تختلف الجافا سكريبت عن لغة الجافا من شركة صن مايكروسيستمز والتشابه في الاسم لا يرجع لأنهما مثل بعضهما، وفائدة هذه اللغة هي بثّ الحياة إلى شبكة الإنترنت، حيث تستخدم لإنشاء صفحات إنترنت أكثر تفاعلية (ديناميكية).

مقتبس من الموسوعة الحرة ويكيبيديا

من الأمثلة على JavaScript:

– النوافذ التنبيهية، صورة:

– نوافذ التأكيد، صورة:

– نوافذ ادخال النصوص، صورة:

– استبدال عنوان الصفحة

– التأكد من الحقول المدخلة

– تقنية Ajax، ومكتبة jQuery

– العديد من الأمثلة الأخرى سنتطرق لها في الدروس القادمة بإذن الله

 

كيفية إضافة JavaScript إلى صفحة معينة:

هناك طريقتان، الأولى داخلية وتكون بإضافة شفرة JS في ذات الصفحة ضمن وسم <script>، للتوضيح:

<script type="text/javascript">
window.alert('Welcome to my blog \n http://www.alrashdi.co');
</script>

في أي مكان في الصفحة لكن يفضل أن يكونا من ضمن محتوى الوسم <head>، مثال:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript Example 1</title>

<script type="text/javascript">
window.alert('Welcome to my blog \n http://www.alrashdi.co');
</script>

</head>

<body>
</body>
</html>

والطريقة الثانية بربط JavaScript بملف خارجي (الامتداد .js) بالصفحة والمثال:

<script type="text/javascript" src="http://www.alrashdi.co/file.js"></script>

أو كاملًا:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript Example 1</title>

<script type="text/javascript" src="http://www.alrashdi.co/file.js"></script>
</head>

<body>
</body>
</html>

بشكل عام، JS هي ليست صعبه في التعلم، لكن مثل غيرها، تحتاج للتجربة والممارسة لتتقنها جيدًا، وسأضع الأمثلة في درس لاحق بإذن الله 🙂

أكتوبر 312011
 

في الدرس السابق البرنامج الأول باستخدام Java، تم شرح كيفية عرض مخرجات للمستخدم، في هذا الدرس، سنقوم بتجربة المتغيرات والمصفوفات لكن بشكل مخلص، إن كنت تبحث عن درس مفصل فيمكنك الرجوع لذات الدرس لكن بلغة C، إذ أن الاختلاف بسيط: المتغيرات والمصفوفات في C

أولا: للتذكير، لطباعة رسالة معينة نستخدم الشفرة الآتية:

class testvariables
{
public static void main(String[]args)
{
System.out.print("Hello hct.me!");
}
}

والناتج:

jGRASP UI

(في المربع في الأسفل)

ثانيًا: أنواع المتغيرات في Java:

أيضًا لنختصر الدرس، بالرجوع للأنواع في C، اضغط هنا

مثال على برنامج يقوم بعملية جمع عددين هم 2 في المتغير a و 8 في المتغير b و sum لتخزين الناتج:

class testvariables
{
public static void main(String[]args)
{
int a=2, b=8, sum;
sum = a+b;
System.out.print("the sum of " + a + " + " + b + " is equal " + sum);
}
}

قد تلاحظ تكرار علامة الجمع أكثر من مرة “+”، وللتوضيح، في Java، نستخدم “+” لدمج أكثر من متغير أو نص مقتبس في نفس السطر، مثال آخر:

import java.util.*;
class testvariables
{
public static void main(String[]args)
{
String name;
name = "Abdulaziz";
System.out.print("Hello  " + name);
}
}

الآن، وقت المصفوفات :D. لا تفرق كثيرًا عن C، المثال التالي للتوضيح:

class testvariables
{
public static void main(String[]args)
{
int sum;
int[] numbers = {2, 8};
sum = numbers[0] + numbers[1];
System.out.print("the sum of " + numbers[0] + " + "  + numbers[1] + " is equal " + sum);
}
}

لاحظ أن الفرق بسيط بين C و Java في المصفوفات، بالتالي سنترك تطبيق بقية الدرس لك كتمرين يومي إضافي :mrgreen:

أكتوبر 262011
 

في درس سابق للغة C، تم وضع مقدمة حولها وبعض من الأساسيات في كتابة شفرة C، وفي هذا الدرس، سيتم طرح الأمثلة على المتغيرات والمصفوفات. المثال التالي كنوع من التذكير للدرس السابق:

#include<stdio.h>
main()
{
    printf("Welcome to C Language, enjoy browsing http://www.alrashdi.co/blog \n");
}

ربما تكون هناك اضافة وهي “\n” ويقصد بها كتابة سطر جديد .. يمكنك التجربة عبر تكرارها بين الكلمات لترى النتيجة 🙂

مثلما شُرح سلفًا، هناك أنواع مختلفة من المتغيرات وهي char, int, float وغيرها وكل نوع يتقبل نوع معين من البيانات وللتوضيح:
char: للمدخلات الحرفية
int: عدد صحيح
float: عدد غير صحيح (رقم بفواصل مثلًا؛ لا أذكر المسمى نسبةً لعدم توافقي مع الرياضيات 😀 )

وسنقوم بعمل برنامج مبسط لعمل عملية جمع حسابية، المتغير a للرقم الأول وهو 19، والمتغير b للرقم الثاني وهو 21 وأخيرًا متغير أخير ليخزن ناتج عملية الجمع وليكن sum؛ وبما أن كافة الاعداد صحيحة سيكون النوع هو int لكافة المتغيرات..

الطريقة الأولى لتعريف المتغيرات دون ادخال القيم هي:

#include<stdio.h>
main()
{
int a,b, sum;
}

والطريقة الثانية:

#include<stdio.h>
main()
{
int a;
int b;
int sum;
}

أيضًا يمكن ادخال قيمة المتغيرات في ذات التعريف، ليكون كالتالي بالنسبة للطريقة الأولى:

#include<stdio.h>
main()
{
int a=19,b=21, sum;
}

أو التالي للطريقة الثانية:

#include<stdio.h>
main()
{
int a=19;
int b=21;
int sum;
}

ولإتمام عملية الجمع:

#include<stdio.h>
main()
{
int a=19,b=21, sum;
sum = a+b;
printf("Welcome to C Language, enjoy browsing http://www.alrashdi.co/blog \n");
printf("result of %d + %d = %d", a, b, sum);
}

لاحظ أننا قمنا بتخزين العملية الحسابية في المتغير sum، ثم عرضنا الناتج، ولإزالة الغموض عن سطر طباعة النتائج:

printf("result of %d + %d = %d", a, b, sum);

لاحظ تكرار “%d” ثلاث مرات، ومثلما ذُكر في الدرس السابق، %d ترافق النوع int، فبالتالي هي تعني 3 متغيرات من نوع int. بعد كتابة الرسالة، قمنا بتحديد قيم %d بالترتيب في بقية السطر خارج علامات الاقتباس وفصلنا بينهم بالفاصلة..

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

0 1 2 3 4 5 6 7 8 9
100 101 102 103 104 105 106 107 108 109

نلاحظ من الجدول السابق:

  1. المتغير numbers يحتوي 10 قيم مختلفة
  2. الفهرسة أو index تبدأ من الصفر، أي أن آخر فهرس يكون (طول المصفوفة – 1) وهكذا ..

المثال الآيتي يوضح كيفية تعريف المصفوفة:

#include<stdio.h>
main()
{
int numbers[10];
}

لقد تم التعريف، لكن لم ندخل القيم, ولادخال القيم:

#include<stdio.h>
main()
{
int numbers[10]={100, 101, 102, 103, 104, 105, 106, 107, 108, 109};
}

أو الطريقة الآتية:

#include<stdio.h>
main()
{
int numbers[10];
numbers[0]=100;
numbers[1]=101;
numbers[2]=102;
numbers[3]=103;
numbers[4]=104;
numbers[5]=105;
numbers[6]=106;
numbers[7]=107;
numbers[8]=108;
numbers[9]=109;
}

ولطباعة محتوى المصفوفة، نكتب اسم المتغير ورقم الفهرسة أو index، مثال:

#include<stdio.h>
main()
{
int numbers[10]={100, 101, 102, 103, 104, 105, 106, 107, 108, 109};
printf("%d is in index 5", numbers[5]);
}

 تعدد المصفوفات:

الجدول الآتي يوضح طريقة تخزين البيانات في المصفوفة المتعددة الاتجاه:

0 1 2 3 4
0 100 101 102 103 104
1 110 111 112 113 114

الجدول يوضح أن طول المصفوفة هو 5 × 2، وطريقة التعريف:

#include<stdio.h>
main()
{
int numbers[5][2];
}
وطريقة الادخال البيانات الأولى:
#include<stdio.h>
main()
{
int numbers[5][2]= {
{100, 101, 102, 103, 104},
{110, 111, 112, 113, 114}
};
}

أو الطريقة الآتية:

#include<stdio.h>
main()
{
int numbers[5][2];
numbers[0][0]=100;
numbers[1][0]=101;
numbers[2][0]=102;
numbers[3][0]=103;
numbers[4][0]=104;
numbers[0][1]=110;
numbers[1][1]=111;
numbers[2][1]=112;
numbers[3][1]=113;
numbers[4][1]=114;
}

وطريقة العرض:

#include<stdio.h>
main()
{
int numbers[5][2]= {
{100, 101, 102, 103, 104},
{110, 111, 112, 113, 114}
};
printf("%d is in index [1][0]", numbers[1][0]);
}

في العادة “التكرار” أو “loop” يرافق المصفوفات، وهو يسهل عملية تخزين البيانات، خاصة المدخلة مِن قبل المستخدم، وسيم شرح الطريقة في درس لاحق بإذن الله .. 🙂

أكتوبر 232011
 

في الدرس السابق مقدمة حول Java، تطرقنا في حديث مبسط حول Java. في هذا الدرس سنتابع الحديث لكن بتدعيم الدرس بأمثلة لإيصال الفكرة بطريقة أفضل.

أولًا قبل البدأ في التطبيق العملي، يجب أن نتذكر الآتي:

  1. كل قوس، علامة اقتباس، أو قوس معكوف، يجب أن يغلق في حال فتحه.
  2. كل سطر برمجي يجب أن ينتهي بالفاصلة المنقوطة “;”.
  3. بعض الكلمات المفتاحية، تتطلب أن تكتب بنفس الطريقة في كل مرة، أي في حالة الأحرف (مثال: System != system).
  4. إضافة على النقطة السابقة، Java حساسة لحالة الأحرف، أي المتغير var لا يعادل المتغير Var، ويعتبر متغير آخر.

الآن لنبدأ التطبيق، أول نضع اسم التصنيف، ولنفترض أنه testapp

class testapp
{
}

ما سبق يعتبر كـ”الـغلاف” أو الـكائن الخاص بالتطبيق، وسنقوم بكتابة برنامجنا الأول داخل هذا التصنيف، ليكون:

class testapp
{
 public static void main(String[]args)
 {
  System.out.print("Welcome to Java hct.me visitor!");
 }
}

شرح الكلمات المفتاحية:

class: الكائن او التصنيف

public: يقصد بها أن هذه الدالة أو method، عام، ويمكن استخدامه خارج التصنيف المحدد، و private تخالفها ذلك، بحيث لا يمكن استخدم الدالة خارج ذات التصنيف

static: تعني أن الدالة يتم حلها وقت ترجمة البرنامج compiling، و Dynamic: يتم حل الدالة أثناء عمل البرنامج .. (إن صح التعبير)

main: يقصد بها الدالة الرئيسية بالبرنامج، أي التي يبدأ البرنامج بتشغيلها.

هنا، ينتهي التطبيق الأول للـJava، وسنتابع في درس آخر التطبيق الثاني في المتغيرات والمصفوفات بإذن الله 🙂

أكتوبر 232011
 

ما هي Java؟

هي لغة برمجية كائنية، تعمل على مختلف الأنظمة المعروفة (Linux, Mac, Windows) بشرط تواجد مترجمها في تلك الأنظمة، وتستخدم الأصناف والدوال في البرمجة (Class & Methods) وهنا اقتباس حول هذه اللغة:

لغة الجافا Java Language:
هي لغة حديثة أنتجتها عام 1995م شركة SUN Micro System لتناسب التطبيقات الحديثة .
وهي تناسب تطبيقات الإنترنت حيث أصبحت هي قلب برمجة الإنترنت بما توفره من إمكانيات .
وتتصف لغة الجافا بالصفات التالية :
1- لغة برمجية تعمل بواسطة الأهدافOOP .
2- لها بيئة تشغيل خاصة بها JVM .
3- لها مكتبة فصائل Class Libraries .
4- تقوم على لغة C / C++ .
5- تعمل على معظم نظم التشغيل .

وفيما يلي شرح هذه النقاط :
1- لغة تلتزم بقواعد البرمجة بواسطة الأهداف Object Oriented Programming (OOP) : حيث وفرت كثير من الجهد الذي كان يبذل باستخدام البرمجة التقليدية ، حيث كانت البرمجة التقليدية توفر للمبرمج مكتبة من الدوالي إضافة إلى تركيب تقليدي للبرنامج وعلى المبرمج أن يستعمل الدوالي مع تركيب البرنامج لإنشاء التطبيقات مما يضطره لكتابة السطور الكثيرة أكثر من مرة ؛ لقد كانت وحدة بناء البرنامج هي الدالة .. في حين أتت البرمجة بواسطة الأهداف بفكرة جديدة هي إنشاء عناصر متكاملة تحتوي على بيانات ودوالي هي أساس إنشاء البرنامج .. وبالتالي أصبحت وحدة بناء البرنامج وحدة كبيرة هي الفصيلة أو العنصر Object مما سهل واختصر الكثير .

2- لغة لها بيئة تنفيذ خاصة JVM : للغة الجافا بيئة تشغيل للبرنامج هي JVM التي تقوم بترجمة البرنامج للغة الآلة وبالتالي فإن لغة الجافا غير مرتبطة بنظام التشغيل .

3- لها مكتبة فصائل قوية Class Libraries :نظراً لأن لغة جافا تعتمد على مفهومOOP فهي تحتوي على مكتبة فصائل قوية توفر معظم أو كل الفصائل المطلوبة للإعمال مثل التعامل مع الملفات وقواعد البيانات والشبكات و الرسومات المجسمة والحركة وكذلك التعامل مع الإنترنت .

4- لغة مبنية على لغة الـC,C++ : فعندما تم إنشاء لغة الجافا كان أساس بنائها لغة من أشهر وأقوى اللغات وهي C,C++ وبالتالي فهي لم تبدأ من حيث بدأ الآخرون بل من حيث انتهى الآخرون وهي لغة C++ و ثم إضافة الجديد في لغة الجافا .

________________

تعريفات هامة :
1- بيئة تشغيل الـJVM جافا .
2- مترجم برنامج JIT .
3- Java Applet .
4- Java Application تطبيق جافا .
5- مكتبة SDK , JDK .

وفي مايلي شرح هذه التعريفات :
1- بيئة التشغيل “JVM” :
الحروف JVM اختصار للعبارة JAVA Virtual Machine , وهي فكرة قامت جافا بإمشائها لتجعل لغة جافا تعمل على جميع أو معظم أنظمة التشغيل . وتقوم الفكرة على إنشاء طبقة وسيطة Software كأنها برنامج تشغيل للبرامج RunTime لكل نظام تشغيل يتم إنزاله أولاً على الأجهزة بحيث تفهم هي برامج جافا وتفسرها لنظام التشغيل ثم الجهاز ولهذا كان من مزايا لغة جافا أنها تعمل على كثير من نظم التشغيل الموجودة بعد إعداد JVM الخاصة بمعظم أنظمة التشغيل .. فلا يهم إذا كان البرنامج مكتوب لنظام التشغيل WINDOWS أو UNIX , المهم أن البرنامج يكتب ثم يحمل إلى الجهاز وعلى الجهاز يوجد JVM للنظام الموجود وبالتالي يعمل البرنامج .
2- Java Applet :
نوع من أنواع التطبيقات الذي صمم خصيصاً للإنترنت حيث يقوم المطوّر بإعداد هذا البرنامج Applet ثم يستدعيه من خلال إستخدام ملف HTML بشرط تحميل برنامج Applet على الخادم server الموجود عليه ملف الـHTML . أما طريقة إنشاء Applet وطريقة إستدعائها من داخل ملف HTML فهذا ما سنتعلمه إن شاء الله خلال الدروس القادمة .
3- Java Application تطبيق الجافا :
هو تطبيق يشبه التطبيقات المنشأة بجميع لغات البرمجة الأخرى يعمل مع نظام التشغيل بعيداً عن شبكة الإنترنت والمشهور عن لغة جافا أنها تعدّ برامج للإنترنت ولكن غير المشهور أيضاً أنها توفر كثير من نقاط القوة في إعداد أي تطبيق سواء مكتبي DISKTOP أو خاص بالشبكات CLIENTSERVER .

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

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

واجهة البرنامج:

استخدام البرنامج ليس بالأمر الصعب، وسيقتصر استخدامنا على عدّة أزرار في الدروس القادمة فقط، وهي:

  1. زر الترجمة، أي لتحويل الشفرة إلى bytecode والكشف عن الأخطاء.
  2. تشغيل البرنامج، إن لم يتم العثور على أخطاء.

 

من القواعد في Java، هو استخدام البرمجة الكائنية، أو التصنيفية، أي أن البرنامج عبارة عن Class أو أكثر. يجب الملاحظة أنه يجب تخزين الملف بنفس اسم الكائن أو التصنيف الأساسي (Class Name)، أي لنفترض أن الشفرة هي كالتالي:

class testclass
{
 public static void main(String[]args)
 {
  System.out.print("http://www.alrashdi.co/blog");
 }
}

بالتالي يجب علينا حفظ الملف باسم testclass.java

 

سيتم المتابعة في درس لاحق بإذن الله 🙂