Piccola Guida Matlab

January 14, 2018 | Author: A.Pellegrino | Category: Matlab, Control Flow, Matrix (Mathematics), Eigenvalues And Eigenvectors, Determinant
Share Embed Donate


Short Description

a little guide for beginners...

Description

Piccola guida Matlab Funzioni di base e di utilizzo rapido

Ing. Antonio Pellegrino

1

Utilizzo di Matlab come calcolatrice L’interfaccia di Matlab da subito accesso alla command window cioè alla zona della pagina dove avviene la scrittura diretta dei comandi. La cosa più semplice che è possibile fare con questo software è, naturalmente, utilizzarlo come calcolatrice. Ad esempio per eseguire il seguente calcolo: 2

4  2  sin 0,2     e 2

Basta digitare al prompt dei comandi la seguente espressione: >> 4+sqrt(2) – sin(0.2*pi)^2+exp(2) ans = 12.4578 il risultato sarà descritto dalla variabile ans.

Definizione di variabili Per definire una qualsiasi variabile occorre semplicemente dichiararla. Banalmente se si vuole che a e b assumano rispettivamente i valori 4 e 2 basterà scrivere nella command window: >> a=4; >>b=2; >>a*b ans=8

Cancellazione di variabili Per cancellare una variabile occorre digitare nella command window la seguente espressione: >> clear a La variabile a non risulta più presente nel workspace. Ogni variabile definita in questo modo viene conservata in memoria, nel workspace. 2

Comando whos Il comando whos mostra una lista di tutte le variabili definite. Digitando tale comando nella command window appariranno tutte le variabili presenti nel workspace seguite da informazioni sulle loro dimensioni (i numeri hanno dimensioni 1x1, i vettori nx1, le matrici nxm), sul numero di byte da esse occupato e sulla loro classe. >>whos

Numeri complessi Le seguenti funzioni permettono di eseguire semplici operazioni elementari coi numeri complessi: abs = restituisce il modulo di un numero complesso angle = restituisce la fase di un numero complesso real = restituisce la parte reale di un numero complesso imag = restituisce la parte immaginaria di un numero complesso

Esempio:

3

Lettura e scrittura su file – Current Directory I seguenti comandi permettono di salvare e richiamare alcune variabili in un determinato file presente nella cartella “osservata” dal software MATLAB. La cartella osservata dal software MATLAB è riportata in alto nell’interfaccia MATLAB in corrispondenza della dicitura Current Directory. Tutti i file generati vengono salvati nella cartella corrente.

4

-

load nomefile variabile 1 variabile 2. Carica dal file nomefile.mat le variabili elencate

-

save nomefile variabile 1 variabile 2 Scrive nel file nomefile.mat le variabili elencate

-

load nomefile carica tutte le variabili presenti in nomefile.mat

-

save nomefile salva tutto il workspace nel file nomefile.mat

Esempio:

Si noti come anche se è stato effettuato il comando clear e quindi nel workspace non è presente alcuna variabile con il presente comando le variabili sono state richiamate direttamente da file.

5

Inf e NaN Alcune operazioni numeriche possono dar luogo a problemi che vengono segnalati da MATLAB scrivendo come risultato le variabili Inf e NaN (not a number)

Help Help seguito dal nome della funzione restituisce una descrizione e la sintassi d’uso della medesima. Help da solo restituisce l’elenco di tutte le funzioni di MATLAB ordinate per categorie.

6

Matrici Come si definisce una matrice in MATLAB? Se ad esempio si vuole definire la seguente matrice 2x2: 1 2 A  3 4

Per fare ciò basta scrivere nella command window il seguente comando: >> A=[1,2;3,4] L’accesso agli elementi della matrice definita come detto sopra, ovvero ai singoli elementi posizionati in una determinata posizione identificata da una determinata riga e da una determinata colonna si ottiene digitando il nome della matrice definita seguito tra parentesi da i numeri identificativi di riga e colonna. Ad esempio il seguente comando: >>A(1,2) Restituisce l’elemento della matrice posizionato in corrispondenza della prima riga e della seconda colonna.

Per accedere a intere righe o colonne di una matrice bisogna scrivere il nome della matrice e tra parentesi indicare il numero della riga o della colonna di interesse. Se ad esempio si vuole la prima riga della matrice occorre scrivere nella command window: >>A(1,:)

7

Si noti come, poiché si vuole l’intera riga l’indice relativo alla colonna è sostituito dal simbolo “:”. Discorso analogo vale se si vuole avere accesso ad un’intera colonna. Ad esempio se si vuole avere accesso alla seconda colonna occorre scrivere nella command window: >>A(:,2). Si riportano gli esempi descritti sopra direttamente come appaiono nella command window:

Per selezionare sottomatrici di una matrice precedentemente definita occorre digitare il nome della matrice seguito dai numeri di righe e colonne che interessa isolare. Un esempio risulta più chiaro di molte parole:

8

Nell’esempio si è selezionata la sottomatrice costituita dalle righe 1 e 2 e dalle colonne 2 e 3. Il simbolo “:” significa “dalla riga x alla riga y” oppure “dalla colonna l alla colonna r”. Se si fosse scritto nella finestra dei comandi: >>B(1:2,1:3) Si sarebbe ottenuta l’intera matrice B (matrice 2x3) poiché si sono richiamate le righe da 1 a 2 e le colonne da 1 a 3.

Operazioni elementari con le matrici Sono definiti gli operatori “+”, “-“, “*”, ed “^” tra matrici e su matrici. Ecco alcuni esempi:

9

Matrice trasposta La trasposta di una matrice, cioè la matrice che si ottiene sostituendo le righe alle colonne si ottiene digitando nella finestra dei comandi il nome della matrice seguito dal simbolo “’”. In tal modo la matrice trasposta della matrice A definita negli esempi precedenti sarà:

10

Matrice inversa La matrice inversa, cioè la matrice che moltiplicata per la matrice che l’ha generata restituisce la matrice identità si ottiene digitando sulla finestra dei comandi: >>inv(A)

Determinante di una matrice Il determinante di una matrice determinato secondo le regole dell’algebra lineare si ottiene digitando nella finestra dei comandi: >>det(A)

Autovalori ed Autovettori di una matrice Si ricorda, per ragioni di completezza, che se A è una matrice quadrata ed Av = lv per uno scalare l diverso da zero allora l è un auto valore di A e v è un autovettore di A associato all’autovalore lambda. Gli autovalori di una matrice si ottengono digitando sulla finestra dei comandi: 11

>>eig(A)

L’istruzione; >> [V,D]=eig(A) Restituisce due matrici:  Una matrice V contenente gli autovettori della matrice A disposti sulle colonne  Una matrice D contenente nella diagonale principale tutti gli autovalori. Esempio: >> A=[1,2,1;4,3,1;0,0,7]

A= 1

2

1

4

3

1

0

0

7

>> [V,D]=eig(A)

V= -0.7071 -0.4472 0.3030 0.7071 -0.8944 0.5051 0

0 0.8081

12

D= -1

0

0

0

5

0

0

0

7

Dimensione di una matrice Per ottenere da MATLAB le dimensioni di una matrice, cioè il numero di righe e di colonne di una matrice occorre semplicemente digitare nella finestra dei comandi: >> size(A)

Come risulta chiaro dall’esempio la matrice B ha 2 righe e tre colonne.

Rango di una matrice Si ricorda, per ragioni di completezza la definizione di rango di una matrice. Si consideri una matrice rettangolare A con m righe ed n colonne. Qualsiasi matrice ottenuta da A cancellando alcune righe e/o alcune colonne è detta sottomatrice di A. Il numero “r” è detto rango di A se tutte le matrici l x l con l maggiore di r hanno un determinante che è uguale a zero e se almeno una sottomatrice r x r ha un determinante che è diverso da zero. Il rango di una matrice si ottiene semplicemente digitando: >>rank(B) 13

Traccia di una matrice La traccia di una matrice, cioè la somma degli elementi di una matrice disposti sulla diagonale principale si determina in ambiente MATLAB digitando il comando: >>trace(A)

Norma di una matrice Per ragioni di completezza si ricorda che la norma di una matrice è definita come: norm(A) = A = A 2 =

 A  A T 

14

dove, per una generica matrice B si definisce raggio spettrale r(B) il massimo dei moduli dei suoi autovalori. La norma di una matrice A si ottiene digitando sulla finestra dei comandi: >>norm(A)

Matrici speciali -

eye(n,n) restituisce una matrice identità di dimensione n x n

-

zeros(n,m) restituisce una matrice di zeri di dimensione n x m

-

ones(n,m) restituisce una matrice di uni di dimensione n x m

-

rand (n,m) restituisce una matrice n x m con elementi casuali distribuiti uniformemente tra zero ed uno

15

Vettori I vettori hanno due funzioni fondamentali in MATLAB:  rappresentazione di polinomi (un polinomio è descritto dal vettore dei suoi coefficienti)  rappresentazione di segnali (un segnale è rappresentato mediante la sequenza dei valori che assume in un insieme di istanti tempo, quindi mediante un vettore. Definizione di vettori Esistono diversi modi per definire un vettore. Uno di questi consiste nell’assegnare al nome del vettore una sequenza di valori definiti da un valore iniziale, da un passo e dal valore finale. Nel caso in cui non si specifica alcun valore per il passo MATLAB assegnerà al 16

passo valore unitario. Si riporta qualche esempio così come appare nella command window di MATLAB:

Un altro modo per definire un qualsiasi vettore è scriverlo come una matrice riga o una matrice colonna

Qualche altro esempio di definizione di vettori:

17

Prodotti tra vettori ‘*’ e “.*’ , “/” ed “./” , “^” ed “.^” Il prodotto espresso con il comando * effettua il prodotto riga per colonna secondo le regole dell’algebra lineare. Se, invece, si vuole effettuare il prodotto elemento per elemento tra vettori occorre eseguire il comando .* Si riporta un semplice esempio:

18

Allo stesso modo gli operatori “^” ed “\” operano a livello vettoriale - matriciale in linea con l’analisi classica (prodotti riga per colonna). Viceversa gli operatori “.^”, “./” operano a livello vettoriale – matriciale sui singoli elementi dei vettori o matrici. N.B.: elevando a potenza intera non si deve aggiungere il punto (Esempio a^2, b^2). N.B.: Per evitare l’ambiguità tra l’utilizzo del punto come separatore decimale oppure come operatore congiunto ai simboli “*”, “/”, “^” è opportuno mantenere gli operatori “.*”, “./”, “.^” ben separati dalle variabili sulle quali essi operano. Esempio: >> 1./4.*pi*2^2 ans = 3.1416

N.B.: come si nota per le variabili numeriche non vettoriali aggiungere il punto come separatore congiunto ai simboli “*”, “/”, “^” o non aggiungerlo è indifferente.

19

Polinomi I polinomi sono rappresentati come vettori. Ad esempio se si vuole rappresentare il seguente polinomio:

3 s2  2  s 1 Basterà digitare nella command window :

Il calcolo delle radici di un polinomio si esegue digitando il comando roots(pol) che restituisce le radici del polinomio precedentemente definito come vettore:

Affinché venga restituito il valore di un polinomio corrispondente ad un determinato valore di input occorre utilizzare la funzione polyval.

Per effettuare il prodotto tra due polinomi si utilizza il comando conv. Se, ad esempio si vuole effettuare il prodotto tra polinomi:

s  1  s  1  s 2  2  s  1 Occorre effettuare la sequenza di comandi: 20

Rappresentazione grafica bidimensionale Si supponga di voler eseguire un grafico in cui appaiano come ascisse ed ordinate i seguenti valori:

x 1 2

y 5 6

3

7

In questo caso la sequenza dei comandi da digitare è la seguente:

21

Se invece si vuole che per ogni punto da inserire nel grafico sia associato un simbolo, ad esempio in pallino occorre digitare: >>plot(b,’o’) Con il seguente risultato

Si riporta in seguito una lista di comandi con cui è possibile personalizzare i grafici bidimensionali (da “Matlab programming for engineers”, Stephen J.Chapman)

22

Ad esempio digitare >> plot(a,’b.’) riporterà in grafico la variabile a come un punto blu >>plot(a,’go’) riporterà in grafico la variabile a come un cerchio verde >> plot(a,’go’) riporterà in grafico la variabile a come un asterisco rosso

>>plot(b,’-o’) esegue lo stesso grafico riprodotto dal comando plot (b,’o’) attraversato da una linea continua 23

Se invece si vuole generare un grafico in cui ad ogni valore di x si associa un valore di y basta eseguire la seguente sequenza di comandi:

Il risultato che si ottiene è il seguente:

Se si desidera specificare il colore della linea di tracciamento del grafico ed il suo spessore si scriverà: >> plot(x,y,’k’,’linewidth’,2) 24

In cui ‘k’ indica il colore della linea di grafico (nero) e 2 lo spessore della linea. Grafico di una funzione Per eseguire il diagramma di una funzione predefinita occorre digitare il comando fplot Si riporta un semplice esempio:

Opzioni per diagrammi e grafici -

grid inserisce una griglia per entrambi gli assi

-

xlabel, ylabel associa agli assi x e y un determinato titolo

-

title associa un titolo al grafico

-

semilogx, semilogy mette gli assi x e y in forma logaritmica

-

loglog mette entrambi gli assi in forma logaritmica

-

axis ([xmin xmax ymin ymax]) impone agli assi un valore minimo e un valore massimo

-

hold mantiene gli assi correnti e aggiunge nuove curve o nuovi punti, o, in generale, nuovi dati ad un grafico esistente. 25

ad esempio il comando

eseguirà il diagramma riportato in precedenza associando una griglia ad entrambi gli assi, un titolo a ciascun asse ed un titolo al grafico. Si riportano di seguito altri esempi:

>>loglog(x,y), grid

26

>>semilogy(x,y),grid

27

>>loglog(x,y),axis([2000 10000 4000 200000]),grid

>>hold on, fplot('tanh',[-2,2]),fplot('sinh',[-2,2]),grid

28

>> fplot('tanh',[-2,2],'ro')

Diagrammi polari Il modulo e la fase di numeri complessi, così come qualunque altro tipo di dati che può essere espresso tramite le coordinate modulo ed angolo può essere rappresentato graficamente ricorrendo alle coordinate polari. L’esempio seguente illustra quanto appena detto:

29

Il comando da digitare nella command window è: >>polar(angolo,modulo,'go') Diagrammi a stelo – istruzione stem Si supponga di voler diagrammare, un vettore di valori y che corrispondono ad un altro determinato vettore di valori x e lo si voglia fare con un diagramma a barre. Naturalmente MATLAB include tale tipo di rappresentazione grafica che corrisponde all’istruzione stem (stelo). Un esempio risulta più chiaro di mille parole: >>a=[1,3,-2,3,1,-5,3,2,6] a= 1

3 -2

3

1

-5

3

2

6

>>b=[1,1,1,2,3,4,-2,-1,3]

30

b=

1

1

1

2

3

4 -2 -1

3

>>stem(a,b,'b'),grid

La rappresentazione grafica che si ottiene è la seguente:

Visualizzazione di più grafici in una finestra A volte può essere utile riportare, all’interno di una stessa finestra l’insieme di più diagrammi, allo scopo, ad esempio, di visualizzare l’andamento di più variabili correlate nel tempo. Il comando da digitare nella command window è il comando subplot(m,n,p). Questo suddivide la finestra dei diagrammi in m righe ed m colonne e posiziona il diagramma in oggetto dove indicato. Si riporta un semplice esempio a solo scopo didattico. 31

La sintassi da utilizzare è la seguente: >>subplot(righe,colonne,posizione); plot(variabile) La posizione viene “contata” a partire dalla prima riga da sinistra verso destra, contando successivamente i grafici delle righe successive alla prima. La posizione viene cioè contata da sinistra verso destra e dall’alto in basso. Inserimento di testo in un grafico Spesso, per permettere di spiegare i dati visualizzati, occorre associare a qualcuno dei dati visualizzati (o a tutti ) del testo. Per fare ciò possono essere utilizzati due comandi di istruzione: il comando text ed il comando gtext. 32

Il comando text scrive nel diagramma, in corrispondenza delle coordinate indicate, il testo indicato tra virgolette. La sintassi è la seguente: >>text(x,y,’testo’) Il comando gtext scrive nel diagramma, in corrispondenza di un punto indicato dal mouse, il testo indicato. La sintassi è semplicemente la seguente: >>gtext(‘testo’) Un semplice esempio chiarirà ulteriormente quanto appena detto:

Altri esempi di grafici di funzioni In questo paragrafo verranno illustrati due ulteriori esempi di grafici di funzioni in modo da rendere più completo l’insieme di esempi sulla rappresentazione grafica bidimensionale. L’esempio seguente prevede la creazione di una nuova funzione. Come si vedrà nei paragrafi successivi per creare una funzione occorre utilizzare l’editor di MATLAB cliccando l’icona “New M file” posizionata nella barra degli strumenti in alto a sinistra. Si rimanda ai paragrafi successivi per ulteriori approfondimenti. La funzione che si vuole diagrammare è la: 33

2

y  e  x  sen5 x 

La funzione creata attraverso l’editor è la seguente: function [y]=provagrafico(x) y = exp(-x^2)*sin(5*x); end

digitando nella command window: >>fplot('provagrafico',[-3,3]) Il diagramma che si ottiene è il seguente:

Il secondo esempio, presente anche all’interno dell’help della funzione fplot di MATLAB, illustra come effettuare un grafico contemporaneo di due funzioni creando una funzione che restituisce una matrice di due colonne. Il listato digitato all’interno dell’editor di MATLAB è il seguente: function [y] = provagrafico2(x) y(:,1)= 200*sin(x(:))./x(:); y(:,2)= x(:).^2; end

Digitando nella command window : >> fplot('provagrafico2',[-20,+20]) 34

Il diagramma che si ottiene è il seguente:

Modifica dei grafici ottenuti Attraverso la finestra evidenziata in rosso nella seguente figura è possibile modificare, grazie ad una serie di comandi di semplice utilizzo l’aspetto ed il contenuto dei diagrammi.

35

Array Editor Per lanciare l’array editor è sufficiente cliccare due volte sull’oggetto matrice (ad esempio A) dalla finestra del workspace:

Comandi clear e clc Il comando clear cancella tutte le variabili presenti nel Workspace. È buona norma, quando si inizia a risolvere un nuovo problema, cancellare tutte le variabili presenti nel workspace per evitare inutili errori di utilizzo o sovrapposizione di variabili già definite precedentemente. Il comando clc cancella soltanto il contenuto “visivo” sulla finestra di comando. Le variabili fino a quel punto introdotte non vengono cancellate.

Comando who Dice quali sono le variabili presenti nel workspace senza specificare altro

Significato del ; Se alla fine di una istruzione si aggiunge il segno ; allora MATLAB non presenta in video il risultato dell’istruzione anche se la esegue e ne memorizza il risultato. 36

Funzioni e Script – Editor di Matlab Cliccando sull’icona “New M-File” della barra degli strumenti in alto a sinistra viene lanciato l’editor di MATLAB con cui si possono scrivere e salvare dei file funzione o degli script (sequenze di comandi MATLAB) richiamabili in un secondo momento. Il direttorio di default in cui MATLAB salva i file dell’utente è quello indicato nella finestra Current Directory. Aggiungendo un nuovo direttorio alla lista dei direttori, MATLAB ricerca i file funzione ed i file script anche in quel direttorio. È buona norma evitare di salvare i propri file nel direttorio di default al fine di mantenere distinti i singoli progetti ed argomenti di ricerca.

Figura: Icona dell’editor Matlab e del direttorio corrente

Ci sono due generi di M-file:  Scripts che non accettano argomenti d’entrata o argomenti di uscita. Loro operano su dati nel workspace.  Functions che possono accettare argomenti d’entrata e argomenti di uscita. Una variabile interna `e locale alla funzione.

Le funzioni Le funzioni sono degli M-files che accettano argomenti di entrata e forniscono risultati in uscita. Il nome della funzione e dell’M-file deve essere lo stesso. La sintassi nello scrivere un M-file è la seguente (primo rigo da digitare durante la scrittura del file) function[uscita1,uscita2,uscita3] = nomefunzione(ingresso1,ingresso2); Al momento di richiamare la funzione creata precedentemente (attraverso l’editor di MATLAB) occorre utilizzare la seguente sintassi: [u1,u2,u3] = nomefunzione(valore1,valore2) 37

In cui u1,u2 ed u3 sono i nomi, arbitrari, che assegno alle variabili di uscita e valore1,valore2 sono i dati numerici in input della funzione. Esempio1 Per chiarezza si riporta un semplice esempio di listato di funzione e la maniera di richiamare quest’ultima nella command window:

38

Esempio 2 Si voglia adesso costruire una funzione che, dati i lati ”a” e ”b” di un rettangolo fornisca l’area ”A”, il perimetro ”p” e la diagonale ”d” (“Ciaburro”, manuale MATLAB) . Il listato da digitare nell’editor è il seguente: function [ A , p , d ] =rettang ( a , b ) A = a * b; p = 2 * ( a + b ); d =sqrt ( a^2 + b^2 ); al momento di richiamare la funzione nella finestra dei comandi occorrerà digitare, ad esempio: >>[g,e,f]=rettang(2,3) I tre valori che costituiscono il vettore risultato saranno rispettivamente l’area, il perimetro e la diagonale del rettangolo avente i lati con lunghezze specificate tra parentesi tonde.

Gli script Quando si esegue uno script precedentemente creato, MATLAB esegue semplicemente la sequenza di comandi inseriti nel listato. Anche se gli script, a differenza delle funzioni, non forniscono dati in uscita l’insieme delle variabili da essi create rimane nel workspace e può essere utilizzato per i calcoli successivi. Inoltre, inserendo all’interno del listato i comandi opportuni (ad esempio plot) è possibile produrre dei grafici. Per poter inserire dei commenti all’interno di uno script (ad esempio delle spiegazioni sui calcoli inseriti) occorre semplicemente scrivere il testo preceduto dal simbolo % . Si riporta un semplice esempio di script per il calcolo dell’indice di massa corporea: %semplice script per illustrare il funzionamento dell'editor di MATLAB disp('DETERMINAZIONE DELL INDICE DI MASSA CORPOREA') disp('gentilmente potresti dirmi quanto pesi?') peso= input('digita il tuo peso in kg') disp('gentilmente potresti dirmi quanto sei alto/a?') altezza=input('gigita la tua altezza in metri') disp('INDICE DI MASSA CORPOREA IMC') IndiceMC=peso/altezza^2; disp(['IndiceMC=',num2str(IndiceMC)])

Il risultato nella finestra dei comandi è il seguente: 39

Come può vedersi nel listato dello script sono presenti una prima riga di commento (in verde) ed i comandi disp e input che permettono di far apparire scritte, commenti e istruzioni nella finestra dei comandi e di recepire dati in input richiesti all’utente.

Comandi disp, input, num2str Il comando disp permette di visualizzare un vettore o una matrice senza mostrare il nome del vettore o una stringa di testo. Ad esempio se si vuole fare apparire sulla finestra dei comandi la frase “mi piace esercitarmi con MATLAB” sarà sufficiente digitare all’interno dell’editor di MATLAB disp(‘mi piace esercitarmi con MATLAB’) La sintassi da utilizzare è dunque, in questo caso la seguente: disp(‘testo’) se invece si vuole utilizzare il comando disp per visualizzare un risultato memorizzato su una variabile occorrerà utilizzare all’interno dell’editor di MATLAB la seguente sintassi: disp(variabile) 40

Oppure disp(['variabile=',num2str(variabile)])

Il comando input richiede un input da parte dell’utente e serve ogni qual volta si vuole far si che un determinato valore di variabile sia assegnato manualmente da chi opera nella command window. La sintasis da utilizzare è la seguente: variabile = input('richiesta variabile')

Il comando num2str converte numeri o matrici nella loro rappresentazione stringa. Digitando: num2str(variabile) si converte una matrice (o un numero) nella sua rappresentazione stringa con circa 4 cifre di precisione ed un esponente se richiesto. Il comando num2str(a,6) converte la variabile a in una rappresentazione stringa con un massimo di 6 cifre di precisione. Esempio: >>num2str(rand(2,2),3) ans =

0.815

0.127

0.906

0.913

41

Strutture di controllo del flusso - Costrutti if, for, while e switch

Costrutto if La struttura if valuta un espressione logica che esegue un gruppo di asserzioni quando l’espressione è verificata. elseif esegue un altro gruppo di comandi quando altre espressioni logiche opzionali sono verificate. else stabilisce quali comandi eseguire qualora nessuna delle espressioni logiche presenti in if ed elseif sia verificata. Una keyword end termina l’ultimo gruppo di asserzioni. I gruppi di asserzioni sono delineati da quattro keywords, non sono previste parentesi.

Il semplice costrutto if contenuto nell’esempio seguente illustra perfettamente il modo di operare con questa struttura: %semplice script per illustrare il funzionamento dell'editor di MATLAB disp('DETERMINAZIONE DELL INDICE DI MASSA CORPOREA') disp('gentilmente potresti dirmi quanto pesi?') peso= input('digita il tuo peso in kg') disp('gentilmente potresti dirmi quanto sei alto/a?') altezza=input('gigita la tua altezza in metri') if altezza >= 1.80 disp('complimenti, altezza mezza bellezza'); elseif altezza >=1.60 && altezza
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF