การเขียนโปรแกรมพื้นฐานด้วย pseint (ตอนที่ 3)

นี่คือความต่อเนื่องของบทแนะนำ การเขียนโปรแกรมพื้นฐานด้วยเทียม (ตอนที่ 2)คราวนี้ฉันจะอธิบายสิ่งที่จำเป็นในการเขียนโปรแกรม

มอบหมาย

การกำหนดเป็นกระบวนการที่ตัวแปรถูกสร้างและ / หรือแก้ไขโดยอ้างอิงถึงตัวแปรโดยใช้ตัวระบุที่เราสามารถเข้าถึงพื้นที่หน่วยความจำได้

ไวยากรณ์ของการกำหนดคือ:

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

โดย [ตัวแปร] คือตัวแปรที่รับค่าของการประเมิน [นิพจน์] ทั้งสองอย่างถูกต้องดังนั้นจึงไม่สำคัญว่าจะใช้อันไหน (หากพวกเขากำหนดค่า PSeInt อย่างถูกต้อง) แต่ในความคิดของฉันฉันสร้างอันแรกเป็นอันที่ถูกต้อง

หากไม่มี [ตัวแปร] ก่อนการกำหนดจะมีการสร้าง [ตัวแปร] ขึ้นหากมีอยู่ค่าก่อนหน้านี้จะถูกทำลายและค่าใหม่จะถูกวางไว้ในตำแหน่งนั้น ด้วยเหตุนี้การทำแผนที่จึงถือเป็นการดำเนินการทำลายล้าง

การอ่าน

การอ่านเป็นกระบวนการที่ข้อมูลหรือข้อมูลถูกร้องขอจากผู้ใช้เพื่อจัดเก็บข้อมูลดังกล่าวในตัวแปร

ไวยากรณ์ของมันคือ:

Leer variable_1,variable_2,...,variable_n;

โดยที่ [variable_ {1,2, n}] คือตัวแปรหรือตัวแปรที่รับค่าที่กำหนดโดยผู้ใช้ในกรณีที่มีการร้องขอมากกว่าหนึ่งตัวแปรตัวแปรแรกจะขอตัวแปรแรกจากนั้นสำหรับตัวแปรที่สองและอื่น ๆ จนกว่าจะได้รับค่าทั้งหมด

นอกจากนี้ยังมีหน้าที่ทำลายล้าง

การเขียน

การเขียนเป็นกระบวนการที่มีการเขียนสตริงอักขระและ / หรือตัวแปรหนึ่งตัวขึ้นไปบนหน้าจอ

ไวยากรณ์คือ:

Escribir expresion_1,expresion_2,...,expresion_n;

โดยที่ [expersion_ {1,2, n}] คือสตริงอักขระและ / หรือตัวแปรที่จะแสดง

การเขียนนอกจากจะได้รับข้อมูลที่จะนำไปวางบนหน้าจอแล้วยังได้รับคำสั่ง "Without skipping" หรือ "Without going down" ที่หลีกเลี่ยงการกระโดดข้ามเส้น

การเขียนไม่ได้เพิ่มช่องว่างระหว่างอาร์กิวเมนต์นั่นคือถ้าคุณใส่:

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

ประโยค "Else" ไม่บังคับในกรณีนี้หากเงื่อนไขเป็นเท็จให้เพิกเฉยต่อคำแนะนำและดำเนินการต่อราวกับว่าไม่มีประโยคในกรณีนี้จะยังคงอยู่:

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

ส่วนคำสั่ง "Failure" ถูกวางไว้หรือไม่นั้นขึ้นอยู่กับความต้องการของโปรแกรมนั้น ๆ

ตาม

ประโยคที่ประเมินตัวแปรเชิงตัวเลขอย่างเคร่งครัดที่ให้ตัวเลือกมากกว่า 2 ตัวเลือกนี่คือความแตกต่างจาก "If-Then" เนื่องจากก่อนหน้านี้สามารถให้ได้ 2 ตัวเลือกเท่านั้น

ไวยากรณ์คือ:

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

ดังที่คุณเห็นหลังจาก« number1 »มี«: »และหลังจากนั้นคำแนะนำที่จะดำเนินการจะถูกวางไว้ในกรณีที่«ตัวแปรตัวเลข = number1 »ในตัวอย่างที่สองคือ« number2, number3 »ซึ่งหมายความว่า ถ้า«ตัวแปรตัวเลข = number2 หรือ number3 "จากนั้น" คำสั่ง "จะถูกเรียกใช้สิ่งนี้มีประโยชน์เมื่อความเป็นไปได้ 2 รายการต้องดำเนินการคำสั่งเดียวกัน

นอกจากนี้ยังมีประโยค "ในอีกทางหนึ่ง" ที่ดำเนินการในกรณีที่ไม่มีความเป็นไปได้ใด ๆ

ในขณะที่

เป็นฟังก์ชันซ้ำ ๆ ที่ประเมินเงื่อนไขก่อนจากนั้นหากเป็นจริงจะดำเนินการชุดคำสั่งจากนั้นจะประเมินเงื่อนไขอีกครั้งและหากเป็นจริงจะดำเนินการคำสั่งเดิมอีกครั้งและดำเนินต่อไปเช่นนี้จนกว่าเงื่อนไข เป็นเท็จ

หากเงื่อนไขเป็นเท็จตั้งแต่เริ่มต้นจะไม่ถูกเรียกใช้งานและหากเป็นจริงเสมอไปจะถูกวางไว้ในลูปที่ไม่มีที่สิ้นสุดเพื่อหลีกเลี่ยงข้อสุดท้ายในคำแนะนำจะต้องมีบางอย่างที่ในบางจุดทำให้เงื่อนไขผิดตามลำดับ เพื่อสิ้นสุดการวนซ้ำ

ไวยากรณ์ของมันคือ:

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

ทำซ้ำจนถึงปัจจุบัน

นี่เป็นฟังก์ชั่นที่คล้ายกับฟังก์ชันก่อนหน้านี้มาก แต่ไม่เหมือนกับฟังก์ชันก่อนหน้าอันนี้ตรวจสอบเงื่อนไขในตอนท้ายนั่นคือคำสั่งจะถูกดำเนินการอย่างน้อย 1 ครั้งและแทนที่จะดำเนินการตามคำสั่งเมื่อเป็นจริง มันจะดำเนินการในขณะที่ถ้าไม่ตรงตามเงื่อนไข แต่ถ้าคุณต้องการให้ดำเนินการในขณะที่ตรงตามเงื่อนไขให้ใช้ "while" แทน "until"

ไวยากรณ์ของมันคือ:

Repetir
[Instrucciones] hasta que [condicion]

สำหรับ

คำสั่งนี้ดำเนินการคำสั่งโดยกำหนดจำนวนครั้งสำหรับตัวแปรซึ่งแตกต่างจากคำสั่งก่อนหน้านี้วงจรนี้จะเปลี่ยนค่าของตัวแปรที่เป็นปัญหาด้วยตัวมันเองรวมทั้งมีไวยากรณ์ที่มีประสิทธิภาพมาก

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

"Variable" คือตัวแปรที่รับ "ค่าเริ่มต้น" และดำเนินการตามคำสั่งจากนั้นเพิ่ม "ตัวแปร" บวก "ขั้นตอน" และดำเนินการตามคำสั่งอีกครั้งจนกระทั่ง "ตัวแปร" เท่ากับ "ค่าสุดท้าย"

ถ้า "with [step]" ถูกลบโดยค่าเริ่มต้นจะรู้ว่า "step" เท่ากับ 1 เช่นกันหากไม่ได้ระบุ [step] และ "initial value" มากกว่า "final value" ก็จะผ่านไปใน ลำดับย้อนกลับนั่นคือ "ขั้นตอน" คือ -1

SUBPROCESS / FUNCTION

เธรดหรือฟังก์ชันคือโปรแกรมภายในโปรแกรมอื่นและโปรแกรมย่อยนี้ได้รับค่าตั้งแต่หนึ่งค่าขึ้นไปดำเนินการและส่งคืนค่าอื่น ไวยากรณ์ของมันคือ

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

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

โดยที่ "return variable" คือตัวแปรที่มีค่าที่ส่งกลับโดยฟังก์ชัน "function name" ที่ได้รับพารามิเตอร์ "arg_1, arg_2, arg_n" เพื่อดำเนินการนี้

อื่น ๆ

ฟังก์ชันเหล่านี้เป็นเพียงฟังก์ชันเสริมของฟังก์ชันอื่น ๆ และไม่มีไวยากรณ์ที่ซับซ้อนเนื่องจากเป็นเพียงฟังก์ชันเสริมเท่านั้น

ล้างหน้าจอ

ฟังก์ชันนี้จะล้างหน้าจอของวัตถุใด ๆ ในล่าม

รอคีย์

ฟังก์ชั่นนี้รอให้ผู้ใช้กดปุ่มเพื่อดำเนินการต่อกับโปรแกรม

คาดหวัง NS {วินาทีมิลลิวินาที}

ฟังก์ชันนี้จะรอเวลาเป็นวินาทีหรือมิลลิวินาทีเพื่อดำเนินการกับโปรแกรมต่อไป

