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


Informatica appunti+slides complete con esempi, Slide di Fondamenti di informatica

Informatica generale: definizioni base, livelli di astrazione, algoritmo e linguaggi. Appunti discorsivi presi in presenza integrati con tutte le slides fornite dal professore, ci sono immagini, esempi. Primo anno di Laurea in SZTPA (scienze animali).

Tipologia: Slide

2024/2025

In vendita dal 06/01/2026

micaela-balducci
micaela-balducci 🇮🇹

3 documenti

1 / 18

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA LEZIONE 1
DEFINIZIONI
definizione di Informatica: è la scienza che studia i metodi e le tecniche per il
trattamento (acquisizione, memorizzazione, processamento, trasmissione)
automatico delle informazioni tramite computer.
definizione di Computer o Calcolatore Elettronico:è una macchina che
produce dati in uscita (output) sulla base delle informazioni che riceve in
ingresso (input). Per un computer, sono input tanto i dati sui quali deve
lavorare, quanto le istruzioni che deve eseguire per trasformare i dati in
output.
definizione di Hardware e di Software:
Hardware:è composto da tutti gli elementi fisici (meccanici, elettronici)
dell’elaboratore, come ad esmpio la torre del pc, il mouse, la tastiera ecc…
Software:è l’insieme delle istruzioni (contenute in programmi e registrate nella
memoria) che fanno funzionare il computer, come ad esempio word, google,
java ecc…
Il concetto di algoritmo
L’algoritmo è un insieme di azioni (o istruzioni) che, eseguite secondo un ordine prestabilito,
permettono di trovare il risultato cercato sulla base dei dati in ingresso, infatti, ad esempio, Il
calcolatore elettronico per risolvere un problema utilizza un algoritmo.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Anteprima parziale del testo

Scarica Informatica appunti+slides complete con esempi e più Slide in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA LEZIONE 1

DEFINIZIONI

➔ definizione di Informatica: è la scienza che studia i metodi e le tecniche per il trattamento (acquisizione, memorizzazione, processamento, trasmissione) automatico delle informazioni tramite computer. ➔ definizione di Computer o Calcolatore Elettronico :è una macchina che produce dati in uscita (output) sulla base delle informazioni che riceve in ingresso (input). Per un computer, sono input tanto i dati sui quali deve lavorare, quanto le istruzioni che deve eseguire per trasformare i dati in output. ➔ ➔ definizione di Hardware e di Software: Hardware:è composto da tutti gli elementi fisici (meccanici, elettronici) dell’elaboratore, come ad esmpio la torre del pc, il mouse, la tastiera ecc… Software:è l’insieme delle istruzioni (contenute in programmi e registrate nella memoria) che fanno funzionare il computer, come ad esempio word, google, java ecc… Il concetto di algoritmo L’algoritmo è un insieme di azioni (o istruzioni) che, eseguite secondo un ordine prestabilito, permettono di trovare il risultato cercato sulla base dei dati in ingresso, infatti, ad esempio, Il calcolatore elettronico per risolvere un problema utilizza un algoritmo.

Il concetto di algoritmo è uno dei concetti di base dell'intera matematica, ed è inoltre un concetto antichissimo coniato da un arabo medievale che formulò le regole per eseguire le operazioni dell'aritmetica elementare. Livelli di Astrazione La descrizione di un sistema di calcolo richiede descrizioni a diversi livelli di astrazione; ad ogni livello sono associate tecniche di descrizione e metodologie di analisi specifiche. Si definisce astrazione una rappresentazione che nasconde le specifiche e mostra solo ciò che serve in un determinato contesto: l’astrazione permette di organizzare la complessità dei calcolatori “a strati”, così ogni livello si occupa di un compito specifico senza doversi preoccupare di come funzionano i livelli sottostanti. Livelli di astrazione: ★ Componenti Elettronici ★ Livello del Linguaggio Macchina ★ Architettura del Sistema ★ Sistema Operativo ★ Applicazioni 1) Componenti Elettronici È il livello più vicino alla parte fisica del calcolatore. Qui non si parla ancora di programmi, istruzioni o linguaggi, ma solo di dispositivi elettronici elementari che permettono di rappresentare e manipolare informazioni sotto forma di bit (0 e 1). I mattoni fondamentali:

  • Transistor : Piccolissimo interruttore elettronico che può essere acceso (1) o spento (0).. È il “neurone” del computer: controlla il flusso di corrente in base a un segnale di ingresso. Oggi i microprocessori hanno miliardi di transistor su un singolo chip.
  • Porte logiche: Sono circuiti costruiti mettendo insieme transistor. Realizzano operazioni logiche elementari:
  • AND → l’uscita è 1 solo se entrambi gli ingressi sono 1.
  • OR → l’uscita è 1 se almeno un ingresso è 1.
  • NOT → inverte il segnale (da 0 a 1, da 1 a 0). • Con combinazioni di queste porte si possono realizzare tutte le funzioni logiche. • Circuiti combinatori e sequenziali. ➔ Legge di Moore

