هذا هو استمرار للدرس التعليمي البرمجة الأساسية باستخدام 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" لتنفيذ هذا
أخرى
هذه وظائف مكملة فقط للآخرين وليس لها بناء جملة معقد لأنها وظائف تكميلية فقط.
شاشة واضحة
تعمل هذه الوظيفة على مسح شاشة أي كائن في المترجم الفوري
مفتاح الانتظار
تنتظر هذه الوظيفة أن يضغط المستخدم على مفتاح لمتابعة البرنامج
توقع س {ثانيًا ، مللي ثانية}
تنتظر هذه الوظيفة وقتًا بالثواني أو بالمللي ثانية لمتابعة البرنامج
ملاحظة: آسف على التأخير ولكني كنت مشغولاً بأمور أخرى لذا لم أستطع الكتابة
ليس لديك وظائف لالتقاط المفاتيح دون إيقاف التنفيذ؟ للقيام بشيء بالحركة يكون أكثر جاذبية للأطفال في سن 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 ؛
ثواني النهاية
أثناء الانتهاء
إنهاء العملية
حسنًا ، تفشل إذا صعدت ، من الأفضل تغيير السطور 23 و 28
-23 حتى ج = 15
+23 حتى c = 18
y
-28 إذا لأسفل> 2 ثم
+28 إذا لأسفل> 3 ثم
شكرا للمساهمة ولكن بها بعض المشاكل مثل أن تفتح جملة في أخرى ولكن يجب أن تنتهي داخل الجملة حيث بدأت ، أعني ، لا يمكن وضعها
معالجة شيء ما
أ <- 0 ؛
اقرء ل؛
إذا كانت a لا تساوي 25 إذن
بينما a لا يساوي 0 تفعل
اقرء ل؛
النهاية نعم
تنتهي حين
كما ترى الحلقة أثناء البدء داخل عبارة "if then" ولكن تنتهي خارجها ، فإن شيئًا كهذا غير ممكن.
ما زلت أقدر المساهمة
إنهاء العملية
شكرًا ، لكني أعتقد أنها مشكلة أكبر في وضع الكود هنا ، ولا أعرف كيف أضعه في نوع الكود ويخرج بدون مسافة بادئة.
البرنامج يعمل بشكل جيد. المتغير "أ" أنا أستخدمه للخروج من الحلقة عندما يكتب المستخدم صفرًا. يمكنك وضع مخرج () أو استراحة ؛ في الشرط ينظر إليه وأنا أحفظ المتغير. هم خيارات.
تحية.
سأحاول تغيير علامات التبويب للمسافات والتسميات
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
هذا مليء بأخطاء الاستيراد من الكود الخاص بي ، سأحاول مرة أخرى باستخدام علامات التبويب:
سيكون هذا هو الملف 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
من المثير للاهتمام أن التعليق الذي يحتوي على ملصقات الرموز يتم حذفه أو حذفه أو كل ما يحدث بين السطور على سبيل المثال
كرر
لأكتب " "؛
c
بعد ج يوجد أ
ثم تستمر مع 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
يستمر في تناول جزء من الكود ، تفشل علامة الرمز ، يجب أن تترك الكتابة كما هي.
مرحبًا آسف لعدم رؤيتك أجبت من قبل ولكن بشكل جيد
نظرًا لأنك لا تستطيع نشر الكود جيدًا لأنك لا ترسله إليّ بالبريد ، لذا فأنت لا تعطي الكثير من المنعطفات لهذه المسألة.