pseint를 사용한 기본 프로그래밍 (3 부)

이것은 튜토리얼의 연속입니다. pseint를 사용한 기본 프로그래밍 (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

이 경우«a»와«b»사이에는 a와 b 사이의 공백을 나타내는 문자열이 없기 때문에«olamundo»가 표시되므로 올바르게 표시되도록 다음과 같이 작성됩니다.

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"절이 배치되었는지 여부는 해당 프로그램의 필요에 따라 다릅니다.

따라

옵션으로 2 개 이상의 옵션을 제공하는 엄격한 숫자 변수를 평가하는 문장으로, 이전 항목은 2 개의 옵션 만 제공 할 수 있으므로 "If-Then"과의 차이입니다.

구문은 다음과 같습니다.

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 회 실행될 상태를 확인합니다. true, 조건이 충족되지 않으면 실행하지만 조건이 충족되는 동안 실행하려면 "until"대신 "while"을 사용합니다.

구문은 다음과 같습니다.

Repetir
[Instrucciones] hasta que [condicion]

에 대한

이 명령문은 이전 명령과 달리 변수에 대해 결정 횟수를 결정하는 명령을 실행합니다.이주기는 해당 변수의 값을 자체적으로 변경하고 매우 강력한 구문을 갖습니다.

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

"변수"는 "초기 값"을 수신하고 명령을 실행 한 다음 "변수"와 "단계"를 더한 다음 "변수"가 "최종 값"과 같을 때까지 명령을 다시 실행하는 변수입니다.

"with [step]"이 제거되면 기본적으로 "step"이 1과 같다는 것을 알게됩니다. 또한 [step]이 지정되지 않고 "initial value"가 "final value"보다 크면이를 통과합니다. 역순, 즉 "단계"는 -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"매개 변수를 수신 한 "함수 이름"함수가 반환 한 값을 포함하는 변수입니다.

기타

이것들은 단지 보완적인 함수이기 때문에 복잡한 구문을 가지지 않고 다른 것들에 대해서만 보완적인 함수입니다.

클리어 스크린

이 기능은 인터프리터에있는 모든 개체의 화면을 지 웁니다.

대기 키

이 기능은 사용자가 프로그램을 계속하기 위해 키를 누를 때까지 기다립니다.

잠깐만 NS {Second, Milliseconds}

이 함수는 프로그램을 계속하기 위해 초 또는 밀리 초 단위의 시간을 기다립니다.

추신 : 늦어서 미안하지만 다른 일로 바빠서 쓸 수 없었습니다


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   프로듀서이자 유일한 멤버 인 Guille

    실행을 중지하지 않고 키를 캡처하는 기능이 없습니까? 행맨 게임도 프로그래밍하는 것도 재미있을 수 있지만, 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;
    예 종료
    "에스":
    15 미만이면
    2 아래로
    측면 <-측면 -1;
    예 종료
    "디":
    측면 <50이면
    측면 <-측면 + 1;
    예 종료
    "0":
    a <-2;
    끝 초
    종료
    EndProcess

  2.   프로듀서이자 유일한 멤버 인 Guille

    올라가면 실패하고, 23 번과 28 번 줄을 바꾸는 것이 좋습니다.
    -23 c = 15까지
    +23 c = 18까지
    y
    -28 만약 다운> 2 그때
    +28 만약 다운> 3 그때

    1.    xnmm

      기여 해주셔서 감사 합니다만, 한 문장을 다른 문장으로여는데 시작된 문장 내에서 끝나야한다는 문제가 있습니다.

      무언가 처리
      a <-0;
      읽다;
      a가 25와 같지 않으면
      a는 0과 같지 않지만
      읽다;
      예 종료
      동안 끝

      "if then"문 안에서 시작하지만 그 밖에서 끝나는 동안 루프를 볼 수 있으므로 이와 같은 것은 불가능합니다.

      나는 여전히 기여에 감사합니다
      프로세스 종료

      1.    프로듀서이자 유일한 멤버 인 Guille

        고맙지 만 여기에 코드를 넣는 것이 더 문제라고 생각합니다. 코드 유형에 넣는 방법을 모르고 들여 쓰기없이 나오는 것입니다.

        프로그램이 잘 작동합니다. 변수 "a"는 사용자가 XNUMX을 입력 할 때 루프를 종료하는 데 사용합니다. 출구 () 또는 휴식을 넣을 수 있습니다. 조건부에서는 그것을보고 변수를 저장합니다. 옵션입니다.

        인사말.

      2.    프로듀서이자 유일한 멤버 인 Guille

        공백과 레이블의 탭을 변경해 보겠습니다. 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

        내 코드에서 가져온 오류로 가득 차 있습니다. 탭으로 다시 시도하겠습니다.
        이것은 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

        흥미롭게도, 코드 레이블이있는 주석은 예를 들어 줄 사이와 같이 사이에있는 모든 것을 먹거나 삭제합니다.
        반복
        쓰기 " ";
        c
        c 후에는
        그런 다음 3으로 계속됩니다.
        아래로
        전반적으로 이것은 어떤 코드에 따라 넣는 것이 신뢰할 수 없습니다.

  3.   프로듀서이자 유일한 멤버 인 Guille

    기호를 할당에서 =로 변경하여 방법을 확인합니다.

    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

      코드의 일부를 계속 먹고 코드 태그가 실패하고 쓰기를 그대로 두어야합니다.

      1.    xnmm

        안녕 전에 대답 못해서 미안하지만 잘
        우편으로 보내지 않기 때문에 코드를 잘 게시 할 수 없기 때문에 문제에 너무 많이 돌리지 않습니다.