Caratteri e Stringhe
Transcript
Caratteri e Stringhe
Funzione fprintf fprintf(fileID, format, A, ...) fprintf(format, A, ...) count = fprintf(...) MATLAB Alcune funzioni utili: fprintf fprintf(fileID, format, A, ...) stampa il contenuto del vettore A per colonne secondo il formato format sul file specificato da fileID fprintf(format, A, ...) come sopra, ma visualizza il risultato sullo schermo count = fprintf(...) assegna alla variabile count il numero di byte che sono stati stampati MATLAB - fscanf Funzione fprintf Funzione fprintf format E’ una stringa racchiusa fra apici che descrive come deve apparire il testo da stampare. Le parti costanti del testo devono essere riportate così come devono apparire. Se si deve stampare il contenuto di una variabile, si deve inserire una lettera corrispondente al tipo di dato preceduta da %. ( principali %d = intero, %f = reale, %e = reale in formato esponenziale, %s = stringa ) Possono essere presenti anche caratteri speciali (a capo, tabulazione, apici, ecc.) MATLAB - fscanf 2 3 Esempi fprintf('Ciao! ') stampa Ciao! a=1; fprintf('Il contenuto della variabile a è %d', a); stampa Il contenuto della variabile a è 1 MATLAB - fscanf 4 1 Funzione fprintf Funzione fprintf Esempi Esempi a=[5 4 3 2 1]; fprintf('Il contenuto di a(2) è %d', a(2)); a=[5 4 3 2 1; 2 3 4 5 6]; fprintf('%d ', a); stampa Il contenuto di a(2) è 4 5 2 4 3 3 4 2 5 1 6 stampa (prima il contenuto della prima colonna, poi della seconda, ecc.) a=[5 4 3 2 1]; fprintf('%d ', a); stampa 5 4 3 2 1 MATLAB - fscanf 5 Funzione fprintf Esempi a=[5 4 3 2 1]; fprintf('%d ', a); 5 4 3 2 1 stampa apice singolo simbolo di percentuale backslash (barra inversa singola) backspace (cancella il carattere sulla sinistra) a capo tabulazione orizzontale MATLAB - fscanf 6 Funzione fprintf Principali caratteri speciali che possono apparire nella stringa di formato: '' %% \\ \b \n \t MATLAB - fscanf fprintf('%d \n', a); stampa 7 5 4 3 2 1 MATLAB - fscanf 8 2 Funzione fprintf Funzione fprintf Esempi Esempi fprintf('%d \t', a); fprintf('Cesare disse: ''Il dado è tratto'' \n'); stampa 5 4 3 2 stampa Cesare disse: 'Il dado è tratto' 1 p=15; fprintf('Il %d%% della somma degli elementi di a è %f\n', p, sum(a)*p/100); stampa Il 15% della somma degli elementi di a è 2.25 MATLAB - fscanf 9 Esercizi MATLAB - fscanf 10 Esercizi Riscrivere il programma che gioca a Master Mind usando fprintf in modo da ottenere un output formattato nel modo seguente: Indovina il numero! 1 tentativo: [1 2 3 4] corrette: 1 spostate: 1 2 tentativo: [3 2 1 4] corrette: 1 spostate: 2 .... corrette: 4 spostate: 0 Hai indovinato! Tenendo conto che le seguenti istruzioni scmbiano il contenuto della variabile a con quello della variabile b temp = a; a = b; b = temp; scrivere un programma che legge un vettore da tastiera, ne inverte il contenuto e poi stampa il vettore così ottenuto. Es. di esecuzione Inserisci un vettore : [ 1 2 3 4 5 6 7] (in corsivo l’input da tastiera) Il vettore invertito risulta 7 6 5 4 3 2 1 MATLAB - fscanf 11 MATLAB - fscanf 12 3