🇾🇪علوم حاسوب مستوى ثالث | جامعة صنعاء🇵🇸 – Telegram
🇾🇪علوم حاسوب مستوى ثالث | جامعة صنعاء🇵🇸
1.49K subscribers
572 photos
61 videos
753 files
813 links
مستوى ثالث
قناة البرمجة⬇️
https://news.1rj.ru/str/TECH_MINDs24

بوت_اللجنة_العلمية(مقررات-نماذج)
@CS_Studnts_class_24_bot 👈

مجتمع_الدفعة
https://news.1rj.ru/str/CScommunity24👈
قناة_الأسئلة
https://news.1rj.ru/str/cs_24_MCQ 👈
بوت_التواصل_والمشاركة_والإقتراحات
@Computer_science24_bot
Download Telegram
جميع التكاليف الذي جاب لنا الأستاذ أنس الشعراني

ثلاثة تكاليف الى حد الان
١. تكليف انشاء function لكل عملية حسابية
٢. انشاء عملية تسجيل الدخول (login) لبرنامج الsalary والbonus الذي فعلنها في المحاضرات.
٣. اضافة عملية التحقق من صحة البيانات المدخلة للدرجات في برنامج درجات الطلاب الذي انشأناه في المحاضرات كذلك

ارجعوا الى هنا وشوفوا كيف ترسلوهن 👇
https://news.1rj.ru/str/CS_24_class/681

رابط بوت تكاليف الأستاذ #أنس_الشعراني :-
@CS_P_Homework_bot


#اللجنة_العلمية_CS
https://news.1rj.ru/str/CS_24_class
2👍2👎1
الأن برسل لكم مشروع مادة برمجة حاسوب، المشروع النهائي بجميع متطلباته وكل التفاصيل تبعه ...
1👎1
finalProject.pdf
288.6 KB
#المشروع_النهائي
#برمجة_حاسوب

رسالة الأستاذ #أنس_الشعراني:

"السلام عليكم ورحمة الله
هذي متطلبات مشروع العملي للمادة
ابدؤوا العمل عليها وإن شاء الله المناقشة با تكون في آخر أسبوع ... يعني في أول ١٠ أيام من شهر فبراير...الموافق لآخر أيام من شهر رجب ... وبا نرجع نحدد موعد محدد لكل مجموعة ... بالإمكان أن يتشارك ٣ طلاب في نفس المشروع كحد أقصى ... لكن يجب على الثلاثة فهم المشروع فهم كااامل لأن المناقشة ستشمل جميع نواحي المشروع وجميع الطلاب سيُسألون بشكل عشوائي من المشروع .. فكونوا على استعداد .... وإن شاء الله كذلك سأقوم بتجهيز فيديو توضيحي للمشروع ... لكي تفهموا كل متطلباته بالضبط إن شاء الله

بالتوفيق لكم جميعًا"

#اللجنة_العلمية_CS
https://news.1rj.ru/str/CS_24_class  👈

#بوت_اللجنة_العلمية
@CS_Studnts_class_24_bot 👈
#التقارير_اليومية
https://news.1rj.ru/str/CsDailyReports
#قناة_الأسئلة
https://news.1rj.ru/str/cs_24_MCQ 👈
#بوت_المشاركة_والاقتراحات
@Computer_science24_bot
6👍4👎1
🎲 اختبار '15 سؤال لماده اللغة الإنجليزية'
🖊 15 سؤالًا · 30 ث
👎1
للشاعر الكبير البردوني :- ‏" فليقصفوا، لستَ مقصفْ
وليعنفوا، أنت أعنفْ
وليحشـدوا، أن تدري
إنّ المُخيـفـين أخـوفْ
لـهم حديـدٌ ونار ٌ
وهـم من القـَـش ِّ أضعـفْ "
9🔥1
دعاء الاعتصام بالله من الطيران

