ePerTutti


Appunti, Tesina di, appunto informatica

Turbo Pascal Routine di base

ricerca 1
ricerca 2

Turbo Pascal Routine di base

F SIZE OF: Restituisce la dimensione della memoria occupata della variabile v. Tale funzione deve venire utilizzata in modo particolare per compatibilità con le altre versioni o nel caso in cui si utilizzi l'allineamento sulle parole delle variabili.

Unità system.

FUNZIONI E PROCEDURE SCALARI.

F CHR: Converte l'intero in un carattere ASCII.

P DEC: Decrementa la variabile cioè diminuisce il suo valore di una unità. Se il valore è il più piccolo del tipo e se si tratta di un tipo intero, essa diventa la più elevata; se invece si tratta di un numerato o intervallo il valore è fuori limite ma non si verifica nessun errore (con $R disattiva).

P EXCLUDE (var s:set of scalare; e: scalare): Elimina l'elemento e dall'insieme S.

F HI (w:Word):byte : restituisce il byte più alto della parola cioè w SHR 8.

F HIGH: Funzione di utilizzo variabile: se l'argomento è di un tipo scalare, restituisce l'ultimo elemento del suo tipo; se l'argomento è un array restituisce il limite superiore degl'indici dell'array.

P INC: Incrementa la variabile (contrario di DEC).

F INCLUDE (var s:set of scalare; e:scalare): Aggiunge l'elemento e all'insieme S.

F LO (w:Word):byte: Restituisce il byte più basso della parola cioè w AND 255.



F LOW: (contrario di HIGH).

F ODD (1:longint):boolean: restituisce true se l'intero è dispari, diversamente restituisce false.

F ORD: Restituisce il valore ordinale di scalare iniziando da zero per la prima costante di tipo, eccetera. In particolare per i caratteri attribuisce il codice ASCII e per i booleani attribuisce 0 per false e 1 per true. Per gli interi non si ha alcun effetto , per gli intervalli viene considerato il valore nel tipo d'origine.

F PRED: Fornisce il valore che precede v nel suo tipo. Per i primi elementi di un tipo si ha un superamento come per la procedura DEC.

F SUCC: (Contrario di PRED).

P SWAP: Scambia il byte alto e il byte basso della parola in linguaggio macchina.

F UPCASE (c:char): Char: Restituisce la maiuscola corrispondente al carattere. Solo i valori da 'A' a 'z' vengono modificati. Si tenga presente che non esiste la funzione 'minuscolo'.

STRINGHE DI CARATTERI.

F CONCAT: Concatena le stringhe passate come parametri, cioè le aggiunge una dopo l'altra.

F COPY(s:string; i,n:integer):string: Indica la stringa di n caratteri estratta a partire dall'i-esimo carattere di s. Se la stringa è troppo breve, viene restituita una stringa di almeno n caratteri e una stringa vuota se i è superiore alla lunghezza di s.

P DELETE: Elimina n caratteri nella stringa a partire dall'i-esimo carattere.

P INSERT(ch:string, var s:string, i:integer): Inserisce la stringa ch nella stringa s alla posizione i. Se la stringa risultato è troppo lunga per il tipo di s, essa viene troncata.

F LENGTH: Restituisce la lunghezza effettiva dalla stringa (da 0 a 255).

F POS(x,s:string):byte: Indica il rango della prima apparizione della stringa x nella stringa s oppure zero se questa stringa non è contenuta in s.

P STR (x;var s:string): Converte x in una stringa di caratteri nello stesso modo di write. Dietro x è possibile inserire un parametro di formattazione in larghezza con il simbolo due punti nonché un parametro di formattazione decimale per i reali.

P VAL(s:string; var err:integer): Converte la stringa in una variabile di tipo intero o reale come se fosse stata letta da tastiera con read. In err, si ottiene zero se tutto è valido, altrimenti il rango del primo carattere errato.

FUNZIONI MATEMATICHE.

F ABS: Restituisce il valore assoluto del numero.

F ARCTAN: Restituisce l'arco-tangente del numero.

F COS: Restituisce il coseno del numero.

F EXP: Restituisce l'esponenziale(a base naturale) del numero.

F FRAC: Restituisce la parte frazionaria del numero.

F INT: Restituisce la parte intera del numero.

F LN: Restituisce il logaritmo naturale del numero .Si verifica un errore se il numero è inferiore o uguale a zero. Per ottenere il logaritmo decimale dividere per LN(10).

F PI: Restituisce il valore della costante matematica Pigreco (3.141592653589).

F ROUND: Indica l'intero più prossimo al numero, con un arrotondamento in eccesso in valore assoluto.

F SIN: Restituisce il seno del numero.

F SQR: Restituisce il quadrato del numero mantenendone il tipo.

F SQRT: Restituisce la radice quadrata del numero.

F TRUNC: Restituisce l'intero ottenuto a partire a partire da r eliminando i decimali, come int, ma sotto forma di un intero informatico.

NUMERI ALEATORI.

P RANDOMIZE: Iniziatica il germe dei numeri aleatori con un valore anch'esso aleatorio.

F RANDOM: Senza argomento, restituisce in reale pseudoaleatorio nell'intervallo da 0(compreso) a 1(non compreso).

INGRSSI/USCITE.

P APPEND: Apre il file testo in scrittura senza distruggerlo e si posiziona alla fine del file.

P ASSIGN: Collega il file logico f al file fisico del nome indicato.

P BLOCKREAD: Legge nel file un blocco di n record inserendo gli elementi letti nella variabile buffer.

P BLOCKWRITE: Scrive nel file senza tipo un blocco di n record leggendo gli elementi nella variabile buffer.

P CHDIR: Cambia la directory corrente.

P CLOSE: Chiude il file logico f.

F EOF: restituisce true se si è alla fine del file.

F EOLN: Restituisce tue se si è alla fine della riga nel file testo.

P ERASE: Elimina il file fisico associato al file logico. Il file deve essere assolutamente venire chiuso.

F FILEPOS: Restituisce la posizione corrente nel file che deve essere un file tipizzato o no, ma non file di testo.

F FILESIZE: Restituisce il numero record del file che deve essere un file tipizzato o no, ma non un file di testo.

P FLUSH: Vuota il tampone di scrittura del file testo inviandolo nel file fisico. In questo modo si sa che tutti i caratteri sono stati scritti correttamente.

P GETDIR: Indica la sottodirectory corrente nell'unità disco di numero d (0 è il disco corrente, 1 è A, 2 è B).

F IORESULT: Restituisce l'ultimo codice di errore prodotta dagli ingressi/uscite in modo .

F READ,READLN: Funzioni standard di lettura.

P RENAME: Cambia il nome del file fisico associato a f da assign per il valore indicato.

P RESET: Apre il file f in lettura/scrittura(solo lettura per i file testo).

P REWRITE: Apre il file f in lettura/scrittura (scrittura solo per i file testo) eliminandone il contenuto già esistente.

P RMDIR: Elimina la directory dal disco.

P SEEK: Inserisce l'indicatore di posizione del file (che non deve essere text) nel valore indicato.

F SEEKOEF: Come eof ma salta i bianchi.

F SEEKEOLN: come eoln ma salta i bianchi.

P SETTEXTBUF: Cambia il buffer di un file fisico che per default è di 128 byte.

P TRUNCATE: Tronca il file nella posizione corrente dell'indicatore di posizione. Il resto del file viene eliminato.

P WRITE,WRITELN: Procedure standard di scrittura.

PUNTATORI E INDIRIZZI.

F ADDR: Restituisce l'indirizzo della variabile.

F ASSIGNED: Indica se il puntatore è diverso da NIL. Equivale a p<>NIL se p è un puntatore ordinario e a @p<>NIL se p è una variabile procedurale.

F CSEG,DSEG,SEG,SPTR: Restituiscono i segmenti di codice, di dati e di stack e rispettivamente l'offset del puntatore allo stack.

P FILLCHAR: Riempie n byte di memoria a partire dall'indirizzo della variabile x, attribuendo il loro valore b. È possibile inserire un'espressione di qualunque tipo scalare al posto di b. Non viene eseguita nessuna verifica, in questo modo è possibile cancellare il contenuto di gran parte della memoria, cosa che rischia di 'piantare' il computer. Manipolare con attenzione.

P MOVE: Ricopia n byte di memoria a partire dall'indirizzo della variabile dest verso l'indirizzo della variabile srce. Seguire stesse precauzioni menzionate per Fillchar.

F OFS,SEG: Una restituisce l'offset , l'altra il segmento dell'indirizzo della variabile.

F PRT: Indica il puntatore di segmento e di offset passati come parametri.

CONTROLLO DEL PROGRAMMA.

P BREAK: Interrompe il loop for, repeat o while più nidificato in corso. Se questa procedura non viene utilizzata in un loop, il compilatore segnala un errore.

P CONTINUE: Esegue un salto nel loop for, repeat, while più nidificato in corso, ignorando le istruzioni rimaste da eseguire nella fine del loop. Se questa procedura non viene utilizzata in un loop, il compilatore segnala un errore..

P EXIT: Interrompe la procedura o la funzione in corso. Se si tratta di una funzione o di una procedura nidificata, si passa nuovamente alla procedura contenete, altrimenti al programma principale.

P HALT: Arresta il programma e restituisce il codice di errore indicato (0 se nessun parametro) al DOS.

F PARAMCOUNT: Indica il numero di parametri passati al programma sulla riga di comando.

F PARAMSTR: Restituisce l'ennesimo parametro passato al programma nella riga di comando del DOS, se n è compreso fra 0 e paramcount. Se n è nullo, si ottiene il nome del programma digitato sulla riga di comando, con il percorso di accesso.

P RUNERROR: Arresta il programma provocando un errore di esecuzione di codice indicato (0 se nessun parametro).

GESTIONE DELLA MEMORIA DINAMICA.

