اللجنة العلمية_مستوى أول – Telegram
اللجنة العلمية_مستوى أول
3.04K subscribers
375 photos
58 videos
1.06K files
260 links
القنوات العملية المركزية:
سنة اولى/ https://news.1rj.ru/str/USذF_Computer1
سنه ثانية/ https://news.1rj.ru/str/USF_computer2
سنة ثالثة/ https://news.1rj.ru/str/USF_Computer3
سنة رابعة/ https://news.1rj.ru/str/USF_Computer4

تم ارشفة اغلب قنوات ومجموعات الدفع السابقة ، وهي مثبته
Download Telegram
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Ă฿ГĂГ sĂ₥Ϊ ⛓️🖇️😴)
الدوال الخاصة للتعامل مع النصوص
1 int length()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.
2 int size()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها تماماً مثل الدالة length().
3 string substr(int pos=0, int len = npos)
ترجع نص عبارة عن جزء من النص (Substring) الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بنسخ النص من عنده.
مكان الباراميتر len يمكنك تمرير رقم يمثل كم حرف تريد أن تنسخ من عند index الباراميتر pos إن لم ترد نسخ كل النص الموجود.
4 int find(string str)
تبحث في النص الذي قام بإستدعائها عن أول index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
5 int rfind(string str)
تبحث في النص الذي قام بإستدعائها عن آخر index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
6 string replace(int pos, int len, string replacement)
تستخدم لتعديل جزء محدد من النص الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بتغيير النص من عنده.
مكان الباراميتر len نمرر رقم يمثل كم حرف تريد أن تبدل إعتباراً من عند index الباراميتر pos.
مكان الباراميتر replacement نمرر النص الذي سيتم إضافته مكان الجزئية التي سيتم حذفها.
7 void swap(string str)
تبدل محتوى النص الذي قام بإستدعائها بمحتوى النص الذي نمرره مكان الباراميتر str.
كما أنها تبدل محتوى المتغير الذي نمرره مكان الباراميتر str بمحتوى النص الذي قام باستدعائها
8 string append (const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في آخر النص الذي قام باستدعائها و ترجع النص الناتج عند دمجهمها معاً.
9 bool empty()
ترجع true إذا كان النص الذي قام باستدعائها فارغ (أي لا يوجد فيه أي حرف).
و ترجع false إن لم يكن كذلك.
10 void clear()
تمسح كل الأحرف الموجودة في النص الذي قام باستدعائها.
11 int compare (const string str)تقارن حجم النص الذي قام باستدعائها مع حجم النص الذي نمرره لها مكان الباراميتر str.
ترجع 0 في حال كان حجمهم متساوي.
ترجع 1 في حال كان عدد أحرف النص الذي قام باستدعائها أكبر.
ترجع -1 في حال كان عدد أحرف النص الذي قام باستدعائها أصغر.
12 string insert (int pos, const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في النص الذي قام باستدعائها عند Index الخانة التي نحددها مكان الباراميتر pos و ترجع النص الناتج عند دمجهمها معاً.
معالجة الملفات
التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.

الآن, للتعامل مع الملفات يجب تضمين الحزمة <fstream> لأنها تحتوي على الكلاسات المخصصة لذلك, بالإضافة للحزمة <iostream> لأننا سنحتاج منها العامل << عند الكتابة في الملف.

إذاً يجب كتابة هذين السطرين عند التعامل مع الملفات.

#include <iostream>
#include <fstream>


مصطلحات تقنية
إسم الحزمة <fstream> مشتق من جملة File Stream و التي تعني أنها مخصصة للتعامل مع الملفات.
إسم الحزمة <iostream> مشتق من جملة Input Output Stream و التي تعني أنها تحتوي على أوامر الإدخال و الإجراج سواء على الشاشة أو في الملفات.
كلاسات الحزمة fstream
الحزمة <fstream> تحتوي على الكلاسات الأساسية التالية التي يمكن استخدامها للتعامل مع الملفات.

الكلاس مع تعريفه
1
ofstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد و الكتابة فيه.
2
ifstream
يستخدم لإنشاء كائن يتيح لنا إمكانية قراءة محتوى الملف.
3
fstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد, الكتابة فيه و القراءة منه أيضاً.
إذاً هذا الكلاس يعتبر دمج للكلاس ofstream و الكلاس ifstream.
طريقة فتح و إغلاق ملف
إذا أردت قراءة محتوى ملف أو الكتابة فيه فلا بد من أن يكون مفتوحاً من قبل برنامجك نفسه حتى تتمكن من ذلك.
الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها open() نستخدمها لنفتح الملف الذي نريد التعامل معه.


بناء الدالة open()
void open(const char *filename, ios::openmode mode)

مكان الباراميتر filename نمرر إسم و مسار الملف الذي نريد فتحه كنص عادي.
mode هو باراميتر إختياري يمكننا أن نمرر مكانه ثابت أو أكثر من الثوابت الجاهزة في الكلاس ios حتى نحدد للمترجم لماذا نريد فتح الملف.


في الجدول التالي وضعنا أسماء ثوابت الكلاس ios التي يمكنك تمريرها مكان البارميتر mode.

الثابت مع تعريفه
1
ios::app
يستخدم لإعلام المترجم بأن المحتوى الجديد الذي سيتم إضافته سيوضع في آخر الملف.
2
ios::ate
يستخدم لإعلام المترجم بأن سيتم فتح الملف بهدف الكتابة و القراءة منه مع الإشارة إلى أنه سيبدأ من آخره.
3
ios::in
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف القراءة منه.
4
ios::out
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف الكتابة فيه.
5
ios::trunc
يستخدم لإعلام المترجم بأنه في حال كان الملف موجود مسبقاً, سيتم مسح محتواه عند فتحه.


عند استدعاء الدالة open() يمكنك استخدام العامل | في حال أردت أن تمرر لها أكثر من قيمة مكان البارميتر mode كالتالي.

ofstream myfile;
myfile.open ("example.txt", ios::out | ios::app);


معلومة تقنية
الكلاس ofstream يستخدم الثابت ios::out بشكل إفتراضي.
الكلاس ifstream يستخدم الثابت ios::in بشكل إفتراضي.
الكلاس fstream لا يستخدم أي ثابت بشكل إفتراضي.


أهمية إغلاق الملف عند الإنتهاء منه
عند الإنتهاء من التعامل مع أي ملف, قم بإغلاقه على الفور لأن ذلك من شأنه تحسين أداء البرنامج حيث سيخفف من حجم المساحة المحجوزة للملف في الذاكرة بالإضافة إلى أنك تصبح قادر على التعامل مع هذا الملف بشكل مباشر من خارج برنامجك.

الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها close() نستخدمها لإغلاق الملف.
إذاً لإغلاق الإتصال مع أي ملف مفتوح, يجب أن تستدعي الدالة close() من الكائن الذي بالأساس فتحت الملف من خلاله.

التشييك على حالة الكائن الذي نتعامل من خلاله مع الملف
عند استخدام الدالة open() لفتح الملف سواء بهدف القراءة أو الكتابة فيه فإن ذلك قد لا ينجح دائماً.

فمثلاً إذا كنت تريد إنشاء ملف جديد, قد تكون لا تملك صلاحية لإنشاء ملف في الحاسوب أو لا يوجد مساحة كافية لإنشاء الملف فيها, أو أن الملف موجود أصلاً و لكنه مفتوح من قبل برنامج آخر. و في حال كنت تريد قراءة محتوى ملف موجود في الحاسوب قد تواجه أيضاً بعض المشاكل, كأن يكون مسار الملف الموضوع غير صحيح, أو أن الملف مفتوح من قبل برنامج آخر أو أنك لا تملك صلاحية للقراءة منه إلخ..

بعد إنشاء الكائن الذي ستتعامل من خلاله مع الملف, يمكنك استخدام الجمل الشرطية if و else بكل سهولة كالتالي لمعرفة ما إن كان يمكنك التعامل مع الملف أم لا.

ofstream myfile;
myfile.open ("example.txt");
if (myfile)
{
// إذا كان الإتصال بالملف لا يوجد فيه مشاكل, سيتم تنفيذ الأوامر التي نضعها هنا
}
else
{
// إذا أردت إعلام المستخدم بأنه حدث مشكلة أثناء الإتصال بالملف, فيمكنك كتابة ذلك هنا
}
هناك 4 دوال جاهزة يمكنك استخدامها للتأكد من أن الإتصال بالملف سليم و أنه لم تحدث أي مشكلة عند التعامل معه سواء عند القراءة أو الكتابة فيه.

إسم الدالة مع تعريفها
1
bool bad()
تستخدم لمعرفة ما إن حصلت أي مشكلة عند القراءة أو الكتابة في الملف.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.

من المشاكل التي نقصدها كأن تحاول الكتابة في الملف و لكنه لا يوجد مساحة كافية للتخزين, أو في حال فتحت ملف بواسطة كائن من ofstream و لكنك كنت تنوي استخدامه للقراءة و ليس للكتابة. في هذه الحالات يمكنك الإستفادة من هذه الدالة لمعرفة ما إن حدث خطأ أم لا.
2
bool fail()
مثل الدالة bad() تماماً بالإضافة إلى أنها تشيك على المشاكل التي قد تحدث عند التعامل مع محتوى الملف.
على سبيل المثال, إذا قمت بقراءة عدد مخزن في الملف و قمت بقراءته في برنامجك و من ثم التعامل معه كأنه عدد عادي بدون أن تحوله لعدد ستجد أنها تنبهك عن هذا الخطأ أيضاً.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.
3
bool eof()
إسم الدالة هو اختصار لجملة End Of File و هي تستخدم لمعرفة ما إن وصلت في القراءة أو الكتابة إلى آخر الملف أم لا.
ترجع true إذا كان المترجم وصل لنهاية الملف و ترجع false إذا يصل بعد لنهايته.
4
bool good()
تستخدم لمعرفة ما إن حصلت أي مشكلة كانت عند التعامل مع الملف و هي تشمل كل أنواع المشاكل التي قد تحدث.
ترجع true إذا لم تحدث أي مشكلة و ترجع false إذا حدثت مشكلة ما.
كل ماتم ذكره مأخوذ من هذا الموقع :
https://harmash.com/tutorials/cplusplus/files
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
مذاكرين تمام التمام ؟
Anonymous Poll
25%
👍🏻
75%
🥲
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
المذاكرين الان عادنا بدات اذاكر ومن ما فهمنا من كلام الدكتور موسى ان في اكواد طويلة وحاجات فهم /* يعني يشتي يبسر من فاهم */

شا اسوي اسئلة عميقة صح وتحتاج تتبع هانا مش في MCQ واشرحها وشا ادمج فيها القدر اللي اقدر من اللي درسنا
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
#include <iostream>
#include <cstdlib>
using namespace std ;
int x = 700 ;


int Hix()
{
int x = 60 ;

return x;
}

int IS24()
{

return x ;

}


int main()
{
int x = 300 ;
x = ( rand() % 1) + 200 ;
int X = 900 ;
cout << IS24() - x + Hix() ;
return 0 ;
}
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
حاول تجيب المخرجات انت بدون ما تسير تطرحها في البرنامج وتبسر المخرجات
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
المخرجات عتكون
Anonymous Poll
27%
خطأ
12%
- 840
21%
- 240
40%
560
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
اجيب سؤال ثاني وبعدين ارسل الشرح للاجابة حق الاثنين او اذكر معلومات مهمه لو تجي نصنا عيودفو والنص الثاني عيتخارجو بالهبش 🙂
Anonymous Poll
49%
سؤال ثاني
51%
معلومات في المخرجات
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
معلش تأخرت في السؤال الثاني


كنت بين احاول اضيف فيه قدر ما اقدر
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
🔰نماذج وملخصات IS مستوى ثالث🔰
Photo
شرح اجابة السؤال


طيب نبدأ بهذه

شوفو هانا هيه معلومة واحدة اعتقد الكل ما عرفها وهيه نقطة قد تعذبت منها انا شخصيا 🥲💔


هل هذا
y *= rand() % 1 + x ;
يساوي هذا
y = y * rand() % 1 + x ;

الإجابة لا 🥲

الفرق بينهن ان في هذه
y *= rand() % 1 + x ;
بنضرب قيمة y  في ناتج ما بعد علامة يساوي مش بينهن

يعني هذه 
y *= rand() % 1 + x ;

تساوي هذه

y = y ( rand() % 1 + x ) ;
/*اضرب ما داخل الاقواس قبل ما تضرب في. y */



واكيد كلنا عارفين ان  rand() % 1 تساوي صفر 🙂 _شتعمق في شرحها لما اروح اشرح السؤال الاول_
🔰نماذج وملخصات IS مستوى ثالث🔰
Photo
بعد ما عرفنا المعلومة نجرب نحله سوا


الخطوة واحد


x = 2 ;
y = x ;
z = y ;
يعني كلهم يساوو 2

---------------
الخطوة اثنين
x *= x + y ; 
هذه بعد المعلومة اللي حصلنا اول معناها
x = x ( x + y ) ;
واللي عتساوي
x = 2 ( 2 + 2 )
x = 2 * 4 = 8

يعني x يساوي 8
----------------
الخطوة الثالثة

y *= rand() % 1 + x ;
من المعلومة اللي ذكرنا  هذه تساوي
y = y ( rand() % 1 + x ) ;

طبعا قيمة rand() % 1 تساوي صفر لان باقي قسمة اي عدد قسمة ١ يساوي صفر
وقيمة y السابقة زي ما قلنا في البداية  2
وقيمة x بعد ما طلعناها 8

يعني
y = 2 ( 0 + 8 ) ;
y = 2 * 8 = 16

واستنتجنا ان y تساوي 16
-----------
الخطوة الرابعة

z  = z * rand() % 1 + x ;
لاتسير ترتبش وتطبق معلومتنا هانا
شوف هانا ما جابها z *= عشان تسوي قوسين
اذا جت هكذا طوالي تحلها علا ماهيه

يعني
z  = z * rand() % 1 + x ;
قيمة z الاولة اللي في البداية تساوي 2
و rand() % 1 تساوي صفر
و x طلعناها 8


يعني
z = 2 * 0 + 8  الضرب اولويته قبل الجمع
z = 0 + 8 = 8

وبهذا طلع z يساوي 8


والاجابة عتكون

x = 8 , y = 16 , z = 8
فهمتوه صح ؟
Anonymous Poll
66%
ايوة ايوة 🥺
34%
لا 🤓💔
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
هذا فكرته سهله جداً بس حبيت ارجع للفكرة تيه
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
هنا النقطة اللي حبيت اوضحها لكم ماذا لو كان الشرط منطقي فقط

شي بسيط اكيد بس الدكتور ذكرة وقال انهوه عيدخله في المحاضرة الثالثة _ مدري كيف سمعته _ 🤓

يعني بإختصار هنا قد من الممكن ما يكون الشرط مقارنة بين متغيرين

ممكن يكون شرط منطقي بحت

يعني ممكن يكون الشرط
اذا كانت ٦ اكبر من ٥

علا طول الشرط يتحقق لانه صحيح منطقيا

واذا كان خاطئ منطقيا ما يتحقق
مثال
اذا كانت ٦ اصغر من ٥
🔰نماذج وملخصات IS مستوى ثالث🔰
هذا فكرته سهله جداً بس حبيت ارجع للفكرة تيه
نحله سوا

الخطوة واحد

cout <<"we all know that ";

اكيد هذه بتنطبع

--------------

خطوة 2

if (5 < 6 || 6 > 5 )
cout <<"IS is the best" ;


لاحظ معي ايش الشرط
ركزو انحنا سوينا or 
اذا كانت ٥ اصغر من ٦
هل هذا صحيح منطقيا
اكيد صحيح
طيب والثانيه
اذا كانت ٦ اكبر من ٥ 
برضو صحيح


تحقق الشرط

خلاص قدنتو داريين بالباقي
🔰نماذج وملخصات IS مستوى ثالث🔰
#include <iostream> #include <cstdlib> using namespace std ; int x = 700 ; int Hix() { int x = 60 ; return x; } int IS24() { return x ; } int main() { int x = 300 ; x = ( rand() % 1) + 200 ; int X = 900 ; cout << IS24() …
شرح سريع ما سويت لكم هانا

int x = 700 ;

بداية استعملت global var  متغير له حق الوصول لاي داله

كيف  global var 
لانني عرفته خارج الدوال فيعتبر معرف لجميع الدوال الواقعة تحته

--------------------------

int Hix()
{
int x = 60 ;

return x;
}


بعضكم عيسأل
ليش عاد عرفت لنا هانا ال x وانت قد قلت انهوه تعرف طالع للكل ؟
وبعضكم برضو عيسأل
طيب اي قيمة الان عنعتمد ؟

الجواب 💡
ما يضرش لو عرفناه مره ثانيه  ، وبالنسبة لاي قيمة عنعتمد  عنعتمد القيمة الاقرب

يعني في هذه الدالة اللي معانا
int Hix()
عنعتمد
x = 60
وركزو معي انني سويت ارجاع لقيمة الاكس
return x ;
بيتم ارجاع قيمة الاكس في هذه الداله يعني بيرجع لنا
60

---------------------------

int IS24()
{
   
return x ;

}

هانا سويت لكم فكرة ثانيه 

وممكن تسألو
دالة فاضيه ومع هذا رجعت قيمة ، يسبر ؟

ايوة يسبر لان به معانا متغير معرف للكل وركز انا ارجعت قيمة من ، قيمة الاكس اللي هوه global var واللي يعتبر معرف في دالتنا الفاضية

يعني دالتنا هذه عترجع قيمة المتغير اللي هيه
700


--------------------------

int main()
{
int x = 300 ;
    x = ( rand() % 1) + 200 ;
    int X = 900 ;
cout << IS24() - x + Hix() ;
return 0 ;
}


وصلنا لدالتنا الرئيسية اللي بدونها ما يعتبر حقنا الملف ملف cpp
اللي بدونها يعتبر مكتبه


int x = 300 ;
عرفنا x من جديد وادينا له قيمة جديدة


x = ( rand() % 1) + 200 ;
    ادينا قمية جديدة للx مره ثانية

اللي هيه
x =  ( 0 ) + 200
x = 200
قد شرحت في الاسئلة الاولة ليش rand() % 1 تساوي صفر


int X = 900 ;
هانا سويتها علاميد المركزين ابسر منهم 
لغة c++ لغة حساسة ولو ركزتو على الاكس هذا عتلاحضوا انهوه كبتل ( كبير ) يعني الان  يعتبر معانا متغيرين الاول x والثاني X
وما عنستعمله طرحته بس علاميد اربش اللي مش مركز



cout << IS24() - x + Hix() ;
هنا الان عتلاحضوا معانا عملية حسابية وبه معانا فيها دوال

🔵نقدر ندخل الدوال في العمليات الرياضية 🔵

بس ايش قيمة الدوال هذه اللي طرحناها في العملية الرياضية ؟

قميتهن هيه القيمة اللي ارجعناها منهن

قيمة
HiX()
هيه ال 60  اللي طلعناها اول وتكلمنا عليها

وقيمة
IS24()
هيه القيمة اللي ارجعناها فيها
قمية المتغير العام اللي معانا  وتكلمنا طالع كيف سوينا
700

والاكس اللي معانا في هذه العملية الرياضية عنسند لها اقرب قيمة ارفقت لها معانا

يعني اقرب  قيمة اعطيناها له

اقرب قيمة اسندناها له هيه
x = 200


⚠️ ركز x مش X ⚠️


----------

يله وبعد كل هذا المشوار نحسب اخيرا كم عتكون معانا المخرجات



IS24() - x + Hix()


700 - 200 + 60 = 560


وفي الاخير طلع معانا
560
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
تذكرت الان شي مهم