1.3 · أساسيات WLangage (المتغيرات، الشروط، الحلقات)

المستوى 1 · المبتدئ: التطبيق الأول

1.3أساسيات WLangage (المتغيرات، الشروط، الحلقات)

الهدف: إتقان لبنات WLangage الأساسية — متغيرات ذات أنواع، معاملات، شروط، حلقات — وانعكاسات القراءة الواضحة.
الوقت المقدّر: 12 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • لكل متغير نوع: صحيح، حقيقي، نقدي، سلسلة نصية، منطقي، تاريخ… والنوع الصحيح يجنّب حسابات ومقارنات خاطئة.
  • الشرط SI…ALORS…SINON…FIN ينفّذ كتلة وفق اختبار: وهو لبنة كل منطق مهني.
  • الحلقتان POUR وTANTQUE تكرّران معالجة (بعدد معلوم أو غير معلوم)؛ والتسمية والإزاحة والتعليق تجعل الكود قابلًا للصيانة.

حالة مصغّرة متسلسلة — ياسين يكتب أول قاعدة خصم له

لدى ياسين الآن تحليل (1.1) ونافذة (1.2). يريد تطبيق أول قاعدة مهنية: منح خصم 5% للطلبات التي تتجاوز عشرة مقالات، ومنع التأكيد إذا كان على العميل مستحقات. يعلن متغيرات ذات أنواع: MontantHT نقديًا، وRemise حقيقيًا، وNbArticles صحيحًا. يكتب شرطًا SI…ALORS…SINON: إذا كان رصيد العميل موجبًا (مستحقات) يمنع؛ وإلا يختبر عدد المقالات. ويضيف حلقة POUR لتجميع مبلغ سطور المقالات. يسمّي متغيراته بوضوح (لا x أو tmp)، ويُزيح كتله، ويعلّق على سبب الخصم. الكود يُقرأ كجملة. يستخلص ياسين: المتغيرات ذات الأنواع والشروط والحلقات هي لبنات كل منطق — والقراءة الواضحة تصنع الفرق.

حالة مستقلة لهذا القسم: تعود في الدرس والمخطّط والسكربت وتحدّي 48 ساعة للقسم 1.3.

1. المتغيرات والأنواع

WLangage هو لغة WinDev. أساسياته كأساسيات أي لغة، بصياغة بسيطة بالفرنسية عن قصد. المتغيرات مواضع مسمّاة تخزّن قيمة؛ نعلنها بـنوعها: صحيح، حقيقي، نقدي، سلسلة نصية، منطقي، تاريخ، وقت، مدة.

مثال: MonTotal est un monétaire. ويبقى اختيار النوع مهمًا: مبلغ بنقدي، وعدّاد بصحيح، ونص بسلسلة نصية — لا كل شيء سلسلة، وإلا فسدت الحسابات.

2. المعاملات والشروط

المعاملات حسابية (+, -, *, /)، ومقارنة (=, <, >, <=, >=, <>)، ومنطقية (ET، OU، PAS). والتعليقات (// في بداية السطر) تشرح سبب معالجة ما.

الشرط SI … ALORS … SINON … FIN ينفّذ كتلة أو أخرى حسب صحة اختبار. وهو لبنة كل منطق مهني: إذا كان الرصيد سالبًا، طبّق خصمًا، إلخ. والتفرّع المتعدد SELON يعالج حالات عدة للقيمة نفسها.

3. الحلقات والقراءة الواضحة

الحلقات تكرّر معالجة: POUR (عدد تكرارات معلوم، مع عدّاد)، وTANTQUE (ما دام شرط صحيحًا)، وBOUCLE (مع خروج صريح).

مبدآن للجودة منذ البداية: تسمية المتغيرات بوضوح (Total، NombreArticles — لا x، y، tmp)، وإزاحة الكود لإظهار البنية. وانعكاس ثمين: المفتاح F1 الذي يفتح مساعدة WLangage بأمثلة، بالفرنسية.

خطأ شائع في الفهم: «WLangage بالفرنسية، إذًا الصرامة اختيارية». لا. الصياغة البسيطة لا تعفي من تحديد النوع بشكل صحيح (كل شيء سلسلة يجعل الحسابات خاطئة)، ولا من تسمية المتغيرات وإزاحة الكتل. وخطأ آخر: تكديس SI داخل SI حتى تصبح القراءة مستحيلة. يسمّي ياسين بوضوح، ويُزيح، ويعلّق على السبب، ويختار النوع الصحيح لكل متغير.
تنفيذ معالجة متغيرات ذات أنواع، وشرط يختار، وحلقة تكرّر. متغيرات ذات أنواع نقدي،سلسلة، منطقي…الشرط SI…ALORS…SINON اختياركتلة وفق اختبارحلقات POUR / TANTQUE تكرارمعالجة
متغيرات ذات أنواع، وشرط يختار، وحلقة تكرّر.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بمدينة وهران، يريد كتابة أول قاعدة مهنية له: خصم 5% فوق عشرة مقالات، وتأكيد ممنوع إذا كان على العميل مستحقات. 2) يعلن متغيرات ذات أنواع (MontantHT نقديًا، Remise حقيقيًا، NbArticles صحيحًا)، ويكتب شرطًا SI Client.Solde > 0 ALORS … SINON … FIN وحلقة POUR لتجميع السطور. 3) يسمّي متغيراته بوضوح، ويُزيح كتله، ويعلّق على سبب الخصم. الدرس: المتغيرات ذات الأنواع والشروط والحلقات هي لبنات كل منطق — مع القراءة الواضحة كشرط.

