{{htmlmetatags>metatag-robots=()
metatag-title=(PROCEDURE...END PROC | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(Pagina del manuale per PROCEDURE...END PROC)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(PROCEDURE...END PROC | ugBASIC User Manual)
metatag-og:description=(Pagina del manuale per PROCEDURE...END PROC)
}}
====== ugBASIC Manuale Utente ======
===== PROCEDURE...END PROC ✓ =====
===== SINTASSI =====
PROCEDURE name[ par1[, par2[, ... ]]] ]
...
END PROC[ expression ]
==== SCOPO ====
Questa coppia di parole chiave crea una procedura assegnandole un nome.
Il nome è quindi seguito da un elenco di parametri e la procedura deve
terminare con i comandi ''END PROC''. I comandi dovrebbero essere
posti su singole righe, ma non è obbligatorio.
Seguendo la convenzione in essere su altri BASIC dell'epoca, come il
Simon's BASIC o il Tuned Simon's BASIC, il nome della procedura può
anche contenere spazi. In tal caso, lo spazio finale non sarà considerato
come parte del nome.
È possibile posizionare la definizione della procedura ovunque nel programma.
Quando ugBASIC incontra una definizione di procedura, la procedura viene
riconosciuta come tale e viene eseguito un salto all' ''END PROC''. In
questo modo non vi è alcun rischio di eseguire accidentalmente la procedura.
Di seguito al nome della procedura può essere posto un elenco di parametri.
Questo crea un gruppo di variabili locali che possono essere caricate
direttamente dal programma principale. Da notare che i valori da caricare
nei parametri devono essere inseriti tra parentesi quadre come parte della
chiamata di procedura. Questo sistema funziona altrettanto bene con
costanti e variabili, ma anche array. Se è necessario immettere più di
un parametro, i parametri devono essere separate da virgole.
@example
Come opzione è possibile indicare un valore da restituire da parte
della procedura. Il valore va indicato tra parentesi quadre.
Il valore sarà, quindi, copiato nella variable ''PARAM'' e restituito
dalla chiamata, se la chiamata è stata fatta nel contesto di una espressione.
Importante: se il pragma ''OPTION CALL AS GOTO'' è attivo, l'istruzione
sarà considerata un ''NOP''.
==== ESEMPIO ====
PROCEDURE test[ a, b ]
PRINT "HELLO WORLD! "; (a+b)
END PROC
PROCEDURE sumOf( x, y )
END PROC[x+y]
PROCEDURE hundred
END PROC[100]
Si vedano anche i seguenti file di esempio:
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_hello_01.bas|procedures_hello_01.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_hello_02.bas|procedures_hello_02.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_hello_03.bas|procedures_hello_03.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_parameters_01.bas|procedures_parameters_01.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/procedures_parameters_02.bas|procedures_parameters_02.bas]]''
==== ABBREVIAZIONE ====
PrcdEePrb
==== DISPONIBILE SU ====
*
* Atari (400/800)
* Atari XL/XE
* Commodore 128 (MOS 8502)
* Commodore 128 (Zilog Z80)
* Commodore 64
* Commodore 64+REU
* TRS-80 Color Computer
* TRS-80 Color Computer 3
* ColecoVision
* Amstrad CPC 664
* Dragon 32
* Dragon 64
* Thomson MO5
* Thomson MO5
* Olivetti Prodest PC128
* Commodore PLUS/4
* SEGA SC-3000
* SEGA SG-1000
*
* VG-5000
* Commodore VIC-20
* ZX Spectrum 48
==== PROBLEMI? ====
Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=SEGNALAZIONE SU PROCEDURE...END PROC|aprire una segnalazione]] per questa parola chiave su GitHub. Grazie!===== POWERED BY =====
[[:it:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]