ToolBox Arabia

ToolBox Arabia

أدوات تقنية عربية — مجانية وسريعة

منصة أدوات عربية احترافية

ToolBox Arabia هي منصة مجانية موجهة للمبرمجين والمستخدمين العرب، تجمع أكثر الأدوات التقنية استخداماً في مكان واحد — بواجهة عربية سلسة وبدون أي تعقيد.

كل أداة تعمل مباشرة من المتصفح بدون تسجيل وبدون تعقيد. خصوصيتك وسرعتك هي الأولوية.

اضغط ☆ للمفضلة — ابحث بـ / أو Ctrl+K

🤖
الذكاء الاصطناعي
6 أدوات
🤖

بوت الذكاء الاصطناعي

تحدث مع ربى — مساعدتك الذكية في أي شيء

🎨

توليد الصور

أنشئ صور احترافية من وصف نصي

🎬

مولّد فيديو AI

فيديو ترويجي بالذكاء الاصطناعي مع صوت عربي

🐛

مصحح الكود

debug تلقائي بالذكاء الاصطناعي

📖

مولّد README

توليد README.md لمشاريع GitHub بالعربي

🔁

مترجم الكود

تحويل الكود بين اللغات مثل Python ← JS

📚
تعليم البرمجة
كورسات + كويزات + حصص خاصة
📚

كورسات البرمجة

كورسات عربية شاملة لتعلم لغات البرمجة من الصفر

🧪

الكويزات

اختبارات تفاعلية لمراجعة الكورسات وقياس مستواك

Quiz Maker

إنشاء اختبارات تفاعلية من أسئلتك

🃏

Flashcards

بطاقات تعليمية للمراجعة السريعة

💻
أدوات المبرمجين
13 أداة
💻

JSON Formatter

تنسيق وضغط ملفات JSON مع كشف الأخطاء

🔐

Base64

تشفير وفك تشفير النصوص بصيغة Base64

🔗

URL Encode

ترميز وفك ترميز الروابط والنصوص الخاصة

🔒

Hash Generator

توليد MD5 وSHA256 وSHA512 لأي نص

CSS/JS Minifier

ضغط ملفات CSS وJavaScript لتسريع الموقع

🗄️

SQL Formatter

تنسيق وضغط استعلامات SQL

🔑

JWT Decoder

فك تشفير وقراءة محتوى JWT Tokens

Cron Generator

بناء جدولة Cron بواجهة بصرية سهلة

🎲

UUID Generator

توليد UUID v4/v1 وNanoID وHex عشوائي

🔍

Regex Tester

اختبار التعابير النظامية مع تمييز النتائج

🔑

Password Generator

توليد كلمات مرور قوية بخيارات مرنة

📋

JSON Schema Validator

تحقق من صحة JSON مقابل Schema

🔍

JSON Path

استخراج البيانات من JSON بـ JSONPath

🔄
التحويل والتحليل
11 أداة
🔄

JSON ↔ XML ↔ YAML

تحويل بين أشهر صيغ البيانات

📊

CSV ↔ JSON

تحويل بين CSV وJSON بسهولة

📐

محول الوحدات

تحويل الطول والوزن والحرارة والمساحة

🔢

محول الأرقام

تحويل الأرقام بين العربية والإنجليزية والرومانية

📱

QR Code Generator

توليد QR code من أي رابط أو نص

💬

رابط واتساب

مولّد رابط wa.me مع رسالة جاهزة

📅

هجري ↔ ميلادي

تحويل التاريخ الهجري والميلادي

🧾

حاسبة ضريبة

ضريبة مبيعات وقيمة قبل/بعد الضريبة

📘

JSON → TypeScript

توليد واجهة TypeScript من JSON

🔄

HTML ↔ Markdown

تحويل بين HTML وMarkdown

🔄

YAML ↔ TOML

تحويل بين YAML وTOML

📝
النصوص والكتابة
8 أدوات
📝

Markdown Editor

كتابة وعرض Markdown مع معاينة مباشرة

📊

عداد الكلمات

عد الكلمات والحروف واحسب وقت القراءة

↔️

مقارنة النصوص

قارن نصين واعرف الفروقات بوضوح

📄

Lorem Ipsum عربي

نص تجريبي عربي للمصممين والمطورين

📋

Markdown Table

بناء جداول Markdown بواجهة بصرية

🧪

بيانات وهمية

أسماء وإيميلات وأرقام هواتف وهمية للتطوير

🌐

محرر HTML بصري

إنشاء HTML مع معاينة مباشرة

⚖️

مقارنة كود

مقارنة نصين برمجيين وإظهار الفروقات

🖼️
الصور والوسائط
10 أدوات
🖼️

PNG / JPG Tools

تحويل الصور بين الصيغ المختلفة وتنزيلها

📄

Image → PDF

تحويل الصور إلى ملف PDF جاهز للتنزيل

🎞️

GIF Tool

إنشاء GIF من صور أو نص متحرك وتحويل فيديو

🗜️

ضغط الصور

قلل حجم الصورة بدون خسارة واضحة في الجودة

🎬

ضغط الفيديو

قلل حجم الفيديو مع الحفاظ على جودة مقبولة

🎨

Color Picker

اختر ألوانك وحوّلها بين HEX وRGB وHSL

✂️

إزالة الخلفية

احذف خلفية أي صورة تلقائياً بضغطة واحدة

💧

علامة مائية

إضافة علامة مائية نصية على الصور

📐

تغيير حجم الصورة

تغيير أبعاد الصورة بالبكسل

✂️

قص الصورة

قص الصورة بأبعاد مخصصة

🎨
CSS والتصميم
11 أداة
🌈

CSS Gradient Generator

بناء تدرجات لونية بصرياً مع كود جاهز

🌑

Box Shadow Generator

تصميم ظلال CSS بصرياً

Border Radius Generator

تخصيص زوايا العناصر بصرياً

📐

CSS Grid / Flexbox

بناء تخطيطات CSS بصرياً

🪟

Glassmorphism Generator

تأثير الزجاج الشائع مع كود CSS

🔘

Neumorphism Generator

تأثير البروز الناعم مع كود CSS

CSS Animation Generator

بناء animations بدون كتابة كود

🎨

Color Palette Generator

توليد لوحات ألوان متناسقة من لون واحد

👁️

Contrast Checker

فحص تباين الألوان لإمكانية الوصول

📦

Flexbox Playground

تجربة Flexbox بصرياً مع كود جاهز

📱

Media Query Generator

توليد Media Queries للتصميم المتجاوب

🔤
الخطوط والنصوص المتقدمة
6 أدوات
🖋️

Font Pairing Tool

اقتراح مجموعات خطوط Google متناسقة

ع

Arabic Text Shaper

معالجة النصوص العربية واتجاهها

Aa

محوّل حالة النص

UPPER / lower / Title / camelCase

ـ

مزيل التشكيل العربي

حذف الحركات من النص العربي

📏

عداد السوشيال ميديا

عداد حروف مع حدود تويتر وإنستغرام

#️⃣

مولّد هاشتاقات

اقتراح هاشتاقات عربية وإنجليزية

🌐
الشبكات والويب
10 أدوات
🌍

IP Lookup

معرفة معلومات أي IP جغرافياً ومزود الخدمة

🔎

DNS Lookup

فحص سجلات DNS لأي دومين

📨

HTTP Headers Checker

فحص headers أي موقع ويب

📡

Ping Tool

اختبار سرعة الاستجابة

🔐

SSL Checker

فحص شهادة SSL لأي موقع

🔍

Meta Tags Checker

فحص SEO meta tags لأي صفحة

🤖

Robots.txt Generator

توليد ملف robots.txt لمواقع الويب

🗺️

Sitemap Generator

توليد XML sitemap بسيط

📢

Open Graph Generator

توليد meta tags Open Graph

🔖

Favicon Generator

إنشاء Favicon من صورة

🧮
الحاسبات والمالية
8 أدوات
🎂

حاسبة العمر

احسب عمرك بالسنوات والشهور والأيام

⏱️

مؤقت Pomodoro

تقنية بومودورو للتركيز أثناء العمل

☪️

حاسبة الزكاة

حساب الزكاة بناءً على النصاب والحول

💳

حاسبة القرض

حاسبة القرض والفائدة مع جدول سداد كامل

⚖️

حاسبة BMI

مؤشر كتلة الجسم مع التفسير

📚

حاسبة GPA

معدل التعلم للجامعات العربية بأنظمة مختلفة

٪

حاسبة النسبة المئوية

حساب النسب والقيم المئوية

حاسبة الوقت

حساب الفروقات الزمنية وإضافة الوقت

📄
الوثائق والملفات
4 أدوات
📝

Markdown → PDF

تحويل Markdown مباشرة إلى PDF

📎

PDF Merger

دمج عدة ملفات PDF في ملف واحد

🖼️

PDF to Images

تحويل صفحات PDF إلى صور

📊

Excel → JSON

تحويل ملفات Excel إلى JSON

🔒
الأمان
2 أدوات
🔒

فاحص قوة كلمة المرور

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

🔑

Password Generator

توليد كلمات مرور قوية بخيارات مرنة

🎉 عرض الافتتاح — خصم 50% على جميع الباقات! ⏳ لفترة محدودة
📖
حصة / أسبوع
حصة واحدة أسبوعياً
$50
$25
دولار / الأسبوع
وفّر 50% 🔥
احجز الآن
🏆
٣ حصص / أسبوع
ثلاث حصص أسبوعياً
$120
$60
دولار / الأسبوع
وفّر 50% 🔥
احجز الآن

👥 أكثر من شخص؟ خصومات إضافية!

شخصان10%خصم إضافي
٣-٤ أشخاص20%خصم إضافي
٥+ أشخاص30%خصم إضافي
💬 استفسر عن خصم المجموعة
🎯

أدوات للجميع

نهدف إلى توفير أدوات تقنية احترافية لكل مستخدم عربي بغض النظر عن مستواه التقني، بواجهة بسيطة وسهلة الاستخدام.

🔒

الخصوصية أولاً

جميع الأدوات تعمل محلياً داخل المتصفح — لا يُرسل أي بيانات لأي سيرفر خارجي.

🌍

محتوى عربي حقيقي

نؤمن بأن المحتوى التقني العربي يستحق منصات متخصصة وراقية، ونسعى لأن نكون المرجع الأول.

سهولة الوصول

بدون تسجيل، بدون تعقيد — فقط افتح الموقع واستخدم الأداة فوراً من أي جهاز.

فكرة أداة، سؤال، أو حصة برمجة؟ اختر الطريقة المناسبة — نرد بأسرع وقت ممكن.

🔒 معظم الأدوات تعالج بياناتك على جهازك — لا نحفظ كلمات المرور أو النصوص الحساسة على خوادمنا.