P DISPOSE: Libera il blocco puntato da p, precedentemente attribuito da new o getmem. Il puntatore non viene ripristinato a NIL ma non bisogna più utilizzare p^ prima di una nuova assegnazione. Se il valore del puntatore non è corretto, poiché non punta a un blocco occupato dall'heap, si verifica un errore di esecuzione 204.

P FREEMEM: Libera il blocco memoria puntato da p, precedentemente attribuito da new o getmem di cui viene indicata la dimensione.

P GETMEM: Preleva nell'heap un blocco libero della dimensione specificata e ne indica l'indirizzo in p.

P MARK: Inserisce in p il valore del puntatore all'heap, cioè l'indirizzo del byte che segue l'indirizzo della fine del blocco occupato situato nel punto più lontano nella memoria.

F MAXAVIL: Indica la dimensione del più grande blocco libero nell'heap, cioè il valore massimo possibile per il parametro della dimensione in una chiamata getmem o a new.

F MEMAVIAL: Indica la dimensione totale dei blocchi liberi nell'heap.

P NEW: Pseudoprocedura che attribuisce un blocco di memoria nell'heap com getmem.

P RELASE: Libera tutti i blocchi allocati nell'heap che cominciano dopo l'indirizzo indicato da p.

Unità printer.

L'unità printer dichiara un file testo chiamato lst e lo inizializza in modo che tutte le scritture su questo file siano inviate a stampante. Si utilizzeranno la procedure write, writeln seguono questa sintassi: write(lst,' Inizio di stampa_').

Unità crt.

GESTIONE DELLO SCERMO.

P ASSIGNCRT: Associa il file f agli ingressi/uscite standard nello stesso modo a seguito utilizzando assign con una stringa vuota come secondo parametro.

P CLRSCR: Elimina la finestra di testo. All'intero contenuto viene applicato il colore di sfondo. Il cursore non si muove.

P CLREOL: Elimina la fine della riga corrente a partire dalla posizione del cursore (compresa) fino al bordo destro della finestra di testo. Ai caratteri di fine riga viene applicato il colore di sfondo. Il cursore non si muove.

P DELLINE: Elimina la riga corrente della finestra. Le righe seguenti sono sfasate di un gradino verso l'alto e l'ultima riga viene riempita con il colore di sfondo.

P GOTOXY: Inserisce il cursore nella posizione indicata in relazione all'angolo superiore sinistro della finestra che è posizione 1,1. in questo caso, x è il numero della colonna e y quello della riga.

P HIGHVIDEO,LOWVIDEO,NORMVIDEO: Cambiano l'intensità del video( high: color+8, norm color+0, low color-8,);.

P INSLINE: Inserisce una linea nella finestra di testo nella posizione corrente del cursore. La riga inserita viene riempita con il colore di sfondo. Le righe successive vengono spostate verso il basso, l'ultima riga viene perduta.

P TEXTBACKGROUND,TEXTCOLOR: Cambiano rispettivamente il colore dello sfondo e il colore dei caratteri.

P TEXTMODE: Cambia il modo video corrente, il valore indicato è uno dei seguenti: 0= 40x25 nero&bianco, 1= 40x25 colore, 2= 80x25 nero&bianco, 3= 80x25 colore, 7= 80x25 monocromatico, 256= modi 43/50 EGA/VGA, -l= ultimo modo.

F WHEREX, WHEREY: Indicano la posizione corrente del cursore nella finestra di schermo.

P WINDOW(x1,y1,x2,y2:byte): Posiziona la finestra di testo sul valore indicato dai parametri. La finestra avrà il punto x1,y1 come angolo superiore sinistro e il punto x2,y2 come angolo inferiore destro ; essa potrà contenere quindi (x2-x1)(y2,y1) caratteri.

GESTIONE DELLA TASTIERA.

F KEYPRESSED: Restituisce true se esiste almeno un carattere nel buffer tastiera cioè se un tasto è stato premuto dall'ultima lettura. La chiamata a questa funzione non modifica il buffer tastiera.

F READKEY: Legge il primo carattere del buffer tastiera. Se questo è vuoto la procedura provoca una interruzione provvisoria dello svolgimento del programma finché non si preme un tasto.

SUONI.

P DELAY: Provoca una pausa approssimativamente della durata indicata (in millisecondi).

P SOUND: Provoca l'emissione da parte dell'altoparlante di un segnale avente la frequenza indicata(in hertz) Il suono continua fino alla chiamata nosuond.

P NOSOUND: Arresta l'emissione del segnale acustico dall'autoparlante.

Unità dos.

FILE E DISCHI.

F DISKFREE: Restituisce il numero di byte liberi nell'unità disco del numero indicato, oppure -l su il numero non è valido.

F DISKSIZE: Restituisce la dimensione totale in byte dell'unità disco del numero indicato oppure -l se il numero non è valido.

F FEXPAND: Restituisce la denominazione completa del file indicato.

P FSPLIT: Separa il nome del file completo indicato in perc in un percorso d'accesso , un nome di file parziale e una estensione.

P GETFATTR: Fornisce l'attributo del file: f deve essere una variabile di tipo file qualunque collegata a un file fisico tramite assign, ma il file non deve essere aperto.

P SETFATTR: Cambia l'attributo del file nel valore indicato. Le condizioni di f sono le stesse di getfattr.

RICERCA DI FILE.

P FINDFIRST,FINDNEXT: Permettono di ottenere il contenuto di una directory nel modo del comando DIR.

F FSEARCH: Ricerca il file il cui nome si trova nella stringa prec tramite un elenco di directory dirlist.

DATA E ORA.

Type datetime= Record

year,month,day,

hour,min,sec:Word

End;

P GETDATE: Indica la data corrente.

P GETFTIME: Indica la data e l'ora dell'ultima modifica del file in forma compatta.

P GETTIME: Indica l'ora corrente con i minuti i secondi e i centesimi di secondo.

P PACKTIME: Compatta la data e l'ora indicata in dt per creare un intero lungo utilizzabile ad esempio in setftime.

P SETDATE: Cambia la data corrente nel valore indicato. La chiamata viene ignorata se i valori dei parametri sono errati.

P SETFTIME: Cambia la data e l'ora dell'ultima modifica del file f nel valore indicato.

P SETTIME: Cambia l'ora corrente nel valore indicato.

P UNPACKTIME(i:longint; var dt:datetime): Decompatta l'intero lungo che si suppone debba contenere la data e l'ora in formato compatto.

INTERRUPT.

P GETINTVEC: Indica in p l'indirizzo del vettore di interrup BIOS di numero int.

P INTR: Esegue l'interrupt BIOS di numero int.

P MSDOS: Come intr ma il numero di interrupt è $21.

P SETINTVEC: Cambia il valore del vettore di interrupt numero int nell'indirizzo indicato in p. Riservato agli esperti.

ESECUZIONE DEL PROCESSO.

type pathstr = string[79].

F DOSEXITCODE: Restituisce il codice restituito dall'ultimo programma eseguito dal dos.

P EXEC(prog:pathstr; comando: comstr):Esegue un programma il cui nome su disco è prog. la riga di comando viene inviata al programma come se fosse già stata digitata al prompt del Dos ma senza il nome del programma. Si consiglia di effettuare prima una chiamata a swapvectors e dopo la chiamata di exec. Ad esempio una chiamata a dir si effettuerà in questa maniera: exec('command.com','C DIR *.*').

P KEEP: Arresta il programma restituendo il codice di uscita indicato ma il programma resta residente. Procedura riservata agli esperti.

P SWAPVACTORS: Al momento dell'inizializzazione di un programma di Borland Pascal, viene modificato un determinato numero di vettore di interrupt BIOS.

AMBIENTE E DOS.

F DOSVERSION: Indica la versione corrente del DOS ad esempio il valore $301 significa DOS 3.01.

F ENVCOUNT: Indica il numero di stringhe contenute nell'ambiente DOS.

F ENVSTR: restituisce la stringa i-esima dell'ambiente DOS in formato VAR=VALORE.

P GETCBREAK, SETCBREAK: Fornisce (get) o modifica (set) il valore del tasto a due stati di verifica ctrl-break del DOS. Quando questo valore è false il dos verifica la pressione di questo tasto di interruzione solo al momento degli ingressi/uscite. Diversamente la verifica ha luogo costantemente.

F GETENV: Fornisce il valore della variabile di ambiente ambvar. Ad esempio Getenv('path') fornisce il percorso di accesso corrente al DOS.

Unità Graph

Vedi le fotocopie del libro "Turbo Pascal 7.0 la guida completa" modulo 16.

CODICI D'ERRORE .

Errori di compilazione.

1 MEMORIA ESAURITA: Superamento della capacità di memoria. Utilizzare il compilatore come riga di comando, dividere i file sorgenti in unità, ecc.

2 ATTESA IDENTIFICATORE: In questo punto dovrebbe trovarsi un identificatore. Probabilmente stata omessa un'istruzione begin oppure è stata utilizzata una parola riservata come identificatore.

3 IDENTIFICATORE SCONSCIUTO: Il termine è sconosciuto. Non è stato dichiarato oppure il suo nome è scritto in modo errato o l'identificatore non è visibile dalla posizione corrente.

4 IDENTIFICATORE DOPPIO: Due termini sono stati chiamati con lo stesso identificatore

5 ERRORE DI SINTASSI: Un carattere non è corretto. Verificare di aver scritto correttamente gli apostrofi nelle stringhe di caratteri nonché le parentesi graffe nei commenti

6 ERRORE IN UNA COSTANTE REALE Costante reale di formato errato( -78,89*10-5 = 78.89e-5)

7 ERRORE IN UNA COSTANTE INTERA: Costante intera di formato errato(decimale:+128-l2.. esadecimale $0 $aff $1ab..)

8 COSTANTE STRINGA MAGGIORE DELLA RIGA: Probabilmente è stato omesso l'apostrofo finale della stringa

10 FINE INATTESA DEL FILE: Un commento non è stato chiuso oppure vi è un begin o end di troppo.

11 RIGA TROPPO LUNGA: Le righe sono limitate a 127 caratteri

12 ATTESA IDENTIFICATORE DI TIPO: Il compilatore attende un identificatore di tipo

17 ISTRUZIONE DI COMPILAZIONE ERRATA

19 TIPO SCONOSCIUTO IN UNA DEFINIZIONE DI PUNTATORE: È possibile definire un tipo puntatore su un tipo non ancora dichiarato, ma in seguito deve venire dichiarato della stesso gruppo di dichiarazioni di tipi.

20 ATTESA IDENTIFICATORE DI UNA VARIABILE

21 ERRORE DI TIPO (vedere tutti i tipi)

22 STRUTTURA TROPPO GRANDE: La dimensione massima degli elementi di borland Pascal e di 65.520 byte

23 TIPO DI BASE DELL'INSIEME FUORI LIMITE: Il tipo degli elementi di un insieme è limitato a 256 elementi

24 FILE DI FILE NON AMMESSI

25 LUNGHEZZA DI UNA STRINGA NON VALIDA: I valori corretti sono compresi tra 1 e 255

26 TIPO NON VALIDO Operatore applicato su tipi inadeguati

27 TIPO DI BASE DI INTERVALLO NON VALIDO

28 LIMITE INFERIORE MAGGIORE DI QUELLO SUPERIORE

29 ATTESA TIPO SCALARE

30 ATTESA COSTANTE INTERA: Le estremità degli indici degli array devono essere delle vere costanti e non delle variabili o delle costanti 'false'

31 ATTESA COSTANTI

32 ATTESA COSTANTE INTERA O REALE

34 RISULTATO DI FUNZIONE NON VALIDO:I risultati di una funzione devono essere di questi tipi: semplice, stringa, puntatore

36 ATTESA BEGIN

37 ATTESA END

38 ATTESA ESPRESSIONE INTERA

39 ATTESA ESPRESSIONE SCALARE

40 ATTESA ESPRESSIONE BOOLEANA: Le condizioni di controllo dei loop whilw, repeat e di if devono essere delle espressioni booleane

41 TITPI DI OPERANDI NON CORRISPONDENTI ALL'ORERATORE (es. integer/integer)

42 ERRORE NELL'ESPRESSIONE: È stato omesso un operatore oppure è stato scritto scorrettamente

43 ASSEGNAZIONE ILLEGALE: File e variabili senza tipo non possono essere assegnate da :=. Utilizzare assign.

44 ATTESA DIDENTIFICATORE DI CAMPO: Un nome di campo deve seguire il nome della variabile record e il simbolo punto

48 SEGMENTO DI CODICE TROPPO GRANDE: Dividere il programma in unità

49 SEGMENTO DI DATI TROPPO GRANDE: Variabili statiche in eccesso. Utilizzare la memoria dinamica

50 ATTESA DO: È stata omessa l'istruzione do in un loop while o for.

54 ATTESA OF

55 ATTESA INTERFACE: Bisogna inserire questa parola dopo l'intestazione delle unità

57 ATTESA THEN: Per ogni if occorre un then

58 ATTESA TO O DOWNTO :Omesso nel loop for

59 DICHIARAZIONE IN AVANTI NON DEFINITA:È stata dichiarata una procedura o una funzione nell'interfaccia di una unità( o forward) senza indicare ulteriormente la definizione

61 VARIAZIONE DI TIPO NON VALIDA: I tipi devono avere la stessa dimensione

62 DIVISIONE PER ZERO

63 TIPO DI FILE NON VALIDO: Verificare la sintassi della procedura: essa non ammette questo tipo di file

64 IMPOSSIBILE LEGGERE O SCRIVERE QUESTI TIPI: I tipi che possono essere trattati con read o write sono: tipo-intero, tipo-scalare, stringa di caratteri, carattere, booleano.

65 ATTESA VARIABILE PUNTATORE

66 ATTESA VARIABILE STRINGA DI CARATTERI

67 ATTESA ESPRESSIONE STRINGA DI CARATTERI

68 RIFERIMENTO CIRCOLARE DI UNITÀ: Due unità fanno riferimento l'una all'altra nelle rispettive clausole uses

69 NOME DI UNITÀ NON VALIDO

70 VERSIONE DI UNITÀ NON VALIDA: Occorre ricompilare l'unità

73 ATTESA IMPLEMENTATION: Questa parola riservata è stata omessa o scritta in modo errato fra le parti interfaccia e implementazione dell'unità

74 DIVERGENZA DI TIPO FRA COSTANTE E SELETTORE DEL CASO: I tipi di selettore del caso in una istruzione case e delle costanti devono essere compatibili

75 ATTESA VARIABILE RECORD

76 COSTANTE FUORI LIMITE

77 ATTESA VARIABILE FILE

78 ATTESA ESPRESSIONE PUNTATORE

79 ATTESA ESPRESSIONE INTERA O REALE

83 ARGOMENTO DI @ NON VALIDO

84 ATTESA UNIT

85 ATTESA PUNTO E VIRGOLA: Ci si trova a inizio riga, si guardi alla fine della riga precedente

86 ATTESA DUE PUNTI

87 ATTESA VIRGOLA

88 ATTESA PARENTESI GRAFFFA APERTA (Alt+123)

89 ATTESA PARENTESI CHIUSA (Alt+125)

90 ATTESA SEGNA =

91 ATTESA SEGNO :=

92 ATTESA PARENTESI QUADERA APERTA

93 ATTESA PARENTESI QUADRA CHIUSA

94 ATTESA PUNTO

95 ATTESA SEGNAO ..

96 TROPPE VARIABILI: Non più di 64K di variabili globali o locali.

97 VARIABILE DI CONTOLLO DEL LOO

P FOR NON VALIDA: Il contatore deve essere una variabile scalare definita nella parte dichiarazioni della procedura o funzione corrente

98 ATTESA VARIABILE INTERA

99 TIPI DI FILE NON AMMESSI: Le constanti tipizzate in particolare, non possono essere tipi file

101 ORDINE DEI CAMPI NON VALIDO: In una costante record o oggetto è necessario indicare i campi nell'ordine di dichiarazione

102 ATTESA STRINGA DI CARATTERI COSTANTE

103 ATTESA VARIABILE INTERA O REALE

104 ATTESA VARIABILE SCALARE

106 ATTESA ESPRESSIONE CARATTERE

112 COSTANTE FUORI LIMITE IN CASE: Non è possibile utilizzare degli interi lunghi in una istruzione case né dei reali

113 ERRORE NELL'ENUNCIATO

116 PER LA COMPILAZIONE IMPOSTARE MODO 8087: In modo senza coprocessore non sono ammesse le operazioni sui tipi extended, double, single e comp

121 QUALIFICATORE NON VALIDO: La variabile indicizzata non è un array; la variabile seguita da un punto non è un oggetto o un record; è stata differenziata una variabile che non è un puntatore

123 TROPPI SIMBOLI: È possibile provare a passere in modo oppure dividere il programma in unità

124 PARTE ISTRUZIONI TROPPO GRANDE: Utilizzare delle procedure

126I FILE DEVONO ESSERE DEI PARAMETRI VARIABILI

128 ISTRUZIONE CONDIZIONALE INSERITA IN MODO ERRATO

129 ISTRUZIONE ENDI

F MANCANTE

131 L'INTESTAZIONE NON CORRISPONDE ALLA DEFINIZIONE PRECEDENTE: Quando si definisce una procedura o una funzione forward o quando la si dichiara come interfaccia, è possibile omettere gli argomenti e il tipo di risultato. Tuttavia se vengono forniti nuovamente, essi devono corrispondere esattamente alla dichiarazione

133I MPOSSIBILE VALUTARE QUESTA ESPRESSIONE: Si sta utilizzando qualcosa di non ammesso in una espressione costante, ad esempio l'operatore @ o un nome di funzione non valido

135 PARAMETRO DI FORMATO NON VALIDO

137 VARIABILI STRUTTURATE NON AMMESSE: Si è provato ad effettuare un'operazione non ammessa su variabili di tipo composto (record, array, ecc.)

140 OPERAZIONE A VIRGOLA MOBILE ERRATA: Si verifica quando si ha una divisione per zero, un superamento di capacità, un argomento errato di funzione o in altri casi simili

142 ATTESA VARIABILE PROCEDURALE: L'operatore @ viene utilizzato in modo scorretto

143 RIFERIMENTO A PROCEDURA O FUNZIONE NON CORRRETTO: Si verifica quando si utilizza una procedura in una espressione, allo stesso modo di una funzione, o al contrario, oppure quando si assegna una procedura o una funzione ad una variabile procedurale, quando essa non è stata dichiarata come chiamata far

Errori di esecuzione.

ERRORI DEL DOS

1 NUMERO DI FUNZIONE NON CORRETO: Al momento di una chiamata a MS DOS il numero di funzione (situato nel registro AL) non era corretto

2 FILE NON TROVATO: Provocato da reset, append, rename, erase se il nome del file assegnato al file logico non è corretto

3 PERCORSO NON TROVATO: Il percorso attribuito come parametro a chdir, mkdir, rmdir non è corretto, oppure il percorso di accesso al file fisico collegato al file logico cioè parametro di reset, append, rename, erase non è corretto

4 TROPPI FILE APERTI: Il numero dei file aperti è inizialmente limitato a 15. È possibile cambiare questo valore scrivendo ad esempio files=20 nel CON.SYS

5 ACCESSO AL FILE NEGATO: Il file non viene aperto nel modo adeguato oppure è protetto in scrittura o la directory esiste già (mkdir) o non è vuota (rmdir)

