Corso di Laurea in Ingegneria Meccanica

Corso di Fondamenti di Informatica - A.A. 1999/2000

Programmi visti a lezione - Prof. Diego Calvanese


Il file PROGRAMS.ZIP contiene in formato compresso zip tutti i file contenuti nei sottodirettori di questo direttorio. Usare il programma winzip o unzip per estrarre i file.
DIRETTORIO\FILE        VISTO IN LEZ. BREVE DESCRIZIONE
                      O DATO PER ES.
------------------------------------------------------------------------------
BASE\CIAO.PAS           07-08        il primo programma
BASE\VARIAB.PAS         07-08        il primo programma che usa una variabile
BASE\AREARETT.PAS       07-08        area di un rettangolo
BASE\EUROLIRE.PAS       07-08  (Es.) conversione da EURO in LIRE

BASE\CERCHIO.PAS        09-10        area e circonferenza di un cerchio
BASE\CONO.PAS           09-10  (Es.) volume di un cono
BASE\BUFFTAS.PAS        09-10        funzionamento del buffer di tastiera

BASE\MEDIA5V.PAS        11-12  (Es.) media di 5 voti
BASE\MEDIA3V.PAS        11-12  (Es.) media di 3 voti, usando l'assegnazione

BASE\EQ2DISPO.PAS       13-14        eq. quadratica a discriminante positivo
IFTE\MAGGIORE.PAS       13-14        primo esempio uso "if-then-else"
IFTE\MESESUCC.PAS       13-14        calcolo mese successivo
IFTE\EQUAQUAD.PAS       13-14  (Es.) soluzione di un'equazione quadratica

IFTE\EQUAQUAD.PAS       15-16 (Lab.) soluzione di un'equazione quadratica

IFTE\TEMPERAT.PAS       17-18        if annidati (cond. mutuam. escludentisi)
IFTE\TRIANG.PAS         17-18        classificazione di un triangolo
IFTE\TRIANG2.PAS        17-18  (Es.) classificazione triangolo (contando)
IFTE\TRIANG3.PAS        17-18  (Es.) classific. triangolo (cond. complesse)

IFTE\GIORMESE.PAS       19-20        primo esempio uso "case-of"
IFTE\DATASUCC.PAS       19-20  (Es.) calcolo data del giorno successivo
CICLI\SOMMA.PAS         19-20        primo esempio uso "for"

CICLI\MASSIMO.PAS       21-22        secondo esempio uso "for"
CICLI\MASSIMOR.PAS      21-22  (Es.) massimo di 10 numeri reali
CICLI\PARI.PAS          21-22        terzo esempio uso "for"
CICLI\PARI2.PAS         21-22  (Es.) stampa pari compresi tra due interi
CICLI\LUNG1.PAS         21-22        primo esempio uso "while"
CICLI\LUNG2.PAS         21-22  (Es.) primo esempio uso "repeat"
CICLI\PITAGOR1.PAS      21-22        primo esempio uso cicli annidati
CICLI\PITAGOR2.PAS      21-22  (Es.) tavola pitagorica con intestazione

CICLI\PIRAMID1.PAS      23-24        stampa piramide di asterischi
CICLI\PIRAMID2.PAS      23-24  (Es.) piramide di numeri di altezza variabile
CICLI\SEQUENZ1.PAS      23-24        lunghezza massima sottosequenza di 0
CICLI\SEQUENZ2.PAS      23-24  (Es.) lunghezza max. sottosequenza di 0 ottim.
CICLI\MCD1.PAS          23-24        mcd (usando la definizione)

CICLI\MASSIMOR.PAS      25-26 (Lab.) massimo di 10 numeri reali
CICLI\SOMPONE.PAS       25-26 (Lab.) somma numeri pos e neg (lunghezza nota)
CICLI\SOMPONE2.PAS      25-26 (Lab.) somma numeri pos e neg (lunghezza nota)
CICLI\CONTAMAG.PAS      25-26 (Lab.) conteggio numeri maggiori del precedente
CICLI\SOMPONE3.PAS      25-26  (Es.) somma numeri pos e neg (terminata da 0)

CICLI\MCD2.PAS          27-28        mcd (algoritmo di euclide)
CICLI\MCD3.PAS          27-28        mcd con controllo sui dati in ingresso
CICLI\MCD4.PAS          27-28  (Es.) mcd (algoritmo di euclide con i resti)
PROCFUN\FIGURE1.PAS     27-28        figure geometriche: solo messaggi