📝 Markdown Editor

اكتب Markdown على اليسار وشوف النتيجة على اليمين

✏️ المحرر
👁️ المعاينة

🔍 Regex Tester


🔒 Hash Generator

MD5
SHA-256
SHA-512

⚡ CSS / JS Minifier


📱 QR Code Generator


📅 محوّل التاريخ الهجري ↔ ميلادي

تقريبي للاستخدام اليومي — للتواريخ الرسمية راجع التقويم المعتمد.


🧾 حاسبة ضريبة القيمة المضافة


📘 JSON → TypeScript


🔢 محول الأرقام

🔢 أرقام إنجليزية (Latin)
٠١٢ أرقام عربية (Eastern Arabic)
🏛️ أرقام رومانية (Roman Numerals)

📊 عداد الكلمات

0
كلمة
0
حرف
0
سطر
0
دقيقة قراءة

↔️ مقارنة النصوص

النص الأول
النص الثاني

🎨 Color Picker

HEX
RGB
HSL
🎨 ألوان سريعة:

🎬 ضغط الفيديو

قلّل حجم الفيديو — المعالجة محلياً على جهازك بدون رفع للسيرفر

⚠️ الحد الأقصى 500 م.ب — يعمل محلياً بدون تحميل إضافي (يفضّل Chrome أو Edge)


🗜️ ضغط الصور

قلل حجم الصورة مع الحفاظ على الجودة


🗄️ SQL Formatter

تنسيق وتجميل استعلامات SQL بشكل احترافي


🔑 JWT Decoder

فك تشفير وقراءة محتوى JWT Tokens


⏰ Cron Expression Generator

بناء جدولة cron بواجهة بصرية سهلة

الدقائق (0-59)
الساعات (0-23)
يوم الشهر (1-31)
الشهر (1-12)
يوم الأسبوع (0-6)
قوالب جاهزة:
* * * * *
تنفيذ كل دقيقة

🎲 UUID / Random String Generator

توليد UUID وسلاسل عشوائية للتطوير


🔄 JSON ↔ XML ↔ YAML

تحويل بين أشهر صيغ البيانات


📊 CSV ↔ JSON

تحويل بين CSV وJSON بسهولة


📐 محول الوحدات

تحويل الطول، الوزن، الحرارة، المساحة


📄 مولّد Lorem Ipsum عربي

نص تجريبي عربي للمصممين والمطورين


🔒 فاحص قوة كلمة المرور

اعرف مدى أمان كلمة مرورك مع نصائح التحسين

👁️

🧪 مولّد بيانات وهمية

توليد أسماء وإيميلات وأرقام هواتف وهمية للتطوير


🎂 حاسبة العمر والتواريخ

احسب عمرك بدقة أو الفرق بين تاريخين


⏱️ مؤقت Pomodoro

تقنية بومودورو للتركيز أثناء العمل والدراسة

25:00
وقت التركيز 🎯
الجلسة 1

📋 Markdown Table Generator

بناء جداول Markdown بواجهة سهلة


⚡ Start Hub

اختار الأداة اللي بدك تشتغل عليها مباشرة

💻

JSON Formatter

🔐

Base64 Tool

🔗

URL Encode

🔑

Password Generator

📄

Image → PDF

🖼️

PNG / JPG Tools

🎞️

GIF Tool

🤖

بوت الذكاء الاصطناعي

🎨

توليد الصور

✂️

إزالة الخلفية

📚

كورسات البرمجة


JSON Formatter


Base64


URL Encode / Decode


Password Generator


Image → PDF


PNG / JPG Tools


🎞️ GIF Tool

إنشاء وتعديل ملفات GIF مباشرة من المتصفح

🖼️ صور متعددة ← GIF متحرك

الصور ستظهر هنا
8
5
400

🎬 فيديو ← GIF متحرك

يعمل مباشرة من المتصفح بدون رفع — يلتقط إطارات من الفيديو

0s
3s
8
320
8

✂️ تعديل GIF موجود (تغيير حجم / سرعة)

سيظهر الـ GIF هنا

✍️ نص ← GIF متحرك

حوّل أي نص إلى صورة GIF متحركة مع خيارات التخصيص الكاملة

36
15

🤖 بوت الذكاء الاصطناعي

اسأل سؤالك مباشرة — دراسة، مناهج أردنية، واجبات، جامعة، وأدوات الموقع. بدون ما أسألك عن صفك أولاً

📎 يمكنك إرفاق صورة أو PDF أو ملف نصي/كود — أحلل المحتوى وأجيب (مجاني)

مرحباً! 👋 أنا ربى، المساعدة الذكية لـ ToolBox Arabia. جاهزة أساعدك في الدراسة من الأول الأساسي حتى الجامعة، وأعرف كل أدوات الموقع. اكتب سؤالك أو اضغط 📎 لإرفاق صورة سؤال أو PDF أو ملف. 🚀📚

🎨 توليد الصور بالذكاء الاصطناعي

صف الصورة اللي تريدها وسيتم إنشاؤها فوراً

🖼️ افتراضي
📷 واقعي
🎌 أنمي
🎨 زيتي
💧 مائي
👾 بكسل آرت
🧊 ثلاثي الأبعاد
🌆 سايبربانك

✂️ إزالة الخلفية

ارفع صورة وسيتم حذف الخلفية تلقائياً بالذكاء الاصطناعي


📚 تعليم البرمجة

كورسات لغات البرمجة

كورسات شاملة باللغة العربية — من الصفر للاحتراف، مع أمثلة تطبيقية وأكواد جاهزة

🐍
Python

كورس Python الشامل

من المتغيرات والحلقات حتى البرمجة كائنية التوجه، معالجة الملفات، والمشاريع التطبيقية.

مبتدئ OOP Files Projects
مستوى متوسط
JavaScript

كورس JavaScript الشامل

أساسيات JS، DOM، الأحداث، Async/Await، وبناء مشاريع ويب تفاعلية حقيقية.

مبتدئ DOM ES6+ Async
مستوى متوسط
Java

كورس Java الشامل

تعلم Java من الصفر، OOP بعمق، Collections, Exceptions، وبناء تطبيقات متكاملة.

مبتدئ OOP Collections Enterprise
مستوى متقدم
⚙️
C++

كورس C++ الشامل

من الأساسيات حتى البوينترات، OOP، STL، وإدارة الذاكرة — الطريق لبرمجة الأنظمة.

مبتدئ Pointers OOP STL
مستوى متقدم
🐘
PHP

كورس PHP الشامل

تعلم PHP من الأساسيات حتى بناء صفحات وتطبيقات ويب ديناميكية وربطها بقواعد البيانات.

مبتدئ Web Forms Database
مستوى متوسط
🗄️
SQL

كورس SQL الشامل

تعلم التعامل مع قواعد البيانات، كتابة الاستعلامات، الفلترة، العلاقات، والتحليل العملي للبيانات.

مبتدئ Queries Joins Data
مستوى متوسط
#️⃣
C#

كورس C# الشامل

تعلم C# من الصفر، أساسيات اللغة، OOP، وبناء تطبيقات عملية بأسلوب واضح ومنظم.

مبتدئ OOP .NET Apps
مستوى متقدم
💰 أسعار الحصص
🎉 عرض الافتتاح — خصم 50% على جميع الباقات لفترة محدودة! ⏳ عرض محدود
📖
حصة أسبوعية
حصة واحدة / الأسبوع
$50
$25
دولار / الأسبوع
وفّر 50% 🔥
  • حصة تفاعلية مباشرة
  • شرح مخصص لمستواك
  • تمارين بعد كل حصة
  • دعم على الواتساب
احجز الآن
🏆
ثلاث حصص أسبوعياً
٣ حصص / الأسبوع
$120
$60
دولار / الأسبوع
وفّر 50% 🔥
  • ٣ حصص تفاعلية مباشرة
  • أسرع طريق للاحتراف
  • مشاريع متقدمة
  • دعم مستمر على الواتساب
  • تسجيلات + ملاحظات
  • شهادة إتمام الكورس
احجز الآن

👥 تدرسون أكثر من شخص؟ خصومات خاصة!

كلما زاد عدد المشتركين من نفس المجموعة كلما حصلتم على خصم أكبر — مثالي للأصدقاء، العائلة، أو زملاء العمل.

شخصان 10% خصم إضافي
٣ - ٤ أشخاص 20% خصم إضافي
٥ أشخاص فأكثر 30% خصم إضافي
💬 استفسر عن خصم المجموعة

تحتاج شرح إضافي؟

💬

عندك سؤال على كورس معين أو محتاج شرح لأي درس؟
تواصل معنا مباشرة على الواتساب وسنرد عليك في أقرب وقت!

📲 تواصل معنا على واتساب — محتاج شرح!

🧪 الكويزات

اختبارات الكورسات

اختبارات تفاعلية لمراجعة الكورسات وقياس مستواك قبل الانتقال للمشاريع والتطبيقات

🧪
Python Quiz

اختبار كورس Python

اختبار شامل لمراجعة مفاهيم كورس Python وقياس فهمك قبل الانتقال للمشاريع والتطبيقات.

اختبار Python تقييم مراجعة
اختبار شامل
🗄️
SQL Quiz

اختبار كورس SQL

اختبار شامل لمراجعة مفاهيم SQL والاستعلامات والعلاقات قبل الانتقال للتطبيقات العملية.

اختبار SQL Queries Database
اختبار شامل
Java Quiz

اختبار كورس Java

اختبار شامل لمراجعة مفاهيم Java والبرمجة كائنية التوجه والتطبيقات العملية.

اختبار Java OOP تقييم
اختبار شامل

💬 محتاج شرح؟ واتساب
⚡ ToolBox Arabia — تعلّم البرمجة بالعربي

تعلّم Python من الصفر
حتى الاحتراف

كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء مشاريع حقيقية باستخدام Python

٨
وحدات تعليمية
٥٠+
مثال برمجي
١٢
مشروع تطبيقي
٠
خبرة مطلوبة

💡 ماذا ستتعلم؟

بعد إنهاء هذا الكورس ستكون قادراً على بناء مشاريع برمجية كاملة

🧱

أساسيات البرمجة

فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر

🔧

الدوال والوحدات

كتابة كود منظّم وقابل لإعادة الاستخدام باستخدام الدوال والمكتبات

📦

البرمجة الكائنية OOP

فهم الكلاسات والكائنات وبناء برامج ضخمة ومنظّمة

📁

التعامل مع الملفات

قراءة وكتابة ملفات TXT و CSV و JSON

🌐

Web Scraping وAPIs

جلب البيانات من الإنترنت والتعامل مع REST APIs

📊

تحليل البيانات

استخدام pandas و matplotlib لتحليل البيانات ورسمها

🗄️

قواعد البيانات

التعامل مع SQLite وتخزين البيانات باحتراف

🤖

أتمتة المهام

أتمتة المهام اليومية مثل إرسال الإيميل وتحريك الماوس والكيبورد

ToolBox Arabia — Python Course • toolboxarabia.com

📋 محتويات الكورس

📚 الدروس التفصيلية

اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود

١

🚀 البداية مع Python

التثبيت • أول برنامج • بيئة العمل
🔧 تثبيت Python وإعداد البيئة
أول خطوة هي تحميل Python من الموقع الرسمي python.org واختيار الإصدار الأحدث (3.x)، ثم تثبيت محرر كود مثل VS Code.
💡 نصيحة: تأكد من تفعيل خيار "Add Python to PATH" أثناء التثبيت على ويندوز!
👋 أول برنامج — Hello World
كل رحلة تبدأ بخطوة. برنامجك الأول هو طباعة رسالة على الشاشة:
python
# أول برنامج بايثون الخاص بك
print("مرحباً بك في عالم Python! 🐍")
print("ToolBox Arabia - نتعلم معاً")

# طلب اسم المستخدم
name = input("ما اسمك؟ ")
print(f"أهلاً {name}! يلا نبدأ البرمجة 🚀")
مرحباً بك في عالم Python! 🐍 ToolBox Arabia - نتعلم معاً ما اسمك؟ محمد أهلاً محمد! يلا نبدأ البرمجة 🚀
📌 الدالة print() تطبع أي شيء على الشاشة. الدالة input() تطلب من المستخدم إدخال نص.
💬 التعليقات في الكود
python
# هذا تعليق من سطر واحد - لا يُنفَّذ

"""
هذا تعليق
من عدة أسطر
يُستخدم لشرح الكود
"""

print("هذا السطر ينفَّذ فقط")
٢

📦 المتغيرات وأنواع البيانات

int • float • str • bool • type()
📌 ما هو المتغير؟
المتغير هو اسم نحتفظ فيه بقيمة. تخيّله كصندوق له اسم وبداخله قيمة.
python
# أنواع المتغيرات الأساسية
age = 22           # int - عدد صحيح
gpa = 3.75         # float - عدد عشري
name = "أحمد"      # str - نص
is_student = True  # bool - صح أو خطأ

# معرفة نوع المتغير
print(type(age))       # <class 'int'>
print(type(name))      # <class 'str'>
print(type(gpa))       # <class 'float'>
✍️ العمليات على النصوص (Strings)
python
first = "ToolBox"
second = "Arabia"

# دمج النصوص
print(first + " " + second)   # ToolBox Arabia

# f-string (الطريقة الأحسن)
brand = f"{first} {second} 🔥"
print(brand)

# دوال النصوص المفيدة
text = "  مرحبا بالجميع  "
print(text.strip())         # حذف المسافات
print(text.upper())         # أحرف كبيرة
print(text.replace("مرحبا", "أهلاً"))
🔢 العمليات الحسابية
python
a = 10
b = 3