‏إعتصمنا بذي الملك والملكوت.
وتحصنا بذي العزة والجبروت
وتوكلنا على الحي الذي لايموت.
ورمينا كل من أرادنا بسوء أو مكروه فلاحول ولاقوة إلا بالله العلي العظيم ..
5
🫥 طلع مش بسيط 🫥
👎3🤣3🤓3🤩2
ملخص لجز۽ من الدوال لِما تم اخذة من الدوال
مع د. #موسى_غراب لنِحاول تذكر وربط المواضيع مع بعضها البعض اتمنى ان تستفيدوا منه ...
ملاحظة :
" جل من لا يسهو "🤍
مافيش حد معصوم من الخطأ
لذلك ان وجد خطأ
فأرجوا التواصل مع بوت التواصل في اللجنة العلمية @Computer_science24_bot
#برمجة_حاسوب
د. #موسى_غراب
#بالتوفيق_للجميع 🤍
3👍2👎1
#الدوال (1):

انواعها:
1- دوال لا ترجع قيمه (نوعها void)
2- دوال ترجع قيمه
(لها نفس انواع بيانات المتغيرات سواءا متغيرات ثابته int float double char ....etc او متغيرات مصطنعه struct-class-enum....etc)


_كل الانواع السابقه يمكن ان تكون
1_ تستقبل قيما
2_ لا تستقبل قيما

_الدوال التي تستقبل قيما يمكن ان تمرر القيم اليها بطريقتين
1_ #التمرير_بالقيمه
2_ #التمرير_بالمرجع

_التمرير بالقيمه تعني ان الداله ستقوم بانشاء متغيرات اخرى وتعطيها القيم التي مررت اليها ثم تتعامل مع هذه المتغيرات الجديده

_التمرير بالمرجع يعني ان الداله ستتعامل مباشره مع المتغيرات التي مررت فيها ويتم وضع العلامه & قبل اسم المعاملات المنشأه فيها

اليكم مثال سيوضح الفرق بينها

#include<iostream>
using namespace std;

void swap1(int n1 , n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}
void swap2(int &n1 , int &n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}

int main()
{
int a = 5; b = 7;
cout<<"main vales\n a = "<<a<<" b = "<<b<<endl<<"_\n";
swap1(a , b);
cout<<"after swap1\n a = "<<a<<" b = "<<b<<endl<<"_\n";
swap2(a,b);
cout<<"after swap2\n a = "<<a<<" b = "<<b<<endl<<"_\n";
return 0;
}


والنتيجه هي :
main vales
a = 5 b = 7
___
after swap1
a = 5 b = 7
___
after swap2
a = 7 b = 5
___


اتمنى تكون الفكره وصلت وجربو الكود بانفسكم لتتعلمو المزيد 👍🤍
#بالتوفيق_للجميع
د. #موسى_غراب
#برمجة_حاسوب
👍4👎1
#الدوال (2):
الدوال التي لا ترجع قيمه :

_دائما ما يكون نوعها هو void وهي لا تحجز اماكن في الذاكره الا وفقط للمتغيرات التي بداخلها فقط

_لا تحتوي هذه الدوال على قيم عند كتابه الامر return

_يعتبر الامر return في هذه الدوال امرا لايقافها بمعنى ان الداله تنتهي عند هذا الكود

_غالبا ما تستخدم هذه الدوال لاداء وظائف الطباعه والاخراج او وظائف الكتابة والتعديل على المتغيرات العامه في البرنامج

_تستخدم ايضا غالبا كدوال #الاستدعاء_بالمرجع او #call_by_reference للكتابه والتعديل على قيم المتغيرات الممره فيها


امثلة :

1-لا تستقبل قيما
void say_hello()
{
cout<<"\tHello Sir \n";
}
تقوم هذه الداله بطباعه النص (Hello Sir) في كل مره يتم استدعائها فيه

2-تستقبل قيما
void say_welcome(string name)
{
cout<<"\tWellcome "<<name<<" to my project .\n";
}

