Anteprima
Vedrai una selezione di 10 pagine su 47
Fondamenti di Informatica Pag. 1 Fondamenti di Informatica Pag. 2
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 6
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 11
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 16
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 21
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 26
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 31
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 36
Anteprima di 10 pagg. su 47.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 41
1 su 47
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

INFORMATICA

(INFORMAZIONE + AUTOMATICA): SCIENZA DELLA RAPPRESENTAZIONE ED ELABORAZIONE DELL'INFORMAZIONE

INFORMAZIONE - CONCETTO PRINCIPALE DELL'INFORMATICA

L'ELABORAZIONE DELL'INFORMAZIONE DEVE ESSERE SVOLTA IN MANIERA SISTEMATICA E RIGOROSA, IN MODO DA POTER ESSERE AUTOMATIZZATA

SCIENZA DELL'ASTRAZIONE: ESAMINARE UNA REALTÀ ED ESTRARRE TUTTI I DATI INTERESSANTI PER LA RISOLUZIONE DI UN PROBLEMA, TROVARE LE TECNICHE PER RISOLVERE UN PROBLEMA IN MODO AUTOMATICO

EX ➔ COSTRUZIONE DI UN PALAZZO: ESTRARRE SOLO I DETTAGLI ESSENZIALI ALLA COSTRUZIONE DEL PALAZZO QUINDI SOSTITUIRE UNA SITUAZIONE COMPLESSA CON UN MODELLO COMPRENSIBILE SENZA DETTAGLI INESSENZIALI ESTRAENDO QUELLI ESSENZIALI

OBIETTIVO DELL'INFORMATICA = CREARE ASTRAZIONI DI PROBLEMI, RISOLVIBILI E RAPPRESENTABILI SU UN SISTEMA DI CALCOLO IN MODO AUTOMATICO

ES.

DATI

  • LATO A
  • LATO B

RICHIESTE

  • SE IL TAGLIO È POSSIBILE
  • DIMENSIONI DEL QUADRATO
  1. MCD tra A e B
  2. MCD ≠ 1 il taglio è possibile se MCD = 1 → taglio non possibile

Si ha bisogno di un procedimento sistematico, costituito da un insieme di operazioni, ogni operazione deve essere precisa ed eseguibile sui dati in input per ottenere i dati in output

Algoritmo ≠ Programma

Realizzazione in un certo linguaggio di programmazione di un particolare algoritmo (C++, Java, Python...)

Algoritmo:

  1. Leggi il valore di A e di B
  2. Calcola MCD di A e B e scrivilo in C
  3. Se C = 1 il taglio non è possibile, altrimenti comunica taglio possibile e la misura del lato C
  4. Termina

Algoritmo di Euclide

  1. Leggi i numeri A e B, con A ≥ B
  2. Dividi A per B e ottieni il resto R
  3. Se R = 0 termina: MCD è B
  4. Sostituisci A con B
  5. Sostituisci B con R
  6. Ritorna al punto 2

Calcolo Resto

  1. Leggi due numeri A, B
  2. Se A < B termina: il resto è A
  3. Sostituisci A con A - B
  4. Ritorna al punto 2

Tipi di memorie

  • RAM (Random Access Memory): si possono effettuare operazioni sia di lettura che di scrittura
  • DRAM (Dynamic RAM): economica, lenta, è necessario ricaricare i contenuti periodicamente (refresh)
  • SRAM (Static RAM): costosa, veloce, mantiene il contenuto fino a quando viene alimentata
  • ROM (Read Only Memory): dati e informazioni vengono memorizzate in fase di costruzione, rimangono memorizzate anche quando manca l'alimentazione

La memoria cache

Tra CPU e memoria principale viene posto un modulo di memoria intermedio (cache), ad accesso veloce, ma di capienza limitata. La distribuzione è realizzata in maniera da cercare di memorizzare i dati e le istruzioni richieste più frequentemente nella cache, in modo da accedervi velocemente.

Sistema Operativo

L'S.O. è un software che si interpone tra hardware e utente per mettere a disposizione una gestione delle risorse e permette di svolgere le operazioni necessarie.

Gli obiettivi dell'S.O. sono:

  • Convenienza → rende l'utilizzo del computer più semplice
  • Efficacia → permette di gestire le risorse in modo più efficiente
  • Capacità di evoluzione → permette di introdurre nuove funzionalità o il miglioramento dell'hardware

All'avvio del computer la RAM conterrà valori casuali che non hanno alcun significato.

I registri della CPU conterranno valori casuali tranne il PC, che conterrà un valore prestabilito in fabbrica, che corrisponde ad un valore della ROM.

Servizi S.O.:

  • Sviluppo di programmi
  • Multitasking/esecuzione di programmi
  • Accesso ai dispositivi di I/O e di memoria di massa
  • Accesso controllato ai file/organizzazione logica dei dischi
  • Accesso al sistema/criteri di protezione

A causa della loro complessità, i S.O. sono organizzati in livelli, dove ogni livello nasconde i meccanismi implementativi e offre un insieme di funzionalità ai livelli superiori.

Analisi

L'analisi è formata da 3 fasi:

  • Analisi lessicale
  • Analisi sintattica
  • Analisi semantica

Analisi lessicale

Il flusso di caratteri che costituisce il programma sorgente è letto da sinistra verso destra e rappresentato in tokens.

Un token è una singola unità atomica del linguaggio (keyword, un identificatore o un simbolo).

Separatori

  • Spazi
  • Tabulazioni
  • Terminatori
  • Andare a capo

float identificatori

Keyword

Ogni token ha un significato diverso.

Se avessi scritto f1oat non sarebbe stata una keyword ma un identificatore.

Non si possono usare parole troppo lunghe per gli identificatori.

IL TIPO INT

CARATTERISTICHE

  • DIMENSIONE: 4 BYTES
  • V. MINIMO: -2147483648
  • V. MASSIMO: 2147483647

OPERAZIONI AMMESSE:

+ - * / % > < >= <= == !=

IL TIPO FLOAT

CARATTERISTICHE

  • DIMENSIONI: 4 BYTES
  • V. MINIMO: 3.4E-38 (3.4 * 10-38)
  • V. MASSIMO: 3.4E+38 (3.4 * 10+38)

OPERAZIONI AMMESSE:

+ - * / > < >= <= == !=

IL TIPO DOUBLE

CARATTERISTICHE

  • DIMENSIONI: 8 BYTES
  • V. MINIMO: 1.7E-308 (1.7 * 10-308)
  • V. MASSIMO: 1.7E+308 (1.7 * 10+308)

IL TIPO CHAR

CARATTERISTICHE

  • DIMENSIONI: 1 BYTE (DA 0 A 255 CARATTERI (CODICE ASCII))
  • V. MASSIMO: 127
  • V. MINIMO: -128

SONO PERMESSE LE OPERAZIONI ARITMETICHE TIPICHE DEGLI INTERI

I puntatori

Il C++ permette di accedere all'indirizzo di una variabile tramite l'operatore & (operatore di riferimento o di reference) prefisso all'identificatore della variabile

int x;int & ix = indirizzo variabile x

Può essere utilizzato solo sulle variabili left-value (l'indirizzo verrà riportato in esadecimale)

Puntatori

È possibile assegnare e memorizzare gli indirizzi grazie alle variabili puntatori che si inizializzano con la specificazione del tipo seguita dall'operatore * ed al nome della variabile

int *p;

È possibile fare assegnazioni tra puntatori

int n=75;int *p,*q;p= &n;q = p;

(Le variabili punteranno lo stesso indirizzo)

Con l'operatore * è possibile accedere direttamente alla variabile puntata

int x=3,y=5,*p; p= &x; *p = 10; cout << x; --> x = 10 p= &y; *p = 20; cout << "y: " << y; --> y = 20

Sottoprogrammi

In ogni linguaggio di programmazione il tipo di dati specifica, oltre all'insieme di valori che gli appartengono, le operazioni definite, ma non tutte le operazioni sono implementate dal linguaggio, altre devono essere aggiunte dal programmatore.

Il problema è che il codice va replicato ogni volta che l'operazione viene richiesta; questo provoca una minore leggibilità del codice, maggiore probabilità di errori e minore manutenzione del codice.

Per ovviare a questo viene utilizzato un meccanismo che permette al programmatore di:

  • Specificare le istruzioni da compiere
  • Specificare i dati da utilizzare
  • Specificare il nome dell'operazione

Questo meccanismo viene chiamato sottoprogramma.

Un sottoprogramma è un'unità di codice che non può essere eseguita automaticamente ma solo su richiesta; viene realizzato per svolgere un compito specifico, come leggere o stampare gli elementi di un array.

Un sottoprogramma può essere attivato più volte in uno stesso programma, utilizza variabili proprie, alcune utilizzate per scambiare dati con il programma che lo ha attivato.

Nel definire un sottoprogramma bisogna definire:

  • Quale operazioni realizza
  • Quale è il flusso di dati tra il programma ed il codice che lo ha attivato
  • Quali sono i dati in ingresso al sottoprogramma
  • Quali sono i dati in uscita dal sottoprogramma

L'esecuzione delle istruzioni di un sottoprogramma avviene tramite una istruzione di chiamata che interrompe le istruzioni del programma principale e che riprendono dopo una istruzione di ritorno.

Dettagli
Publisher
A.A. 2016-2017
47 pagine

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ryuk98 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Cassino e del Lazio Meridionale o del prof Fontanella Francesco.