PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO A

Documenti analoghi
Fondamenti di Informatica 1 - Compito A

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

STRUCT - ESERCIZIO 1

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 16 Giugno 2009 Compito A

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:

T = { D, {F 1,...,F n }, {P 1,...,P m } }

Esercizio 1: Puntatori impiegati che sono manager

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008

Laboratorio di Elementi di Architetture e Sistemi Operativi Soluzioni degli Esercizi del 9 Maggio 2012

Il compito del 11 novembre 2004

Fondamenti di Informatica 1 - Compito A

ESERCIZIO: Analisi di un programma. Dato il seguente programma C:

Fondamenti di Informatica 1 - Compito A

Esercizio sintesi (1) Esercizio sintesi (1)

Opinione calcolamedia( ) Opinione inverti( )

Fondamenti di Informatica T-1 Modulo 2

Esercizio 1: media di numeri reali (uso funzioni e struct)

IEIM Esercitazione 1 Primi passi con la programmazione" Alessandro A. Nacci -

Esercizio 1 File: ordinamento di un archivio di studenti (file binario)

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Esercizio 1: parole nel testo

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore.

Fondamenti di Informatica T1. Lab 04 Array. Lab06 1

Esercizi di programmazione in linguaggio C English Dictionary

Lab 9 Strutture e programmi su più file

ESERCIZIO allochi staticamente un vettore V1 di 10 float e allochi dinamicamente un vettore V2 di 10 double;

Esercizio 1 Conta degli elementi distinti (file esercizio1.c e leggi.h/leggi.c - 15 punti)

Lab 09 Gestione file di testo

dott. Sabrina Senatore

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Fondamenti di Informatica 2

1: #include <stdio.h> 2: #include <stdlib.h> 3: 4: #define MAXDIM 10 5: 6: int main(int argc, char *argv[]) 7: { 8: int numrighe1, numcolonne1,

Fondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 2A di Giovedì 26 Gennaio 2017 tempo a disposizione 2h

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

Esercizio 1. Esercizio 1 - Soluzione

NOTA SULLA CORREZIONE: Per ottenere un esito positivo è necessario svolgere un elaborato sufficiente in entrambe le parti.

Lab 04 Istruzioni, cicli e array"

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

Esercizio 1 Soluzione

Informatica B

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore.

Fondamenti di Informatica - Compito A

Lab 9 Strutture e programmi su più file

Esercizio 1 - Soluzione (array)

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

1. realizzare una funzione int estraimulte(file *fmutui, FILE *fpagamenti, Mutuo *dest, int dim)

Corso di Informatica 1 (IN110) Tutorato n. 4

Esercizio 1. float m; //media dei voti int vett_voti[max]; //array che contiene i voti di uno studente

Lab 03 Istruzioni Prima Parte"

ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) Espressioni algebriche. ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) P = {

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i;

Lab 16 Gestione file binari"

ESERCIZIO Grammatiche (1) ESERCIZIO Grammatiche (1) Espressioni algebriche

Corso di Informatica 1 Esercitazione n. 7

Università degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti

Il presente plico contiene 3 esercizi e 2 domande e deve essere debitamente compilato con cognome e nome, e numero di matricola.

Lezione di Laboratorio di Prgrammazione: /04/2019 a.a. 2018/2019 R.Prevete

acquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS

- matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)

Astrazione sui Dati Vettori di variabili

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Ricerca binaria ricorsiva!

Esercizio 1. Esercizio - 1

# include<stdio.h> int main() { // Dichiarazioni int n; int i;

/* Esempio di contenuto del file di testo: */ PaoloBellavista marzo.dat PaolaMello aprile.dat FedericoChesani marzo.dat CarloGiannelli marzo.

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Esercitazione 6. Array

Lab 12 Stringhe e strutture

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top10, sconti

Fondamenti di Informatica 2

Esercizio 1 - Soluzione