تقوم هذه الداله بالترحيب بالشخص الممرر اسمه فيها عند استدعائها مثلا
say_welcom("Ahmed");
والنتيجه هي طباعة
Welcome Ahmed to my project .

3-#الاستدعاء_بالمرجع
void Swap(int &a , int &b)
{
a ^= b;
b ^= a;
a ^= b;
}
تقوم هذه الداله بتبديل قيمتي المتغيران الذان يمرران اليها مثل

int num1 = 22 , num2 = 30;
cout<<"num1 = "<<num1<<" num2 = " <<num2<<endl;
Swap(num1 , num2);
cout<<"num1 = "<<num1<<" num2 = " <<num2<<endl;

والنتيجه هي :
num1 = 22 num2 = 30
num1 = 30 num2 = 22

#بالتوفيق_للجميع
د. #موسى_غراب
#برمجة_حاسوب
👍4👎1
#الدوال (3):
الدوال التي ترجع قيمة :

_تحجز هذه الدوال اماكن في الذاكره بمقدار ما يحجزه اي متغير عادي حسب نوعه مثلا الدوال التي من نوع int تحجز 4 byet وتحجز الدوال التي من نوع double 8 byte مع العلم بان هذه الاماكن من الذاكره لا يتم حجزها الا عند تنفيذ الداله ويتم التخزين فيها القيمه التي ترجعها هذه الدوال

_يتم ايضا حجز مساحات للمتغيرات التي يتم انشائها في الدوال والمتغيرات التي يتم تمرير القيم اليها!!

_عند استخدام الاستدعاء بالمرجع فانه لا يتم حجز اي مواقع في الذاكره للمتغيرات التي تم تعريفها لاستقبال قيما بالمرجع!!

_دائما ما تنتهي هذه الدوال بامر return بل ويجب ان تنتهي بهذا الامر بينما الدوال الدوال التي لا ترجع اي قيم لا يشترط ان تنتهي بهذا الامر

_يتم تمرير قيمه بنفس نوع بيانات الداله الى الامر return فان كانت الداله من نوع int يجب تمرير قيمه رقميه الى الامر return مثل
return 10;

امثلة على هذه الدوال:

1_
int sum_of(int a , int b)
{
return (a + b);
}
ترجع هذه الداله المجموع لرقمين يتم تمريرهم اليها

2_
char get_first_of(string name)
{
return name[0];
}
ترجع هذه الداله الحرف الاول من اي نص يمرر اليها

3_
double average(int sum , int count_s)
{
if(count_s != 0)
return (sum/count_s);
else
return 100.0;
}
ترجع هذه الداله المعدل للمجموع وعدد المواد الممره اليها وتم استخدام الامر
if(count_s != 0)
لتجنب وقوع خطا عند القسمه على الصفر


4_
string get_appre(float &n)
{
if(n >= 90)
return "Excelant";
else if(n >= 80)
return "Very good";
else if(n >= 65 )
return "Good";
else if(n >= 50)
return "Accept";
else
return "Fill";
}
ترجع هذه الداله التقدير لاي معدل يتم تمريره اليها وطالما اننا لا نغير من قيمه المتغير الممرر اليها تم استخدام التمرير بالمرجع لتقليل المساحه التي تحجزها على الذاكره
ويفضل عدم استخدام التمرير بالمرجع اذا كنا نريد استخدام هذه الداله مع تمرير قيمه مباشره اليها دون تمرير متغير بدلا من ذلك


#بالتوفيق_للجميع 🤍
#برمجة_حاسوب
د. #موسى_غراب
👍5👎1
#الدوال (4) :
المتغيرات الثابته وخواصها وعملها على الدوال:

_المتغيرات الثابته هي متغيرات نقوم بحجزها داخل هيكل الداله وتقوم الداله بالاحتفاض بقيمة هذه المتغيرات حتى بعد انتهاء عمل الداله ويمكن للداله التعامل مع هذه القيم في كل مره نقوم باستدعائها فيه

