Stile di programmazione

In questo capitolo diamo alcuni suggerimenti su come formattare il proprio codice per renderlo più leggibile, comprensibile e portabile. Ovviamente, siete liberi di seguire oppure ignorare questi suggerimenti; seguendoli, tuttavia, faciliterete la comprensione dei vostri programmi a tutte le persone che, avendo letto questo manuale, hanno acquisito familiarità con le regole di scrittura degli esempi.

Regole di formattazione:

WHILE test
  istruzione
  ..
LOOP
REPEAT
  istruzione
  ..
UNTIL test
FOR id = v1 TO v2
  istruzione
  ..
NEXT
IF test
  istruzione
  ..
ELSE
  istruzione
  ..
FI
!ifdef MS_DOS
   !include "dosspec.prt"
!else
   !include "unxspec.prt"
!endif
SWITCH exp [func]
  ON v1[, v2..]
    istruzione
    ..
  ONC v3[, v4..]
    istruzione
    ..
  OTHER
    istruzione
    ..
OFF
FUNCTION NomeFunzione(par..)

  istruzione
  ..
RETURN exp
!ifdef ITALIANO

  CONST DEF_DAYS = "Dom Lun Mar Mer Gio Ven Sab"
  CONST DEF_MONTHS = "Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic"
  CONST TODAY_IS = "Oggi è: "

!else

  CONST DEF_DAYS = "Sun Mon Tue Wed Thu Fri Sat"
  CONST DEF_MONTHS = "Jan Feb Mar Apr May Jun Jul Ago Sep Oct Nov Dec"
  CONST TODAY_IS = "Today is: "

!endif
FUNCTION GiornoMeseAnno(data)
RETURN CDOW(data) " " DAY(data) CMONTH(data) " " YEAR(data)

Oggi = DATE()

DAYS = DEF_DAYS
MONTHS = DEF_MONTHS
CONSOLELN TODAY_IS GiornoMeseAnno(Oggi)

Il programma di esempio protform.prt può essere utilizzato per formattare con le regole di indentazione indicate un qualsiasi programma Proteus.

Convenzioni sui nomi

Laddove una certa tipizzazione sia auspicabile, per meglio indicare qual è l'utilizzo prevalente di una variabile o qual è il tipo di valore ritornato da una UDF si può far iniziare il suo nome con:

N numero intero A albero AVL
F numero in virgola mobile M mappatura carattere-carattere
C stringa K handle di una tokenizzazione statica
H file handle D data
Q coda T ora
V vettore L valore logico
P pila Y handle di directory
B mappa di bit R espressione regolare semplice
S insieme hash X espressione regolare estesa
O handle di socket W handle generico di Windows™
E handle di pipe U handle di database DAO
Z handle di recordset DAO G handle di bookmark DAO

 

Inizio pagina Prossimo argomento Argomento precedente Indice per argomenti Indice analitico