🔎 مثال ملموس — 🔎 مثال ملموس — خصم ياسين

أول قاعدة مهنية في التطبيق، بـWLangage:

// Remise fidélité — Yacine, négoce de matériel électrique
MontantHT est un monétaire = 0
Remise    est un réel      = 0

SI Client.Solde > 0 ALORS
	Info("Impayés : validation de la commande bloquée.")
SINON
	// 5 % de remise au-delà de 10 articles
	SI Commande.NbArticles > 10 ALORS
		Remise = 5
	FIN
FIN

POUR i = 1 À Commande.NbArticles
	MontantHT += LigneCommande[i].PrixHT * LigneCommande[i].Quantite
FIN

القراءة: متغيرات ذات أنواع، وشرط يمنع عند المستحقات، وثانٍ يقرر الخصم، وحلقة تجمع المبلغ.

الانعكاس: أسماء واضحة، وإزاحة الكتل، وتعليق على السبب — الكود يُقرأ كجملة.

مفردات القسم

المتغير والنوع
موضع مسمّى يخزّن قيمة، يُعلَن بنوعه: صحيح، حقيقي، نقدي، سلسلة نصية، منطقي، تاريخ، وقت، مدة.

مثال بسيط: يعلن ياسين MontantHT est un monétaire وNbArticles est un entier.

ما ليس كذلك: تخزين مبلغ في سلسلة نصية ثم محاولة جمعه.

رد فعل: بيان → نوع مناسب.

المعاملات
حسابية (+, -, *, /)، ومقارنة (=, <, >, <=, >=, <>) ومنطقية (ET, OU, PAS)، بالفرنسية.

مثال بسيط: يختبر ياسين Commande.NbArticles > 10 ET Client.Solde = 0.

ما ليس كذلك: مقارنة سلسلتين نصيتين لجمع مبالغ.

رد فعل: اختبار → المعامل الصحيح.

الشرط SI…ALORS…SINON
بنية تنفّذ كتلة أو أخرى حسب صحة اختبار؛ لبنة أساس كل منطق مهني.

مثال بسيط: إذا كان على العميل مستحقات، يمنع ياسين التأكيد.

ما ليس كذلك: تسلسل شروط SI متداخلة حتى يصبح الكود غير مقروء.

رد فعل: قرار → شرط SI.

الحلقات (POUR، TANTQUE)
POUR تكرّر عددًا معلومًا من المرات (مع عدّاد)؛ TANTQUE تكرّر ما دام شرط صحيحًا؛ SELON يدير تفرّعًا متعددًا.

مثال بسيط: يجمع ياسين سطور الطلب بحلقة POUR.

ما ليس كذلك: نسخ السطر نفسه عشرين مرة بدل حلقة.

رد فعل: تكرار → حلقة POUR أو TANTQUE.

القراءة الواضحة (أسماء + إزاحة)
تسمية المتغيرات بوضوح، وإزاحة الكتل، والتعليق على السبب: ما يجعل الكود قابلًا للصيانة.

مثال بسيط: يكتب ياسين MontantTotalHT لا m، ويُزيح كل كتلة.

ما ليس كذلك: متغيرات x، tmp1، tmp2 دون أي إزاحة للكتل.

رد فعل: كود مقروء → أسماء واضحة + إزاحة.

في التطبيق — عمليًا — كتابة أول أسطر WLangage

  1. أعلن متغيرات بالنوع الصحيح (مبلغ بنقدي، عدّاد بصحيح، نص بسلسلة نصية، اختبار بمنطقي).
  2. اكتب شرطًا SI…ALORS…SINON…FIN يعبّر عن قاعدة مهنية بسيطة (إذا تجاوز المبلغ عتبة، طبّق خصمًا).
  3. اكتب حلقة POUR لتكرار معالجة عددًا معلومًا من المرات، وحلقة TANTQUE لعدد غير معلوم مسبقًا.
  4. سمِّ متغيراتك بوضوح، وأَزِح الكتل، وعلّق على السبب، واستخدم F1 على كل دالة مجهولة.
تتقن لبنات WLangage الأساسية (متغيرات ذات أنواع، معاملات، شروط، حلقات) وانعكاسات القراءة الواضحة التي تجعل الكود قابلًا للصيانة — وهي ما يطبقه ياسين منذ أول قاعدة خصم له.

سكربت خطوة بخطوة — اكتب قاعدة الخصم كما يفعل ياسين (5 دقائق)

1) أعلن المتغيرات بالنوع الصحيح (MontantHT نقديًا، Remise حقيقيًا، NbArticles صحيحًا). 2) اكتب الشرط SI Client.Solde > 0 ALORS منع SINON اختبار الخصم FIN. 3) أضف الشرط المتداخل SI NbArticles > 10 ALORS Remise = 5 FIN. 4) اجمع المبلغ بحلقة POUR على السطور. 5) سمِّ، وأَزِح، وعلّق، ثم اختبر بدعم F1.

المفاهيم (متغيرات، شروط، حلقات) عالمية: ما يتغير من لغة إلى أخرى هو الصياغة.

نموذج للنسخ واللصق — بنية المعالجة عند ياسين

// 1. Variables typées
Total est un monétaire = 0
Compteur est un entier = 0

// 2. Condition
SI  ALORS
	// action si vrai
SINON
	// action si faux
FIN

// 3. Boucle
POUR i = 1 À 
	// traitement répété
FIN

// Réflexes : noms clairs, blocs indentés, commentaire du POURQUOI

خصم متدرّج

يستبدل ياسين SI البسيط بـSELON: 3% فوق 5 مقالات، و5% فوق 10، و8% فوق 20.

عدد غير معلوم

للتنقل في طلبات عميل ما، يستخدم ياسين حلقة TANTQUE بدل POUR.

رقابة المخزون

قبل تأكيد سطر، يكتب ياسين شرطًا يرفض كمية تتجاوز المخزون المتاح.

التجميع

لحساب المبلغ الإجمالي لطلب، يجمع ياسين السطور بحلقة POUR ومتغير نقدي.

✓ ممارسات جيدة

  • أعلن كل متغير بـالنوع المناسب.
  • سمِّ بوضوح وأَزِح الكتل لأجل القراءة.
  • استخدم F1 على كل دالة مجهولة: المساعدة غنية وبالفرنسية.

✗ أخطاء شائعة

  • تخزين كل شيء في سلسلة نصية: حسابات ومقارنات خاطئة.
  • متغيرات x، tmp1، tmp2 غير مفهومة.
  • تكديس شروط SI متداخلة حتى تصبح غير مقروءة.

النقاط الأساسية

  • WLangage يقوم على أساسيات عالمية، بصياغة بسيطة بالفرنسية.
  • المتغيرات تُعلَن بـنوع: مبلغ بنقدي، عدّاد بصحيح، تاريخ بتاريخ.
  • الشرط SI…ALORS…SINON…FIN والحلقات POUR / TANTQUE / SELON توجّه التنفيذ.
  • انعكاسات الجودة: التسمية، الإزاحة، تعليق السبب، والاستناد إلى F1.

تحدي 48 ساعة — طبّقه غدًا

اكتب بـWLangage، كما يفعل ياسين، قاعدة مهنية صغيرة: متغيرات ذات أنواع، وشرط SI…ALORS…SINON، وحلقة POUR. مثلًا: تطبيق خصم فوق عتبة وجمع مبلغ. اكتب في جملة واحدة لماذا يهم اختيار نوع المتغير.

قائمة الخروج من القسم
  • أعلن متغيرات بالنوع الصحيح في WLangage.
  • أعرف كيف أكتب شرطًا SI…ALORS…SINON…FIN.
  • أعرف كيف أكرّر معالجة بحلقة POUR أو TANTQUE.
تقييم ذاتي 1-5: هل أختار النوع الصحيح لمتغيراتي؟تقييم ذاتي 1-5: هل كودي مسمّى ومُزاح ومعلّق عليه؟

أسئلة شائعة

هل يجب معرفة لغة أخرى قبل تعلّم WLangage؟

لا: WLangage مصمّم ليكون متاحًا للمبتدئين، بكلمات مفتاحية بالفرنسية (SI، ALORS، POUR، TANTQUE)، وصياغة مقروءة، ومساعدة سياقية غنية. إذا كنت تعرف لغة أخرى فستتقدّم أسرع لأن المفاهيم عالمية — لكن ما يجب تعلّمه بالأساس هو فلسفة WinDev: التحليل في المركز، والحقول المرتبطة بالبنود، ودوال HFSQL، والعمل بالأحداث.

كيف نكتب كود WLangage مقروءًا وقابلًا للصيانة؟

بتطبيق قواعد بسيطة لكن ثابتة: التسمية الواضحة (MontantTotalHT لا m)، وإزاحة الكتل، والتعليق على السبب (لا على الماذا)، وتقسيم المعالجات الطويلة إلى إجراءات، وتجنّب التكرار. الكود يُقرأ أكثر بكثير مما يُكتب: الأسماء الواضحة والبنية الظاهرة والتعليقات المفيدة توفّر وقتًا كبيرًا عند التصحيحات المستقبلية.

تحقّق من فهمك

أي بنى أساسية نستخدم في WLangage لتكرار معالجة؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 1أسئلة جديدة وأصعب للتحقق من مكتسباتك