PROCFUN\FIGURE2.PAS     29-30        figure geometriche: scelta forma
PROCFUN\FIGURE3.PAS     29-30        figure geometriche: scelta forma e dim.
PROCFUN\VARLOCAL.PAS    29-30        errori nell'uso di variabili locali
PROCFUN\RETTANG1.PAS    29-30  (Es.) rettangolo di '*' di larghezza fissa
PROCFUN\RETTANG2.PAS    29-30  (Es.) rettangolo '*' larghezza fissa (ciclo)
PROCFUN\RETTANG3.PAS    29-30  (Es.) rettangolo '*' larghezza variabile
PROCFUN\FIGURE5.PAS     29-30  (Es.) f. geom.: scelta forma, dim, spost, car.

PROCFUN\FIGURE4.PAS     31-32        figure geometriche: scelta forma e dim.
PROCFUN\FIGURE6.PAS     31-32  (Es.) f. geom.: scelta forma, dim, spost, car.
PROCFUN\SCOPE.PAS       31-32        regole visibilita' del PASCAL
PROCFUN\SCOPE2.PAS      31-32  (Es.) regole visibilita' del PASCAL

PROCFUN\MAX2.PAS        33-34        definizione e uso di funzioni
PROCFUN\ROMANI1.PAS     33-34        conversione da "cifra romana" in intero
PROCFUN\ROMANI2.PAS     33-34  (Es.) da numero romano decrescente a intero
PROCFUN\ROMANI3.PAS     33-34  (Es.) da numero romano (corretto) a intero
PROCFUN\SOMMAN.PAS      33-34        esempio di funzione piu' complessa
PROCFUN\SCAMBIO.PAS     33-34        esempio di passaggio per variabile
PROCFUN\ORDINA2.PAS     33-34  (Es.) ordinamento di 2 interi
PROCFUN\DATASUN1.PAS    33-34        calcolo data n giorni successivi
PROCFUN\DATASUN2.PAS    33-34  (Es.) calcolo data n giorni succ (ottimizzata)
PROCFUN\FIGURE7.PAS     33-34        come FIGURE6.PAS con aggiunta di cerchio

PROCFUN\PESI.PAS        35-36 (Lab.) calcolo della categoria in base al peso
PROCFUN\PRESSION.PAS    35-36 (Lab.) punto di rottura di una bottiglia
PROCFUN\RADICE.PAS      35-36 (Lab.) radice quadrata con metodo di Newton
PROCFUN\PRIMI.PAS       35-36 (Lab.) verifica se un numero e` primo
PROCFUN\PRIMI2.PAS      35-36 (Lab.) verifica se un numero e` primo

PROCFUN\TABULA1.PAS     37-38  (Es.) tabulazione e istogramma di una funzione
PROCFUN\TABULA2.PAS     37-38  (Es.) tabulazione e istogramma di una funzione
ARRAY\COMPTIPI.PAS      37-38        compatibilita` di tipo tra variabili

ARRAY\CAMERA.PAS        39-40        primo esempio tipi enumerati
ARRAY\ESPERIME.PAS      39-40        primo esempio array monodimensionali
ARRAY\TESTRIP1.PAS      39-40  (Es.) selezione di test (senza array)
ARRAY\TESTRIP2.PAS      39-40  (Es.) selezione di test (con array)
ARRAY\SOMVETT1.PAS      39-40        secondo esempio array monodimensionali

ARRAY\SOMVETT2.PAS      41-42        procedure con parametri di tipo array
ARRAY\OPERVETT.PAS      41-42  (Es.) operazioni su array a 3 componenti
ARRAY\CONTMAIU.PAS      41-42        esempio array indicizzati da caratteri
ARRAY\CONTLETT.PAS      41-42  (Es.) frequenza di lettere in una sequenza

ARRAY\PALIN1.PAS        43-44        verifica se una stringa e` palindroma
ARRAY\PALIN2.PAS        43-44        verifica palindroma (usando procedure)
ARRAY\PALIN3.PAS        43-44  (Es.) verifica palindroma (usando funzione)
ARRAY\SOMMAMAT.PAS      43-44        somma di due matrici bidimensionali
ARRAY\TEMPSETT.PAS      43-44  (Es.) uso di array bidimensionali
ARRAY\SOMRICOL.PAS      43-44  (Es.) esempio di operazioni su interi vettori

