Corso di Fondamenti di Informatica (M-Z)
|
|
|
- Mirella Meloni
- 9 anni fa
- Просмотров:
Транскрипт
1 Corso di Fondamenti di Informatica (M-Z) Avvertenze Consegnare solo fogli formato A4. Scrivere su un solo lato (no fronte retro) In ordine di preferenza usare inchiostro nero, matita, inchiostro blu. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo di pagina rispetto al totale; esempio per il secondo foglio di 3 consegnati: Giuseppe Russo 2/3 Mantenere sul banco il libretto o altro documento di riconoscimento fino a controllo avvenuto Nient altro deve trovarsi sul banco: non è consentito consultare libri, dispense, appunti, ecc. La correzione di riferimento per l autovalutazione verrà effettuata in questa stessa aula alla fine della prova La consegna delle fotocopie dei compiti avverrà al termine della correzione Chi si presenta all orale deve portare l implementazione al computer della propria soluzione, eventualmente corretta, corredata di tutto quanto necessario alla verifica del corretto funzionamento. Prova Scritta 6/12/2004 Si scriva un programma per determinare il numero di occorrenze di ogni parola in un testo. Il programma chiede il file di testo da elaborare e costruisce una lista di strutture con due campi: la parola ed il relativo numero di occorrenze. La lista viene costruita ed aggiornata man mano che si leggono le parole dal file, mantenendola sempre ordinata rispetto al numero di occorrenze riscontrate. Al termine della lettura del file il programma stampa la lista sullo standard output. #include <iostream.h> #include <fstream> using std::cout; using std::cin; using std::ios; using std::fstream; fstream file_da_leggere; // stream per leggere il file char nome_del_file[32]; // stringa per ospitare il nome del file // da leggere struct elemento // questa e' la struttura dell'elemento della char parola[100]; // lista int occorrenza; elemento* succ; ; typedef elemento* lista; // tipo di dato da far restituire alle funzioni // Questa procedura inserisce l'elemento preso al secondo argomento nella // lista presa per riferimento al primo. L'inserimento avviene in // maniera ordinata rispetto al campo occorrenza degli elementi void inserisci_ordinato(lista& i, elemento e) lista p = 0, q, r; for (q = i; q!= 0 && q->occorrenza > e.occorrenza; q = q->succ) p = q; r = new elemento; *r = e; r->succ = q;
2 // controlla se si deve inserire in testa if (q == i) i = r; else p->succ = r; // Questa funzione restituisce il valore true se e solo se le stringhe // contenute nei due vettori presi in input sono identiche bool div(char vet1[], char vet2[]) int i = 0; while ((vet1[i]!= '\0') && (vet2[i]!= '\0') && (vet1[i] == vet2[i])) i++; if (vet1[i] == '\0' && vet2[i] == '\0') return false; else return true; // Questa funzione estrae un elemento dalla lista presa per riferimento al // primo argomento. L'elemento estratto e' quello la cui stringa contenuta // nel suo campo parola è identica alla stringa contenuta nel campo // parola dell'elemento preso pure per riferimento al secondo argomento bool estrai_elem_dato(lista& i, elemento& e) lista p = 0, q; for (q = i; q!= 0 && div(q->parola,e.parola); q = q->succ) p = q; if (q == 0) return false; if (q == i) i = q->succ; else p->succ = q->succ; e.occorrenza = q->occorrenza; delete q; return true; // Questa procedura stampa la lista sullo standard output. La stampa // avviene un elemento per riga, prima il numero di occorrenze e poi // la parola void stampalista(lista p0) lista p = p0; while (p!= 0) cout << p->occorrenza << ' ' << p->parola << '\n'; p = p->succ; // questo e' il programma principale che deve: // 1. chiedere quale sia il file di testo da elaborare // 2. aprire il flusso in lettura // 3. costruire ed aggiornare la lista delle parole con le relative // occorrenze; la parola è un testo compreso fra due spazi // 4. chiudere il flusso
3 // 5. stampare la lista sullo standard output int main() char r; lista parole = 0; elemento el; cout << "Quale file vuoi analizzare?\n"; cin >> nome_del_file; file_da_leggere.open(nome_del_file, ios::in); while (file_da_leggere >> el.parola) if (estrai_elem_dato(parole, el)) el.occorrenza++; inserisci_ordinato(parole, el); else el.occorrenza = 1; inserisci_ordinato(parole, el); file_da_leggere.close(); stampalista(parole); return 0; ESEMPIO [prompt]$./a.out Quale file vuoi analizzare? omaggio_a_pippo_franco " 13, 10 che 9 il 7 : 6 un
4 6 a 6 di 6 in 5 e' 5 ho 5 e 5 sono 4! 4 le 4 gli 4 una 4 da 3 con 3 mi 3 ha 3 suo 3 quello 3 l' 3 io 3 conto 3 non 2? 2 lei 2 al 2 dice 2 la 2 per 2 direttore 2 entrato 2 anni questo 2 porta 2 ma 2 poi 2 tutto 2 alla 2 bene 2 volta 2 uguali 1 assunto 1 bravissimo 1 formaggio 1 senza 1 o 1 risponde 1 cosa 1 > 1 bar 1 panino 1 prendere 1 vada 1 < 1 media 1 terza 1 solo 1 capo-ufficio 1 se 1 test 1 prima 1 fare 1 dovrei 1 quindi 1 voti 1 dei 1 massimo 1 lauree 1 due
5 1 fatto 1 aiuto-assistente 1 offrire 1 posso 1 impiego 1 unico 1 perso 1 trovarla 1 veniva 1 chi 1 decidere 1 sorte 1 tirato 1 abbiamo 1 signor 1 camera 1 appena 1 ospedale 1 trovare 1 va 1 azienda 1 grande 1 impiegato 1 fa 1 nonno 1 sospeso 1 lasciato 1 guardi 1 lui 1 faccio 1 sulla 1 cartello 1 euro pagare 1 scusi 1 portato 1 cameriere 1 quando 1 andarmene 1 stavo 1 scoppiare 1 mangiato 1 volo 1 fra 1 nipoti 1 vostri 1 i 1 pagheranno 1 volete 1 mangiate 1 entrate 1 davanti 1 scritto 1 ristorante 1 visto 1 genova 1 ero 1 ieri 1 cistifellea 1 quelli 1 vita 1 nella 1 riusciti 1 calcoli 1 unici 1 matematica 1 bravo
6 1 disoccupati 1 rimanere 1 probabilita' 1 uguale 1 tutti 1 avranno 1 studi 1 terminati 1 studenti 1 senso 1 nel 1 si' 1 pubbliche 1 quelle 1 private 1 scuole 1 rendera' 1 legge 1 disegno 1 approvazione 1 via 1 nessuno 1 ascolta 1 ti 1 tanto 1 vuoi 1 dire 1 puoi 1 dove 1 democrazia 1 viviamo 1 noi 1 nato 1 bello 1 sempre 1 uomo 1 diceva 1 si 1 sorella 1 mia 1 fuoco 1 dato 1 poco 1 dopo 1 perche' 1 capito 1 aver 1 credo 1 spiegato 1 hanno 1 me 1 incendio 1 incesto 1 tra 1 differenza 1 chiesto 1 bambino 1 ricordo
Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche
Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo
Corso di Fondamenti di Informatica (M-Z) Prof. Aldo Franco Dragoni. Prova Scritta 19 aprile 2007
Corso di Fondamenti di Informatica (M-Z) Prof. Aldo Franco Dragoni Avvertenze Consegnare solo fogli formato A4. Scrivere su un solo lato (no fronte retro) In ordine di preferenza usare inchiostro nero,
Informatica A. Istruzioni
Informatica A Cognome Nome Matricola o Codice studente Istruzioni Non separate questi fogli. Scrivete la soluzione solo sui fogli distribuiti, utilizzando il retro delle pagine in caso di necessità. Cancellate
Laboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
Gestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Esercizio 1 File: ordinamento di un archivio di studenti (file binario)
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 9 Esercitazione: 19 gennaio 2005 Esercizi sui file e sulle liste. Scaletta Esercizio 1 File: ordinamento di un archivio
Informatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
Programmazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++
Fondamenti di Informatica 2008 corso prof. A. Picariello Operazioni sui FILE in C++ Librerie di I/O per la gestione dei FILE Il C++ consente di utilizzare le librerie standard di I/O del C mette anche
Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
IL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
fondamenti di informatica 2 programmazione in C++ Riccardo Galletti - tratto da
Riccardo Galletti - tratto da www.riccardogalletti.com pag. 1 #include #include #include /*siano date in ingresso due liste ordinate di numeri interi L1 e L2. Scrivere
ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i
Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 11 Esercitazione: 27 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo del numero di
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII
LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate
Gestione dinamica di una coda
Gestione dinamica di una coda Una coda o queue è una lista lineare a lunghezza variabile in cui l'inserimento di nuovi elementi (push) viene effettuato ad un estremo (fondo o rear) e l'estrazione degli
4. Accesso diretto per gli archivi con record a lunghezza costante
4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione
