الجمعة، 12 يوليو 2013

الدرس(3):الثوابت والمتغيرات وخصائصها....نظرة مفصلة



الدرس(3):الثوابت والمتغيرات وخصائصها....نظرة مفصلة


 عند فتح الفيجوال بيسك 2008 ستظهر لنا هذه النافذة هنا ويمكنك من خلالها  تحديد اللغة
 التي ستبرمج بها والية العمل التي تريدها داخل البرنامج والصورة
 توضح :_

الدرس الثالث :_ الثوابت والمتغيرات .
اولاً الثوابت :-
تنقسم الثوابت في لغة الفيجوال بسيك 2008 إلى ثلاثة اقسام رئيسية وهي نصية او رقمية ومنطقية
 ويمكننا تعريف ثابت في البرنامج من خلال الكلمة المحجوزة
كود:
Const
ولاحظ هنا اخي الكريم في الفيجوال بيسك 2008 لا يمكنك تعريف ثابت  إلا من خلال المبدأ التالي
كود:
Const   name  as  type  =  value
كود:
Const   اسم الثابت       as  قيمته =   نوعه
ولاحظ هنا عند كتابة الثابت لا يمكنك نسب قيمة له إلا في  نفس السطر الذي قمت بكتابة الثابت فيه .


اي انه لايمكنك ان تكتب الثابت في سطر وقيمة الثابت في سطر اخر وهذا من الاشياء   التي تميز المتغير عن الثابت
 امثلة على تعريف ثوابت جديدة لاستخدامها في  البرنامج :-
 كود:
Const name As String = "mohammed" 
ثابت من نوع نص
كود
Const age As Integer=22
' ثابت من نوع عدد صحيح
كود:
Const marry As Boolean = False

ثابت من نوع قيمة منطقية

الطرق التي من خلالها تستطيع تعريف ثوابت   لبرنامج :-
1 - الطريقة التقليدية تعريف ثابت ونسب قيمة له مثل
كود:
Const name As String = "ali"
2- كتابة الثابت بدون تحديد نوع له مثل  :-
كود:
Const name = "lo2i"                          
3- كتابة اكثر من ثابت مع تحديد القيمة لها في سطر واحد :- مثل
كود:
Const name As String = "mohammed", age As Integer = 22
4- كتابة اكثر من ثابت بودن تحديد نوع الثابت مثل
كود:
Const name = "mohammed", age = 33, marry = False
                                  لاحظ هنا اننا لم نستخدم كلمة تعريف الثابت إلا في بداية الجملة فقط
فوائد الثوابت في البرنامج  :_
 1- تسهيل البرمجة عندما تريد التعويض بقيمة ثابتة لعدد
 غير معين من المتغيرات.
 فمثلاً اذا اردت ان ان تعٌرف ثابت لعمر اعضاء في  الجروب
 اسماؤهم كالتالي :_ أحمد و محمد و لؤي
 ونريد اعطاء عمر واحد لكل  الاعضاء
كود:
Const age As Integer = 20
Dim person1 As String = "ahmad"
Dim person2 As String = "mohammed"
Dim person3 As String = "lo2i"
MsgBox(person1 & " = " & age & vbCrLf & person2 & " = " & age & vbCrLf & person3 & " = " & age)

ووظيفة الدالة VBCRLF
 هي كالتالي :-
 الدالة تعمل على اعطاء سطر جديد في الرسالة ويمكن ايضاً استخدامها في اكثر من مجال
 في التيكست وفي اللابيل وفي اكثر من اداة
 وضيغتها كالتالي :_ & VBCRLF &



- انها تتعامل مع المصفوفات بكل يسر وسهولة ويمكنها الوصول إلى مصفوفة معينة
 ==================================================
الاخطاء المتوقعة حدوثها عند تعاملك مع الثوابت :-
اولاً :-
تغيير قيمة الثابت في البرنامج او اثناء التشغيل مثال لذلك :-
كود:
Const age As Integer = 20
        age = 22 
ثانياً:-
تعريف الثابت في سطر ونسب
 القيمة له في سطر اخر كما قلنا سابقاً .
 مثال لذلك ..

كود:
Const age As Integer
        age = 18 
لاحظة هامة جداً جداً :- عند تعاملنا مع الثوابت يجب علينا ادخال القيمة للثابت في نفس جملة
 تعريف الثابت .

 ولا حظ هنا انا الفرق بين النقطة الاولى والثانية
 هي ماسيوضحه هذا الشكل





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

Const a = "lo2i" 

كود:
Const s = 123 
كود:
Const x = true
                                  ولكن في هذه الحالة يمكنك اعطاء اي قيمة كانت
 له حرفية نصية منطقية(اي قيمة صحيحة او
 خاطئة)
=================================
ثانياً المتغيرات :-
تعريفها :- موقع محدد في
 الذاكرةيمكن ان يحتوي بيانات من اي نوع فالمتغير لايعطي قيمة ثابتة بل يمكن تغييرها
 بعكس الثابت .
الشروط اللازمة لكتابة اسماء
 المتغيرات في البرنامج:
 1 - عدم استخدام الكلمات المحجوزة في البرنامج
كود:
(if       dim      while     do      ......) 
2- عدم البدء برقم في اسم المتغير مثل لذلك  :-
كود:
Dim 1a as string 
     3- يمنع استخدام الرموز في اسماء المتغيرات مثل
كود:
    Dim ? as Integer
- يمنع استخدام النقطة او الفاصلة في اسم  المتغير مثل :-
كود:
Dim a.1 as string
        Dim a,1 as String 
طرق تعريف المتغيرات في البرنامج باستخدام الكلمة المحجوزة Dim
1 – الطريقة الافتراضية لتعريف
 المتغيرات
كود:
Dim name As String
2 - طريقة تعريف متغير منفصل مع نسب القيمة له في نفس السطر
كود:
Dim name As String = "ali"

طريقة تعريف اكثر من متغير في سطر واحد
 ويكونوا لنفس النوع (اي كلاهما من نوع نصي او كلاهما من نوع رقمي) مثل لذلك
كود:
Dim f_name,l_name  As string
في هذا المتغير عرفنا متغيريين من نوع نص اسم المتغير الاول
 والثاني L_name
 F_name
4 - تعريف متغيرات مختلفة في نفس
 السطر (اي مختلفة في النوع اي متغير نصي ومتغير رقمي ومتغير منطقي) مثل

كود:
Dim name As String, age As Integer, marry As Boolean
لاحظ هنا اننا كتبنا المتغيرات جميعها بكلمة واحد فقط
 للتعريف وهي Dim

5 - تعريف متغيرات من غير نوع في
 سطر واحد ونسب القيم لها مثل

كود:
Dim name As String = "mr.mohammed", age As Integer = 12, marry As Boolean = True

لاحظ اننا عرفنا 3 متغيرات من انواع مختلفة منها النصي ومنها الرقمي ومنها
 المنطقي..
 6 - تعريف متغير من دون ذكر الكلمة Dim مثل :-

كود:
Name="lo2i"
طرق تعريف المتغيرات في البرنامج
 :_

 باستخدام الكلمة المحجوزة static


1 - يمكنك استخدمها بهذه الطريقة


كود:
Static name As String 
وسيبقى البرنامج محتفظاً بها داخل البرنامج من لحظة
 تشغيله إلى لحظة ايقافه
 المعلومات المستخدمة لاضافة المتغيرات باستخدام الامر
 Dim
 لاتختلف عن طرق اضافة المتغيرات في الاستاتيك static
الفرق بين الكلمتين Dim و static

عندما تريد من المتغير ان يحتفظ باقيمة داخل اجراء خاص فقط تستخدم
 له هذه الكلمة Dim

 عندما تريد من المتغير ان يحتفظ بقيمة المتغير طيلة فترة عمر
 البرنامج يمكنك استخدام هذه Static الانواع من المتغيرات


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

                                               
ويمكننا القول هنا ان انواع المتغيرات تنقسم إلى ثلاث اقسام رئيسية وهي كالتالي :-
1 - متغيرات عددية .
2 - متغيرات نصية .
 3 - متغيرات منطقية.
 4 - متغير عام ويحمل كل هذه القيم .

 *******************************

 سوف اعطي هنا امثلة بسيطة عن المتغيرات النصية
كود:
Dim NAME As String
        Static NAME2 As String
        NAME = "ali"
        NAME2 = "MOHAMMED"
امثلة عن المتغيرات الرقيمة
 :_

كود:
Dim num1 As Integer
        Static num2 As Integer
        num1 = 10
        num2 = 10
        MsgBox(num1 * num2) 
امثلة عن العمليات المنطقية في المتغيرات :-

كود:
Dim value As Boolean
        value = True
        value = false
        MsgBox(value)
مثال على تعريف المتغير العام في البرنامج :-

