這是本教程的延續 使用 pseint 進行基本編程(第 2 部分),這次我要解釋一下編程需要什麼。
分配
賦值是一個創建和/或修改變量的過程,通過變量的標識符來引用它,我們可以通過標識符來訪問它的內存空間。
賦值的語法是:
[variable]<- [expresion];
[variable]=[expresion];
其中,[variable] 是接收 [expression] 求值的變量。 兩者都是有效的,所以使用哪一個並不重要(如果他們正確配置了 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}] 是將要顯示的字符串和/或變量。
寫入時,除了接收要放到屏幕上的數據外,還接收避免換行的“不跳過”或“不下載”指令。
Write 不會在參數之間添加空格,也就是說,如果您輸入:
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
是否放置“Else”子句取決於該程序的需要。
根據
根據的句子評估一個嚴格的數值變量,該變量作為選項給出超過 2 個選擇的可能性,這是與“If-Then”的區別,因為前一個只能給出 2 個選項。
語法為:
Segun [variable numérica] Hacer
[número1]: [instrucciones]
[número2],[número3]: [instrucciones]
[...]
De Otro Modo: [instrucciones]
FinSegun
正如你所看到的,在“number1”之後有一個“:”,之後要執行的指令被放置在“數字變量=數字1”的情況下,在第二個示例中,有“數字2,數字3”,這意味著如果“數字變量=數字2或數字3”則將執行“指令”,當兩種可能性必須執行相同的指令時,這非常有用。
還有一個“否則”子句,在沒有滿足任何可能性的情況下執行。
儘管
是一個重複函數,它首先評估一個條件,如果滿足,則執行一系列指令,然後再次評估條件,如果為真,則再次執行相同的指令,如此繼續,直到條件為假。
如果條件從一開始就為假,則永遠不會被執行,如果它始終為真,則將被置於無限循環中,為了避免指令中的最後一件事,必須有一些東西在某個時刻偽造條件以結束循環。
它的語法是:
Mientras [condición a evaluar] Hacer
[instrucciones]
FinMientras
重複直到
這是一個與前一個非常相似的函數,但與前一個不同的是,它在最後檢查條件,即該命令將至少執行1次,並且不是在為真時執行指令,而是執行直到滿足條件,但如果您希望在滿足條件時執行它,請使用“while”而不是“until”。
它的語法是:
Repetir
[Instrucciones]
hasta que [condicion]
FOR
這句話對一個變量執行一定次數的指令,與前面的不同,這個循環除了具有非常強大的語法之外,還自行更改了相關變量的值。
Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones]
FinPara
“變量”是接收“初始值”並執行指令的變量,然後將“變量”加上“步驟”並再次執行指令,直到“變量”等於“最終值”。
如果刪除“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:抱歉耽擱了,因為我忙於其他事情所以沒能寫下來
沒有在不停止執行的情況下捕獲按鍵的功能嗎? 雖然劊子手游戲編程起來也很有趣,但做一些對 9 歲兒童更有吸引力的活動。
進程 algo_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
邊<-邊-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”僅用於在用戶鍵入零時退出循環。 您可以放置 exit() 或中斷; 在條件中它會查看它並保存變量。 它們是選項。
問候。
我會嘗試將製表符更改為空格和標籤
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 So
下來
總體來說,這個按照什麼代碼來放是不靠譜的。
我通過 = 更改分配符號以查看發生了什麼。
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
它不斷地吃掉一些代碼,代碼標記失敗,它應該讓腳本保持原樣。
您好,很抱歉之前沒有看到您的回答,但是很好
因為你不能很好地發布代碼,因為你沒有通過郵件將其發送給我,所以你沒有考慮太多這個問題。