-
المساهمات
92 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Abdelrehman Elsied
-
سلام عليكم. هل يمكن لأحد أن يعطيني فكرة لمسائل برمجية بلغة البايثون ثم يقيمها لي.
- 2 اجابة
-
- 2
-
-
هل فكرة عمل كود مشترك تعمل دالتين أو أكثر به هي الوراثة في اللغات كائنية التوجه. الاحظ في بعض الألعاب (القديمة مثل IGI 2000) أن أكثر من شخصية من شخصيات الأعداء تتشارك نفس الصوت و نفس ال(animation) عندما تقتل. هل يضطر المبرمجين لكتابة نفس الأكواد لكلا الشخصيتين المختلفتين.
- 3 اجابة
-
- 1
-
-
السلام عليكم. في الكود التالي: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> // global variables & constants #define NEXT 2 // represent a tree typedef struct node { int number; struct node* next[NEXT]; // [0] for left subtree and [1] for the one on right } node; // functions prototypes node* allocate_node(int number); node* find_parent(node* tree, int number); bool check(node* tree, int number); int main(void) { // tree: the root of tree - n: to allocate new memory for nodes node* tree = NULL; node* n = NULL; // array to insert const int SIZE = 7; const int numbers[SIZE] = {5, 7, 2, 6, 8, 2, 4}; // insert items automatically for (int i = 0; i < SIZE; i++) { n = allocate_node(numbers[i]); // n is the root if tree empty if (!tree) { tree = n; } else { // temp holds the address of the right parent of n node* temp = find_parent(tree, numbers[i]); // insert right or left if (numbers[i] > temp->number) { temp->next[1] = n; } else { temp->next[0] = n; } } } // try checking x int x = 50; printf("%sFound\n", check(tree, x) ? "" : "Not "); // well done! return 1; } // func1: allocating new memory node* allocate_node(int number) { node* new = NULL; new = malloc(sizeof(node)); if (!new) { exit(0); } new->number = number; for (int i = 0; i < NEXT; i++) { new->next[i] = NULL; } return new; } // func2: find the parent of a node node* find_parent(node* tree, int number) { if (!tree) { return NULL; } node* temp = tree; while (temp->next[0] || temp->next[1]) { if (number > (temp->number)) { if (temp->next[1]) { temp = temp->next[1]; continue; } return temp; } else { if (temp->next[0]) { temp = temp->next[0]; continue; } return temp; } } return temp; } // func3: search in BST bool check(node* tree, int number) { // iterative for goes through the tree for (node* temp = tree; temp; ) { // found? if (number == temp->number) { // yeah :) return true; } // go right if target greater than temp->number else if (number > (temp->number)) { temp = temp->next[1]; continue; } // go left if not temp = temp->next[0]; } // not found :( return false; } كلا دالتي البحث و إيجاد الأب للعقد الجديدة متشابهين لحد كبير. هل يمكن بطريقة أو بأخري تقليل عدد أسطر الكود. أو بمعني اَخر, هل يمكن تخزين الأسطر المتشابهة بين الدالتين في مكان ما ثم أستدعاء تلك الأسطر في كلا الدالتين أو شيئ من هذا القبيل.
- 3 اجابة
-
- 1
-
-
لفهم ال Hash Table أو كي أطلق علي نفسي أني أفهمه, هل يجب أن أخترع (أو أفكر/أبتكر دعنا نقول) خوارمية تجزئة/توزيع العناصر علي ال Hash Table. فمثلا خوارزمية مثل djb2 أفهما و أفهم كيف توزع العناصر علي الجدول لكن حتي الاَن لا يمكنني إبتكار خوارزمية لتوزيع العناصر (أو دعنا نقول خوارزمية توزع العناصر بشكل جيد علي الجدول). لفهم ال Hash Table أو كي أطلق علي نفسي أني أفهمه, هل يجب أن أخترع (أو أفكر/أبتكر دعنا نقول) خوارمية تجزئة/توزيع العناصر علي ال Hash Table. فمثلا خوارزمية مثل djb2 أفهما و أفهم كيف توزع العناصر علي الجدول لكن حتي الاَن لا يمكنني إبتكار خوارزمية لتوزيع العناصر (أو دعنا نقول خوارزمية توزع العناصر بشكل جيد علي الجدول). لماذا لا نجعل الدلو شجرة بدلا من قائمة مترابطة. فهذا سيسرع البحث كثيرا خصوصا إن كانت الدلو يحوي عدد كبير نسبيا من الكلمات. أم أن هذا لا يعتبر أنسب حل في مثل هذه الحالات لأنه بطبيعة الحال, العقدة في الشجرة تحمل مؤشرين مما سيزيد من الذاكرة المستهلكة.
-
سلام عليكم. لدي أستفسار بخصوص ال Hash Table: إذا كان لدينا قاموس ضخم (فلنأخذ قاموس اللغة الأنجليزية كمثال) فإن أنسب هيكل بيانات لتخزين القاموس هو ال Hash Table لما يوفر من سرعة ثابتة علي حساب الذاكرة. كالمثال التالي: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <cs50.h> #include <ctype.h> // Global variables #define ALPHABETS 26 #define MAX 35 // Struct node typedef struct node { string word; struct node* next; } node; // Functions prototypes void EXIT(string msg); node* find_tail(node* head); void insert_node(node** head, string word); void print_linked_list(node* head); void free_linked_list(node* head); int main(int argc, string argv[]) { if (argc != 2) { EXIT("Usage: ./dictionary [N of words]\n"); } short n_of_words = atoi(argv[1]); if (!strcmp(argv[1], "0")) { EXIT("No words added\n"); } else if (!n_of_words) { EXIT("Invalid input\n"); } else if (n_of_words > MAX) { printf("%i ", MAX); EXIT("is the max number\n"); } // Hash table starts here node* dictionary[ALPHABETS] = {NULL}; // Take vocabularies & insert them for (int i = 0; i < n_of_words; i++) { string vocabulary = get_string("Word: "); short hash = toupper(vocabulary[0]) - 'A'; insert_node(&dictionary[hash], vocabulary); } // Print & Free dictionary for (int i = 0; i < ALPHABETS; i++) { printf("%c: ", i + 'A'); if (dictionary[i]) { // print current bucket print_linked_list(dictionary[i]); printf("\n"); // free current bucket free_linked_list(dictionary[i]); } else { printf("\n"); } } } // func1: Exit program function void EXIT(string msg) { printf("%s", msg); exit(0); } // func2: To find the tail of a linked list node* find_tail(node* head) { if (!head) { return NULL; } node* temp = head; while (temp->next) { temp = temp->next; } return temp; } // func3: To insert a node to a linked list void insert_node(node** head, string vocabulary) { node* n = malloc(sizeof(node)); if (!n) { return; } n->word = vocabulary; n->next = NULL; if (!*head) { *head = n; return; } find_tail(*head)->next = n; } // func4: To print linked list items void print_linked_list(node* head) { for (node* temp = head; temp; temp = temp->next) { printf("%s ", temp->word); } } // func4: To free linked list void free_linked_list(node* head) { while (head) { node* temp = head->next; free(head); head = temp; } } أعرف أنها طريقة سيئة لتخزين الكلمات؛ إذ أردنا البحث عن كلمة ما في القاموس, فنعم سنختصر الكثير من الوقت لأننا نعلم في أي Bucket سنبحث, لكن ما زال البحث بطئ (أو حتي بنفس البطئ) لأن البرنامج سيضطر للمرور علي عناصر ال Linked List واحدة تلو الأخري. لذلك قاموا بتوسيع الجدول كي تتقسم العناصر أكثر و أكثر (كل هذا علي حساب الذاكرة). هل يمكن لأحدكم أن يشرح لي هذا التقسيم (في مثال القاموس تحديدا). كما أن هناك عملية تتم علي الكلمات كي نجد ال Bucket بنفس الوقت, ما هي هذه العملية.
- 3 اجابة
-
- 1
-
-
- 3 اجابة
-
- 1
-
-
هل يمكن لأحد أن يعطيني خريطة مفصله للأشياء الواجب معرفتها لعمل صفحه أسئله مثل التي نراها في أي موقع دورات.
- 3 اجابة
-
- 1
-
-
شكرا لك. لدي فقط سؤال أخير. لا يمكن مقارنه string ب string اخر لأن كلاهما مؤشران يحملان قيم مميزه. لكن أنظر لهاتين الصورتين. كود طبع same و اخر different.
- 3 اجابة
-
- 1
-
-
السلام عليكم. لدي بعض الأسئله بخصوص ال pointers: 1. بما أن ال pointer هو فقط رمز أو عنوان يميز المتغيرات في الرام, فما فائده أسماء المتغيرات. فهي أيضا تقوم بنفس الوظيفة. و اللغه لا تسمح بتكرار تلك الاسماء. فما فائده ال pointers هنا. 2. ال pointer يحمل رقم hexa يشير لمكان ما أو رقم خانة (بايت) في الذاكرة. فمثلا لو 0x63dfaa380004 فهو يشير للبايت رقم 109812284653572 أي يشير لبايت واحد فقط. لكن المتغيرات من النوع int او short او غيره تخزن في أكثر من واحد بايت. فكيف يصل للقيمة رغم تأشيره علي بايت واحد من الأربعه أو الثمانيه. 3. في الكود التالي: #include <stdio.h> #include <cs50.h> int main(void) { string s = "HI!, hello"; // s[0]='H' s[1]='I' s[2]='!' s[3]='\0' printf("size of s[0]: %lu\n", sizeof(s[0])); // char is stored 1 byte printf("size of HI!: %lu\n", sizeof(s)); // size of s should be 4 bytes. but why and how 8 bytes } حجم ال s[0] واحد بايت. اليس من المفترض ان يكون حجم ال string اربعه بايت. الكود يخرج 8 دائما. جربته علي compiler اخر و اخرج 32 ايضا دائما. أرجو التوضيح لأنني لا أفهم. و شكرا علي مجهودكم.
- 3 اجابة
-
- 1
-
-
سلام عليكم. حاولت تطبيق خوارزميه ال Bubble Sort بلغه ال C++. #include <iostream> using namespace std; #define LEN 7 int main() { int numbers[] = { 1, 2, 5, 4, 7, 9, 3 }; int tmp; int check; for (int i = LEN-1; i >= 0; i--) { check = 1; for (int j = 0; j < i; j++) { if (numbers[j] > numbers[j + 1]) { check = 0; // swap numbers[j] & numbers[j+1] tmp = numbers[j]; numbers[j] = numbers[j+1]; numbers[j + 1] = tmp; } } if (check == 1) break; } for (int i = 0; i < LEN; i++) { cout<<numbers[i]<<"\n"; } } هل هذا الكود صحيح.
- 4 اجابة
-
- 1
-
-
اسف السؤال يتعلق بالخوارزميات و ليس الdata structure. أعذرني من فضلك. السؤال عن خوارزميه الselection sort. في هذا الكود, لماذا لا يظهر الرقم 7: #include <cs50.h> #include <stdio.h> int main(void) { int numbers[] = {4, 7, 2, 6, 3, 1, 2}; int max, LEN = 7, tmp; for (int i = LEN - 1; i >= 0; i--) { max = 0; for (int j = 0; j <= i; j++) { if (numbers[max] < numbers[j]) max = j; } // now I have the max index. swap it now. // swap between numbers[max] & numbers[LEN - 1] tmp = numbers[max]; // tmp 6 numbers[max] = numbers[LEN - 1]; // 2 numbers[LEN - 1] = tmp; LEN --; } for (int i = 0; i < 6; i++) { printf("%d ", numbers[i]); } printf("\n"); } و سؤال اخر, من فضلك. ما الوقت الذي يستغرقه دراسه خوارزميه مثل selection sort. لأنني أشعر انني اخذ وقتا اكثر من اللازم في فهم و تطبيق تلك الخوارزميات. و شكرا علي مجهودكم الطيب.
-
هل يمكنني سؤال أسئله في الData Structure في لغه السي.
- 3 اجابة
-
- 1
-
-
سلام عليكم في الكود التالي: let questions = [ ['Find X if 2X + 4 = 10', ['4', '3', '1', '5'], '3'], ['Find X if 5X + 4 = 24', ['4', '3', '1', '5'], '4'], [`What's the value of 12*3+4*2`, ['80', '168', '132', '20'], '20'], ['IF Y = 2X and X+Y = 6 Find X-Y', ['0', '4', '-2', '2'], '-2'], ['IF the area of square = 16 What is the length of its chord', ['4.33', '3.5', '5.65', '5.1'], '5.65'] ] function main(){ let userAnswer, userRes = 0; for(let i in questions){ do{ userAnswer = prompt(showQuestions(questions[i][0], Number(i)+1)); if(userAnswer === null){ if(confirm('Exit Quiz')){ if(confirm('Show Your Result')) alert(`You Got ${userRes}/${questions.length}`); return null; } else continue; }else if(userAnswer === ""){ continue;} else if(userAnswer === "h" || userAnswer === "H"){ // IDK } }while(isValidAnswer(userAnswer)); if(userAnswer == questions[i][2]){ alert("Right"); userRes++; continue; }alert("Wrong"); } alert(`You Got ${userRes}/${questions.length}`); } function showQuestions(ques, quesNum){ // let display = ''; // display += `${ques}\n`; // for(let i=1; i<=4; i++){ // display += `- ${answers[i-1]}\n`; // } return (`${quesNum}) ${ques}\n Enter h for help`); } function isValidAnswer(usrAns){ if(isNaN(Number(usrAns))){ alert("VALID INPUT") return 1; }return 0; } main(); أريد أن يظهر اجابات الأربعه الموجوده في الindex الثاني لكل سؤال اذا أدخل المستخدم h او H اختصارا ل help. حاولت لكن فشلت. و به خطأ لا أستطيع تنقيحه و هو أن المستخدم اذا أدخل نص فارغ عند الأجابه علي السؤال, يحتسبها خطأ بأعتبار أن undefined لا تساوي الindex الثالث للسؤال في المصفوفه.
- 1 جواب
-
- 1
-
-
السلام عليكم. في المسئله الشهيره Fibonacci و التي هي عباره عن تسلسل للأعداد بنائا علي الرقمين السابقيين حيث الرقم الحالي (أو المدخل) يجب أن يساوي مجموع الرقمين السابقين. هذه المسئله أعرف خطوات حلها. و هي كالتالي: قم بتعريف متغيريين. واحد يحمل القيمه السابقه(n1) و الثاني يحمل القيمه التي تسبقها(n2). قم بأخد عدد مرات الأرقام المدخله. أنشئ حلقه تسأل المستخدم عن الرقم بنفس عدد تلك المرات (n) اذا كانت القيمه لا تساوي مجموع الرقمين السابقين, أسأله مره أخري. و اذا كانت صحيحه بالفعل: أجعل القيمه السابقه n1 مساويه للرقم المدخل. أجعل القيمه التي تليها n2 مساويه للقيمه n1. لكن لم أستطيع تمثيلها ككود. و أحيانا كثيره تأتيني أفكار أو أبحث عن مسائل و أعرف طرق الحل ولا أستطيع حلها (ككود). أين المشكله هنا. و هذا هو حلي. // Fibonacci let n = 5; // number of input numbers let n1 = 0; let n2 = 1; for(let i=0; i<n; i++){ do{ input = prompt(`${n1} - ${n2}`); }while(input !== n1+n2); n1 = n2; n2 = input; } و شكرا علي مجهودكم.
- 1 جواب
-
- 3
-
-
سلام عليكم. في الكود البرمجي التالي: الذي تمرر له نص و يمر علي كل الحروف في النص و يكررها أي اذا أدخلت له 'text' ستكون 'tteexxtt' أو 'hello' ستكون 'hheelllloo'. // Double String :: string >> ssttrriinngg let txt = "hello"; let txtAfter = ''; for(let item of txt){ for(let i=0; i<2; i++) txtAfter+=item; } console.log(txtAfter); يمكن حل المسئله بطريقه اخري: اذ يمكن المرور علي كل العناصر و نسخها. let txt = 'hello'; for(let i of txt){ txt.splice(i, 0, txt[i]); } لكن splice لا تعمل مع النصوص. هل هناك بديل؟
- 2 اجابة
-
- 1
-
-
عند حل المسائل البرمجيه في البدايه. هل أهتم فقط بمنطق و كيفيه حل المسئله أم أهتم أيضا بأداه الشيفره البرمجيه و سرعتها و ما الي ذلك أيضا.
- 3 اجابة
-
- 1
-
-
أنا أدرس دوره علوم الحاسوب. هل يمكنني عمل فريق مع أحد طلاب الدوره (أو أكثر من واحد).
- 2 اجابة
-
- 2
-
-
سلام عليكم. من أأتي بمسائل برمجيه (في لغه js تحديدا) لحلها و تقييمها. و أتذكر أنني رأيت مدونه لحل و مشاركه المسائل و الحلول البرمجيه تابعه لhsoub. اذا كانت موجوده, أروجو التكرم بأرسال الرابط. شكرا.
- 4 اجابة
-
- 4
-
-
"الأمر ليست بتلك السهولة" أعرف لكن مادام هناك بئر باخر الطريق, سأستمر في المشي. "React Native" أي جافا سكربت
-
السلام عليكم. أنا مطلوب مني مشروع جيم بيشتغل كالاتي: 1) نظام التسجيل لعميل جديد, البرنامج هيطلع qr code عشوائي خاص و مميز عن كل العملاء المسجلين مسبقا و دا اللي هيسجل بيه بعدين. 2) نظام اداره العملاء اليومي: الكارت هيكون عليه تلاتين مره أو نقطه يسجل فيها -بعدد ايام الشهر- و لو عدي يوم من غير ما ييجي بيتحسب يوم و ينقص منه نقطه. أعمل البرنامج دا بايه. انا جديد هنا.
- 4 اجابة
-
- 2
-
-
سلام عليكم. ما عمل الداله someCode() في جافاسكربت. جربت كتابه البرنامج التالي أنا مقتبسه من كتاب لجافاسكربت, لكن يظهر لي خطأ. ما هذا الخطأ
- 5 اجابة
-
- 5
-
-
سلام عليكم. أنا أستخدم محرك FireFox. في كتاب الجافا سكربت الصفحه 55 طلب مني أن أفتح المتصفح ثم الضغط علي F12 لفتح الconsole. عندما فتحت المتصفح عندي وجدت رساله الخطأ هذه. كما أن هذه الرسائل تختلف من موقع لاخر. و ما الفرق بين صفحه البحث و محرك البحث. و لما يعمل متصفح بمحرك بحث اخر مثلا يعمل firefox عندي بمحرك بحث microsoftedge. و ذكر الكتاب أن شفره جافاسكربت يمكن أن تعمل خارج المتصفح -علي محرك جافاسكربت- مثل العمل علي الخادم, ما هو الخادم؟ و ما هي الECMAscript و الECMA-262. و ما هي الTranspilation التي تحول لجافاسكربت. و ما هي اللغات التوصيفيه (markup languages). و السلام عليكم.
- 1 جواب
-
- 1
-
-
اسف لم أجد تصنيفا لسؤالي علي الموقع, و ان لم يوافق المتخصصين علي نشره لا مشكله. بعد السلام عليكم و رمضان كريم علي كل الأمه الاسلاميه -أعاده الله علينا و عليكم بالخير و اليمن و البركات-. أنا من طلاب الصف الثالث الثانوي مصر -توجيهي أو بكالوريا- و مع أقتراب أمتحانات الثانويه العامه أشعر أن مستقبلي أختزل في رمال الساعه الرمليه, مع كل يوم يقترب فيه الامتحانات أشعر أن الأمل في مستقبلي ينقص؛ لأنني ليست جيدا في المواد اللهم الا الرياضيات و اللغه الأنجليزيه و بعض الفيزياء و للأسف تخصصي علمي أي لا يوجد رياضيات. أتغذي يوميا تغذيه من أهلي و أصدقائي و كل من أختلط بهم تقريبا أنني ان لم أحصل علي درجات غير مثاليه و ان كانت جيده جدا فهذا يعني أن لا فرق بينك و بين الراسب. و أنك ستعيش باقي حياتك بعد الثانويه بناءا علي الحجر الذي وضعته في تلك السنه, فأما نعيم دائم أو ظلمه و وضاعه اجتماعيه و معاناه في الفرص و المال. من المحتمل الكبير أن مجموعي لن يتعدي ال70 بالمئه. اذا كان لأحدكم نصيحه أو تجربه له أو لأحد يعرفه أخبرني بها. و ماذا أفعل في حاله ال70 بالمئه.
- 2 اجابة
-
- 1
-