print(a + b)   # 13 - جمع
print(a - b)   # 7  - طرح
print(a * b)   # 30 - ضرب
print(a / b)   # 3.333 - قسمة
print(a // b)  # 3 - قسمة صحيحة
print(a % b)   # 1 - باقي القسمة
print(a ** b)  # 1000 - أس (10³)
🔥 نصيحة: في Python لا تحتاج لتحديد نوع المتغير — يتعرّف عليه تلقائياً!
٣

🔀 التحكم في التدفق

if / elif / else • for • while • break • continue
🔍 الشروط — if / elif / else
نستخدمها لتنفيذ كود معيّن بناءً على شرط معيّن.
python
score = 85

if score >= 90:
    print("ممتاز 🌟")
elif score >= 75:
    print("جيد جداً ✅")
elif score >= 60:
    print("جيد 👍")
else:
    print("تحتاج للمذاكرة أكثر 📚")
جيد جداً ✅
🔄 حلقة for
نستخدمها لتكرار كود لعدد معيّن من المرات أو للمرور على عناصر قائمة.
python
# المرور على قائمة
languages = ["Python", "JavaScript", "Java"]
for lang in languages:
    print(f"لغة: {lang}")

# range() - تكرار عدد من المرات
for i in range(1, 6):
    print(f"الرقم: {i}")

# enumerate - رقم + قيمة معاً
for idx, lang in enumerate(languages, 1):
    print(f"{idx}. {lang}")
🔁 حلقة while
python
count = 0
while count < 5:
    print(f"العدد: {count}")
    count += 1

# break - إيقاف الحلقة
for i in range(10):
    if i == 5:
        break
    print(i)

# continue - تخطي دور
for i in range(10):
    if i % 2 == 0:
        continue     # تخطي الأرقام الزوجية
    print(i)         # يطبع 1, 3, 5, 7, 9
٤

⚙️ الدوال (Functions)

def • parameters • return • lambda • *args • **kwargs
📌 ما هي الدالة؟
الدالة هي مجموعة أوامر لها اسم وتقوم بمهمة محددة. نكتبها مرة واحدة ونستخدمها كثيراً.
python
# تعريف دالة بسيطة
def greet(name):
    print(f"أهلاً {name}! 👋")

greet("سارة")    # أهلاً سارة!
greet("خالد")    # أهلاً خالد!

# دالة ترجع قيمة
def add(a, b):
    return a + b

result = add(10, 5)
print(result)   # 15
🔢 المعاملات الافتراضية
python
def power(base, exp=2):
    return base ** exp

print(power(5))       # 25 (5²)
print(power(2, 10))   # 1024 (2¹⁰)

# *args - عدد غير محدود من المعاملات
def total(*numbers):
    return sum(numbers)

print(total(1, 2, 3, 4, 5))   # 15

# lambda - دالة مختصرة
square = lambda x: x ** 2
print(square(7))   # 49
💡 قاعدة ذهبية: اكتب دالة لكل مهمة تتكرر أكثر من مرتين في كودك!
٥

🗂️ هياكل البيانات

List • Tuple • Dictionary • Set
📋 القوائم — List
python
fruits = ["تفاح", "برتقال", "مانجو"]

# الوصول للعناصر
print(fruits[0])    # تفاح (الأول)
print(fruits[-1])   # مانجو (الأخير)

# إضافة وحذف
fruits.append("عنب")     # إضافة آخر
fruits.insert(1, "كيوي") # إضافة في موقع محدد
fruits.remove("برتقال") # حذف بالقيمة
fruits.pop()             # حذف آخر عنصر

# فرز وعكس
nums = [5, 2, 8, 1, 9]
nums.sort()             # [1, 2, 5, 8, 9]
nums.reverse()          # [9, 8, 5, 2, 1]
print(len(nums))         # 5 - عدد العناصر
📖 القاموس — Dictionary
python
student = {
    "name": "فاطمة",
    "age": 20,
    "gpa": 3.9,
    "courses": ["Python", "مواد دراسية"]
}

# الوصول للقيم
print(student["name"])           # فاطمة
print(student.get("age"))        # 20

# إضافة وتعديل
student["email"] = "f@uni.edu"
student["age"] = 21

# المرور على القاموس
for key, value in student.items():
    print(f"{key}: {value}")
🔢 المجموعات (Set) والأزواج (Tuple)
python
# Tuple - لا يتغير بعد الإنشاء
colors = ("أزرق", "أحمر", "أخضر")
print(colors[0])   # أزرق

# Set - لا يحتوي على تكرار
unique = {1, 2, 3, 2, 1}
print(unique)   # {1, 2, 3}

# تحويل قائمة لـ set لحذف التكرار
data = [1, 2, 2, 3, 3, 4]
no_dups = list(set(data))
print(no_dups)   # [1, 2, 3, 4]
٦

🧱 البرمجة الكائنية — OOP

Class • Object • Inheritance • Encapsulation
🏗️ تعريف الكلاس والكائن
الكلاس هو قالب. الكائن (Object) هو نسخة من هذا القالب. مثلاً: "سيارة" هو الكلاس، "تويوتا كامري ٢٠٢٥" هو الكائن.
python
class Student:
    # __init__ يعمل عند إنشاء الكائن
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.courses = []

    def introduce(self):
        print(f"أنا {self.name}، عمري {self.age} سنة")

    def add_course(self, course):
        self.courses.append(course)
        print(f"✅ تم إضافة {course}")

# إنشاء كائنات
s1 = Student("نورة", 21)
s1.introduce()
s1.add_course("Python")
s1.add_course("Data Science")
🔗 الوراثة (Inheritance)
python
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("...")

# Dog يرث من Animal
class Dog(Animal):
    def speak(self):
        print(f"{self.name} يقول: هاو هاو! 🐕")

class Cat(Animal):
    def speak(self):
        print(f"{self.name} يقول: ميياو 🐈")

dog = Dog("ماكس")
cat = Cat("ميمي")
dog.speak()   # ماكس يقول: هاو هاو!
cat.speak()   # ميمي يقول: ميياو
٧

📁 الملفات والاستثناءات

open() • read/write • try/except • JSON • CSV
📄 قراءة وكتابة الملفات
python
# كتابة ملف
with open("notes.txt", "w", encoding="utf-8") as f:
    f.write("ملاحظاتي اليومية\n")
    f.write("Python رائع جداً!\n")

# قراءة ملف
with open("notes.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# التعامل مع JSON
import json
data = {"name": "ToolBox Arabia", "version": 1}

with open("data.json", "w") as f:
    json.dump(data, f, ensure_ascii=False)
⚠️ معالجة الأخطاء — try / except
python
try:
    num = int(input("أدخل رقماً: "))
    result = 100 / num
    print(f"النتيجة: {result}")

except ValueError:
    print("❌ يجب إدخال رقم!")
except ZeroDivisionError:
    print("❌ لا يمكن القسمة على صفر!")
except Exception as e:
    print(f"خطأ غير متوقع: {e}")
finally:
    print("✅ تم تنفيذ الكود بنجاح")
💡 مهم: استخدم دائماً with open() بدلاً من open() — يغلق الملف تلقائياً!
٨

🚀 المكتبات المتقدمة

requests • pandas • matplotlib • os • datetime
🌐 requests — التعامل مع APIs
python
import requests

# جلب بيانات من API
url = "https://api.github.com/users/torvalds"
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    print(f"اسم المستخدم: {data['name']}")
    print(f"عدد المتابعين: {data['followers']}")
else:
    print("فشل الاتصال بالـ API")
📊 pandas — تحليل البيانات
python
import pandas as pd

# إنشاء DataFrame
data = {
    "name": ["علي", "نورة", "أحمد", "سارة"],
    "score": [85, 92, 78, 95],
    "grade": ["B", "A", "C", "A"]
}
df = pd.DataFrame(data)

print(df.describe())         # إحصائيات
print(df["score"].mean())    # المتوسط = 87.5
print(df[df["score"] >= 90]) # فلترة

# قراءة ملف CSV
df2 = pd.read_csv("students.csv")
📅 datetime و os
python
from datetime import datetime
import os

# الوقت الحالي
now = datetime.now()
print(now.strftime("%Y/%m/%d %H:%M"))

# التعامل مع النظام
print(os.getcwd())      # المجلد الحالي
files = os.listdir(".")  # قائمة الملفات
os.makedirs("new_folder", exist_ok=True)
print(os.path.exists("notes.txt"))
📦 لتثبيت المكتبات: pip install requests pandas matplotlib
ToolBox Arabia — Python Course • جميع الحقوق محفوظة ©2025

🛠️ مشاريع تطبيقية

بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع

مبتدئ

🧮 آلة حاسبة متقدمة

بناء آلة حاسبة تدعم العمليات الأساسية مع واجهة نصية جميلة

functionswhile loopinput()
مبتدئ

🎮 لعبة تخمين الرقم

لعبة يخمن فيها المستخدم رقماً سرياً مع نظام نقاط وحياة

randomloopsconditions
متوسط

📋 نظام إدارة المهام

تطبيق To-Do List يحفظ المهام في ملف JSON مع خيارات إضافة وحذف وعرض

JSONfilesOOP
متوسط

🌤️ تطبيق الطقس

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

requestsAPIJSON
متوسط

📊 محلل مبيعات

قراءة ملف CSV للمبيعات وتحليله ورسم مخططات بيانية احترافية

pandasmatplotlibCSV
متقدم

🤖 بوت تيليجرام

بناء بوت تيليجرام يرد على الرسائل ويقدم خدمات مفيدة

telegram-botAPIasync
متقدم

🌐 Web Scraper

استخراج البيانات من مواقع الويب وحفظها في قاعدة بيانات SQLite

BeautifulSoupSQLiterequests
متقدم

🤖 أتمتة المهام اليومية

أتمتة إرسال إيميلات تلقائية وتنظيم الملفات وجدولة المهام

smtplibscheduleos
ToolBox Arabia — Python Course • toolboxarabia.com

🎯 بعد إنهاء الكورس — ماذا تستطيع فعله؟

Python تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك

🤖

الذكاء الاصطناعي

تعلم TensorFlow و PyTorch لبناء نماذج AI

📊

علوم البيانات

تحليل البيانات الضخمة مع pandas و scikit-learn

🌐

تطوير الويب

بناء مواقع ويب وAPIs مع Flask أو Django

🔐

الأمن السيبراني

كتابة أدوات اختبار اختراق وتحليل الشبكات

⚙️

أتمتة DevOps

أتمتة عمليات النشر وإدارة الخوادم

🎮

تطوير الألعاب

بناء ألعاب 2D باستخدام Pygame

💬 محتاج شرح؟ واتساب
⚡ ToolBox Arabia — تعلّم البرمجة بالعربي

تعلّم JavaScript من الصفر
حتى الاحتراف

كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات ويب تفاعلية حقيقية باستخدام JavaScript

٨
وحدات تعليمية
٥٠+
مثال برمجي
١٢
مشروع تطبيقي
٠
خبرة مطلوبة

💡 ماذا ستتعلم؟

بعد إنهاء هذا الكورس ستكون قادراً على بناء مواقع وتطبيقات ويب تفاعلية كاملة

🧱

أساسيات البرمجة

فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر

🔧

الدوال والكلوجرز

كتابة كود منظّم وقابل لإعادة الاستخدام باستخدام الدوال والـ closures

🌐

التعامل مع DOM

التحكم في عناصر صفحة الويب وتغييرها ديناميكياً

البرمجة غير المتزامنة

فهم Promises و async/await والتعامل مع APIs

📦

البرمجة الكائنية OOP

فهم الكلاسات والكائنات وبناء تطبيقات ضخمة ومنظّمة

🛠️

الأدوات الحديثة

استخدام npm و Webpack و ES Modules في مشاريع حقيقية

⚛️

مدخل إلى React

بناء واجهات مستخدم تفاعلية باستخدام مكتبة React الشهيرة

🖥️

Node.js وBackend

تشغيل JavaScript على الخادم وبناء APIs باستخدام Express

ToolBox Arabia — JavaScript Course • toolboxarabia.com

📋 محتويات الكورس

📚 الدروس التفصيلية

اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود

١

🚀 البداية مع JavaScript

المتصفح • Console • أول برنامج • script tag
🔧 كيف تشغّل JavaScript؟
JavaScript تعمل مباشرة في المتصفح! افتح أي صفحة ويب، اضغط F12، وانتقل إلى تبويب Console.
💡 نصيحة: يمكنك تشغيل JS في المتصفح مباشرة بدون تثبيت أي شيء — هذه ميزة رائعة للمبتدئين!
👋 أول برنامج — Hello World
كل رحلة تبدأ بخطوة. برنامجك الأول هو طباعة رسالة في الـ Console:
javascript
// أول برنامج JavaScript الخاص بك
console.log("مرحباً بك في عالم JavaScript! 🟡");
console.log("ToolBox Arabia - نتعلم معاً");

// طلب اسم المستخدم
const name = prompt("ما اسمك؟");
console.log(`أهلاً ${name}! يلا نبدأ البرمجة 🚀`);
مرحباً بك في عالم JavaScript! 🟡 ToolBox Arabia - نتعلم معاً أهلاً محمد! يلا نبدأ البرمجة 🚀
📌 الدالة console.log() تطبع أي شيء في Console المتصفح. الدالة prompt() تعرض نافذة لإدخال النص.
💬 التعليقات في الكود
javascript
// هذا تعليق من سطر واحد - لا يُنفَّذ

/* هذا تعليق
   من عدة أسطر
   يُستخدم لشرح الكود */

console.log("هذا السطر ينفَّذ فقط");
🔗 ربط JS بصفحة HTML
html
<!-- في نهاية body -->
<script src="script.js"></script>

<!-- أو مباشرة في الصفحة -->
<script>
  console.log("مرحباً من الصفحة!");
</script>
٢

📦 المتغيرات وأنواع البيانات

let • const • var • string • number • boolean • null • undefined
📌 تعريف المتغيرات
في JS الحديثة نستخدم let للمتغيرات القابلة للتغيير، وconst للثوابت.
javascript
// أنواع المتغيرات الأساسية
let age = 22;           // number - عدد
const name = "أحمد";    // string - نص
let isStudent = true;   // boolean - صح أو خطأ
let score = 3.75;        // number عشري
let nothing = null;     // null - قيمة فارغة
let unknown;             // undefined - غير معرّف

// معرفة نوع المتغير
console.log(typeof age);       // "number"
console.log(typeof name);      // "string"
console.log(typeof isStudent); // "boolean"
✍️ العمليات على النصوص (Strings)
javascript
const first = "ToolBox";
const second = "Arabia";

// دمج النصوص
console.log(first + " " + second);  // ToolBox Arabia

// Template Literals (الطريقة الأحسن)
const brand = `${first} ${second} 🔥`;
console.log(brand);

// دوال النصوص المفيدة
const text = "  مرحبا بالجميع  ";
console.log(text.trim());                      // حذف المسافات
console.log(text.toUpperCase());               // أحرف كبيرة
console.log(text.replace("مرحبا", "أهلاً"));  // استبدال
console.log(text.includes("بالجميع"));        // true
🔢 العمليات الحسابية
javascript
let a = 10;
let b = 3;

console.log(a + b);   // 13 - جمع
console.log(a - b);   // 7  - طرح
console.log(a * b);   // 30 - ضرب
console.log(a / b);   // 3.333 - قسمة
console.log(a % b);   // 1 - باقي القسمة
console.log(a ** b);  // 1000 - أس (10³)

// Math المدمجة
console.log(Math.round(3.7));   // 4
console.log(Math.random());    // رقم عشوائي 0-1
console.log(Math.max(5, 10, 3)); // 10
🔥 نصيحة: استخدم const دائماً افتراضياً، وانتقل إلى let فقط عندما تحتاج لتغيير القيمة!
٣

🔀 التحكم في التدفق

if / else • ternary • for • while • switch
🔍 الشروط — if / else
javascript
const score = 85;

if (score >= 90) {
  console.log("ممتاز 🌟");
} else if (score >= 75) {
  console.log("جيد جداً ✅");
} else if (score >= 60) {
  console.log("جيد 👍");
} else {
  console.log("تحتاج للمذاكرة أكثر 📚");
}

// Ternary operator - اختصار if/else
const result = score >= 60 ? "ناجح" : "راسب";
console.log(result); // ناجح
جيد جداً ✅ ناجح
🔄 حلقة for
javascript
// حلقة عادية
for (let i = 1; i <= 5; i++) {
  console.log(`الرقم: ${i}`);
}

// for...of - المرور على مصفوفة
const languages = ["Python", "JavaScript", "Java"];
for (const lang of languages) {
  console.log(`لغة: ${lang}`);
}

// forEach - الأسلوب الحديث
languages.forEach((lang, idx) => {
  console.log(`${idx + 1}. ${lang}`);
});
🔁 حلقة while و switch
javascript
let count = 0;
while (count < 5) {
  console.log(`العدد: ${count}`);
  count++;
}

// switch - للمقارنة المتعددة
const day = "الجمعة";
switch (day) {
  case "السبت":
  case "الجمعة":
    console.log("عطلة نهاية الأسبوع 🎉");
    break;
  default:
    console.log("يوم عمل 💼");
}
٤

🔧 الدوال والـ Arrow Functions

function • arrow • default params • rest • spread
📌 تعريف الدوال
javascript
// الطريقة التقليدية
function greet(name) {
  return `أهلاً ${name}! 👋`;
}

// Arrow Function - الطريقة الحديثة
const greetArrow = (name) => `أهلاً ${name}! 👋`;

// قيم افتراضية للمعاملات
const power = (base, exp = 2) => base ** exp;

console.log(greet("أحمد"));      // أهلاً أحمد! 👋
console.log(power(3));           // 9  (3²)
console.log(power(2, 10));       // 1024
🔄 Rest و Spread
javascript
// rest - عدد غير محدود من الوسائط
const sum = (...nums) => nums.reduce((a, b) => a + b, 0);
console.log(sum(1, 2, 3, 4, 5)); // 15

// spread - نشر عناصر مصفوفة
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const merged = [...arr1, ...arr2];
console.log(merged); // [1, 2, 3, 4, 5, 6]

// Destructuring
const [first, second, ...rest] = merged;
console.log(first, second, rest); // 1 2 [3, 4, 5, 6]
🔥 نصيحة: Arrow Functions لا تملك this خاصاً بها — مفيدة جداً داخل الكلاسات والـ callbacks!
٥

📚 المصفوفات والكائنات

Array • Object • map • filter • reduce • destructuring
📋 المصفوفات (Arrays)
javascript
const fruits = ["تفاح", "موز", "برتقال"];

// الوصول للعناصر
console.log(fruits[0]);         // تفاح
console.log(fruits.length);    // 3

// إضافة وحذف
fruits.push("عنب");            // إضافة للنهاية
fruits.unshift("مانجو");       // إضافة للبداية
fruits.pop();                  // حذف من النهاية

// map - تحويل كل عنصر
const scores = [60, 80, 95, 45];
const doubled = scores.map(s => s * 2);

// filter - تصفية العناصر
const passing = scores.filter(s => s >= 60);

// reduce - تجميع القيم
const total = scores.reduce((sum, s) => sum + s, 0);
console.log(total); // 280
🗂️ الكائنات (Objects)
javascript
const student = {
  name: "أحمد",
  age: 22,
  scores: [85, 90, 78],
  getAvg() {
    return this.scores.reduce((a, b) => a + b) / this.scores.length;
  }
};

console.log(student.name);       // أحمد
console.log(student.getAvg());  // 84.33

// Object Destructuring
const { name, age } = student;
console.log(`${name} عمره ${age}`); // أحمد عمره 22

// نسخ الكائن (Spread)
const updated = { ...student, age: 23 };
٦

🌐 DOM وأحداث المتصفح

querySelector • addEventListener • innerHTML • classList
🔎 اختيار العناصر
javascript
// اختيار عنصر واحد
const title = document.querySelector("h1");
const btn = document.querySelector("#myBtn");
const box = document.querySelector(".card");

// اختيار عدة عناصر
const items = document.querySelectorAll("li");

// تغيير المحتوى والأنماط
title.textContent = "عنوان جديد";
box.style.backgroundColor = "#f7df1e";
box.classList.add("active");
box.classList.toggle("hidden");
🖱️ الأحداث (Events)
javascript
const btn = document.querySelector("#myBtn");

// حدث النقر
btn.addEventListener("click", () => {
  console.log("تم النقر! 🎯");
});

// حدث الإدخال
const input = document.querySelector("input");
input.addEventListener("input", (e) => {
  console.log(e.target.value);
});

// إنشاء عناصر ديناميكياً
const newItem = document.createElement("li");
newItem.textContent = "عنصر جديد";
document.querySelector("ul").appendChild(newItem);
💡 مهم: ضع سكريبتك في نهاية الـ body أو استخدم DOMContentLoaded لضمان تحميل الصفحة أولاً!
٧

⚡ البرمجة غير المتزامنة

Callback • Promise • async/await • fetch API
🌐 fetch — جلب البيانات من API
javascript
// باستخدام async/await (الطريقة الأحسن)
async function getUser() {
  try {
    const response = await fetch(
      "https://api.github.com/users/torvalds"
    );
    const data = await response.json();

    console.log(`اسم المستخدم: ${data.name}`);
    console.log(`عدد المتابعين: ${data.followers}`);
  } catch (error) {
    console.error("خطأ في الاتصال:", error);
  }
}

getUser();
🔄 Promises
javascript
// إنشاء Promise
const myPromise = new Promise((resolve, reject) => {
  const success = true;
  if (success) {
    resolve("✅ تم بنجاح!");
  } else {
    reject("❌ فشلت العملية");
  }
});

myPromise
  .then(result => console.log(result))
  .catch(err => console.error(err));

// Promise.all - تنفيذ متوازي
const results = await Promise.all([fetch(url1), fetch(url2)]);
📦 تذكر: async/await مجرد سكر نحوي فوق Promises — كلاهما يؤديان نفس الغرض!
٨

🚀 ES6+ والأدوات الحديثة

Classes • Modules • npm • LocalStorage • JSON
📦 الكلاسات (Classes)
javascript
class Animal {
  constructor(name, sound) {
    this.name = name;
    this.sound = sound;
  }

  speak() {
    console.log(`${this.name} يقول: ${this.sound}`);
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name, "هاو هاو");
  }
  fetch() { console.log("🎾 أحضرت الكرة!"); }
}

const rex = new Dog("ريكس");
rex.speak(); // ريكس يقول: هاو هاو
rex.fetch(); // 🎾 أحضرت الكرة!
💾 LocalStorage وJSON
javascript
// حفظ البيانات في المتصفح
const user = { name: "أحمد", level: 5 };
localStorage.setItem("user", JSON.stringify(user));

// استرجاع البيانات
const saved = JSON.parse(localStorage.getItem("user"));
console.log(saved.name); // أحمد

// ES Modules
// في ملف math.js
export const add = (a, b) => a + b;
export default function multiply(a, b) { return a * b; }

// في ملف main.js
import multiply, { add } from "./math.js";
📦 لتثبيت المكتبات: npm install axios lodash react
ToolBox Arabia — JavaScript Course • جميع الحقوق محفوظة ©2025

🛠️ مشاريع تطبيقية

بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع

مبتدئ

🧮 آلة حاسبة تفاعلية

بناء آلة حاسبة بواجهة HTML/CSS مع منطق JavaScript كامل

DOMeventsCSS Grid
مبتدئ

🌤️ تطبيق عرض الطقس

جلب بيانات الطقس من API وعرضها في واجهة جميلة

fetchasync/awaitAPI
متوسط

📋 تطبيق To-Do List

تطبيق مهام يحفظ البيانات في LocalStorage ويدعم الفلترة

localStorageCRUDfilter
متوسط

🎮 لعبة تذكر الأرقام

لعبة ذاكرة تفاعلية مع نظام نقاط ومؤقت زمني

setTimeoutDOMclassList
متوسط

🔍 تطبيق بحث GitHub

البحث عن مستخدمي GitHub وعرض ملفاتهم ومستودعاتهم

GitHub APIfetchdebounce
متقدم

🛒 متجر إلكتروني بسيط

واجهة متجر مع عربة تسوق وفلتر للمنتجات وإدارة الحالة

OOPmodulesstate
متقدم

💬 تطبيق Chat بـ Node.js

تطبيق دردشة فوري باستخدام Node.js و Socket.io

Node.jsSocket.ioExpress
متقدم

⚛️ تطبيق React Notes

تطبيق ملاحظات كامل بـ React مع useState وuseEffect

ReactHookscomponents
ToolBox Arabia — JavaScript Course • toolboxarabia.com

🎯 بعد إنهاء الكورس — ماذا تستطيع فعله؟

JavaScript تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك

⚛️

React / Vue / Angular

بناء واجهات مستخدم ضخمة باستخدام الفريمووركات الحديثة

🖥️

Node.js Backend

بناء سيرفرات وAPIs احترافية بـ Express وFastify

📱

تطوير الموبايل

بناء تطبيقات iOS وAndroid بـ React Native

🖥️

تطبيقات Desktop

بناء تطبيقات سطح المكتب بـ Electron

🤖

الذكاء الاصطناعي

دمج نماذج AI في تطبيقاتك باستخدام OpenAI API

🎮

تطوير الألعاب

بناء ألعاب 2D للمتصفح باستخدام Canvas و Phaser.js

💬 محتاج شرح؟ واتساب
⚡ ToolBox Arabia — تعلّم البرمجة بالعربي

تعلّم Java من الصفر
حتى الاحتراف

كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات حقيقية باستخدام Java — اللغة الأكثر انتشاراً في المؤسسات

٩
وحدات تعليمية
٦٠+
مثال برمجي
١٠
مشروع تطبيقي
٠
خبرة مطلوبة

💡 ماذا ستتعلم؟

بعد إنهاء هذا الكورس ستكون قادراً على بناء تطبيقات Java كاملة

🧱

أساسيات Java

فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر

📦

البرمجة الكائنية OOP

التعمّق في الكلاسات، الوراثة، التعددية الشكلية، والـ Interfaces

🔧

هياكل البيانات

ArrayList, HashMap, LinkedList, Stack, Queue وكيفية اختيار المناسب

Generics و Collections

كتابة كود مرن وآمن باستخدام الأنواع العامة ومكتبة Collections

🧵

Multithreading

تشغيل مهام متوازية وإدارة الـ Threads لبناء تطبيقات سريعة

📁

التعامل مع الملفات و I/O

قراءة وكتابة الملفات، Streams، والتعامل مع الاستثناءات

🗄️

قواعد البيانات JDBC

الاتصال بـ MySQL وتنفيذ العمليات CRUD باحتراف

🌐

Spring Boot — الأساسيات

بناء REST APIs مع Spring Boot وتهيئة المشاريع الاحترافية

ToolBox Arabia — Java Course • toolboxarabia.com

📋 محتويات الكورس

📚 الدروس التفصيلية

اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود

١

🚀 البداية مع Java

التثبيت • JDK • أول برنامج • بيئة العمل
🔧 تثبيت Java وإعداد البيئة
أول خطوة هي تحميل JDK (Java Development Kit) من موقع Oracle أو استخدام OpenJDK، ثم تثبيت IntelliJ IDEA أو VS Code.
💡 نصيحة: استخدم IntelliJ IDEA Community Edition — مجاني وهو أفضل IDE لـ Java بفارق كبير!
👋 أول برنامج — Hello World
كل رحلة تبدأ بخطوة. في Java كل كود لازم يكون داخل Class:
java
// أول برنامج Java الخاص بك
public class Main {
    public static void main(String[] args) {
        System.out.println("مرحباً بك في عالم Java! ☕");
        System.out.println("ToolBox Arabia - نتعلم معاً");

        // طلب اسم المستخدم
        Scanner scanner = new Scanner(System.in);
        System.out.print("ما اسمك؟ ");
        String name = scanner.nextLine();
        System.out.println("أهلاً " + name + "! يلا نبدأ البرمجة 🚀");
    }
}
مرحباً بك في عالم Java! ☕ ToolBox Arabia - نتعلم معاً ما اسمك؟ محمد أهلاً محمد! يلا نبدأ البرمجة 🚀
📌 في Java كل برنامج يحتاج: Class بنفس اسم الملف، ودالة main هي نقطة البداية. لا تنسَ استيراد java.util.Scanner للإدخال!
💬 التعليقات في الكود
java
// هذا تعليق من سطر واحد - لا يُنفَّذ

/* هذا تعليق
   من عدة أسطر
   يُستخدم لشرح الكود */

/**
 * هذا Javadoc — يوثّق الكلاسات والدوال
 * @param args مصفوفة المعاملات
 */
public static void main(String[] args) {
    System.out.println("هذا السطر ينفَّذ فقط");
}
٢

📦 المتغيرات وأنواع البيانات

int • double • String • boolean • char • casting
📌 أنواع البيانات الأساسية (Primitive Types)
في Java لازم تحدد نوع المتغير عند التعريف — هذا يجعل الكود أكثر أماناً وكفاءة.
java
// الأنواع الأساسية في Java
int age = 22;               // عدد صحيح (-2B إلى 2B)
double gpa = 3.75;          // عدد عشري (دقة عالية)
float price = 99.9f;        // عدد عشري (ذاكرة أقل)
boolean isStudent = true;  // صح أو خطأ
char grade = 'A';           // حرف واحد
long population = 8000000000L; // عدد كبير جداً

// String ليست Primitive — هي Object
String name = "أحمد";

System.out.println("العمر: " + age);
System.out.println("المعدل: " + gpa);
✍️ التعامل مع النصوص (String)
java
String first = "ToolBox";
String second = "Arabia";

// دمج النصوص
System.out.println(first + " " + second);  // ToolBox Arabia

// String.format (أفضل للنصوص المركبة)
String msg = String.format("مرحباً %s، عمرك %d", first, 5);

// دوال النصوص المفيدة
String text = "  مرحبا بالجميع  ";
System.out.println(text.trim());              // حذف المسافات
System.out.println(text.toUpperCase());       // أحرف كبيرة
System.out.println(text.replace("مرحبا", "أهلاً"));
System.out.println(text.length());            // الطول = 18
System.out.println(text.contains("مرحبا"));   // true
🔢 العمليات الحسابية والتحويل (Casting)
java
int a = 10, b = 3;

System.out.println(a + b);   // 13 - جمع
System.out.println(a - b);   // 7  - طرح
System.out.println(a * b);   // 30 - ضرب
System.out.println(a / b);   // 3  - قسمة صحيحة (تقريب لأسفل!)
System.out.println(a % b);   // 1  - باقي القسمة
System.out.println(Math.pow(a, b)); // 1000.0 - أس

// Casting — تحويل الأنواع
double result = (double) a / b;  // 3.333... (تحويل صريح)
int rounded = (int) 3.99;        // 3 (يحذف الكسر)
🔥 مهم: في Java قسمة int / int تعطي int دائماً! لتحصل على نتيجة عشرية حوّل أحد الطرفين إلى double أولاً.
٣

🔀 التحكم في التدفق

if / else if / else • switch • for • while • do-while • break • continue
🔍 الشروط — if / else if / else
java
int score = 85;

if (score >= 90) {
    System.out.println("ممتاز 🌟");
} else if (score >= 75) {
    System.out.println("جيد جداً ✅");
} else if (score >= 60) {
    System.out.println("جيد 👍");
} else {
    System.out.println("تحتاج للمذاكرة أكثر 📚");
}
جيد جداً ✅
🔀 switch — التحويل المتعدد
java
String day = "الجمعة";

switch (day) {
    case "السبت":
    case "الأحد":
        System.out.println("عطلة نهاية الأسبوع 😎");
        break;
    case "الجمعة":
        System.out.println("يوم العطلة ☀️");
        break;
    default:
        System.out.println("يوم عمل 💼");
}
🔄 حلقة for
java
// حلقة for التقليدية
for (int i = 1; i <= 5; i++) {
    System.out.println("الرقم: " + i);
}

// Enhanced for-each (للمصفوفات والـ Collections)
String[] languages = {"Java", "Python", "JavaScript"};
for (String lang : languages) {
    System.out.println("لغة: " + lang);
}
🔁 حلقة while و do-while
java
// while — يتحقق من الشرط أولاً
int count = 0;
while (count < 5) {
    System.out.println("العدد: " + count);
    count++;
}

// do-while — ينفّذ مرة على الأقل ثم يتحقق
int num = 10;
do {
    System.out.println("قيمة: " + num);
    num++;
} while (num < 5);  // ينفّذ مرة حتى لو الشرط خاطئ
٤

🔧 الدوال (Methods)

تعريف الدوال • المعاملات • القيمة المرجعة • Overloading • Recursion
📌 تعريف واستدعاء دالة
الدوال في Java تسمى Methods وتُعرَّف داخل Class. لازم تحدد نوع القيمة المرجعة أو void إن لم ترجع شيئاً.
java
public class Calculator {

    // دالة تجمع عددين وترجع النتيجة
    public static int add(int a, int b) {
        return a + b;
    }

    // دالة تطبع رسالة (لا ترجع قيمة)
    public static void greet(String name) {
        System.out.println("أهلاً " + name + " 👋");
    }

    public static void main(String[] args) {
        int result = add(10, 5);        // 15
        System.out.println(result);
        greet("محمد");
    }
}
🔄 Method Overloading — نفس الاسم، معاملات مختلفة
java
public static int multiply(int a, int b) {
    return a * b;
}

public static double multiply(double a, double b) {
    return a * b;
}

public static int multiply(int a, int b, int c) {
    return a * b * c;
}

// Java تختار الدالة الصحيحة تلقائياً
multiply(2, 3);          // → يستدعي النسخة الأولى
multiply(2.5, 3.0);     // → يستدعي النسخة الثانية
multiply(2, 3, 4);      // → يستدعي النسخة الثالثة
💡 نصيحة: Overloading يجعل كودك أكثر وضوحاً — بدل addInts و addDoubles تكتب add للاثنين!
٥

📦 البرمجة الكائنية OOP

Classes • Objects • Constructors • Inheritance • Polymorphism • Interfaces
🏗️ الكلاسات والكائنات
الكلاس هو القالب، والكائن (Object) هو النسخة الحقيقية منه.
java
public class Student {
    // الخصائص (Fields)
    private String name;
    private int age;
    private double gpa;

    // Constructor
    public Student(String name, int age, double gpa) {
        this.name = name;
        this.age  = age;
        this.gpa  = gpa;
    }

    // Getters
    public String getName() { return name; }
    public double getGpa()  { return gpa; }

    // Method
    public void introduce() {
        System.out.printf("اسمي %s، عمري %d، معدلي %.2f%n",
            name, age, gpa);
    }
}

// إنشاء كائنات
Student s1 = new Student("علي", 20, 3.8);
Student s2 = new Student("نورة", 22, 3.95);
s1.introduce();
s2.introduce();
🧬 الوراثة (Inheritance)
java
// الكلاس الأب
public class Animal {
    protected String name;

    public Animal(String name) { this.name = name; }

    public void makeSound() {
        System.out.println(name + " يصدر صوتاً");
    }
}

// الكلاس الابن يرث بـ extends
public class Dog extends Animal {
    public Dog(String name) { super(name); }

    @Override
    public void makeSound() {
        System.out.println(name + ": هاو هاو! 🐕");
    }
}

Animal dog = new Dog("ريكس");
dog.makeSound();  // ريكس: هاو هاو! 🐕 (Polymorphism!)
🔌 الـ Interface
java
// Interface — عقد يجب تنفيذه
public interface Drawable {
    void draw();          // abstract method
    default void display() {
        System.out.println("عرض الشكل...");
    }
}

public class Circle implements Drawable {
    private double radius;

    public Circle(double r) { this.radius = r; }

    @Override
    public void draw() {
        System.out.println("⭕ دائرة نصف قطرها: " + radius);
    }
}
🔥 قاعدة مهمة: Java تدعم وراثة من كلاس واحد فقط (extends)، لكن يمكن تنفيذ عدة Interfaces (implements)!
٦

📚 هياكل البيانات والـ Collections

Arrays • ArrayList • HashMap • HashSet • LinkedList • Stack
📐 المصفوفات (Arrays)
java
// مصفوفة ثابتة الحجم
int[] scores = {85, 90, 78, 95, 88};
System.out.println(scores[0]);         // 85
System.out.println(scores.length);      // 5

// ترتيب المصفوفة
Arrays.sort(scores);

// مصفوفة ثنائية الأبعاد
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
System.out.println(matrix[1][2]);  // 6
📋 ArrayList — قائمة ديناميكية
java
ArrayList<String> names = new ArrayList<>();

names.add("علي");
names.add("نورة");
names.add("أحمد");

System.out.println(names.get(0));       // علي
System.out.println(names.size());       // 3
System.out.println(names.contains("نورة")); // true
names.remove("علي");

for (String n : names) {
    System.out.println(n);
}
🗺️ HashMap — قاموس (مفتاح: قيمة)
java
HashMap<String, Integer> grades = new HashMap<>();

grades.put("علي", 85);
grades.put("نورة", 92);
grades.put("أحمد", 78);

System.out.println(grades.get("نورة"));  // 92
System.out.println(grades.containsKey("علي")); // true

// المرور على جميع العناصر
for (Map.Entry<String, Integer> entry : grades.entrySet()) {
    System.out.printf("%s: %d%n", entry.getKey(), entry.getValue());
}
💡 متى تختار أيها؟ Array للحجم الثابت، ArrayList للقائمة الديناميكية، HashMap عندما تريد بحثاً سريعاً بالمفتاح، HashSet لتجنّب التكرار.
٧

⚠️ الاستثناءات والملفات

try / catch / finally • throws • IOException • FileReader • BufferedWriter
🔴 التعامل مع الاستثناءات (Exceptions)
java
try {
    int[] arr = {1, 2, 3};
    System.out.println(arr[10]);  // خطأ! خارج الحدود
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("خطأ: " + e.getMessage());
} catch (Exception e) {
    System.out.println("خطأ غير متوقع: " + e.getMessage());
} finally {
    System.out.println("✅ تم التنفيذ — finally دائماً يُنفَّذ");
}
📁 الكتابة والقراءة من الملفات
java
import java.io.*;
import java.nio.file.*;

// الكتابة — try-with-resources (يغلق الملف تلقائياً)
try (BufferedWriter writer = new BufferedWriter(
        new FileWriter("notes.txt"))) {
    writer.write("مرحباً من Java! ☕");
    writer.newLine();
    writer.write("ToolBox Arabia");
}

// القراءة — طريقة مبسّطة مع NIO
List<String> lines = Files.readAllLines(Path.of("notes.txt"));
for (String line : lines) {
    System.out.println(line);
}
💡 مهم: استخدم دائماً try-with-resources — يغلق الملف تلقائياً حتى لو حدث استثناء!
٨

🧬 Generics و Lambda و Stream API

Generic Classes • Lambda Expressions • Stream • Optional
🔬 Generic Classes والدوال
java
// Generic Class — يعمل مع أي نوع
public class Box<T> {
    private T value;

    public void set(T value) { this.value = value; }
    public T get()             { return value; }
}

Box<String> strBox = new Box<>();
strBox.set("مرحباً");

Box<Integer> intBox = new Box<>();
intBox.set(42);
⚡ Lambda Expressions — كود مختصر
java
List<String> names = Arrays.asList("علي", "نورة", "أحمد", "سارة");

// بدون Lambda
names.sort(new Comparator<String>() {
    public int compare(String a, String b) { return a.compareTo(b); }
});

// مع Lambda — نفس النتيجة بأقل كود!
names.sort((a, b) -> a.compareTo(b));

// Stream API — عمليات على القوائم بطريقة وظيفية
long count = names.stream()
    .filter(n -> n.length() > 2)
    .count();

List<String> upper = names.stream()
    .map(String::toUpperCase)
    .collect(Collectors.toList());
🚀 Stream API و Lambda من أقوى ميزات Java 8+. تجعل الكود أكثر قراءة وتعبيراً!
٩

🌐 Spring Boot — مقدمة

REST API • Controllers • @GetMapping • @PostMapping • Spring Initializr
🚀 إنشاء مشروع Spring Boot
اذهب إلى start.spring.io، اختر Maven وأضف dependency "Spring Web"، ثم حمّل المشروع وافتحه في IntelliJ.
🎮 أول REST Controller
java
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "مرحباً من Spring Boot! ☕";
    }

    @GetMapping("/student/{id}")
    public Student getStudent(@PathVariable int id) {
        return new Student("أحمد", 22, 3.8);
    }

    @PostMapping("/student")
    public String addStudent(@RequestBody Student student) {
        return "تمت إضافة: " + student.getName();
    }
}
💡 نصيحة: شغّل التطبيق وافتح المتصفح على localhost:8080/api/hello — ستشوف ردّ JSON فوري!
📦 لتثبيت Spring Boot: استخدم start.spring.io أو أضف في pom.xml: spring-boot-starter-web
ToolBox Arabia — Java Course • جميع الحقوق محفوظة ©2025

