💯💯💯💯
1. VirusTotal (https://www.virustotal.com/): موقع يقوم بفحص الروابط والملفات للكشف عن أي برمجيات خبيثة أو تهديدات أمنية.
2. URLVoid (https://www.urlvoid.com/): يقوم بتحليل السمعة والأمان للروابط والمواقع الإلكترونية.
3. Google Safe Browsing (https://safebrowsing.google.com/): خدمة مقدمة من Google للتحذير من مواقع ويب ضارة أو مشبوهة.
4. Web of Trust (https://www.mywot.com/): منصة تقييم سمعة المواقع والروابط بناءً على تقييمات المستخدمين.
5. Norton Safe Web (https://safeweb.norton.com/): أداة من Symantec لفحص الروابط والتحذير من المواقع الخطرة.
6. Sucuri SiteCheck (https://sitecheck.sucuri.net/): يقوم بفحص المواقع للكشف عن أي تهديدات أمنية أو برمجيات خبيثة. للفائدة والانتباة من روابط الفيروسات والهكر وو لكم افضل المواقع الذي لم يعلم بها الا بعض من الناس
1. VirusTotal (https://www.virustotal.com/): موقع يقوم بفحص الروابط والملفات للكشف عن أي برمجيات خبيثة أو تهديدات أمنية.
2. URLVoid (https://www.urlvoid.com/): يقوم بتحليل السمعة والأمان للروابط والمواقع الإلكترونية.
3. Google Safe Browsing (https://safebrowsing.google.com/): خدمة مقدمة من Google للتحذير من مواقع ويب ضارة أو مشبوهة.
4. Web of Trust (https://www.mywot.com/): منصة تقييم سمعة المواقع والروابط بناءً على تقييمات المستخدمين.
5. Norton Safe Web (https://safeweb.norton.com/): أداة من Symantec لفحص الروابط والتحذير من المواقع الخطرة.
6. Sucuri SiteCheck (https://sitecheck.sucuri.net/): يقوم بفحص المواقع للكشف عن أي تهديدات أمنية أو برمجيات خبيثة. للفائدة والانتباة من روابط الفيروسات والهكر وو لكم افضل المواقع الذي لم يعلم بها الا بعض من الناس
URLVoid.com
Check if a Website is Malicious/Scam or Safe/Legit | URLVoid
Free website reputation checker tool lets you scan a website with multiple website reputation/blocklist services to check if the website is safe and legit or malicious. Check the online reputation of a website to better detect potentially malicious and scam…
@sharaf770220BOT بوت الترجمه ترجمة اي لغة ما عليك الا تكتب الغه الي بدك
https://youtube.com/watch?v=Qy8VobdPNfM&si=_Tfu6B77IQ7gqS0v
هذه قناة اسمها (اغاني قرانيه)
الكل يدخل لهذا الرابط ويعمل لهذه القناة ابلاغ
انشروه عشان تتقفل مثل هذي القناة المسيئة للقرآن الكريم (والاسلام)
ولك الأجر لدفاع عن دينك وعن القرآن
انشروه انشروه الرابط فوق👆🏻
هذه قناة اسمها (اغاني قرانيه)
الكل يدخل لهذا الرابط ويعمل لهذه القناة ابلاغ
انشروه عشان تتقفل مثل هذي القناة المسيئة للقرآن الكريم (والاسلام)
ولك الأجر لدفاع عن دينك وعن القرآن
انشروه انشروه الرابط فوق👆🏻
السلام عليكم
ارجوا من كل من لديه غيرة على دينه ان يقوم بالإبلاغ عن هذه الحثالة.
قناة أغاني قرانية.
على يو تيوب
والعياذ بالله وننبه الإخوة والأخوات أن يقوموا بالإبلاغ ويخرجوا.
دون النظر أو الاستماع لما في ذالك من مقاطع فهذا الأمر يضخم..
و لا حول ولا قوة الا بالله
ارجوا من كل من لديه غيرة على دينه ان يقوم بالإبلاغ عن هذه الحثالة.
قناة أغاني قرانية.
على يو تيوب
والعياذ بالله وننبه الإخوة والأخوات أن يقوموا بالإبلاغ ويخرجوا.
دون النظر أو الاستماع لما في ذالك من مقاطع فهذا الأمر يضخم..
و لا حول ولا قوة الا بالله
#شرح ماهي صيغة Json ؟
JSON : JavaScript Object Notation .
هي احدى صيغ نقل البيانات في عالم البرمجة وعادة ما تستخدم لنقل البيانات بين الخادم والعميل .
- ماهو الخادم وما هو العميل ؟ دائما نسمع عن الخادم والعميل ولكن بعضنا لا يعرف من هو الخادم اصلاً ومن هو العميل !
سابدأ مع العميل ، وهو انت عزيزي القارئ عندما تتصفح احد المواقع فانت تعتبر عميل لذلك الموقع (عميل مشتقه من عمل ، ولا تعني خائن كما هو متعارف ]: )
اما الخادم فهو السيرفر الذي تتصفح منه الموقع ، فكل موقع على الانترنت يجب ان يكون مستضافاً على سيرفر وهذا السيرفر متصل بالانترنت لكي يستطيع الاتصال بك وارسال صفحات الموقع الى متصفحك .
حسناً ... تعرفنا على JSON ، الخادم و العميل . والان سنبدا نتعلم معلومات اكثر عن JSON .
كيف يتم كتابة Json
صيغة Json تعتمد على طريقة كائنات JavaScript فهي مشتقه منها وسميت باسمها ، لذلك فهي تعتمد على مبدأ (المفتاح : القيمة) المثال التالي يوضح ذلك
{
"first_name":"Asem",
"last_name":"Najee",
"ID":87
}
هنا الاسم الاول والاسم الاخير لشخص غير معروف :( وايضاً معرف المستخدم (ID) بشكل بسيط ، واليكم مثال عملي من الواقع في زر الاعجاب بمنشور في احد المواقع ؛ ولكن لن نتطرق لطريقه ارسال البيانات من والى الخادم .
في البداية عندما يضغط العميل زر الاعجاب سيتم معالجه الحدث وارسال البيانات التالية الى الخادم
{
"user_id":87,
"post_id":123
}
سيصل الطلب الى الخادم وتحديداً ملف ادارة الاعجابات وسيتم معالجه الاعجاب والرد الى العميل بالصيغة التالية
{
"ok":true,
"message":"Succesful"
}
هذا في حاله نجحت العملية ، وسيقوم متصفحك بمعالجة البيانات المرجعة من الخادم وتغير لون زر الاعجاب الى الازرق مثلاً للدلالة انك قد اعجبت بهذا المنشور .
انواع البيانات في JSON
غالباً وفي اغلب لغات البرمجة ان لم يكن كلها ، هناك انواع محددة للبيانات وهي (Boolean, numeric, String) اي بالعربي(المنطقية ، الرقمية ، النصوص) وهكذا في Json ايضاً حيث يجب وضع القيم النصية بين علامتي اقتباس مزدوجتين ("هنا النص") اما القيم المنطقيه والرقمية فتكتب بدون علامات تنصيص ، ستجد المثالين السابقين يحتويان على الانواع الثلاثة .
المصفوفات
يمكن ايضاً اضافة المصفوفات الى Json كالتالي :
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"]
}
تلاحظ ان اللغات مصفوفة من القيم .
الكائنات
خزن Json يعتمد على الكائنات بشكل اساسي ، والكائن هو المحصور بين {} والمثال السابق يمثل كائن يحتوي على قيم نصية ومصفوفة ، لكن يمكن لاحد مفاتيح الكائن ان يحتوي على كائن آخر كالاتي
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"],
"contact":{
"Telegram":"@AsemNaji",
"E-mail":"a**m@gmail.com"
}
}
ونلاحظ انه يجب كتابة المفاتيح ضمن علامتي اقتباس وفقاً لمعايير JSON .
كما يمكن جعل المصفوفات تحتوي على كائنات .. وهلم جراً .
JSON : JavaScript Object Notation .
هي احدى صيغ نقل البيانات في عالم البرمجة وعادة ما تستخدم لنقل البيانات بين الخادم والعميل .
- ماهو الخادم وما هو العميل ؟ دائما نسمع عن الخادم والعميل ولكن بعضنا لا يعرف من هو الخادم اصلاً ومن هو العميل !
سابدأ مع العميل ، وهو انت عزيزي القارئ عندما تتصفح احد المواقع فانت تعتبر عميل لذلك الموقع (عميل مشتقه من عمل ، ولا تعني خائن كما هو متعارف ]: )
اما الخادم فهو السيرفر الذي تتصفح منه الموقع ، فكل موقع على الانترنت يجب ان يكون مستضافاً على سيرفر وهذا السيرفر متصل بالانترنت لكي يستطيع الاتصال بك وارسال صفحات الموقع الى متصفحك .
حسناً ... تعرفنا على JSON ، الخادم و العميل . والان سنبدا نتعلم معلومات اكثر عن JSON .
كيف يتم كتابة Json
صيغة Json تعتمد على طريقة كائنات JavaScript فهي مشتقه منها وسميت باسمها ، لذلك فهي تعتمد على مبدأ (المفتاح : القيمة) المثال التالي يوضح ذلك
{
"first_name":"Asem",
"last_name":"Najee",
"ID":87
}
هنا الاسم الاول والاسم الاخير لشخص غير معروف :( وايضاً معرف المستخدم (ID) بشكل بسيط ، واليكم مثال عملي من الواقع في زر الاعجاب بمنشور في احد المواقع ؛ ولكن لن نتطرق لطريقه ارسال البيانات من والى الخادم .
في البداية عندما يضغط العميل زر الاعجاب سيتم معالجه الحدث وارسال البيانات التالية الى الخادم
{
"user_id":87,
"post_id":123
}
سيصل الطلب الى الخادم وتحديداً ملف ادارة الاعجابات وسيتم معالجه الاعجاب والرد الى العميل بالصيغة التالية
{
"ok":true,
"message":"Succesful"
}
هذا في حاله نجحت العملية ، وسيقوم متصفحك بمعالجة البيانات المرجعة من الخادم وتغير لون زر الاعجاب الى الازرق مثلاً للدلالة انك قد اعجبت بهذا المنشور .
انواع البيانات في JSON
غالباً وفي اغلب لغات البرمجة ان لم يكن كلها ، هناك انواع محددة للبيانات وهي (Boolean, numeric, String) اي بالعربي(المنطقية ، الرقمية ، النصوص) وهكذا في Json ايضاً حيث يجب وضع القيم النصية بين علامتي اقتباس مزدوجتين ("هنا النص") اما القيم المنطقيه والرقمية فتكتب بدون علامات تنصيص ، ستجد المثالين السابقين يحتويان على الانواع الثلاثة .
المصفوفات
يمكن ايضاً اضافة المصفوفات الى Json كالتالي :
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"]
}
تلاحظ ان اللغات مصفوفة من القيم .
الكائنات
خزن Json يعتمد على الكائنات بشكل اساسي ، والكائن هو المحصور بين {} والمثال السابق يمثل كائن يحتوي على قيم نصية ومصفوفة ، لكن يمكن لاحد مفاتيح الكائن ان يحتوي على كائن آخر كالاتي
{
"name":"Asem",
"ID":87,
"languages":["Java","PHP","JS"],
"contact":{
"Telegram":"@AsemNaji",
"E-mail":"a**m@gmail.com"
}
}
ونلاحظ انه يجب كتابة المفاتيح ضمن علامتي اقتباس وفقاً لمعايير JSON .
كما يمكن جعل المصفوفات تحتوي على كائنات .. وهلم جراً .
لماذا نبدا تعلم البرمجة بإحدى اللغات الصعبة ؟
غالباً ما ينصح المعلمون بان نبدأ تعلم البرمجة بلغة C++ او Java ، لكن لماذا ونحن لدينا python افضل منها بكثير واسهل من ناحية التعلم ، والجميع يريدها وتعتبر مطلوبه في سوق العمل ايضاً ، ألم يكن من الافضل البدء بها ؟
لإجابة السؤال هذا يجب ان تطرح على نفسك سؤالاً ، هل انا اتعلم البرمجة والمفاهيم في البداية ، ام اريد الدخول مباشرة الى سوق العمل بدون خبرة في عالم البرمجة ؟
والسؤال هذا يجيب عن السؤال السابق ، حيث ان بدايتك مع Python تحرمك من تعلم الكثير من المفاهيم ، لانها لغة سهله وغالباً نستعمل شيئاً جاهزاً ودوال جاهزة للقيام بعملنا !!
اللغات السهلة القريبة جداً من الانسان مثل Python لا تعطي تحكم كامل بالعمليات من خلف الكواليس وهي ابطا من ناحية التنفيذ حيث قد يصل وقت التنفيذ الى اكثر من خمسه اضعاف وقت تنفيذ C++ ، اما في C++ كنا نستطيع التحكم بشكل كبير في العمليات ، هذا التحكم بالعمليات ليس سهلاً عندما يكون متروكاً على عاتق المبرمج ، لذلك يتعلم المبرمجون بهذه اللغات الصعبه خوارزميات وطرق ومفاهيم تساعدهم في عملهم ، ومن الناحية الايجابية للمبتدئين يصبح لديهم فكر منطقي وديناميكية عالية في التعامل مع باقي اللغات بسهولة لان باقي اللغات تكون اقل صعوبة من اللغة التي بدأو بها .
لماذا هناك اشخاص بدايتهم تكون مع Python ؟
تعلم Python في البداية ليس للتخصصات التي يكون عملها بناء مشاريع برمجية والاهتمام بتفاصيل التنفيذ ، بل لمن هم يهتمون بعمليات اخرى مثل الشبكات والحماية السيبرانية ولكنهم يحتاجون الى تنفيذ اوامر برمجية تقوم بالعمل المطلوب فقط بدون الانغماس بالتفاصيل الصغيرة ، هل نقوم بتعليمهم Java ونجعلهم يحتارون بين اختيار int ام long عملية مشابهة للتي اسقطت الصاروخ في التسعينيات ؟
#شرح
غالباً ما ينصح المعلمون بان نبدأ تعلم البرمجة بلغة C++ او Java ، لكن لماذا ونحن لدينا python افضل منها بكثير واسهل من ناحية التعلم ، والجميع يريدها وتعتبر مطلوبه في سوق العمل ايضاً ، ألم يكن من الافضل البدء بها ؟
لإجابة السؤال هذا يجب ان تطرح على نفسك سؤالاً ، هل انا اتعلم البرمجة والمفاهيم في البداية ، ام اريد الدخول مباشرة الى سوق العمل بدون خبرة في عالم البرمجة ؟
والسؤال هذا يجيب عن السؤال السابق ، حيث ان بدايتك مع Python تحرمك من تعلم الكثير من المفاهيم ، لانها لغة سهله وغالباً نستعمل شيئاً جاهزاً ودوال جاهزة للقيام بعملنا !!
اللغات السهلة القريبة جداً من الانسان مثل Python لا تعطي تحكم كامل بالعمليات من خلف الكواليس وهي ابطا من ناحية التنفيذ حيث قد يصل وقت التنفيذ الى اكثر من خمسه اضعاف وقت تنفيذ C++ ، اما في C++ كنا نستطيع التحكم بشكل كبير في العمليات ، هذا التحكم بالعمليات ليس سهلاً عندما يكون متروكاً على عاتق المبرمج ، لذلك يتعلم المبرمجون بهذه اللغات الصعبه خوارزميات وطرق ومفاهيم تساعدهم في عملهم ، ومن الناحية الايجابية للمبتدئين يصبح لديهم فكر منطقي وديناميكية عالية في التعامل مع باقي اللغات بسهولة لان باقي اللغات تكون اقل صعوبة من اللغة التي بدأو بها .
لماذا هناك اشخاص بدايتهم تكون مع Python ؟
تعلم Python في البداية ليس للتخصصات التي يكون عملها بناء مشاريع برمجية والاهتمام بتفاصيل التنفيذ ، بل لمن هم يهتمون بعمليات اخرى مثل الشبكات والحماية السيبرانية ولكنهم يحتاجون الى تنفيذ اوامر برمجية تقوم بالعمل المطلوب فقط بدون الانغماس بالتفاصيل الصغيرة ، هل نقوم بتعليمهم Java ونجعلهم يحتارون بين اختيار int ام long عملية مشابهة للتي اسقطت الصاروخ في التسعينيات ؟
#شرح
ماذا تعرف عن HTML ؟
غالباً عند سؤال المبتدئين في عالم البرمجة او حتى بعض المتقدمين هذا السؤال يخبرك انها ليست لغة برمجة وهذا امر خاطئ كلياً فهي لغة برمجة وصفية .
ما معنى لغة برمجة وصفية ؟
اللغات الوصفية تسمح للمبرمج بالاهتمام بماذا يريد تنفيذه وليس كيفية تنفيذه فمثلا في حالتنا في لغة HTML يمكنك تفسير الكود التالي
<h1>العنوان الرئيسي</h1>
الكود يصف انك تريد وضع "العنوان الرئيسي" كعنوان رئيسي(h1) في الصفحة .
وليست html وحدها لغة وصفية ، هناك عدة لغات اخرى من اشهرها MarkDown و SQL .
#معلومة
غالباً عند سؤال المبتدئين في عالم البرمجة او حتى بعض المتقدمين هذا السؤال يخبرك انها ليست لغة برمجة وهذا امر خاطئ كلياً فهي لغة برمجة وصفية .
ما معنى لغة برمجة وصفية ؟
اللغات الوصفية تسمح للمبرمج بالاهتمام بماذا يريد تنفيذه وليس كيفية تنفيذه فمثلا في حالتنا في لغة HTML يمكنك تفسير الكود التالي
<h1>العنوان الرئيسي</h1>
الكود يصف انك تريد وضع "العنوان الرئيسي" كعنوان رئيسي(h1) في الصفحة .
وليست html وحدها لغة وصفية ، هناك عدة لغات اخرى من اشهرها MarkDown و SQL .
#معلومة
نطاق المتغيرات في جافا .
المتغيرات في جافا وفي اغلب لغات البرمجة لديها نطاق ، نستطيع استخدام هذه المتغيرات ضمن هذا النطاق فقط ولا يمكن الوصول الى المتغيرات من خارجه .
int variable = 0;
System.out.print(variable);
بدون اي مشاكل يمكن طباعه قيمه المتغير لانه بنفس النطاق ، اي بشكل اصح يمكن القول اننا استطعنا الوصول الى المتغير ، لكن لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
if(true){
System.out.print(variable);
}
في هذه الامر الذي داخل الشرط يعتبر في نطاق آخر ولكن يمكنه الوصول الى المتغير لان نطاق الشرط هو ضمن النطاق الكلي للمتغير .
الشرط لم يكن مهما ، نحن فقط كنا بحاجه لحجز نطاق جديد ويمكننا الاستغناء عن الشرط وحجز نطاق بدون شرط وسيصبح الكود السابق كالتالي :
int variable = 0;
System.out.print(variable);
{
System.out.print(variable);
}
حسنا ، متى يكون المتغير لا يمكن الوصول اليه ، لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
{
int localVariable = 0;
System.out.print(localVariable);
}
System.out.print(localVariable);
هذا الكود سيسبب خطا ، والسبب اننا حاولنا الوصول الى المتغير localVariable من خارج نطاقه وهذا امر غير مقبول ، حيث ان نطاقه ينتهي بانتهاء القوس المعكوف } .
حسناً عرفنا الان نطاق المتغيرات ، لكن ما الفائدة من استخدام النطاقات ؟ أليس امراً سيئاً ان اُعَرِف متغير وتنتهي حياته قبل انتهاء البرنامج ؟
حسناً انظر المثال التالي وستغير رأيك
int x = 5;
int y = 10;
{
int temp = x;
x = y;
y = temp;
}
هل استطعت ان تعرف ما وظيفة الكود السابق ؟ لا تكمل القراءة وحاول معرفة ذلك .
نعم احسنت ، الكود يقوم بتبديل قيم المتغيرات x , y ، ولكن ماذا عن المتغير temp ، هنا سيساعدنا هذا المتغير على تبديل القيم ثم بعدها سيتم حذفه من الرام لاننا لم نعد بحاجته ، هكذا يتم الامر مع المتغير الشهير (i) في حلقة التكرار for يموت فور انتهاء الحلقة لاننا لم نعد بحاجته .
اذاً يفضل ان نقوم بقتل المتغيرات اذا لم نعد بحاجتها ، ولا تقلق ، فقتل المتغيرات حلال .
#شرح
المتغيرات في جافا وفي اغلب لغات البرمجة لديها نطاق ، نستطيع استخدام هذه المتغيرات ضمن هذا النطاق فقط ولا يمكن الوصول الى المتغيرات من خارجه .
int variable = 0;
System.out.print(variable);
بدون اي مشاكل يمكن طباعه قيمه المتغير لانه بنفس النطاق ، اي بشكل اصح يمكن القول اننا استطعنا الوصول الى المتغير ، لكن لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
if(true){
System.out.print(variable);
}
في هذه الامر الذي داخل الشرط يعتبر في نطاق آخر ولكن يمكنه الوصول الى المتغير لان نطاق الشرط هو ضمن النطاق الكلي للمتغير .
الشرط لم يكن مهما ، نحن فقط كنا بحاجه لحجز نطاق جديد ويمكننا الاستغناء عن الشرط وحجز نطاق بدون شرط وسيصبح الكود السابق كالتالي :
int variable = 0;
System.out.print(variable);
{
System.out.print(variable);
}
حسنا ، متى يكون المتغير لا يمكن الوصول اليه ، لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
{
int localVariable = 0;
System.out.print(localVariable);
}
System.out.print(localVariable);
هذا الكود سيسبب خطا ، والسبب اننا حاولنا الوصول الى المتغير localVariable من خارج نطاقه وهذا امر غير مقبول ، حيث ان نطاقه ينتهي بانتهاء القوس المعكوف } .
حسناً عرفنا الان نطاق المتغيرات ، لكن ما الفائدة من استخدام النطاقات ؟ أليس امراً سيئاً ان اُعَرِف متغير وتنتهي حياته قبل انتهاء البرنامج ؟
حسناً انظر المثال التالي وستغير رأيك
int x = 5;
int y = 10;
{
int temp = x;
x = y;
y = temp;
}
هل استطعت ان تعرف ما وظيفة الكود السابق ؟ لا تكمل القراءة وحاول معرفة ذلك .
نعم احسنت ، الكود يقوم بتبديل قيم المتغيرات x , y ، ولكن ماذا عن المتغير temp ، هنا سيساعدنا هذا المتغير على تبديل القيم ثم بعدها سيتم حذفه من الرام لاننا لم نعد بحاجته ، هكذا يتم الامر مع المتغير الشهير (i) في حلقة التكرار for يموت فور انتهاء الحلقة لاننا لم نعد بحاجته .
اذاً يفضل ان نقوم بقتل المتغيرات اذا لم نعد بحاجتها ، ولا تقلق ، فقتل المتغيرات حلال .
#شرح
البوابات المنطقية وعلاقتها بالبرمجة .
تعرفنا اليوم في احد المقررات على مفهوم البوابات المنطقية في الدوائر الالكترونية ان صح التعبير ، وكانت تتمحور حول ثلاث بوابات رئيسية وهي (not , and , or) واربع بوابات اخرى يمكن اشتقاقها من هذه البوابات .
هذه البوابات من ناحية تسميتها ووظيفتها تشبه الى حد كبير بعض الوظائف في لغات البرمجة ، وهي العمليات المنطقية (&& , || , !) .
والامر الاكثر تشويقاً هو ان هذه العمليات المنطقية تقوم بالتحكم المباشر بالبوابات المنطقية في اللغات منخفظة المستوى ، اما في حلتنا مع جافا فالامور مختلفة قليلاً فلا يوجد تحكم مباشر بالهارد وير ولكن ما زال هناك عمليات منطقية تقوم بنفس العمل . مثال للتوضيح :
int x = 3;
if(x < 5 && x > 0)
System.out.print("X between 5 and 0");
هنا لدينا && تقوم بفحص صحة الشرطين .
ملاحظة : في لغات برمجية كثيرة يتم اعتماد القيمة true على انها 1 والقيمة false على انها 0 .
وايضاً في لغات اخرى يمكنك كتابة and بشكل مباشر بدلاً من && و or بدلا من || .
#معلومة
تعرفنا اليوم في احد المقررات على مفهوم البوابات المنطقية في الدوائر الالكترونية ان صح التعبير ، وكانت تتمحور حول ثلاث بوابات رئيسية وهي (not , and , or) واربع بوابات اخرى يمكن اشتقاقها من هذه البوابات .
هذه البوابات من ناحية تسميتها ووظيفتها تشبه الى حد كبير بعض الوظائف في لغات البرمجة ، وهي العمليات المنطقية (&& , || , !) .
والامر الاكثر تشويقاً هو ان هذه العمليات المنطقية تقوم بالتحكم المباشر بالبوابات المنطقية في اللغات منخفظة المستوى ، اما في حلتنا مع جافا فالامور مختلفة قليلاً فلا يوجد تحكم مباشر بالهارد وير ولكن ما زال هناك عمليات منطقية تقوم بنفس العمل . مثال للتوضيح :
int x = 3;
if(x < 5 && x > 0)
System.out.print("X between 5 and 0");
هنا لدينا && تقوم بفحص صحة الشرطين .
ملاحظة : في لغات برمجية كثيرة يتم اعتماد القيمة true على انها 1 والقيمة false على انها 0 .
وايضاً في لغات اخرى يمكنك كتابة and بشكل مباشر بدلاً من && و or بدلا من || .
#معلومة
◂ عناوين مهمة جداً في البرمجة، يجب تعلم جزء كبير منها في الزمن الحالي
1. Basics
2. Testing
3. Handling
4. OOP (Object Oriented Programming)
5. Data Structures
6. Algorithms
7. DSA (Data Structures and Algorithms)
8. Database
9. Network
10. OOD (Object Oriented Design)
11. Design Patterns
12. Solid Principles
13. Best Practices
◂ اسماء مواقع لحل المسائل والمشكلات بلغات البرمجة
1. Codeforces
2. LeetCode
3. HackerRank
4. TopCoder
5. AtCoder
6. HackerEarth
7. Codewars
8. W3Schools
9. W3Resource
10. Satr
11. CoderHub
1. Basics
2. Testing
3. Handling
4. OOP (Object Oriented Programming)
5. Data Structures
6. Algorithms
7. DSA (Data Structures and Algorithms)
8. Database
9. Network
10. OOD (Object Oriented Design)
11. Design Patterns
12. Solid Principles
13. Best Practices
◂ اسماء مواقع لحل المسائل والمشكلات بلغات البرمجة
1. Codeforces
2. LeetCode
3. HackerRank
4. TopCoder
5. AtCoder
6. HackerEarth
7. Codewars
8. W3Schools
9. W3Resource
10. Satr
11. CoderHub
متغيرات باسماء مختلفة !
لدينا انواع كثيرة من المتغيرات ، دعوني اتحدث عن جافا ، في جافا هناك تسميات مختلفة تطلق على المتغيرات لكن متى نستعملها وما الفرق بينها .
اعرف ان الاغلب من المبرمجين يفرقون فقط بالتسمية بين متغير وباراميتر ، بالطبع هذه احدى تسميات المتغيرات وهناك تسميات اخرى دعني اسردها .
متغير : هذا المصطلح يمكن ان نطلقه على اي متغير في اي مكان لانه الاسم العام .
باراميتر : هذا المصطلح يطلق على المتغير الذي تستقبله الدالة ، كمثال :
void print(String text){
System.out.print(text);
}
المتغير text في السطر الاول يسمى باراميتر .
وسيط/وسائط : هذا ليس متغير حقاً ، انما هي قيمة ، وتحديداً القيمة التي تُرسل الى الدالة ، كما في الكود السابق السطر الثاني ، حيث قمنا بارسال قيمة المتغير text الى دالة الطباعة .
خاصية/حقل : هذه التسمية تطلق على المتغيرات التي تُعرف داخل الفئة ، مثال
class Person{
String name;
int age;
}
هنا يمكن تسمية name و age انهما حقلين او خاصيتين للفئة Person .
عضو : هذه التسمية تشمل المتغيرات والدوال ، حيث تعني اي متغير او دالة تابع لفئة معينه كالتالي :
class Person{
String name;
int age;
void setAge(int newAge){
age = newAge;
}
}
كلاً من name , age , setAge يعتبر اعضاء للفئة Person .
كما ان هناك تسمية شائعة وهي "طريقة" وتعني دالة كما يمكن تسمية الدالة "وظيفة" .
تجدونها كثيراً في المراجع العربية .
#شرح
لدينا انواع كثيرة من المتغيرات ، دعوني اتحدث عن جافا ، في جافا هناك تسميات مختلفة تطلق على المتغيرات لكن متى نستعملها وما الفرق بينها .
اعرف ان الاغلب من المبرمجين يفرقون فقط بالتسمية بين متغير وباراميتر ، بالطبع هذه احدى تسميات المتغيرات وهناك تسميات اخرى دعني اسردها .
متغير : هذا المصطلح يمكن ان نطلقه على اي متغير في اي مكان لانه الاسم العام .
باراميتر : هذا المصطلح يطلق على المتغير الذي تستقبله الدالة ، كمثال :
void print(String text){
System.out.print(text);
}
المتغير text في السطر الاول يسمى باراميتر .
وسيط/وسائط : هذا ليس متغير حقاً ، انما هي قيمة ، وتحديداً القيمة التي تُرسل الى الدالة ، كما في الكود السابق السطر الثاني ، حيث قمنا بارسال قيمة المتغير text الى دالة الطباعة .
خاصية/حقل : هذه التسمية تطلق على المتغيرات التي تُعرف داخل الفئة ، مثال
class Person{
String name;
int age;
}
هنا يمكن تسمية name و age انهما حقلين او خاصيتين للفئة Person .
عضو : هذه التسمية تشمل المتغيرات والدوال ، حيث تعني اي متغير او دالة تابع لفئة معينه كالتالي :
class Person{
String name;
int age;
void setAge(int newAge){
age = newAge;
}
}
كلاً من name , age , setAge يعتبر اعضاء للفئة Person .
كما ان هناك تسمية شائعة وهي "طريقة" وتعني دالة كما يمكن تسمية الدالة "وظيفة" .
تجدونها كثيراً في المراجع العربية .
#شرح
لإنشاء واجهة ويب تحتوي على زرين (تسجيل الدخول والتسجيل) ونقل المستخدم إلى الصفحة الرئيسية (Homepage) عند إدخال المدخلات بشكل صحيح، يمكنك استخدام HTML وJavaScript. إليك مثال بسيط على كيفية إنشاء ذلك:
### 1. HTML - واجهة المستخدم
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>واجهة المستخدم</title>
<style>
body {
font-family: Arial, sans-serif;
}
.container {
margin: 20px;
}
input {
margin: 10px 0;
display: block;
}
</style>
</head>
<body>
<div class="container">
<h2>تسجيل الدخول أو التسجيل</h2>
<input type="text" id="username" placeholder="اسم المستخدم">
<input type="password" id="password" placeholder="كلمة المرور">
<button onclick="login()">تسجيل الدخول</button>
<button onclick="register()">تسجيل</button>
</div>
<script>
function login() {
// تحقق من المدخلات
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر
// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}
function register() {
// تحقق من المدخلات أو قراءة المدخلات إذا لزم الأمر
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر
// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}
</script>
</body>
</html>
### 2. الصفحة الرئيسية (homepage.html)
قم بإنشاء ملف جديد باسم homepage.html يحتوي على المحتوى الذي تريده في الصفحة الرئيسية:
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>الصفحة الرئيسية</title>
</head>
<body>
<h1>مرحبًا بك في الصفحة الرئيسية!</h1>
</body>
</html>
### الشرح:
- في الكود أعلاه، قمنا بإنشاء واجهة بسيطة تتضمن حقلين لإدخال اسم المستخدم وكلمة المرور وزرين لتسجيل الدخول والتسجيل.
- عند النقر على زر "تسجيل الدخول" أو "تسجيل"، يتم استدعاء دالة login() أو register()، والتي تتحقق من أن المدخلات ليست فارغة ثم تنقل المستخدم إلى homepage.html.
- تأكد من أن صفحة homepage.html موجودة في نفس المجلد مع الملف الذي يحتوي على واجهة المستخدم.
يمكنك إضافة مزيد من التحقق والشروط حسب احتياجات مشروعك. إذا كان لديك أي استفسارات إضافية، فلا تتردد في طرحها!
### 1. HTML - واجهة المستخدم
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>واجهة المستخدم</title>
<style>
body {
font-family: Arial, sans-serif;
}
.container {
margin: 20px;
}
input {
margin: 10px 0;
display: block;
}
</style>
</head>
<body>
<div class="container">
<h2>تسجيل الدخول أو التسجيل</h2>
<input type="text" id="username" placeholder="اسم المستخدم">
<input type="password" id="password" placeholder="كلمة المرور">
<button onclick="login()">تسجيل الدخول</button>
<button onclick="register()">تسجيل</button>
</div>
<script>
function login() {
// تحقق من المدخلات
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر
// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}
function register() {
// تحقق من المدخلات أو قراءة المدخلات إذا لزم الأمر
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر
// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}
</script>
</body>
</html>
### 2. الصفحة الرئيسية (homepage.html)
قم بإنشاء ملف جديد باسم homepage.html يحتوي على المحتوى الذي تريده في الصفحة الرئيسية:
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>الصفحة الرئيسية</title>
</head>
<body>
<h1>مرحبًا بك في الصفحة الرئيسية!</h1>
</body>
</html>
### الشرح:
- في الكود أعلاه، قمنا بإنشاء واجهة بسيطة تتضمن حقلين لإدخال اسم المستخدم وكلمة المرور وزرين لتسجيل الدخول والتسجيل.
- عند النقر على زر "تسجيل الدخول" أو "تسجيل"، يتم استدعاء دالة login() أو register()، والتي تتحقق من أن المدخلات ليست فارغة ثم تنقل المستخدم إلى homepage.html.
- تأكد من أن صفحة homepage.html موجودة في نفس المجلد مع الملف الذي يحتوي على واجهة المستخدم.
يمكنك إضافة مزيد من التحقق والشروط حسب احتياجات مشروعك. إذا كان لديك أي استفسارات إضافية، فلا تتردد في طرحها!
العدو الصهيوني احرق ورقة تقنية ارهابية خبيثه كان يخبؤها دون تحقيق الهدف الاكبر الذي بحثوه عنه
لا مفر بعد اليوم من الحرب الشاملة ، حرب وجودية بكل معنى الكلمة
دعواتنا بالشفاء العاجل للجرحى والرحمه للشهداء في تلك الارض التي لم تترك غزة وحيده".
لا مفر بعد اليوم من الحرب الشاملة ، حرب وجودية بكل معنى الكلمة
دعواتنا بالشفاء العاجل للجرحى والرحمه للشهداء في تلك الارض التي لم تترك غزة وحيده".
👍2
#معلومة_عالماشي 💻📱💜
Dart
🔴 هي لغة برمجة تعمل على مترجم (JIT) ومصدر مفتوح، تستخدم للبرمجة العامة وبرمجة تطبيقات الويب والهاتف المحمول وسطح المكتب والخوادم.
🔴 صممت لتوفير تجربة بناء جديدة للمبرمجين، بفضل العديد من الميزات الرائعة التي توفرها كالأداء الممتاز والتعددية في الإدارة والمخصصة للأداء.
🔴 تم إنشاؤها من قبل شركة #Google على سبيل المثال للتعامل مع بناء تطبيقات الويب بأداء ممتاز،
وتستخدم أيضاً في تطوير تطبيقات الأجهزة المحمولة مثل نظام التشغيل #Flutter الذي يعتمد عليها. علاوة على ذلك، تستخدم #Dart في تطبيقات الخادم تمامًا مثل Node.js.
🔴تتميز Dart بالعديد من الميزات الرائعة مثل:
1️⃣مترجم JIT يفتح برامج Dexy في ثانية واحدة (leapfrogging).
2️⃣توفير نوع القسطرة (type inference) لإضفاء طابع قوي النوع على اللغة.
3️⃣منهج Async/await المستوحى من #C يتيح للمبرمجين كتابة الأكواد المؤرشفة عديمة الحالة بأسلوب يشبه الأكواد المتزامنة بطريقة أنظف وأكثر وضوحًا.
4️⃣توفير العديد من أدوات التنمية المثيرة للاهتمام مثل واجهة برمجة تطبيقات Eclipse، و Visual Studio Code، و IntelliJ
🔴أخيراً، تعد #Dart لغة شائعة لاستخدامها في تطوير تطبيقات الويب والموبايل وبرمجة الخادم، وتتميز بسهولة التعلم والاستخدام وتوفير العديد من الميزات المناسبة لبناء تطبيقات مثيرة وقوية بشكل لا يصدق.
Dart
🔴 هي لغة برمجة تعمل على مترجم (JIT) ومصدر مفتوح، تستخدم للبرمجة العامة وبرمجة تطبيقات الويب والهاتف المحمول وسطح المكتب والخوادم.
🔴 صممت لتوفير تجربة بناء جديدة للمبرمجين، بفضل العديد من الميزات الرائعة التي توفرها كالأداء الممتاز والتعددية في الإدارة والمخصصة للأداء.
🔴 تم إنشاؤها من قبل شركة #Google على سبيل المثال للتعامل مع بناء تطبيقات الويب بأداء ممتاز،
وتستخدم أيضاً في تطوير تطبيقات الأجهزة المحمولة مثل نظام التشغيل #Flutter الذي يعتمد عليها. علاوة على ذلك، تستخدم #Dart في تطبيقات الخادم تمامًا مثل Node.js.
🔴تتميز Dart بالعديد من الميزات الرائعة مثل:
1️⃣مترجم JIT يفتح برامج Dexy في ثانية واحدة (leapfrogging).
2️⃣توفير نوع القسطرة (type inference) لإضفاء طابع قوي النوع على اللغة.
3️⃣منهج Async/await المستوحى من #C يتيح للمبرمجين كتابة الأكواد المؤرشفة عديمة الحالة بأسلوب يشبه الأكواد المتزامنة بطريقة أنظف وأكثر وضوحًا.
4️⃣توفير العديد من أدوات التنمية المثيرة للاهتمام مثل واجهة برمجة تطبيقات Eclipse، و Visual Studio Code، و IntelliJ
🔴أخيراً، تعد #Dart لغة شائعة لاستخدامها في تطوير تطبيقات الويب والموبايل وبرمجة الخادم، وتتميز بسهولة التعلم والاستخدام وتوفير العديد من الميزات المناسبة لبناء تطبيقات مثيرة وقوية بشكل لا يصدق.
👍1
🙃#include <iostream>
#include <cmath>
using namespace std;
// هذه الدالة تحسب قيمة الجذر التربيعي لعدد غير سالب
double calculateSquareRoot(double num) {
if (num >= 0)
return sqrt(num);
else
return -1; // رقم سالب يعني أنه لا يوجد جذر حقيقي
}
// هذه الدالة تقوم بحساب جذري المعادلة الثانية
void calculateQuadraticRoots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
// لدينا جذرين حقيقيين
double root1 = (-b + calculateSquareRoot(discriminant)) / (2 * a);
double root2 = (-b - calculateSquareRoot(discriminant)) / (2 * a);
cout << "لدينا جذرين حقيقيين:" << endl;
cout << "الجذر الأول: " << root1 << endl;
cout << "الجذر الثاني: " << root2 << endl;
} else if (discriminant == 0) {
// لدينا جذر واحد متكرر
double root = -b / (2 * a);
cout << "لدينا جذر واحد متكرر:" << endl;
cout << "الجذر: " << root << endl;
} else {
// ليس لدينا أي جذر حقيقي
cout << "لا يوجد جذر حقيقي للمعادلة." << endl;
}
}
int main() {
double a, b, c;
cout << "أدخل قيمة a: ";
cin >> a;
cout << "أدخل قيمة b: ";
cin >> b;
cout << "أدخل قيمة c: ";
cin >> c;
calculateQuadraticRoots(a, b, c);
return 0;
}
#include <cmath>
using namespace std;
// هذه الدالة تحسب قيمة الجذر التربيعي لعدد غير سالب
double calculateSquareRoot(double num) {
if (num >= 0)
return sqrt(num);
else
return -1; // رقم سالب يعني أنه لا يوجد جذر حقيقي
}
// هذه الدالة تقوم بحساب جذري المعادلة الثانية
void calculateQuadraticRoots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
// لدينا جذرين حقيقيين
double root1 = (-b + calculateSquareRoot(discriminant)) / (2 * a);
double root2 = (-b - calculateSquareRoot(discriminant)) / (2 * a);
cout << "لدينا جذرين حقيقيين:" << endl;
cout << "الجذر الأول: " << root1 << endl;
cout << "الجذر الثاني: " << root2 << endl;
} else if (discriminant == 0) {
// لدينا جذر واحد متكرر
double root = -b / (2 * a);
cout << "لدينا جذر واحد متكرر:" << endl;
cout << "الجذر: " << root << endl;
} else {
// ليس لدينا أي جذر حقيقي
cout << "لا يوجد جذر حقيقي للمعادلة." << endl;
}
}
int main() {
double a, b, c;
cout << "أدخل قيمة a: ";
cin >> a;
cout << "أدخل قيمة b: ";
cin >> b;
cout << "أدخل قيمة c: ";
cin >> c;
calculateQuadraticRoots(a, b, c);
return 0;
}
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// ضبط بذرة العشوائية باستخدام الوقت الحالي
srand(time(0));
// إنشاء مصفوفة بحجم 10
const int size = 10;
int arr[size];
// ملء المصفوفة بالقيم العشوائية
for (int i = 0; i < size; i++) {
arr[i] = rand();
}
// طباعة المصفوفة
std::cout << "المصفوفة: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
#include <iostream>
#include <algorithm>
int main() {
// إنشاء مصفوفة بالأعداد
int arr[] = {2, 5, -1, 4, 100};
const int size = sizeof(arr) / sizeof(arr[0]);
// ترتيب المصفوفة
std::sort(arr, arr + size);
// طباعة المصفوفة
std::cout << "المصفوفة المرتبة: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
#include <iostream>
int main() {
// إنشاء مصفوفة بالأعداد
int arr[] = {2, 5, -1, 4, 100};
const int size = sizeof(arr) / sizeof(arr[0]);
// طباعة الأعداد الزوجية والفردية
std::cout << "الأعداد الزوجية: ";
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 0) {
std::cout << arr[i] << " ";
}
}
std::cout << std::endl;
std::cout << "الأعداد الفردية: ";
for (int i = 0; i < size; i++) {
if (arr[i] % 2 != 0) {
std::cout << arr[i] << " ";
}
}
std::cout << std::endl;
return 0;
}
#include <cstdlib>
#include <ctime>
int main() {
// ضبط بذرة العشوائية باستخدام الوقت الحالي
srand(time(0));
// إنشاء مصفوفة بحجم 10
const int size = 10;
int arr[size];
// ملء المصفوفة بالقيم العشوائية
for (int i = 0; i < size; i++) {
arr[i] = rand();
}
// طباعة المصفوفة
std::cout << "المصفوفة: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
#include <iostream>
#include <algorithm>
int main() {
// إنشاء مصفوفة بالأعداد
int arr[] = {2, 5, -1, 4, 100};
const int size = sizeof(arr) / sizeof(arr[0]);
// ترتيب المصفوفة
std::sort(arr, arr + size);
// طباعة المصفوفة
std::cout << "المصفوفة المرتبة: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
#include <iostream>
int main() {
// إنشاء مصفوفة بالأعداد
int arr[] = {2, 5, -1, 4, 100};
const int size = sizeof(arr) / sizeof(arr[0]);
// طباعة الأعداد الزوجية والفردية
std::cout << "الأعداد الزوجية: ";
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 0) {
std::cout << arr[i] << " ";
}
}
std::cout << std::endl;
std::cout << "الأعداد الفردية: ";
for (int i = 0; i < size; i++) {
if (arr[i] % 2 != 0) {
std::cout << arr[i] << " ";
}
}
std::cout << std::endl;
return 0;
}
👍1
Forwarded from تشارلز بوكوفسكي
لقد متنا عدة مرات الآن ولا يسعنا إلا أن نتساءل لماذا لا نزال نهتم.