البرمجة الأساسية مع Pseint (الجزء 3)

هذا هو استمرار للدرس التعليمي البرمجة الأساسية باستخدام Pseint (الجزء الثاني)سأشرح هذه المرة ما هو ضروري للبرنامج.

مهمة

التخصيص هو عملية يتم فيها إنشاء و / أو تعديل متغير ، بالإشارة إليه عن طريق معرفه الذي يمكننا من خلاله الوصول إلى مساحة الذاكرة الخاصة به.

صيغة المهمة هي:

[variable]<- [expresion];
[variable]=[expresion];

حيث [المتغير] هو المتغير الذي يتلقى قيمة تقييم [التعبير]. كلاهما صالح ، لذلك لا يهم أيهما يتم استخدامه (إذا قاموا بتكوين PSeInt بشكل صحيح) ، ولكن في رأيي أقوم بإنشاء أول واحد على أنه الصحيح.

إذا لم يكن [متغير] موجودًا قبل الإسناد ، تم إنشاء [متغير] ، وإذا كان موجودًا ، يتم إتلاف القيمة السابقة ويتم وضع القيمة الجديدة في مكانها. لهذا السبب ، يعتبر رسم الخرائط عملية مدمرة.

قراءة

القراءة هي العملية التي يتم فيها طلب بيانات أو بيانات من المستخدم لتخزين البيانات المذكورة في متغير.

تركيبها هو:

Leer variable_1,variable_2,...,variable_n;

حيث [متغير_ {1,2،XNUMX ، ن}] هو المتغير أو المتغيرات التي تتلقى القيمة التي يقدمها المستخدم ، في حالة طلب أكثر من متغير واحد ، سيطلب أولاً المتغير الأول ، ثم الثاني وهكذا حتى تلقت كل القيم.

هذه أيضًا وظيفة مدمرة.

جاري الكتابة

الكتابة هي العملية التي تتم فيها كتابة سلسلة من الأحرف و / أو متغير واحد أو أكثر على الشاشة

الصيغة هي:

Escribir expresion_1,expresion_2,...,expresion_n;

حيث [expersion_ {1,2،XNUMX، n}] هي سلاسل الأحرف و / أو المتغيرات التي سيتم عرضها.

الكتابة بالإضافة إلى استلام البيانات المراد وضعها على الشاشة تتلقى أيضًا التعليمات "بدون تخطي" أو "بدون النزول" التي تتجنب قفزة السطر.

الكتابة لا تضيف مسافات بين المتغيرات ، أي إذا تم وضعها:

Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,b;
FinProceso

في هذه الحالة ، ستظهر "olamundo" حيث لا توجد سلسلة من الأحرف بين "a" و "b" تشير إلى المسافة بين a و b ، بحيث يتم عرضها بشكل صحيح تتم كتابتها على النحو التالي:

Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,"",b;
FinProceso

في هذه الحالة أضف »» وهي سلسلة أحرف بها مسافة هي المسافة بين «الموجة» و «العالم» وبعد ذلك ستظهر «عالم الموجة» مع الفراغ.

اذا ثم

هذه جملة تقيم حالة معينة وتتحقق من صحة و / أو زيف الشرط المذكور ، أي إذا تم استيفاء الشرط أم لا.

تركيبها هو:

Si [condición a evaluar] Entonces
[instrucciones por verdadero] Sino
[instrucciones por falso] FinSi

شرط "آخر" ليس إلزاميًا ، في هذه الحالة إذا كان الشرط خاطئًا تجاهل التعليمات واستمر كما لو كانت الجملة غير موجودة ، في هذه الحالة تبقى:

Si [condición a evaluar] Entonces
[instrucciones por verdadero] FinSi

يعتمد وضع عبارة "الفشل" أم لا على احتياجات هذا البرنامج.

سيجون

الجملة التي تقيّم متغيرًا رقميًا صارمًا يعطي أكثر من خيارين كخيار ، وهذا هو الاختلاف عن "If-Then" لأن السابق لا يمكنه سوى تقديم خيارين.

الصيغة هي:

Segun [variable numérica] Hacer
[número1]: [instrucciones] [número2],[número3]: [instrucciones] [...] De Otro Modo: [instrucciones] FinSegun

كما ترى بعد "number1" يوجد ":" وبعد ذلك يتم وضع التعليمات التي سيتم تنفيذها في حالة "numerical variable = number1" ، في المثال الثاني يكون "number2 ، number3" هذا يعني أنه إذا " المتغير الرقمي = number2 أو number3 "ثم سيتم تنفيذ" التعليمات "، وهذا مفيد عندما يجب أن ينفذ احتمالان نفس التعليمات.

هناك أيضًا عبارة "بطريقة أخرى" التي يتم تنفيذها في حالة عدم استيفاء أي من الاحتمالات.

في حين

إنها وظيفة متكررة تقوم أولاً بتقييم شرط ما ، ثم إذا تم الوفاء بها فإنها تنفذ سلسلة من التعليمات ، ثم تعيد تقييم الشرط وإذا كان صحيحًا فإنها تنفذ نفس التعليمات مرة أخرى وتستمر على هذا النحو حتى يصبح الشرط خاطئًا.

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

تركيبها هو:

Mientras [condición a evaluar] Hacer
[instrucciones] FinMientras

كرر حتى

هذه وظيفة شبيهة جدًا بالوظيفة السابقة ، ولكن على عكس الوظيفة السابقة ، يتحقق هذا الشرط في النهاية ، أي أنه سيتم تنفيذ الأمر مرة واحدة على الأقل ، أيضًا بدلاً من تنفيذ التعليمات عندما تكون صحيحة ، يقوم بتنفيذها أثناء إذا لم يتم استيفاء الشرط ، ولكن إذا كنت تريد أن يتم تنفيذه أثناء استيفاء الشرط ، فاستخدم "while" بدلاً من "until".

تركيبها هو:

Repetir
[Instrucciones] hasta que [condicion]

FOR

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

Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones] FinPara

"المتغير" هو المتغير الذي يتلقى "القيمة الأولية" وينفذ التعليمات ثم يضيف "متغير" زائد "خطوة" وينفذ التعليمات مرة أخرى حتى يساوي "المتغير" "القيمة النهائية".

إذا تمت إزالة "مع [الخطوة]" ، فستعرف افتراضيًا أن "الخطوة" تساوي 1 ، وأيضًا إذا لم يتم تحديد [الخطوة] وكانت "القيمة الأولية" أكبر من "القيمة النهائية" ، فسيتم عرضها بترتيب عكسي ، أي ، "الخطوة" هي -1

العملية الفرعية / الوظيفة

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

SubProceso [variable_de_retorno]<- [nombre de la funcion] ([arg_1],[arg_2],...,[arg_n])

acción 1;
acción 2;
.
.
.
acción n;
FinSubproceso

حيث "متغير الإرجاع" هو المتغير الذي يحتوي على القيمة التي يتم إرجاعها بواسطة دالة "اسم الوظيفة" التي استقبلت المعلمات "arg_1، arg_2، arg_n" لتنفيذ هذا

أخرى

هذه وظائف مكملة فقط للآخرين وليس لها بناء جملة معقد لأنها وظائف تكميلية فقط.

شاشة واضحة

تعمل هذه الوظيفة على مسح شاشة أي كائن في المترجم الفوري

مفتاح الانتظار

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

توقع x {ثانيًا ، مللي ثانية}

تنتظر هذه الوظيفة وقتًا بالثواني أو بالمللي ثانية لمتابعة البرنامج

ملاحظة: آسف على التأخير ولكني كنت مشغولاً بأمور أخرى لذا لم أستطع الكتابة


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

10 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   جيلي قال

    ليس لديك وظائف لالتقاط المفاتيح دون إيقاف التنفيذ؟ للقيام بشيء بالحركة يكون أكثر جاذبية للأطفال في سن 9 سنوات ، على الرغم من أن لعبة الجلاد يمكن أن تكون ممتعة أيضًا في البرمجة.

    معالجة something_digo
    أ <-1 ؛
    الجانبي <-30 ؛
    أسفل <-5 ؛
    بينما أ = 1 افعل
    شاشة واضحة؛
    ج <-1 ؛
    سطر <- "" ؛
    كرر
    سطر <-line + "" ؛
    ج <-c + 1 ؛
    حتى ج = جانبي
    السطر <-line + "X" ؛
    ج <-1 ؛
    كرر
    لأكتب " "؛
    ج <-c + 1 ؛
    حتى c = down-1
    كتابة الخط
    كرر
    لأكتب " "؛
    ج 2 ثم
    أسفل <-down-1 ؛
    النهاية نعم
    "س":
    إذا كان أقل من 15 عامًا
    أسفل 2 ثم
    الوحشي <- الوحشي - 1 ؛
    النهاية نعم
    "د":
    إذا كان الجانبي <50 ثم
    الوحشي <- الوحشي + 1 ؛
    النهاية نعم
    "0":
    أ <-2 ؛
    ثواني النهاية
    أثناء الانتهاء
    إنهاء العملية

  2.   جيلي قال

    حسنًا ، تفشل إذا صعدت ، من الأفضل تغيير السطور 23 و 28
    -23 حتى ج = 15
    +23 حتى c = 18
    y
    -28 إذا لأسفل> 2 ثم
    +28 إذا لأسفل> 3 ثم

    1.    xnmm قال

      شكرا للمساهمة ولكن بها بعض المشاكل مثل أن تفتح جملة في أخرى ولكن يجب أن تنتهي داخل الجملة حيث بدأت ، أعني ، لا يمكن وضعها

      معالجة شيء ما
      أ <- 0 ؛
      اقرء ل؛
      إذا كانت a لا تساوي 25 إذن
      بينما a لا يساوي 0 تفعل
      اقرء ل؛
      النهاية نعم
      تنتهي حين

      كما ترى الحلقة أثناء البدء داخل عبارة "if then" ولكن تنتهي خارجها ، فإن شيئًا كهذا غير ممكن.

      ما زلت أقدر المساهمة
      إنهاء العملية

      1.    جيلي قال

        شكرًا ، لكني أعتقد أنها مشكلة أكبر في وضع الكود هنا ، ولا أعرف كيف أضعه في نوع الكود ويخرج بدون مسافة بادئة.

        البرنامج يعمل بشكل جيد. المتغير "أ" أنا أستخدمه للخروج من الحلقة عندما يكتب المستخدم صفرًا. يمكنك وضع مخرج () أو استراحة ؛ في الشرط ينظر إليه وأنا أحفظ المتغير. هم خيارات.

        تحية.

      2.    جيلي قال

        سأحاول تغيير علامات التبويب للمسافات والتسميات por si funciona algo:

        Proceso algo_digo
        a<-1;
        lateral<-30;
        abajo<-5;
        Mientras a=1 Hacer
        Borrar Pantalla;
        c<-1;
        linea<-"";
        Repetir
        linea<-linea+" ";
        c<-c+1;
        Hasta Que c=lateral
        linea<-linea+"X";
        c<-1;
        Repetir
        Escribir " ";
        c<-c+1;
        Hasta Que c=abajo-1
        Escribir linea;
        Repetir
        Escribir " ";
        c 3 Entonces
        abajo<-abajo-1;
        Fin Si
        "s":
        Si abajo < 15 Entonces
        abajo 2 Entonces
        lateral<-lateral-1;
        Fin Si
        "d":
        Si lateral < 50 Entonces
        lateral<-lateral+1;
        Fin Si
        "0":
        a<-2;
        Fin Segun
        Fin Mientras
        FinProceso

      3.    جيلي قال

        هذا مليء بأخطاء الاستيراد من الكود الخاص بي ، سأحاول مرة أخرى باستخدام علامات التبويب:
        سيكون هذا هو الملف algo.psc

        Proceso algo_digo
        a<-1;
        lateral<-30;
        abajo<-5;
        Mientras a=1 Hacer
        Borrar Pantalla;
        c<-1;
        linea<-"";
        Repetir
        linea<-linea+" ";
        c<-c+1;
        Hasta Que c=lateral
        linea<-linea+"X";
        c<-1;
        Repetir
        Escribir " ";
        c<-c+1;
        Hasta Que c=abajo-1
        Escribir linea;
        Repetir
        Escribir " ";
        c 3 Entonces
        abajo<-abajo-1;
        Fin Si
        "s":
        Si abajo < 15 Entonces
        abajo 2 Entonces
        lateral<-lateral-1;
        Fin Si
        "d":
        Si lateral < 50 Entonces
        lateral<-lateral+1;
        Fin Si
        "0":
        a<-2;
        Fin Segun
        Fin Mientras
        FinProceso

      4.    جيلي قال

        من المثير للاهتمام أن التعليق الذي يحتوي على ملصقات الرموز يتم حذفه أو حذفه أو كل ما يحدث بين السطور على سبيل المثال
        كرر
        لأكتب " "؛
        c
        بعد ج يوجد أ
        ثم تستمر مع 3 ثم
        إلى
        بشكل عام ، هذا ليس موثوقًا لوضعه وفقًا للرموز.

  3.   جيلي قال

    أقوم بتغيير الرموز من التعيين إلى = لمعرفة كيف.

    Proceso algo_digo
    a=1;
    lateral=30;
    abajo=5;
    Mientras a=1 Hacer
    Borrar Pantalla;
    c=1;
    linea="";
    Repetir
    linea=linea+" ";
    c=c+1;
    Hasta Que c=lateral
    linea=linea+"X";
    c=1;
    Repetir
    Escribir " ";
    c=c+1;
    Hasta Que c=abajo-1
    Escribir linea;
    Repetir
    Escribir " ";
    c=c+1;
    Hasta Que c=18
    Escribir "Dibujo una X (w,a,s,d y 0 para salir)";
    Leer mueve;
    Segun mueve Hacer
    "w":
    Si abajo > 3 Entonces
    abajo=abajo-1;
    Fin Si
    "s":
    Si abajo 2 Entonces
    lateral=lateral-1;
    Fin Si
    "d":
    Si lateral < 50 Entonces
    lateral=lateral+1;
    Fin Si
    "0":
    a=2;
    Fin Segun
    Fin Mientras
    FinProceso

    1.    جيلي قال

      يستمر في تناول جزء من الكود ، تفشل علامة الرمز ، يجب أن تترك الكتابة كما هي.

      1.    xnmm قال

        مرحبًا آسف لعدم رؤيتك أجبت من قبل ولكن بشكل جيد
        نظرًا لأنك لا تستطيع نشر الكود جيدًا لأنك لا ترسله إليّ بالبريد ، لذا فأنت لا تعطي الكثير من المنعطفات لهذه المسألة.