🛠️ مشاريع تطبيقية

بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع

مبتدئ

🧮 آلة حاسبة متقدمة

بناء آلة حاسبة تدعم العمليات الأساسية مع واجهة Scanner تفاعلية

methodsswitchScanner
مبتدئ

🎮 لعبة تخمين الرقم

لعبة يخمن فيها المستخدم رقماً سرياً مع نظام نقاط وحياة

Randomloopsconditions
متوسط

📋 نظام إدارة الطلاب

تطبيق CRUD كامل لإدارة الطلاب مع حفظ البيانات في ملف JSON

OOPArrayListFiles
متوسط

🏦 نظام حساب بنكي

محاكاة نظام بنكي بالإيداع والسحب والتحويل مع OOP كامل

InheritanceHashMapExceptions
متوسط

📚 مكتبة كتب CLI

إدارة مكتبة كتب مع البحث والفلترة باستخدام Stream API

StreamLambdaGenerics
متقدم

🌐 REST API مع Spring Boot

بناء API كامل لإدارة المهام مع CRUD endpoints وتخزين في H2

Spring BootJPAREST
متقدم

💬 تطبيق Chat متعدد المستخدمين

تطبيق دردشة يستخدم Sockets وThreads لتعدد المستخدمين

SocketsThreadsIO
متقدم