Il trattamento automatico delle informazioni sul calcolatore elettronico avviene in formato binario, cioè l’informazione è rappresentata da un insieme di bit; L'unità atomica è il bit (binary digit) → valori <0> e <1> (dispositivi binari) o Una sequenza di 8 bit è detto byte Rappresentazione binaria di numeri interi Rappresentazione binaria in modulo e segno Supponendo di avere a disposizione una cella di 4 byte (i bit vengono numerati da 0 a 31 da destra verso sinistra poiché nelle notazioni posizionali la cifra più significativa è a sinistra):

  • il primo bit viene utilizzato per indicare il segno del numero (0 è positivo, 1 è negativo);
  • i restanti 31 bit vengono utilizzati per codificare il modulo del numero. Rappresentazione di dati sul calcolatore bit: Numero di configurazioni: 2 → intervallo di variabilità: [0-1] byte: Numero di configurazioni: 256 (28 ) → intervallo di variabilità: (dipende dal tipo di memorizzazione) Modulo: 256 configurazioni, [0, 255] ; Modulo e segno: 256 configurazioni, [-127, +127]. Rappresentazione binaria di numeri interi Gli intervalli di valori che è possibile rappresentare con l'utilizzo di questa forma sono: Dati n bit, quindi, vengono così rappresentati i valori compresi nel seguente intervallo: Addizione con numeri binari interi Quando viene effettuata una somma fra numeri binari, poiché lo spazio nel quale i numeri vengono rappresentati è delimitato dal numero n di bit a disposizione, si pongono due problemi:
  1. la decisione del segno della somma;
  2. riconoscere se il risultato dell'addizione è contenuto o meno nell'intervallo di valori rappresentabili con n bit. - Somma di due bit con riporto Problema: 1 + 11 =?

Risposta: 1 + 11 = 100 Se prendiamo la prima colonna da destra, otteniamo la somma binaria di 1 e 1, che è: 1 + 1 = 0 con riporto di 1. Quindi la cifra più a destra della nostra risposta è 0. La seconda colonna da destra diventa: 0 + 1 + 1 (con il riporto). In aritmetica binaria: 0 + 1 + 1 = 0 con riporto di

  1. Di conseguenza, la seconda cifra da destra è 0 e un 1 viene riportato alla colonna successiva. La colonna successiva non esiste (non ci sono altri numeri), quindi l’1 scende nello slot seguente della risposta. • Dunque la risposta è: 100! Rappresentazione dei caratteri: tabella ASCII La rappresentazione dei caratteri avviene tramite un byte per ogni carattere sulla base tabella ASCII (American Standard Code for Information Interchange) che fornisce la corrispondenza tra la sequenza di bit (il byte appunto) ed il carattere. 3) Livello Architettura del Sistema È il livello in cui l’hardware e il linguaggio macchina vengono organizzati e resi utilizzabili dal software. Comprende la struttura funzionale del calcolatore: CPU, memoria, dispositivi di input/output e le modalità con cui comunicano. In pratica, è la “mappa” del sistema: come i diversi componenti sono collegati e come cooperano per eseguire i programmi.
  • lettura (operazione non distruttiva) del contenuto di una cella
  • scrittura (operazione distruttiva) in una cella Memoria principale e memoria secondaria La memoria principale e la memoria secondaria svolgono compiti diversi e hanno anche diverse caratteristiche. La memoria principale gioca un ruolo cruciale in fase di esecuzione del programma, mentre la memoria secondaria è usata per mantenere in modo permanente dati e programmi. Memoria principale Nella memoria principale (o centrale) vengono caricati sia il programma da eseguire che i dati, ossia tutta l'informazione per l’esecuzione di un processo, essa è detta volatile perchè i dati in essa contenuti si perdono con lo spegnimento del calcolatore.
    • è una memoria ad accesso random, ossia il tempo di accesso alle celle è indipendente dalla loro posizione ed è quindi costante per tutte le celle. Per questo motivo è anche indicata come RAM (per Random Access Memory); inoltre è una memoria ad alta velocità, ossia il suo tempo di accesso è molto basso
  • è una memoria a lettura e scrittura (read/write). Memoria secondaria è costituita da uno o più dispositivi per mantenere informazioni permanenti; sono memorie non volatili poichè il loro contenuto si mantiene anche dopo lo spegnimento del calcolatore Esistono diversi tipi di memoria secondaria. La più comune è il disco rigido (hard disk) che memorizza in modo permanente dati e programmi applicativi.
  • Altre memorie secondarie sono i CDRom, i DVD, i nastri e le memorie flash (pen drive). Tutte queste memorie hanno diverse caratteristiche strutturali (tecnologia, velocità di

accesso, dimensioni) ma hanno in comune la capacità di mantenere i dati in modo permanente. La memoria dell’elaboratore anche l’indirizzo è un numero codificato in binario

  • una cella corrisponde ad un byte. Codifica del programma all’interno del calcolatore
  • Programma cablato: l'unità di esecuzione è strutturata per eseguire un solo compito specifico. Es: controllo di un ascensore
    • Programma memorizzato: (concetto introdotto da Von Neumann) le istruzioni e i dati sono codificati e caricati nella memoria del calcolatore, con la possibilità di eseguire programmi diversi → elaboratore elettronico Permette la programmabilità: con la stessa macchina posso eseguire infiniti programmi.
  • Ha reso possibile lo sviluppo di computer general purpose, cioè non più legati a un solo compito.
  • È ancora oggi la base di quasi tutti i computer moderni. Ciclo di istruzione
  • Senza SO , ogni programma dovrebbe gestire direttamente memoria, CPU, periferiche → troppo complesso e inefficiente.
    • Con il SO , i programmi possono “chiedere servizi” senza preoccuparsi dei dettagli hardware. Funzioni principali
  1. Gestione della CPU (processi)
  • Decide quali programmi eseguire e in che ordine (scheduling).
  • Permette l’uso di più programmi contemporaneamente (multitasking). 2. Gestione della memoria
  • Assegna memoria ai programmi.
  • Previene conflitti e protegge le aree riservate. 3. Gestione dei dispositivi I/O
  • Fornisce driver e interfacce standard per tastiere, stampanti, schermi, sensori.
  • Nei contesti veterinari: gestisce comunicazione con ecografi, analizzatori, scanner RX. 4. Gestione dei file
  • Organizza dati in file e cartelle.
  • Fornisce accesso sicuro e ordinato alle informazioni su disco. 5. Interfaccia utente
  • Può essere grafica (GUI, es. Windows, macOS, Android) o testuale (CLI, es. Linux in terminale). 5) Applicazioni È il livello in cui risiedono i programmi che l’utente utilizza direttamente. Qui non ci si occupa più di hardware, linguaggio macchina o sistema operativo: tutto è nascosto dietro un’interfaccia semplice e intuitiva. Ogni applicazione è costruita sopra il sistema operativo, che fornisce servizi standard (gestione file, comunicazione, grafica, ecc.). Interfaccia utente
  • GUI (Graphical User Interface) → icone, finestre, pulsanti.
  • CLI (Command Line Interface) → terminale a riga di comando (oggi meno usata dagli utenti comuni). • Le applicazioni puntano su usabilità e accessibilità, nascondendo quasi totalmente i livelli inferiori. LEZIONE 2 Esecuzione di un algoritmo sul computer Algoritmo : Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio di programmazione : Linguaggio (insieme di simboli e regole) per rappresentare le istruzioni di un algoritmo e la loro concatenazione. Programma: algoritmo scritto in un linguaggio di programmazione al fine di comunicare al calcolatore elettronico le azioni da eseguire Processo: programma in esecuzione sul computer. REQUISITI DI UN ALGORITMO PER IL CALCOLATORE:
  • Eseguibilità: istruzioni eseguibili in un tempo finito
  • Non-ambiguità: istruzioni non ambigue, univocamente interpretabile dal calcolatore
  • Terminazione: terminazione dell'esecuzione dopo un numero finito di passi
  • Determinismo: dato un insieme di dati in ingresso il flusso delle operazioni deve essere sempre lo stesso. Descrizione di un algoritmo: diagrammi di flusso Un formalismo grafico: i diagrammi a blocchi (flow chart); È un linguaggio formale di tipo grafico per rappresentare gli algoritmi.
  • Attraverso il diagramma a blocchi si può indicare l’ordine di esecuzione delle istruzioni; un particolare simbolo grafico detto blocco elementare è associato a ciascun tipo di istruzione elementare. I blocchi sono collegati fra loro tramite frecce che indicano il susseguirsi delle istruzioni Cosa sono le variabili. In informatica, una variabile è un'astrazione di uno spazio di memoria associata a un nome simbolico, che contiene una quantità di dati o un oggetto, noto o sconosciuto, chiamato valore.
  • Una variabile è un contenitore con un nome specifico per un particolare insieme di bit o tipo di dati.
  • Il valore di una variabile può cambiare o essere modificato nel tempo