كود:
Dim s As Object
        s = 12345
        s = 12.345
        s = "mohammed"
        s = "lo2i"
        s = True
        s = False
        MsgBox(s)
                               كما قلنا سابقاً يمكننا الاستعان بهذا النوع من المتغيرات اذا كنا غير متأكدين من المدخلات التي يدخلها المستخدم .

*************************************
المتغيرات والمساحات التخزينية التي تأخذها من الذاكرة توضحها الصورة التالية :-


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

دعواتكم لي بشفاء
انتظروا الدرس القادم

الخميس، 11 يوليو 2013

الدرس 2- فهم مبادئ اللغة والمدخل لها مع برنامج الة حاسبة بسيطة


الدرس 2- فهم مبادئ اللغة والمدخل لها مع برنامج الة حاسبة بسيطة

للبدئ في اللغة بشكل جدي لا بد من فهم عدة نقاط
 أولا: الكلمة المحجوزة:
 وهي كلمة تم إستخدامها من قبل لغة البرمجة المستخدمة مثل الكلمة if فهي كلمة محجوزة في لغة سي شارب
 ثانيا: مجالات الأسماء (Name Spaces):
 يمكنك إستيراد إحدى مجالات الأسماء باستخدام الكلمة المحجوزة using
 فمثلا لو أردنا إستيراد الفئة IO وكما هو واضح أن أكبر مجال أسماء في اللغة هو System:
كود:
using System.IO; 
فمثلا إذا أردنا أن نوصل إلى أمر فتح ملف في برنامجنا يمكننا فعل إحدى الطريقتين:
 علما أن الأمر يقع تحت مجال الأسماء System.IO
الأولى
كود:
using System.IO; 
وفي هذه الحالة يكتفى بكتابة الأمر كالتالي:
 File.Open





 البدئ مع لغة c# :
 الان قد ان الأوان لنبدأ بلغة سي شارب بشكل جدي:
 كتابة البرنامج الأول لك:
 أولا قم بفتح برنامج ال Visual Studio 2008
 سوف تجد كلمة Project وعلى يمينها خيارين Open,Create
 Open : لفتح برنامج مصنوع سابقا
 Create : إنشاء مشروع جديد
 إختر Create سوف تظهر لك نافذة تحوي على العديد من الخيارات التي سوف ندرس اهمها:
 1- Windows Forms Application
 وهي البرامج ذات النوافذ كال Internet Explorer ويكون إمتدادها exe
 2- Class Library
 وهي عبارة عن صف برمجي فارغ للبدأ ببرمجته من الصفر ويكون إمتداده dll
 3- ASP.NET Web Application
 إنشاء تطبيقات Web باستخدام تقنية asp.net
 4- ASP.NET Web Service Application
 إنشاء خدمات لتطبيقات الويب باستخدام تقنية asp.net
 5- WPF Application
 وهي برامج متطورة يستخدم في رسمها لغة xaml
 6- Console Application
 وهي تطبيق مهمته تنفيذ شيئ ثم الإغلاق وسوف تظهر ال Console أثناء تنفيذ هذا البرنامج
 وعادة ما يستخدم في برامج فك الضفط . النسخ ,,,
 7- Windows Forms Control Library
 لتصنيع أداة خاصة بك لأستخدامها في تطبيقات Windows Form Application
 والان نعود إلى موضوعنا سوف نختار Windows Forms Application:

 في ال Name : نضع إسم البرنامج والذي سيكون الان myfirstprogram
 ثم إضغط على زر Ok
 الان سوف تلاحظ ظهور فورم أمامك ( تم الشرح في الدرس السابق ماهية الفورم )
 والان سوف نبدأ بدراسة بعض خواص هذه الفورم:
 ( ملاحظة لعرض خواص Control ما إضغط عليها ضغطة بالزر الأيمن للفأرة ثم إختر Properties
 سوف تظهر خصائص ال Control في أسفل الشاشة على اليمين )

 1- الخاصية Text
 وهي الخاصية التي تحدد ماهو المكتوب على رأس الفورم (( بشكل إفتراضي هو Form1)) لأنها الفورم الأولى في البرنامج
 إكتب هنا MyFirstProgram
 2- الخاصية Size
 من خلال هذه الخاصية تستطيع تحديد حجم الفورم ولا داعي لكتابتها يدويا فأنت عدل بحجم الفورم بالفأرة وهي سوف تعدل تلقائيا
 3- الخاصية Name:
 ومن هنا يتم تحديد إسم الفورم (( إجعلها MainForm))
 4- StartPosition
 ومن هنا تحدد مكان الفورم عندما يتم تحميلها (( إجعلها CenterScreen لكي تبدأ بمنتصف الشاشة ))
 الان سوف نقوم ببرمجة الة حاسبة بسيطة نقوم بوضع رقمين لها فتخرج الناتج برسالة:
 ولكن قبل ذلك
 عليا تعريفك ببعض مصطلحات اللغة ولو بشكل بسيط ( الذي يلزمنا الان ) :
 bool وتكون قيمتها true أو false
 string وتكون قيمتها نصية مثلا "td"
 double رقم كبير عشري
 (( سوف يرد في الدورة الشرح المفصل لكل واحدة وحدود إستيعابها ومقدار وزنها على ال ram))
 الان نضع إثنان من ال textbox على ال form ثم نضع Button نجعل الخاصية text له = إجمع
 وفي كل من خاصية ال text لل textboxes إجعلها = 0

 الأن إضغط على الزر ضغطة مزدوجة سوف تلاحظ أن صفحة التي تتم فيها البرمجة قد ظهرت وكتب
 ما يلي:

