Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


secondo parziale informatica, Dispense di Fondamenti di informatica

riassunto slide e appunti della lezione. dal pdf 6 al 11.

Tipologia: Dispense

2025/2026

Caricato il 15/01/2026

3elle
3elle 🇮🇹

2 documenti

1 / 31

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I
di FÈIFHIÈIHI
DRIVER
SOFTWARE
VIDEOSCRITTURA
software applicativo
FOGLIO
ELETTRONICO
BASIDIDATI
PRESENTAZIONE
FOTORITOCCO
UTILITIES
Si possono distinguere due categorie di software: IL SOFTWARE DI BASE E IL SOFTWARE APPLICATIVO.
Applicazione per giocare; applicazione per analizzare i dati; pagine web.
Categorie di software:
Il termine software indica la parte intangibile del computer (in contrasto con quella fisica definita hardware)
scritte in Binario. Noi oggi scriviamo in binario? noi utilizziamo linguaggi più vicini all’uomo detti ad alto livello
poi tradotti in codice binario.
Programma: (programma=insieme di cifre binarie, che sono istruzioni che la macchina segue)
La forma più semplice di software è il codice binario 010101001001 – le istruzioni che esegue la CPU sono
costituita dai programmi, ovvero dall’insiemi di istruzioni che il computer esegue. Insieme di tutti i programmi
eseguiti nel Computer:
(1 PDF) SOFTWARE APPLICATIVI E DOCUMENTI
Istruzione Rect (100,100,300,200)
(disegna un rettangolo).
Es:
Viene trasformata in tante
sequenze di 01010 che la CPU
comprende ed esegue. Sono
segnali elettrici che scorrono nei
circuiti (componenti del Computer)
Il Sistema Operativo è Un Software di Base:
Software che gestisce e controlla automaticamente le risorse del computer
permettendone il funzionamento. Gestisce il computer senza che l’utente sia
consapevole di quello che sta accadendo. Viene caricato nella memoria d’uso
all’atto dell’accensione della macchina. Il software di base è necessario al
computer per funzionare
E’ costituito dall’insieme dei programmi che hanno lo scopo di rendere operativo il
computer gestendone le risorse di sistema software di base è strettamente legato
alle caratteristiche dell’hardware.
SOFTWARE DI BASE, (software di sistema)
E’ composto dai programmi che permettono di utilizzare il computer per svolgere
determinati compiti specifici. Rientrano in questa categoria i programmi per la
videoscrittura, la posta elettronica, i fogli elettronici, i programmi di grafica,
le applicazioni gestionali, i programmi antivirus, programmi per la
compressione
SOFTWARE APPLICATIVO
Tutti questi programmi possono essere installati sul computer solamente dopo
l’installazione del sistema operativo. Il software applicativo è necessario
all’utente per lavorare.
dei files, etc.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f

Anteprima parziale del testo

Scarica secondo parziale informatica e più Dispense in PDF di Fondamenti di informatica solo su Docsity!

I

di FÈIFHIÈIHI DRIVER OFTWARE VIDEOSCRITTURA software applicativo

FOGLIOELETTRONICO

BASIDIDATI PRESENTAZIONE FOTORITOCCO UTILITIES Si possono distinguere due categorie di software: IL SOFTWARE DI BASE E IL SOFTWARE APPLICATIVO. Applicazione per giocare; applicazione per analizzare i dati; pagine web. Il termine software indica la parte intangibile del computer (in contrasto con quella fisica definita hardware) scritte in Binario. Noi oggi scriviamo in binario? noi utilizziamo linguaggi più vicini all’uomo detti ad alto livello poi tradotti in codice binario. Programma: (programma=insieme di cifre binarie, che sono istruzioni che la macchina segue) La forma più semplice di software è il codice binario 010101001001 – le istruzioni che esegue la CPU sono costituita dai programmi, ovvero dall’insiemi di istruzioni che il computer esegue. Insieme di tutti i programmi eseguiti nel Computer:

(1 PDF) SOFTWARE APPLICATIVI E DOCUMENTI

