



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
programmazione informatica università degli studi di bari
Tipologia: Slide
1 / 6
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Unità centrale di elaborazione (Central processing Unit) ‐ Struttura funzionale: ALU + Unità di controllo e Registri ‐ Chip (circuito integrato) o Transistor Memoria: ‐ Memoria principale: Random Access Memory (RAM) – volante (se la corrente va via e non avete salvato il lavoro lo perdete) Memoria secondaria: es. Hard Disk (disco rigido) – permanente Dispositivi di memorizzazione rimuovibili: ‐ Floppy, CD. Differenti velocità, costi , capacità di memorizzazione. Il modello di VON NEUMANN è dotato di dispositivi periferici (per ricevere programmi e dati per fornire risultati). MODELLO DI VON NEUMANN ‐Esegue istruzioni elementari (trasferimento di dati, salti, operazioni logiche ed aritmetiche:: somma differenza e confronto) ‐ ALU: Aritmetic logic unit Esegue istruzioni molto rapidamente ‐ Ciclo macchina (clock) Mandare in run un programma .exe ‐ Caricare nelle RAM le istruzioni RAPPRESENTAZIONE MODELLO DI VON NEUMANN Memoria Dispositivi di input Dispositivi di output Unità di elaborazione centrale
‐Dato un problema, occorre dalla sua formulazione l’individuazione di un metodo solutivo valido (definizione EUCIP) ‐ Problema: situazione problematica ‐ Formulazione: WHAT ‐Algoritmo: HOW ‐L’ esecuzione verrà attuata da un processore (umano o no) in grado di interpretare la descrizione del metodo solutivo ed eseguire le istruzioni. FORMULAZIONE‐ CHIARIFICA ‐Customer’s (Cliente) needs Docente vi chiede di risolvere un certo problema e vi fornisce una traccia/idea personale di un prodotto da realizzare. ‐ Dalla prova scritta appello del 13 sett 2013 quesito 3 Chiarifica del problema: “Controllare se una matrice quadrata assegnata abbia la diagonale principale nulla” (Non si richiede né algoritmo risolutivo né codice java). Con un problema che dice controlla, verifica si aspetta come risultato un valore booleano quindi se è vero o falso. ‐WHAT: riformuliamo il problema: individuando le parti principali (risultato, dati) e rendendo esplicito il significato.. ricorriamo alle definizioni (matrice, matrice quadrata, diagonale principale, diagonale nulla),le proprietà, i vincoli. In questo caso la matrice quadrata è un dato, in questo caso in ingresso. Matrice: tabella di elementi. Matrice quadrata: chiamata così se ha un numero uguale di righe e colonne. Una matrice quadrata è dotata di una diagonale principale(quella che va da sinistra verso destra= A1,1 – A2,2 – A3,3 ecc..) Diagonale secondaria: diagonale opposta dall’angolo in alto a destra a quello in basso a sinistra. Diagonale nulla: è nulla quando tutti gli elementi che si trovano nella diagonale principale sono nulli (nel caso di numeri interi è nulla quando ci sono tutti 0) La diagonale sarà nulla se sarà nullo il prodotto degli elementi sulla diagonale principale. Se non so qual è il problema da risolvere, come si può fare a progettare una sua soluzione? Come si fa a codificare un programma che lo risolva?
Codifica: (attua il piano, quindi l’attuatore è il codificatore) ‐ Output: il programma Testing: ‐ È la fase di prova IL CICLO DI VITA DEL SOFTWARE Inizio Fase di analisi Tutte le fasi vanno condotte Progettazione strategia risolutiva con sistematicità e metodo. Def: strutture dati L’attività di correzione può richiedere Fase di codifica un tempo pari al 50° o del ciclo di vita Fase di testing di un programma. Ok? Fine Quanto più è alta la fase in cui è stato Compiuto l’errore, tanto più è difficoltoso e Costoso effettuare la correzione. PROBLEMI COMPLESSI Progettazione della soluzione ‐Strategia Top‐ down ‐ La proposizione dell’algoritmo solutivo parte dal livello 0 (il problema da risolvere nella sua interezza) e passa attraverso la decomposizione in sotto‐problemi a livelli successivi, sino a giungere a sotto‐problemi “primitivi” (gerarchia di macchina astratta) ‐ogni livello deve risultare equivalente al problema di partenza. Per la strategia top down posso applicare il principio del Divide et Impera, frase di origine romana: Cesare riusciva a vincere i nemici perché la sua strategia di battaglia era questa: la tattica sul campo era quella di isolare i nemici e quindi aveva la meglio sui piccoli nemici. Dividi: scompone i problemi in sotto problemi che saranno più semplici.
Impera: vuol dire domina, cioè risolvi un sotto problema. Combina: Ho risolto i sotto problemi e ora li combino. Questo principio applicato in programmazione porta ad una programmazione procedurale ovvero tutti i sotto problemi posso confezionarli in procedure, quindi scriverò un codice fatto di pezzi che comunicano. STEP WISE REFINEMENT Significa raffinamento passo passo, in cui partendo dalla specifica del problema mi porta alla soluzione del problema. Man mano che io dettaglio, arrivo alle azioni che sono note al mio processore o che sono note a me programmatore. Wirth è colui che ha inventato il linguaggio Pasqual. Dopo aver creato la specifica avrò una descrizione più dettagliata della specifica che devono essere ulteriormente dettagliate. Quella che deriva da Wirth porta ad un dettagliamento senza procedure. SCOMPOSIZIONE DEI PROBLEMI Ha come conseguenza il vantaggio, meno complessi problemi da rislovere Lo svantaggio: più problemi da risolvere QUANDO FERMARSI? ‐Bisogna arrivare al punto in cui: ‐ tutti i problemi sono primitivi ‐ E’ fissato l’ordine di esecuzione dei sottoproblemi ‐E’ previsto I sotto problemi devono avere ognuno la propria autonomia e poi devono cooperare perché ognuno deve inviare i propri risultati agli altri. TECNICA DI SCOMPOSIZIONE Applicando delle tecniche: Sequenziale: il problema lo frammento in parti sequenziali, suddivido un problema in parti disgiunte. Selettiva: (if, if‐else, switch)