أدوات تقنية عربية — مجانية وسريعة
ToolBox Arabia هي منصة مجانية موجهة للمبرمجين والمستخدمين العرب،
تجمع أكثر الأدوات التقنية استخداماً في مكان واحد — بواجهة عربية سلسة وبدون أي تعقيد.
كل أداة تعمل مباشرة من المتصفح بدون تسجيل وبدون تعقيد.
خصوصيتك وسرعتك هي الأولوية.
اضغط ☆ للمفضلة — ابحث بـ / أو Ctrl+K
تحدث مع ربى — مساعدتك الذكية في أي شيء
أنشئ صور احترافية من وصف نصي
فيديو ترويجي بالذكاء الاصطناعي مع صوت عربي
debug تلقائي بالذكاء الاصطناعي
توليد README.md لمشاريع GitHub بالعربي
تحويل الكود بين اللغات مثل Python ← JS
كورسات عربية شاملة لتعلم لغات البرمجة من الصفر
اختبارات تفاعلية لمراجعة الكورسات وقياس مستواك
إنشاء اختبارات تفاعلية من أسئلتك
بطاقات تعليمية للمراجعة السريعة
تنسيق وضغط ملفات JSON مع كشف الأخطاء
تشفير وفك تشفير النصوص بصيغة Base64
ترميز وفك ترميز الروابط والنصوص الخاصة
توليد MD5 وSHA256 وSHA512 لأي نص
ضغط ملفات CSS وJavaScript لتسريع الموقع
تنسيق وضغط استعلامات SQL
فك تشفير وقراءة محتوى JWT Tokens
بناء جدولة Cron بواجهة بصرية سهلة
توليد UUID v4/v1 وNanoID وHex عشوائي
اختبار التعابير النظامية مع تمييز النتائج
توليد كلمات مرور قوية بخيارات مرنة
تحقق من صحة JSON مقابل Schema
استخراج البيانات من JSON بـ JSONPath
تحويل بين أشهر صيغ البيانات
تحويل بين CSV وJSON بسهولة
تحويل الطول والوزن والحرارة والمساحة
تحويل الأرقام بين العربية والإنجليزية والرومانية
توليد QR code من أي رابط أو نص
مولّد رابط wa.me مع رسالة جاهزة
تحويل التاريخ الهجري والميلادي
ضريبة مبيعات وقيمة قبل/بعد الضريبة
توليد واجهة TypeScript من JSON
تحويل بين HTML وMarkdown
تحويل بين YAML وTOML
كتابة وعرض Markdown مع معاينة مباشرة
عد الكلمات والحروف واحسب وقت القراءة
قارن نصين واعرف الفروقات بوضوح
نص تجريبي عربي للمصممين والمطورين
بناء جداول Markdown بواجهة بصرية
أسماء وإيميلات وأرقام هواتف وهمية للتطوير
إنشاء HTML مع معاينة مباشرة
مقارنة نصين برمجيين وإظهار الفروقات
تحويل الصور بين الصيغ المختلفة وتنزيلها
تحويل الصور إلى ملف PDF جاهز للتنزيل
إنشاء GIF من صور أو نص متحرك وتحويل فيديو
قلل حجم الصورة بدون خسارة واضحة في الجودة
قلل حجم الفيديو مع الحفاظ على جودة مقبولة
اختر ألوانك وحوّلها بين HEX وRGB وHSL
احذف خلفية أي صورة تلقائياً بضغطة واحدة
إضافة علامة مائية نصية على الصور
تغيير أبعاد الصورة بالبكسل
قص الصورة بأبعاد مخصصة
بناء تدرجات لونية بصرياً مع كود جاهز
تصميم ظلال CSS بصرياً
تخصيص زوايا العناصر بصرياً
بناء تخطيطات CSS بصرياً
تأثير الزجاج الشائع مع كود CSS
تأثير البروز الناعم مع كود CSS
بناء animations بدون كتابة كود
توليد لوحات ألوان متناسقة من لون واحد
فحص تباين الألوان لإمكانية الوصول
تجربة Flexbox بصرياً مع كود جاهز
توليد Media Queries للتصميم المتجاوب
اقتراح مجموعات خطوط Google متناسقة
معالجة النصوص العربية واتجاهها
UPPER / lower / Title / camelCase
حذف الحركات من النص العربي
عداد حروف مع حدود تويتر وإنستغرام
اقتراح هاشتاقات عربية وإنجليزية
معرفة معلومات أي IP جغرافياً ومزود الخدمة
فحص سجلات DNS لأي دومين
فحص headers أي موقع ويب
اختبار سرعة الاستجابة
فحص شهادة SSL لأي موقع
فحص SEO meta tags لأي صفحة
توليد ملف robots.txt لمواقع الويب
توليد XML sitemap بسيط
توليد meta tags Open Graph
إنشاء Favicon من صورة
احسب عمرك بالسنوات والشهور والأيام
تقنية بومودورو للتركيز أثناء العمل
حساب الزكاة بناءً على النصاب والحول
حاسبة القرض والفائدة مع جدول سداد كامل
مؤشر كتلة الجسم مع التفسير
معدل التعلم للجامعات العربية بأنظمة مختلفة
حساب النسب والقيم المئوية
حساب الفروقات الزمنية وإضافة الوقت
تحويل Markdown مباشرة إلى PDF
دمج عدة ملفات PDF في ملف واحد
تحويل صفحات PDF إلى صور
تحويل ملفات Excel إلى JSON
فحص قوة كلمة المرور مع نصائح تحسين
توليد كلمات مرور قوية بخيارات مرنة
نهدف إلى توفير أدوات تقنية احترافية لكل مستخدم عربي بغض النظر عن مستواه التقني، بواجهة بسيطة وسهلة الاستخدام.
جميع الأدوات تعمل محلياً داخل المتصفح — لا يُرسل أي بيانات لأي سيرفر خارجي.
نؤمن بأن المحتوى التقني العربي يستحق منصات متخصصة وراقية، ونسعى لأن نكون المرجع الأول.
بدون تسجيل، بدون تعقيد — فقط افتح الموقع واستخدم الأداة فوراً من أي جهاز.
فكرة أداة، سؤال، أو حصة برمجة؟ اختر الطريقة المناسبة — نرد بأسرع وقت ممكن.
🔒 معظم الأدوات تعالج بياناتك على جهازك — لا نحفظ كلمات المرور أو النصوص الحساسة على خوادمنا.
اكتب Markdown على اليسار وشوف النتيجة على اليمين
تقريبي للاستخدام اليومي — للتواريخ الرسمية راجع التقويم المعتمد.
—
—
—
—
قلّل حجم الفيديو — المعالجة محلياً على جهازك بدون رفع للسيرفر
⚠️ الحد الأقصى 500 م.ب — يعمل محلياً بدون تحميل إضافي (يفضّل Chrome أو Edge)
قلل حجم الصورة مع الحفاظ على الجودة
تنسيق وتجميل استعلامات SQL بشكل احترافي
فك تشفير وقراءة محتوى JWT Tokens
بناء جدولة cron بواجهة بصرية سهلة
توليد UUID وسلاسل عشوائية للتطوير
تحويل بين أشهر صيغ البيانات
تحويل بين CSV وJSON بسهولة
تحويل الطول، الوزن، الحرارة، المساحة
نص تجريبي عربي للمصممين والمطورين
اعرف مدى أمان كلمة مرورك مع نصائح التحسين
توليد أسماء وإيميلات وأرقام هواتف وهمية للتطوير
احسب عمرك بدقة أو الفرق بين تاريخين
تقنية بومودورو للتركيز أثناء العمل والدراسة
بناء جداول Markdown بواجهة سهلة
اختار الأداة اللي بدك تشتغل عليها مباشرة
إنشاء وتعديل ملفات GIF مباشرة من المتصفح
🖼️ صور متعددة ← GIF متحرك
🎬 فيديو ← GIF متحرك
يعمل مباشرة من المتصفح بدون رفع — يلتقط إطارات من الفيديو
✂️ تعديل GIF موجود (تغيير حجم / سرعة)
✍️ نص ← GIF متحرك
حوّل أي نص إلى صورة GIF متحركة مع خيارات التخصيص الكاملة
اسأل سؤالك مباشرة — دراسة، مناهج أردنية، واجبات، جامعة، وأدوات الموقع. بدون ما أسألك عن صفك أولاً
📎 يمكنك إرفاق صورة أو PDF أو ملف نصي/كود — أحلل المحتوى وأجيب (مجاني)
صف الصورة اللي تريدها وسيتم إنشاؤها فوراً
ارفع صورة وسيتم حذف الخلفية تلقائياً بالذكاء الاصطناعي
كورسات شاملة باللغة العربية — من الصفر للاحتراف، مع أمثلة تطبيقية وأكواد جاهزة
من المتغيرات والحلقات حتى البرمجة كائنية التوجه، معالجة الملفات، والمشاريع التطبيقية.
أساسيات JS، DOM، الأحداث، Async/Await، وبناء مشاريع ويب تفاعلية حقيقية.
تعلم Java من الصفر، OOP بعمق، Collections, Exceptions، وبناء تطبيقات متكاملة.
من الأساسيات حتى البوينترات، OOP، STL، وإدارة الذاكرة — الطريق لبرمجة الأنظمة.
تعلم PHP من الأساسيات حتى بناء صفحات وتطبيقات ويب ديناميكية وربطها بقواعد البيانات.
تعلم التعامل مع قواعد البيانات، كتابة الاستعلامات، الفلترة، العلاقات، والتحليل العملي للبيانات.
تعلم C# من الصفر، أساسيات اللغة، OOP، وبناء تطبيقات عملية بأسلوب واضح ومنظم.
كلما زاد عدد المشتركين من نفس المجموعة كلما حصلتم على خصم أكبر — مثالي للأصدقاء، العائلة، أو زملاء العمل.
عندك سؤال على كورس معين أو محتاج شرح لأي درس؟
تواصل معنا مباشرة على الواتساب وسنرد عليك في أقرب وقت!
اختبارات تفاعلية لمراجعة الكورسات وقياس مستواك قبل الانتقال للمشاريع والتطبيقات
اختبار شامل لمراجعة مفاهيم كورس Python وقياس فهمك قبل الانتقال للمشاريع والتطبيقات.
اختبار شامل لمراجعة مفاهيم SQL والاستعلامات والعلاقات قبل الانتقال للتطبيقات العملية.
اختبار شامل لمراجعة مفاهيم Java والبرمجة كائنية التوجه والتطبيقات العملية.
كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء مشاريع حقيقية باستخدام Python
بعد إنهاء هذا الكورس ستكون قادراً على بناء مشاريع برمجية كاملة
فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر
كتابة كود منظّم وقابل لإعادة الاستخدام باستخدام الدوال والمكتبات
فهم الكلاسات والكائنات وبناء برامج ضخمة ومنظّمة
قراءة وكتابة ملفات TXT و CSV و JSON
جلب البيانات من الإنترنت والتعامل مع REST APIs
استخدام pandas و matplotlib لتحليل البيانات ورسمها
التعامل مع SQLite وتخزين البيانات باحتراف
أتمتة المهام اليومية مثل إرسال الإيميل وتحريك الماوس والكيبورد
اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود
# أول برنامج بايثون الخاص بك print("مرحباً بك في عالم Python! 🐍") print("ToolBox Arabia - نتعلم معاً") # طلب اسم المستخدم name = input("ما اسمك؟ ") print(f"أهلاً {name}! يلا نبدأ البرمجة 🚀")
print() تطبع أي شيء على الشاشة. الدالة input() تطلب من المستخدم إدخال نص.# هذا تعليق من سطر واحد - لا يُنفَّذ """ هذا تعليق من عدة أسطر يُستخدم لشرح الكود """ print("هذا السطر ينفَّذ فقط")
# أنواع المتغيرات الأساسية 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'>
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("مرحبا", "أهلاً"))
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³)
score = 85 if score >= 90: print("ممتاز 🌟") elif score >= 75: print("جيد جداً ✅") elif score >= 60: print("جيد 👍") else: print("تحتاج للمذاكرة أكثر 📚")
# المرور على قائمة 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}")
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
# تعريف دالة بسيطة def greet(name): print(f"أهلاً {name}! 👋") greet("سارة") # أهلاً سارة! greet("خالد") # أهلاً خالد! # دالة ترجع قيمة def add(a, b): return a + b result = add(10, 5) print(result) # 15
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
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 - عدد العناصر
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}")
# 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]
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")
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() # ميمي يقول: ميياو
# كتابة ملف 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: 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() — يغلق الملف تلقائياً!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")
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")
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بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع
بناء آلة حاسبة تدعم العمليات الأساسية مع واجهة نصية جميلة
لعبة يخمن فيها المستخدم رقماً سرياً مع نظام نقاط وحياة
تطبيق To-Do List يحفظ المهام في ملف JSON مع خيارات إضافة وحذف وعرض
جلب بيانات الطقس لأي مدينة عبر API وعرضها بشكل جميل
قراءة ملف CSV للمبيعات وتحليله ورسم مخططات بيانية احترافية
بناء بوت تيليجرام يرد على الرسائل ويقدم خدمات مفيدة
استخراج البيانات من مواقع الويب وحفظها في قاعدة بيانات SQLite
أتمتة إرسال إيميلات تلقائية وتنظيم الملفات وجدولة المهام
Python تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك
تعلم TensorFlow و PyTorch لبناء نماذج AI
تحليل البيانات الضخمة مع pandas و scikit-learn
بناء مواقع ويب وAPIs مع Flask أو Django
كتابة أدوات اختبار اختراق وتحليل الشبكات
أتمتة عمليات النشر وإدارة الخوادم
بناء ألعاب 2D باستخدام Pygame
كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات ويب تفاعلية حقيقية باستخدام JavaScript
بعد إنهاء هذا الكورس ستكون قادراً على بناء مواقع وتطبيقات ويب تفاعلية كاملة
فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر
كتابة كود منظّم وقابل لإعادة الاستخدام باستخدام الدوال والـ closures
التحكم في عناصر صفحة الويب وتغييرها ديناميكياً
فهم Promises و async/await والتعامل مع APIs
فهم الكلاسات والكائنات وبناء تطبيقات ضخمة ومنظّمة
استخدام npm و Webpack و ES Modules في مشاريع حقيقية
بناء واجهات مستخدم تفاعلية باستخدام مكتبة React الشهيرة
تشغيل JavaScript على الخادم وبناء APIs باستخدام Express
اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود
// أول برنامج JavaScript الخاص بك console.log("مرحباً بك في عالم JavaScript! 🟡"); console.log("ToolBox Arabia - نتعلم معاً"); // طلب اسم المستخدم const name = prompt("ما اسمك؟"); console.log(`أهلاً ${name}! يلا نبدأ البرمجة 🚀`);
console.log() تطبع أي شيء في Console المتصفح. الدالة prompt() تعرض نافذة لإدخال النص.// هذا تعليق من سطر واحد - لا يُنفَّذ /* هذا تعليق من عدة أسطر يُستخدم لشرح الكود */ console.log("هذا السطر ينفَّذ فقط");
<!-- في نهاية body --> <script src="script.js"></script> <!-- أو مباشرة في الصفحة --> <script> console.log("مرحباً من الصفحة!"); </script>
let للمتغيرات القابلة للتغيير، وconst للثوابت.// أنواع المتغيرات الأساسية 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"
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
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 فقط عندما تحتاج لتغيير القيمة!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 (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}`); });
let count = 0; while (count < 5) { console.log(`العدد: ${count}`); count++; } // switch - للمقارنة المتعددة const day = "الجمعة"; switch (day) { case "السبت": case "الجمعة": console.log("عطلة نهاية الأسبوع 🎉"); break; default: console.log("يوم عمل 💼"); }
// الطريقة التقليدية 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 - عدد غير محدود من الوسائط 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]
this خاصاً بها — مفيدة جداً داخل الكلاسات والـ callbacks!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
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 };
// اختيار عنصر واحد 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");
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 لضمان تحميل الصفحة أولاً!// باستخدام 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();
// إنشاء 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 — كلاهما يؤديان نفس الغرض!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(); // 🎾 أحضرت الكرة!
// حفظ البيانات في المتصفح 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بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع
بناء آلة حاسبة بواجهة HTML/CSS مع منطق JavaScript كامل
جلب بيانات الطقس من API وعرضها في واجهة جميلة
تطبيق مهام يحفظ البيانات في LocalStorage ويدعم الفلترة
لعبة ذاكرة تفاعلية مع نظام نقاط ومؤقت زمني
البحث عن مستخدمي GitHub وعرض ملفاتهم ومستودعاتهم
واجهة متجر مع عربة تسوق وفلتر للمنتجات وإدارة الحالة
تطبيق دردشة فوري باستخدام Node.js و Socket.io
تطبيق ملاحظات كامل بـ React مع useState وuseEffect
JavaScript تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك
بناء واجهات مستخدم ضخمة باستخدام الفريمووركات الحديثة
بناء سيرفرات وAPIs احترافية بـ Express وFastify
بناء تطبيقات iOS وAndroid بـ React Native
بناء تطبيقات سطح المكتب بـ Electron
دمج نماذج AI في تطبيقاتك باستخدام OpenAI API
بناء ألعاب 2D للمتصفح باستخدام Canvas و Phaser.js
كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات حقيقية باستخدام Java — اللغة الأكثر انتشاراً في المؤسسات
بعد إنهاء هذا الكورس ستكون قادراً على بناء تطبيقات Java كاملة
فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر
التعمّق في الكلاسات، الوراثة، التعددية الشكلية، والـ Interfaces
ArrayList, HashMap, LinkedList, Stack, Queue وكيفية اختيار المناسب
كتابة كود مرن وآمن باستخدام الأنواع العامة ومكتبة Collections
تشغيل مهام متوازية وإدارة الـ Threads لبناء تطبيقات سريعة
قراءة وكتابة الملفات، Streams، والتعامل مع الاستثناءات
الاتصال بـ MySQL وتنفيذ العمليات CRUD باحتراف
بناء REST APIs مع Spring Boot وتهيئة المشاريع الاحترافية
اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود
// أول برنامج 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 + "! يلا نبدأ البرمجة 🚀"); } }
main هي نقطة البداية. لا تنسَ استيراد java.util.Scanner للإدخال!// هذا تعليق من سطر واحد - لا يُنفَّذ /* هذا تعليق من عدة أسطر يُستخدم لشرح الكود */ /** * هذا Javadoc — يوثّق الكلاسات والدوال * @param args مصفوفة المعاملات */ public static void main(String[] args) { System.out.println("هذا السطر ينفَّذ فقط"); }
// الأنواع الأساسية في 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 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
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 (يحذف الكسر)
int / int تعطي int دائماً! لتحصل على نتيجة عشرية حوّل أحد الطرفين إلى double أولاً.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("تحتاج للمذاكرة أكثر 📚"); }
String day = "الجمعة"; switch (day) { case "السبت": case "الأحد": System.out.println("عطلة نهاية الأسبوع 😎"); break; case "الجمعة": System.out.println("يوم العطلة ☀️"); break; default: System.out.println("يوم عمل 💼"); }
// حلقة 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 — يتحقق من الشرط أولاً 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); // ينفّذ مرة حتى لو الشرط خاطئ
void إن لم ترجع شيئاً.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("محمد"); } }
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); // → يستدعي النسخة الثالثة
addInts و addDoubles تكتب add للاثنين!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();
// الكلاس الأب 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 — عقد يجب تنفيذه 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); } }
extends)، لكن يمكن تنفيذ عدة Interfaces (implements)!// مصفوفة ثابتة الحجم 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<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<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()); }
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 دائماً يُنفَّذ"); }
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 — يغلق الملف تلقائياً حتى لو حدث استثناء!// 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);
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());
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-starter-webبعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع
بناء آلة حاسبة تدعم العمليات الأساسية مع واجهة Scanner تفاعلية
لعبة يخمن فيها المستخدم رقماً سرياً مع نظام نقاط وحياة
تطبيق CRUD كامل لإدارة الطلاب مع حفظ البيانات في ملف JSON
محاكاة نظام بنكي بالإيداع والسحب والتحويل مع OOP كامل
إدارة مكتبة كتب مع البحث والفلترة باستخدام Stream API
بناء API كامل لإدارة المهام مع CRUD endpoints وتخزين في H2
تطبيق دردشة يستخدم Sockets وThreads لتعدد المستخدمين
تطبيق متجر إلكتروني يتصل بقاعدة بيانات MySQL وينفذ CRUD
Java تفتح لك أبواباً كثيرة — اختر المسار الذي يناسبك
بناء خوادم وAPIs مع Spring Boot وHibernate
بناء تطبيقات Android مع Kotlin أو Java
استخدام مكتبات مثل DL4J لبناء نماذج ML
تطبيقات المؤسسات الكبرى مع Java EE وMicroservices
بناء ألعاب 2D باستخدام LibGDX أو Minecraft Mods
نشر التطبيقات على AWS أو Azure مع Docker
كورس شامل ومنظّم يأخذك من مفاهيم البرمجة الأساسية إلى بناء تطبيقات قوية باستخدام C++ — لغة البرمجة الأسرع والأقوى في العالم
بعد إنهاء هذا الكورس ستكون قادراً على بناء تطبيقات سطح مكتب، ألعاب، وأنظمة عالية الأداء
فهم المتغيرات، أنواع البيانات، الشروط، والحلقات من الصفر
كتابة دوال احترافية، تمرير القيم بالمرجع، والـ overloading
فهم الكلاسات، الوراثة، التعددية الشكلية، والتغليف
إدارة الذاكرة يدوياً، المؤشرات الذكية، والـ stack vs heap
استخدام vector، map، set، وخوارزميات STL الجاهزة
auto، lambdas، range-for، structured bindings، وأكثر
كتابة كود عام وقابل لإعادة الاستخدام باستخدام Templates
قراءة وكتابة الملفات، معالجة الأخطاء، والـ streams
اضغط على أي وحدة لعرض شرحها الكامل مع أمثلة الكود
#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; }
cout تطبع على الشاشة، cin تقرأ إدخال المستخدم. #include <iostream> تجلب مكتبة الإدخال/الإخراج.// هذا تعليق من سطر واحد /* هذا تعليق من عدة أسطر يُستخدم لشرح الكود */ // تجميع وتشغيل من Terminal: // g++ -o hello hello.cpp // ./hello
#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 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;
#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 فقط!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 (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; }
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; }
#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; }
// بالقيمة — نسخة، الأصل لا يتغير 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; }
// نفس اسم الدالة، معاملات مختلفة 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 للدوال لتفادي النسخ غير الضرورية!#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
#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
#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; }
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)!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
// حجز ذاكرة يدوي 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 - تحرير تلقائي!
unique_ptr وshared_ptr بدلاً من المؤشرات الخام لتفادي memory leaks!// دالة عامة تعمل مع أي نوع 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(); } };
#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 التي تجعل الكود أسرع في الكتابة وأسهل في القراءة!بعد كل وحدة ستبني مشروعاً حقيقياً — هنا قائمة بأبرز المشاريع
بناء آلة حاسبة تفاعلية تدعم العمليات الأربع مع معالجة الأخطاء
لعبة تخمين رقم عشوائي مع عداد المحاولات ونظام تلميحات
تطبيق To-Do List يحفظ البيانات في ملف ويدعم الإضافة والحذف
برنامج لإدارة الكتب والبحث فيها مع حفظ البيانات واسترجاعها
برنامج يقرأ تعبيراً رياضياً كنص ويحسبه بشكل صحيح
لعبة Snake كلاسيكية تعمل في الـ Console مع نظام نقاط ومستويات
سيرفر HTTP خفيف يستقبل الطلبات ويرد بملفات HTML ثابتة
محاكاة فيزيائية بسيطة لسيارة على مسار مع حساب السرعة والمسافة
C++ تفتح لك أبواباً في أقوى مجالات البرمجة — اختر المسار الذي يناسبك
بناء ألعاب احترافية باستخدام Unreal Engine أو SFML
برمجة الروبوتات والأنظمة المدمجة باستخدام ROS و Arduino
بناء نماذج ML عالية الأداء مع TensorFlow C++ API
المساهمة في برمجة kernels وأنظمة التشغيل والـ drivers
برمجة أنظمة التداول عالية التردد HFT التي تتطلب سرعة قصوى
كتابة أدوات اختبار الاختراق وتحليل الثغرات بالـ Assembly وC++
اكتب وصفاً واحصل على فيديو ترويجي احترافي عن موقعك بالذكاء الاصطناعي — مع صوت عربي
جاري إنشاء الفيديو...
الذكاء الاصطناعي يكتب السكريبت ويصمم المشاهد
سيتم إرسال اقتراحك مباشرة عبر واتساب