PS: ขออภัยในความล่าช้า แต่ฉันยุ่งกับเรื่องอื่น ๆ จึงไม่สามารถเขียนได้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Guille dijo

    ไม่มีฟังก์ชันในการจับคีย์โดยไม่หยุดการดำเนินการใช่หรือไม่? สำหรับการทำอะไรบางอย่างที่มีการเคลื่อนไหวซึ่งดึงดูดใจเด็กวัย 9 ขวบมากขึ้นแม้ว่าเกมเพชฌฆาตก็สามารถเขียนโปรแกรมได้อย่างสนุกสนาน

    ประมวลผล something_digo
    ก <-1;
    ด้านข้าง <-30;
    ลง <-5;
    ในขณะที่ a = 1 Do
    ล้างหน้าจอ;
    ค <-1;
    บรรทัด <- "";
    ทำซ้ำ
    บรรทัด <-line + "";
    ค <-c + 1;
    จนถึง c = ด้านข้าง
    บรรทัด <-line + "X";
    ค <-1;
    ทำซ้ำ
    เขียน " ";
    ค <-c + 1;
    จนถึง c = down-1
    เขียนบรรทัด;
    ทำซ้ำ
    เขียน " ";
    c 2 จากนั้น
    ลง <-down-1;
    จบใช่
    "s":
    ถ้าต่ำกว่า <15 แล้ว
    ลง 2 จากนั้น
    ด้านข้าง <- ด้านข้าง -1;
    จบใช่
    "d":
    ถ้าด้านข้าง <50 แล้ว
    ด้านข้าง <- ด้านข้าง + 1;
    จบใช่
    "0":
    ก <-2;
    วินาทีสุดท้าย
    สิ้นสุดในขณะที่
    EndProcess

  2.   Guille dijo

    ถ้าขึ้นไปไม่ดีควรเปลี่ยนสาย 23 และ 28 ดีกว่า
    -23 ถึง c = 15
    +23 ถึง c = 18
    y
    -28 ถ้าลง> 2 แล้ว
    +28 ถ้าลง> 3 แล้ว

    1.    xnmm dijo

      ขอบคุณสำหรับการมีส่วนร่วม แต่มันมีปัญหาบางอย่างเช่นคุณเปิดหนึ่งประโยคภายในอีกประโยคหนึ่ง แต่มันต้องจบลงในประโยคที่มันเริ่มฉันหมายความว่ามันใส่ไม่ได้

      ประมวลผลบางอย่าง
      ก <- 0;
      อ่านถึง;
      ถ้า a ไม่เท่ากับ 25 แล้ว
      ในขณะที่ a ไม่เท่ากับ 0 do
      อ่านถึง;
      จบใช่
      สิ้นสุดในขณะที่

      ดังที่คุณเห็นการวนซ้ำในขณะที่เริ่มต้นภายในคำสั่ง "if then" แต่สิ้นสุดภายนอกมันจะเป็นไปไม่ได้

      ฉันยังคงชื่นชมการมีส่วนร่วม
      สิ้นสุดกระบวนการ

      1.    Guille dijo

        ขอบคุณ แต่ฉันคิดว่ามันเป็นปัญหามากกว่าในการใส่รหัสที่นี่ฉันไม่รู้ว่าจะใส่รหัสนี้อย่างไรและมันออกมาโดยไม่มีการเยื้อง

        โปรแกรมทำงานได้ดี ตัวแปร "a" ฉันใช้เพื่อออกจากลูปเมื่อผู้ใช้พิมพ์ศูนย์ คุณสามารถวางทางออก () หรือหยุดพัก; ในเงื่อนไขมันดูและฉันบันทึกตัวแปร พวกเขาเป็นตัวเลือก

        อาศิรพจน์

      2.    Guille dijo

        ฉันจะลองเปลี่ยนแท็บสำหรับเว้นวรรคและป้ายกำกับ 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.    Guille dijo

        นั่นเต็มไปด้วยข้อผิดพลาดในการนำเข้าจากรหัสของฉันฉันจะลองอีกครั้งโดยใช้แท็บ:
        นี่จะเป็นไฟล์ 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.    Guille dijo

        ที่น่าสนใจความคิดเห็นที่มีป้ายรหัสจะถูกกินลบอะไรก็ตามที่อยู่ระหว่างบรรทัดเช่นระหว่างบรรทัด
        ทำซ้ำ
        เขียน " ";
        c
        หลังจาก c มี
        จากนั้นต่อด้วย 3 จากนั้น
        ลง
        โดยรวมแล้วไม่น่าเชื่อถือว่าจะใส่ตามรหัสอะไร

  3.   Guille dijo

    ฉันเปลี่ยนสัญลักษณ์จากการกำหนดเป็น = เพื่อดูว่า

    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.    Guille dijo

      มันกินส่วนหนึ่งของโค้ดไปเรื่อย ๆ แท็กโค้ดล้มเหลวก็ควรปล่อยให้เขียนตามที่เป็นอยู่

      1.    xnmm dijo

        สวัสดีขอโทษที่ไม่เห็นคุณตอบก่อน แต่โดยดี
        เนื่องจากคุณไม่สามารถเผยแพร่รหัสได้ดีเนื่องจากคุณไม่ได้ส่งให้ฉันทางไปรษณีย์ดังนั้นคุณจึงไม่ได้หันมาสนใจเรื่องนี้มากนัก