INFORMATICA
- L'informatica è la scienza che si occupa di:
- raccogliere, organizzare, conservare e distribuire informazioni tramite sistemi automatici di elaborazione di dati.
- L'elaborazione dell'informazione avviene in maniera sistematica e rigorosa, pertanto la sua gestione può essere automatica (INFORMAZIONE AUTOMATICA).
- Dato: elemento del mondo reale che ci permette di descrivere un fenomeno o di risolvere un problema.
- Informazione: insieme di dati di cui è noto, oltre il valore, anche il significato
20 → 20o
dati informazione
- Elaborazione: trattamento di Dati per ottenere una o più informazioni.
- Ogni elaborazione:
- Necessita di dati in ingresso (input)
- Produce dati in uscita (output)
N.B. Mentre l'uomo effettua elaborazioni di tipo manuali e mentali, il computer produce elaborazioni automatiche.
Informatica
- L'informatica è la scienza che si occupa di:
- raccogliere, organizzare, conservare e distribuire informazioni tramite sistemi automatici di elaborazione di dati.
- L'elaborazione dell'informazione avviene in maniera sistematica e rigorosa, pertanto la sua gestione può essere automatica (informazione automatica).
- Dato: elemento del mondo reale che ci permette di osservare un fenomeno o di risolvere un problema.
- Informazione: insieme di dati di cui è noto, oltre al valore, anche il significato 20 → 20o
- Elaborazione: trattamento di Dati per ottenere una o più informazioni.
- * Ogni elaborazione:
- Necessità di dati di ingresso (input)
- Produce dati in uscita (output)
N.B. Mentre l'uomo effettua elaborazioni di tipo manuali o mentali, il computer produce elaborazioni automatiche.
Information and Communication Technology (ICT)
- L'ICT è lo studio e lo sviluppo delle tecnologie per l'elaborazione e la trasmissione delle informazioni attraverso mezzi digitali.
N.B. Si è sviluppato con il collegamento in rete dei computer.
Personal Computer
- Il PC è in generale un elaboratore elettronico "general purpose" per uso individuale.
- Le componenti principali del PC sono:
- Hardware
- Software d'ambiente ed applicativo
- Il funzionamento del PC è basato su:
- Istruzioni da eseguire
- Dati da elaborare
Componenti del PC
- Hardware (HW): componenti fisici di sistema. È composto da una serie di elementi funzionali presenti in ogni PC: unità di elaborazione, memoria centrale, memoria di massa, bus di sistema, unità periferiche.
- Software (SW): programma che viene eseguito dal sistema.
- I Software si dividono in:
- Software di sistema (o d'ambiente): dedicato alla gestione dell'elaboratore.
- Software applicativo: opera al di sopra del SW d'ambiente e dedicato alla realizzazione di specifiche esigenze applicative.
- I Software si dividono in:
SOFTWARE APPLICATIVO
- Programmi che aiutano l'uomo a risolvere una vasta tipologia di problemi
- Possono essere:
- Applicazioni per uso aziendale
- Applicazioni di Office automation
- Elaboratore di testi
- Software per il calcolo
- Strumenti di presentazioni
- Data base etc.
- Applicazioni multimediali
SOFTWARE di BASE
- Insieme di Programmi che consente all'utente (o alle applicazioni) di utilizzare le risorse (HD e SW) del sistema di elaborazione
- Il Sistema Operativo permette di risolvere le controlli della tecnica dell'hardware ed è costituito da un insieme di programmi base che costituiscono il rapporto tra utente e hardware (INTERFACCIA)
- Le funzioni del Sistema Operativo sono:
- Gestione dei Processi (multitasking)
- Gestione della Memoria (Scheduling)
- Gestione dei files (File system)
- Gestione degli utenti (multiutente)
- Gestione dell'I/O (stampante, video, tastiera ...)
- Gestione servizi di Rete
- Protezione del sistema
- Interprete di comandi
Algoritmo
sequenza di passi per risolvere un problema in un tempo finito.
Input PROBLEMA → ALGORITMO → Output PROGRAMMA
Metodo Risolutivo Linguaggio di Programmazione
L'algoritmo è la “strategia” per risolvere un problema
Deve essere:
- Eseguibile
- Corretto
- Efficiente (che utilizza meno risorse e tempo possibile)
Si rappresenta con:
Diagrammi di flusso ( = flow chart )
I/O No Sì operazioni start/end
LINGUAGGIO
Sistema di simboli e regole che consente di comunicare
I linguaggi di PROGRAMMAZIONE si dividono in:
- di Basso Livello
- Linguaggio Macchina (linguaggio del computer)
- di Alto Livello
- C/C++
- Java
- Pascal
- Basic
N.B.: Le istruzioni in linguaggi di alto livello devono comunque essere tradotte in linguaggio macchina per poter essere eseguite dal computer
PROGRAMMA
Le applicazioni dei programmi sono:
- Word Processor
- Basi di Dati
- Acquisizione Immagini
- Calcolo
- Simulazioni
- Progettazione Ingegneristica
- Rappresentazioni Scientifiche di dati
Un programma non può risolvere un problema se:
- La Risoluzione non esiste
- La Risoluzione impiega tempo di calcolo eccessivo (o infinito)
- La Soluzione è soggettiva
Focalizzazione Concetti
- Per generare programmi è necessario avere o generare Algoritmi
- Non bisogna confondere Esecutore (PC) e algoritmo (sequenza di passi)
- Un programma è un algoritmo eseguito da un computer
- Sviluppare Software significa generare programmi:
- CORRETTI: validazione del risultato
- EFFICIENTI: tempo, memoria (in termini di costo)
Sistema Binario
È il sistema con cui sono codificate le informazioni
bit = binary digit
8 bit = 1 Byte
bit 0 = falsobit 1 = vero
Operazioni Booleane
Cambiamo dei valori (0 o 1) in input e ne rilasciamo uno in output suo:
- AND: Se i due input sono VERI allora l’output è vero, altrimenti l’output è falso.
- OR: Se i due input sono FALSI allora l’output è falso, altrimenti l’output è vero.
- NOT: Se l’input è VERO, l’output è falso e viceversa.
Una porta logica (= gate) è un dispositivo che esegue Op. Booleane.
Memorizzazione Dati
Per memorizzare i dati il computer ha dei circuiti flip-flop che memorizzano 1 bit e sono organizzati in celle di memoria. Ogni cella ha un indirizzo
Codificare informazioni tramite bit
Per poter essere interpretate dal calcolatore, le informazioni devono essere trasformate in sequenze di bit. Questa trasformazione si chiama CODIFICA.
Più bit utilizziamo, più informazioni possiamo codificare.
Con n bit si codificano 2n info:
- n=1 —> 0, 1
- n=2 —> 00, 01, 10, 11
- n=3 —> 000, 001, 010, 011, 100, 101, 110, 111
- n=8 —> 256 combinazioni
UNITÀ di MISURA
b.it —> Kb = 1024 b.it —> Mb = 1024 Kb
Byte = 8 b.it —> Kb = 1024 Byte —> MB = 1024 Kb —> => GB = 1024 MB => TB = 1024 GB => PB = 1024 TB(terabyte) (petabyte)
CODICI
Per codificare le info si usano codici:
- Codici ASCII (American Standard Code for Information Interchange) è un codice di traduzione per simboli e alfanumerici. Può essere a 7 bit (che non comprende lettere accentate, o a 8 bit (ASCII esteso) che rappresenta lettere, numeri e caratteri speciali con un minimo fino a 255.
- UNICODE (a 16 bit o superiore nel mondo, caratteri di tutti alfabeti del mondo) è supportato nello standard di programmazione dei vari sistemi operativi. Ad ogni carattere è assegnato un codice formato da U+ 4 o 6 cifre esadecimali del numero che lo individua.
Per esempio: 1 carattere a = U+0061
File
Contenitore di informazioni digitalizzate leggibili solo da determinati software.
I Dati del file sono una sequenza di byte immagazzinati come un solo elemento su una memoria di massa.
Ogni programma salva il file in un formato identificato solo dall'estensione del programma stesso.
Il nome di un file è identificato così: nome.estensione. L'estensione e l'icona identificano il programma.
Estensioni note
- .zip ⇒ winzip
- .xls ⇒ excel
- .ppt ⇒ power point
- .mdb ⇒ access
- .exe ⇒ programma eseguibile
- .mp3 ⇒ file musicali
- .html ⇒ browser
Numeri
In un calcolatore si possono rappresentare:
- Numeri interi: con una sequenza di bit di opportuna lunghezza
- Numeri con la virgola: incorporando la parte intera e parte frazionaria e applicando lo stesso metodo di sequenze di bit.
Conversione
Per codificare i numeri estesi un sistema di numerazione simile al tradizionale.
Ogni cifra ha un valore che dipende dalla sua posizione.
Per esempio nel sistema decimale:
- 6(102) + 4(101) + 5(100) = 600 + 40 + 5 = 645
Nel sistema binario invece la base non è 10 ma è 2.
- 1(23) + 1(22) + 0(21) + 1(20) = 8 + 4 + 1 = 1310
Al numero 11012 e quindi corrisponde al numero 1310.
Si invera del numero decimale vogliamo ottenere quello binario bisogna dividere per 2 e trovare il resto ad ogni divisione.
Per esempio con 1310
- 13 : 2 = resto 1
- 6 : 2 = resto 0
- 3 : 2 = resto 1
- 1 : 2 = resto 1
11012
Addizione tra numeri binari
Anche con i numeri binari è possibile svolgere operazioni.
Nel caso dell'addizione:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0 con riporto 1
Per esempio: A = 110112 = 2710B = 001102 = 610
11011+ 00110= 100001
2710 + 610 = 3310
100001 = 25 + 20 = 3310
Numeri Negativi
Per rappresentare i numeri negativi, si usa la notazione in complemento a due in cui il bit più a sinistra dice se una volta in termini di segno.Se 0 il valore è positivo, se 1 è negativo.
Esempio:
- 0 0000112 = +310
- 1 0000112 = -310
In questo modo si possono rappresentare i numeri compresitra -2n-1 e 2n-1-1. Per esempio con 8 bit tra -128 e +127.
Con questa notazione, però, la somma nuova è sempre correttacon le leggi precedenti.
Addizione con complemento a Due
Se per esempio facessimo la somma tra +510 e -1010, e quindi tra un numero positivo e uno negativo, il risultato dovrebbe essere -510 ma non è così. Infatti:
0 00001012 +510
1 00010102 -1010
Facendo la somma:
0 00001011 +1 000101021 00011111 questo è uguale a - (23 + 22 + 11 + 00) = - 1510
Procedere in questo modo è quindi SBAGLIATO
Per ottenere la giusta addizione è necessario convertire entrambi in CA2.
Il CA2 di un numero positivo è lo stesso numero per contro, il CA2 di un numero negativo bisogna procedere così:
- Si apprezza il valore assoluto di 1010 = 10102
- Si invertono tutti i bit e si ottiene 01012
- Si aggiunge 1: 01012 + 12 = 0110CA2
- Si aggiunge il bit del segno: 1 0110CA2
Si ottiene lo stesso risultato invertendo la sequenza di bit a partire dal primo (1 escluso) da destra. In questo modo 1010 diventa 0110
A questo punto la somma:
+510: 0 0000101CA2 +-1010: 1 0000110CA2 =1 0001011CA2
Riportiamo il numero in base 2 invertendo 1 0001011CA2 in 1 00001012
1 00001012 = - (22 + 20) = -510
Codifica in Virgola Mobile
Serve per rappresentare tutti i numeri reali.
1 segno, esponente, mantisse
Fissata la base B (10, 2) il numero sarà:
N = mBe
Con m = mantisse, e = esponente
1/2 <= m < 1
Con questo metodo per esempio:23,315 = 0,23315 x 10210110,010 = 1,010010 x 23
Questo metodo di rappresentazione è utilizzato per rappresentare i dati float del C++ con 1 bit di segno, 8 bit di esponente e 23 bit di mantisse (=32 bit)