Category

book

(Inheritance) مبدأ الوراثة في البرمجة الكائنية

 

اتكلمنا فى شرح سابق ان فى البرمجة الكائنية يوجد مفهومين رئيسين .
هما الكلاس class والكائن object .
وعرفنا ان الكلاس هو التصميم الا يجب عملة فى البداية
اما الكائن هو نسخة من هذا الكلاس .

والسؤال: هو البرنامج الا احنا هنصممة هيحتوى فقط على كلاس واحد او من الممكن انه يحتوى على اكثر من كلاس ؟
طبعا البرنامج ممكن يحتوى على اكثر من كلاس .

How to Code Inheritance in Java — Beginner's Tutorial in OOP | by Rishi Sidhu | Towards Data Science

 

سؤال اخر : اثناء تصميم الكلاسات متى نحتاج الى تطبيق مفهوم الوراثة inheritance ؟
ببساطة لو اكتشفت أن البرنامج الا بصممة يوجد بة مجموعة من الكلاسات تشترك فى مجموعة من الصفات ( المتغيرات )
والعمليات ( الدوال )
بدلا من كتابة كل هذة المتغيرات والدوال على مستوى كل كلاس وبالتالى تكرار الكود اكثر من مرة .
بتطبيق مفهوم الوراثة Inheritance يتم تجميع كل المتغيرات والدوال المشتركة فى كلاس واحد يسمى
super class
وعند انشاء اى كلاس يستخدم هذة الدوال والمتغيرات نجعلة يرثها من الكلاس super
وتسمى الكلاسات التى ترث sub classes .البرمجة كائنية التوجه OOP - الجزء الأول | طوّرنِي

 

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

طيب سؤال اخير اية الا احنا هنستفادة لما اقسم البرنامج بالشكل دا ؟
اقولك بعض المزايا
بالاضافة الى تقليل الكود
لو استخدمت دالة فى جميع
sub classes
وحبيت انى اعدل فيها لسبب ما
هكتفى فقط بتعديل الكود فى كلاس super وبالتالى سيتم التعديل مباشرة فى جميع كلاسات الابناء .

 

SQL و mysql هناك فرق بين

ما هو الفرق بين SQL و mysql ببساطة هذا شرح كل منهما

Comparing MySQL vs MS SQL Server | SF AppWorks
SQL

هى اختصار structure query language
ويقصد بها لغة التعامل مع قواعد البيانات
ولغة sql هى اللغة المستخدمة مع كل قواعد البيانات مثل oracle _mysql _sqlserver
وهى لغة سهلة .

وتنقسم لغة sql الى مجموعة من الاوامر التى تستخدم للتعامل مع قواعد البيانات ومن هذة الاوامر
insert
لادراج بيانات بقاعدة البيانات
update
لتعديل البيانات
delete
لحذف بيانات
create
لانشاء الجداول او الكيان
drop
للحذف
ويتم تصنيفها هذة الاوامر
كالتالى DDL and DML

اما Mysql

هى قاعدة البيانات او مايسمى DBMS وهى اختصار Database management system وهى تحتوى على مجموعة الجداول التى يتم بها حفظ البيانات والتى تربطها علاقات فيما بينها

نتيجة بحث الصور عن sql vs mysql

دروس بايثون للمبتدئين تابع جمل التحكم الشرطية او العبارات الشرطية

الدرس العاشر من دروس بايثون للمبتدئين
تابع جمل التحكم الشرطية او العبارات الشرطية
conditional statement
اتكلمنا فى الدروس السابقة على جمل التحكم الشرطية وعرفنا ان الهدف من كتابتها هو التحكم فى مسار البرنامج
وانها عبارة عن بلوك من الاكواد يرتبط تنفيذها بتحقق شرط معين .

وبدائنا بشرح الحالة الاولى من عبارة if وهى
– simple if
و الحالة الثانية وهى if else
النهاردة هنتكلم على الحالة الثالثة من حالات if وهى if else if
وهى تكتب بالصورة التالية elif .
وتستخدم فى حالة وجود أكثر من شرط او احتمال .

Python if else condition — TutorialBrain

وهى تاخذ الصيغة التالية

if(condition):
statements1
elif (condition):
statements2
elif (condition):
statements3
.
.
else :
statements