كود:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

    }
}
لكن ما الذي كتب تلقائيا؟؟؟
 أولا:
كود:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; 
هنا تم إستيراد المجالات كما تعلمنا في الدرس السابق
 ثم تم تعريف ال namespace الخاص بالبرنامج والذي يدعى هنا WindowsFormsApplication1
                 كود:
public Form1()
        {
            InitializeComponent();
        } 
هنا كما تلاحظ أنه تم إستدعاء الأمر InitializeComponent
 وهو الأمر الذي يقوم برسم الفورم ( سوف نتطرق إليه ويمكن الوصول إليه من ال Designer
 الخاص بالفورم)
كود:
private void button1_Click(object sender, EventArgs e)
        {
هنا سوف ينفذ كل شيئ مكتوب عند ضغط button1
        }
 ما هنا فقط تم إضافة أمر في ال Designer مع الحدث Click لل button1 لكي يتم تنفيذ الكود مع ضغط الزر والذي يتم على الشكل التالي
كود:
button1.Click+=new EventHandler(button1_Click); 

أنتبه في الكود السابق تم إفتراض أنك قد كتبت أمر بأسم button1_Click حيث سوف يتم تنفيذ هذا الأمر عند ضغط زر البرتون وبإمكانك تغيير إسم الأمر كما تشاء
 الان نكتب في الأمر الذي كتب تلقائيا في المكان الذي أشرت إليه سابقا:
كود:
private void button1_Click(object sender, EventArgs e)
        {
هنا أكتب كود الجمع
        } 
نكتب:
كود:
double num1, num2;
            num1 = double.Parse(textBox1.Text);
            num2 = double.Parse(textBox2.Text);
            MessageBox.Show((num1 + num2).ToString()); 

شرح الكود:
 أولا قمنا بتعريف متغيرين من نوع double الأول :num1 والثاني num2
 وفي السطر الثاني تم إعطاء القيمة num1 = textbox1.text ولكن هنا يوجد مشكلة
 أنه لا يمكن أن نعطي قيمة نصية string لقيمة عددية double
 لذلك قمت بالتحويل من string إلى double كما هو واضح
 أي تستخدم هذه الطريقة للتحويل من string إلى double على الشكل التالي:
 مثلا:
كود:
num1 = double.Parse("500"); 
فهنا أصبحت num1 = 500

 ثم في السطر الثالث قمنا بجعل num2 = textbox2.text بعد تحويلها ل double بنفس الطريقة
 والان نصل إلى السطر الثالث ما معنى MessageBox???
 وهي أمر يمكن من خلاله إظهار رسالة بقيمة نصية كالتالي:
كود:
MessageBox.Show("mymessage");
فقد قمت بجمع الرقمين num1,num2 بين قوسين ثم كتبت على القوسين .ToString()
 ويتم إستخدام هذه الدالة على الشكل التالي:
                 كود:
textBox1.text = num1.ToString();
كما هو واضح فإنها تستخدم للتحويل من رقم إلى string
 والان لتجريب الحاسبة إضغط على زر f5 وأكتب رقم في كل من ال textboxes وأضغط على ال Button
 وانظر إلى النتيجة...

 ( الان لا تحاول العبث بالالة الحاسبة لأنها في كثير من الحالات سوف تتوقف عن العمل كوضع أحرف بدل من الأرقام لكن في الدرس القادم إن شاء الله سوف نتممها لنجعلها تتحقق من المدخلات )

 يتبع في الدرس القادم إن شاء الله...

