Fondamenti di Informatica 2



Похожие документы
Lab 11 Gestione file di testo"

RICERCA DI UN ELEMENTO

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

Gestione delle stringhe in C

Appello di Informatica B

Gestione dei File in C

Compito di Fondamenti di Informatica

File di testo e file binari Directory

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

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

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

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

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

I puntatori e l allocazione dinamica di memoria

Esempio: Array di struct

Esercizio 1. Esercizio 1

Esercizio 1. Esercizio 2

Algoritmi di ordinamento

Algoritmi di Ricerca. Esempi di programmi Java

Corso di Fondamenti di Informatica Algoritmi su array / 2

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

Alcune regole di base per scrivere un programma in linguaggio C

Funzioni in C. Violetta Lonati

puntatori Lab. Calc. AA 2007/08 1

Esame del 3 febbraio 2010

Breve riepilogo della puntata precedente:

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Algoritmi su array / 2

LISTE, INSIEMI, ALBERI E RICORSIONE

Gestione dei File. dischi nastri cd

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

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

Linguaggio C - Stringhe

Laboratorio di Fondamenti di Informatica anno accademico Esercizi proposti il

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

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

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

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

Problem solving avanzato

Politecnico di Torino

Laboratorio di Algoritmi e Strutture Dati

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

Esercizi di programmazione in C

Introduzione alla programmazione in C

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Caratteri e stringhe Esercizi risolti

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

Prova Scritta del 19/07/10

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

Esame di Informatica Generale 9 CFU 21 Giugno 2011 Professori: Carulli, Fiorino, Mazzei

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Le stringhe. Le stringhe

Laboratorio di programmazione

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h

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

Introduzione al Linguaggio C

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

INFORMATICA - I puntatori Roberta Gerboni

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

La struttura dati ad albero binario

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/ III Informatica Serale I.T.I.S.

Grammatica di base: Pointers

Corso di Fondamenti di Informatica

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Record in C: il costruttore struct.

Lab 04 Istruzioni, cicli e array"

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

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};

Vettori Algoritmi elementari di ordinamento

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

Funzioni. Il modello console. Interfaccia in modalità console

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Esercitazione 7. Procedure e Funzioni

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde?

Esercizio: gestione di un conto corrente

Транскрипт:

Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice che scandisce tutto l array A di dimensione N e stampa a video solo i valori maggiori o al più uguali a min, for(i=0;i<n;i++) if(a[i]>=min) printf( %d\n,a[i]); Esercizio 2 (7 punti) Scrivere programma che legge da tastiera un elenco di dati relativi a modelli di telefoni cellulari e li inserisce in un file di testo. Ciascun modello di telefono sia descritto da tre informazioni: Marca, Modello e Prezzo. Il programma deve richiedere all utente il nome del file e il numero di modelli di telefoni cellulari che si intende inserire. (5 punti) Modificare il programma in modo tale che il nome del file e il numero di modelli di telefoni cellulari vengano forniti come argomenti sulla linea di comando. (2 punti) #include <stdio.h> #include <stdlib.h> typedef char Stringa[50]; main() Stringa Marca; Stringa Modello; Stringa Nomefile; float Prezzo; int i,numtelefoni; main(int argc, char **argv) Stringa Marca; Stringa Modello; Stringa Nomefile; float Prezzo; int i,numtelefoni; printf("digitare il nome dei file "); gets(nomefile); printf("inserire il numero di modelli:"); scanf( %d, &NumTelefoni); fp = fopen(nomefile, w ); for(i=0;i<numtelefoni;i++) scanf( %s%s%f,marca,modello, &Prezzo); fprintf(fp,"%s\t%s\t%f", Marca,Modello,Prezzo); NumTelefonii = atoi(argv[2]); fp = fopen(argv[1], w ); for(i=0;i<numtelefoni;i++) scanf( %s%s%f,marca,modello, &Prezzo); fprintf(fp,"%s\t%s\t%f", Marca,Modello,Prezzo); fclose(fp); fclose(fp); Fondamenti di Informatica 2 Prova Scritta del 28 Febbraio 2006 1

Esercizio 3 (7 punti) Definire una struttura dati per rappresentare un elenco di Persone, dove ciascuna persona è rappresentata dagli attributi Nome, Cognome, Età. (3 punti) Si supponga che la struttura dati contenga già memorizzato un elenco di persone. Scrivere una procedura che prende in ingresso l elenco di persone e mostri a video il nome e il cognome delle persone più anziane (4 punti) typedef char stringa[50]; stringa Nome; stringa Cognome; int Età; Persoma; Persona P[100]: int NumPersone; Elenco; void MostraAnziani(Elenco *E) int i; int max = E->P[0].Età; for(i=1;i<e->numpersone;i++) if(e->p[i].età>max) max = E->P[i].Età; for(i=0;i<e->numpersone;i++) if(e->p[i].età==max) printf( %s\t%s\n,e->p[i].nome); printf( %s\t%s\n,e->p[i].cognome); Fondamenti di Informatica 2 Prova Scritta del 28 Febbraio 2006 2

Esercizio 4 (5 punti) Dire quale operazione è implementata dalla funzione mistero motivando adeguatamente la risposta. int A[100]; int NumeroElementi; Struttura; typedef char stringa[50]; stringa Nome; stringa Cognome; int categoria; Impiegato; Impiegato I500;; int NumImpiegati; ElencoImpiegati; Struttura mistero(elencoimpiegati *E, int cat) int i,j; int t=0; Struttura S; for(i=0; i < E->NumImpiegati; i++) if(e->i[i].categoria == cat) S.A[t++] = i; S.NumeroElementi = t; return S; La funzione mistero scandisce il contenuto dell elenco E passato come argomento e memorizza nella struttura S le posizioni dell elenco che sono relative ad Impiegati la cui categoria sia uguale al valore memorizzato nella variabile cat. La variabile t conta il numero di Impiegato che soddisfano la condizione, ed il valore finale è memorizzato nel campo NumeroElementi della Struttura. Fondamenti di Informatica 2 Prova Scritta del 28 Febbraio 2006 3

Esercizio 5 (6 punti) Si vuole memorizzare un elenco di parole lette da un file di testo. Per memorizzare le parole si utilizza una struttura definita come segue char *parola[1000]; int NumeroElementi; ElencoParole; dove parola è un array di puntatori a char. Per ciascuna parola letta si vuole infatti allocare dinamicamente la memoria. A tal fine, si utilizza una variabile temporanea nel quale memorizzare la parola letta, si calcola la lunghezza della parola letta usando la funzione di libreria strlen e si alloca dinamicamente la memoria per la parola (ricordatevi di allocare lo spazio per il carattere aggiuntivo di fine stringa \0) Scrivere la funzione che legge da un file l elenco delle parole e le memorizza su una variabile di tipo ElencoParole, allocando dinamicamente la memoria come specificato. ElencoParole Prodotto(char *nomefile) char temp[100]; int i = 0; fp = fopen(nomefile, r ); while(!feof(fp)) fscanf( %s,temp); strlen(temp); parola[i] = (char *)malloc(strlen(temp)+1); strcpy(parola[i],temp); i++ Fondamenti di Informatica 2 Prova Scritta del 28 Febbraio 2006 4

Esercizio 6 (4 punti) Si consideri un array A di interi i cui elementi siano ordinati. Si vuole inserire un nuovo elemento nell array in modo tale da mantenere l ordinamento. Questo risultato può essere ottenuto modificando opportunamente l algoritmo bubblesort riportato di seguito. void BubbleSort(int *A,int n) int i,another,temp; for(i=0;i<n-1;i++) another=0; for (j=n-1;j>i;j--) if ((A[j] < A[j-1])) temp=a[j]; A[j]=A[j-1]; A[j-1]=temp; another=1; if(!another) break; Proponete una modifica dell algoritmo che - inserisca il nuovo elemento subito dopo l ultimo elemento dell array - faccia risalire questo elemento fino a raggiungere la posizione corretta rispetto all ordinamento dell array void BubbleSort(int x int *A,int n) int i, temp; int another = 1; A[n] = x; for (j=n;j>0;j--) if ((A[j] < A[j-1])) temp=a[j]; A[j]=A[j-1]; A[j-1]=temp; else another = 0; if(!another) break; Fondamenti di Informatica 2 Prova Scritta del 28 Febbraio 2006 5