%Provare le seguenti righe di codice dal prompt di MATLAB e rispondere alle %domande % MATLAB VARIABILI %(1) MATLAB NON RICHIEDE LA DICHIARAZIONE delle variabili. % Quando MATLAB incontra il nome di una nuova variabile la % CREA AUTOMATICAMENTE, allocando un appropriato spazio di memoria. num_studenti = 25 % Guarda WORKSPACE: che cosa è stato creato? %(2) NOMI DI VARIABILI: % - Una lettera seguita da un qualsiasi numero, lettera o % underscore % - Numero massimo di caratteri: 32 num_studenti_chimica_2006 = 170 area_cerchio = 27 matricola = 789543 % ES sbagliati: % 2006_num_studenti_chimica =170 % area cerchio = 27 % _matricola = 789543 % x/y =0.5 %Che cosa succede se eseguo i precedenti assegnamenti? % - MATLAB è CASE SENSITIVE; distingue quindi lettere minuscole da lettere maiuscole anni_luca =34 Anni_Luca = 35 % Guarda il WORKSPACE: quante variabili distinte ha creato? % Occorre fare molta attenzione perchè è facile incorrere in errori % CONSIGLI: % 1. scegliere nomi significativi % 2. separare parole diverse con "_" % 3. usare solo lettere minuscole per variabili semplici % 4. usare solo lettere maiuscole per le costanti area_rettangolo = 54 gradi_kelvin = 21 NUM_AVOGADRO = 6.02e23 %(3) SOVRASCRITTURA % se MATLAB incontra un assegnamento ad una variabile che esiste già, % ne cambia il suo contenuto, ed eventualmente il tipo, allocando, % se necessario, ulteriore memoria a = 5 % guarda il WORKSPACE ==> variabile double, con valore 5 a = 'chimica' % guarda il WORKSPACE ==> qual è il tipo della variabile ora? % che valore assume? % MATLAB non segnala alcun errore. % E' compito del programmatore fare molta attenzione!!! % Un aiuto viene certamente dalla SCELTA APPROPRIATA DEI NOMI % (difficilmente assegnerei una stringa ad un nome che identifica % un numero!) % per esempio in un calcolo successivo b = 10 % Immaginando (erroneamente) di lavorare con a = 5 sommo ma... r = a + b % Guarda WORKSPACE: l'operazione è ammissibile (sintatticamente), % ma priva di senso semantico!!! % Quanto vale "r"? %(4) TIPI: % - NUMERI espressi in notazione decimale, % con il '.' per separare la parte decimale % usando i simboli '+' e '-' per esprimere il segno. % - Per i numeri in notazione scientifica si usa la lettera 'e' per % specificare la caratteristica % Esempi: 3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 % - Tutti i numeri sono memorizzati come 'double' secondo la codifica IEEE standard: % MANTISSA: 16 decimali; CARATTERISTICA: +- 308 % CARATTERI: % per assegnare ad una variabile una sequenza di caratteri (stringa) % basta porre tale stringa tra apici: nome = 'raffaella' % (6) OPERAZIONI ARITMETICHE: a = 4; b = 5; % + Addizione a + b % - Sottrazione a - b % * Moltiplicazione a * b % ^ Potenza a^b % ' Trasposizione % ( ) Parentesi per specificare lordine di valutazione (a+2)*b % Precedenze: % Primo livello: Parentesi % Secondo livello: Potenza (da sx a dx) % Terzo livello: Moltiplicazione e Divisione (da sx a dx) % Quarto livello: Addizione e sottrazione (da sx a dx) 4^2-12-8/(4*2) 3*4^2+5 (3*4)^2+5 27^(1/3) + 32^(0.2) 27^ 1/3 + 32^(0.2) 27^(1/3) + 32^ 0.2 %Le ultime tre espressioni danno lo stesso risultato? Che cosa %abbiamo cambiato? % CONSIGLIO: per evitare errori e rendere più leggibile il codice % è meglio usare le parentesi %(8) ASSEGNAMENTO: % Nome_Var = Espressione % L'espressione per poter essere valutata deve essere % - sintatticamente corretta % - far riferimento a variabili precedentemente create % ES: anni_luca = 35 anni_luca = 19 + 1 anni_maria = anni_luca + 3 anno_corrente = 2007 anno_nascita_maria = 1976 anni_maria = anno_corrente - anno_nascita_maria anno_corrente = anno_corrente + 1 % CONSIGLIO: % lasciare uno spazio prima e dopo il simbolo '=' e anche degli % operatori aritmetici %(6) COMANDI PER GESTIRE UNA SESSINE DI LAVORO CON MATLAB clc % cancella i contenuti della finestra dei comandi clear % elimina tutte le variabili di memoria clear var1 var2 % elimina solo le variabili var1 var2 exist('nome') % determina se una variabile esiste quit % chiude matlab who % elenca le variabili che si trovano correntemente in memoria whos % elenca le variabili e i corrispondenti valori % e indica se le variabili hanno parti immaginarie non nulle