Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Principi di Programmazione, Dispense di Elementi di Informatica

Generalità sulla programmazione, metodologia, fasi di sviluppo (analisi, progettazione, implementazione, verifica, documentazione), diagrammi di flusso flow chart, strutture di controllo (sequenza, selezione, ripetizione), ciclo condizionato, esempi

Tipologia: Dispense

2019/2020

In vendita dal 19/11/2024

domiziana-alibrando
domiziana-alibrando 🇮🇹

5 documenti

1 / 30

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Programmazione: Generalità
Icircuiti elettronici dei calcolatori sono in grado di eseguire soltanto operazioni
estremamente semplici, quali:
Icalcoli aritmetici con le quattro operazioni fondamentali (+, x, -, :)
Icalcoli logici (ad esempio confronti).
Tali operazioni semplici possono però essere combinate per eseguire qualsiasi
operazione complessa.
L'insieme ordinato di istruzioni elementari impartite aun calcolatore per svolgere
un compito prende il nome di programma;
In base alle istruzioni contenute in un programma, un elaboratore produce dati in
output partendo dai dati ricevuti in input.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Anteprima parziale del testo

Scarica Principi di Programmazione e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Programmazione: Generalità

I circuiti elettronici dei calcolatori sono in grado di eseguire soltanto operazioni estremamente semplici, quali:

  • I calcoli aritmetici con le quattro operazioni fondamentali (+, x, - , :)
  • I calcoli logici (ad esempio confronti). Tali operazioni semplici possono però essere combinate per eseguire qualsiasi operazione complessa. L'insieme ordinato di istruzioni elementari impartite a un calcolatore per svolgere un compito prende il nome di programma ; In base alle istruzioni contenute in un programma, un elaboratore produce dati in output partendo dai dati ricevuti in input.

Tali istruzioni per essere elaborate devono essere codificate ciascuna con un valore in binario. Tale codifica prende il nome di linguaggio macchina (Linguaggio di prima generazione):

  • molto ostico per l'uomo
  • Formato da numeri che non hanno alcuna relazione logica con il loro significato
  • specifico per ogni modello di CPU
  • la corrispondenza tra codici numerici e significato delle istruzioni è definita durante la progettazione della CPU. Per rendere meno complessa l'attività di programmazione è stato introdotto già negli anni '50 il linguaggio assembler, (Linguaggio di seconda generazione) che rappresenta le istruzioni del linguaggio macchina mediante codici mnemonici in forma testuale:
  • più facile da utilizzare rispetto al linguaggio macchina
  • difficile e costoso scrivere programmi
  • non portabile (diversa CPU)

I linguaggi di alto livello Più il linguaggio di programmazione si avvicina al linguaggio macchina, più parliamo di linguaggio a basso livello. I linguaggi comunemente classificati invece come «di alto livello » traggono origine dalla necessità di realizzare un tipo di programmazione di un livello più elevato rispetto alla macchina. Vantaggi :

  • Utilizzo di una notazione simile a quelle usate da tecnici e matematici. Programma più semplice da sviluppare.
  • I nuovi elaboratori vengono corredati di programmi per tradurre i diversi linguaggi ad alto livello nel linguaggio macchina del nuovo processore. I programmi diventano portabili senza necessità di modifiche per i nuovi processori.

Programmazione: Metodologia

I programmi possono essere costituiti da milioni di righe di codice e anche scritti da più persone che sviluppano parti differenti (moduli). Indispensabile che tutti i programmatori utilizzino la stessa metodologia di programmazione che negli anni si è modificata ed adeguata alle nuove tecnologie. Un primo fondamentale approccio per definire una metodologia è la distinzione tra:

  • Strutture dati : rappresentazione astratta del mondo reale. Per esempio un database dei dati relativi ai dipendenti di una azienda o ai clienti di una Banca
  • Programmi : Algoritmi scritti in un determinato linguaggio di programmazione, che manipolano le strutture dati per ottenere il risultato desiderato

Programmazione: Metodologia

Negli ultimi anni si è sviluppata una nuova tendenza nella metodologia di programmazione. La programmazione ad oggetti. Consiste nel rappresentare il mondo reale tramite combinazioni di Strutture dati e programmi che operano su tali strutture (oggetti). Questo permette quindi di modificare o aggiungere procedure che manipolano la struttura dati dell’oggetto, senza che questo influisca sull’uso dell’oggetto. La programmazione ad oggetti richiede l’uso di particolari linguaggi come ad es. C++ o Java. Esempio: Oggetto Car. L’oggetto comprenderà:

  • la struttura dati ( Fuel, Maxspeed, ecc)
  • Le procedure ( Metodi ) che manipolano la struttura dati. (Ad es. la procedura “Setspeed()” potrebbe settare la velocità massima della macchina. Ecc.)

Programmazione: Fasi di Sviluppo

Lo sviluppo di un singolo programma o di un sistema informativo è un processo che si articola in cinque differenti fasi: Documentazione

