이것은 튜토리얼의 연속입니다. 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}
이 함수는 프로그램을 계속하기 위해 초 또는 밀리 초 단위의 시간을 기다립니다.
추신 : 늦어서 미안하지만 다른 일로 바빠서 쓸 수 없었습니다
실행을 중지하지 않고 키를 캡처하는 기능이 없습니까? 행맨 게임도 프로그래밍하는 것도 재미있을 수 있지만, 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
올라가면 실패하고, 23 번과 28 번 줄을 바꾸는 것이 좋습니다.
-23 c = 15까지
+23 c = 18까지
y
-28 만약 다운> 2 그때
+28 만약 다운> 3 그때
기여 해주셔서 감사 합니다만, 한 문장을 다른 문장으로여는데 시작된 문장 내에서 끝나야한다는 문제가 있습니다.
무언가 처리
a <-0;
읽다;
a가 25와 같지 않으면
a는 0과 같지 않지만
읽다;
예 종료
동안 끝
"if then"문 안에서 시작하지만 그 밖에서 끝나는 동안 루프를 볼 수 있으므로 이와 같은 것은 불가능합니다.
나는 여전히 기여에 감사합니다
프로세스 종료
고맙지 만 여기에 코드를 넣는 것이 더 문제라고 생각합니다. 코드 유형에 넣는 방법을 모르고 들여 쓰기없이 나오는 것입니다.
프로그램이 잘 작동합니다. 변수 "a"는 사용자가 XNUMX을 입력 할 때 루프를 종료하는 데 사용합니다. 출구 () 또는 휴식을 넣을 수 있습니다. 조건부에서는 그것을보고 변수를 저장합니다. 옵션입니다.
인사말.
공백과 레이블의 탭을 변경해 보겠습니다.
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으로 계속됩니다.
아래로
전반적으로 이것은 어떤 코드에 따라 넣는 것이 신뢰할 수 없습니다.
기호를 할당에서 =로 변경하여 방법을 확인합니다.
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
코드의 일부를 계속 먹고 코드 태그가 실패하고 쓰기를 그대로 두어야합니다.
안녕 전에 대답 못해서 미안하지만 잘
우편으로 보내지 않기 때문에 코드를 잘 게시 할 수 없기 때문에 문제에 너무 많이 돌리지 않습니다.