




























































































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
Appunti informatica della comunicazione Professore Dondi anno 2020-21
Tipologia: Appunti
1 / 100
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































Se a distanza ORALE 3 Domande a risposta multipla, rispondere correttamente a due su tre. 2 domande aperte: una discorsiva e una sul diagramma di flusso (come nello scritto). Se scritto 10 domande risposta multipla, 6 giuste per la sufficienza. Durante le lezioni domande a risposta multipla tipo esame.
INFORMATICA disciplina che si occupa dell’elaborazione automatica di simboli (legata al concetto di informazione). Si occupa di: elaborazione automatica di simboli, i dati che noi abbiamo possono essere elaborati e cambiati in modo automatico, fatti da un elaboratore automatico, senza l’ausilio di esseri umani. Simboli: modo in cui si rappresentano concretamente le informazioni, modo concreto con cui l’informazione viene codificata. L’informatica studia come è possibile elaborare, quindi studiare come gli strumenti informatici sono concretamente fatti, ma anche progettare sistemi da dare poi agli algoritmi, poiché questi possano poi elaborare i dati. Informatica per questo disciplina composta da altre sotto discipline. L’informatica elabora in modo automatico, motivazioni e vantaggi: -ridurre i tempi di elaborazione: ridurre calcoli aritmetici con numeri molto grandi -affidabilità: gli elaboratori possono avere problemi di funzionamento e di incorrere in errori, tuttavia sono più affidabili degli esseri umani. -elaborazione operazioni meccaniche: molte operazioni automatiche svolte dagli operatori sono meccaniche, ripetitive e quindi possono essere automatizzate in modo semplice e veloce. Elaborazioni meccaniche e ripetitive che possono essere automatizzate in modo semplice e veloce evitando di ripetere queste operazioni. Information & communication technology (ICT) disciplina nata dalla convergenza/ fusione di alcuni aspetti di due discipline che fanno riferimento all’elaborazione dell’informazione (informatica) e discipline che si occupano delle telecomunicazioni, degli scambi di dati. Da queste 2 discipline (tecnologia dell’informazione e telecomunicazioni) ne è nata dunque una terza, che si occupa di problematiche e aspetti sia di elaborazione delle info ma anche di scambio. Nata quando sono nate le reti di elaboratori, quando è nata la rete internet, gli elaboratori hanno iniziato ad essere collegati. Da queste 2 nasce l’ICT che si occupa di problematiche di elaborazione e scambio delle informazioni.
dell’informazione:
trasmissione di info, trasferiti da un elaboratore o da un dispositivo all’altro per diversi scopi, anche nell’ambito della convergenza.
Come si è arrivati agli elaboratori quando si è iniziato a parlare di sistemi automatici. Ambito di studio dell’informatica: l’elaborazione automatica di simboli. Quando sono stati prodotti i sistemi automatici. Ambito su cui ci si è concentrati sin dall’inizio quello delle operazioni matematiche e equazioni aritmetiche. Modelli creati nell’antichità es. abaco. Nel XVII secolo modelli automatici per il calcolo, prodotti dispositivi come pascalina da Blaise Pascal, stepped reckoner, regolo calcolatore obiettivo effettuare calcoli matematici. Da un lato questi dispositivi hanno la proprietà dell’automatizzazione, di cercare di automatizzare l’elaborazione, dall’altro non possiamo considerarli come dei computer perché sono stati pensati per un determinato scopo e fanno esclusivamente quello (operazioni aritmetiche). Il computer invece ha una proprietà aggiuntiva oltre a quella di svolgere calcoli automatici. Nell’800: Il primo ha introdurre l’idea di costruire sistemi di questo tipo è uno studioso inglese che si chiama C. Babbage che nell’800 progettò a livello solo teorico il primo elaboratore, che aveva 2 parti fondamentali, che sono fondamentali anche nei dispositivi successivi, e questi sono: unità di memoria, memorizzare dati; unità di calcolo, un’unità di elaborazione. Iniziano le prime attività di programmazione, in particolare la studiosa Ada King Lovelace che basandosi sul modello teorico di Bobbage scrisse i primi programmi. Più di un secolo dopo quando alcuni progettisti crearono un linguaggio di programmazione con programmi di un certo tipo, proprio in onore di questa prima programmatrice chiamarono questo linguaggio di programmazione “Ada”. Contributo matematico in particolare G. Boole inventò l’algebra booleana che risultò molto importante dal pdv informatico perché i sistemi informatici ragionano/ utilizzano quest’algebra. Primi tentativi di costruire sistemi automatici di elaborazione. Contributi più importanti avvennero nel 900:
3 parti: piò cambiare il contenuto del nastro, lo stato della testina può essere cambiato, la testina si muove. Insieme di regole che è definito dalla tabella delle azioni permette alla macchina di effettuare una certa elaborazione. Ogni tabella specifica una macchina di turing. Macchina di turing che fa la somma, una che fa la sottrazione, una moltiplicazione. Ogni macchina di turing fa un certo tipo di elaborato. Turing, oltre ad aver creato questa macchina, creò anche la Macchina di Turing universale Primo modello riconosciuto di elaboratore generale: Macchina di Turing universale differenza la macchina di turing che fa la somma prende in input due numeri e li somma ecc. ma ognuna di queste macchine può svolgere 1 singolo compito, quella universale è in grado di svolgere qualunque tipo di elaborazione automatica (sia somma che prodotto che differenza ecc.) da ciò prende il nome di universale. E’ simile ai nostri elaboratori che sono macchine universali. Come fanno ad avere questa capacità di svolgere tanti compiti: in input oltre ai dati devono avere anche le istruzioni che devono seguire riceve i 2 numeri da sommare ma anche la codifica delle istruzioni, il programma che dice alla macchina di turing come fare a fare una determinata attività. Oltre ai dati riceve una descrizione del programma dell’elaborazione che deve eseguire. Definire qual è il potere di calcolo dei sistemi automatici: possono risolvere tutti i problemi i sistemi automatici? No. In quel periodo proposti modelli di calcolo alternativi a quelli di Turing: (in realtà equivalenti alla macchina di Turing, ossia se un problema è risolvibile da questi modelli può essere risolvibile anche dalla macchina di Turing e viceversa)
I dati che vengono letti vengono modificati, si produce un certo risultato. Input- elaborarla producendo un certo risultato- output. Concetto di problema la fase di elaborazione ha come scopo quello di risolvere un problema. Un problema consiste in un insieme di dati in input, e dobbiamo calcolare una soluzione, elaborare i dati per risolvere il problema. Parto dai dati input, li modifico e elaboro, infine calcolo la soluzione algoritmo Come facciamo a risolvere il problema, quali sono le modalità in cui io devo elaborare i dati per riuscire a trovare una soluzione. Algoritmo: descrizione di come facciamo a risolvere un determinato problema partendo da un certo insieme di dati, metodo per calcolare la soluzione di un problema. Processo che dobbiamo seguire. Nel definire il processo definisce la sequenza di istruzioni, algoritmi composti da sequenze di istruzioni, che ci fa capire come elaborare i dati, come estrapolarli, modificarli per riuscire a calcolare la soluzione (output). Caratteristiche dell’algoritmo:
Programma e algoritmo sono due termini legati ma non equivalenti: la differenza è che algoritmo usa una descrizione astratta di come avviene il processo di elaborazione, il programma è un algoritmo che è stato scritto e implementato in un determinato linguaggio di programmazione che è comprensibile ad un computer, ho tanti linguaggi. Processo: programma in esecuzione, quando noi prendiamo un programma e lo mandiamo in esecuzione. Da un algoritmo posso avere tanti programmi, quando ho un programma posso creare tanti processi. DOMANDE TIPO ESAME 1.Cos’è un algoritmo? –un programma eseguibile da un calcolatore; -le informazioni che devono essere eseguite da un calcolatore; -una delle componenti della macchina von Neumann; -l’inversa della funzione esponenziale; -una descrizione delle istruzione che consentono ad un esecutore di compiere autonomamente un’elaborazione 2.Cos’è un programma? –le informazioni che devono essere eseguite da un artefatto informatico; -un software in esecuzione su un computer; - una app in esecuzione su computer; -complesso di operazioni che un artefatto informatico è in grado di eseguire. (Processo)
comprensione dell’elaborazione. Descrizione di programmi e algoritmi, in forma grafica tramite d. di flusso, composti da blocchi che hanno funzioni differenti, es. alcuni servono per svolgere operazioni, altri per la lettura di dati, questi blocchi sono tra di loro collegati da quelle che vengono chiamate linee di flusso, che ci fanno capire cosa succede dopo un’elaborazione. Si crea un diagramma grafico cui blocchi sono collegati e il modo in cui son o collegati descrive come avviene l’elaborazione. Primi blocchi: blocco di inizio e di fine, rappresentati sempre come un ovale (vedi slide). Nella definizione di algoritmo abbiamo sempre un unico blocco di inizio (per quella proprietà dell’algoritmo che è determinismo); possono esserci più blocchi di fine a seconda dei dati che ho a disposizione. Frecce sotto o sopra l’ovale sono le linee di flusso; dal blocco di inizio escono, da quello di fine arrivano/entrano. Blocco operazione: definisce un’operazione di base, ha la forma di un rettangolo all’interno del quale scrivo qual è l’operazione che viene svolta. Due linee di flusso: una che arriva e una che esce. Blocco di input e output: blocchi che rappresentano la lettura di un dato input e la scrittura di un dato output. Fase di input blocco con una forma di parallelepipedo, fase di output blocco che ha la forma di un foglio con una curva
Assegnamento: stabiliamo qual è il valore di una variabile. freccia assegnamento che va verso il nome; nome della variabile; espressione a destra è il valore che assegniamo. X 11 = la variabile che si chiama X, e stabilisco che il valore è 11. X= 11.Se cambio in X 22 il valore 11 verrà cancellato e sostituito dal 22. X= 22. Nell’assegnamento posso includere nella parte di destra, dell’espressione, anche delle variabili: Y X = definisco un’altra zona di memoria che si chiama Y, che conterà lo stesso valore di X, quindi: se x 11 e Y X Y sarà 11 come X. Altro esempio: numero1 10; numero2 20; somma numero1 + numero2. Una zona di memoria chiamato somma il cui valore è il contenuto di numero 1+ quello di 2 = somma 30. Diagramma di flusso slide somma di due numeri:
1^ blocco iniziale 2^ e 3^ blocco di lettura 4^ blocco operazione: blocco di memoria che si chiama somma a cui assegno il valore dei blocchi di lettura (numero1 e numero2) 5^ blocco di output 6^ blocco di fine Differenza di due numeri: scrivere un algoritmo che calcola la differenza tra il numero X e il numero Y (da leggere in input): 1^ blocco inizio 2^ variabile che chiamo X, a cui assegno il primo numero letto 3^ variabile Y, secondo numero letto 4^ blocco operazione che calcola la differenza da X e Y, definisco la variabile differenza: Differenza X –Y 5^ blocco di output, definito il valore nella variabile differenza 6^ blocco di fine Casi in cui i dati non sono singoli, ma hanno relazioni tra loro dati strutturati: non dato singolo ma insieme di dati, si chiamano strutturati perché descrivono delle proprietà di un insieme di oggetti che sono in qualche modo correlati. Dati che sono legati e non posso quindi rappresentarli come variabili indipendenti, ma ho bisogno di una variabile strutturata di dati strutturati, utilizzata per memorizzare i dati strutturati. 2 tipi di variabili strutturate:
Esempio: questa matrice la chiamo X 0; 1; 2; 3 anche in verticale. X2,1 10; X0,4 22. Esempio:
1^ blocco inizio 2^ lettura di vettore: il vettore letto è assegnato a C0. Esempio se leggo 10 assegno 10 alla cella C 3^ lettura C1. Se vale 20 scrivo 20 in C1. 4^ blocco operazione: assegnazione alla cella C2 C0+C1. Scrivo in C2 la somma ( 30 in questo caso) 5^ blocco output 6^ blocco di fine Fin’ora abbiamo visto diagrammi di flusso con elaborazione lineare senza deviazioni. Le elaborazioni interessanti hanno un comportmento diverso, le linee di flusso che possono essere seguite sono diverse e non c’è una sola linea sequenzialebisogna introdurre un altro blocco, Blocco di controllo, istruzione condizionale: condizione da verificare da cui escono due possibili percorsi alternativi. Vero Numero >0 falso RIGUARDARE Ciò che scriviamo nel blocco di controllo sono valori chiamati booleani, che attraverso operazioni di confronto verifichiamo due valori numerici o stringhe, facciamo il confronto tra dei valori. Numero>0 l’esito di questo confronto è ciò che viene chiamato valore booleano, perché questi valori hanno la caratteristiche di essere in due soli stati (vero o falso). Esempio: numero 10 numero >0 è vero; numero -3 numero >0 falso. Due sole condizioni. Operatori di confronto:
Esempio:
Se x=120 e y=200: (x>=100) & (x<y) (120>=100) & (120<200) entrambe le parti sono vere allora complessivamente tutto sarà vero.
Diramazione massimo tra 2 numeri scriviamo un algoritmo che legge i numeri e restituisce il massimo. Blocco inizio; leggo due numeri e li memorizzo nelle variabili (blocco input); n1 > n2 seguo la linea di flusso esatta; blocco output assegno alla variabile max il valore numero 1 “Max numero 1”; altro blocco di output “Max”, blocco di fine, sono 2. E’ possibile modificare il d. di flusso in modo tale da avere un solo blocco fine?