PROCFUN\PPV.PAS         45-46 (Lab.) esempio di passaggio per variabile
PROCFUN\ORDINA3.PAS     45-46 (Lab.) ordinamento di 3 valori reali
PROCFUN\COMBI.PAS       45-46 (Lab.) numero ripetizioni di N oggetti a R a R
ARRAY\SOMVETT3.PAS      45-46 (Lab.) somma di vett. di esattamente N componenti
ARRAY\VETTSUPP.PAS      45-46 (Lab.) somma di vett. di al piu` N componenti
ARRAY\DIAGTRI.PAS       45-46 (Lab.) somma diag. princ. e verifica triangolare
ARRAY\PRODMAT2.PAS      45-46 (Lab.) calcolo della matrice prodotto

ARRAY\PALINFIS.PAS      47-48  (Es.) verifica palindroma (stringa lung. fissa)

FILE\TEXT1.PAS          49-50        primo esempio uso file testo (lettura)
FILE\TEXT2.PAS          49-50        secondo esempio uso file testo
FILE\SOMFILE.PAS        49-50        somma di interi letti da file testo
FILE\INDICEFI.PAS       49-50  (Es.) lista di parole distinte in un file

FILE\ESAMI.PAS          51-52        archivio esami su file strutturato

RICORSIO\STACK.PAS      53-54        esempio pila record di attivazione

FILE\PROVFILE.PAS       55-56 (Lab.) conversione frase da file in maiuscolo
FILE\FRASE.PAS          55-56 (Lab.) conversione frase da file in maiuscolo
FILE\SEQUENZA.PAS       55-56 (Lab.) lunghezza massima sottoseq. di 0 da file
FILE\SEQERROR.PAS       55-56 (Lab.) lunghezza massima sottoseq. di 0 da file
FILE\FILEREAL.PAS       55-56 (Lab.) somma e media di reali da file
FILE\FILEINT1.PAS       55-56 (Lab.) lettura seq. interi e scrittura su file
FILE\FILEINT2.PAS       55-56 (Lab.) lettura seq. interi e scrittura su file
FILE\FILEINTG.PAS       55-56 (Lab.) lettura seq. interi e scrittura su file
FILE\FILESTRG.PAS       55-56 (Lab.) conversione seq. parole da file in maiusc.
FILE\PRODMAT1.PAS       55-56  (Es.) prodotto matrici quadrate lette da file
FILE\PRODMAT2.PAS       55-56  (Es.) prodotto di due matrici lette da file
FILE\PALIN3.PAS         55-56  (Es.) palindroma per stringa letta da file
FILE\PALIN4.PAS         55-56  (Es.) palindroma per stringa letta da file
FILE\ESPERIM2.PAS       55-56  (Es.) esperimenti letti da file strutturato

RICORSIO\RICORSIO.PAS   57-58        primo esempio di procedura ricorsiva
RICORSIO\INVERTIC.PAS   57-58        inversione di una stringa di caratteri
RICORSIO\INVERTIN.PAS   57-58 (Es.)  inversione delle cifre di un intero
RICORSIO\FATTORIA.PAS   57-58        funzione ricorsiva per il fattoriale
RICORSIO\FIBONACC.PAS   57-58 (Es.)  funzione ricorsiva per Fibonacci

RICORSIO\FIBONACC.PAS   61-62        funzione ricorsiva per Fibonacci
RICORSIO\PALUDE.PAS     61-62        attraversamento di una palude
RICORSIO\PALUDE2.PAS    61-62 (Es.)  attr. palude con mov. in ogni direzione
RICORSIO\DRIVEINT.PAS   61-62 (Es.)  esercizio con programma da completare
RICORSIO\OPERINDU.PAS   61-62 (Es.)  +, *, ^ tra interi usando def. induttiva
RICORSIO\ACKERMAN.PAS   61-62 (Es.)  funzione ricorsiva per Ackermann
RICORSIO\DETERMIN.PAS   61-62 (Es.)  calcolo del determinante di una matrice
RICORSIO\HANOI.PAS      61-62 (Es.)  problema delle torri di Hanoi

PUNTATOR\PUNT.PAS       63-64        esempi sull'uso di puntatori
PUNTATOR\PUNTATOR.PAS   63-64        esempi commentati sull'uso di puntatori
PUNTATOR\TIPOLIS.PAS    63-64        definizioni di tipo per liste collegate

RICORSIO\INVINP.PAS     65-66 (Lab.) inversione sequenza caratteri term. da '.'
RICORSIO\INVINP2.PAS    65-66 (Lab.) inversione seq. caratteri con lung. data
RICORSIO\INVINP3.PAS    65-66 (Lab.) inversione seq. caratteri letta da file
RICORSIO\FATTDEB.PAS    65-66 (Lab.) funzione ricorsiva per il fattoriale
RICORSIO\FIBODEB.PAS    65-66 (Lab.) funzione ricorsiva per Fibonacci
RICORSIO\POLIDEF.PAS    65-66 (Lab.) definizioni di tipo per polinomio
RICORSIO\POLI.PAS       65-66 (Lab.) calcolo valore polinomio in un punto
RICORSIO\HORNER.PAS     65-66 (Lab.) calcolo val. pol. in un punto con Horner
RICORSIO\LABIRDEF.PAS   65-66 (Lab.) def. tipo per attraversamento labirinto
RICORSIO\LABIRINT.PAS   65-66 (Lab.) attraversamento di un labirinto
RICORSIO\LABDEF2.PAS    65-66 (Lab.) def. tipo per attraversamento labirinto
RICORSIO\LAB2.PAS       65-66 (Lab.) attraversamento di un labirinto
FILE\COMPLDEF.PAS       65-66 (Lab.) definizioni tipo per numeri complessi
FILE\COMPL.PAS          65-66 (Lab.) somma numeri complessi (iterativa)
FILE\COMPLRIC.PAS       65-66 (Lab.) somma numeri complessi (ricorsiva)

PUNTATOR\LISTEMAN.PAS   67-68        creazione a mano di una lista collegata
PUNTATOR\TIPOLIS.PAS    67-70        definizioni di tipo per liste collegate
PUNTATOR\LISTE.PAS      67-70        operazioni su liste collegate
PUNTATOR\LISTERIC.PAS   67-70        operazioni su liste collegate
PUNTATOR\LISTECON.PAS   67-70        operazioni su liste collegate
PUNTATOR\LISTEORD.PAS   67-70        operazioni su liste collegate
PUNTATOR\LISTERWE.PAS   67-70        operazioni su liste collegate
PUNTATOR\LISTERW.PAS    67-70        operazioni su liste collegate
PUNTATOR\LISTEALT.PAS   67-70 (Es.)  operazioni su liste collegate
PUNTATOR\DRIVERLI.PAS   67-70 (Es.)  driver per operazioni su liste collegate

PUNTATOR\FUSIONE.PAS    73-74 (Lab.) fusione di due liste ordinate

TIPIDATO\INSLETT.PAS    75-76        tipo insieme di lettere alfab. maiuscole
TIPIDATO\INSINT.PAS     75-76 (Es.)  tipo insieme di interi

TIPIDATO\PILESEQ.PAS    75-76        realizzazione sequenziale di pile
TIPIDATO\PILE.PAS       75-76 (Es.)  realizzazione collegata di pile
TIPIDATO\PALUDE3.PAS    75-76 (Es.)  attraversamento palude usando una pila
TIPIDATO\PALUDE4.PAS    75-76 (Es.)  attraversamento palude usando una pila

TIPIDATO\CODE.PAS       77-78 (Es.)  realizzazione collegata di code
TIPIDATO\CODESEQ.PAS    77-78        realizzazione sequenziale di code

TIPIDATO\GRAFMAT.PAS    79-80        grafi con matrice di adiacenza
TIPIDATO\GRAFSUC.PAS    79-80        grafi con liste dei successori
TIPIDATO\GRAFIO.PAS     79-80 (Es.)  lettura e scrittura di grafi da file
TIPIDATO\GRAFDRV.PAS    79-80 (Es.)  driver per procedure su grafi
TIPIDATO\GRAFEMAT.PAS   79-80        grafi eticettati con mat. di adiacenza
TIPIDATO\GRAFEIO.PAS    79-80 (Es.)  lett. e scritt. di grafi etic. da file
TIPIDATO\GRAFEDRV.PAS   79-80 (Es.)  driver per procedure su grafi etichettati

TIPIDATO\GRAFVIS.PAS    81-82        algoritmi di visita di grafi

ESAMI\ESO1-1.PAS        83-84 (Lab.) prima simulazione prova esonero: driver
ESAMI\SOL1-1.PAS        83-84 (Lab.) prima simulazione prova esonero: soluzione
ESAMI\ESO1-2.PAS        83-84 (Lab.) prima simulazione prova esonero: driver
ESAMI\SOL1-2.PAS        83-84 (Lab.) prima simulazione prova esonero: soluzione

RICEORDI\RICEESAU.PAS   87-88        ricerca esaustiva in un vettore
RICEORDI\RICEBINR.PAS   87-88        ricerca binaria ricorsiva in vett. ord.
RICEORDI\RICEBINI.PAS   87-88 (Es.)  ricerca binaria iterativa in vett. ord.

RICEORDI\ORDSEL.PAS     89-90        ordinamento per selezione
RICEORDI\ORDBUB.PAS     89-90        ordinamento a bolle non ottimizzato
RICEORDI\ORDBUBOT.PAS   89-90 (Es.)  ordinamento a bolle ottimizzato
RICEORDI\ORDMERGE.PAS   89-90        ordinamento per fusione
RICEORDI\DRIVEORD.PAS   89-90 (Es.)  driver per procedure di ordinamento

ESAMI\ESO2-1.PAS        93-94 (Lab.) seconda simulazione prova esonero: driver
ESAMI\SOL2-1.PAS        93-94 (Lab.) seconda simulazione prova esonero: soluz.
ESAMI\ESO2-2.PAS        93-94 (Lab.) seconda simulazione prova esonero: driver
ESAMI\SOL2-2.PAS        93-94 (Lab.) seconda simulazione prova esonero: soluz.

ESAMI\ALBERDRI.PAS     103-104       driver esercizio di esame del 15/2/99
ESAMI\ALBERSOL.PAS     103-104       soluzione esercizio di esame del 15/2/99
RICORSIO\COSAFA.PAS    103-104       evoluzione pila record attivazione
RICORSIO\RICMULT.PAS   103-104       ev. pila rec. att. con ricorsione multipla

------------------------------ PROGRAMMI FORTRAN ------------------------------

FORTRAN\CIAO.FOR       105-106       il primo programma FORTRAN
FORTRAN\VARIAB.FOR     105-106       il secondo programma FORTRAN
FORTRAN\EURO.FOR       105-106       uso costanti: conversione LIRE --> EURO
FORTRAN\MAX.FOR        105-106       primo esempio uso "IF-THEN-ELSE-ENDIF"
FORTRAN\ENDIF.FOR      105-106       dimostra che l'ENDIF e` necessario
FORTRAN\TEMPERAT.FOR   105-106       if annidati (cond. mutuam. escludentisi)
FORTRAN\SOMMA2.FOR     105-106       primo esempio uso "DO"
FORTRAN\DO.FOR         105-106       dimostra che "DO" e` non strutturato
FORTRAN\LUNG1.FOR      105-106 (Es.) primo esempio uso "DO WHILE"
FORTRAN\LUNG2.FOR      105-106       uso GOTO per simulare repeat-until
FORTRAN\LUNG3.FOR      105-106 (Es.) uso GOTO per simulare while-do

FORTRAN\FATT.FOR       107-108       calcolo del fattoriale usando funzione
FORTRAN\VISIBIL.FOR    107-108       visibilita` tra moduli
FORTRAN\ROMANI2.FOR    107-108 (Es.) da numero romano decrescente a intero
FORTRAN\ROM2INT.FOR    107-108 (Es.) da rom a int: modulo chiamato (server)
FORTRAN\R2IMAIN.FOR    107-108 (Es.) da rom a int: modulo chiamante (client)
FORTRAN\BUBSORT.FOR    107-108       modulo server per bubble sort di un vett
FORTRAN\BUBMAIN.FOR    107-108 (Es.) modulo client per bubble sort di un vett
FORTRAN\SELSORT.FOR    107-108 (Es.) modulo server per selection sort
FORTRAN\INSSORT.FOR    107-108 (Es.) modulo server per insertion sort

FORTRAN\COUNTER.FOR    109-110       modulo per singolo oggetto con COMMON
FORTRAN\USACOUN.FOR    109-110       uso modulo per singolo oggetto
FORTRAN\COUNTERP.PAS   109-110       programma corrispondente in PASCAL
FORTRAN\FORMAT.FOR     109-110       esempio di uso di FORMAT
FORTRAN\STRUTPRO.FOR   109-110       struttura di un modulo PROGRAM
FORTRAN\STRUTFUN.FOR   109-110       struttura di un modulo FUNCTION
FORTRAN\STRUTSUB.FOR   109-110       struttura di un modulo SUBROUTINE
FORTRAN\SORTFILE.FOR   109-110       lettura vettore da file e ordinamento
FORTRAN\SORTFIL2.FOR   109-110       lett. vett. da file con FORMAT e ordin.
FORTRAN\SORTMAIN.FOR   109-110 (Es.) modulo client per ordinamento di un vett