Istruzione Rect (100,100,300,200) (disegna un rettangolo). Es: Viene trasformata in tante sequenze di 01010 che la CPU comprende ed esegue. Sono segnali elettrici che scorrono nei circuiti (componenti del Computer) Il Sistema Operativo è Un Software di Base : Software che gestisce e controlla automaticamente le risorse del computer permettendone il funzionamento. Gestisce il computer senza che l’utente sia consapevole di quello che sta accadendo. Viene caricato nella memoria d’uso all’atto dell’accensione della macchina. Il software di base è necessario al computer per funzionare E’ costituito dall’insieme dei programmi che hanno lo scopo di rendere operativo il computer gestendone le risorse di sistema software di base è strettamente legato alle caratteristiche dell’hardware. SOFTWARE DI BASE, ( software di sistema) E’ composto dai programmi che permettono di utilizzare il computer per svolgere determinati compiti specifici. Rientrano in questa categoria i programmi per la videoscrittura, la posta elettronica, i fogli elettronici, i programmi di grafica, le applicazioni gestionali, i programmi antivirus, programmi per la compressione SOFTWARE APPLICATIVO Tutti questi programmi possono essere installati sul computer solamente dopo l’installazione del sistema operativo. Il software applicativo è necessario all’utente per lavorare. dei files, etc.

SOFTWAREOPENSOURCE

I programmi shareware alla scadenza si comportano in maniera diversa: (ossia software a sorgente aperto) è stato sviluppato da una comunità aperta di ricercatori e di spesso sono versioni semplificate di prodotti a pagamento, oppure versioni di lancio per nuovi software. Quando si acquista un prodotto software si ottiene la End-user license agreement (EULA), che consente di utilizzarlo liberamente per la propria attività.

Categorie di software:

I programmi shareware riacquistano la completa funzionalità (e legalità) solo mediante una Software open source: i sorgenti che lo compongono possono oltre che essere utilizzati anche essere modificati a proprio piacimento per ottenere un risultato più adatto alle proprie esigenze, rispettando pro alcune regole.

  • (^) alcuni avvisano l’utente con un messaggio relativo all’avvenuta scadenza offrendo la possibilità di acquisto, ma continuano a funzionare. Generalmente si hanno licenze GPL General Public License (licenza software libero) che concedono ai A volte l’uso gratuito viene vincolato ad impieghi esclusivamente non commerciali. licenziatari il permesso di modificare il programma, di copiarlo e ridistribuirlo con o senza modifiche, programmatori ed è liberamente utilizzabile e ridistribuibile. Software freeware: Gratuito e può essere usato e distribuito liberamente ( ad eccezione della rivendita ad altri ); si tratta di solito di programmi relativamente semplici, messi a disposizione del pubblico per motivi pubblicitari o anche per semplice generosità dei creatori; “chiave software” fornita dal produttore dopo l’acquisto.
  • (^) Altri invece smettono di funzionare o funzionano in modalità ridotta (per esempio non consentono più di salvare i file). gratuitamente (nella totalità dei casi). Software proprietario: è di proprietà di un’azienda e può essere utilizzato solo se regolarmente acquistato e dotato di licenza d’uso. La copia contenente il software originale è consentita unicamente come copia di riserva per l’utente che li ha acquistati, nell’eventualità che i supporti originali si rovinassero. Non è consentito né copiare i CD per cederli ad altri (a nessun titolo), né usare gli stessi CD originali per effettuare più installazioni su diverse macchine(a meno che la licenza non lo preveda espressamente). Il software puo essere classificato sulla base del tipo di utilizzo consentito. Software shareware: viene fornito “in prova” gratuita per un periodo di tempo limitato (per esempio, trenta giorni) a partire dal momento dell’installazione. Scaduti i termini, se l’utente è soddisfatto deve acquistarlo, altrimenti ha l’obbligo morale di disinstallarlo dal computer.