Progettazione

Partendo dall’analisi (di cui viene rilasciata ampia documentazione) i programmatori cercano di individuare la soluzione più idonea al problema. Vengono quindi ricercate, procedure idonee (Algoritmi) adatti alla sua risoluzione.

Fasi di Sviluppo: Progettazione

La risoluzione di un algoritmo, prevede l’utilizzo dei concetti di:

  • Variabile
  • Costante
  • Tipo di dato Tali strutture saranno molto utili in fase di scrittura del codice di risoluzione dell’algoritmo. Una variabile : rappresenta un'area di memoria, dove viene memorizzato qualsiasi valore acquisito dall'utente per mezzo della tastiera o frutto di un processo di elaborazione dati, per poterlo riutilizzare in qualsiasi parte del programma. Una costante : assume sempre lo stesso valore. Esempio: numero (Pi Grego), il quale è valorizzato sempre a 3 , 14. Tipo di dato : Una variabile o una costante, prima di essere utilizzate all’interno di un programma, devono essere dichiarate e associate ad un certo Tipo di dato (es. Boolean, string, integer, date, bytre, char ecc.) riconosciuto dal linguaggio di programmazione utilizzato.

Nel caso del gioco precedente, si dimostra facilmente che c’è una strategia vincente per fare in modo che vinca il giocatore che fa la prima mossa. Prima di rappresentare l’algoritmo con il Diagramma di flusso o lo pseudocodice verifichiamo manualmente se l’algoritmo trovato funziona. (In neretto le istruzioni

  • Fiammiferi
  • A =
  • Fiammiferi =
  • B =
  • Fiammiferi =
  • A = 4-B =
  • Fiammiferi =
  • B =
  • Fiammiferi =
  • A= 4-B =
  • Fiammiferi = - Fiammiferi - A = - Fiammiferi = - B = - Fiammiferi = - A = 4-B = - Fiammiferi = - B = - Fiammiferi = - A= 4-B = - Fiammiferi = - Fiammiferi - A = - Fiammiferi = - B = - Fiammiferi = - A = 4-B = - Fiammiferi = - B = - Fiammiferi = - A= 4-B = - Fiammiferi =
    • Esempio 1 Esempio 2 Esempio principali.

Implementazione (codifica del programma)

Terminata la fase di progettazione occorre scegliere un linguaggio di programmazione (Basic, Cobol, C++, Java ecc) per scrivere il codice del programma.

Fasi di Sviluppo: Implementazione

Codice C (Gioco 11)

Documentazione

In fase di rilascio di un nuovo programma o di modifiche di uno esistente, è di enorme importanza affiancare una documentazione che descriva nel dettaglio tutte le operazioni implementate o gli errori corretti. Tale documentazione ha scopi comunque differenti a seconda dell’utente a cui è rivolta:

  • Utenti finali : Manuale d’uso o sistema di assistenza online.
  • Personale di supporto tecnic o: documentazione di installazione e di risoluzione di problemi.
  • Programmatori : Descrizione del programma, codice sorgente, diagrammi di flusso, appunti su modifiche e quanto utilizzato nelle fasi di sviluppo.

Fasi di Sviluppo: Documentazione

Diagrammi di flusso (flow chart)

Il linguaggio dei diagrammi a blocchi è un possibile formalismo

per la descrizione di algoritmi

Il diagramma a blocchi, o flowchart, è una rappresentazione

grafica dell’algoritmo

Un diagramma a blocchi descrive il flusso delle operazioni da

eseguire per realizzare la trasformazione, definita nell’algoritmo,

dai dati iniziali ai risultati

Ogni istruzione dell’algoritmo viene rappresentata all’interno di

un blocco elementare, la cui forma grafica è determinata dal

tipo di istruzione

I blocchi sono collegati tra loro da linee di flusso, munite di

frecce, che indicano il susseguirsi di azioni elementari

Le Strutture di controllo

Ogni linguaggio di programmazione possiede dei costrutti che hanno la

funzione di definire l'ordine secondo cui singole istruzioni o gruppi di esse

vengono eseguiti.

Vi sono tre generi fondamentali di strutture di controllo a livello di istruzioni:

  • sequenza
  • selezione
  • ripetizione

La combinazione di queste semplici strutture con i dati necessari (costanti e/o

variabili), permette di descrivere graficamente qualsiasi tipo di algoritmo,

anche molto complesso.

La sequenza

se S1, S2,..., Sk sono istruzioni (o statement) allora la sequenza è

S1; S2; S3; Sk;

II controllo 'fluisce" sequenzialmente attraverso la lista.

La sequenza è il meccanismo di strutturazione più semplice ed è usato per

indicare che l'esecuzione di una certa istruzione A deve seguire l'esecuzione

dell'istruzione B.

Alcuni linguaggi usano un approccio basato sulle righe: la fine riga

separa implicitamente le istruzioni in successione