6 HANDLE DEL FILE NON CORRETTO

12 CODICE DI ACCESSO AL FILE NON CORRETTO

15 NUMERO DISCO NON CORRETTO

16 IMPOSSIBILE ELIMINARE LA DIRECTORY CORRENTE: Restituito da rmdir se si prova ad eliminare la directory corrente

17 IMPOSSIBILE RINOMINARE DA UN DISCO ALL'ALTRO: I file rinominati devono essere sullo stesso disco

ERRORI DI INGRSSI/USCITE

100 ERRORE DI LETTURA SU DISCO: Si è provato a leggere oltre la fine del file

101 ERRORE DI SCRITTURA: Il disco è pieno

102 IL FILE NON È ASSEGNATO: Prima di utilizzare un fil logico, occorre associargli un file fisico con assign

103 IL FILE NON È APERTO: I file devono essere aperti se si utilizzano blockread, blockwrite, close, append ecc.

104 IL FILE NON È APERTO IN LETTURA: Esso dovrà essere aperto se si utilizzano eof, eoln, read, seek, seekof, seekeoln

105 IL FILE NON È APERTO IN SCRITTURA: Il file deve essere aperto se si utilizzano write, writeln

106 FORMATO NUMERICO NON VALIDO: Restituito da read, readln se il formato numerico del numero letto non è valido

ERRORI CRITICI

150 DISCO PROTETTO IN SCRITTURA

151 UNITÀ SCONOSCIUTA

152 DISCO NON PRONTO

153 COMANDO SCONOSCIUTO

154 ERRORI DI DATI (CRC)

155 LUNGHEZZA DI STRUTTURA DI RICHIESTA NON CORRETTA

156 ERRORE DI RICERCA

157 TIPO SUPPORTO SCONOSCIUTO

158 SETTORE NON TROVATO

159 CARTA ESAURITA NELLA STAMPANTE

160 ERRORE DI SCRITTURA

161 ERRORE DI LETTURA

162 ERRORE GENERALE

ERRORI FATALI

200 DIVISIONE PER ZERO: Prima di fare una divisione verificare che il divisore non sia nullo

201 VALORE FUORI LIMITE: Questo errore può apparire solo se è stata utilizzata l'istruzione. L'indice di un array è fuori limite

202 SUPERAMENTO DELLA CAPACITÀ DELLO STACK: Probabilmente sono state utilizzate delle procedure o funzioni ricorsive oppure sono stati trasmessi grandi array come parametri per valore. Utilizzare l'istruzione

203 SUPERAMENTO DELLA CAPACITÀ DELLO HEAP: Errore restituito da new e getmem se lo spazio disponibile nell'heap è insufficiente. Effettuare prima una chiamata a maxavial per evitare questo problema

204 OPERAZIONE NON VALIDA SU UN PUNTATORE: è stato differenziato un puntatore nullo oppure il parametri di dispose o freemem non è all'inizio di un blocco fornito da new o getmem.

205 SUPERAMENTO CON VIRGOLA MOBILE: È stato superato il limite superiore degli intervalli reali

207 OPERAZIONE CON VIRGOLA MOBILE NONO VALIDA: Il valore passato da trunc o round è fuori dai limiti dei valori per longint. L'argomento di sort è negativo, l'argomento di ln è negativo o nullo

215 SUPERAMENTO ARITMETICO: Questo errore può verificarsi solo se si è stata utilizzata l'istruzione . Un'operazione aritmetica ha provocato un superamento di capacità

ISTRUZIONI DI COMPILAZIONE.

Istruzioni di compilazione normali.

Allineamento sulle parole,:Questa istruzione provoca l'allineamento sulle parole in memoria delle variabili che occupano più di un byte, ciò significa che i loro indirizzi sono pari; ad esempio una STRING[80] occuperà 82 byte anziché 81. La funzione sizeof tiene conto di ciò. Default: ATTIVA

Valutazione dei booleani : Questa istruzione esegue la commutazione fra la valutazione breve o completa dei booleani (con la valutazione breve si velocizza il programma). Default: DISATTIVA

Informazione di debugging , : Questa istruzione obbliga il compilatore ad inserire le indicazione necessarie al debugging; le unità compilate con non possono essere eseguite passo passo. Default ATTIVA

Emulazione ,: Questa istruzione indica al compilatore di inserire una biblioteca matematica che emula logicamente il cooprocessore. Si applica all'intero programma e ha senso solo se l'istruzione $N è attiva. Default ATTIVA

Chiamate lunghe o brevi : Questa istruzione chiede al compilatore di utilizzare delle chiamate lunghe di extra-segmenti per le procedure. Questa istruzione deve venire ovviamente attivata per tutte le procedure che verranno utilizzate come variabili di tipo procedurale; si consiglia sempre di attivarla se si desiderano utilizzare variabili di tipo procedurale. Default DISATTIVA

Genareazione del codice 80286 , : In modo passivo solo le istruzioni di 8086 vengono generate dal compilatore e il programma funziona su tutti i PC. In modo attivo il codice viene migliorato dall'utilizzo di istruzioni 80286; il programma può venire utilizzato dagli AT e da macchiane superiori

Verifica degli ingressi/uscite , : Questa istruzione modifica la reazione delle procedure di ingressi/uscite in caso di problemi. Quando è disattiva determinati errori non interromperanno il programma ed è quindi necessario consultare la funzione Io result. Default ATTIVA

Simboli locali, :Questa istruzione ha lo stesso significato di $D eccetto che invece dei numeri di riga, si tratta di nomi e simboli locali; una unità compilata con questa istruzione disattivata (ma $D attiva) può venire eseguita passo passo ma gli identificatori da essa utilizzati non possono né venire visualizzati né modificati. Default ATTIVA

Calcolo numerico , : Questa istruzione indica al compilatore di utilizzare il modo di calcolo del coprocessore, avvalendosi dell'aumento di precisione di un notevole aumento della velocità Default DISATTIVA

Overlay , : Per l'utilizzo degli overlay si faccia riferimento al manuale di Borland Pascal

Parametri aperti : In modo passivo , gli argomenti di funzione o procedure dichiarati STRING sono STRING[255]. In modo attivo si tratta di stringhe di caratteri aperti

Superamento della capacità di memoria : In attivo alcune funzioni matematiche intere ( + - * abs sqr succ dec) vengono controllate per verificare eventuali superamenti di capacità. Per eseguire di debugging queste funzioni devono essere utilizzate unitamente a $R

Verifica dei ranghi , : Questa istruzione obbliga il programma ad effettuare delle verifiche : mancato superamento degli indici di un array, dei tipi numerati o intervalli. Non viene verificato il superamento degli interi in corso di calcolo (utilizzare ). Queste istruzioni rallentano molto il programma, si consiglia di utilizzarle solo per il debugging. Default DISATTIVA

Superamento di capacità dello stack , : Lo stack è la memoria del programma il suo superamento comporta disastri. Non bisogna disattivarla altrimenti si verificherebbero dei disastri (vedi ) Default ATTIVA

Tipi di puntatore , : In modo passivo il risultato dell'operatore @ è di tipo Pointer. In modo attivo è di tipo ^tipe dove type è quello della variabile

Verifica delle stringhe , : Questa istruzione chiede al compilatore la stretta identità dei tipi di stringhe di caratteri nelle assegnazioni e in modo particolare i parametri di procedure e funzioni Default ATTIVA

Sintassi estesa : In modo attivo questa istruzione permette alcune estensioni alla solita sintassi ( le funzioni possono venire chiamate come procedure senza dover immagazzinare il loro risultato in una variabile; le stringhe terminanti con zero possono venire utilizzate come nel linguaggio C)

Riferimenti a simboli : In modo attivo, conserva delle informazioni di riferimenti ai simboli delle unità nel file tpu delle unità, destinate in modo particolare al Browser di Borland Pascal. Il file è un po' più lungo ma la velocità di esecuzione dei programmi non viene modificata. Questa istruzione non è attiva se $D o $L è disattivata

Inclusione : Questa istruzione include il testo inserito nel file indicato come parametro nella posizione corrente, ma non può trovarsi in un blocco di istruzioni. I file inclusi hanno perduto molto interesse con l'introduzione delle unità che permettono di includere un codice già compilato

Collegamento con un file oggetto : Questa istruzione collega il programma e il file come parametro che contiene il codice macchina; si veda il manuale per ulteriori dettagli.

Allocazione della memoria : I tre interi specificano rispettivamente la dimensione memoria dello stack la dimensione minima e massima dell'heap. I valori per default sono 16384, 0, 655360 e non vi è alcun motivo di modificarli se non per aumentare la dimensione dello stack (massimo 65520) quando esso supera la capacità cosa che può accadere per programmi ricorsivi o che utilizzano array molto grandi quali variabili locali o parametri di procedure

Nome delle unità come ovelay permette di inserire una unità come ovelay. Si veda il manuale per l'utilizzo degli overlay.

Istruzioni condizionali.

Queste istruzioni definiscono dei simboli di compilazione che permettono di nidificare la natura del testo compilato a seconda del loro valore. Questi simboli sono del generi dei booleani; è possibile definirli attraverso la seguente istruzione: e attribuirgli il valore false con l'istruzione . Ad esempio un simbolo predefinito CPU87 indica costantemente se un coprocessore è presente. Si può quindi scrivere:

type real = extended

type extended = real

(istruzione obbligatoria)

I simboli predefiniti sono:

CPU86 Indica che il processore appartiene alla famiglia degli intel

CPU87 Indica se esiste un cooprocessore aritmetico del tipo 8087

MSDOS Indica che il DOS o MS DOS o PC DOS è presente ( false con Os/2)

var55( var 50, 40) indica che il compilatore è in versione 5.5 (5.0 4.0)

Esistono le seguenti istruzioni condizionali:

testo1

testo2

e il contrario

testo1

testo2





Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta