Programma Preliminare



Scaricare 14.65 Kb.
03.04.2019
Dimensione del file14.65 Kb.

Programma Preliminare

Programmazione + Laboratorio (Corso B) a.a.2003/2004
Docente: Lanza Antonietta


Modulo 1 - Risolvere problemi con il computer: dal problema

all'algoritmo

Astrazione del processo di calcolo: algoritmo e sue caratteristiche.

Modelli di composizione fondamentali. Principi della

programmazione strutturata. Notazioni grafiche e lineari per rappresentare

algoritmi: Grafi di flusso.(strutturati). Grafi di

Nassi-Schneidermann.. Linguaggio testuale strutturato. Teorema di Bohm-

Jacopini (enunciato).
Modulo 2 - Dall'algoritmo al programma

Delega della esecuzione di un procedimento di calcolo. Linguaggi a basso

e ad alto livello. Linguaggi imperativi. Cenni

sulla loro evoluzione. Linguaggi e grammatiche. Forma di Backus-Naur

(BNF). Carte sintattiche. Cenni sui compilatori.
Modulo 3 - La decomposizione di problemi

Riduzione di problemi complessi a sottoproblemi primitivi. Decomposizione

di problemi attraverso sequenze, selezioni,

relazioni di ricorrenza (iterazione e ricorsione). Albero di

decomposizione.
Modulo 4 - Linguaggi di programmazione: dati e controllo

Concetto di variabile. Tipi di istruzioni. Operative. Istruzioni

dichiarative. Concetto di tipo di dato. Tipi semplici.

Compatibilità ed equivalenza tra tipi di dato. Variabili ed istruzione di

assegnazione. Strutture di controllo. Dichiarazioni

e campo di azione degli identificatori. Astrazioni funzionali: procedure e

funzioni. Tecniche di legame dei parametri.

Effetti collaterali in procedure e funzioni. Attivazione dei

sottoprogrammi. Ricorsione. Meccanismi di definizione di

strutture di dati: trasformazioni finite, prodotto cartesiano, insieme

potenza, sequenze.
Modulo 5 - Metodologie di progetto di programmi

Metodologie di progetto di programmi. Le qualità di un programma. Approcci

top-down, bottom-up, ibrido. Fasi del

progetto. Analisi del problema. Scelta della strategia di soluzione.

Definizione delle strutture dei dati. Codifica.

Documentazione. Testing e debugging di un programma. Classi di equivalenza.


Modulo 6 - Algoritmi fondamentali

Algoritmi elementari: Scambio, Conteggio, Determinazione del massimo,

Sommatoria, Fibonacci, MCD, Fattoriale.

Algoritmi su array: Inizializzazione/Lettura/Stampa, Inversione

dell'ordine di un array, Ricerca del massimo/minimo,

Eliminazione dei doppi, Costruzione di istogramma, Partizionamento,

Fusione, Ordinamento (selezione, a bolle,

inserzione, Shell, Hoare, Quicksort ricorsivo), Ricerca (sequenziale,

ottimizzata, binaria, Hash), Somma di matrici,

Prodotto di matrici. Algoritmi ricorsivi.

Algoritmi su file: Creazione, Copia, Confronto, Scansione sequenziale,

Aggiornamento, Fusione, Conteggio delle linee,

Fusione, Ordinamento per fusione naturale.
Modulo 7 - Un linguaggio strutturato del paradigma procedurale: il

linguaggio Pascal

Alfabeto. Struttura di un programma. Sezioni dichiarative di costanti,

tipi, variabili. Tipi semplici predefiniti. Tipi definiti

dall'utente. Istruzione di assegnazione ed espressioni. Istruzioni

selettive. Istruzioni iterative. Procedure e funzioni. Unit.

Input/Output. Tipi strutturati.


TESTI CONSIGLIATI

C.Batini, L.Carlucci Aiello, M.Lenzerini, A.Marchetti-Spaccamela,

Fondamenti di programmazione dei calcolatori

elettronici, Franco Angeli Milano

N. Wirth - Principi di programmazione strutturata - ISEDI (UTET Libreria),

1995.


D.R.Dromey, Algoritmi Fondamentali, Gruppo Editoriale Jackson, 1989.

K. Jensen, N. Wirth, Pascal (Standard ISO), Nuova ed. - Jackson Libri



(1996)

A. Guidi, N. Renzoni Pascal guida alla programmazione, McGraw-Hill (1999)





Condividi con i tuoi amici:


©astratto.info 2017
invia messaggio

    Pagina principale