مهارات حاسوب ٢ Computer Skills 2 صياغة البرامج ولغات البرمجة Programming & programming languages المحاضرة الثانية
صياغة البرامج ولغات البرمجة بعد أن تكلمنا سابقا عن برامج نظم التشغيل و برامج التطبيقات يبقى سؤال من كتب هذه البرامج وكيف كتبت وبأي لغة وما هي الخطوات التي اتبعت لبناء هذه البرامج 2
صياغة البرامج ولغات البرمجة مجموعة هو التعليمات الحاسوب توجه التي منطقيا المرتبة البرنامج Program مفيدة. معلومات على الحصول بهدف البيانات على معين عمل ألداء لغات مجموعة هي توفر التي القواعد البرمجة Programming Languages طريقة صياغة تعليمات البرنامج. 3
عمل صائغ البرامج Programmer يقوم صائغ البرامج فيقوم ما مشكلة لحل خطوات بعدة )المبرمج( بصياغة أول المشكلة في صورة تعليمات للحاسوب لحلها الحاسوب على التعليمات ينفذ ثم ويختبر لمعرفة البرنامج مدى صحة النتائج البرنامج. عن تقريرا يكتب النهاية وفي 4
خطوات صياغة وتطوير البرامج Program Development Steps مخطط يبين خطوات صياغة وتطوير البرامج 5
خطوات صياغة وتطوير البرامج Program Development Steps.1 تحديد وتعريف المشكلة Problem( )Defining the في هذه الخطوة يقوم المبرمج بتحديد وتعريف المشكلة وتتضمن هذه الخطوة تحديد التالي بالترتيب: الهدف من البرنامج )حساب ارباح فواتير استهالك الماء والكهرباء أو حساب معدل الطالب التراكمي( نوع وحجم المخرجات ووسائل اإلخراج...( نقود شيكات فواتير )تقارير نوع وحجم البيانات المدخلة ووسائل اإلدخال. مستخدمي البرامج والمستفيدين منه. 6
خطوات صياغة وتطوير البرامج Program Development Steps.2 تصميم البرنامج Design the Program يتم هنا تحديد المواصفات والخطوات الدقيقة والمرتبة منطقيا والتي تم فهمها ودراستها في الخطوة األولى. ويتم ذلك بإستخدام عدة طرق منها: الطريقة النصية: لغة الخوارزمية Pseudo code شبه الترميز الطريقة البيانية: خرائط التدفق Flowchart ويطلق عليها أيضا خرائط سير العمليات وهي مجموعة من الرموز المتعارف عليها تستخدم لتوضيح الخطوات المنطقية الالزمة لحل مشكلة ما. 7
الطريقة النصية: لغة الخوارزمية Pseudo code شبه الترميز. خطوات صياغة وتطوير البرامج Program Development Steps المتحول Variable غرض تتغير قيمته ضمن الخوارزمية الثابت Constantغرض ل تتغير قيمته ضمن الخوارزمية الصيغة تتألف من متحولت وثوابت وعمليات حسابية أو منطقية الشرط :صيغة نتيجتها صح أو خطأ? المتحول V X الصيغة 4* Y X 0 3.14 PI الثابت الشرط RAM 8
خطوات صياغة وتطوير البرامج Program Development Steps لغة الخوارزمية Pseudo code التعليمات الترميز. شبه :.1.2.3.4.5 تعليمة القراءة تعليمة الكتابة تعليمة اإلسناد التعليمة الشرطية التعليمة التكرارية 9
خطوات صياغة وتطوير البرامج Program Development Steps التعليمات : 1. تعليمة القراءة اقرأ > اسم المتحول> : خذ قيمة واحدة من الدخل )لوحة المفاتيح( في الذاكرة المسماة ب > اسم المتحول < أمثلة: اقرأ V ضع القيمة المدخلة في الذاكرة V. اقرأ A,B ضع القيمتين المدخلتين في الذاكرتين A,B على الترتيب. وضعها 10
خطوات صياغة وتطوير البرامج Program Development Steps التعليمات : 2. تعليمة أمثلة: قيمة كتابة الكتابة وحدة على معينة اكتب is The result اكتب V+3 اكتب The result is, V الخرج )الشاشة( اكتب <صيغة> 11
خطوات صياغة وتطوير البرامج Program Development Steps التعليمات : 3. تعليمة اإلسناد تعليمة اإلسناد:<صيغة>=<اسم المتحول> أمثلة: A=70; B=A قيمة حساب التابع 2+5x+ y=x 2 أجل 4=x من x قيمة حساب التابع 2+5x+ y=x 2 المستثمر. قبل من مدخلة قيمة أجل من اقرأ x y=x 2 +5x+2 اكتب x=,x, y=,y 12
خطوات صياغة وتطوير البرامج Program Development Steps التعليمات : 4. التعليمة الشرطية مثال أ- إذا <شرط> نفذ <مجموعة التعليمات> إذا (0<N) نفذ a=s/n ب- إذا <شرط> نفذ <مجموعة التعليمات 1 > وإل <مجموعة التعليمات 2 > مثال: نريد أن يقوم المستثمر بإدخال قيمة ما, يحدد البرنامج هل القيمة تقع ضمن المجال [0,10] أم ل. اقرأ a إذا (a>=0) (a<=10) and نفذ اكتب [0,10] interval a is inside the وإل اكتب [0,10] interval a is outside the 13
خطوات صياغة وتطوير البرامج Program Development Steps التعليمات : 5. التعليمة التكرارية مادام <شرط> كرر > مجموعة التعليمات> اختبر الشرط إذا كان محققا ننفذ > مجموعة التعليمات> ثم نختبر محققا ننفذ > مجموعة التعليمات>... عندما يصبح الشرط إلى التعليمة التالية ل مادام من جديد إذا كان غير محققا ننتقل مالحظة: يجب أن تغير > مجموعة التعليمات> متحولت الشرط ليصبح الشرط فيما بعد غير محققا وإل سندخل في حلقة ل منتهية. 14
خطوات صياغة وتطوير البرامج Program Development Steps مثال 1 L L من 1 األعداد مجموع حساب المستثمر. قبل من مدخلة قيمة حيث إلى المعطيات L الخرج S= 1+2+ +L الخوارزمية: 0=S المجموع 1=i عدد عمليات الجمع اقرأ L مادام (i<=l) كرر s=s+i i=i+1 اكتب the sum is,s 15
خطوات صياغة وتطوير البرامج Program Development Steps مثال 2, 25 نريد حساب مربعات األعداد 10 ومربعاتها مسبوقا بترويسة إلى من األعداد يحوي جدول الخرج قيمة y كرر y, اكتب قيمة x x=10 مادام (25=>x) y=x*x اكتب,x x=x+1 16
خطوات صياغة وتطوير البرامج Program Development Steps مثال 3 حساب القاسم المشترك األعظم GCD الحل: مدخلين. لعددين 20 القاسم المشترك األعظم =5 5 5 5 القاسم المشترك األعظم 15 15 10 5 الخوارزمية: قراءة العددين A,B إيجاد القاسم المشترك األعظم كتابة النتيجة 17
خطوات صياغة وتطوير البرامج Program Development Steps اقرأ A,B مادام (A B) كرر إذا( A>B ) نفذ A=A-B وإل B=B-A GCD=A اكتب The Greater Common Divider =, GCD 18
نيرامت :1 نيرمت طيحم ةرئاد فصن 5cm اهرطق نيرمت :2 باسح طيحم ةحاسمو,ليطتسم هلوط و هضرع متي امهلاخدإ نم لبق.رمثتسملا :3 نيرمت باسح ةلماعلا حيحص ددعل n n ثيح ةميق ةلخدم n!=n*(n-1)*(n-2)*.2*1 نيرمت باسح:4 عومجم دادعلأا ةيجوزلا نم 1 ىلإ L ثيح L ثيح L ةميق ةلخدم نم لبق.رمثتسملا نيرمت :5 ديرن باسح تابعكم دادعلأا نم 5 ىلإ,35 جرخلا لودج يوحي دادعلأا اهتابعكمو اقوبسم ةسيورتب 19
خطوات صياغة وتطوير البرامج Program Development Steps الطريقة البيانية:مخطط التدفق flowchart 20 األسهم تربط بين األشكال السابقة اتجاه األسهم يدل على طريقة تنفيذ التعليمات
R, حساب مساحة دائرة نصف قطرها R حيث قيمة مدخلة من قبل المستثمر flowchart Begin لغة الخوارزمية اقرأ R Input R Pi=3.14 PI=3.14 area=pi*r*r Area=PI*R*R area اكتبR, Output R Area end 21
ناتج وباقي قسمة عددين صحيحين مدخلين من قبل المستثمر flowchart Begin لغة الخوارزمية اقرأ A,B Input A,B Rest=A Rest=A Result=0 Result=0 مادام (B<=Rest) كرر Rest=Rest-B نعم B<=Rest ال Rest=Rest-B Result=Result+1 Output Rest, Result Result=Result+1 Result اكتب, Rest 22 end
خطوات صياغة وتطوير البرامج Program Development Steps.3 صياغة البرنامج Coding the Program بعد النتهاء من تصميم البرنامج يتم اختيار إحدى لغات البرمجة المناسبة لصياغة أوامر البرنامج Coding وذلك بالستعانة بخريطة التدفق Flow Chart أو غيرها. يجب عند صياغة البرنامج اتباع قواعد صيانة لغة البرمجة المستخدمة حيث ان لكل لغة برمجة قواعد خاصة بها ول يعمل البرنامج اذا كان هنالك اخطاء امالئية او اخطاء في قواعد اللغة.Syntax Errors 23
خطوات صياغة وتطوير البرامج Program Development Steps.4 اختبار البرنامج وتصحيح األخطاء Program Debugging and Testing خالل عملية الترجمة Compilation قد تظهر اخطاء في صياغة البرنامج المصدر ينبغي على المبرمج تصحيحها. هناك ثالث انواع من األخطاء:.1 اخطاء في قواعد اللغة :Syntax Errors.2.3 اخطاء امالئية في كتابة األوامر. خطاء منطقية :Logical Errors ل يكتشفها الحاسوب وتظهر عند تنفيذ البرنامج على عينه من البيانات فنحصل على نتائج خاطئه او غير متوقعة ويقوم المبرمج بتتبع خطوات البرنامج لمعرفة مصدر الخطأ وتصحيحه وتسمى هذه العملية.Tracing اخطاء اثناء التشغيل :Run-Time Errors تظهرعند تنفيذ البرنامج مثل عدم حجز مساحة كافية للمدخالت او الدخول في دوران بال نهاية وتظهر رسالة بنوع الخطاء. 24
خطوات صياغة وتطوير البرامج Program Development Steps.5 توثيق البرنامج Documenting the Program في هذه المرحلة تتم كتابة وصف تفصيلي لصياغة البرنامج ويشمل هذا التوثيق أصل المشكلة وخطوات الحل وخرائط الحل وتعليمات التشغيل ومتطلبات التشغيل والمدخالت والمخرجات وكيفية التحكم في البرنامج في المواقف المختلفة 25
تصنيف لغات البرمجة تصنف لغات البرمجة إلى ثالثة أنواع هي: 1. لغات برمجة ذات مستوى منخفض Low Level Languages 2. لغات برمجة ذات مستوى عال High Level Languages.3 لغات الجيل الرابع Fourth Generation Languages
تصنيف لغات البرمجة 1. لغات البرمجة ذات المستوى المنخفض Low Level Languages تعتبر لغات البرمجة ذات المستوى المنخفض من أوائل لغات البرمجة ومنها: Machine Language لغة اآللة Assembly language لغة التجميع ميتتت باللغتتات المنخفضتتة المستتتوى نظتترا ألن المبتترمجين يكتبتتون أوامتتر البرنتتامج بمستوى قريب من مستوى فهم اآللتة )الحاستوب( حيتث تستتخدم هتذه اللغتة )0 1(, في كتابة البرامج. 27
تصنيف لغات البرمجة 2. لغات البرمجة ذات المستوى العالي High Level Languages سميت بهذا السم ألنه اصتبح بامكتان المبترمج كتابتة البترامج دون معرفتة تفاصتيل كيفية قيام الحاسب بهذه العمليات كمواقع التخزين و تفاصيل الجهاز الدقيقه. تعبيرات اللغات ذات المستوى العالي شبيهه الى درجة كبيرة باللغة التي يستتخدمها النسان في التخاطب و التواصل مع الخرين تتميز بسهولة اكتشاف الخطاء و تصحيحها و يمكن تشغيلها على اكثر من جهتاز. كما يمكن استخدام أكثر من لغة برمجه على جهاز واحد. 28
تصنيف لغات البرمجة.3 لغات الجيل الرابع Fourth Generation Languages تسمى هذه اللغات أيضا باللغات عالية المستوى بصورة كبيرة جدا Very High Level Languages حيث إنها لغات سهلة الستخدام والفهم وقريبة جدا متن لغتة اإلنسان. يستطيع المبترمج القيتام بكثيتر متن العمليتات بستهولة تغنيته عتن صتياغة Coding صفحات عديدة من أوامر البرنامج. ويهتم المبرمج بماذا يريده من الكومبيوتر دون ان يوجهه بكيفية القيام بذلك. SQL, DBase من لغات الجيل الرابع: 29
أنواع لغات البرمجة 1. لغة البيسك BASIC Language ولغة فيجوال بيسك Visual Basic.2 لغة الجافا Java Language.3 لغة الكوبل COBOL Language.4 لغة الباسكال PASCAL Language.5 لغة اللوجو LOGO Language.6 لغات الذكاء الصطناعي Artificial Intelligence Languages لغة سي ولغة سي C & ++C Language بلس بلس.7 30
أنواع لغات البرمجة لغةة البةسيس Basic BASIC Language ولغةة فيجةوال بيسة Visual وهتي لغتات بستيطة عامتة األغتراض وستهلة التعلتم ويستتخدمها التمبتدئون فتي جميتتتع األعمتتتال وخاصتتتة فتتتي التطبتتتيقات العلتتتمية وهتتتي اختصتتتار للمعنتتتى.Beginners All-Purpose Symbolic Instruction Code.1 لبساطة هذه اللغة واستخدامها في التعليم ظهرت لها عدة إصدارات منها:.QUICK BASIC - TURBO BASIC - GWBASIC - BASICA 31 كما ظهرت أيضا لغة فيجوال بيس )البيس المرئةي( Visual Basic وهتي لغتة برمجة مرئية وتعتبر لغتة مطتورة متن لغتة البيستك وهتي خاصتة إلنتتاج برمجيتات ذات قدرة عالية وتتناسب مع بيئة برنامج نظام ويندوز.Windows
أنواع لغات البرمجة.2 لغة الجافا Java Language تعتبتر لغتة الجافتا متن اللغتات عاليتة المستتوى وتعترف بأنهتا متن اللغتات المرئيتة Visualوالشتيئية Objects وهتي متن اللغتات العامتة األغتراض والتتي تستتخدم إلنتاج برمجيات متنوعة. تشبه لغة الجافا لغة ++C إل أنها تتسم بالسهولة. 32
أنواع لغات البرمجة.3 لغة الكوبل COBOL Language تستخدم هذه اللغة بصفة رئيسية في األعمال التجارية مثل البنوك والشركات. هي لغة واسعة النتشار وكلمة كوبل مشتقة من الكلمة Common Business Oriented Language وبدأ ظهور هذه اللغة سنة 1959 وقد أجري عليها عدة تعديالت لزيادة كفاءتهتا وكان آخرها سنة 1974. 33
أنواع لغات البرمجة.4 لغة الباسكال PASCAL Language سميت نسبة إلى العالم الفرنستي فتي علتم التحاسوب Blaise Pascal تاريخها إلى 1973 وتستخدم لألغراض العامة وكلغة تعليمية. و يرجتع على الرغم من وضوح بنائها إل أنها أصعب في التعلم من لغة البيسك. تعتبتتر لغتتة باستتكال متتن لغتتات البرمجتتة الرئيستتية التتتي تتتدرس لطلبتتة المتتدارس والكليتتات نظتترا لوضتتوح الستتمات األساستتية لتخطتتيط البتترامج البنائيتتة بهتتا.Structured Programming 34
أنواع لغات البرمجة.5 لغة اللوجو LOGO Language هتي لغتة تطبيقتات علميتة تتميتز ببستاطة وستهولة تعلمهتا وقتد صتممت خصيصتا ليستخدمها األطفال فهي تشجع على اإلستخدام المنطقي والتركيبي. تعتمد هذه اللغتة علتى استتخدام روبتوت صتغير يستمى بالستلحفاة Turtle ابراز استعمالتها كتعلم األفكار الحسابية مثل الزوايا والقياسات. متن أجتل 35
أنواع لغات البرمجة.6 لغات الذكاء االصطناعي Artificial Intelligence Languages هتتي لغتتات خاصتتة بإنتتتاج حاستتبات ذكيتتة تحتتاكي اإلنستتان فتتي قدراتتته الحركيتتة والبصتترية والتحليتتل والستتتنتاج واتختتاذ القتترارات بنتتاء علتتى نظتتم الخبتترة التتتي ستغذي بها الحاسبات. من أهم هذه اللغات: لغة برولوج :Prolog يطلق عليها اسم لغة البرمجة المنطقية.Programming in Logic لغة ليسب :Lisp يطلق عليها اسم لغة برمجة القوائم.List Programming Language 36
أنواع لغات البرمجة 7. لغة سي ولغة سي بلس بلس C & ++C Language تتميز هذه اللغة بالقوة والمرونة والقدرة على إنتاج برمجيتات متعتددة وذات كفتاءة عالية. وقد ظهرت نسخة حديثة من لغة C لغة برمجة مرئية.Visual ذات بيئة مرئية وهي لغة ++C تتميز بكونهتا 37