Professional Documents
Culture Documents
-3انشاء ملف الـ Translation Uniteسوف يكون بداخله محتوي الـ Libraryمع
التنامج الخاص بك سوف ر
يأت الـ Compileويقوم ربتجمته للغة اآللة حيث أن هذه ر
ر
التجمة تتم ف Object fileيكون امتداده .obj
الـ object fileهو الذي يستطيع الكمبيوتر فهمه وهو ليس برنامج يمكن تشغيله هو
ملف ينتظر الـ Linkerمنك حيث يقوم ب ـ linkكل الـ objectsليخرج الـ exe fileالنهات
التنامج من خالله.
الذي نقوم بتشغيل ر
:Declare a variable -3انشاء متغت أو التضيـ ــح عن وجود متغت جديد أو اإلعالن عن
وجود متغت جديد.
-4نوع المتغت :intأي Integerوهو رقم عدد صحيح فقط.
-5يمكن عمل updateلـ valueالمتغت هكذا
-6يمكن أال نقوم بكتابة الـ namespaceكل مرة وهو الـ std::هكذا
- Best Practices
--- Related Names
--- Writing Style
:Writing Styles .7
ه ر:Global Variable -1
functions الن يمكن استدعاءها من قبل جميع الـ
ال يمكن اإلعالن عن متغت ثابت دون قيمة ألنه ال يمكن التعديل عىل هذه القيمة مرة-2
const int x .اخري
preprocessor directive يوجد طريقة أخري ألنشاء متغت ثابت منها بواسطة-3
برمجيا وليس كأنها مكتوبة للطباعةdouble quotes تعامل مع الـcompiler ألن الـ
خارجهم لذا يحدث4 والـclosing quote وبعدهاstart quote قبلهاLine بحيث أن
back ويمكن حل هذه المشكلة هكذا بوضع4 بعد الـsemi colon ; ويحتاج إلerror
.closing quote والـstart quote قبل كل من الـslash
ً
تقوم بإرجاع الـCarriage Ruturn ثم الـFady تقوم أوال بطباعةFady\rAlamir مثل
\r ويطبع ما بعد الـFady عىلoverride ثم يقوم بعملF عند حرف الـmouse cursor
مكانها
#016 - Data Types - What Is Data?
Data Types
- What Is Data?
- Data Examples In Real Life
--- Integer => 5000, 10, -100
--- Srting => "Elzero Web School", "Osama Elzero",
"100A"
--- Boolean => true, false OR yes, no OR 1, 0 OR on,
off
--- Float => 18.5, 1900.50
--- Array => ["Osama", "Ahmed", "Sayed", "Mahmoud"]
- Why We Choose Data?
--- Size
--- Operation
What Is Operand?
- The Part Of an Instruction Representing The Data
Manipulated by The Operator
:Boolean .3ر
تعت عن أي إجابة بها Yes, Noأو أي switchبه On, Offأو 0 ، 1
أو True, False
Float (floating point number) OR Double .4
األرقام ر
الن بها كسور
:Array .5وضع مجموعة من األسماء او االرقام ف قائمة
-3لماذا نقوم بتحديد أنواع البيانات:
.1ألن كل نوع من أنواع البيانات له حجم ف ذاكرة الكمبيوتر
:Operation .2كل نوع من أنواع البيانات نختاره عىل أساس العمليات المناسبة
له ،ال ينفع أن تقوم بقسمة رقم عىل string
ولكن عندما ال تقوم بإعطاء قيمة لها سوف يحدث errorألنه لن يكون قادر عن تحديد
نوع المتغت
ر
وحن إن قمت بتعديل القيمة لن يفهمها الـ .compiler
ً
.3ال يمكن طباعة حروف او charactersاو أي نوع اخر مع intبدال من االعداد
الصحيحة.
.4محدد ف اللغة ر
أكت عدد موجب يمكن وضعه ف المتغت intوأصغر عدد سالب
.7عند وضع عدد صحيح لمتغت نوعه intيقوم بتجاهل fractional number
-3لنقوم بجعل الـ compilerيتعامل مع األرقام عىل أنها floatنقوم بوضع fبعد الرقم
ً
ونقوم بجعل ال ـ compilerعىل التعامل مع هذه األرقام عىل أنها floatبدال من الـ
doubleألنه لو تعامل معها عىل أنها doubleستكون أبطأ من لو تعامل معها عىل انها
float
والن ممكن ان تكتب longفقط ،ف نظام الـ windowsوالـ vs compiler :long int -2ر
تقوم بحجز 4 Bytesف الرام مثل الـ intاألساش ولكن ف بعض األجهزة والـ compilers
األخرى يقوم بحجز .8 Bytes
Facebook: fadyalamir77 | LinkedIn: fady-alamir77 | GitHub: fadyalamir
يمكنك من استخدام رقم بهذا الحجم:long long -3
modifier لذا يمكننا التحكم ف الـ
يمكننا التحكم به إما أن يكون رقم صغت أو يكون رقمinteger مثل الـ:modifier -4
.كبت
عن طريقه ر:Signed [int, char] -5
بأن نخزن أرقام موجبة وسالبةcompiler نخت الـ
integer, character لل ـDefault وصفر وهذا الوضع الطبيع الـ
characters نعت به عن الـ
أي لها أرقام "النظام الذي رASCII Value ألن لهاchar والـ
"بأرقام
ُ
يخزن بها أرقام موجبة فقط:Unsigned [int, char] -6
- Implicit Conversion
--- Conversion Is Done Automatically By The Compiler
- Data Loss
--- When Larger Type Is Converted To Smaller Type
ملحوظة :عندما نقوم بجمع رقمي صحيح وكش سوف يقوم الـ compilerبفرض ال ـ
doubleعىل العملية لذا سوف نقوم باستخدام ال ـ Explicit Conversion
والطريقة الثانية للـ Type Castingهنا ف المثال السابق تسم function like
- Arithmetic Operators
"For Mathematical Operators"
What Is Operand?
- The Part Of an Instruction Representing The Data
Manipulated by The Operator
:Subtraction .2
:Division .4
ملحوظة :يجب وضع .fرلتمز عن الـ floatلك ينتج القيمة بالكش الن ناتج قسمة
int/intينتج intأي عدد صحيح.
وأيضا لو فيه رقم واحد فيهم floatيكون الناتج بالكش أي float
ر
:Modulus/Modulo .5هو باف القسمة أي الرقم الذي نأخذه من الرقم الىل
حن يكون عدد صحيح ُيقسم عىل الرقم اآلخر.
معانا ر
- Assignment Operators
"For Assigning Operators"
--- = Assign
--- += Addition
--- -= Subtraction
--- *= Multiplication
--- /= Division
--- %= Modulo => Remainder After Division
هذا يسم Pre Incrementبحيث يزود الـ 1وبعدها يقوم بطباعة الـ 1
Facebook: fadyalamir77 | LinkedIn: fady-alamir77 | GitHub: fadyalamir
execute شء يحدث بعد عملية الـ:Post -2
عليها1 وبعدها يقوم بزيادة0 بحيث يطبع الـPost Increment هذا يسم
1 وبعدها يقوم بطرح0 يقوم بطباعة الـ:Post Decrement -3
-1 وبعدها يقوم بطباعة الـ1 يقوم بطرح:Pre Decrement -4
--- == Equal
--- != Not Equal
--- > Greater Than
--- < Less Than
--- >= Greater Than Or Equal
--- <= Less Than Or Equal
:)!=(Not Equal -2لمقارنة القيمتي وسؤال الـ compilerهل هذه القيمة ال تساوي
القيمة األخرى.
:)<=(Less Than Or Equal -6للسؤال هل قيمة أصغر من أو يساوي قيمة أخري وعند
تحقق شط من الشطي ينتج True
Reference
--- Operators Precedence Table
Training
- Try Operators Yourself Before Browsing References
ملحوظة :إذا أردت ان تتم العملية من الشمال لليمي بدون ترتيب األوليات للـ
Operatorsيجب أن تقوم بعزل عملية الجمع أو الطرح بوضعها ف أقواس
" "parenthesesهكذا
ُ
if يتحقق وينفذ عندما لم يتحقق الشط األول:else if -2
ً ُ
if, else if يتحقق وينفذ عندما لما يتحقق كال من الشطي:else -3
ومن الممكن ان نقوم بعمل assignللقيمة الناتجة من هذا الشط لمتغت معي
Syntax
(Condition Is True) ? True : False;
هكذا فالone line عبارة عنConditions ف الـBlock of Code عندما يكون الـ-2
Curly Brackets تحتاج إل كتابة الـ
Arrays
- What is Array?
--- Collection Of Elements Of The Same
Type
--- Placed in Contiguous Memory
Locations
--- Referenced By Index Started From 0
- Why We Need Array?
- Creating Array Syntax
- Check Array Size
- Create Array Without Size
:Array المصفوفة-
مجموعة من البيانات من نفس النوعCollection عبارة عن-1
ملحوظة :2ومن الممكن أيضا كتابة Syntaxال ـ Arrayبدون عالمة = بدون أي error
Arrays
- Access Array Elements
- Check Element Location
Array يكون عن طريق أسم الـArray عىل عنض من عنارص ال ـaccess لنقوم بعمل-1
للعنضindex وال ـ
Arrays
- Declare Empty Array
- Add Elements To Array
- Update Array Elements
- Get Length Of Array With Sizeof
:مالحظات
رindexes ال يلزم تعديل قيم ال ـ-1
بالتتيب
رقمTerminal فارغ ينتج ف ال ـIndex عندما ال نقوم بإعطاء قيمة ويكون ال ـ-2
Random
الرقمTerminal للمرة الثانية عند استخراجه ينتج ف ال ـIndex عند تحديث ال ـ-3
الجديد بعد التحديث
Arrays
- Two Dimensional Arrays AKA [2D
Array]
Search For
- Matrix Operations
- 3D Array
ASCII value ينتج ال ـchar مثل ال ـ.fill عند وضع نوع أخر من البيانات ف:ملحوظة
.back() -2
Array تقوم باستدعاء أخر عنض ف ال ـ
.size() -4
الموجودة بالمصفوفةelements تعط عدد ال ـ
.empty() -5
Boolean للكشف عن المصفوفة إذا كانت فارغة أم ال وتعط القيمة
array of characters -2بطريقة ال ـ arrayالطبيعية وال يوجد بها اختالف بينها وبي
الطريقة األول.
String
- Concatenating Strings
--- Normal Way
--- strcat => Include string.h
--- With +
--- append
Loop
- Loop With For
- Loop On Array
-ال ـ Loopأو التكرار :عن طريق نستطيع أن نقوم بتكرار Block of codeأي عدد من
المرات عىل حسب الفكرة
Syntax -ال ـ :Loop With For
أول مرحلة ف ال ـ loopال ـ i = 0ثم هل ال ـ i < 6إذن يقوم بطبعها وبعدها يقوم بزيادة
حن يصل إل ال ـ 5ويقوم بطباعتها ويقوم بزيادة 1قيمتها 1ثم يقوم بطباعة 1وهكذا ر
ومن ثم الـ 6ليست أصغر من ال ـ 6إذن ال يقوم بطباعتها وتقف هنا ال ـ loop
2- Update
3- Condition
loop لل ـterminate لعملbreak; نقوم باستخدام
لكن لها استخدامات مختلفةloop تشبه ال ـwhile يدل عىل أن ال ـ: مثال-
do
{
ولكن إذا قمنا بعمل ال ـ skipبعد ال ـ coutلن يحدث شء ألن الفعل سوف يكون حدث
وقام بطباعتها بالفعل قبل ان يقوم بعمل ال ـ skipلها.
ملحوظة :عند وجود رقمي 20ف ال ـ Arrayسوف يقوم بعمل له skipأيضا ألنه عبارة
عن iterationبي ال ـ iterationsالباقيي الموجودين ف ال ـ Array
وإذا كان ال ـ breakبعد ال ـ coutوليس قبلها سوف يقوم بطباعة ال ـ elementثم يقوم
بوقف ال ـ iterationمن بعده
Loop
- Compare
--- For => Specific Number Of Loops
--- While => Loop As Long Condition Is
True
--- Do While => Always Execute Once
Function
- DRY - Don't Repeat Yourself
- User Defined and Built-In
- Syntax
- Example
- Why We Use Functions
- Declare A Function And Call It
Facebook: fadyalamir77 | LinkedIn: fady-alamir77 | GitHub: fadyalamir
:Function -ه Block of Codeأي مجموعة من األسطر ا رلتمجية ننفذ بها مهمة
معينة ( )Taskأو ر
أكت من مهمة
-1ه تطبيق لمبدأ DRY – Don't Repeat Yourself
-2يوجد نوعي من ال ـ Functionهما
:Built-In Function .1وتسم Standard Functionايضا وه
موجودة ف اللغة جاهزة ونقوم باستخدامها مباشة.
:User Defined Function .2ه ال ـ Functionر
الن نقوم بإنشائها
ونقوم بتسميتها االسم الذي نريده ونقوم من خاللها بإرجاع نوع
البيانات الذي نريده ونجعلها تقوم بتنفيذ المهمة الذي نريد تنفيذها.
Syntax -3
)returnDataType functionname(Param1, Param2, Param3
{
// Function Body Contain Block Of Code
}
ملحوظة :ال ـ Parameterهو معامل التجربة
Declare A Function And Call It -4
نفس عدد ال ـfunction عند استدعاء ال ـarguments يجب ان يكون عدد ال ـ:3ملحوظة
function المكتوبي ف ال ـparameters
2 parameter واحد ولكن الذي عىل اليمي بواسطةparameter الذي عىل اليسار
:2مثال
حيث هنا نقوم بعمل متغت intونريد أن نضع بداخله قيمة وهذه القيمة لم تقوم
ر
باالستجاع return
:Return Function -2مثل اآللة الحاسبة نقوم بكتابة رقم ونجمع عليه رقم أخر ثم
نضغط = يقوم بإعادة قيمة لنا ومن الممكن أن نقوم بأخذ هذه القيمة وعمل له عملية
أخري حيث يوجد قيمة حقيقة نتعامل معها.
مثال :عىل اليسار عند استدعاء ال ـ functionينتج ال ـ coutف ال ـ terminalدون تأثت
وعىل اليمي ال ـ functionتطبع قيمة ولكنها تقوم بإرجاع قيمة تقوم باستخدامها كما
تشاء
:Nothing After Return -3أي عملية او طباعة بعد ال ـ returnلن تنفذ حيث أن ال ـ
compilerعندما يصل إل ال ـ returnيقوم بالعودة ألعىل لتجع شء من ال ـ function
وال يكمل بعد ال ـ return
:Void With Return -4ال يمكن ان نقوم بإرجاع قيمة integerداخل void
functionحيث ان القيمة عدد وال ـ functionفارغة.
- Math Functions
--- pow
--- fmod
--- ceil
--- floor
--- round
--- trunc
ر
modulus function وه باف القسمة أي:fmod -2
كت أو األقل حيث يختلف عن :round -5يقوم بالتقريب حسب الرقم قريب من الرقم األ ر
لألكت أو األقل
ر ال ـ ceil, floorمهما كانت الكسور سوف يقوموا بالتقريب
Function
- Built-In Functions
--- cctype Functions
------ tolower()
------ toupper()
------ isupper()
------ islower()
------ isspace()
- Create 2 Applications
--- Swap Case App
--- Remove Spaces App
tab إلزالة جميع المسافات بما بينهم مسافة السطر الجديد وال ـ:isspace() -5
Function
- Built-In Functions
--- Algorithm Header
------ min
------ max
------ count
- Create 3 Applications
--- Find Minimum Number
--- Find Maximum Number
--- Count Number Occurance
ملحوظة :1عندما ال نعرف حجم البيانات الذي سوف نقوم بإضافتها نستخدم ال ـ
Vector
مثل :مجموعة من المهارات يقوم باضافتها المستخدم وال نعرف عددها لذا نستخدم ال ـ
vectorلوجود سهولة ف إضافة البيانات او حذفها
ملحوظة :2عندما نحتاج إل الشعة واألداء نقوم باستخدام ال ـ Array
ملحوظة :3نستطيع ان ننش Dynamic Arrayلكن ال ـ Vectorأفضل
ملحوظة :عندما نريد طباعة ما يشت إليه ال ـ Iteratorنضع قبله عالمة ال ـ ]*[ asterisk
هذه النجمة تقوم بعمل شء يسم Dereferenceللوصول إل القيمة أو الكائن
الموجود ف موقع الذاكرة المخزن ف مؤش.
begin() -1
last() -2
حن يشت إل العنض الذي يسبقه ف ال ـ vector ملحوظة :2يجب وضع pranethesesر
وال يقوم بطرح واحد من الرقم األخت بعد ان يشت إليه كما ف المثال السابق
:advance -3بمعن يتقدم وهو ان تقوم بالتقديم من عنض لعنض أخر داخل ال ـ
vectorلألمام أو للخلف.
ً
algorithm الخاص بال ـHeader File يجب أوال ان نقوم باستدعاء ال ـ:ملحوظة
لنستخدمهم
ملحوظة :2من المفضل أن نقوم بوضع عالمة [%] andهنا ألنها تقوم بعمل access
عىل القيمة مباشة لذا فإنها أشع
األكت
ر :sort -2ه functionتقوم ربتتيب عنارص ال ـ vectorمن القيمة األصغر للقيمة
ُ
Memory Address يخزن قيمة ال ـVariable معناها مؤش وهو عبارة عن:Pointers -
. أخرObject أوVariable الخاص ب ـ
Reference الن تسم ]&[ قبل اسم المتغت رand نقوم بوضع عالمة ال ـ:ملحوظة
Address Of أوOperator
Memory يساويpointer بأن هذا ال ـcompiler نقوم بأخبار ال ـ:مثل هذا المثال
Address of "num"
وسوف نقوم بحل هذه المشكلة عن طريق ال ـ Castلل ـ pointerلنوع البيانات المناسب
ويوجد نوعي من ال ـ :Casting
C-Style -1
Modern -2