用pseint進行基本編程(第3部分)

這是本教程的延續 使用 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:抱歉耽擱了,因為我忙於其他事情所以沒能寫下來


10條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   吉爾 他說:

    沒有在不停止執行的情況下捕獲按鍵的功能嗎? 雖然劊子手游戲編程起來也很有趣,但做一些對 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;
    結束根據
    結束同時
    結束進程

  2.   吉爾 他說:

    好吧,上去就失敗了,最好改一下23和28行
    -23 直到 c=15
    +23 直到 c=18
    y
    -28 如果向下 > 2 則
    +28 如果向下 > 3 那麼

    1.    n 他說:

      感謝您的貢獻,但它有一些問題,例如您在另一個句子中打開一個句子,但它必須在它開始的句子內結束,也就是說,它不能放在

      處理某事
      a<-0;
      讀給;
      如果 a 不等於 25 那麼
      當 a 不等於 0 時
      讀給;
      結束是
      結束同時

      由於您看到循環在“if then”語句內開始但在其外部結束,所以這樣的事情是不可能的。

      還是謝謝你的貢獻
      結束進程

      1.    吉爾 他說:

        謝謝,但我認為當我把代碼放在這裡時,這是一個更大的問題,我不知道如何將它放入代碼類型中,並且它沒有縮進。

        該程序運行良好。 變量“a”僅用於在用戶鍵入零時退出循環。 您可以放置​​ exit() 或中斷; 在條件中它會查看它並保存變量。 它們是選項。

        問候。

      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
        c後面有一個
        然後繼續 3 So
        下來
        總體來說,這個按照什麼代碼來放是不靠譜的。

  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.    n 他說:

        您好,很抱歉之前沒有看到您的回答,但是很好
        因為你不能很好地發布代碼,因為你沒有通過郵件將其發送給我,所以你沒有考慮太多這個問題。