Esta é uma continuação do tutorial Programação básica com pseint (parte 2), desta vez explicarei o que é necessário programar.
TAREFA
A atribuição é um processo no qual uma variável é criada e / ou modificada, referindo-se a ela por meio de seu identificador com o qual podemos acessar seu espaço de memória.
a sintaxe da atribuição é:
[variable]<- [expresion];
[variable]=[expresion];
Onde [variável] é a variável que recebe o valor da avaliação [expressão]. Ambos são válidos, então não importa qual é usado (se eles configuraram o PSeInt corretamente), mas na minha opinião eu crio o primeiro como o correto.
Se [variável] não existia antes da atribuição, [variável] foi criada, se existisse o valor anterior é destruído e o novo é colocado em seu lugar. Por esse motivo, o mapeamento é considerado uma operação destrutiva.
LENDO
Leitura é o processo no qual um dado ou dado é solicitado ao usuário para armazenar ditos dados em uma variável.
sua sintaxe é:
Leer variable_1,variable_2,...,variable_n;
onde [variável_ {1,2, n}] é a variável ou variáveis que recebem o valor dado pelo usuário, caso mais de uma variável seja solicitada, ela pedirá primeiro pela primeira, depois pela segunda e assim sucessivamente até recebeu todos os valores.
Esta também é uma função destrutiva.
ESCRITA
A escrita é o processo em que uma sequência de caracteres e / ou uma ou mais variáveis são escritas na tela
a sintaxe é:
Escribir expresion_1,expresion_2,...,expresion_n;
onde [expersion_ {1,2, n}] são as cadeias de caracteres e / ou variáveis que serão exibidas.
A escrita além de receber os dados a serem colocados na tela também recebe a instrução "Sem pular" ou "Sem baixar" que evita o salto de linha.
A escrita não adiciona espaços entre os argumentos, ou seja, se você colocar:
Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,b;
FinProceso
neste caso irá mostrar «olamundo» uma vez que entre «a» e «b» não existe nenhuma cadeia de caracteres que indique o espaço entre a e b, para que seja apresentado correctamente está escrito assim:
Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,"",b;
FinProceso
neste caso, adicione »» que é uma cadeia de caracteres que tem um espaço que é o espaço entre «onda» e «mundo» e então irá mostrar «mundo das ondas» com o espaço.
SE ENTÃO
É uma frase que avalia uma determinada condição e verifica a veracidade e / ou falsidade da referida condição, ou seja, se a condição é atendida ou não.
Sua sintaxe é:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
Sino
[instrucciones por falso]
FinSi
A cláusula "Else" não é obrigatória, neste caso se a condição for falsa ignore as instruções e continue como se a frase não existisse, neste caso ela permaneceria:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
FinSi
Se a cláusula "Falha" foi colocada ou não depende das necessidades desse programa.
SEGUN
A frase por avaliar uma variável estritamente numérica que dá mais de 2 opções como opção, esta é a diferença de "If-Then" já que a anterior só pode dar 2 opções.
A sintaxe é:
Segun [variable numérica] Hacer
[número1]: [instrucciones]
[número2],[número3]: [instrucciones]
[...]
De Otro Modo: [instrucciones]
FinSegun
Como você pode ver após «número1» existe um «:» e depois disso as instruções a serem executadas são colocadas no caso de «variável numérica = número1», no segundo exemplo é «número2, número3» isso significa que se «variável numérica = número2 ou número3" então "instruções" serão executadas, isso é útil quando 2 possibilidades devem executar as mesmas instruções.
Existe também a cláusula "De Outra Forma" que é executada no caso de nenhuma das possibilidades ser cumprida.
ENQUANTO
É uma função repetitiva que primeiro avalia uma condição e então se for cumprida, executa uma série de instruções, então reavalia a condição e se for verdadeira, executa as mesmas instruções novamente e continua assim até a condição é falso.
se a condição for falsa desde o início nunca será executada e se for sempre verdadeira será colocada em um loop infinito, a fim de evitar o último nas instruções deve haver algo que em algum ponto falsifique a condição para ser capaz de encerrar o loop.
sua sintaxe é:
Mientras [condición a evaluar] Hacer
[instrucciones]
FinMientras
REPETIR ATÉ
Esta é uma função muito semelhante à anterior, mas ao contrário da anterior, esta verifica a condição no final, ou seja, o comando será executado pelo menos 1 vez, também ao invés de executar a instrução quando ela for verdadeira, ele o executa enquanto Se a condição não for atendida, mas se você quiser que seja executado enquanto a condição for atendida, use "while" em vez de "until".
sua sintaxe é:
Repetir
[Instrucciones]
hasta que [condicion]
PARA
Esta instrução executa uma instrução um determinado número de vezes para uma variável, ao contrário das anteriores, este ciclo altera o valor da variável em questão por si só, além de possuir uma sintaxe muito poderosa.
Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones]
FinPara
"Variável" é a variável que recebe o "valor inicial" e executa as instruções, em seguida adiciona "variável" mais "etapa" e executa as instruções novamente até que "variável" seja igual ao "valor final".
Se "with [step]" for removido, então por padrão ele saberá que "step" é igual a 1, também se [step] não for especificado e "valor inicial" for maior que "valor final" ele irá passar por ele em ordem inversa, ou seja, "Etapa" é -1
SUBPROCESS / FUNCTION
Um thread ou função é um programa dentro de outro e que esse subprograma recebe um ou mais valores, os opera e retorna outro. Sua sintaxe é
SubProceso [variable_de_retorno]<- [nombre de la funcion] ([arg_1],[arg_2],...,[arg_n])
acción 1;
acción 2;
.
.
.
acción n;
FinSubproceso
onde "variável de retorno" é a variável que contém o valor retornado pela função "nome da função" que recebeu os parâmetros "arg_1, arg_2, arg_n" para executar isso
OUTRAS
São funções apenas complementares às outras e não possuem sintaxe complexa, pois são apenas funções complementares.
Limpar tela
Esta função limpa a tela de qualquer objeto no interpretador
Chave de Espera
Esta função espera que o usuário pressione uma tecla para continuar com o programa
Espera x{Segundo, Milissegundos}
esta função espera um tempo em segundos ou milissegundos para continuar com o programa
PS: desculpe a demora, mas estava ocupado com outros assuntos e não pude escrever
Não tem funções para capturar chaves sem parar a execução? Para fazer algo com movimento que seja mais atraente para crianças de 9 anos, embora um jogo da forca também possa ser divertido de programar.
Processar algo_digo
a <-1;
lateral <-30;
para baixo <-5;
Enquanto a = 1 Faça
Limpar tela;
c <-1;
linha <- "";
Repetir
linha <-line + "";
c <-c + 1;
Até c = lateral
linha <-line + "X";
c <-1;
Repetir
Escrever " ";
c <-c + 1;
Até c = down-1
Escreva a linha;
Repetir
Escrever " ";
c 2 então
down <-down-1;
Terminar sim
"s":
Se abaixo de <15, então
2 então
lateral <-lateral-1;
Terminar sim
"d":
Se lateral <50 então
lateral <-lateral + 1;
Terminar sim
"0":
a <-2;
End Seconds
End While
Fim do processo
Bem, falhe se você subir, é melhor mudar as linhas 23 e 28
-23 Até c = 15
+23 Até c = 18
y
-28 If down> 2 Then
+28 If down> 3 Then
Obrigado pela contribuição mas tem alguns problemas como você abrir uma frase dentro da outra mas deve terminar dentro da frase onde começou, quer dizer, não pode ser colocada
Processar algo
a <- 0;
ler para;
se a não for igual a 25, então
enquanto a não é igual a 0 faça
ler para;
Terminar sim
terminar enquanto
como você vê o loop enquanto inicia dentro da instrução "if then", mas termina fora dela, algo assim não é possível.
Eu ainda agradeço a contribuição
Fim do processo
Obrigado, mas acho que é mais um problema colocar o código aqui, que não sei como colocá-lo no tipo de código e sai sem indentação.
O programa funciona bem. A variável "a" eu simplesmente uso para sair do loop quando o usuário digita um zero. Você pode colocar uma saída () ou uma pausa; no condicional ele olha e eu salvo a variável. Eles são opções.
Saudações.
Vou tentar mudar as guias para espaços e os rótulos
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
Isso está cheio de erros de importação do meu código, vou tentar novamente com as guias:
Este seria o arquivo 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
Interessante, o comentário com rótulos de código é comido, excluído, o que quer que entre, por exemplo, entre as linhas
Repetir
Escrever " ";
c
depois do c há um
e então continua com 3 Then
abaixo
No geral, isso não é confiável para colocar de acordo com quais códigos.
Eu mudo os símbolos de atribuição para = para ver como é.
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
Ele continua comendo parte do código, a tag do código falha, deve deixar a escrita como está.
Oi desculpe por não ter visto você respondido antes, mas bem
já que você não consegue publicar bem o código porque não me manda pelo correio para que não dê tantas voltas ao assunto.