Esame del 3 febbraio 2010



Documenti analoghi
Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

RICERCA DI UN ELEMENTO

Esercizio 1. Esercizio 2

Lab 11 Gestione file di testo"

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

Fondamenti di Informatica 2

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Caratteri e stringhe Esercizi risolti

Lab 04 Istruzioni, cicli e array"

Funzioni in C. Violetta Lonati

Esempio: Array di struct

Le stringhe. Le stringhe

Problem solving avanzato

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Esercizi di programmazione in C

Record in C: il costruttore struct.

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Introduzione al linguaggio C Gli array

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 8

LABORATORIO DI INFORMATICA parte 6 -

15 febbraio Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

Corso di Fondamenti di Informatica

Laboratorio di programmazione

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Uso di base delle funzioni in Microsoft Excel

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

INFORMATICA - I puntatori Roberta Gerboni

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

Appello di Informatica B

Plate Locator Riconoscimento Automatico di Targhe

Alcune regole di base per scrivere un programma in linguaggio C

Politecnico di Torino

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

12 Funzioni e Strutture con MATLAB

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Grammatica di base: Pointers

Algoritmi di Ricerca. Esempi di programmi Java

Esercizi per il corso di Algoritmi e Strutture Dati

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 13 File Binari

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp KP Cap. 6 pp

Esercizio 1. Esercizio 1

Linguaggio C - Stringhe

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Gestione dei File in C

Manuale di Aggiornamento BOLLETTINO. Rel B. DATALOG Soluzioni Integrate a 32 Bit

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

LABORATORIO DI ANALISI DEI SISTEMI

RISOLUTORE AUTOMATICO PER SUDOKU

Il foglio elettronico: Excel

Gestione delle stringhe in C

Allocazione dinamica della memoria - riepilogo

Struttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura

Breve riepilogo della puntata precedente:

Lezione 5. Fogli di calcolo

Esercitazione del

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a I scritto Febbraio 11 Febbraio 2011

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

La selezione binaria

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

Prof. Nicola Cappuccio

Manuale Utente per la Domanda di Iscrizione nell Elenco Revisori degli Enti Locali

Il foglio elettronico 5/06/2013

Esercitazione 7. Procedure e Funzioni

Definizione di nuovi tipi in C

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio A

Laboratorio di Fondamenti di Informatica anno accademico Esercizi proposti il

Le variabili. Olga Scotti

La struttura dati ad albero binario

File di testo e file binari Directory

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Matematica in laboratorio

Il presente supporto consente la gestione delle gare Giovanili. Premere il pulsante Immissione Dati Gara

MANUALE EDICOLA 04.05

LISTE, INSIEMI, ALBERI E RICORSIONE

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO XI.2015

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

ABC16. 5 Indica nelle reti ethernet cosa è una collisione e come viene gestita. 6 Disegna lo schema della macchina di VON NEUMANN

8.9 CREARE UNA TABELLA PIVOT

REGOLE PER L ESAME (agg.te settembre 2015)

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

Il calcolo dell IRPEF 2003: verifica della clausola di salvaguardia

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Stampa Unione per lettere tipo

Interesse, sconto, ratei e risconti

RE Genitori e Alunni

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Transcript:

Fondamenti di Informatica CdL in Ingegneria Gestionale a.a. 2009/2010 Docente: Andrea Prati Esame del 3 febbraio 2010 Esercizio 1 Vettori Sia data un vettore (array monodimensionale) di interi: int VETT[N]; con N inserito dall utente (e comunque minore o uguale a 100). Scrivere un programma in C che per prima cosa legga il valore di N, controllando che sia positivo e minore o uguale a 100. Quindi devono essere letti N valori interi (positivi o negativi) da inserire come elementi di VETT. Tali valori devono essere alternativamente divisibili per 3 e multipli di 5 (iniziando da un numero divisibile per 3). Ad esempio, per N=7 un vettore valido è: 3 10-6 15 15-10 9 Una volta letto il vettore, si calcoli la somma degli elementi di posizione pari e la somma degli elementi di posizione dispari. Si visualizzi quindi la differenza in valore assoluto tra le due somme. Nell esempio sopra riportato, la somma degli elementi di posizione pari è 21=3+(-6)+15+9, quella di posizione dispari è 15=10+15+(- 10). Il valore visualizzato è quindi 6= 21-15 Esercizio 2 Funzioni su stringhe Si scriva in C una funzione con il seguente prototipo: int fondistringhe (char P[], char Q[], char S[]); La funzione deve fondere le due stringhe P e Q nella stringa destinazione S. Nella fusione in S si riporta prima il carattere di P (P[i]) e poi quello di Q (Q[i]) se P[i] è maggiore di Q[i], prima Q poi P se invece è minore o uguale. Nel caso una stringa termini prima, i restanti caratteri dell altra devono essere copiati in S. Ogni volta che viene messo prima P di Q si incrementa un contatore di 1, ogni volta che Q viene messo prima di P, il contatore viene decrementato. Quando sono rimasti solo caratteri di una stringa il contatore non viene modificato. La funzione riporta il valore finale del contatore. Esempi: P Q S Val. ritornato cavallo "distinto" dciavstalinlntoo -3 mare "ciao" mciaraoe 0 tre "ciao" tcrieao 3 marea "vai" vmaariea -1-1 -1 +1-1 +1-1 -1 = -3 +1-1 +1-1 = 0 +1 +1 +1 = 3-1 -1 +1 = -1

