Questa è una continuazione del tutorial Programmazione di base con pseint (parte 2), questa volta ti spiego cosa è necessario programmare.
INCARICO
L'assegnazione è un processo in cui una variabile viene creata e / o modificata, facendovi riferimento tramite il suo identificatore con cui possiamo accedere al suo spazio di memoria.
la sintassi dell'assegnazione è:
[variable]<- [expresion];
[variable]=[expresion];
Dove [variabile] è la variabile che riceve il valore di valutazione [espressione]. Entrambi sono validi quindi non importa quale sia usato (se hanno configurato PSeInt correttamente), ma secondo me creo il primo come quello corretto.
Se [variabile] non esisteva prima dell'assegnazione, [variabile] è stata creata, se esisteva il valore precedente viene distrutto e quello nuovo viene posto al suo posto. Per questo motivo, la mappatura è considerata un'operazione distruttiva.
LETTURA
La lettura è il processo in cui un dato o un dato viene richiesto all'utente per memorizzare tali dati in una variabile.
la sua sintassi è:
Leer variable_1,variable_2,...,variable_n;
dove [variabile_ {1,2, n}] sono la o le variabili che ricevono il valore dato dall'utente, nel caso in cui sia richiesta più di una variabile, chiederà prima la prima, poi la seconda e così via fino a quando non hanno ricevuto tutti i valori.
Questa è anche una funzione distruttiva.
SCRITTURA
La scrittura è il processo in cui una stringa di caratteri e / o una o più variabili vengono scritte sullo schermo
la sintassi è:
Escribir expresion_1,expresion_2,...,expresion_n;
dove [expersion_ {1,2, n}] sono le stringhe di caratteri e / o le variabili che verranno visualizzate.
La scrittura oltre a ricevere i dati da mettere a video riceve anche le istruzioni "Senza saltare" o "Senza scendere" che evitano il salto di riga.
La scrittura non aggiunge spazi tra gli argomenti, cioè se viene inserita:
Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,b;
FinProceso
in questo caso mostrerà «olamundo» poiché tra «a» e «b» non c'è una stringa di caratteri che indichi lo spazio tra aeb, quindi per essere visualizzato correttamente è scritto così:
Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,"",b;
FinProceso
in questo caso aggiungi »» che è una stringa di caratteri che ha uno spazio che è lo spazio tra «onda» e «mondo» e poi mostrerà «mondo d'onda» con lo spazio.
SE POI
Questa è una frase che valuta una data condizione e verifica la veridicità e / o falsità di detta condizione, cioè se la condizione è soddisfatta o meno.
La sua sintassi è:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
Sino
[instrucciones por falso]
FinSi
La clausola "Else" non è obbligatoria, in questo caso, se la condizione è falsa, ignorare le istruzioni e proseguire come se la frase non esistesse, in questo caso rimarrebbe:
Si [condición a evaluar] Entonces
[instrucciones por verdadero]
FinSi
Il fatto che la clausola "Failure" sia stata inserita o meno dipende dalle esigenze di quel programma.
SEGUN
La frase in quanto valuta una variabile strettamente numerica che dà più di 2 opzioni come opzione, questa è la differenza da "If-Then" poiché la precedente può dare solo 2 opzioni.
La sintassi è:
Segun [variable numérica] Hacer
[número1]: [instrucciones]
[número2],[número3]: [instrucciones]
[...]
De Otro Modo: [instrucciones]
FinSegun
Come puoi vedere dopo "numero1" c'è un ":" e dopo di ciò le istruzioni da eseguire sono poste nel caso in cui "variabile numerica = numero1", nel secondo esempio è "numero2, numero3" questo significa che se " variabile numerica = numero2 o numero3 "quindi verranno eseguite" istruzioni ", questo è utile quando 2 possibilità devono eseguire le stesse istruzioni.
C'è anche la clausola "in un altro modo" che viene eseguita nel caso in cui nessuna delle possibilità è soddisfatta.
MENTRE
È una funzione ripetitiva che prima valuta una condizione e poi se è soddisfatta esegue una serie di istruzioni, quindi rivaluta la condizione e se è vera esegue nuovamente le stesse istruzioni e continua così finché la condizione non è falsa .
se la condizione è falsa dall'inizio non verrà mai eseguita e se è sempre vera verrà posta in un ciclo infinito, per evitare l'ultima nelle istruzioni ci deve essere qualcosa che ad un certo punto falsifica la condizione da essere in grado di terminare il ciclo.
la sua sintassi è:
Mientras [condición a evaluar] Hacer
[instrucciones]
FinMientras
RIPETERE FINO A
Questa è una funzione molto simile alla precedente, ma a differenza della precedente, questa verifica la condizione alla fine, cioè il comando verrà eseguito almeno 1 volta, anche invece di eseguire l'istruzione quando è true, lo esegue mentre Se la condizione non è soddisfatta, ma se vuoi che venga eseguito mentre la condizione è soddisfatta, usa "while" invece di "until".
la sua sintassi è:
Repetir
[Instrucciones]
hasta que [condicion]
A
Questa istruzione esegue un'istruzione un numero determinante di volte per una variabile, a differenza delle precedenti, questo ciclo cambia da solo il valore della variabile in questione oltre ad avere una sintassi molto potente.
Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones]
FinPara
"Variabile" è la variabile che riceve il "valore iniziale" ed esegue le istruzioni, quindi aggiunge "variabile" più "passo" ed esegue nuovamente le istruzioni finché "variabile" non è uguale al "valore finale".
Se "with [step]" viene rimosso allora per impostazione predefinita saprà che "step" è uguale a 1, anche se [step] non è specificato e "valore iniziale" è maggiore di "valore finale" lo passerà attraverso ordine inverso, ovvero "Step" è -1
SUBPROCESSO / FUNZIONE
Un thread o una funzione è un programma all'interno di un altro e questo sottoprogramma riceve uno o più valori, li gestisce e ne restituisce un altro. La sua sintassi è
SubProceso [variable_de_retorno]<- [nombre de la funcion] ([arg_1],[arg_2],...,[arg_n])
acción 1;
acción 2;
.
.
.
acción n;
FinSubproceso
dove "variabile di ritorno" è la variabile che contiene il valore restituito dalla funzione "nome funzione" che ha ricevuto i parametri "arg_1, arg_2, arg_n" per eseguirla
ALTRE
Si tratta di funzioni che sono solo complementari alle altre e non hanno una sintassi complessa poiché sono solo funzioni complementari.
Schermo pulito
Questa funzione cancella lo schermo da qualsiasi oggetto nell'interprete
Aspetta chiave
Questa funzione attende che l'utente prema un tasto per continuare con il programma
aspettare X {Secondo, millisecondi}
questa funzione attende un tempo in secondi o millisecondi per continuare con il programma
PS: scusate il ritardo ma ero impegnato con altre questioni quindi non ho potuto scrivere
Non hai funzioni per catturare le chiavi senza interrompere l'esecuzione? Per fare qualcosa con il movimento che è più attraente per i bambini di 9 anni, sebbene un gioco dell'impiccato possa anche essere divertente da programmare.
Elabora qualcosa_digo
a <-1;
laterale <-30;
giù <-5;
Mentre a = 1 Do
Schermo pulito;
c <-1;
riga <- "";
repetir
riga <-line + "";
c <-c + 1;
Fino a c = laterale
riga <-line + "X";
c <-1;
repetir
Scrivere " ";
c <-c + 1;
Fino a quando c = down-1
Linea di scrittura;
repetir
Scrivere " ";
c 2 Allora
giù <-giù-1;
Fine sì
"S":
Se inferiore a <15 Allora
giù 2 Allora
laterale <-laterale-1;
Fine sì
"d":
Se laterale <50 Allora
laterale <-laterale + 1;
Fine sì
"0":
a <-2;
Fine secondi
Fine mentre
Fine del processo
Bene, fallisci se sali, meglio cambiare le righe 23 e 28
-23 Fino a c = 15
+23 Fino a c = 18
y
-28 Se in basso> 2 Allora
+28 Se in basso> 3 Allora
Grazie per il contributo ma ha dei problemi come questo apri una frase dentro un'altra ma deve finire all'interno della frase dove è iniziata, voglio dire, non può essere messa
Elabora qualcosa
a <- 0;
leggere a;
se a non è uguale a 25 allora
mentre a non è uguale a 0 do
leggere a;
Fine sì
finire mentre
come vedi il ciclo mentre inizia all'interno dell'istruzione "if then" ma finisce al di fuori di essa, qualcosa del genere non è possibile.
Apprezzo ancora il contributo
Fine del processo
Grazie, ma penso che sia più un problema mettere il codice qui, che non so come metterlo nel tipo di codice e viene fuori senza indentazione.
Il programma funziona bene. La variabile "a" che uso semplicemente per uscire dal ciclo quando l'utente digita uno zero. Potresti mettere un exit () o un break; nel condizionale lo guarda e io salvo la variabile. Sono opzioni.
Saluti.
Proverò a cambiare le tabulazioni per gli spazi e le etichette
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
È pieno di errori di importazione dal mio codice, riproverò con le schede:
Questo sarebbe il file 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, il commento con le etichette di codice viene mangiato, cancellato, qualunque cosa sia tra le righe, ad esempio
repetir
Scrivere " ";
c
dopo la c c'è una
e poi continua con 3 Poi
giù
Nel complesso, questo non è affidabile da mettere in base a quali codici.
Cambio i simboli da assegnare a = per vedere com'è.
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
Continua a mangiare parte del codice, il tag del codice fallisce, dovrebbe lasciarlo così com'è
Ciao, scusa per non averti visto prima ma bene
visto che non riesci a pubblicare bene il codice perché non me lo mandi per posta quindi non dai tanti giri alla questione.