🗄️ نظام JDBC مع MySQL

تطبيق متجر إلكتروني يتصل بقاعدة بيانات MySQL وينفذ CRUD

JDBCMySQLDAO Pattern
ToolBox Arabia — Java Course • toolboxarabia.com

🎯 بعد إنهاء الكورس — ماذا تستطيع فعله؟

Java تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك

🌐

تطوير الويب — Backend

بناء خوادم وAPIs مع Spring Boot وHibernate

📱

تطوير Android

بناء تطبيقات Android مع Kotlin أو Java

🤖

الذكاء الاصطناعي

استخدام مكتبات مثل DL4J لبناء نماذج ML

🏢

Enterprise Applications

تطبيقات المؤسسات الكبرى مع Java EE وMicroservices

🎮

تطوير الألعاب

بناء ألعاب 2D باستخدام LibGDX أو Minecraft Mods

☁️

Cloud & DevOps

نشر التطبيقات على AWS أو Azure مع Docker

💬 محتاج شرح؟ واتساب
⚡ ToolBox Arabia — تعلّم البرمجة بالعربي

تعلّم C++ من الصفر
حتى الاحتراف

كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات قوية باستخدام C++ — لغة البرمجة الأسرع والأقوى في العالم

٨
وحدات تعليمية
٥٠+
مثال برمجي
١٢
مشروع تطبيقي
٠
خبرة مطلوبة

