L’informatica
è la scienza della rappresentazione dell’organizzazione e del trattamento
(automatico) dell’informazione.
Approccio sistematico
disciplinato da:
-Soluzione
(automatica) dei problemi
-Elaborazione
(automatica) dell’informazione.
Problema
|
Deve essere
disponibile una precisa formalizzazione (per esempio la matematica). Bisogna poter
dedurre una strategia di soluzione basata sulla applicazione sistematica di
regole operative ben precise, a partire da i dati resi disponibili
dall’utente. |
Algoritmo
|
-Procedimento
risolutivo di un problema. Insieme di regole
che, eseguite ordinatamente, permettono di ottenere risultati di
problemi a partire dai dati messi a disposizione dall’utente (o dal
programmatore) Un insieme di regole
è un’algoritmo quando (proprietà): -Non ambiguità: Le istruzioni devono
essere univocamente interpretabili dall’esecutore dell’algoritmo. -Eseguibilità: L’esecutore deve
essere in grado, con le risorse messe a disposizione, di eseguire ogni
istruzione, ed in un tempo finito. -Finitezza: L’esecuzione
dell’algoritmo deve avere luogo in un tempo finito dipendente da ogni insieme
di volori di ingresso. Poi distinguiamo
ancora: -Problemi
decidibili -Problemi non
decidibili e avremo inoltre
problemi di: -efficicienza
temporale -efficienza spaziale Esistono dei problemi che anche se decidibili, definendo un algoritmo risolutivo, portano ad un costo temporale e spaziale insostenibile nella pratica. Quindi l’esecutore
automatico (elaboratore) fa uso di adeguati linguaggi che hanno la particolarità
di avere regole comprensibili sia per l’elaboratore che per noi stessi
(programmatori). |
Programma
|
E’ essenzialmente
una sequenza di istruzioni Anche qui c’è un problema di efficienza. Infatti dobbiamo cercare di far effettuare al programma il numero minore di operazioni (per esempio moltiplicando 17*3 invece di 3*17. Tipi di istruzione: -Input/output -Assegnazioni -Operazione aritmetiche e logiche -Controllo: a)Sequenza (Composizione)ðIstruzioni
in sequenza b)Selezione (Alternativa)ðIF condizione P THEN istruzione A ELSE istruzione B c)Iterazione (Ciclo o Ripetizione)ðWHILE condizione P istruzione A Ciascuna di queste strutture di controllo gode della proprietà fondamentale di avere un flusso con una sola entrata ed uno con una sola uscitaà possiamo anche concatenarle tra loro ed annidarle in vari livelli. Qualsiasi programma può essere costruito utilizzando esclusivamente questi tre tipi di strutture di controllo. Questo è il teorema di Bohm-Iacobini |
Processo
|
Processo di una
esecuzione di un programma è una sequenza di azioni (che sono l’esecuzioni
delle istruzioni di un programma) Essenzialmente fa
passare l’elaboratore da uno stato
iniziale ad uno stato finale. |
INPUT- dati di
ingresso: rappresentazioni, fornite all’elaboratore, dei dati messi a
disposizione dello stesso.
PROGRAMMA-
rappresentazione dell’algoritmo nel linguaggio di programmazione scelto. A sua
volta il programma è formato da ISTRUZIONI)
OUTPUT- dati di
uscita: le rappresentazioni fornite dall’elaboratore al termine del programma,
come soluzione ahli input precedentemente immessi.
Elaboratore
1-L’elaboratore non è altro che un
esecutore di operazioni in sequenza che trasformano input in output.
2-Funziona secondo
regole precise e ben determinate e conosce un numero molto limitato di comandi.
3-Esegue ciascuno di
questi compandi in modo univoco e in un tempo finito.
4-Esegue operazioni
elementari su dati astratti, eseguendo istruzioni.
Dal
punto di vista logico: simbolo che identifica la
rappresentazione di un oggetto di interesse
Variabile:
Dal
punto di vista fisico: può essere intesa come un contenitore
per valori di un oggetto di interesse
In
entrambe i casi comunque la variabile sarà di tipo fissato.
Alle
variabili quindi assegno valori costanti oppure i valori di un’altra variabile
per mezzo dell’uguaglianza.
Il
valore iniziale delle variabili è 0 (z=0)
Per
verificare la correttezza del processo si può inserire una ulteriore relazione
di validità durante l’esecuzione del programma. Questo metodo è detto invariante di ciclo.
![]()
Il calcolatore è:
a) un
sistema
b) un
esecutore di programmi
c) una
macchina programmabile
Un programma può
permettere al calcolatore di eseguire una molteplicità di operazioni.
Programma=applicazione
L’applicazione
comprende:
1- dati gestiti
dall’applicazione come informazioni elementari che possono a loro volta:
a)
essere
acquisiti
b) essere memorizzati
c) manipolati
d) visualizzati
2- operazioni
che possono essere usate per manipolare le informazioni, trasformandole e
generandonde di nuove
e normalmente le caratteristiche di una applicaizone sono:
1- permettere
agli utenti di perseguire un particolare scopo
2- gestire
informazioni soto forma di dati
3- elaborazione
di dati mediante delle operazioni
4- le
operazioni possono essere eseguite in modo interattivo se sono soddisfatte le
condizioni che ne abilitano l’esecuzione
ð Un linguaggio
è un insieme di costrutti linguistici – detti istruzioni (o operazioni) – e di
regole che possono essere usate per esprimere i passi necessari alla risoluzione
di problemi.
Ciascuna applicazione
ha il proprio linguaggio.
Spesso la capacità di
usare un linguaggio è abbastanza indipendente dalla comprensione e dal
funzionamento del calcolatore.
Esempi:
ð
Word Processor
ð
Foglio elettronico
ð
Browser Web à particolare questo permette queste
operazioni:
a) accesso
ad una pagina web per mezzo dell’URL
b) Navigazione
ipertestuale
c) Altre
operazione come per esempio la gestione dei segnalibri.
ð L’interfaccia
è il mezzo di interazione tra l’utente (dell’applicazione) e il calcolatore
(esecutore dell’applicazione).
Le applicazioni
moderne godono di interfaccie grafiche di tipo GUI –mouse, bottoni, icone, ecc.
Inoltre se prendiamo
come esempio GUI le finestre, essere funzionano con la tecnologia WYSIWYG (What
you see is what you get)
Godono di modalità di
interazione simili (tipo il menù File uguale per tutti)
Alcune interazioni con
la tastiera:
-
inserimento di testi
-
modifica e cancellazione testi
-
copia-e-incolla testi
interazione con il
mouse sono invece:
-
Point-and-click
-
Double-click
Drag-and-Drop