esempio: «Crea le variabili A,B,C. Leggi i tre valori da tastiera, e salvali rispettivamente nelle variabili A, B e C» Uscita (stampa, print, output) Esecuzione dell’istruzione: Si calcolano i valori delle espressioni e si trasmettono all’unità di uscita (ad esempio,il video). esempio: «calcola il valore dell’ espressione A e stampala a video» N.B. il valore di A non viene alterato dall’esecuzione del blocco. Assegnamento Esecuzione dell’istruzione: Si calcola il valore dell’espressione a destra del simbolo «=» e lo si salva (assegna) nella variabile indicata a sinistra del simbolo «=» esempio: «Calcola il valore dell’espressione i+1 ed assegnalo alla variabile i »

  • se i vale 6 prima di entrare nel blocco, calcolo 6+1 (7) e lo salvo nella variabile i.
  • Quando si esce dal blocco la variabile i vale 7. Condizioni Esecuzione dell’istruzione :

Si valuta la condizione specificata all’interno del blocco: se è verificata, si prosegue con la line di flusso contrassegnata da «Sì», altrimenti (se non è verificata) si prosegue con il ramo etichettato con «No». esempio: «Calcola il valore dell’espressione i<=10: se è vero, prosegui per il ramo Sì, altrimenti prosegui per il ramo No»

  • Il blocco condizione è l’elemento base per realizzare alternative e ripetizioni. Un diagramma a blocchi descrive un algoritmo se: ➢ ha un blocco iniziale e uno finale; ➢ è costituito da un numero finito di blocchi azione e/o blocchi lettura/scrittura e/o blocchi di controllo; ➢ ciascun blocco elementare soddisfa le condizioni di validità Diagrammi di flusso. Condizioni di validità: ➢ ciascun blocco azione, lettura/scrittura ha una sola freccia entrante e una sola freccia uscente; ➢ ciascun blocco di controllo ha una sola freccia entrante e due frecce uscenti; ➢ ciascuna freccia entra in un blocco o si innesta su un’altra freccia; ➢ ciascun blocco è raggiungibile dal blocco iniziale; ➢ il blocco finale è raggiungibile da qualsiasi altro blocco. esempio diagramma flusso:

Calcolatore elettronico come esecutore Il calcolatore elettronico è un esecutore di algoritmi: un algoritmo per il calcolatore elettronico deve essere scritto tenendo conto delle istruzioni che il calcolatore elettronico è capace di eseguire. Ipotesi sull'esecutore:

  1. comprende un linguaggio simbolico
    1. è in grado di acquisire numeri interi in ingresso e produrre numeri interi in uscita
  2. è in grado di eseguire soltanto somme e sottrazioni tra due operandi e di verificare se un operando è uguale a 0. Requisiti dell'esecutore:
    • disponibilità dei valori delle variabili in ogni momento dell'esecuzione: unità di memoria
    • capacità di elaborazione per somme, sottrazioni, confronti con 0: unità aritmetico/logica
    • capacità di colloquiare con l'esterno: unità di ingresso (input) ed uscita (output)
    • comunicazione tra le varie unità. esempio di algoritmo: Algoritmo per l’esecuzione della moltiplicazione di due interi. Linguaggi di programmazione Un linguaggio di programmazione è un insieme di regole e simboli che permette agli esseri umani di scrivere istruzioni che un computer può comprendere ed eseguire.

In pratica è il mezzo di comunicazione tra uomo e macchina; senza un linguaggio di programmazione, il computer capirebbe solo linguaggio macchina (0 e 1), che è troppo complicato da scrivere e leggere per noi.

  • I linguaggi di programmazione hanno un lessico (operazioni elementari che il calcolatore è in grado di capire) e una grammatica (o sintassi) che esprime le regole con cui si possono combinare gli elementi lessicali.
  • I linguaggi si distinguono in linguaggi a basso livello e linguaggi a alto livello: quelli di basso livello sono più vicini alla logica del calcolatore e si distinguono in linguaggi macchina (sequenza di 0 e 1 - l’unico che il calcolatore riesce a capire) e linguaggi assemblativi. Linguaggio assemblativo: È un linguaggio che definisce le operazioni elementari effettivamente disponibili sul calcolatore. Ogni operazione è definita da un codice operativo simbolico e un (eventuale) indirizzo di memoria simbolico. Il Linguaggio assemblativo dipende dallo specifico calcolatore. Caratteristiche:
  • Vicino al linguaggio macchina
  • Le istruzioni corrispondono quasi una a una a operazioni fisiche della CPU.
  • Esempio: caricare dati in un registro, sommare due numeri, saltare a un’istruzione.
  • Molto efficiente
  • L’esecuzione è velocissima perché il computer non deve tradurre molto.
  • Difficile da leggere e scrivere
  • Richiede precisione assoluta, poca leggibilità per gli umani.
  • Una generica istruzione complessa deve essere tradotta in sequenze di operazioni elementari del Linguaggio assemblativo. esempio: Linguaggio binario / Linguaggio macchina / Linguaggio assoluto