💡 ماذا ستتعلم؟

بعد إنهاء هذا الكورس ستكون قادراً على بناء تطبيقات سطح مكتب، ألعاب، وأنظمة عالية الأداء

🧱

أساسيات C++

فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر

🔧

الدوال والمعامل

كتابة دوال احترافية، تمرير القيم بالمرجع، والـ overloading

📦

البرمجة الكائنية OOP

فهم الكلاسات، الوراثة، التعددية الشكلية، والتغليف

🧠

المؤشرات والذاكرة

إدارة الذاكرة يدوياً، المؤشرات الذكية، والـ stack vs heap

📚

مكتبة STL

استخدام vector، map، set، وخوارزميات STL الجاهزة

C++ الحديث (C++17/20)

auto، lambdas، range-for، structured bindings، وأكثر

🔀

القوالب Templates

كتابة كود عام وقابل لإعادة الاستخدام باستخدام Templates

💾

التعامل مع الملفات

قراءة وكتابة الملفات، معالجة الأخطاء، والـ streams

ToolBox Arabia — C++ Course • toolboxarabia.com

📋 محتويات الكورس

📚 الدروس التفصيلية

اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود

١

🚀 البداية مع C++

التثبيت • أول برنامج • Compiler • cin / cout
🔧 كيف تشغّل C++؟
C++ تحتاج إلى compiler لتحويل الكود إلى ملف تنفيذي. يمكنك استخدام g++ على Linux/Mac أو MinGW على Windows، أو بيئة مثل Visual Studio Code أو CLion.
💡 نصيحة: للمبتدئين، استخدم OnlineGDB.com — محرر C++ أونلاين مجاني لا يحتاج أي تثبيت!
👋 أول برنامج — Hello World
كل رحلة تبدأ بخطوة. برنامجك الأول هو طباعة رسالة في الـ Console:
c++
#include <iostream>
using namespace std;

int main() {
    // أول برنامج C++ الخاص بك
    cout << "مرحباً بك في عالم C++! 🟢" << endl;
    cout << "ToolBox Arabia - نتعلم معاً" << endl;

    // طلب اسم المستخدم
    string name;
    cout << "ما اسمك؟ ";
    cin >> name;
    cout << "أهلاً " << name << "! يلا نبدأ البرمجة 🚀" << endl;

    return 0;
}
مرحباً بك في عالم C++! 🟢 ToolBox Arabia - نتعلم معاً ما اسمك؟ محمد أهلاً محمد! يلا نبدأ البرمجة 🚀
📌 cout تطبع على الشاشة، cin تقرأ إدخال المستخدم. #include <iostream> تجلب مكتبة الإدخال/الإخراج.
💬 التعليقات والتجميع
c++
// هذا تعليق من سطر واحد

/* هذا تعليق
   من عدة أسطر
   يُستخدم لشرح الكود */

// تجميع وتشغيل من Terminal:
// g++ -o hello hello.cpp
// ./hello
٢

📦 المتغيرات وأنواع البيانات

int • float • double • char • string • bool • const • auto
📝 تعريف المتغيرات
c++
#include <iostream>
#include <string>
using namespace std;

int main() {
    // الأنواع الأساسية
    int    age    = 25;          // عدد صحيح
    double price  = 19.99;      // عدد عشري
    char   grade  = 'A';       // حرف واحد
    string name   = "أحمد";    // نص
    bool   active = true;      // منطقي

    // const - ثابت لا يتغير
    const double PI = 3.14159;

    // auto - الكومبايلر يحدد النوع
    auto x = 42;        // int
    auto y = 3.14;      // double
    auto s = string("hello"); // string

    cout << "الاسم: " << name << ", العمر: " << age << endl;
    return 0;
}
🔤 التعامل مع النصوص (string)
c++
string first = "ToolBox";
string last  = " Arabia";

// دمج النصوص
string full = first + last;
cout << full << endl; // ToolBox Arabia

// دوال النصوص المفيدة
cout << full.length() << endl;      // 14 - الطول
cout << full.substr(0, 7) << endl;  // ToolBox
cout << full.find("Arabia") << endl; // 8 - موضع الكلمة
cout << (full.empty() ? "فارغ" : "غير فارغ") << endl;
🔢 العمليات الحسابية
c++
#include <cmath>

int a = 10, b = 3;

cout << a + b << endl;   // 13 - جمع
cout << a - b << endl;   // 7  - طرح
cout << a * b << endl;   // 30 - ضرب
cout << a / b << endl;   // 3  - قسمة صحيحة
cout << a % b << endl;   // 1  - باقي القسمة

// مكتبة cmath
cout << pow(2, 10) << endl;    // 1024
cout << sqrt(144) << endl;    // 12
cout << abs(-15) << endl;     // 15
cout << round(3.7) << endl;   // 4
🔥 نصيحة: استخدم double للقسمة الحقيقية: 10.0 / 3 = 3.333، بينما 10 / 3 = 3 فقط!
٣

🔀 التحكم في التدفق

if / else • ternary • for • while • do-while • switch
🔍 الشروط — if / else
c++
int score = 85;

if (score >= 90) {
    cout << "ممتاز 🌟" << endl;
} else if (score >= 75) {
    cout << "جيد جداً ✅" << endl;
} else if (score >= 60) {
    cout << "جيد 👍" << endl;
} else {
    cout << "تحتاج للمذاكرة أكثر 📚" << endl;
}

// Ternary operator
string result = (score >= 60) ? "ناجح" : "راسب";
cout << result << endl;
جيد جداً ✅ ناجح
🔄 حلقة for
c++
// حلقة عادية
for (int i = 1; i <= 5; i++) {
    cout << "الرقم: " << i << endl;
}

// Range-based for (C++11) — المرور على مصفوفة
vector<string> langs = {"C++", "Python", "Java"};
for (const auto& lang : langs) {
    cout << "لغة: " << lang << endl;
}
🔁 حلقة while و switch
c++
int count = 0;
while (count < 5) {
    cout << "العدد: " << count << endl;
    count++;
}

// switch - للمقارنة المتعددة
int day = 5;
switch (day) {
    case 6:
    case 7:
        cout << "عطلة نهاية الأسبوع 🎉" << endl;
        break;
    default:
        cout << "يوم عمل 💼" << endl;
}
٤