_نقوم بتعريف المتغيرات الثابته بعد الكلمه المحجوزه static

_عند استدعاء اي داله لا تحمل متغيرات ثابته فان البرنامج يقوم بانشاء داله مشابهة للداله التي قمنا باستدعائها اما عندما تحتوي الداله على متغير ثابت فان البرنامج يستدعي نفس الداله مع نفس المتغيرات في كل مرة يتم استدعاءها فيه


مثال :
#include <iostream>
using namespace std;

void print_number()
{
static int a = 0;
cout<<"the number is : "<<a<<endl;
a++;
}
int main()
{
print_number();
print_number();
print_number();
print_number();
}

والنتيجه هي :

the number is : 0
the number is : 1
the number is : 2
the number is : 3

#بالتوفيق_للجميع🤍
د. #موسى_غراب
#برمجة_حاسوب
👍4👎1
#الدوال (5):
استدعاء الداله لنفسها :

_جميعنا يعرف انه بامكاننا استدعاء اي داله من داخل داله main او من ايي داله اخرى ولكن بامكاننا ايضا استدعاء الداله من داخل هيكلها ايضا ولاكن يرجى مراجعة بعض الآداب والشروط ليعمل البرنامج بشكل صحيح


_شروط استدعاء الدوال لذاتها:
1_ عمل نقطة توقف لاستدعاء الدالة لذاتها وذلك لتجنب دخول البرنامج بدائره لا يمكنه الخروج منها تماما مثل وضع شرط لتوقف داله for او while عن تكرار كود معين

2_ تغيير القيم الممرره الى الداله في كل مره تقوم الداله باستدعاء ذاتها

3_ مراعاه الامر return عند ايقاف الداله ومراعاه القيمه المعاده من الداله


_تستخدم هذه الدوال غالبا بدلا من جمل الدوران for او while او غيرها من دوال التكرار

_يستخدم المبرمجون هذا النوع من الدوال للحصول على نتائج كبيره في وقت قصير ولتقليل الكود في داله main وايضا لتجنب كتابة استدعائات كثيره لنفس الداله عند الحاجه الى الوصول الى النتيجه المطلوبه


مثال:
هل تستطيع عمل داله pow والتي ترجع القوى لاي رقم يمرر اليها؟

في الواقع سيقول البعض انه بامكاننا استخدام جمله for للحصول على ذلك مثل الكود التالي

long pow(int number , int power)
{
for(int i = power; i > 0; i++)
number *= number;
return number;
}
هذا الكود صحيح 100 بالمئة ولكن اذا اردت استخدام استدعاء الداله لذاتها سيكون كالاتي


#include <iostream>
using namespace std;

long pow(int number, int power) {
long result = 1;
for (int i = power; i > 0; i--)
result *= number;
return result;
}

int main() {
int base, exponent;

// قم بقراءة الأعداد من المستخدم أو اسند قيم لها
cout << "Enter base: ";
cin >> base;

cout << "Enter exponent: ";
cin >> exponent;

// استدعاء الدالة وطباعة الناتج
long result = pow(base, exponent);
cout << base << " raised to the power of " << exponent << " is: " << result << endl;

return 0;
}



هذه الدال مشابهة في النتيجة لداله pow السابقة ولدالة pow الموجوده في مكتبة math



هذه كل المعلومات التي تخص الدوال اتمنى تكونو استفدتو من الشرح وتمنياتي لكم بالتفوق والامتياز واتمنى رؤيتكم مبرمجين ناجحين ومتميزين على كافة مبرمجين العالم 🤍
إعداد الطالب : ابراهيم نشوان
#بالتوفيق_للجميع🤍
د. #موسى_غراب
#برمجة_حاسوب
👍32👎1
مشروع_أنس_الشعراني_مترجم_بالعربي1.pdf
828.9 KB
هذا المشروع حق الأستاذ #أنس_الشعراني
مترجم بالعربي .
مشاركة من #سيد الغيلي
2👍2👎1