عزام عبد الحافظ
-
المساهمات
667 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
3
إجابات الأسئلة
-
إجابة عزام عبد الحافظ سؤال في كيف لي ان احتفظ ببيانات برنامج صغير من غير الحاجة الى قاعدة بيانات في بايثون ؟ كانت الإجابة المقبولة
لك ان تستعمل مكتبة shelve هي أداة بسيطة لكنها فعالة لتخزين البيانات في حل ان قاعدة البيانات غير مطلوبه ، طريقة التعامل مع هذه المكتبة يشبه جدا طريقة التعامل مع القاموس في لغة python ولكن هذه المكتبه تقوم بحفظ قيم و مفاتيح القاموس في ملف للمقدرة للوصل الى البيانات حتى عند اغلاق البرنامج ، مثال :
import shelve # استدعاء المكتبة #ويكون هو القاموس لحفظ البيانات s في متغير test نقوم بإنشاء ملف s = shelve.open("test") # هنا نقوم بتعين مفتاح و قيمة له بطريقة اعتيادية مثل القاموس العادي s['name'] = "Malik" s['age'] = 25 # بعد انتهاء العمل علينا ان نغلق الملف s.close() ############### # : اذا كان نريد فتح الملف و جلب قيمة s = shelve.open('test') print(s['name']) #Malik يقوم بطباعة القيمة -
إجابة عزام عبد الحافظ سؤال في هل يجب فصل تطبيق admin عن تطبيق اليوزر كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته , @Marwan800,
عند بناء تطبيق فيه مستخدمين و ادارين ليس هنالك داعي لعمل تطبيق خاص للاداريين هذا سوف يطلب مجهود كبير في التطوير و الحرص على ان كِلا التطبيقان لديهم تزامن في قاعدة اليبانات و غيرها من المشقة المحتملة .
يمكنك جعل كل شيء في تطبيق واحد و جعل صفحات خاصة للادارين لا يمكن الوصول اليها الا بكلمة سر خاصة و هذه هي الطريقة المستخدمة عمومًا في مثل هذا النوع من التطبيقات و ووردبريس المنصة المعروغة تعمل بنفس الطريقة , يكون صفحة للاداريين داخل رابط خاص .
-
إجابة عزام عبد الحافظ سؤال في برمجة تطبيق لموقع ووردبريس كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته , مرحبًا @Mohamed Slimane,
هنالك إضافات تقوم بحتويل موقع ووردبريس الى تطبيق جوال , هي طريقة سهلة و جيدة للمبتدئين , منها إضافات مجانية و مدفوعة , بعض هذه الاضافات :
AppPresser : هي منصة سهلة الاستخدام تساعدك على تحويل أي موقع WordPress إلى تطبيق جوال , يحتوي على أداة تخصيص مرئية للتطبيق لتغيير مظهر تطبيقك بسهولة كما تفعل مع قوالب ووردبريس . يمكنك تخصيص الألوان وإضافة صفحات مخصصة وسحب محتوى ووردبريس والمزيد. MobiLoud : يسمح بتحويل مواقع ووردبريس إلى تطبيقات جوال. لديهم منتجان: أحدهما لمواقع الأخبار أو المدونات ، والآخر لمواقع الويب التي تستخدم WooCommerce أو غيرها من المكونات الإضافية المعقدة. لكن في الأغلب هذه الإضافات تُنتج تطبيقات هجنية/ويب فيو و هي التي تعرف ب Hybrid Apps , يعني تستعمل مُحرك تشغيل المتصفح لتشغيل التطبيق و لا تعطي تجربة مستخدم ممتازة.
افضل طريقة لبرمجة تطبيق لموقع ووردبريس قائم اذا كان بإستعمال لغة Kotlin او غيرها هي استعمال Woocommerce REST API , يعني التطبيق يتعمال مع البيانات من API الخاصة بووردبريس وليس قاعدة بيانات خاصة به , حتي يتم التوافق بين التطبيق و الموقع .
-
إجابة عزام عبد الحافظ سؤال في طريقة عكس النص برمجيًا كانت الإجابة المقبولة
مرحبًا @محمد كمال صيام,
لا يوجد هنالك دالة من البايثون لعكس النص لكن يمكن فعل ذلك بأكثر من طريقة و أسهل طريقة لعكس النص هي بإستخدام المعامل [1-::] و تسمى slice statement أي [1-::] وتعني البدء في نهاية النص والانتهاء عند الموضع 0 (index 0) ، والتحرك بالخطوة -1 ، سالب واحد ، مما يعني خطوة واحدة إلى الوراء , المثال :
def reverse_order(user_str): user_str = user_str[::-1] print(user_str) reverse_order("Hello") النتيجة :
olleH طريقة ثانية هي بإستخدام حلقة for loop , نقوم في كل تكرار عند الحلقة بحفظ حرف من النص في نص جديد في المقدمة حتى يتم عكس النص كاملا :
def reverse_order(user_str): new_str = "" for i in user_str: new_str = i + str print(new_str)
-
إجابة عزام عبد الحافظ سؤال في سؤال حول Data Serialization كانت الإجابة المقبولة
مرحبًا @Sami Remili,
Data Serialization تعني تسلسل البيانات هو مفهوم تحويل البيانات إلى تنسيق يسمح بمشاركتها أو تخزينها بطريقة يمكن من خلالها استرداد هيكلها الأصلي. في بعض الحالات ، يكون الهدف من هذا الغرض هو تقليل حجم البيانات مما يقلل من مساحة القرص .
و deserialization تعني إعادة البيانات الى وضعها الأصلي .
في لغة البرمحة بايثون هنالك مكتبة تُدعى pickle يمكنك من خلالها عمل Data Serialization و deserialization .
مثال:
import pickle # استيراد الحزمة students = { 'Ahmad': 89, 'Ali': 72, 'Mohammad': 87 } #بيانات الطلاب serial_students = pickle.dumps(students) #students على Data Serialization نقوم بعمل dumps بإستعمال الدلة #serial_students يمكنك الآن العمل بنتيجة المشفرة التي توجد داخل print(serial_students) #اذا قمت بطباعة النتيجة ستجد نتيجة مثل هذه #b'\x80\x04\x95$\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x05Ahmad\x94KY\x8c\x03Ali\x94KH\x8c\x08Mohammad\x94KWu.' #للبيانات deserialize حتى نقوم بعمل loads نستعمل الدلة received_students = pickle.loads(serial_students) print(received_students) #{'Ahmad': 89, 'Ali': 72, 'Mohammad': 87} # النتيجة
-
إجابة عزام عبد الحافظ سؤال في استخدام اللغة العربية على sublime text كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته , مرحبًا @مروان عماد يوسف.
في الواقع محرر النصوص sublime لا يدعم اللغات التي هي RTL من اليمين الى اليسار , أي انه لا يدعم اللغة العربية , الأفضل أن تستعمل محرر النصوص Notepad++ , Brackets ولكن يبقى الأفضل في دعم اللغة العربية هو محرر النصوص visual studio code من شركة microsoft .
هناك إضافة (plugin) قد تساعد قليلاً , تقوم هذه الإضافة بعرض نسخة معدلة من النص على رسالة عند تحديد النص بلغة العربية و المرور عليه :
ليست بطريقة المثالية للعمل على مشروع لكنه الخيار المُتاح في sublime , لتحميل هذه الإضافة , من داخل sublime في القائمة العلوية تذهب الى preferences و من ثم الضغط على Package Control تظهر لديك هذه النافذة , قم بإحتيار Install Package لتحميل إضافة :
بعد ذلك تكتُب RTL to Dialog و تضغط للتحميل .
-
إجابة عزام عبد الحافظ سؤال في لعبة Tic Tac toa ويندوز C# كانت الإجابة المقبولة
مرحبًا @AM0,
الشيفرة لديك تعمل جيداً و لعمل ميزة إعادة اللعبة :
أولاً داخل الدلة winner() نقوم بتوقيف السطر : Application.Exit(); حتى لا يتوقف البرنامج عند إنتهاء اللعبة .
بعد ذلك نقوم بعمل زر جديد و عند الضعط عليه نُعيد اللعبة من جديد بهذه الشيفرة:
count = 0; button1.Text = ""; button1.Enabled = true; button2.Text = ""; button2.Enabled = true; button3.Text = ""; button3.Enabled = true; button4.Text = ""; button4.Enabled = true; button5.Text = ""; button5.Enabled = true; button6.Text = ""; button6.Enabled = true; button7.Text = ""; button7.Enabled = true; button8.Text = ""; button8.Enabled = true; button9.Text = ""; button9.Enabled = true; المنطق هو اننا نقوم بإعادة قيمة المتغير count الى الصفر و نص كل الأزرار إلى الوضع الإفتراضي مع عمل ذلك يصبح وكأننا قمنا بإعادة تشغيل البرنامج و يُمكننا اللعب من جديد .
-
إجابة عزام عبد الحافظ سؤال في كيف أكتب برنامج بلغة c++ باستخدام while كانت الإجابة المقبولة
مرحبًا @Abdulhadi A Abou Samra,
يمكنك عمل ذلك بهذه الشيفرة :
#include <iostream> #include <stdexcept> using namespace std; int main() { int num1, num2; int oper; // عملية التكرار , تتوقف في حال ادخل المستخدم رقم 0 while(true){ cout << "Type a number of your operation.\nAdd : (1)\nSubtract : (2)\nMutliply : (3)\nDivide : (4)\nRest Of Division : (5)\nExit : (0)\noperation = "; cin >> oper; // نتأكد اذا قيمة العملية بين رقم 0 و 5 if(!(oper >= 0 && oper <= 5)){ // نقوم برفع خطأ اذا قيمة العملية ليست بين 0 و 5 throw std::invalid_argument( "operation number shall be from 0 to 5" ); }else { // تتوقف عملية التكرار if(oper == 0){ break; } cout <<"Enter the first number : "; cin >> num1; cout <<"Enter the second number : "; cin >> num2; cout << "Result is : "; if(oper == 1){ cout << num1+num2; } else if(oper == 2){ cout << num1-num2; } else if(oper == 3){ cout << num1*num2; } else if(oper == 4){ cout << num1/num2; } else if(oper == 5){ cout << num1%num2; } cout << "\n\n"; } } return 0; }
-
إجابة عزام عبد الحافظ سؤال في حل error عند اضافة مكتبات في بايثون كانت الإجابة المقبولة
مرحبًا @Shatha_0,
هنالك عدة اسباب لهذه المشكلة فهي غير واضحة , خطوة بخطوة فلنقم بتجربة تثبيت pandas :
اولاً نقوم تثبيت هذه الإضافات بترتيب من قنصل الاوامر Command Prompt :
pip install cython) cython) pip install numpy) numpy) pip install pandas) pandas)
تتطلب مكتبة pandas تثبيت cython و numpy قبلها . بعد ذلك نذهب الى pycharm داخل :
Settings > Open Project settings > Project Interpreter > and add module
من هنالك نقوم بثبيت cython ثم numpy ثم pandas ,
الخطوات من هنا . -
إجابة عزام عبد الحافظ سؤال في كيف أكتب برنامج بلغة c++ كانت الإجابة المقبولة
مرحبًا @Abdulhadi A Abou Samra,
يمكنك القيام بذلك بهذه الشيفرة :
#include <iostream> using namespace std; //هنا يبدأ البرنامج int main() { int f1,f2;//نقوم بإنشاء متغيرين cout << "1st Number : "; cin >> f1; //حتى يستطيع المستخدم على ادخال قيمة cin تُستعمل cout << "2nd Number : "; cin >> f2; if (f1 > f2){//في حال الرقم الاول اكبر نقوم بعملية الجمع cout << "Addition : "; cout << f1 + f2 << "\n"; }else if(f1 < f2){//في حال الرقم الثاني اكبر نقوم بعملية الطرح cout << "Subtraction : "; cout << f2 - f1 << "\n"; } else{ // في حالة تساوي الرقمين لا نفعل شيئًا return 0; } return 0; }
-
إجابة عزام عبد الحافظ سؤال في أفضل المصادر لتعلم لغة البرمجة Perl كانت الإجابة المقبولة
مرحبًا @Med Amine Aissa Moussa,
انصحك بهذا الموقع من هنا , ستجد فيه معلومة كاملة مع الامثلة .
و هذا هو مصدر التعلم من الموقع الرسمي ولكني لا اجده غني بمعلومات .
-
إجابة عزام عبد الحافظ سؤال في هل توجد ورقة مساعدة في PHP كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته @عبد الواحد الحدادي,
لم اجد ورقة مساعدة من اجل PHP كما تقصد , لكن انصحك باستفادة من الموسوعة من هنا هناك يوجد مصدر جيد لتعلم اساس لغة PHP.
-
إجابة عزام عبد الحافظ سؤال في حل مشكلة تنصيب بوتسراب كانت الإجابة المقبولة
مرحبًا @Mr M Ostafa,
لديك خطأ في كتابة اسم bootstrap هو bootstrap وليس bootsrap :
npm i bootstrap
-
إجابة عزام عبد الحافظ سؤال في نصائج للبدء في تعلم الموشن جرافك كانت الإجابة المقبولة
مرحبًا @ياسر عسيري,
اولاً يجب ان تقوم بتغذيه البصريّة , يعني ان تشاهد الكثير من مقاطع الموشن جرافك حتى تتكوّن لديك فكرة جيدة على الانيميشن .
بعد ذلك تعلم اساسيات واجهة برامج Adobe Illustrator و After Effect , ستحتاجهم في مراحل بناء مقطع الموشن جرافيك .
الان انت جاهز لمتابعة سلسلة او كورس للتعلم , انصحك بهذه السلسة من هنا .
-
إجابة عزام عبد الحافظ سؤال في الخطوط المستخدمه في الواجهات البرمجيه كانت الإجابة المقبولة
وعليكم السلام @صالح السوفي ,
أكثر الخطوط العربية المستخدمة هي :
Tajawal, Cairo و Droid Arabic Kofi .
يمكنك ان تجد خيارات اخرى جيدة في google fonts .
-
إجابة عزام عبد الحافظ سؤال في هل الدورات جيدة في موقع يودمي udemy كانت الإجابة المقبولة
مرحبًا ابراهيم ,
تعتمد الدورة على محتواها و على المدرب الذي يقوم بشرح المادة , الدورات في يودمي تقتدم من قبل مدربين مشتركين في موقع يودمي مثل يوتيوب لكن مقاطع الدورات مدفوعة , إذا كنت تفهم من المدرب و المحتوى جيد سوف تستفيد منها .
-
إجابة عزام عبد الحافظ سؤال في هل لدي خطا في ملف سي شارب. كانت الإجابة المقبولة
مرحبًا @Red Wolf , نعم rar جيد ايضاً
الكود يعمل جيداً لكن لمثل هذا المشروع الافضل هو اختيار Console app لنوع المشروع مثل ما في الصورة
-
إجابة عزام عبد الحافظ سؤال في كود css (التوافق مع الجوال) كانت الإجابة المقبولة
مرحبًا @احمد محمد34,
يمكنك كتابة إصدار للكود يعمل فقط على الجوال وذلك بإستخدام @media query , يمكنك قراءة المزيد عن هذه القاعدة من هنا .
@media only screen and (max-width: 600px) { #main-wrapper[data-layout=vertical][data-sidebartype=full] .page-wrapper { margin-left: 0px; margin-right: 0px; text-align: right } #main-wrapper[data-layout=vertical][data-sidebartype=full] .topbar .top-navbar .navbar-header { width: 260px } #main-wrapper[data-layout=vertical][data-sidebar-position=fixed][data-sidebartype=full] .topbar .top-navbar .navbar-collapse { margin-left: 0px; margin-right: 0px } } إجعل هذا الكود بجوار الذي معك .
-
إجابة عزام عبد الحافظ سؤال في كيفية تصدير مشروع في الجافا بطريقه احترافيه ؟ كانت الإجابة المقبولة
وعليكم السلام صالح ,
بإستخدام برنامج Launch4j بسهلوة يمكنك تصدير ملفات جافا , لقد رأيت الإعتماد عليها كثير , هنا فيديو خطوة خطوة للتصدير و رابط Launch4j في وصف الفيديو
-
إجابة عزام عبد الحافظ سؤال في مشكلة عند الشراء كانت الإجابة المقبولة
وعليكم السلام ورحمة الله وبركاته ابراهيم .
يمكنك التواصل مع فريق الدعم من هذا الرابط افتح تذكرة , و سوف يتم التواصل معك في اقرب وقت لحل المشكلة .
-
إجابة عزام عبد الحافظ سؤال في المساعدة في حل سؤال ++C كانت الإجابة المقبولة
مرحباً بك @Manar Ramadan.
هذا هو الحلل :
#include <iostream> using namespace std; bool isfloat(float f1, float f2) { // المنطق : // عليمة طرح الرقم مع ذاته من غير كسور و المقارنة بعد ذلك إذا كان أكبر من صفر // و نسترجع قيمة منطقية على حسب الحال if( abs(f1-int(f1) > 0 && abs(f2-int(f2) > 0 ))){ return true; }else{ return false; } } int main() { float f1,f2; // المستخدم يكتب الأرقام cout << "Float 1 : "; cin >> f1; cout << "Float 2 : "; cin >> f2; //متغير القيمة المنطقية bool isFloat = isfloat(f1,f2); if (isFloat){ //floats إذا كان الرقمان cout << "They are Floats" << "\n"; cout << "Multiply : "; cout << f1 * f2 << "\n"; cout << "Addition : "; cout << f1 + f2 << "\n"; }else{ //floats إذا لم يكن الرقمان cout << "Both or one of them is Integars" << "\n"; } return 0; } شكراً لك.
-
إجابة عزام عبد الحافظ سؤال في جافا سكريبت كانت الإجابة المقبولة
مرحباً بك @Lugain Amer.
هذا هو حل المسألة:
<script> var numbers = window.prompt("Write 15 integers between 100 and 200: "); var numArray = numbers.split(" "); function square_of_largest_num(numArray){ var largest= 0; for (i=0; i<=largest;i++){ if (numArray[i]>largest) { var largest=numArray[i]; } } var largest = Math.sqrt(largest); alert(largest); } function square_of_all_nums(numArray){ for( i = 0; i < numArray.length; i++){ alert(`Square root of ${numArray[i]} is ${ Math.sqrt(numArray[i])}`); } } function count_values_between_120_145(numArray){ var count = 0; for( i = 0; i < numArray.length; i++){ if(numArray[i] >= 120 && numArray[i] <= 145){ count++; } } return count; } function find_smallest_and_largest_num(numArray){ var largest= 0; for (i=0; i<=largest;i++){ if (numArray[i]>largest) { var largest=numArray[i]; } } var smallest = Math.min.apply(Math, numArray) alert(`Largest number is ${largest} and Smallest number is ${smallest}`); } square_of_largest_num(numArray); square_of_all_nums(numArray); var count = count_values_between_120_145(numArray); alert(`Count of values between 120 and 145 is ${count}`); find_smallest_and_largest_num(numArray); </script>
-
إجابة عزام عبد الحافظ سؤال في الخبراء في لغة C# كانت الإجابة المقبولة
مرحباً صديقي @مؤمل محمد2.
لقد حللت لك المسألة .
using System.Windows.Forms; using System.Text.RegularExpressions; namespace Expert_Csharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string Inputxt = InputTextBox.Text; string Changetxt = ChangeTextBox.Text; string ChangeWithtxt = ChangeWithTextBox.Text; string result = Regex.Replace(Inputxt, Changetxt, ChangeWithtxt); ResultTextBox.Text = result; } } }
هنا المشروع كامل, أطيب تحياتي.
Expert Csharp.zip