这是本教程的续篇 用pseint进行基本编程(第2部分),这一次我将解释编程的必要条件。
分配
赋值是一个创建和/或修改变量的过程,通过它的标识符来引用它,我们可以使用它访问其内存空间。
分配的语法为:
[variable]<- [expresion];
[variable]=[expresion];
其中[variable]是接收评估[expression]值的变量。 两者都是有效的,因此使用哪一个都没关系(如果它们正确配置了PSeInt),但是我认为我将第一个创建为正确的PSeInt。
如果[variable]在赋值之前不存在,则创建[variable],如果它存在,则先前的值将被销毁,并将新的值放置在其位置。 因此,映射被认为是破坏性操作。
阅读
读取是要求用户输入数据或将数据存储在变量中的数据的过程。
它的语法是:
Leer variable_1,variable_2,...,variable_n;
其中[variable_ {1,2,n}]是接收用户给定值的一个或多个变量,如果请求多个变量,它将首先要求第一个,然后要求第二个,依此类推直到收到所有值。
这也是一种破坏功能。
写作
写入是在屏幕上写入一串字符和/或一个或多个变量的过程
语法为:
Escribir expresion_1,expresion_2,...,expresion_n;
其中[expersion_ {1,2,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
在这种情况下,请添加»»,这是一个字符串,其空格为«wave»和«world»之间的空格,然后将显示带有空格的«wave world»。
如果然后
这是一个评估给定条件并检查该条件的真实性和/或虚假性,即是否满足条件的句子。
其语法为:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
Sino
[instrucciones por falso]
FinSi
«Else»子句不是强制性的,在这种情况下,如果条件为假,则忽略指令并继续执行,就好像该句子不存在一样,在这种情况下,它将保留:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
FinSi
是否放置“ Failure”子句取决于该程序的需求。
托里奥拉
该句子在评估一个严格的数值变量时会给出两个以上的选项,这与“ If-Then”有所不同,因为前一个只能给出2个选项。
语法为:
Segun [variable numérica] Hacer
[número1]: [instrucciones]
[número2],[número3]: [instrucciones]
[...]
De Otro Modo: [instrucciones]
FinSegun
如您所见,在“数字1”之后有一个“:”,并且在“数值变量=数字1”的情况下放置了要执行的指令,在第二个示例中是“数字2,数字3”,这意味着如果将执行“数值变量= number2或number3“ then”指令“,则当2种可能性必须执行相同的指令时,这很有用。
如果没有任何可能的条件,还会执行“以另一种方式”子句。
而
它是一个重复函数,首先评估条件,然后满足条件执行一系列指令,然后重新评估条件;如果为真,它将再次执行相同的指令,并继续执行直到条件为假。
如果条件从一开始就为假,它将永远不会被执行;如果它始终为真,它将被放置在一个无限循环中,为了避免指令中的最后一条,必须在某些时候伪造该条件以结束循环。
它的语法是:
Mientras [condición a evaluar] Hacer
[instrucciones]
FinMientras
重复直到
此功能与上一个功能非常相似,但是与上一个功能不同,该功能在最后检查条件,即命令将至少执行1次,也不会在其为true时执行指令,它在while条件下执行它,如果不满足条件,但是如果您希望在条件满足时执行它,则使用“ while”而不是“ until”。
它的语法是:
Repetir
[Instrucciones]
hasta que [condicion]
FOR
该语句为变量执行确定次数的指令,这与先前的语句不同,该循环本身更改了所讨论变量的值,并且语法非常强大。
Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones]
FinPara
“变量”是接收“初始值”并执行指令,然后添加“变量”加“步长”并再次执行指令直到“变量”等于“最终值”的变量。
如果删除了“ with with [step]”,则默认情况下它将知道“ step”等于1,并且如果未指定[step]并且“初始值”大于“最终值”,它将通过倒序,即“ Step”为-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 {秒,毫秒}
此功能等待秒或毫秒的时间才能继续执行程序
PS:很抱歉耽搁,但是我忙于其他事情,所以我无法写
没有不停止执行就可以捕获键的功能吗? 尽管执行Hangman游戏也很有趣,但对于9岁以下的孩子来说,做些动作更有吸引力。
处理something_digo
a <-1;
横向<-30;
下降<-5;
当a = 1时
清除屏幕;
c <-1;
行<-“”;
重复
行<-行+“”;
c <-c +1;
直到c =横向
行<行+“ X”;
c <-1;
重复
来写 ” ”;
c <-c +1;
直到c = down-1
写行;
重复
来写 ” ”;
c 2然后
下降<-下降-1;
结束是
“ s”:
如果低于<15,则
下来2然后
横向<-lateral-1;
结束是
“ d”:
如果横向<50
横向<-横向+1;
结束是
“ 0”:
a <-2;
结束秒
结束时间
结束过程
好吧,如果你失败了,最好改变23和28行
-23直到c = 15
+23直到c = 18
y
-28如果下降> 2那么
+28如果向下> 3然后
感谢您的贡献,但是它存在一些问题,例如您在另一个句子中打开一个句子,但是必须在句子开头的地方结束,我的意思是,它不能放在
处理某事
a <-0;
阅读
如果a不等于25
当a不等于0时
阅读
结束是
一会儿结束
正如您在“ if then”语句内部开始但在其外部结束时看到的循环一样,这是不可能的。
我仍然感谢您的贡献
结束过程
谢谢,但是我认为将代码放在这里更成问题,因为我不知道如何将其放入代码类型,并且没有缩进就可以出来。
该程序工作正常。 当用户键入零时,我仅使用变量“ a”退出循环。 您可以放一个出口()或一个休息点; 在有条件的情况下查看它,然后保存变量。 它们是选项。
问候。
我将尝试更改空格和标签的标签
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
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
它一直在吃代码的一部分,代码标记失败,应该保持原样。
嗨,很抱歉,您之前没有看到您的答复,但是很好
因为您不能很好地发布代码,因为您没有通过邮件将其发送给我,所以您不会对此事进行太多讨论。