Universita' degli Studi di Roma "La Sapienza" Facolta' di Ingegneria Anno Accademico 1999-2000 FONDAMENTI DI INFORMATICA (MECCANICA) -- Prof. D. 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. ============================================================================== ELENCO DEI PROGRAMMI CONTENUTI NEI SOTTODIRETTORI ============================================================================== 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.PAS 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