Esercizio 3 Visibilità Verificare che il seguente programma C non contenga errori e imprecisioni (se li contiene indicare dove e perchè). Per le istruzioni prive di errori indicare cosa viene visualizzato dai vari printf del programma: main() { int a=9, b, c; a = b+7; a=3; b=8; c=--a + b--; { int a=8, c=7; a=(b==c)*(a==++b)*5; { int b=a, c=0; a=c*b+(c++)*a;

Esercizio 4 Record Siano date le seguenti definizioni: #define NORARI 4 #define NSETTIMANA 5 #define NIMPEGNI 5 typedef enum {Alta=1, Media=2, Bassa=3 TipoPriorita; typedef struct { int IDImpegno; char Descrizione[80]; TipoPriorita Priorita; TipoImpegno; typedef struct { int Occupato; int IDImpegno; int Personale; TipoAgenda; TipoImpegno Impegni[NIMPEGNI] = <inizializzazione>; TipoAgenda Agenda[NORARI][NSETTIMANA] = <inizializzazione>; dove i vettori Agenda e Impegni sono inizializzati e quindi non occorre acquisirli da input. Esempio Impegni IDImpegno Descrizione Priorita 0 1 Riunione Media 1 2 Conference call Alta 2 3 Incontro capo Alta 3 4 Incontro genitori Bassa 4 5 Telefonata Bassa Agenda (righe = orario diviso in 4 fascie, colonne = giorno della settimana) 0 1 2 3 4 0 IDImpegno=5 1 IDImpegno=2 2 IDImpegno=3 IDImpegno=5 Personale=1 3 IDImpegno=4 Personale=1 IDImpegno=3 IDImpegno=2

Nell Agenda, Occupato indica se quell orario di quel giorno è occupato (se è 0 indica non occupato e quindi IDImpegno e Personale non hanno importanza punto interrogativo nell esempio). Se invece Occupato è a 1, IDImpegno indica il corrispondente impegno del vettore Impegni, e Personale indica se l impegno è personale (=1) o di lavoro (=0). Ad esempio, Agenda[3][1] è occupato da un incontro genitori di tipo personale. 1) Elencare (stampare a video) tutti i giorni della settimana (colonne della matrice Agenda) in cui c è almeno un impegno personale. Nell esempio sono il giorno 1 e 3. 2) Elencare (stampare a video) tutti i giorni della settimana (colonne della matrice Agenda) in cui c è almeno un impegno che dura almeno due fasce orarie consecutive. ATTENZIONE: l impegno deve essere lo stesso, cioè stesso IDImpegno. Quindi nell esempio i giorni 0 e 2 vanno bene (giorno 0: nelle fasce consecutive 0 e 1; giorno 2: IDImpegno=3 nelle fasce consecutive 2 e 3), mentre il giorno 3 non va bene!. 3) Elencare (stampare a video) la fascia oraria, il giorno della settimana e la descrizione di qualsiasi impegno con priorità Alta: Fascia Oraria Giorno Descrizione 1 1 Conference call 2 2 Incontro capo 3 2 Incontro capo 3 4 Conference call 3.a facoltativo) Stampare a video la fascia oraria e il giorno della settimana non occupati che seguono in orario un impegno a bassa priorità. Nell esempio c è solo la fascia (riga) 3 del giorno (colonna) 3, che è non occupato e segue un impegno con IDImpegno=5 che è a bassa priorità Tempo a disposizione per la soluzione: 2 h e 30.

ESERCIZIO PER LA PROVA PRATICA IMPORTANTE: Questo foglio non va consegnato! In esso deve essere ricopiata la soluzione consegnata dell esercizio indicato di seguito. Esercizio 2 Funzioni su stringhe Si scriva in C una funzione con il seguente prototipo: int fondistringhe (char P[], char Q[], char S[]); La funzione deve fondere le due stringhe P e Q nella stringa destinazione S. Nella fusione in S si riporta prima il carattere di P (P[i]) e poi quello di Q (Q[i]) se P[i] è maggiore di Q[i], prima Q poi P se invece è minore o uguale. Nel caso una stringa termini prima, i restanti caratteri dell altra devono essere copiati in S. Ogni volta che viene messo prima P di Q si incrementa un contatore di 1, ogni volta che Q viene messo prima di P, il contatore viene decrementato. Quando sono rimasti solo caratteri di una stringa il contatore non viene modificato. La funzione riporta il valore finale del contatore. Esempi: P Q S Val. ritornato "distinto" cavallo cdaisvatillnoo -3 "ciao" mare cmaiareo 0 "ciao" tre ctiraeo 3 "vai" marea mvaairea -1-1 -1 +1-1 +1-1 -1 = -3 +1-1 +1-1 = 0 +1 +1 +1 = 0-1 -1 +1 = -1 COPIARE QUI SOTTO LA SOLUZIONE: