Estratto del documento

Architettura dei calcolatori

Unità centrale – memoria principale (RAM), processore (CPU) - collegate tra loro per

trasferire le informazioni da una all’altra

Memoria principale RAM

( – random access memory) - è volatile e quando si spegne

il computer si svuota – contiene informazioni necessarie al processore per svolgere

le sue funzioni

Dati su cui operare

- Operazioni da eseguire

-

Processore CPU

( – central processing unit) - cervello del computer

Svolge calcoli aritmetici e logici

Coordina le attività degli altri componenti

Elabora i dati e le istruzioni per far funzionare il sistema operativo e le applicazioni

Contiene:

- Unità aritmetico-logica ALU

( – arithmetic logic unit) - operazioni

aritmetiche/logiche

Appoggio di altri elementi interni:

- Control unit CU

( ) - coordina il funzionamento degli altri elementi

- Instruction register IR

( ) - piccole aree di memoria molto efficienti –

recuperano dalla memoria l’istruzione corrente da eseguire e la trasferiscono

nella CPU

- Program counter PC

( ) - memorizza l’indirizzo di memoria della prossima

istruzione da eseguire

Periferiche – memoria secondaria, input e output – dispositivi che non fanno parte del

cuore del computer – alcuni interni alcuni esterni al computer – interagiscono con l’unità

centrale

Memoria secondaria - - è permanente e quando si spegne il

Es. Hard disk o usb

computer non si svuota – per conservare file, applicazioni o altro

Output uscita

(unità di ) - - per emettere determinati risultati

Es. Stampe o audio

Input ingresso

(unità di ) - - per

Es. Mouse, tastiere, microfoni o tavolette grafiche

dare all’utente la possibilità di immettere dati

Organizzazione della memoria – costituita da vettori (sequenza di informazioni di uguali

dimensioni e tipologia (predefiniti al momento della costruzione del dispositivo))

Macchina virtuale – macchina fisica le cui capacità sono aumentate da alcune componenti

software

Software – oggetti immateriali del computer – es. Applicazioni e programmi

Hardware – oggetti materiali del computer – es. Parte fisica/meccanica

Sistema operativo OS

( – operating system) - programma che viene caricato in fase di avvio

del sistema – coordina l’attività degli altri programmi finchè il sistema è in funzione

Hard w are d i Ard uino – piattaforma open source (il codice che lo governa è pubblico e

accessibile a tutti) basata su schede elettroniche – la più comune è basata su un

microcontrollore

Mic ro c o ntro llo re – circuito microscopico – primo open hardware – si interfaccia con

gli oggetti – ha molti ingressi e molte uscite per controllare e collegarsi agli oggetti

Mac c hina d i Vo n Ne umann – caratterizzata dalla presenza di una sola memoria che può

essere divisa tra parte dati (volatile) e parte programmi (permanente)

Linguaggi di programmazione - Uno stesso algoritmo può essere

tradotto in modi diversi a seconda del linguaggio di programmazione scelto - Es. C++, java

script, python

Livelli dei linguaggi di programmazione - ogni livello utilizza il linguaggio che il livello

inferiore gli mette a disposizione

Di alto livello (L5) – si possono interfacciare con le persone

- Di basso livello (L2) – si possono interfacciare con i calcolatori

-

I dati – elementi su cui lavorano i programmi – codificati come sequenze di bit (0 e 1)

Semplici

- Interi

▪ – numeri interi

• Char – numeri interi piccoli e caratteri (lettere, cifre, simboli

speciali) - racchiusi nella tabella di ASCII

Unsigned char

• Short

Unsigned short

• Int – numeri interi

Unsigned int

• Long

Unsigned long

• Bool – vero o falso

In virgola mobile – numeri con parte frazionaria

▪ • Float

• Double

• Long double

Strutturati

- Indirizzo

-

Differenziati da:

Valori che può assumere – un tipo di dato può assumere valori da un minimo a

- un massimo

Come vengono codificati e come sono rappresentati in memoria

- Quanto spazio la rappresentazione occupa in memoria

- Le operazioni che si possono fare su questi valori

-

Caratteri literal – valore di dati espresso direttamente, senza l’uso di variabili o espressioni

– racchiusi tra ‘’ – es. Dati char

Tabella di ASCII (american standard code for information interchange) – contiene codici

numerici per rappresentare 128 caratteri di tipo char – si possono rappresentare tutti

all’interno di un byte

Workflow della programmazione – sequenza di operazioni da fare

per arrivare al risultato

Fasi:

1. Problem solving - analizzare un problema

capire le sue caratteristiche

studiare come dovrebbe essere la sua soluzione (specifiche)

produrre la soluzione (algoritmo)

2. Verifica – fare una serie di prove per verificare che l’algoritmo sia corretto e che

risolva il mio problema – se non è corretto ricomincio dalla fase di problem solving

3. Coding - trasformare l’algoritmo in un’espressione che possa essere eseguita da

una macchina (programma)

4. Verifica – sottoporre un programma a vari test per vedere se funziona

correttamente – se c’è qualcosa di sbagliato o qualcosa che si può migliorare posso

tornare alla fase di problem solving o alla fase di coding a seconda di quale

problema si verifica

5. Realise (rilascio) - mettere in opera il mio programma e farlo funzionare – se si

presentano ancora errori o possibilità di miglioramento torno alle fasi precedenti

Specifiche – caratteristiche che deve avere la soluzione per risolvere un problema

Algoritmo – soluzione espressa in termini formali interpretabili da una persona umana –

deve essere preciso, univoco, specifico e non deve dare luogo a diverse interpretazioni –

non è ancora un programma

Flow chart (diagramma di flusso) - rappresentazione grafica dell’algoritmo

Programma – soluzione espressa in un linguaggio che può essere eseguito da un computer

(codice) – si possono usare solo espressioni e istruzioni che il calcolatore mette a

disposizione – diventa una capacità in più del computer

Programmare – risolvere problemi creando programmi – per programmare non si parte dalla

meccanica dell’oggetto con cui si risolve il problema ma dal problema stesso

Programmazione – insieme delle attività che portano allo sviluppo di applicazioni o

programmi eseguibili su un sistema di calcolo

Soluzioni procedurali – trovare una soluzione definendo i passi e le sequenze di istruzioni

Soluzioni non procedurali – trovare una soluzione senza specificare i dettagli di esecuzione

Principio della sequenzialità – i programmi sono sequenziali - viene eseguita una istruzione

alla volta in sequenza

Pensiero computazionale – processo mentale per agire sui problemi e sulle loro soluzioni

Fasi:

- Scomposizione – spezzare un problema in piccoli problemi più semplici

- Riconoscimento di pattern – un problema è formalmente riconoscibile come un

problema che ho già risolto – posso usare la soluzione del vecchio problema per

risolvere anche il nuovo

- Generalizzazione e astrazione – filtrare informazioni non necessarie e ottenere

rappresentazioni del problema più generali possibile – posso riconoscere dei pattern

e riutilizzarli

- Progettazione di algoritmi – una volta fatta questa analisi e trovato eventuali

pattern, posso scrivere la soluzione

Es . Alg o ritmo anno b is e s tile

Dato un anno verificare se è bisestile

- Divisibile per 4

- Non multiplo di 100

- Multiplo di 400

- Input – chiedi all’utente un numero (di 4 cifre) e leggi da tastiera quello che viene

scritto dall’utente

- Elaborazione – se anno non divisibile per 4 rispondi “falso”; altrimenti se anno

divisibile per 100 rispondi “falso”; altrimenti se anno divisibile per 400 rispondi

“vero”; altrimenti rispondi “falso”

- Output – scrivi “si/vero” se anno bisestile o “no/falso” se anno non bisestile

Linguaggio comprensibile al calcolatore

- Se – if

- Non – not

- Allora – then

- Altrimenti – else

- Vero – true

- Falso – false

If not divisibile (ANNO;4) then rispondi false; else if divisibile (ANNO;100) then rispondi

false; else if divisibile (ANNO;400) then rispondi true; else rispondi false

Elaborazione di un programma

1) Usiamo un editor di testo per scrivere un programma (es. – seguendo

Blocco note)

la sintassi del linguaggio di programmazione scelto

2) Il programma viene salvato in un file di testo il cui nome deve avere un’estensione

.cpp

opportuna (in C++ estensione )

3) Fase di parsing – il compilatore controlla che il codice sorgente non contenga errori

di sintassi

4) Fase di compilazione – il compilatore trasforma il codice sorgente in codice oggetto

5) Il linker combina il codice oggetto con librerie o altri codici pre-compilati, crea il file

eseguibile e lo memorizza sulla memoria secondaria

6) Il loader carica nella RAM il file eseguibile

Codice sorgente – pseudo-codice – codice scritto da un programmatore e interpretabile

dall’uomo

Codice oggetto – codice sorgente tradotto in linguaggio macchina (insieme di istruzioni

binarie che la CPU può eseguire direttamente)

Direttive – istruzioni che permettono di aggiungere al mio programma dei pezzi di codice

che non ne fanno parte – es. #include <...>

Librerie – raccolte di codice pre-scritto che si può collegare al

Anteprima
Vedrai una selezione di 8 pagine su 34
Esame universitario di Introduzione alla programmazione Pag. 1 Esame universitario di Introduzione alla programmazione Pag. 2
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 6
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 11
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 16
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 21
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 26
Anteprima di 8 pagg. su 34.
Scarica il documento per vederlo tutto.
Esame universitario di Introduzione alla programmazione Pag. 31
1 su 34
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giada1mellina di informazioni apprese con la frequenza delle lezioni di Introduzione alla programmazione 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 Genova o del prof Rovetta Stefano.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community