unità didattica 4 Le funzioni del Pascal
Transcript
unità didattica 4 Le funzioni del Pascal
unità didattica 4 Le funzioni del Pascal 1. Le funzioni predefinite Il Pascal contiene una ricca biblioteca di funzioni predefinite, ovvero di calcoli effettuati su dati numerici o alfanumerici idonei a determinare un certo valore in uscita. Si tratta di funzioni predefinite in quanto il programmatore non deve scrivere alcuna linea di programma per dichiarare o descrivere la funzione: deve semplicemente chiedere l’esecuzione della funzione stessa tramite un’istruzione detta «richiamo di funzione». seguimi Per chiamare una funzione, in generale si deve citare il nome della funzione, citando tra parentesi la lista di parametri, cioè i valori di ingresso o, eventualmente, i valori in uscita. Le funzioni si dividono in matematiche (operanti cioè su valori numerici e consistenti in calcoli matematici), funzioni di manipolazione di stringhe alfanumeriche ed altre funzioni che definiremo “diverse”in quanto non appartengono propriamente né alla prima né alla seconda classe. 2. Le funzioni matematiche Tra le funzioni matematiche più importanti, segnaliamo: VALORE ASSOLUTO ABS(variabile numerica) Restituisce il valore assoluto di una certa variabile numerica Esempio: a := ABS(b) Il valore assoluto di b viene posto in a. INTERO INT(variabile numerica) Restituisce la parte intera di una certa variabile numerica. Il risultato è una variabile reale. Esempio: La parte intera di b viene posta in a. a := INT(b) FRAZIONATURA FRAC(variabile numerica) Elimina la parte intera di una certa variabile numerica. Il risultato è una variabile reale. Esempio: La parte frazionaria di b viene posta in a. 26 a := FRAC(b) Modulo on line • Uno strumento per programmare: cenni al linguaggio Pascal TRONCATURA TRUNC(variabile numerica) Elimina la parte decimale di una certa variabile numerica. Il risultato è una variabile intera. Esempio: a := TRUNC(b) La parte decimale di b viene posta in a. ARROTONDAMENTO ROUND(variabile numerica) Restituisce il numero intero più vicino (per eccesso o per difetto a seconda che la parte frazionaria ecceda o meno 0,5) alla variabile numerica indicata. Esempio: a := ROUND(b) Se b = 1,6 allora a = 2; Se b = 1,4 allora a = 1; Se b = 1,5 allora a = 2 QUADRATO SQR(variabile numerica) Restituisce il quadrato di una certa variabile numerica. Esempio: Il quadrato di b viene posto in a. a := SQR(b) RADICE QUADRATA SQRT(variabile numerica) Restituisce la radice quadrata di una certa variabile numerica. Esempio: La radice quadrata di b viene posta in a. a := SQRT(b) ESPONENZIALE EXP(variabile numerica) Restituisce l’esponenziale di una certa variabile numerica. Esempio: a := EXP(b) L’esponenziale di b (ovvero eb) viene posto in a. LOGARITMO NEPERIANO LN(variabile numerica) Restituisce il logaritmo neperiano (lne) di una certa variabile numerica. Esempio: a := LN(b) Il logaritmo neperiano di b (lne b)viene posto in a. SENO TRIGONOMETRICO SIN(variabile numerica) Restituisce il seno di una certa variabile numerica che esprime i radianti di un certo angolo. Esempio: Il seno di b viene posto in a. a := SIN(b) COSENO TRIGONIOMETRICO COS(variabile numerica) Restituisce il coseno di una certa variabile numerica che esprime i radianti di un certo angolo. UD4 • Le funzioni del Pascal 26 27 Esempio: Il coseno di b viene posto in a. a := COS(b) DISPARITÀ ODD(variabile numerica) Restituisce il valore booleano TRUE (VERO) o FALSE (FALSO), a seconda che la variabile numerica sia rispettivamente dispari o pari Esempio: a := ODD(b) Se b è dispari, a = TRUE, altrimenti a = FALSE. NUMERO CASUALE INTERO RANDOM(variabile numerica) Restituisce un intero compreso tra 0 e la variabile numerica indicata. Esempio: a := RANDOM(b) In a viene posto un numero intero estratto dalla tabella dei numeri casuali, compreso tra 0 e b. NUMERO CASUALE REALE Restituisce un reale compreso tra 0 e 1. RANDOM Esempio: a := RANDOM In a viene posto un numero reale estratto dalla tabella dei numeri casuali, compreso tra 0 e 1. 3. Le funzioni su stringhe Tra le funzioni più importanti operanti su stringhe alfanumeriche, ricordiamo: LUNGHEZZA LENGTH(variabile stringa) Restituisce il valore intero relativo alla lunghezza della variabile stringa indicata, cioè il numero di caratteri che la costituiscono. Esempio: a := LENGTH(b) La lunghezza della stringa b viene posta in a. ESTRAZIONE DI UNA PARTE DI STRINGA COPY(variabile stringa , posizione , numero) Restituisce i caratteri pari a numero, a partire da posizione presenti in una certa variabile stringa. Esempio: a := COPY(b, 5, 7) Dalla stringa b viene estratto l’insieme dei 7 caratteri a partire dal quinto carattere presente nella stringa e posto in a. Se ad esempio b contenesse «TERGICRISTALLI» in a verrebbe memorizzata la parola «ICRISTA». CONCATENAZIONE CONCAT(variabile stringa , variabile stringa, … , variabile stringa) Restituisce una variabile stringa formata dalla concatenazione, ovvero dall’unione sequenziale accodata, delle stringhe indicate. Esempio: 28 a := CONCAT(b, c, d) Modulo on line • Uno strumento per programmare: cenni al linguaggio Pascal Nella stringa a verrà posta l’unione delle stringhe b, c e d. Ad esempio se b contenesse «ROSSI», c «VERDI» e d «BIANCHI», in a verrebbe memorizzata la stringa «VERDIROSSIBIANCHI». POSIZIONE POS(variabile stringa1 , variabile stringa2) Restituisce la posizione a partire dalla quale variabile stringa1 si trova in variabile stringa2 . Il risultato è 0 se la stringa non è stata trovata. Esempio: a := POS(‘ROSSI’, b) Nella variabile stringa b viene eseguita la ricerca della stringa «ROSSI»: se la ricerca ha successo, in a sarà memorizzata la posizione a partire dalla quale «ROSSI» si trova in b, altrimenti in a viene restituito il valore 0. Se b contiene «BIANCOROSSI» in a sarà memorizzato 7. 4. Le altre funzioni Tra le altre funzioni segnaliamo: CARATTERE CODICE ASCII CHR(variabile numerica) Restituisce il carattere corrispondente nel codice ASCII al numero indicato come argomento della funzione. Ricordiamo che tutti i 256 caratteri corrispondenti al codice ASCII sono codificati ciascuno mediante una sequenza di 8 bit. Esempio: a := CHR(60) Nella variabile di tipo carattere a viene posto «<» corrispondente al decimale 60. KEYPRESSED Restituisce il valore booleano TRUE (VERO) se è stato battuto un tasto sulla tastiera, altrimenti il valore FALSE (FALSO). Risulta molto utile nel costrutto REPEAT UNTIL. Esempio: REPEAT UNTIL KEYPRESSED Dato che KEYPRESSED è falso sino a che l’utente non digita qualcosa sulla tastiera, il programma si arresta sino a che non si batte un qualsiasi tasto. OCCUPAZIONE IN BYTE SIZEOF(variabile) Restituisce il numero di byte occupati in memoria centrale dalla variabile indicata. Esempio: a := SIZEOF(b) Nella variabile a viene posto un valore intero pari al numero di byte di memoria centrale occupati da b. PRECEDENTE NUMERO O CARATTERE CODICE ASCII PRED(valore) Restituisce il numero intero precedente (se valore è un numero intero) o il carattere precedente nel codice ASCII (se valore è di tipo char). Esempio: a := PRED(50) Nella variabile a viene posto 49 che precede l’intero 50 indicato. a := PRED(‘F’) Nella variabile a viene posto il carattere «E» che precede nel codice ASCII «F». UD4 • Le funzioni del Pascal 28 29 SUCCESSIVO NUMERO O CARATTERE CODICE ASCII SUCC(valore) Restituisce il numero intero successivo (se valore è un numero intero) o il carattere successivo nel codice ASCII (se valore è di tipo char). Esempio: a := SUCC(50) Nella variabile a viene posto 51 che segue immediatamente l’intero 50 indicato. a := SUCC(‘F’) Nella variabile a viene posto il carattere «G» che segue nel codice ASCII il carattere «F». MAIUSCOLA DI UN CARATTERE UPCASE(carattere) Restituisce la lettera maiuscola corrispondente al carattere indicato. Esempio: Nella variabile a viene posto «H». a := UPCASE(‘h’) a := UPCASE(‘?’) Nella variabile a viene posto il carattere «?» dato che non esiste maiuscolo del carattere indicato. 30 Modulo on line • Uno strumento per programmare: cenni al linguaggio Pascal