Corso di Fondamenti di Informatica

Slides:



Advertisements
Presentazioni simili
PROGRAMMARE IN PASCAL (le basi)
Advertisements

PRIMI ELEMENTI DI PROGRAMMAZIONE
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Strutture di controllo
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Luca Chichisola1 Dal problema al programma LUCA CHICHISOLA.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
7. Strutture di controllo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Parte 2 Programmare in Matlab – I Sommario: Introduzione: m-file Strutture condizionali e cicli –Istruzione “if” + Operatori logici in MatlabIstruzione.
Indici di Posizione Giulio Vidotto Raffaele Cioffi.
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
© 2007 SEI-Società Editrice Internazionale, Apogeo
La rappresentazione degli algoritmi
DAL DIAGRAMMA AL CODICE
Dal problema al processo risolutivo
7. Strutture di controllo Ing. Simona Colucci
Script Marco D. Santambrogio –
IL CONCETTO DI ALGORITMO
SWITCH – CASE LINGUAGGIO C.
7. Strutture di controllo
COSTRUZIONI GEOMETRICHE ELEMENTARI 1
Gennaio 2010 LUNEDÌ MARTEDÌ MERCOLEDÌ GIOVEDÌ VENERDÌ SABATO DOMENICA
Programmazione strutturata
Forme per rappresentare l’algoritmo:
CICLO DO – WHILE LINGUAGGIO C.
Process synchronization
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
CALENDARIO PIRELLI PER SOLE DONNE
Linguaggio C++ Selezione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Strutture di Controllo
Secondo Programma in C.
Programmazione e Laboratorio di Programmazione
Esempi di algoritmi.
A = InputBox("Immetti un numero")
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Relazioni dirette e inverse Calcoli percentuali Sopra e sotto cento
Esercizi di logica Siano A e B le seguenti proposizioni A = è un gatto
Calendario 2008 Le mie fotografie.
Apprendimento visuale
Teorema di Pitagora C2 + c2 = i = i = 100.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Process synchronization
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Process synchronization
Processi decisionali e funzioni di controllo
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Fondamenti di Informatica
APPUNTI SUL LINGUAGGIO C
Gennaio 2010 LUNEDÌ MARTEDÌ MERCOLEDÌ GIOVEDÌ VENERDÌ SABATO DOMENICA
Programmazione e Laboratorio di Programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Lezione Terza Primi passi di programmazione
Informatica CdL Scienze e Tecniche Psicologiche a.a
VERIFICHE.
Programmazione e Laboratorio di Programmazione
1 – 70 1 – Aprile – Maggio – Giugno – Luglio 1985
La programmazione strutturata
Corso di Fondamenti di Informatica
Algoritmi.
Corso di Fondamenti di Informatica
Corso di Fondamenti di Informatica
Process synchronization
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Corso di Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Corso di Fondamenti di Informatica
Transcript della presentazione:

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof. Francesco De Vincenzi

MATLAB: Gli script

MATLAB: Esempio di script – Area di un triangolo dati base e altezza base=input('Inserisci la base'); altezza=input('Inserisci l''altezza'); prod=base*altezza; area=prod/2; disp('L''area è '); disp(area);

MATLAB: Esempio di script – Calcolo di un prezzo scontato disp('Questo script calcola il prezzo scontato dal prezzo e dallo sconto'); prezzo=input('Inserisci il prezzo intero: '); percentuale_sconto=input('inserisci la percentuale di sconto: '); sconto=(prezzo*percentuale_sconto)/100; prezzo_scontato=prezzo-sconto; disp('Il prezzo scontato è: '); disp(prezzo_scontato);

MATLAB: Esercizi Calcolare l’ipotenusa di un triangolo rettangolo dati i due cateti (per la radice quadrata, usare la funzione predefinita sqrt) disp("Questo script calcola l’ipotenusa di un triangolo"); disp(" rettangolo a partire dai due cateti in input"); cateto1 = input("Inserisci il valore del primo cateto"); cateto2 = input("Inserisci il valore del secondo cateto"); quadrato1=cateto1^2; quadrato2=cateto2^2; somma=quadrato1+quadrato2; ipotenusa=sqrt(somma); disp("L'ipotenusa vale "); disp (ipotenusa);

MATLAB: Esercizi 2) Dati base e lato di un triangolo isoscele, calcolare perimetro e area disp(‘Questo script calcola perimetro e area di un triangolo’); disp(‘a partire da base e lato, forniti in input’); base = input(‘Inserisci la base del triangolo’); lato = input(‘Inserisci il lato del triangolo’); semibase= base/2; altezza=sqrt(lato^2-semibase^2); perimetro=2*lato+base; area=(base*altezza)/2; disp(‘Il perimetro è ‘); disp(perimetro); disp(‘L'area è ‘); disp(area);

MATLAB: Esercizi 3) Dato un numero, mostrare la lettera alfabetica associata (es 1->a, 2->b, etc) disp(‘Questo script mostra un carattere’); disp(‘a partire dalla posizione fornita in input’); posizione = input(‘Inserisci la posizione del carattere’); carattere = char(96+posizione); disp(‘Il carattere e' ‘); disp(carattere);

MATLAB: Esercizi disp("Script per il calcolo del costi di viaggio"); Un gruppo di persone deve fare un viaggio e può spostarsi in macchina o in treno. Ciascuna macchina ha 5 posti. Il prezzo di un biglietto del treno per una persona è 4.50 euro, il costo della benzina per un’auto è 20 euro. Realizza uno script che chiede in input il numero di persone e di automobili e calcola il costo totale e il costo medio a persona del viaggio. Memorizza in una variabile “logical” la risposta alla domanda: il costo medio a persona è maggiore del costo di un biglietto del treno? disp("Script per il calcolo del costi di viaggio"); persone = input("Inserisci il numero di persone"); numero_auto=ceil(persone/5); prezzo_totale_auto=numero_auto*20; prezzo_medio_auto=prezzo_totale_auto / persone; risposta = prezzo_medio_auto>4.50; disp("Prezzo medio a persona "); disp(prezzo_medio_auto); disp("La risposta e' "); disp(risposta);

MATLAB: Controllo del flusso Gli script che abbiamo realizzata finora contengono istruzioni che vengono svolte in modo sequenziale: a partire dalla prima fino all’ultima. inizio Istruzione 1 Istruzione 2 Flusso: percorso immaginario che viene attraversato dall’esecutore di una sequenza di istruzioni. Istruzione 3 Diagramma di flusso o flowchart . Istruzione n fine

MATLAB: Controllo del flusso E’ possibile inserire all’interno del codice dei costrutti di controllo che permettano all’esecutore di scegliere, al momento dell’esecuzione, in che direzione far proseguire l’esecuzione stessa. La scelta verrà effettuata in base al valore di verità di una condizione. La condizione è una qualsiasi espressione che, valutata, produca una valore true(1) o false(0). condizione Se true… Se false… In un flow chart il rombo simboleggia la scelta.

MATLAB: Costrutti di controllo Utilizzando una espressione di controllo è possibile realizzare questi costrutti: Istruzione 1 Istruzione 2 Istruzione n . Istruzione 1 Istruzione 2 Istruzione n . Istruzione 1 Istruzione 2 Istruzione n Istruzione a Istruzione b Istruzione z . Istruzione 1 Istruzione 2 . Istruzione n Ciclo “FOR” (con contatore) Ciclo “WHILE” (con condizione) “IF” ad una via “IF” a più vie

If espressione Istruzione 1 Istruzione 2 … Istruzione n end MATLAB: “IF” ad una via Permette di eseguire una sequenza di istruzioni se una condizione è vera (true) e di non eseguirla in caso contrario : Istruzione 1 Istruzione 2 Istruzione n . If espressione Istruzione 1 Istruzione 2 … Istruzione n end

MATLAB: “IF” ad una via Esempi x=input('Inserisci un valore'); if(x<0) x=-x; end disp(x); x=input('Inserisci x'); y=input('Inserisci y'); if(x>y) appoggio=x; x=y; y=appoggio; end disp('Il maggiore è'); disp(y); x=input('Inserisci x'); y=input('Inserisci y'); if(x==y) disp('Sono uguali!'); end eta=input('Inserisci eta'); if(eta<0 | eta >130) disp('Età non valida'); end

MATLAB: “IF” a più vie If espressione Istruzione 1 Istruzione 2 … Permette di eseguire una sequenza di istruzioni se una condizione è vera (true) e di eseguire un’altra sequenza se la condizione è falsa(false). E’ possibile anche collegare in cascata più controlli, aumentando le vie. If espressione Istruzione 1 Istruzione 2 … Istruzione n else Istruzione a Istruzione b Istruzione z end Istruzione 1 Istruzione 2 Istruzione n Istruzione a Istruzione b Istruzione z . If espressione1 Istruzione 1 … Istruzione n elseif espressione2 Istruzione a Istruzione z else Istruzione x Istruzione k end

MATLAB: “IF” a più vie b=input('Inserisci base'); eta=input('Inserisci età'); if(eta>=18) disp('Maggiorenne'); else disp('Minorenne'); end b=input('Inserisci base'); a=input('inserisci altezza'); if(b>0 & a>0) area=b*a; disp('L''area è'); disp(area); else disp('Input errato!'); end eta=input('Inserisci età'); if(eta>=18) disp('Maggiorenne'); elseif (eta>=0) disp('Minorenne'); else disp('Età non valida'); end u=input('inserisci il numero uova'); c=input('quante uova contiene un imballo?'); if(mod(u,c)~=0) disp('Un imballo non si riempie'); else disp('Tutti gli imballi sono pieni!'); end

MATLAB: Esercizi – IF ad una via Scrivi uno script che prende in input tre numeri a,b,c e comunica in output se b è compreso tra a e c. (Attenzione, non è detto che a sia più piccolo di c!) Scrivi uno script che prende in input due caratteri alfabetici minuscoli e comunica se il primo carattere precede il secondo nell’alfabeto. (Consulta la tabella Ascii) Scrivi uno script che prende in input due caratteri alfabetici e comunica se uno è il minuscolo e l’altro il corrispondente maiuscolo, ad es. “f” ed “F” (Consulta la tabella Ascii)

MATLAB: Esercizi – IF a più vie Scrivi uno script che prende in input due numeri a e b e verifica se a è multiplo di b. Se si, calcola e mostra il rapporto tra a e b. Altrimenti, comunica che a non è divisibile per b. Scrivi uno script che prende in input due numeri e comunica se sono entrambi pari, entrambi dispari o uno pari e uno dispari. Scrivi uno script che prende in input due numeri e comunica se il maggiore dei due è pari o dispari Scrivi uno script che verifica se un numero è un quadrato. In tal caso, calcola e mostra la sua radice altrimenti comunica che non è un quadrato.

MATLAB: “IF” a più vie - Esempio g=input('Inserisci il giorno: '); m=input('inserisci il mese: '); a=input('Inserisci l''anno: '); if((g>=0 & g<=31 & (m == 1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)) || ... (g>=0 & g<=30 & (m ==4 || m==6 || m==9 || m== 11)) || ... (g>=0 & g<=28 & m==2) || ... (g==29 & m==2 & mod(a,4)==0)) disp('Data valida'); else disp('Data non valida!'); end gennaio, di 31 giorni febbraio, di 28 giorni (29 se bisestile) marzo, di 31 giorni aprile, di 30 giorni maggio, di 31 giorni giugno, di 30 giorni luglio, di 31 giorni agosto, di 31 giorni settembre, di 30 giorni ottobre, di 31 giorni novembre, di 30 giorni dicembre, di 31 giorni Calcolo della correttezza di una data: Dati in input giorno, mese e anno verificare che la data è corretta.

for indice = valori Istruzione 1 Istruzione 2 … Istruzione n end MATLAB: Ciclo “FOR” o (con contatore) Permette di ripetere più volte una sequenza di istruzioni. Il numero di ripetizioni è controllato da un contatore che assume un valore iniziale e cambia valore ad ogni ripetizione. Istruzione 1 Istruzione 2 Istruzione n . for indice = valori Istruzione 1 Istruzione 2 … Istruzione n end

Esempi di indice = valori MATLAB: Ciclo “FOR” o (con contatore) Permette di ripetere più volte una sequenza di istruzioni. Il numero di ripetizioni è controllato da un contatore che assume un valore iniziale e cambia valore ad ogni ripetizione. Esempi di indice = valori in = 0:10 num = 3:100 pari = 0:2:100 decr = 10:-1:0 dec = 0:0.1:1 for indice = valori Istruzione 1 Istruzione 2 … Istruzione n end

MATLAB: Esempi - Ciclo “FOR” o (con contatore) %calcola i quadrati dei primi 10 numeri for ii=1:10 q=ii^2; disp(q); end %somma tutti i pari da 0 a 100 totale=0; for ii=0:2:100 totale=totale+ii; end disp (totale); %calcola i resti di 100 diviso i for ii=1:10 resto=mod(100,ii); disp (resto); end %somma tutti i pari da 0 a 100 totale=0; for ii=0:2:100 totale=totale+ii; end disp (totale);

MATLAB: Esempi - Ciclo “FOR” annidati %genera tutte le coppie i,j %con i e j compresi tra 1 e 10 for i=1:10 for j=1:10 disp(i); disp(j); end %genera tutte le coppie i,j %con i e j pari e compresi tra 1 e 10 for i=2:2:10 for j=2:2:10 disp(i); disp(j); end %genera tutte le coppie i,j %con i e j compresi tra 1 e 10 %e i<j for i=1:10 for j=i+1:10 disp(i); disp(j); end %genera tutte le coppie i,j %con i e j compresi tra 1 e 10 %e i<j e j in ordine decrescente for i=1:10 for j=10:-1:i+1 disp(i); disp(j); end

MATLAB: Esempi – “IF” interno ad un ciclo “FOR” %genera tutti i valori tra 1 e 10 %aggiungendo ‘pari’ o ‘dispari’ for i=1:10 disp(i); if (mod(i,2)==0) disp('pari'); else disp('dispari'); end %verifica se un numero è primo n=input('Inserisci un numero'); m=n/2; primo=true; for i=2:m if mod(n,i)==0 primo=false; end if (primo) disp('Il numero è primo'); else disp('Il numero non è primo'); %genera tutti i valori tra 1 e 100 %divisibili per 7 o 13 for i=1:100 if (mod(i,7)==0 || mod(i,13)==0) disp(i); end

MATLAB: Esercizi Scrivi uno script che chiede in input due numeri A e B e calcola la somma di tutti i numeri pari compresi tra A e B. Provare lo script sui valori A=2, B=10 totale=30 A=3, B=10 totale=28 A=10, B=2 totale=30 A=10, B=3 totale=28 A=2, B=11 totale=30 A=11,B=2 totale=30

MATLAB: Esercizio A= input('A= '); B= input('B= '); if A>B app=A; end if mod(A,2)~=0 A=A+1; if mod(B,2)~=0 B=B-1 totale=0; for i=A:2:B disp(i); totale=totale+i; disp (totale);