Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Silvia Rossi » 1.Prime nozioni di Programmazione


Informatica

Per definire cosa è l’informatica è necessario definire le seguenti nozioni.

  • Informazione
  • Rappresentazione
  • Elaborazione
  • Algoritmo

Le slide del corso sono realizzate in collaborazione con il prof. M. Giordano

Informazione

  • Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.
  • Dato: elementi di informazione costituiti da simboli che debbono essere elaborati.

Rappresentazione

  • In generale ogni rappresentazione è una funzione che associa ad ogni elemento una sequenza di simboli.
  • Per ogni rappresentazione, oggetti (numeri) distinti devono avere differenti rappresentazioni e la rappresentazione di ogni oggetto deve essere unica.
  • Le rappresentazioni usate sui calcolatori impiegano tutte sequenze finite di simboli, tali quindi da rappresentare insiemi finiti di naturali.

Elaborazione

L’elaborazione è una trasformazione: Y=F(X) dove:

  • X è l’insieme di dati iniziali o “di ingresso”
  • Y è l’insieme dei dati finali o “di uscita”
  • F è una regola che fa corrispondere Y ad X
  • La trasformazione F si può ottenere attraverso una o più azioni elaborative (o passi di elaborazione), cioè trasformazioni elementari che devono essere eseguite per ottenere una trasformazione.

Algoritmo

L’algoritmo è una sequenza finita di azioni elaborative che portano alla realizzazione di un compito. Un algoritmo deve essere:

  • Comprensibile
  • Corretto
  • Efficiente

Il calcolatore

Il calcolatore è una entità (reale o astratta) in grado di accettare dati in input, immagazzinarli ed elaborarli per lo svolgimento di un certo compito. A tale fine il calcolatore esegue una sequenza ordinata di comandi (istruzioni). Il software è l’insieme di istruzioni che il calcolatore deve eseguire per svolgere un certo compito. L’hardware è l’insieme delle componenti fisiche necessarie al calcolatore per eseguire le istruzioni.

Il calcolatore: il software

Programmazione: realizzazione di software per diversi scopi:

  • Tradurre un linguaggio in un altro (compilatore)
  • Gestire l’intero hardware (sistema operativo) o un suo dispositivo (driver)
  • Aiutare a scrivere testi (word processor)
  • Gestire banche dati

Il calcolatore come esecutore

Esecutore – qualsiasi entità E (umana o non) in grado di:

  • Riconoscere un insieme finito S di istruzioni (linguaggio) scritte con l’uso di simboli di un alfabeto (C)
  • Interpretare ogni istruzione associando a essa una ben definita, univoca e finita azione di un insieme finito di azioni (A)

Il calcolatore come esecutore

Definizione di Calcolo di E

  • Un algoritmo (G) è un insieme finito di azioni di A tali che eseguite una per volta risolvono un problema dato
  • Le azioni sono estratte da A anche con ripetizioni ma in numero finito
  • Un programma (PG) è l’insieme finito di istruzioni corrispondenti alle azioni dell’algoritmo G
  • E esegue PG (E calcola PG) significa:
    • memorizzare e interpretare la sequenza di istruzioni PG
    • eseguire, in modo deterministico e in un numero discreto di passi, la sequenza di azioni di G a esse associate (eseguire l’algoritmo)

Il calcolatore come esecutore


Il calcolatore come esecutore


Il calcolatore come esecutore


Lo pseudocodice

Lo pseudocodice è un linguaggio artificiale e non del tutto formalizzato per esprimere le (macro) azioni che costituiscono l’algoritmo. I programmi scritti in pseudocodice non sono destinati al computer ma ai programmatori

  • Strumento valido per mettere nero su bianco gli algoritmi
  • Un linguaggio semplice di rapida traduzione nel linguaggio di programmazione da usare (C++)

Il calcolatore: architettura


Il calcolatore: hardware


Il calcolatore: la piramide di memoria


Il calcolatore: memoria RAM


Il calcolatore: memoria RAM


Rappresentazione dell’informazione

  • In generale ogni rappresentazione è una funzione che associa ad ogni elemento una sequenza di simboli.
  • Per ogni rappresentazione, oggetti (numeri) distinti devono avere differenti rappresentazioni e la rappresentazione di ogni oggetto deve essere unica.
  • Una rappresentazione è strettamente correlata al tipo di “mezzo” impiegato.

Rappresentazione Numerica

Ogni sistema di rappresentazione dei numeri deve essere caratterizzato:

  • da una base costituita da un insieme di simboli diversi (cifre);
  • da un sistema (insieme di regole) che permette di associare ai diversi numeri le diverse stringhe di simboli.

Rappresentazione


Rappresentazione dell’informazione

Il sistema numerico decimale è un sistema di tipo posizionale ovvero:

Le cifre che compongono un numero cambiano il loro valore secondo la posizione che occupano

7237 (settemiladuecentotrentasette) in base 10

7×103 + 2×102 + 3×101 + 7×100

7×1000 + 2×100 + 3×10 + 7×1

7000 + 200 + 30 + 7 = 7237

Il calcolatore: rappresentazione dati

Un generico numero N in base p è rappresentato da una sequenza di cifre (numerale)

«N»p = an, an -1, …, a1, a0 (numerale)

dove ciascun ai rappresenta un numero compreso fra 0 e p-1,

an è la cifra più significativa e a0 la meno significativa.


Il sistema decimale


Il sistema binario


Conversione decimale-binario


Rappresentazione dell’informazione


Somma binaria

Nel sistema di numerazione in base 2 esistono due soli simboli: 0 e 1 e quindi quando si effettua l’operazione 1 + 1, non si ha un unico simbolo per rappresentare il risultato, ma il risultato è 0 con il riporto di 1, cioè 10 (da leggere uno, zero e non dieci).

Le regole per effettuare l’operazione di somma di due cifre binarie sono riassunte di seguito:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 0 con riporto di 1

Somma binaria

La somma dei due numeri interi 10001 e 11011 è pari a:

10001 + 11011 =  101100

Moltiplicazione binaria

Le regole per la moltiplicazione sono:

  • 0 * 0 = 0
  • 0 * 1 = 0
  • 1 * 0 = 0
  • 1 * 1 = 1

Quale è il maggiore?

A) 1 0 1 0 1 0 1 0

B) 1 0 0 1 0 1 0 0

C) 1 0 1 0 1 0 1 1

Rappresentazione dei Caratteri

Oltre che le lettere (maiuscole e minuscole) dell’alfabeto inglese e le cifre decimali, ci si riferisce con il termine caratteri anche ad altri caratteri quali:

  • i caratteri di interpunzione (la virgola, il punto, i due punti, ecc.)
  • caratteri di varia origine (il meno, l’asterisco, le parentesi, ecc.)

Per rappresentare l’insieme di tutti i caratteri sono sufficienti 7 bit.

Rappresentazione dei Caratteri

  • I caratteri che costituiscono un testo vengono codificati tramite sequenze di bit, utilizzando un codice di traduzione.
  • Un codice di traduzione è una tabella che stabilisce una corrispondenza tra un carattere e la stringa di 7 bit che la rappresenta.
  • Poichè esistono numerose possibilità di costruire le tabelle di traduzione, per motivi pratici è opportuno sceglierne una di riferimento e utilizzare sempre quella prescelta (standard).
  • L’uso di un codice di traduzione standard consente a sistemi diversi di comunicare tra loro.

Codice ASCII


Rappresentazione dell’informazione


Rappresentazione dell’informazione

  • Problema
  • Algoritmo di risoluzione
  • Programma

Problema


Problema


Con un linguaggio più ricco:

  1. INPUT lato
  2. abbassa la penna
  3. ripeti 4 volte le seguenti istruzioni:
  4. ruota verso destra di 90 gradi
  5. vai avanti di lato quadretti

Con un linguaggio più ricco:


Con un linguaggio più ricco (2):

  1. INPUT lato
  2. abbassa la penna
  3. ripeti 4 volte le seguenti istruzioni:
  4. ruota verso destra di 90 gradi
  5. se lato è minore di 10 allora:
  6. vai avanti di lato quadretti

Esercizio

Scrivere in pseudo codice un algoritmo per trasformare numeri decimali in numeri binari.

I materiali di supporto della lezione

G. Criscuolo, F. Tramontano – Introduzione alla programmazione. Algoritmi Imperativi in C++. Ed. Manna

Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione, ed. Apogeo

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion