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
 
 
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