Quando la memoria non è più sufficiente per contenere completamente tutte le istruzioni dei vari processi è possibile “simulare” una memoria più grande mantenendo nella memoria di lavoro (RAM) solo le istruzioni ed i dati che servono in quel momento. Ciascun programma in esecuzione può attivare più processi (task): nei sistemi operativi Windows è possibile visualizzare l’elenco dei task attivi mediante il Task Manager. 3- GESTORE DELLA MEMORIA DI MASSA:(file sistem) è quel modulo del sistema operativo che si occupa di gestire le informazioni memorizzate sui dispositivi di memoria di massa. Si occupa della lettura/scrittura dei dati e deve garantire la correttezza e la coerenza delle informazioni. La gestisce della memorizzazione dei dati sui dispositivi di memoria di massa prende il nome di file sistem. Esistono diversi tipi di file system (a seconda dei sistemi operativi), ma quasi tutti i sistemi operativi utilizzano un’organizzazione dei files di tipo gerarchica, dove l’elemento utilizzato per raggruppare più files è costituito dalla “cartella” (directory). organizzarne il contenuto, (spostando/copiando/cancellando/rinominando files e cartelle). Sui dischi di un PC si possono trovare decine di migliaia di files: se non ci fosse nessun criterio di ordinamento sarebbe molto complicato riuscire a rintracciare ogni volta il file che interessa. occupa anche di gestire la cooperazione tra le varie CPU presenti nel La gestione dei processi avviene in maniera differente in base al tipo di utilizzo a cui il sistema è rivolto ma il programma che si occupa dell’assegnazione del microprocessore tra i vari processi attivi, decidendone l’avvicendamento, è comunemente chiamato scheduler. Nei computer dotati di multi-processore (con più CPU), lo scheduler si sistema. 1-GESTORE DEI PROCESSI: Eil modulo che si occupa di controllare l’avvio , l’interruzione e la chiusura dei vari processi (task) caricando i relativi programmi in memoria. Tutte le altre istruzioni del programma nonché i dati, che in quel momento non servono, sono tolti dalla memoria centrale e parcheggiati sul disco nella cosiddetta area di swap(scambio/baratto) che costituisce la memoria virtuale. Con tale sistema l’esecuzione dei programma rallenta notevolmente. La complessività del gestore della memoria dipende dal tipo di sistema operativo. Nei sistemi multi-tasking più programmi possono essere caricati in memoria contemporaneamente. 2- GESTORE DELLA MEMORIA DI LAVORO: è quel modulo del sistema operativo che si occupa di assegnare la memoria ai vari processi. ( Per eseguire un processo è necessario che il relativo programma sia caricato nella memoria RAM). Il sistema operativo fornisce all’utente tutti i programmi necessari per visualizzare l’indice dei dischi ed Molti sistemi operativi (fra cui windows) includono nel nome una sigla aggiuntiva detta estensione che caratterizza il tipo di file. L’estensione viene separata con un punto dal resto del nome e permette in genere di comprendere la categoria a cui quel file appartiene. Il file system permette di creare dei “raccoglitori” (cartelle) che consentono la gestione dei files in gruppi logicamente omogenei. Ogni cartella può contenere altre sottocartelle e così via, come un gioco di scatole cinesi. Ogni file e ogni cartella devono possedere un nome che li distingua dagli altri.

Distinguiamo S.O. con interfaccia a carattere e S.O. con interfaccia grafica. Nei sistemi operativi con interfaccia a carattere detti anche a linea di comando (Command Line Interface, CLI), l’interazione con l’utente avviene principalmente attraverso la digitazione di appositi comandi impartiti tramite tastiera. Sullo schermo (di un colore solitamente scuro uniforme) non compare nessun oggetto grafico e tutti i comandi devono essere digitati da tastiera Ricordiamo l’MS-DOS(Microsoft Disk Operating System) diffuso tra i PC fino all’avvento del SO Microsoft Windows 3.1. L’ESTENSIONE viene separata con un punto dal resto del nome e permette in genre di comprendere la categoria a cui quel file appartiene. ◦ (^) le estensioni. avi. mpg .mp4 appartengono a filmati che ovviamente possono contenere video e audio ◦ (^) le estensioni. jpg. gif. bmp .png indicano immagini; ◦ (^) con estensione. htm e. html sono pagine web; ◦ (^) con estensione. exe sono programmi eseguibili; 5-GESTORE DELL’INTERFACCIA UTENTE: Ha il compito di implementare i meccanismi per rendere agevole l’utilizzo del sistema da parte degli utenti. (l’insieme dei meccanismi di interazione tra il computer e l’utente prende il nome di interfaccia utente) ◦ (^) con estensione. doc .xls .mdb .ppt sono file rispettivamente di Word, Excel, Access e PowerPoint; Il controllo delle unità stesse avviene attraverso speciali programmi detti driver spesso realizzati dai produttori dei dispositivi stessi. es:i files 4-GESTORE DELLE UNITA DI INPUT/OUTPUT: E’ quel modulo del sistema operativo che si occupa di gestire la ricezione e la trasmissione dei dati attraverso tutte le unità di input/output assegnandole ai processi che ne fanno richiesta. Nei sistemi operativi con interfaccia grafica(Graphical User Interface, GUI) l’interazione avviene tramite icone e finestre, utilizzando un mouse che comanda un puntatore all’interno di un’interfaccia grafica strutturata a finestre Sono chiamati ambienti user friendly (amichevoli verso l’utente). ◦ (^) l’estensione. wav .mp3 indica files audio; ◦ (^) con estensione. txt sono documenti di testo semplice;

slide Quando si scambiano dati, deve essere noto il tipo di codifica utilizzata. La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue. Lo standard di codifica più diffuso è il codice ASCII.

A → 01000001