Compito A. Compito A Sintesi (main(

Informatica B Allievi Meccanici con cognome da Cl a L Recupero della I prova intermedia 26/02/01 Prof. Elisabetta Di Nitto. Cognome Nome Matricola

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Informatica B Prof. Di Nitto, Morzenti Prova del 18 novembre 2004 Cognome e Nome... Numero Matricola... (in stampatello)

Esercizio 1 Domanda di teoria (13 punti)

INFORMATICA Prof. Cassano

Fondamenti di Informatica e Laboratorio T-AB Prova Pratica - 12 Dicembre 2008 Compito A

Esercizio 1 - Soluzione

int ninv; /* numero di inventario */

1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim)

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

ESERCIZIO: SHIFT ARRAY (1)

Esercitazione 6. Corso di Fondamenti di Informatica

Ingresso ed Uscita in C. Informatica 1 / 15

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista

Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 8 Esercitazione: 11 gennaio 2006 Esercizi su strutture dinamiche

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Transcript:

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO A Si scriva un programma C che permetta di inserire i dati relativi a correntisti di una banca (si supponga per comodità che saranno inseriti al massimo 4 correntisti). Ogni correntista è caratterizzato dai seguenti dati: Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. NumeroConto: intero Importo: float PercentualeInteresse: intero positivo inferiore a 5. Si controlli che l interesse sia compreso tra 0 e 5. NOTA: se questo campo contiene il numero intero 2, significa che l interesse è del 2%. Tali dati vanno inseriti in un array di strutture struct cliente. Ogni struttura contiene questi quattro campi. Letto da tastiera un numero di conto corrente, il programma deve stampare a video il nuovo importo a fine anno del conto corrente corrispondente al numero inserito, calcolato come il vecchio importo più l interesse maturato. A tal fine si usi una funzione che prenda il numero di conto corrente letto da utente, l array di strutture e fornisca in uscita il nuovo importo float nuovoimporto(int numeroconto, struct cliente V[], int Dim); Tale funzione scorren l array V di strutture cliente di dimensione Dim, identifica la cella in cui il campo numeroconto coincide con quello passato alla funzione e calcola il nuovo importo. FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct cliente {char Cognome[21]; int NumeroConto; float Importo; int PercentualeInteresse; ; float nuovoimporto(int numeroconto, struct cliente V[], int Dim) {int i; for (i=0; i<dim; i++) if (V[i].NumeroConto==numeroconto) return (V[i].Importo + V[i].Importo*(V[i].PercentualeInteresse/100.0)); return 0; void main() {int i,n; struct cliente V[4]; {printf("numero di clienti (max. 4) :"); scanf("%d", &n); while ((n<0) (n>4)); for (i=0; i<n; i++) {printf("cognome del cliente #%d : ",i); scanf("%s", V[i].Cognome); printf("numero conto del cliente #%d : ",i); scanf("%d", &V[i].NumeroConto); printf("importo del cliente #%d : ",i); scanf("%f", &V[i].Importo); {printf("percentuale interesse del cliente #%d (0..5) : ",i); scanf("%d", &V[i].PercentualeInteresse); while ((V[i].PercentualeInteresse>5) (V[i].PercentualeInteresse<0)); int conto; printf("numero conto da aggiornare : "); scanf("%d", &conto); float nuovo=nuovoimporto(conto, V, n); if (nuovo) printf("il nuovo importo del conto %d e' %f.", conto, nuovo); else printf("conto non esistente");

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO B Si scriva un programma C che permetta di inserire i dati relativi a correntisti di una banca (si supponga per comodità che saranno inseriti al massimo 5 correntisti). Ogni correntista è caratterizzata dai seguenti dati: Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. NumeroConto: intero Importo: float Tali dati vanno inseriti in un array di strutture struct conto contenente questi campi. Si richieda all utente di inserire una percentuale di interesse come intero positivo minore di 6 (si controlli che tale percentuale sia compresa tra 0 e 6). NOTA: se l intero positivo inserito è ad esempio 3, ciò significa che la percentuale di interesse è del 3%. Il programma deve modificare l importo di tutti i conti correnti nell array calcolan il nuovo importo come il vecchio importo più l interesse maturato. A tal fine si usi una procedura: void aggiornaimporti(int percentuale, struct conto V[], int Dim); Tale procedura, per ogni cella dell array V di dimensione Dim di strutture conto, calcola il nuovo importo calcolato come vecchio importo più l interesse e aggiorna l array di conseguenza. FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct conto {char Cognome[21]; int NumeroConto; float Importo; ; void aggiornaimporti(int percentuale, struct conto V[], int Dim) {int i; for (i=0; i<dim; i++) V[i].Importo=V[i].Importo + V[i].Importo*(percentuale/100.0); void main() {int i,n; struct conto V[5]; {printf("numero di clienti (max. 5) :"); scanf("%d", &n); while ((n<0) (n>5)); for (i=0; i<n; i++) {printf("cognome del cliente #%d : ",i); scanf("%s", V[i].Cognome); printf("numero conto del cliente #%d : ",i); scanf("%d", &V[i].NumeroConto); printf("importo del cliente #%d : ",i); scanf("%f", &V[i].Importo); int interesse; {printf("inserire l'interesse (0..6) : "); scanf("%d", &interesse); while ((interesse>6) (interesse<0)); aggiornaimporti(interesse, V, n); for (i=0; i<n; i++) printf("utente %s\tconto %d\timporto %f\n", V[i].Cognome, V[i].NumeroConto, V[i].Importo);

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO C Si scriva un programma C che permetta di inserire i dati relativi a correntisti di una banca (si supponga per comodità che saranno inseriti al massimo 4 correntisti). Ogni persona è caratterizzata dai seguenti dati: Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. NumeroConto: intero Importo: float PercentualeInteresse: intero positivo inferiore a 10. Si controlli che l interesse sia compreso tra 0 e 10. NOTA: se questo campo contiene il numero intero 4, significa che l interesse è del 4%. Tali dati vanno inseriti in un array di strutture struct conto contenente questi campi. Dopo la lettura dei dati, il programma deve aggiornare ogni cella dell array calcolan il nuovo importo da inserire come somma tra l importo presente e l interesse maturato A tal fine si usi una procedura void calcolointeressi(struct conto V[], int Dim); Tale procedura, per ogni cella dell array V di strutture cliente, calcola il nuovo importo calcolato come vecchio importo più l interesse maturato e aggiorna l array. FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct conto {char Cognome[21]; int NumeroConto; float Importo; int PercentualeInteresse; ; void calcolointeressi(struct conto V[], int Dim) {int i; for (i=0; i<dim; i++) V[i].Importo+=V[i].Importo*(V[i].PercentualeInteresse/100.0); void main() {int i,n; struct conto V[4]; {printf("numero di clienti (max. 4) :"); scanf("%d", &n); while ((n<0) (n>4)); for (i=0; i<n; i++) {printf("cognome del cliente #%d : ",i); scanf("%s", V[i].Cognome); printf("numero conto del cliente #%d : ",i); scanf("%d", &V[i].NumeroConto); printf("importo del cliente #%d : ",i); scanf("%f", &V[i].Importo); {printf("percentuale interesse del cliente #%d (0..10) : ",i); scanf("%d", &V[i].PercentualeInteresse); while ((V[i].PercentualeInteresse>10) (V[i].PercentualeInteresse<0)); calcolointeressi(v, n); for (i=0; i<n; i++) printf("utente %s\tconto %d\timporto %f\n", V[i].Cognome, V[i].NumeroConto, V[i].Importo);

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO D Si scriva un programma C che permetta di inserire i dati relativi a correntisti di una banca (si supponga per comodità che saranno inseriti esattamente 3 correntisti). Ogni correntista è caratterizzata dai seguenti dati: Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. NumeroConto: intero Importo: float PercentualeInteresse: intero positivo inferiore a 7. Si controlli che l interesse sia compreso tra 0 e 7. NOTA: se questo campo contiene il numero intero 2, significa che l interesse è del 2%. Tali dati vanno inseriti in un array di strutture struct correntista contenente questi campi. Dopo la lettura dei dati, il programma deve aggiornare ogni cella dell array con un nuovo importo calcolato come somma tra il vecchio importo e l interesse maturato. A tal fine si usi una funzione float nuovoimportocliente(struct correntista V); Tale funzione prende una singola struttura correntista calcola il nuovo importo e lo fornisce in uscita FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct correntista {char Cognome[21]; int NumeroConto; float Importo; int PercentualeInteresse; ; float nuovoimportocliente(struct correntista V) {return V.Importo + V.Importo*(V.PercentualeInteresse/100.0); void main() {int i; struct correntista V[3]; for (i=0; i<3; i++) {printf("cognome del cliente #%d : ",i); scanf("%s", V[i].Cognome); printf("numero conto del cliente #%d : ",i); scanf("%d", &V[i].NumeroConto); printf("importo del cliente #%d : ",i); scanf("%f", &V[i].Importo); {printf("percentuale interesse del cliente #%d (0..7) : ",i); scanf("%d", &V[i].PercentualeInteresse); while ((V[i].PercentualeInteresse>7) (V[i].PercentualeInteresse<0)); for (i=0; i<3; i++) printf("utente %s\tconto %d\timporto %f\n", V[i].Cognome, V[i].NumeroConto, V[i].Importo=nuovoImportoCliente(V[i]));

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO E Si scriva un programma C che permetta di inserire i dati relativi a uno spoglio elettorale. Per ogni candidato (si supponga per comodità che saranno inseriti al massimo 4 candidati) vengono inseriti dall utente i seguenti dati Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. IdentificativoCandidato: intero VotiAnno2001: intero (numero di voti presi su 100 votanti) VotiAnno2004: intero (numero di voti presi su 100 votanti). Si controlli che la differenza tra il numero dei voti dell anno 2004 e il numero del 2001 sia compresa tra -10 e +10. Tali dati vanno inseriti in un array di strutture struct candidato. Ogni struttura contiene questi campi. Il programma, scorren l array, deve stampare a terminale il cognome di ogni candidato e la differenza tra la percentuale di voti della corrente elezione (Anno 2004) e quella del 2001. A tal fine si utilizzi una procedura: void calcolascarto(struct candidato V[], int Dim); Tale procedura, scorren l array V di strutture candidato di dimensione Dim, effettua il conto richiesto e lo stampa. FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct candidato {char Cognome [21]; int IdentificativoCandidato; int VotiAnno2001; int VotiAnno2004; ; void calcolascarto(struct candidato V[],int Dim) {int i; for(i=0;i<dim;i++) printf("candidato %s\tdifferenza %d\n",v[i].cognome,v[i]. VotiAnno2004-V[i].VotiAnno2001); void main() {struct candidato V[4]; int i,n; {printf("numero di candidati (max. 4): "); scanf("%d",&n); while((n>4) (n<0)); for(i=0;i<n;i++) {printf("cognome del candidato #%d : ",i); scanf("%s",v[i].cognome); printf("identificativo del candidato #%d : ",i); scanf("%d",&v[i].identificativocandidato); {printf("voti anno 2001 del candidato #%d (max. 100) : ",i); scanf("%d",&v[i].votianno2001); while ((V[i].VotiAnno2001<0) (V[i].VotiAnno2001>100)); {printf("voti anno 2004 del candidato #%d (max.100) : ",i); scanf("%d",&v[i].votianno2004); while ((V[i].VotiAnno2004<0) (V[i].VotiAnno2004>100) (V[i].VotiAnno2004>V[i].VotiAnno2001+10) (V[i].VotiAnno2004<V[i].VotiAnno2001-10)); calcolascarto(v,n);

PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO F Si scriva un programma C che permetta di inserire i dati relativi a uno spoglio elettorale. Per ogni candidato (si supponga per comodità che saranno inseriti al massimo 6 candidati) vengono inseriti dall utente i seguenti dati Cognome: una stringa di lunghezza massima di 20 caratteri, non contenente spazi. IdentificativoCandidato: intero VotiAnno2001: intero (numero di voti presi su 100 votanti) Previsione2004: intero (scarto rispetto al 2001). Si controlli che questo numero, che rappresenta una percentuale, sia compreso tra -20 e +20. Esempio: se la previsione è -10 mi aspetto che questo candidato perda il 10% dei voti nel 2004, mentre se la previsione è +10 mi aspetto un incremento del 10% dei voti. Tali dati vanno inseriti in un array di strutture struct candidato. Ogni struttura contiene questi campi. Il programma, scorren l array, deve stampare a terminale il cognome di ogni candidato e il relativo numero di voti attesi nell Anno 2004. A tal fine si utilizzi una procedura, void stampaattesi(struct candidato V[], int Dim); Tale procedura, scorren l array V di strutture candidato di dimensione Dim, effettua il conto richiesto e lo stampa. FACOLTATIVO: Si organizzi il progetto su più file in mo da separare il main dalle funzioni e si crei il corrispondente file header. NOTA: Si consegnino in questo caso TUTTI i FILE.c e il.h

#include <stdio.h> struct candidato {char Cognome [21]; int IdentificativoCandidato; int VotiAnno2001; int Previsione2004; ; void stampaattesi(struct candidato V[],int Dim) {int i; for(i=0;i<dim;i++) printf("candidato %s\tprevisione %f\n",v[i].cognome, V[i].VotiAnno2001+V[i].VotiAnno2001*(V[i].Previsione2004/100.0)); void main() {struct candidato V[6]; int i,n; {printf("numero di candidati (max. 6): "); scanf("%d",&n); while((n>6) (n<0)); for(i=0;i<n;i++) {printf("cognome del candidato #%d : ",i); scanf("%s",v[i].cognome); printf("identificativo del candidato #%d : ",i); scanf("%d",&v[i].identificativocandidato); {printf("voti anno 2001 del candidato #%d (max. 100) : ",i); scanf("%d",&v[i].votianno2001); while ((V[i].VotiAnno2001<0) (V[i].VotiAnno2001>100)); {printf("voti anno 2004 del candidato #%d (max.100) : ",i); scanf("%d",&v[i].previsione2004); while ((V[i].Previsione2004<-20) (V[i].Previsione2004>20)); stampaattesi(v,n);