الدرس (2) : الفيجوال بيسك دوت نت (لمحة تعريفية)



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

الدرس (2) : الفيجوال بيسك دوت نت (لمحة تعريفية)

 ذكرنا في الدرس السابق :دورة تعلم معنا فيجوال بيسك دوت نت أساسيات البرمجة وما هيتها وفي هذا الدرس سوف نتحدث بإذن الله تعالى عن بيئة الدوت نت والجديد بالتحديد:

 في هذا الدرس سوف نتحدث عن:
الجديد في الدوت نت
تركيبة برنامج الفيجوال بيسك
انواع المشاريع في فيجوال بيسك دوت نت
برنامج Hello World

 والآن دعونا نناقش ما هي الدوت نت وما جد فيها؟

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

1.ما هو الدوت نت .NET

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


2.ما يبن الفيجوال بيسك دوت نت والفيجوال بيسك 6 وما قبل
لا يمكن اعتبار الفيجوال بيسك دوت نت امتداد لفيجوال بيسك فبدخولك الدوت نت فإن فيجوال بيسك 6 ليس لها اي اعتبار سوى الصيغة المشتركة في قواعد البرمجة.

 كما أن فيجوال بيسك 6 يستخدم التقنية (Component Object Model) COM أي تقنية برمجة المكونات وهى ActiveX Controls و ActiveX DLL ....إلخ
 أما الفيجوال بيسك دوت نت فيعتمد تقنية الدوت نت التي كانت في يوما من الايام ستصدر باسم COM2 ولكن بسبب الاختلاف الجذري مقابل تقنية الCOM عزفوا إلى تسميتها بالاسم الحال .NET
3.ما هو محتوى بيئة التطوير فيجوال بيسك دوت نت؟
 كأي برنامج كبير فان الفيجوال بيسك دوت نت يحتوي:

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

.أنواع المشاريع في فيجوال بيسك دوت نت

 تنقسم المشاريع بشكل عام في بيئة الدوت نت باختلاف اللغة إلى :

 أولا: مشاريع الونيدوز

تطبيقات الويندوز
خدمات الويندوز
تطبيقات WPF
تطبيقات الConsole والتي تعمل تحت بيئة الدوت نت والعديد..

ثانيا:مشاريع الويب

تطبيقات الويب
خدمات الويب
أدوات السيرفر
أيضا أدوات الأجاكس والعديد ايضا....

ثالثا:مشاريع الجهاز الذكي
5. البرنامج الشهير Hello World
سوف نتعلم صياغة هذا البرنامج باستخدام الConsole وتطبيق الويندوز
 أولا : باستخدام الConsole
 أنشئ مشروع Console جديد
 جرب الكود التالي:

كود:
Sub Main()
 Console.Write("Hello World")
 End Sub
لكن كما لاحظتم فان هناك مشكلة بعد تنفيذ البرنامج فانه سرعان ما يغلق البرنامج والسبب باختصار لان مهامه انتهت
 يمكن التغلب على هذه المشكلة باضافة الكود التالي:

كود:
Console.ReadKey()
ومهمة هذا الكود الانتظار الى أن يقوم المستخدم بادخال مفتاح وبالتالي مهمة هذا الكود قراءة نقرة

 ليصبح الشكل الأخير للكود

كود:
Sub Main()
 Console.Write("Hello World")         
    Console.ReadKey()     
    End Sub
ثانيا:باستخدام تطبيقات الويندوز المرئية


 أنشيء مشروع Windows Application
قم باضافة زر Button وواحد TextBox وغير بالخصائص ليصبح بالشكل التالي

وفي هذا الببرنامج يلزمنا عند الضغط على الزر Buttin1 أن يعرض رسالة Hello World في مربع النص
وسيكون بالشكل التالي:

كود:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox1.Text = "Hello World"     
End Sub
انتظروا الدرس القادم


الأربعاء، 10 يوليو 2013

إعلان بدء دورات السي شارب و الدوت نت في ملتقى الجامعات يوميا في رمضان الساعه التاسعه مساءاً فكونوا معنا.
اضافه الي مجموعه من البرامج والمسابقات الدينيه و الثقافيه .

https://www.facebook.com/groups/459876307429381/482063905210621/?comment_id=482070221876656&notif_t=group_comment