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