תכנות בסיסי עם pseint (חלק 3)

זהו המשך של ההדרכה תכנות בסיסי עם פסיינט (חלק 2), הפעם אסביר מה נחוץ לתכנות.

מְשִׁימָה

הקצאה היא תהליך בו נוצר ו / או משתנה משתנה, תוך התייחסות אליו באמצעות המזהה שלו איתו אנו יכולים לגשת למרחב הזיכרון שלו.

התחביר של המטלה הוא:

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

איפה [משתנה] הוא המשתנה שמקבל את הערך של הערכת [ביטוי]. שניהם תקפים ולכן לא משנה באיזה אחד משתמשים (אם הם הגדירו את PSeInt בצורה נכונה), אך לדעתי אני יוצר את הראשון כנכון.

אם [משתנה] לא היה קיים לפני ההקצאה, [משתנה] נוצר, אם הוא קיים הערך הקודם נהרס והמקום החדש מונח במקומו. מסיבה זו, מיפוי נחשב לפעולה הרסנית.

קריאה

קריאה היא התהליך בו נתונים או נתונים מתבקשים מהמשתמש לאחסן את הנתונים האמורים במשתנה.

התחביר שלו הוא:

Leer variable_1,variable_2,...,variable_n;

כאשר [משתנה_ {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

במקרה זה הוסף »» שהוא מחרוזת תווים שיש לה רווח שהוא הרווח שבין "גל" ל"עולם "ואז הוא יראה" עולם גל "עם החלל.

אם אז

זהו משפט המעריך תנאי נתון ובודק את האמיתות ו / או השקר של התנאי האמור, כלומר אם מתקיים התנאי או לא.

התחביר שלה הוא:

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

סעיף "אחר" אינו חובה, במקרה זה, אם התנאי כוזב, התעלם מההוראות והמשיך כאילו המשפט לא היה קיים, במקרה זה הוא יישאר:

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

אם סעיף "כישלון" הוצב או לא תלוי בצרכים של אותה תוכנית.

לפי

המשפט כשהוא מעריך משתנה מספרי בהחלט שנותן יותר מ -2 אפשרויות כאופציה, זה ההבדל מ- "אם-אז" שכן הקודם יכול לתת רק 2 אפשרויות.

התחביר הוא:

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

כפי שניתן לראות אחרי «מספר 1» יש «:» ואחריו ההוראות שיש לבצע ממוקמות במקרה ש «משתנה מספרי = מספר 1», בדוגמה השנייה זה «מספר 2, מספר 3» זה אומר שאם « משתנה מספרי = מספר 2 או מספר 3 "ואז" יבוצעו "הוראות", זה שימושי כאשר שתי אפשרויות חייבות לבצע את אותן הוראות.

יש גם את הסעיף "בדרך אחרת" שמבוצע במקרה שאף אחת מהאפשרויות לא תתממש.

בזמן

זו פונקציה שחוזרת על עצמה שמעריכה תחילה תנאי ואז אם היא מתקיימת היא מבצעת סדרה של הוראות, ואז היא מעריכה מחדש את התנאי ואם זה נכון היא מבצעת שוב את אותן הוראות וממשיכה ככה עד שהמצב כוזב.

אם התנאי שקרי מההתחלה הוא לעולם לא יבוצע ואם הוא תמיד נכון הוא יונח בלולאה אינסופית, על מנת להימנע מהאחרון בהוראות חייב להיות משהו שבשלב מסוים מזייף את התנאי כדי להיות מסוגל לסיים את הלולאה.

התחביר שלו הוא:

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

חזור-עד

זו פונקציה הדומה מאוד לקודמת, אך בניגוד לקודמתה, זו בודקת את התנאי בסוף, כלומר הפקודה הולכת להתבצע לפחות פעם אחת, גם במקום לבצע את ההוראה כשהיא נכונה, היא מבצעת אותה בזמן אם התנאי לא מתקיים, אך אם ברצונך שהוא יבוצע בזמן שהתנאי התקיים, השתמש ב- "תוך" במקום "עד".

התחביר שלו הוא:

Repetir
[Instrucciones] hasta que [condicion]

ל

משפט זה מבצע הוראה מספר קבוע של פעמים עבור משתנה, בניגוד לקודמים, מחזור זה משנה את ערך המשתנה המדובר בפני עצמו, כמו גם בעל תחביר חזק מאוד.

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

"משתנה" הוא המשתנה שמקבל "ערך התחלתי" ומבצע את ההוראות ואז מוסיף "משתנה" פלוס "שלב" ומבצע את ההוראות שוב עד ש"משתנה "שווה ל"ערך סופי".

אם "עם [שלב]" יוסר אז כברירת מחדל הוא יידע ש"צעד "שווה ל- 1, גם אם [שלב] לא מוגדר ו"ערך התחלתי" גדול מ"ערך סופי "הוא יעבור בו בסדר הפוך, כלומר, "שלב" הוא -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

כאשר "משתנה החזרה" הוא המשתנה המכיל את הערך שהוחזר על ידי הפונקציה "שם פונקציה" שקיבלה את הפרמטרים "arg_1, arg_2, arg_n" לביצוע זה

אחרים

מדובר בפונקציות המשלימות רק לאחרות ואין להן תחביר מורכב מכיוון שהן פונקציות משלימות בלבד.

מסך נקי

פונקציה זו מנקה את המסך מכל אובייקט המתורגמן

המתן המפתח

פונקציה זו ממתינה למשתמש ללחוץ על מקש להמשך התוכנית

חכה איקס {שנית, מילי-שניות}

פונקציה זו ממתינה זמן בשניות או באלפיות השנייה כדי להמשיך בתוכנית

נ.ב: מצטער על העיכוב אבל הייתי עסוק בעניינים אחרים כדי שלא יכולתי לכתוב


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

10 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם.

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   גיל דיג'ו

    אין לך פונקציות ללכידת מפתחות מבלי לעצור את הביצוע? בשביל לעשות משהו עם תנועה שמושכת יותר ילדים בני 9, אם כי גם משחק תליה יכול להיות מהנה לתכנות.

    לעבד משהו
    a <-1;
    לרוחב <-30;
    למטה <-5;
    בעוד a = 1 לעשות
    מסך נקי;
    c <-1;
    שורה <- "";
    חזור על
    שורה <-ליין + "";
    c <-c + 1;
    עד c = לרוחב
    שורה <-קו + "X";
    c <-1;
    חזור על
    לכתוב " ";
    c <-c + 1;
    עד c = למטה -1
    כתוב שורה;
    חזור על
    לכתוב " ";
    ג 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.    xnmm דיג'ו

      תודה על התרומה אבל יש לה כמה בעיות כמו שאתה פותח משפט אחד במשנהו אבל זה חייב להסתיים בתוך המשפט שבו הוא התחיל, כלומר, אי אפשר להכניס אותו

      לעבד משהו
      a <- 0;
      לקרוא ל;
      אם a אינו שווה ל- 25 אז
      בעוד ש- a אינו שווה ל- 0 do
      לקרוא ל;
      תסתיים כן
      לסיים בזמן

      כפי שאתה רואה את הלולאה כשמתחילים בתוך הצהרת "אם אז" אך מסתיימים מחוץ לה, דבר כזה אינו אפשרי.

      אני עדיין מעריך את התרומה
      לסיים תהליך

      1.    גיל דיג'ו

        תודה, אבל אני חושב שזו יותר בעיה להכניס את הקוד לכאן, שאני לא יודע לשים אותו בסוג קוד והוא יוצא בלי כניסה.

        התוכנית עובדת בסדר. המשתנה "a" אני פשוט משתמש בו כדי לצאת מהלולאה כאשר המשתמש מקליד אפס. אתה יכול לשים יציאה () או הפסקה; בתנאי זה מסתכל עליו ואני שומר את המשתנה. הם אופציות.

        ברכות.

      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 יש a
        ואז זה ממשיך עם 3 ואז
        למטה
        בסך הכל, זה לא אמין לשים על פי אילו קודים.

  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.    xnmm דיג'ו

        היי מצטער שלא ראיתי שענית לפני כן אבל טוב
        מכיוון שאתה לא יכול לפרסם את הקוד טוב כי אתה לא שולח לי אותו בדואר, אז אתה לא נותן כל כך הרבה פניות לעניין.