🇾🇪علوم حاسوب مستوى ثالث | جامعة صنعاء🇵🇸 – 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
#الدوال (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
(ثابتون مع فلسطين حتى النصر وأمريكا أم الإرهاب )
تدعوكم جامعة صنعاء وملتقى الطالب الجامعي لحضور المسيرة المركزية في ساحة غزة (الممتدة من بوابة الأقصى الشريف إلى أمام مكتب التعبئة العامة)

ابتداء من الساعة 10 صباحًا
ـــــــــــــــــــــــــــــــــــــــــــــــ
#اللجنة_الإعلامية_المركزية
#جامعة_صنعاء
#ملتقى_الطالــب_الجـامعـي
💫💫💫💫💫💫
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
قال تعالى:{ فِي بُيُوتٍ أَذِنَ اللهُ أَنْ تُرْفَعَ وَيُذْكَرَ فِيهَا اسْمُهُ يُسَبِّحُ لَهُ فِيهَا بِالْغُدُوِّ وَالْآَصَالِ }.

وقال تعالى:{ لَيْسَ عَلَيْكَ هُدَاهُمْ وَلَكِنَّ اللهَ يَهْدِي مَنْ يَشَاءُ وَمَا تُنْفِقُوا مِنْ خَيْرٍ فَلِأَنْفُسِكُمْ وَمَا تُنْفِقُونَ إِلَّا ابْتِغَاءَ وَجْهِ اللهِ وَمَا تُنْفِقُوا مِنْ خَيْرٍ يُوَفَّ إِلَيْكُمْ وَأَنْتُمْ لَا تُظْلَـمُونَ }
----------------------

الموضوع : تجهيز مصلى الطلاب

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

حبينا نسوي مبادرة مننا بما انحنا طلاب كلية الحاسوب وهيه انحنا نجهز المصلى على اتم وجه ونخلية مكان جميل مرتب يدل على اهتمامنا بصلاتنا ويعكس صورة جميلة عن طلاب كلية الحاسوب


الافكار التي قد وصلتنا انحنا نعلق فيه ساعة جدارية وصور لايآت قرآنية

وحتى اذا اكفتنا الميزانية من الممكن نشتري فراش للمصلى


نتطلع إلى رؤية إبداعاتكم وتعاونكم في هذا المبادرة الجميلة


#اللجنة_الإعلامية
#ملتقى_الطالب_الجامعي
👍5
المواضيع الذي عتدخل في اختبار التكامل غدًا
للأستاذة #حنان_الصرمي
👍4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
شاهد حجم الدمار الهائل في مدينة بيت حانون شمال قطاع غزة 🤯

قاوم، قاطع، أستمر، لاتعتاد المشهد⭕️
😱4
🛑🛑

غدًا محاضرة تعويضية مع د. موسى غراب في المدرج الساعة 10 لكل مجموعات CS
4👎2👍1
🌷🤍 ليلة جمعة، أكثروا من الصلاة على النبي و آله فإن صلاتكم تبلغه، فاللهم صلِ وسلم على سيدنا محمد وعلى آله وصحبه أجمعين 🤍🌷
10
🛑 تعليق البطائق 🛑

يبلغكم الاستاذ خالد الثور امين الكلية
ان على كل طالب احضار بطاقته معه كل يوم بحيث تكون ظاهرة

#ملتقى_الطالب_الجامعي
👍2👎21