Laboratorio di Python (con Linux)
|
|
|
- Sara Milano
- 8 anni fa
- Просмотров:
Транскрипт
1 Indeterminata,,,... Università di Bologna 14, 16 marzo 2012
2 Sommario
3 Modularità Quando si deve fare un programma complicato è meglio suddividerlo in più parti. Per ridurre la complessità (più facile da scrivere). E per facilitare la ricerca di eventuali errori (debugging). Analogia: dividere un teorema in lemmi.
4 Leggere da tastiera I dati che può utilizzare un programma possono essere: contenuti nel programma stesso o variabili globali; gli argomenti passati ad una funzione; oppure dati richiesti durante l esecuzione dal programma stesso. Per chiedere all utente di inserire dei dati si utilizza raw_input (legge una stringa). def QuantoFa(): n=int(raw_input('quanto fa 2*3? ')) if n==6: print 'Giusto!' else: print 'Sbagliato.'
5 Modificare variabili Python ha modi compatti di modificare il valore di una variabile della forma variabile operatore-aritmetico = espressione. i+=3 i-=3 i*=3 i/=3 i=i+3 i=i-3 i=i*3 i=i/3
6 Argomenti Opzionali def Ciao(nome='Pinco Pallino'): print 'Ciao '+str(nome)+'!' Eseguendo Ciao() (senza argomenti) viene usato il valore predefinito.
7 Ciclo while In alternativa al for, si possono iterare dei comandi usando un ciclo while. def GrazieMolte(n): i=0 while i<n: print 'Grazie!' i=i+1 Indicato per quando non si sa quante iterazioni bisogna fare. Per iterare finché vale una certa condizione (o cercare un elemento che non la soddisfi).
8 break & continue Controllare comportamento ciclo for o while con break e continue. def TrovaTriplo1(n): def TrovaTriplo2(n): i=n i=n while True: while i%3: #inizio ciclo i=i+1 if i%3: print i i=i+1 continue #vai inizio break #vai fuori #fuori dal ciclo print i continue interrompe l iterazione corrente e passa alla successiva. break interrompe l iterazione corrente ed esce dal ciclo (salta ogni altra iterazione residua).
9 Funzioni NoneType & return Funzioni viste finora non calcolano nulla. Stampano solo a video. def HelloWorld1(): print 'Hello World!' def HelloWorld2(): print 'Hello World!' return In realtà: type(helloworld1()) = <type 'NoneType'>. Si tratta di un tipo speciale che si usa per funzioni in cui non compare un istruzione return o se questa è vuota. Se una funzione calcola qualcosa si usa return per restituire il valore all esterno. NoneType è un tipo speciale utile per restituire errore. type(none) = NoneType
10 & return Usiamo return per definire una funzione che calcola qualcosa ( fruitful nel gergo di Think Python). Calcoliamo la parte intera della radice quadrata di un intero n. Dividiamo il procedimento in più parti: Precondizione n deve essere non-negativo. Prima approssimazione si trova la massima potenza di 2 il cui quadrato non supera n. Approssimazioni successive si sommano ad essa le potenze di 2 inferiori (fino ad 1 = 2 0 ) in modo che il quadrato di questa somma non superi n. Per approfondimenti: gos/misc/personal/msc/sqrt/sqrt.html.
11 & return Usiamo return per definire una funzione che calcola qualcosa ( fruitful nel gergo di Think Python). Calcoliamo la parte intera della radice quadrata di un intero n. Dividiamo il procedimento in più parti: Precondizione n deve essere non-negativo. Prima approssimazione si trova la massima potenza di 2 il cui quadrato non supera n. Approssimazioni successive si sommano ad essa le potenze di 2 inferiori (fino ad 1 = 2 0 ) in modo che il quadrato di questa somma non superi n. Per approfondimenti: gos/misc/personal/msc/sqrt/sqrt.html.
12 & return Usiamo return per definire una funzione che calcola qualcosa ( fruitful nel gergo di Think Python). Calcoliamo la parte intera della radice quadrata di un intero n. Dividiamo il procedimento in più parti: Precondizione n deve essere non-negativo. Prima approssimazione si trova la massima potenza di 2 il cui quadrato non supera n. Approssimazioni successive si sommano ad essa le potenze di 2 inferiori (fino ad 1 = 2 0 ) in modo che il quadrato di questa somma non superi n. Per approfondimenti: gos/misc/personal/msc/sqrt/sqrt.html.
13 & return Usiamo return per definire una funzione che calcola qualcosa ( fruitful nel gergo di Think Python). Calcoliamo la parte intera della radice quadrata di un intero n. Dividiamo il procedimento in più parti: Precondizione n deve essere non-negativo. Prima approssimazione si trova la massima potenza di 2 il cui quadrato non supera n. Approssimazioni successive si sommano ad essa le potenze di 2 inferiori (fino ad 1 = 2 0 ) in modo che il quadrato di questa somma non superi n. Per approfondimenti: gos/misc/personal/msc/sqrt/sqrt.html.
14 Esempio Fruitful Radice quadrata e due funzioni ausiliarie def intok(n): b1=isinstance(n,int) b2=n>=0 return b1 and b2 def potenzamax(n): if not(intok(n)): return None i=1 j=0 while i**2<=n: j=i i=i*2 return j def sqrt(n): if not(intok(n)): return None else: j=potenzamax(n) radice=0 r=0 while j>0: r=radice+j if r**2<=n: radice=r j=j/2 return radice
15 Slice Possiamo selezionare un segmento di una stringa in analogia a come selezioniamo un carattere: 1 s='mario Monti' 2 s[3] = 'i' 3 s[3:7] = 'io M'. Analogo uso per liste e tuple. Argomento opzionale per procedere a passi di più caratteri/elementi (come per range) 4 s[0:5:2] = 'Mro'. 5 Si usa anche per leggere una stringa a rovescio: s[::-1] = 'itnom oiram'. 6 Posso usare le slice per copiare una stringa in un altra s2=s[::] o semplicemente s2=s[:]. 7 Se invece scrivo s2=s, ho due nomi per la stessa cosa (aliasing). Non importante per stringhe e tuple (per le liste sì, sono modificabili).
16 Modulo string Con il comando import string si carica il modulo string che contiene una serie di costanti e di metodi utili per lavorare con le stringhe. 1 s= Esempio 2 import string 3 s.upper() (= ESEMPIO ) 4 s.lower() (= esempio ) 5 string.lowercase (= abcdefghijklmnopqrstuvwxyz ) 6 string.uppercase (= ABCDEFGHIJKLMNOPQRSTUVWXYZ ) 7 string.digits (= ) 8 string.punctuation (= '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{ }~') def NoLettere(s): return s.upper()==s.lower()
17 Idea della ricorsione: ridurre un calcolo complesso a un caso semplice, che si sa risolvere direttamente, e costruire a ritroso il risultato del calcolo originario. Come? Una funzione che invoca se stessa, su elementi più piccoli. Devono esistere uno o più casi base a cui ricondursi, altrimenti l esecuzione non termina (ricorsione infinita). In pratica Python darà errore (si arriva ad un caso in cui la funzione non è definita o si raggiunge la profondità massima di ricorsione consentita). def semifact(n): if n==0 or n==1: return 1 else: return n*semifact(n-2)
18 Altro esempio Usando le slice possiamo calcolare la lunghezza di una successione (lista, tupla o stringa). def mylen(s): if s==[] or s==() or s='': return 0 else: return 1+mylen(s[1:]) Python ha già una funzione per questo chiamata len.
19 Esercizi in laboratorio 1 Calcolare l n-simo elemento della successione di Fibonacci. 2 Calcolare il valore di un polinomio p(x) in un punto a usando la regola di Horner. 3 Data una stringa s determinare se è un palindromo. 4 Data una stringa s determinare se è una password sicura: deve contenere sia lettere (sia maiuscole che minuscole) che cifre e deve essere lunga almeno dieci caratteri).
20 Suggerimenti 1 F 0 = 0, F 1 = 1, F n+1 = F n + F n 1. 2 Rappresentare un polinomio p come una tupla in cui in posizione i c è il coefficiente i-simo di p. Regola di Horner: s_method. 3 Confrontare la prima e l ultima lettera della parola e ridursi ai casi in cui s ha uno o zero caratteri. 4 Usare l operatore in e il modulo string.
21 Primo esercizio def fibonacci(n): if n==0 or n==1: return n else: return fibonacci(n-1)+fibonacci(n-2) Per prima cosa scaliamo di uno l indice della formula e otteniamo F n = F n 1 + F n 2, n > 1. A questo punto il passaggio in Python è diretto.
22 Secondo esercizio def horner(p,x): n=len(p) if n==0: return 0 elif n==1: return p[0] else: return p[0]+x*horner(p[1:],x) Nel caso base il polinomio è una costante, che è anche il valore in x (come caso particolare il polinomio nullo può essere rappresentato anche da una tupla vuota). Sappiamo che a 0 + a 1 x + a 2 x a n 1 x n 1 + a n x n = a 0 + x(a 1 + a 2 x + + a n 1 x n 2 + a n x n 1 ). Quindi negli altri casi applichiamo il metodo al polinomio rappresentato dalla tupla privata del primo elemento (corrisponde a prendere il polinomio originale, togliere il termine noto e raccogliere x) e poi moltiplichiamo il risultato per x e ri-aggiungiamo il termine noto.
23 Terzo esercizio Soluzione ricorsiva def palindromorec(s): n=len(s) if n==0 or n==1: return True else: return s[0]==s[n-1] and palindromo(s[1:n-1]) Le stringhe di zero o un carattere sono palindrome. Se il primo e l ultimo carattere coincidono la stringa è un palindromo se e solo se la stringa ottenuta togliendo quei due caratteri è un palindromo. Se il primo e l ultimo carattere sono diversi, l and valuta a False qualunque sia palindromo(s[1:n-1]) (che in tal caso non viene calcolato).
24 Terzo esercizio Soluzione diretta def palindromo(s): return s==s[::-1] Una stringa è un palindromo se e solo se è invariante per riflessione. Questo caso è più semplice che usare la ricorsione. Intanto impariamo ad utilizzare le varie tecniche per risolvere un dato problema, poi con l esperienza capiamo quale conviene utilizzare a seconda dei casi.
25 Quarto esercizio Vedi 4 laboratorio.
Laboratorio di Python
Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di
Laboratorio di Python
Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - [email protected] Dottoressa Sara Zuppiroli - [email protected] L'importanza di capire Perché non dobbiamo dichiarare
Laboratorio di Python
Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio
Laboratorio di Python (con Linux)
8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni
Laboratorio di Python
, Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono
Laboratorio di Python
Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)
Laboratorio di Python
Iterazione determinata, 12 marzo 2015 Sommario 1 2 3 Sintassi ed Esempi 4 Input da tastiera Sintassi = raw_input('stringa descrittiva') #versione 2.* = input('stringa descrittiva') #versione
Laboratorio di Python
25 marzo 2015 Sommario 1 2 Esercizi a casa Scrivere un unico programma, che attraverso un menù di selezione restituisca i risultati delle funzioni che seguono, senza uscire dal programma se non selezionando
Le Funzioni e la Ricorsione
Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html
Corso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli [email protected] Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni
osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1
Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)
Laboratorio di Python
Laboratorio di Python Iterazione determinata Lab05 17 Marzo 2017 Variazione data laboratorio! Mercoledì 22 marzo ci sarà laboratorio Mercoledì 3 maggio non ci sarà laboratorio (si terrà lezione regolare)
Costrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare
Programmazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
Esercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012
su programmazione ricorsiva 1 Pericle Perazzo [email protected] http://info.iet.unipi.it/~fondii/ 23 marzo 2012 Ripasso di programmazione ricorsiva Ripasso di programmazione ricorsiva Algoritmo
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
Equazioni di primo grado
Equazioni di primo grado 15 15.1 Identità ed equazioni Analizziamo le seguenti proposizioni: a ) cinque è uguale alla differenza tra sette e due ; b ) la somma di quattro e due è uguale a otto ; c ) il
La codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
Matlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
Introduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
Espressioni aritmetiche
Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array
Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
Correttezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
Esercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
COMANDI ITERATIVI. Ivan Lanese
COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito
Monomi L insieme dei monomi
Monomi 10 10.1 L insieme dei monomi Definizione 10.1. Un espressione letterale in cui numeri e lettere sono legati dalla sola moltiplicazione si chiama monomio. Esempio 10.1. L espressione nelle due variabili
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
Lezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio
Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.
INDICE Indentazione note sull'indentazione in script e moduli scritti con un editor di testo. istruzione if Truth testing in cicli if e while istruzione for istruzione while Uscita dai cicli for e while
Laboratorio di Python
Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 4 aprile 2014 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Esercizi Correzione esercizi Scrivere e documentare le
C: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
FUNZIONI RICORSIVE PROGRAMMAZIONE RICORSIVA: Esempi di problemi ricorsivi:
FUNZIONI RICORSIVE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento (chiamata) a se stessa. Esempio: Esempi di problemi ricorsivi: 1) Somma dei primi
I POLINOMI. La forma normale di un polinomio. Un polinomio è detto in FORMA NORMALE se in esso non compaiono monomi simili.
I POLINOMI Un polinomio è una somma algebrica tra monomi Sono polinomi le seguenti espressioni 2ab + 4bc -5a 2 b + 2ab - 5c 5x + 2y + 8x in esse infatti troviamo somme o differenze tra monomi La forma
Laboratorio di Python
Laboratorio di Python Pile Lab14 10 Maggio 2017 Outline Correzione esercizi per oggi Pile Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che prende come parametro una coda
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
Struttura di programmi MAL Elementi lessicali
Elementi lessicali Ogni microistruzione è definita su una linea di programma Le linee vuote vengono ignorate Le linee con solo commenti vengono ignorate Il carattere di fine linea (RETURN ENTER INVIO)
Richiami sullo studio di funzione
Richiami sullo studio di funzione Per studiare una funzione y = f() e disegnarne un grafico approssimativo, possiamo procedere in ordine secondo i seguenti passi:. determinare il campo di esistenza (o
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
Disequazioni fratte. Una disequazione in cui l'incognita compare a denominatore si chiama fratta o frazionaria.
1 Disequazioni fratte Una disequazione in cui l'incognita compare a denominatore si chiama fratta o frazionaria. Prima di affrontare le disequazioni fratte, ricordiamo il procedimento che utilizziamo per
ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)
Esercitazione Oggi dovremo di nuovo usare funzioni sui reali. Ma il C non ha operatori nativi del linguggio per queste operazioni, come la radice quadrata, l'elevamento a potenza o l'arrotondamento. Per
Anno 1. Divisione fra polinomi
Anno 1 Divisione fra polinomi 1 Introduzione In questa lezione impareremo a eseguire la divisione fra polinomi. In questo modo completiamo il quadro delle 4 operazioni con i polinomi. Al termine di questa
Matematica con Python
Matematica con Python e-mail: [email protected] Versione provvisoria. Dicembre 2016. 1 Lezione n. 2 Euclide. Indice 1 Iterazioni 2 1.1 Il ciclo for e il comando range......................... 2
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita
Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale
Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 17 Novembre 2015
Laboratorio 04 Programmazione - CdS Matematica Michele Donini 17 Novembre 2015 Controllo del flusso Selezione: ci permette di modificare il normale flusso sequenziale di un programma a seconda della valutazione
Esercizi su strutture dati
Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo
APPUNTI DI INFORMATICA
APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione
1 Il polinomio minimo.
Abstract Il polinomio minimo, così come il polinomio caratterisico, è un importante invariante per le matrici quadrate. La forma canonica di Jordan è un approssimazione della diagonalizzazione, e viene
Laboratorio con DERIVE
Laboratorio con Algebra 1 Capitolo 1, p. 2 Capitolo 2, p. 3 Capitolo 3, p. 5 Capitolo 4, p. 6 Capitolo 5, p. 7 Capitolo 6, p. 9 Capitolo 7, p. 10 Capitolo 8, p. 11 Capitolo 9, p. 12 Capitolo 10, p. 13
Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due
Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b
Laboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.
HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
Somma di numeri binari
Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
1 Definizione di sistema lineare omogeneo.
Geometria Lingotto. LeLing1: Sistemi lineari omogenei. Ārgomenti svolti: Definizione di sistema lineare omogeneo. La matrice associata. Concetto di soluzione. Sistemi equivalenti. Operazioni elementari
Strutture di controllo in C++
Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni
Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni
Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni ANALISI NUMERICA - Primo Parziale - TEMA A (Prof. A.M.Perdon)