يتم كتابة جملة الشرط بأستخدام عبارة if else if كالتالى :
نبداء بكتابة الكلمة المحجوزة if وبعدها نفتح قوسين ونكتب بداخلهم العبارة او العبارات المراد التحقق من صحتها او الشرط
ويجب ان تكون النتيجة المرجعة منة
boolean (true or false)
وذلك باستخدام احد معاملات المقارنة السابق شرحهم comparison operators
والدمج بينهم عند وجود اكثر من شرط او عبارة باستخدام
and
or
وبعدها نكتب الجملة او الجمل المراد تنفيذها فى حالة تحقق هذا الشرط .
ثم نكتب عبارة elif ونفتح قوسين ونكتب بداخلهم العبارة او العبارات المراد التحقق من صحتها او الشرط الاخر
وبعدها نكتب الجملة او الجمل المراد تتفيذها فى حالة تحقق هذا الشرط .
بعدها يتم تكرار عبارة elif بعدد الاحتمالات او الشروط المتوقعة .
ثم نكتب عبارة else ونكتب بداخلها الجملة او الجمل المراد تنفيذها فى حالة عدم تحقق اى شرط من الشروط السابقة .

ونلاحظ الاتى :
_ فى حالة تحقق الشرط ( نتيجة الشرط true )فى اى شرط يتم تنفيذ الجملة او الجمل الخاصة بهذا الشرط وبعدها يخرج مباشرة من جملة if دون اختبار باقى الشروط .
اما فى حالة عدم تحقق الشرط (نتيجة الشرط false ) فى اى شرط يتم الانتقال مباشرة الى الشرط الذى يلية لحين تحقق الشرط او طباعة الجمل بداخل else (فى حالة ان تكون جميع نتائج جمل الشرط false ).
ثم يتجة البرنامج مباشرة لتنفيذ باقى الاكواد الموجودة داخل البرنامج .

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

سيتم تعريف متغير يحمل رقم اليوم ومن الممكن استخدام طريقة الادخال السابق شرحها فى الادخال .
بعدها يتم اختبار الشرط الاول فاذا كانت قيمة المتغير تساوى القيمة الموجودة بهذا الشرط (نتيجة الشرط true )
سوف يتم طباعة اليوم . وبالتالى الخروج مباشرة من جملة if دون تنفيذ باقى جمل الشرط .
اما اذا كانت قيمة المتغير لاتساوى القيمة الموجودة بهذا الشرط
سوف ينتقل البرنامج مباشرة الى الشرط الذى يلية وهكذا يتم الانتقال الى الشرط الذى يلية طالما ان نتيجة الشرط false

abstract class ما هو ال

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

نتيجة بحث الصور عن abstract class
وعندى مجموعة من الكلاسات التى ترث من هذا الكلاس مثل كلاس Employees وكلاس students .
فما الداعى او الفائدة من انشاء كائن من كلاس person
ليس واقعيا ان انشاء كائن اسمة شخص .
هو ليس خطأ برمجى وانما هو ليس منطقيا .

 

وبالتالى حتى نتمكن من عدم تفعيل انشاء كائن من هذا الكلاس نستخدم الصيغة كالتالى

public abstract className{

}

يتم وضع كلمة abstract قبل اسم الكلاس

فى النهاية او الخلاصة لو عندك كلاس مش عاوز حد يعمل منة كائن نكتب قبلة عبارة abstract .

ملحوظة
من الممكن ان يحتوى الكلاس من النوع abstract على دوال عادية ودوال اخرى من النوع abstract .

نتيجة بحث الصور عن abstract class

 

منقول عن أطباء الميددوز جميع الاسئلة و الأجوبة عن مرض كورونا

منقول عن أطباء الميددوز MedDose DRs كتاب ميددوز يحارب الكورونا .. أهم كتاب على الإطلاق في الوقت الراهن .. يحوى على #مئات_المعلومات حول فيروس كورونا ؛ و تم وضعها على شكل (( سؤال و جواب )) ليكون أفضل طريقة لوصول المعلومات بشكلها البسيط الشامل .

هذا الكتاب هو نواة التوعية الشاملة الموثوقة حول فيروس كورونا .. حيث تمت الإجابة على كل الاسئلة من مصادر طبية عالمية موثوقة … حيث سيحوي في كل سؤال على التالي :

◾️ السؤال باللغة العربية
◾️ الجواب باللغة العربية مترجماً عن المصدر العالمي الأجنبي
◾️ الجواب باللغة الأنكليزية من المصدر العالمي الاجنبي
◾️ رابط المصدر العالمي لمن يود التوسع بالمقال
◾️ صورة من المرجع الأجنبي توضح فقرة الإجابة

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

لتحميل الكتاب من هنا  ↓↓↓↓

إقراء الأن 

DML مقدمة توضيحية عن

طبعا عارفين أن لغة ال sql هى لغة الاستعلام الاجرائية الخاصة بالتعامل مع قواعد البيانات او بمعنى اخر
هى لغة تحتوى على مجموعة من الاوامر الا من خلالها نستطيع التعامل مع قاعدة البيانات
طيب عاوزين نشوف الاوامر دى

نتيجة بحث الصور عن ‪DML‬‏
اوامر ال sql كالتالى
DDL
DML
DCL
اولا:اوامر DDL
وهى اختصار data definition language
وهى تحتوى على مجموعة من الاوامر للتعامل مع هيكل الكيانات الخاصة بقاعدة البيانات
طب يعنى اية لفظ الكيانات اقصد بيها ال objects الموجودة بقاعدة البيانات
اوضح كمان
انا لما بنشئ قاعدة البيانات لازم بعدها هنشئ ال objects الخاصة بها وهى

Tables _ view _ sequence _ index_ synonym

طبعا tables هو العمود الفقرى لقاعدة البيانات او المكان الذى يحتفظ بداخلة البيانات بطريقة ما داخل قاعدة البيانات
View عبارة عن مشهد من جدول او اكثر
Sequence يستخدم لانشاء ارقام مسلسلة
Index او الفهارس يفيد فى عمليات البحث
Synonym. اسم بديل لاى كيان موجودة

هنبداء نتعرف على هذة الاوامر
Create _ alter _ drop

Create.
تستخدم فى انشاء الكيان نفسة او objects
Alter .
تعديل او تغيير فى هيكل هذا الكيان
Drop .
حذف هذا الكيان

 

طيب الخلاصة لما ابداء بانشاء قاعدة البيانات وبعدها عاوز اصمم الجداول او اى كيان اخر يبقى انا هروح لاوامر ال DDL
بالامر create
وكمان لو انا كنت فعلا انشاءات الجداول وعاوز اعدل فى هيكل جدول يبقى انا هروح لاوامر ال DDL بالامر alter
ولو انا انشاءات جدول و عاوز احذفة يبقى هروح لاوامر ال DDL
بالامر drop
اعتقد انا كدا وضحت

طيب انا لغاية دلوقتى لسة معنديش اى بيانات
انا لغاية دلوقتى انشاءات فقط الكيان
طيب اذا احتجت انى اضيف بيانات او اعدل بيانات او احذف بيانات
يبقى انا كدا هروح لاوامر ال DML
ثانيا :اوامر ال DML
DML هى اختصار data manipulation language
وهى تحتوى على الاوامر المستخدمة فى التعامل مع البيانات
وهى
Select استرجاع بيانات من قاعدة البيانات
Insert اضافة بيانات جديدة
Update تعديل او تحديث بيانات موجودة
Delete حذف بيانات من قاعدة البيانات
Merge دمج بيانات
الخلاصة لما احب التعامل مع بيانات بداخل قاعدة البيانات يبقى انا كدا هستخدم اوامر ال DML

نتيجة بحث الصور عن ‪DML‬‏

طيب هى البيانات الا انا اضفتها او عدلتها او حذفتها من خلال اوامر DML
مش لازم انقلها لقاعدة البيانات علشان احفظها او ممكن اتراجع عن هذا التعديل
دلوقتى هيكون دور
Transaction control
وهى
Commit. حفظ البيانات بقاعدة البيانات
rollback. تراجع عن اى تعديل
save point. تراجع بس عند نقطة محددة

طيب بعد ما انا انشاءت الكيانات وبعد لما قمت بادخال البيانات بها مش لازم يكون فى حماية لهذة البيانات
هنا هيكون دور اوامر DCL
ثالثا : DCL
وهى اختصار data control language
وهى
Grant اعطاء صلاحيات للمستخدم
Revoke حذف صلاحيات من المستخدم
طبعا اى objects تم انشاءة لازم يكون هناك صلاحيات على استخدامها .
طبعا كل الا انا اتكلمت علية دا كان مجرد سرد للعناوين
وهى مقدمة كويسة علشان نعرف بيها اللغة دى هستخدمها فين وامتى واية هو امكانيات هذة اللغة

pl/sql مقدمة بسيطة في

السلام عليكم المقال ستكون مقدمة بسيطة عن ال  pl/sql هتكون المقدمة بسيطة دي  هنتعرف فيها على :

اولا :ماهى pl/sql
ثانيا :طريقة كتابة كود pl/sql
ثالثا: كتابة اول برنامج باستخدام pl/sql

اولا :ماهى pl/sql

نتيجة بحث الصور عن ‪pl/sql‬‏
هى لغة البرمجة الخاصة بشركة اوراكل وهى امتداد للغة sql .
فنتيجة لضعف لغة قواعد البيانات sql
فقد قررت اوراكل انشاء هذة اللغة
يعنى على سبيل المثال انا لو عاوز اتحكم فى برنامج معين او مسار برنامج
لغة ال sql مش هتقدر تعمل الا انا محتاجة
من هنا اوراكل قدمت لنا الحل وهى لغة
pl/sql
ووفرت لنا هذة اللغة العديد من الامكانيات البرمجية مثل if _loop هكذا
يعنى على سبيل المثال
لو عاوز ازود المرتبات بس وفقا لقواعد معينة مثلا
لو الموظف بياخد مرتب كذا الزيادة بتعتة كذا
ولو بياخد مرتب كذا الزيادة بتعتة كذا
هنا بقا لازم استخدم هذة اللغة الاجرائية.

 

ثانيا : طريقة كتابة كود pl/sql

نتيجة بحث الصور عن ‪pl/sql‬‏
يتم كتابة كود pl/sql داخل بلوك Block
كل بلوك مسئول عن وظيفة معينة كالاتى :

Declare (optional )

هنا يتم تعريف اى شي سوف يتم استخدامة فى البرنامج
من متغيرات وهكذا وتكون اختيارية .

begin ( mandatory)

هنا يتم كتابة جمل sql وجمل pl/sql .

exception (optional )

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

end; (mandatory ).

وهى نهاية البلوك ولابد من كتابه end;

ثالثا: كتابة اول برنامج باستخدام pl/sql

هنا هوضح اذى هعرض output للمستخدم
اولا لازم اشغل عملية الطباعة باستخدام الامر

Set serveroutput on;

الامر السابق يسمح بالطباعة على الشاشة.
طب اية هو امر الطباعة

هو ; ( الرسالة ) DBMS_output.put_line
وهنا هنقف شوية
لو انا عاوز اعرض رسالة نصية او تاريخ يكتب بداخل single code ‘ ‘
طب لو عاوز اطبع رقم او معادلة حسابية مثلا 2*3+2 هيكون بدون single code .
بعض الملاحظات :
لو تم وضع المعادلة الحسابية بين single code تعامل كانها نص .
يمكن استخدام | | concatenation للدمج بين اكثر من نص او بين جزء نصى ورقمى او معادلة.

ملخص الدرس

ان كود pl يكتب داخل بلوك كالتالى

Set serveroutput on;

لتفعيل عمليات الطباعة
declare
لانشاء المتغيرات وغيرها
begin
لكتابة الاكواد المستخدمة فى البرنامج
exception
معالجة الاخطاء اثناء التشغيل
end;
نهاية البلوك

وفى نهاية الشرح هعرض عليكم سؤال مش انا الا هجاوبة لا دا للناس الا هتشوف البوست دا .
السؤال عاوزكم تكتبوا بلوك pl وبداخلة رسالة
تظهر كالتالى

the result 4*4 = 16

تحياتى للجميع
وبالتوفيق

 

أنواع الكلاسات فى جافا بالنسبة للوراثة

 

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

concrete class

هو كلاس تم أنشائة اما من اجل الوراثة او لانشاء كائن (object) من هذا الكلاس .
وهو يحتوى على مجموعة من المتغيرات والدوال إنظر المثال التالي :

نتيجة بحث الصور عن ‪concrete class‬‏

 

abstract class

هو كلاس عام تم انشائة من اجل الوراثة فقط .و لايمكن أنشاء كائن (object) منة .

نتيجة بحث الصور عن ‪abstract class‬‏
ويحتوى على متغيرات وكذلك دوال اما من النوع العادى او دوال من النوع abstract وهى الدوال المجردة اى دالة بدون body . ويترك تنفيذها اجباريا لاى كلاس يرث من هذا الكلاس .
ويجب ان تكون دوال abstract بداخل كلاس من النوع abstract

 

وهناك مفهوم اخر فى الجافا هو interface وهو عبارة عن اطار يحتوى على مجموعة من المتغيرات بشرط ان تكون final

نتيجة بحث الصور عن ‪interface class‬‏
وكذلك مجموعة من الدوال بشرط ان تكون جميعا من النوع abstract .وهو بديل للوراثة المتعددة .

 

المعاملات الحسابية بلغة البايثون

تنقسم الى المعاملات في لغة البايثون الى عدة معاملات وهناك اربعة معاملات اساسية وهي موضحة أدناه وسيتم شرح المعاملات الحسابية في هذا الدرس و باقي المعاملات في دروس إخرى
– Arithmetic operators المعاملات الحسابية
– Assignment operators. معاملات اسناد القيم
– Comparison operators معاملات المقارنة
– Logical operators. المعاملات المنطقية

نتيجة بحث الصور عن ‪operators in python‬‏

المعاملات الحسابية Arithmetic operators
الجمع +
الطرح –
الضرب *
القسمة /
باقى القسمة %
الأس **
القسمة الصحيحة //
وهنوضحها بمثال

num1=6
num2=2
print(num1+num2)

سوف يتم طباعة 8

print(num1-num2)

سوف يتم طباعة 4

print(num1*num2)

سوف يتم طباعة 12

print(num1/num2)

سوف يتم طباعة 3

print(num1%num)

سوف يتم طباعة 0

print(num1**num2)

سوف يتم طباعة 36

print(num1//num2)

سوف يتم طباعة 3

ساقوم بتوضيح علامة % او باقى القسمة
ناتج قسمة 6/2 هو 3 (2*3=6 ) اما باقى القسمة يكون صفر .

اولويات العمليات الحسابية
انا عرضتها بحسب اولوية التنفيذ
( )
**
* /
+ –
مثال للتوضيح

num1=10
num2=5
num3=4
print(num1+num2*num3)

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

مثال اخر بس مش انا الا هحلة انا بطلب من اى حد يشوف البوست دا هو الا هيحلة .

(4+2**3)/2+(4*4+6/2)

في لغة الجافا for loop

هنبداء بمقدمة بسيطة توضح لنا المشكلة وطرق حلها باستخدام loop .
لو اطلب منك طباعة الاعداد من رقم ١ حتى رقم ٥ .
هيكون الكود كالتالى :

System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);

هنلاحظ ان كود الطباعة يتم تكرارة ودا طبعا مش صحيح .
طيب لو اطلب منك طباعة الارقام من ١ حتى ١٠٠
هل هتكرر كتابة الكود مائة مرة .
من هنا وجدنا الحل وهو استخدام loop
Loop ببساطة هو تكرار كود معين اكثر من مرة
وهناك العديد من الادوات المستخدمة فى عمليات التكرار وهى

for ( ) { }
do { } while ( )
while ( ) { }

نتيجة بحث الصور عن ‪loop in java‬‏

وكلا من الادوات السابقة تؤدى نفس الغرض وهو تكرار كود معين اكثر من مرة .
الا ان هناك اختلاف بينهم فى طريقة تنفيذها وكمان طريقة كتابتها .
ودا هنوضحة مع الشرح .
قبل استخدام احد هذة الادوات لابد من تحديد اربعة عناصر وهذة العناصر الاربعة يجب توافرهم مع اى اداة من ادوات loop السابقة .
1- initial value .
وهى القيمة الابتدائية .
2-statements .
وهو الكود البرمجى الذى سيظهر للمستخدم .
3-condition .
وهو الشرط الذى يتم وضعة لدخول loop فى حالة تحققة (true )
اما فى حالة عدم تحققة (false ) يتم الخروج من loop

4- incremental step .
وهى قيمة الزيادة . وبدونها سيتم تكرار loop عدد لانهائى من المرات .

اولا : ( ) for

نتيجة بحث الصور عن ‪for loop in java‬‏
تستخدم لتكرار الكود عدد محدد من المرات ولن يتوقف loop حتى ينتهى من العدد المحدد فى التكرار .
وحتى نتمكن من طباعة الاعداد من 0 حتى 9 باستخدام for

for (int x=0;x<10;x++) {
System.out.println(x);
}

هنا نلاحظ الاتى :
-ان عدد مرات التكرار محددة .
– توافر العناصر الاربعة السابق شرحهم وهما

int x=0 initial value
System.out .println(x) statements
x<10. condition
x++ incremental step

اما طريقة عمل for فى هذا المثال تتلخص فى الاتى :
فى البداية يتم تعريف متغير اسمة x ونعطية قيمة ابتدائية 0 ومن الممكن اعطائة اية قيمة ابتدائية .
ثم يذهب الى الشرط ويسئل هل 0 اقل من 10 الاجابة تكون true وبالتالى يتم الدخول الى loop وطباعة قيمة x وهى 0
بعدها يذهب الى incremental step ويتم زيادة قيمة x بواحد لتصبح القيمة المخزنة فى x هى 1 بعدها يذهب الى الشرط ويسئل هل 1 اقل من 10 الاجابة تكون true وبالتالى يتم الدخول الى loop وطباعة قيمة x وهى 1.
وهكذا حتى تصبح قيمة x تساوى 10 فيذهب الى الشرط ويسئل هل 10 اقل من 10 الاجابة تكون false وبالتالى يخرج من loop