🔧 الدوال والـ Overloading

function • overloading • default params • pass by reference • lambda
📌 تعريف الدوال
c++
#include <iostream>
using namespace std;

// دالة عادية
string greet(string name) {
    return "أهلاً " + name + "! 👋";
}

// قيم افتراضية للمعاملات
double power(double base, int exp = 2) {
    double result = 1;
    for (int i = 0; i < exp; i++) result *= base;
    return result;
}

int main() {
    cout << greet("أحمد") << endl;  // أهلاً أحمد! 👋
    cout << power(5)    << endl;  // 25 (5²)
    cout << power(2, 8) << endl;  // 256
    return 0;
}
⚡ تمرير بالمرجع (Pass by Reference)
c++
// بالقيمة — نسخة، الأصل لا يتغير
void addOne_value(int x) { x++; }

// بالمرجع — تعديل مباشر على الأصل
void addOne_ref(int& x) { x++; }

int main() {
    int a = 5;
    addOne_value(a);
    cout << a << endl; // 5 - لم يتغير

    addOne_ref(a);
    cout << a << endl; // 6 - تغيّر!
    return 0;
}
🔁 Function Overloading و Lambda
c++
// نفس اسم الدالة، معاملات مختلفة
int    add(int a, int b)       { return a + b; }
double add(double a, double b) { return a + b; }
string add(string a, string b) { return a + b; }

// Lambda - دالة مجهولة الاسم (C++11)
auto square = [](int x) { return x * x; };
cout << square(7) << endl; // 49
🔥 نصيحة: استخدم & دائماً عند تمرير الـ string والـ vector للدوال لتفادي النسخ غير الضرورية!
٥

📚 المصفوفات وSTL

array • vector • map • set • algorithm
📋 المصفوفات التقليدية و vector
c++
#include <vector>
#include <algorithm>
using namespace std;

// مصفوفة ثابتة
int nums[5] = {10, 20, 30, 40, 50};
cout << nums[2] << endl; // 30

// vector - مصفوفة ديناميكية
vector<int> scores = {85, 92, 78, 95};

scores.push_back(88);   // إضافة للنهاية
scores.pop_back();      // حذف من النهاية

cout << scores.size() << endl;  // 4
cout << scores.front() << endl; // 85
cout << scores.back() << endl;  // 95

// ترتيب
sort(scores.begin(), scores.end());
for (auto s : scores) cout << s << " "; // 78 85 92 95
🗺️ map و set
c++
#include <map>
#include <set>

// map - قاموس مفتاح/قيمة
map<string, int> ages;
ages["أحمد"]   = 25;
ages["محمد"]   = 30;
ages["سارة"]   = 22;

cout << ages["أحمد"] << endl; // 25

for (auto& [key, val] : ages) {
    cout << key << ": " << val << endl;
}

// set - مجموعة لا تكرار فيها
set<int> unique = {3, 1, 4, 1, 5, 9, 2, 6};
for (auto n : unique) cout << n << " "; // 1 2 3 4 5 6 9
📦 STL (Standard Template Library) مكتبة ضخمة تأتي مع C++ وتوفر هياكل بيانات وخوارزميات جاهزة للاستخدام الفوري!
٦

🏗️ OOP — الكلاسات والوراثة

class • constructor • inheritance • polymorphism • encapsulation
📦 تعريف الكلاس
c++
#include <iostream>
using namespace std;

class Animal {
private:
    string name;
    string sound;

public:
    // Constructor
    Animal(string n, string s) : name(n), sound(s) {}

    // Getter
    string getName() const { return name; }

    // Virtual - يسمح بالتعددية الشكلية
    virtual void speak() {
        cout << name << " يقول: " << sound << endl;
    }
};

// الوراثة
class Dog : public Animal {
public:
    Dog(string n) : Animal(n, "هاو هاو") {}

    void fetch() { cout << "🎾 أحضرت الكرة!" << endl; }
};

int main() {
    Dog rex("ريكس");
    rex.speak();  // ريكس يقول: هاو هاو
    rex.fetch();  // 🎾 أحضرت الكرة!
    return 0;
}
🔄 Operator Overloading
c++
class Point {
public:
    int x, y;
    Point(int x, int y) : x(x), y(y) {}

    // تعريف عملية الجمع
    Point operator+(const Point& other) const {
        return Point(x + other.x, y + other.y);
    }
};

Point p1(2, 3), p2(4, 5);
Point p3 = p1 + p2; // x=6, y=8
🔥 نصيحة: استخدم private دائماً للمتغيرات الداخلية وpublic للدوال فقط — هذا هو مبدأ التغليف (Encapsulation)!
٧

🧠 المؤشرات وإدارة الذاكرة

pointers • references • new/delete • smart pointers • stack vs heap
📍 المؤشرات (Pointers)
c++
int x = 42;
int* ptr = &x; // ptr يحتفظ بعنوان x

cout << x      << endl; // 42 - القيمة
cout << &x     << endl; // 0x... - العنوان في الذاكرة
cout << ptr    << endl; // 0x... - نفس العنوان
cout << *ptr   << endl; // 42 - القيمة عبر المؤشر

// تغيير القيمة عبر المؤشر
*ptr = 100;
cout << x << endl; // 100
💾 الحجز الديناميكي new/delete
c++
// حجز ذاكرة يدوي
int* arr = new int[5]{1,2,3,4,5};
delete[] arr; // مهم جداً! تحرير الذاكرة

// المؤشرات الذكية (C++11) - الأفضل!
#include <memory>

auto ptr1 = make_unique<int>(42);
auto ptr2 = make_shared<string>("مرحبا");

cout << *ptr1 << endl; // 42
cout << *ptr2 << endl; // مرحبا
// لا داعي للـ delete - تحرير تلقائي!
⚠️ في C++ الحديث، استخدم دائماً unique_ptr وshared_ptr بدلاً من المؤشرات الخام لتفادي memory leaks!
٨

🚀 C++ الحديث والقوالب

Templates • auto • lambdas • structured bindings • File I/O
📐 القوالب (Templates)
c++
// دالة عامة تعمل مع أي نوع
template<typename T>
T maxVal(T a, T b) {
    return (a > b) ? a : b;
}

cout << maxVal(3, 7) << endl;           // 7
cout << maxVal(3.14, 2.71) << endl;    // 3.14
cout << maxVal(string("b"),string("a")) << endl; // b

// كلاس عام
template<typename T>
class Stack {
    vector<T> data;
public:
    void push(T val) { data.push_back(val); }
    T    top()      { return data.back(); }
    void pop()      { data.pop_back(); }
};
💾 التعامل مع الملفات
c++
#include <fstream>
#include <sstream>

// الكتابة في ملف
ofstream outFile("data.txt");
outFile << "ToolBox Arabia\n";
outFile << "كورس C++\n";
outFile.close();

// القراءة من ملف
ifstream inFile("data.txt");
string line;
while (getline(inFile, line)) {
    cout << line << endl;
}
inFile.close();
📦 تذكر: auto و range-for و lambdas هي من أهم ميزات C++11/14/17 التي تجعل الكود أسرع في الكتابة وأسهل في القراءة!
ToolBox Arabia — C++ Course • جميع الحقوق محفوظة ©2025

🛠️ مشاريع تطبيقية

بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع

مبتدئ

🧮 آلة حاسبة بالـ Console

بناء آلة حاسبة تفاعلية تدعم العمليات الأربع مع معالجة الأخطاء

cin/coutswitchfunctions
مبتدئ

🎲 لعبة تخمين الرقم

لعبة تخمين رقم عشوائي مع عداد المحاولات ونظام تلميحات

rand()loopsconditions
متوسط

📋 نظام إدارة قائمة مهام

تطبيق To-Do List يحفظ البيانات في ملف ويدعم الإضافة والحذف

file I/OvectorOOP
متوسط

📚 نظام إدارة مكتبة

برنامج لإدارة الكتب والبحث فيها مع حفظ البيانات واسترجاعها

classesmapfstream
متوسط

🔢 محلل تعبيرات رياضية

برنامج يقرأ تعبيراً رياضياً كنص ويحسبه بشكل صحيح

stackstringalgorithm
متقدم

🎮 لعبة Snake بالـ Terminal

لعبة Snake كلاسيكية تعمل في الـ Console مع نظام نقاط ومستويات

OOP2D arrayncurses
متقدم

🌐 HTTP Server بسيط

سيرفر HTTP خفيف يستقبل الطلبات ويرد بملفات HTML ثابتة

socketsthreadsnetworking
متقدم

🏎️ محاكي مسار سباق

محاكاة فيزيائية بسيطة لسيارة على مسار مع حساب السرعة والمسافة

OOPphysicstemplates
ToolBox Arabia — C++ Course • toolboxarabia.com

🎯 بعد إنهاء الكورس — ماذا تستطيع فعله؟

C++ تفتح لك أبواباً في أقوى مجالات البرمجة — اختر المسار الذي يناسبك

🎮

تطوير الألعاب

بناء ألعاب احترافية باستخدام Unreal Engine أو SFML

🤖

الروبوتيات وROS

برمجة الروبوتات والأنظمة المدمجة باستخدام ROS و Arduino

🧠

الذكاء الاصطناعي

بناء نماذج ML عالية الأداء مع TensorFlow C++ API

💻

أنظمة التشغيل

المساهمة في برمجة kernels وأنظمة التشغيل والـ drivers

📈

الأنظمة المالية

برمجة أنظمة التداول عالية التردد HFT التي تتطلب سرعة قصوى

🔐

الأمن السيبراني

كتابة أدوات اختبار الاختراق وتحليل الثغرات بالـ Assembly وC++

مولّد فيديو الموقع

اكتب وصفاً واحصل على فيديو ترويجي احترافي عن موقعك بالذكاء الاصطناعي — مع صوت عربي

1 الإعدادات
2 التوليد
3 الفيديو
🎬 نوع الفيديو
⏱️ مدة الفيديو
✍️ معلومات إضافية (اختياري)
0/300
🔊 الصوت
⚠️ حدث خطأ. تحقق من الإنترنت وحاول مرة ثانية.
💡 الفيديو يُولَّد في المتصفح — مع تعليق صوتي عربي عند التشغيل

جاري إنشاء الفيديو...

الذكاء الاصطناعي يكتب السكريبت ويصمم المشاهد

🤖 تحليل محتوى الموقع
✍️ كتابة السكريبت العربي
🎨 تصميم المشاهد والألوان
🎬 تجميع الفيديو النهائي
🎬 الفيديو جاهز!
المدة
المشاهد
1080p
الجودة

أداة

💡 اقترح أداة جديدة

سيتم إرسال اقتراحك مباشرة عبر واتساب