Per ciò dobbiamo inserire nella codifica?

  • (^) Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica. in genere, si usa 1 byte (8 bit) per rappresentare ogni carattere; i caratteri con il bit più significativo ad 1 sono quelli con codici da 128 a 255 , che sono estensioni della codifica. La tabella comprende: Inoltre i caratteri alfabetici/numerici hanno codici ordinati secondo l’ordine alfabetico/numerico. il concetto chiave è che: l’insieme “astratto” dei caratteri fanno parte del codice ↔ CODIFICA ↔ insieme di “ottetti” di cifre binarie (byte) in corrispondenza uno-uno con i caratteri dell’altro insieme. Per codificare anche in altre lingue servono 220 caratteri circa, quindi servono 8 bit (2^8 = 256 combinazioni).
    • Caratteri stampabili (codici da 32 a 126) codifica base: definisce una tabella di corrispondenza fra ciascun carattere e codice a 7 bit (128 caratteri).
  • (^) Oltre ai numeri, molte applicazioni informatiche elaborano caratteri e simboli. $ → 00100100
    • Caratteri nazionali (à, è, ì, ò, ù, ñ, ö …)
    • Altri segni grafici (©, ™, € …)
  • 52 lettere alfabetiche (maiuscole e minuscole) Considerando solo i caratteri base USA (circa 120), servono almeno 7 bit (2^7 = 128 combinazioni).
  • (^) Gli elaboratori elettronici trattano numeri, quindi per usare caratteri e simboli si ricorre a una codifica numerica.
  • 10 cifre numeriche (0, 1, … 9)
  • Segni matematici (+, -, ×, ±, {, /, > …) Ogni parola o frase gestita da un computer è in realtà una sequenza di numeri binari memorizzati e trasmessi come segnali elettrici accesi o spenti. esempi di codifica binaria:
  • Segni di punteggiatura (,. ; :! “? ’ …) Codifica dei caratteri alfabetici:
  • Caratteri di controllo (codici da 0 a 31, es. tab invio). (2 PDF) CODIFICA DEL CARATTERI E IMMAGINI, e suono. Standard di codifica: ASCII ( American Standard Code for Information Interchange) Il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0: Es: ‘5’ - ‘0’ = 53 - 48 = 5

I caratteridicontrollo 2 caratteri (^) stampabili Ellman TABELLA ASCII^ IN NOTAZIONEBINARIA Codifica parola “Ciao”: All’interno del computer, “Ciao” è scritta così: 01000011 01101001 01100001 01101111 Hanno funzioni speciali: si ottengono o contrasti specifici o con una sequenza ALTGr + numero tastierino() - - -ALT + numero tastierino…(con tastierino numerico) altrimenti mappa caratteri.* -I successivi 95 simboli, numerati da 32 fino a 126, sono caratteri stampabili. -Il 128esimo simbolo è ancora un carattere di controllo non stampabile. -I primi 32, numerati da 0 fino a 31, sono caratteri di controllo non stampabili. La concatenazione del “nibble” di riga e di quello di colonna dà il codice ASCII in binario. -Il numero “234” viene codificato come sequenza ASCII: 00110010 00110011 00110100 = il (spazio) P O. -Testo “ il PO” = 01101001 01101100 00100000 01010000 01001111 00101110 Attenzione: così non è possibile fare operazioni aritmetiche direttamente, va ricalcolato dal codice ASCII. Esempi di sequenze binarie: LA TABELLA ASCII ESISTE ANCHE IN MANIERA ESTESA: I codici oltre il127 non sono compresi nello standard originario.

  • (^) + tasto → versione maiuscola
  • UNICODE 16 bit → 2^16 = 65.536 simboli (ASCII+ caratteri etnici…)
  • (^) <,Alt> + codice ASCII decimale (usando il tastierino numerico)
  • MSWindows 16 bit per carattere — simile all’UNICODE Esempi: ALT+123 → { ALT+125 → } ALT+1, ALT+13, ALT+14, ALT+15 … Codifiche standard:
  • ASCII 8 bit → fino a 256 caratteri La tastiera ha meno di 100 tasti, quindi per ottenere tutti i simboli si usano combinazioni di tasti: Codifiche propietarie:
  • Verde Profondità di colore Immagini in scala di grigi:
  • Blu
  • 1 bit → 2 colori
  • Esempi: -Ogni componente usa 8 bit → valori 0– Il numero di bit richiesti per memorizzare un’immagine dipende dalla risoluzione e dalla profondità numero di bit per immagine = risoluzione x profondità. La rappresentazione di un'immagine mediante la codifica dei pixel, viene chiamata codifica bitmap o raster.
  • Un pixel RGB = 24 bit Bitmap (Raster):
  • 8 bit → 256 colori -Modello CMYK:
  • Ciano, Magenta, Giallo, Nero
  • Usato in stampa A ogni pixel si assegna un livello di grigio. Esempi:
  • Indica quanti colori diversi possono essere rappresentati ◦ (^) 3 bit → 2^3 = 8 livelli di grigio
  • Rosso
  • Colori totali ≈ 16 milioni.
  • 24 bit → ~16 milioni di colori Ovviamente, aumentando il numero di pixel a disposizione, migliora la qualità dell’immagine. La profondità dell’immagine è invece il numero di bit che servono per rappresentare un singolo pixel dell’immagine Aumentare la qualità → aumenta lo spazio occupato. La risoluzione dell’immagine è il numero di pixel che la costituiscono, espressi in termini di larghezza x altezza.
  • La visualizzazione dipende anche dal monitor . Immagini a colori: Modello RGB Ogni pixel è rappresentato dal valore binario corrispondente . -Ogni pixel è definito da: -RGB (0,255,255) in binario: ◦ (^) 8 bit → 2^8 = 256 livelli

Palette di colori: Immagini raster-vettoriali: Immagini vettoriali: Compressione delle immagini: Se occorre “ridisegnare” l’immagine più grande, la soluzione al problema è garantita dal formato vettoriale che rappresenta l’immagine come un insieme di equazioni matematiche, che riproducono delle curve, e che quindi possono essere ridisegnate. Infatti, potrebbe capitare che, quando lo zoom è molto alto, i pixel diventino dei quadratini ben visibili a video, generando uno spiacevole effetto sgranato dell’immagine, poiché non sia ha sufficiente informazione. In questo contesto l’approccio raster non è il migliore. Le immagini raster non sono adatte ogni qualvolta si ha la necessità di eseguire un ingrandimento dell’immagine senza perdere in risoluzione. Le immagini vettoriali

  • Per essere visualizzate a schermo devono essere renderizzate in raster.
  • Ideali per CAD e grafica tecnica La grafica vettoriale è una tecnica di rappresentazione dell'immagine, o di un carattere tipografico generato da un computer, in cui gli elementi grafici che la costituiscono sono un insieme di primitive geometriche, alle quali possono essere attribuiti colori e anche sfumature.
  • Ingrandimento senza perdita di qualità Non sempre servono tutti i colori possibili. Si usa una palette (sottoinsieme di colori); la tipica palette: 256 colori → profondità 8 bit. La palette è salvata insieme all’immagine. Non sono basate su pixel.esse vengono descritte tramite primitive geometriche ed equazioni matematiche. Vantaggi:
  • GIF → compressione lossy, palette fino a 256 colori
  • PNG → standard moderno . Formati principali
  • JPEG (JPG) → compressione lossy, usata per foto Tipi di compressione:
  • Riduce molto lo spazio occupato .
  • Adatta a immagini con aree uniformi
  1. Lossy
  2. Lossless
  • Nessuna perdita di informazione
  • Perdita irreversibile di informazione

esempioricettatorta i re (^) Iniziati ALGORIMOVÀ l’erogazione quando la quantità è sufficiente. esempio di tale meccanismo è la telefonata. In questo caso, l’input è costituito dal numero di telefono e dal telefono cellulare; l’output è la telefonata effettuata, a condizione che il numero sia stato digitato correttamente e che l’interlocutore risponda. Il procedimento che consente di ottenere l’output a partire dall’input rappresenta l’algoritmo. L’algoritmo per effettuare una telefonata può essere descritto come una sequenza di passi: si solleva il ricevitore, si attende il segnale di linea, si compone il numero ripetendo l’operazione finché tutte le cifre non sono state inserite (questa fase rappresenta un’interazione). Successivamente si attende la risposta: se la linea è libera e l’interlocutore risponde, si conduce la conversazione e infine si depone il ricevitore; se invece l’interlocutore non risponde, oppure se la linea è occupata, si depone comunque il ricevitore. Questo esempio mostra come un algoritmo possa includere condizioni, ripetizioni e sotto-algoritmi. Per fare il caffè si prende prima una cialde poi si inserisce nella macchinetta. Si prendono Definizione di Algoritmo e Informatica: Possiamo spiegare l’algoritmo attraverso l’esempio della preparazione del caffè: ogni fila di quest’ultimo è rappresentato dal altrettante palline poste sulla sinistra della Un sistema di elaborazione può essere descritto attraverso lo schema input → elaboratore → output. una tazzina si inserisce la tazzina sotto la cialde si attiva l’erogazione e si blocca Rapporto Algoritmo-Dato: Il concetto di algoritmo è inscindibile da quello di dato. Un algoritmo è una procedura che prende dati in input e, dopo averli elaborati, restituisce dati in output. L'informatica è definita come la scienza della rappresentazione e dell'elaborazione rigorosa (e potenzialmente automatica) dell'informazione. Non riguarda solo la tecnologia dei calcolatori, ma anche e soprattutto il modo in cui l'informazione viene strutturata ed elaborata automaticamente. Un altro esempio, può essere quello di un pallottoliere in cui il numero indicato da fila. Le palline non utilizzate sono poste a destra ciò significa che i passi dell’algoritmo saranno: spostiamo una pallina da sinistra a destra sulla prima fila e contemporaneamente si sposta una pallina da destra a sinistra all’ultima fila. Si ripete il passo precedente fino all’esaurimento delle palline della prima fila. successivamente si spostano una pallina da sinistra a destra sulla seconda fila e contemporaneamente si sposta una pallina da destra a sinistra l’ultima fila. Si ripete il passo precedente fino all’esaurimento delle palline della seconda fila. Infine, il numero di palline che si trova a sinistra sulla terza fila rappresenta il valore cercato.

CONCETTO, PROPRIETÀ E RAPPRESENTAZIONE DI UN ALGORITMO

Algoritmo = sequenza precisa di operazioni comprensibili e perciò eseguibili da uno strumento automatico. In questo processo, l’essere umano definisce l’algoritmo, mentre il calcolatore esegue il programma che implementa tale algoritmo. vi sono anche altre definizioni ACM (Associazione per le Macchine Calcolatrici): L'Informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l'informazione, includendo la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione. L’input è costituito dai dati ammissibili, che vengono forniti al sistema. L’elaboratore riceve questi dati e li sottopone a una trasformazione, seguendo passo dopo passo un algoritmo, espresso tramite un linguaggio di programmazione. Il risultato di questa trasformazione è l’output, ovvero i dati desiderati. In sintesi, l’input viene elaborato secondo un algoritmo dall’elaboratore per produrre un output.

In generale, un algoritmo possiede quattro proprietà fondamentali: la sequenza di istruzioni deve essere finita, quest’ultima deve portare a un risultato corretto. le istruzioni devono essere eseguibili materialmente. le istruzioni non devono essere ambigue. L’evoluzione della tecnologia software ha portato allo sviluppo di linguaggi di programmazione strutturati (general purpose) di uso generale(‘60/80), come ALGOL, Pascal e Modula-2, adatti a una vasta gamma di applicazioni. Successivamente si sono diffusi negli anni 80 il linguaggio C (tante app) e a seguire linguaggi come C++, orientato alla programmazione a oggetti, e Java. prima di loro vi erano i linguaggi di programmazione (HHL): Fortran, cobol. L’evoluzione della tecnologia software: I linguaggi di programmazione permettono di descrivere gli algoritmi in una forma interpretabile dal calcolatore. Esistono diversi livelli di linguaggio , a partire dal linguaggio macchina (0100001111 etc..) passando per il linguaggio assembler (LOAD PAGA; ADD STRAORD;STORE TOT), fino ai linguaggi più evoluti come il linguaggio C (TOT=PAGA+STRAORD). Linguaggio di programmazione: L’evoluzione dei linguaggi di programmazione ha avuto come obiettivo quello di allontanarsi sempre più dal modo in cui la macchina interpreta un algoritmo e di avvicinarsi al modo di ragionare degli esseri umani, passando dal linguaggio macchina ai linguaggi orientati agli oggetti.

1 15 (^2 ) 4 60 8 120 (^31 ) 64 I 24 8 In questo caso, 32 + 1 = 33. Si considerano quindi i valori corrispondenti nella seconda Simboli standard dei diagrammi di flusso: Rappresentazione di un algoritmo: I diagrammi di flusso utilizzano simboli standardizzati, ciascuno con un significato preciso. si raddoppia progressivamente (1, 2, 4, 8, 16, 32, …), mentre nella seconda colonna si cioè 33. Successivamente si osserva il secondo numero da moltiplicare, 33, e si Questo algoritmo può essere descritto attraverso le fasi di inizializzazione, elaborazione e decisione. Il procedimento prevede la costruzione di una tabella: nella prima colonna si parte da 1 e L’elaborazione di istruzioni o calcoli è rappresentata da un rettangolo. individuano i numeri della prima colonna che, sommati tra loro, danno come risultato 33. Ad ogni passo, l’elemento in esame viene confrontato con il massimo corrente; se è maggiore, il massimo corrente viene aggiornato. La decisione è rappresentata da un rombo, dal quale partono due rami alternativi, corrispondenti solitamente alle risposte e no. nella prima colonna compaiono i valori 1, 2, 4, 8, 16, 32, 64 e 128, mentre nella seconda Il processo si arresta quando il valore della prima colonna supera il secondo fattore, Al termine dell’elaborazione, il valore memorizzato rappresenta il massimo della sequenza. sommando i valori corrispondenti: 1536 + 96 + 24 = 1656. raddoppia ripetutamente il primo numero da moltiplicare, in questo caso 15 (15, 30, 60, 120, 240, 480). -Lo stesso procedimento può essere applicato, ad esempio, a 24 x 69=?. In questo caso, Un esempio storico è l’algoritmo di moltiplicazione egizia, applicato ad esempio al calcolo di 15 x 33=?. Il simbolo di inizio/fine è rappresentato da un ovale. Algoritmo ad alto livello: ricerca del massimo: colonna, cioè 480 e 15, che sommati danno il risultato finale: 480 + 15 = 495. Algoritmo di moltiplicazione egizia: L’algoritmo prevede innanzitutto l’inizializzazione del valore del massimo al valore del primo elemento della sequenza. Successivamente si esaminano uno dopo l’altro tutti gli elementi rimanenti. colonna i corrispondenti raddoppi di 24. Poiché 69 = 64 + 4 + 1, il risultato si ottiene Un esempio di algoritmo ad altissimo livello è la ricerca del massimo in una sequenza di numeri, ad esempio 45, 52, 12, 4 e 35. Un algoritmo può essere rappresentato attraverso i diagrammi di flusso, che sono grafici utilizzati per esprimere un algoritmo in modo schematico e intuitivo. Per rappresentare un algoritmo è necessario descrivere i passi necessari e la loro corretta sequenza. I diagrammi di flusso costituiscono una descrizione spesso più efficace e meno ambigua rispetto a una descrizione esclusivamente verbale.

STERT

STOP

OPERAZIONE IO AZIONE^ azione^ i CIND I SOTIOAEORI.TO SEQUENZIALE CONDIZIONALE^ INTELATIVA istruzioni sig DOMANDA

puo istupzioni

istkzioni istruzioni istruzioni Istkzioni^ Domanda il blocco start , seguito da uno o più blocchi di azione , che rappresentano In forma generale: se una condizione è vera, allora si esegue un’istruzione; altrimenti se ne esegue un’altra. dei due rami alternativi. La struttura iterativa (o ciclica) prevede la ripetizione di un condizione , generando rami alternativi. È inoltre possibile utilizzare sotto-algoritmi, che rappresentano procedure richiamate all’interno dell’algoritmo principale. fondamentali. La struttura sequenziale prevede una successione lineare di Tipi di esecuzione nei diagrammi di flusso (esempi): I diagrammi di flusso si costruiscono a partire da un insieme di blocchi base che di decisione, che permettono l’assunzione di decisioni sulla base di una Algoritmo: struttura di selezione (decisione) 2)esempio: massimo fra due numeri: trasferimento di informazioni, che indicano operazioni di input e output, e blocchi l’esecuzione di istruzioni o calcoli. Possono essere presenti blocchi di Teorema di Böhm-Jacopini: istruzioni eseguite una dopo l’altra. La struttura condizionale introduce una Il teorema di Böhm-Jacopini, enunciato nel 1966 da due informatici italiani, afferma che qualunque algoritmo può essere implementato utilizzando esclusivamente tre strutture fondamentali: la sequenza, la selezione e il ciclo. Queste strutture possono essere applicate ricorsivamente alla composizione di istruzioni elementari, rendendo possibile la costruzione di qualsiasi algoritmo. Costruzione dei diagrammi di flusso: 1)esempio è il seguente: se il numero è occupato, allora si ricompone il numero; altrimenti si inizia la conversazione. I blocchi base vengono collegati tramite frecce , che indicano il passaggio da un’azione alla successiva e definiscono il flusso di esecuzione dell’algoritmo. insieme di istruzioni finché una determinata condizione risulta vera. La struttura di selezione permette la prescrizione di un’azione sulla base del verificarsi di una condizione. decisione: a seconda dell’esito di una condizione ( o no ), il flusso segue uno rappresentano le operazioni elementari e i costrutti di controllo. Il flusso inizia con Nei diagrammi di flusso è possibile individuare diverse strutture di esecuzione Infine, l’algoritmo stampa il valore massimo e termina l’esecuzione. Si assumono come operazioni elementari la somma, la sottrazione, L’algoritmo legge i valori di x e y, calcola la differenza d = x - y e verifica il segno di d. Se d è maggiore di zero, il massimo è x; altrimenti il massimo è y. Si vuole trovare il massimo fra due numeri interi positivi x e y. il confronto con zero e la lettura/scrittura di numeri.

I

gbtsos.IE

Zoe

In molti sistemi è fondamentale gestire operazioni concorrenti di accesso ai dati.

  1. Accesso in lettura e scrittura ai dati. Ad esempio, PayPal processa più di 10 milioni di pagamenti ogni giorno, tutti in concorrenza tra loro. Efficienza: Le funzionalità principali di un DBMS includono: In poche parole, grazie al DBMS l’utente finale può lavorare con molti file e dati in maniera facile e veloce. I DBMS permettono di implementare un paradigma di separazione tra dati e applicazioni: le applicazioni non devono conoscere la struttura fisica dei dati (come e dove sono memorizzati su disco), ma solo la struttura logica. Concorrenza nei DBMS:
  2. Condivisione dei dati tra diversi utenti e applicazioni (una delle più importanti funzionalità). Le caratteristiche dei DBMS La maggior parte dei DBMS fornisce un livello di granularità del locking più fine di quello convenzionale, che può essere a livello di tabella, pagina o singola entry.
  3. Protezione dei dati da accessi non autorizzati. L’efficienza riguarda la capacità di reperire informazioni in modo semplice e veloce. I componenti principali di un DBMS includono: efficienza, coerenza, affidabilità e sicurezza. I DBMS forniscono strutture dati adeguate per organizzare i dati all’interno dei file e supportare le operazioni di ricerca e aggiornamento. All’interno del DBMS ci sono moduli (M1, M2, M3) e la base di dati (BD). Funzionalità principali dei DBMS: Un esempio è l’indice : !remeber! i dati gestiti dai DBMS sono persistenti e sicuri.
  4. Affidabilità (reliability) dei dati in caso di guasti hardware o software. Struttura logica di un DBMS: L’accesso ai dati può essere: Serve per l’accesso diretto ai dati, come l’indice di un libro permette di trovare subito la pagina desiderata. Un database management system (DBMS) è un sistema software che è in grado di gestire collezioni di dati grandi, condivise e persistenti in maniera efficiente e sicura.
  • Accesso fisico: ai file memorizzati sulla memoria secondaria
  1. Creazione e memorizzazione della base di dati su memoria secondaria. Utente finale e separazione dati/applicazioni:
  • Accesso logico: tramite applicazioni e moduli del DBMS È una struttura che contiene informazioni sulla posizione dei dati nelle tuple, basata sul valore di un campo chiave.

