File di testo

Dichiarazione del file di testo Var T: Text; Comandi Assign(T, s); Assegna al file logico FT il file fisico di nome s Reset(T); Apre il file in lettura Rewrite(T); Apre/crea il file in scrittura Append(T); Apre/crea il file in scrittura, se esiste già del testo si posiziona alla fine Close(T); Chiude il file Read(T, x); … Leggi tutto

File ad accesso casuale

Dichiarazione per operare con un file ad accesso casuale, per esempio di interi Var FI: File of Integer; Comandi Assign(FI, s); Assegna al file logico FI il file fisico di nome s Reset(FI); Apre il file in lettura Rewrite(FI); Apre/crea il file in scrittura Append(FI); Apre/crea il file in scrittura, se esiste già si posiziona … Leggi tutto

File ad accesso sequenziale

Dichiarazione per operare con un file ad accesso sequenziale, per esempio di interi Var FI: File of Integer; Comandi Assign(FI, s); Assegna al file logico FI il file fisico di nome s Reset(FI); Apre il file in lettura Rewrite(FI); Apre/crea il file in scrittura Append(FT); Apre/crea il file in scrittura, se esiste già si posiziona … Leggi tutto

Prova i file

Accesso sequenziale Program ProvaFileInteri; Const   nome=’fileinteri.arc’; Var   FI: File of Integer;   x: Integer;   i: Integer; Begin   Assign(FI, nome);   Rewrite(FI);   For i:=1 To 10 Do       Begin         x:=10*i;         Write(FI, x);       End;   Close(FI);       … Leggi tutto

Unit

Con le unità si realizza la programmazione modulare in Turbo Pascal. Si utilizzano le unità per dividere in parti più piccole un programma molto grande rendere più leggibile il codice dividendolo in parti logicamente indipendenti creare delle librerie di comandi o funzioni da riutilizzare. Sintassi Unit NomeUnita; { Intestazione } Interface { R i s … Leggi tutto

Memoria dinamica

Operatore Sintassi Descrizione @ Addr Addr(x): pointer; Restituisce l’indirizzo dell’oggetto specificato Seg Seg(x): Word; Restituisce il segmento dell’oggetto specificato Ofs Ofs(x): Word; Restituisce l’offset dell’oggetto specificato Ptr Ptr(Seg, Ofs: Word): pointer; Trasforma una base di segmento e un indirizzo di segmento in un valore per un puntatore Cseg CSeg: Word; Restituisce il valore attuale del … Leggi tutto

Esempi di funzioni

Le funzioni restituiscono un valore a chi ha fatto la chiamata Quadrato di un numero function QUADRATO(X: Real): Real; begin     QUADRATO:=X*X; end; Adesso, per calcolare lo spostamento in un moto uniformemente accelerato, possiamo scrivere s:=1/2*a*t*t; oppure s:=1/2*a*Sqr(t); oppure s:=1/2*a*QUADRATO(t); Realizzare una funzione che restituisce la misura dell’ipotenusa, date quelle dei cateti, di un … Leggi tutto

Procedure con parametri misti

Passaggio dei parametri misto Incrementa (decrementa?) di delta la variabile a Procedure incDelta(Var a: Integer; delta: Integer); Procedure decDelta(Var a: Integer; delta: Integer); Restituisce in c il minimo tra a e b Procedure minimo2(a, b: Integer; Var c: Integer); Begin   If(a <= b) Then       c:=a   Else       c:=b;  … Leggi tutto

Procedure con parametri per variabile

Passaggio dei parametri per riferimento/indirizzo/variabile Scambia il contenuto di 2 variabili Procedure scambia2(Var x, y: Real); Var     temp: Real; Begin     temp:=x:     x:=y;     y:=temp; End; Ordina il contenuto di 2 variabili Procedure ordina2(Var x, y: Real); Begin   If(x > y) Then       scambia2(x,y); End; Ordina … Leggi tutto

Procedure con parametri per valore

Passaggio dei parametri per valore Scrive a una certa posizione un certo messaggio Procedure scriviMessaggio(riga, colonna: Integer; msg: String); Begin   GotoXY(colonna, riga);   Write(msg); End; Scrive n volte un numero casuale tra 1 e 6 Procedure lanciaDadoVolte(n: Integer); Var     dado: Integer; Begin     Randomize;     For i:=1 to n Do … Leggi tutto