Esempio: sistema informativo di conti bancari. Per prevenire situazioni di incoerenza, i DBMS implementano algoritmi di controllo della concorrenza , che garantiscono che le transazioni eseguite in concorrenza producano lo stesso risultato di una esecuzione seriale. ◦ (^) Opzione 2: lock X → leggi X → calcola Y = X - 80 → scrivi Y → sostituisci X con Y → unlock X ◦ (^) Opzione 1: X = X - 100 → crash in questo momento Un DBMS deve garantire che accessi da parte di applicazioni diverse non interferiscano tra loro, lasciando il sistema in uno stato consistente. Alcune operazioni sui dati sono particolarmente delicate e devono essere gestite secondo la regola del “tutto o niente”. ◦ (^) Opzione 1 legge X = 120 ◦ (^) Opzione 1 aggiorna X = 20 ◦ (^) Opzione 2 aggiorna X = 40 Il risultato finale non è corretto (i prelievi totali dovrebbero portare a 120 - 100 - 80 = -60, ma senza controllo il sistema resta incoerente). Se non gestito correttamente, la sequenza delle operazioni può produrre risultati errati. Controllo della concorrenza: L’utilizzo di lock in lettura e scrittura consente un accesso sicuro alle risorse condivise di dati, come ad esempio una stampante di rete. ◦ (^) Opzione 2: leggi X → calcola Y = X - 80 → scrivi Y → sostituisci X con Y ◦ (^) Opzione 1: leggi X → calcola Y = X - 100 → scrivi Y → sostituisci X con Y ◦ (^) Opzione 2 legge X = 120 Per questo, i DBMS forniscono strumenti per annullare operazioni non complete e fare rollback allo stato precedente del sistema. ◦ (^) Opzione 1: lock X → leggi X → calcola Y = X - 100 → scrivi Y → sostituisci X con Y → unlock X Un’operazione si considera conclusa solo se arriva fino alla fine; in caso contrario, tutto viene annullato. Affidabilità dei DBMS: ◦ (^) Opzione 2: Y = Y + 100 Schedulando le operazioni senza controllo: 2-Prelievo 80 euro 1-Prelievo 100 euro ◦ (^) Conto X ha saldo = 120 euro Gestione della concorrenza: esempio di gestione corretta con lock manager: ◦ (^) Due richieste al tempo T: Esempio: trasferimento di 100 euro dal conto X al conto Y.