#include<stdlib.h> #include<stdio.h> #include<string.h> typedef char mese[20]; typedef struct { int giorno; mese month; int anno; } data;

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "#include<stdlib.h> #include<stdio.h> #include<string.h> typedef char mese[20]; typedef struct { int giorno; mese month; int anno; } data;"

Transcript

1 /* Inserire una data in formato dd/mm/yyyy e stampare la date da quella inserita all ultima del mese, sostituendo al mese numerico il nome. In: 11/05/1982 Out: 11 Maggio Maggio Maggio 1982 Usate struct ed Array... */ #include<stdlib.h> #include<stdio.h> #include<string.h> typedef char mese[20]; typedef struct int giorno; mese month; int anno; data; int main() // L'array contiene il nome dei mesi. Posso accedere al mese giusto // ricordandomi che il mese è memorizzato nella cella n-1. Esempio: Giugno, // mese 6, è in mesi[5]. mese mesi[12] = "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio","Giugno", "Luglio","Agosto","Settembre", "Ottobre","Novembre", "Dicembre"; int i, currm, currmonthdays; data input; printf("inserire la data (formato dd/mm/yyyy): "); scanf("%2d/%2d/%4d", &input.giorno, &currm, &input.anno); fflush(stdin); // CASO 30 gg if(currm == 4 currm == 6 currm == 9 currm == 11) currmonthdays = 30; // CASO 31 gg if(currm!= 2) currmonthdays = 31; // CASO FEBBRAIO ANNO BISESTILE if((input.anno % 4 == 0 && input.anno % 100!= 0) input.anno % 400 == 0) currmonthdays = 29; // CASO FEBBRAIO NON BISESTILE currmonthdays = 28; strcpy(input.month, mesi[currm-1]); printf("\n\ndata immessa: \n\tgiorno: %d\n\tmese: %s\n\tanno: %d\n\n", input.giorno, input.month, input.anno); for (i = input.giorno; i <= currmonthdays; i++) printf("%2d %s %4d\n", i, input.month, input.anno); system("pause");

2 /* Date in ingresso due frasi, dire se una è anagramma dell'altra */ #include <stdio.h> #include <string.h> #define MAX 100 #define ALPHABET_LEN 26 int main() /* Dichiarazioni... */ // le frasi sono contenute in stringhe, cioè array di char char frase[max], anagramma[max]; // gli istogrammi delle lettere saranno contenuti in array di int int f1[alphabet_len]; int f2[alphabet_len]; int i, j, giusto, biggest_string_length; //... fine dichiarazioni. // Input delle frasi da confrontare printf("inserisci una frase (usare solo lettere minuscole): "); gets(frase);fflush(stdin); printf("inserisci un anagramma (usare solo lettere minuscole):"); gets(anagramma);fflush(stdin); biggest_string_length = (strlen(frase) > strlen(anagramma))? strlen(frase) : strlen(anagramma); printf("lunghezza frase: %d\nlunghezza anagramma: %d\nmassimo: %d\n", strlen(frase), strlen(anagramma),biggest_string_length); // Inizializziamo le occorrenze... for(i = 0; i < ALPHABET_LEN; i++) f1[i] = 0; f2[i] = 0; // a zero. i = 0; while (i < biggest_string_length && i < MAX) if(i < strlen(frase) && (frase[i] >= 'A' && frase[i] <= 'Z' frase[i] >= 'a' && frase[i] <= 'z')) if(frase[i] >= 'a') f1[frase[i] - 'A' - 32]++; f1[frase[i] - 'A']++; if(i < strlen(anagramma) && (anagramma[i] >= 'A' && anagramma[i] <= 'Z' anagramma[i] >= 'a' && anagramma[i] <= 'z')) if(anagramma[i] >= 'a') f2[anagramma[i] - 'A' - 32]++; f2[anagramma[i] - 'A']++; // confronta che gli istogrammi siano uguali

3 giusto = 1; for( i = 0; i < ALPHABET_LEN ; i++) if(f1[i]!= f2[i]) giusto = 0; // Stampiamo il risultato if (giusto) printf("e' un anagramma valido!\n"); printf("non e' un anagramma valido!\n"); // Stampiamo l'istogramma printf("\tfrase\t\tistogramma\n"); for(i = 0; i < ALPHABET_LEN ; i++) if(f1[i] == 0 && f2[i] == 0) continue; printf("%c\t", 65+i); for(j = 0; j < f1[i]; j++) printf("*"); printf("\t\t"); for(j = 0; j < f2[i]; j++) printf("*"); printf("\n"); system("pause");

4 /* Inserire dati di studenti (nome, cognome, matricola) e ordinare gli studenti AL MOMENTO DELL INSERIMENTO per MATRICOLA e... Se volessimo ordinare per cognome? --> L'ho fatto... guardatelo! */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STR 20 #define MAX_NUM_EL 50 typedef char stringa[max_str]; typedef struct int matricola; stringa nome; stringa cognome; studente; int main() studente a[max_num_el]; studente tmp; int i, j, min; int numel = 0; char action = 'y'; int ordinapercognome = 0; printf("ordinare per cognome? [0 = No]: "); scanf("%d", &ordinapercognome);fflush(stdin); while (action == 'y') if(numel < MAX_NUM_EL) /* Acquisizione dei dati di ogni studente */ printf("inserisci le informazioni di uno studente\n"); printf("nome: "); scanf("%s", tmp.nome);fflush(stdin); printf("cognome: "); scanf("%s", tmp.cognome);fflush(stdin); printf("matricola: "); scanf("%6d", &tmp.matricola);fflush(stdin); printf("\ndati acquisiti.\n"); /* se l'array e` vuoto si effettua l'inserimento direttamente */ if (numel == 0) a[0] = tmp; /* cerco la posizione di inserimento */ i = 0; // Controllo se ho scelto di ordinare per cognome... // se ordinapercognome == 0 --> Ordino per matricola if(!ordinapercognome) while(i < numel && a[i].matricola < tmp.matricola) // Qui invece faccio l', cioè se ordino per cognome

5 tmp.nome) > 0) while(i < numel && strcmp(a[i].cognome, tmp.cognome) <= 0) // Se i cognomi coincidono... guardo il nome! if(strcmp(a[i].cognome, tmp.cognome) == 0 && strcmp(a[i].nome, // ATTENZIONE! Sia che io ordini per cognome che per cognome che // per matricola l'inserimento è lo stesso!!! /* creo lo spazio per inserire l'elemento */ j = numel; while (j > i) a[j] = a[j-1]; j--; /* inserisco l'elemento nella posizione corretta */ a[i] = tmp; numel++; printf("\nlista piena...\n\n"); /* stampo i numeri di matricola a scopo di test */ printf("------\nlista studenti:\n"); printf("%20s%20s%20s\n", "COGNOME", "NOME", "MATRICOLA"); puts(" "); for(i = 0; i < numel ; i++) printf("%20s%20s%20d\n", a[i].cognome, a[i].nome, a[i].matricola); puts("============================================================"); printf("proseguire? [y/n]: "); scanf("%c", &action);

6 /* */ Partire dal precedente esercizio, ma ora si vuole anche inserire il voto della prima prova in itinere e della seconda. Il voto medio tra le due prove deve essere calcolato dal programma stesso. Si vuole poter inserire un nuovo studente, modificare gli studenti presenti nel database e offrire diverse visualizzazioni, con ordini diversi (cognome, matricolola e voto medio). #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_STR 20 #define MAX_NUM_EL 50 typedef char stringa[max_str]; typedef float voti[3]; typedef struct int matricola; stringa nome; stringa cognome; voti ris_esami; studente; int main() studente a[max_num_el], view[max_num_el]; // Matrice che uso per la view... studente tmp; int i, j, min, k; int index; int numel = 0; char com = 'a', sub_com = 'a', exit = 'a'; // Ok, l'utente scelga cosa fare puts("**********************"); puts("benvenuto nel database studenti!"); puts("**********************"); while(!( (com == 'q' com == 'Q') && (exit == 'Y' exit == 'y') ) ) printf("operazioni disponibili:\n\t%20s: n\n\t%20s: e\n\t%20s: v\n\t%20s: q\n", "Insert new record", "Edit existing record", "View database", "Exit"); printf("operazione scelta: "); scanf("%c", &com); fflush(stdin); numel); switch (com) // NEW - Caso per inserire un nuovo record nel DB. case 'n' : if(numel < MAX_NUM_EL) /* Acquisizione dei dati di ogni studente */ puts("*** INSERIMENTO NUOVO RECORD"); printf("\t! Spazio disponibile: %3d record\n\n", MAX_NUM_EL - printf("inserisci le informazioni di uno studente\n"); printf("nome: "); scanf("%s", tmp.nome);fflush(stdin); printf("cognome: "); scanf("%s", tmp.cognome);fflush(stdin); printf("matricola: "); scanf("%6d", &tmp.matricola);fflush(stdin); printf("voto prova 1: "); scanf("%f", &tmp.ris_esami[0]);fflush(stdin); printf("voto prova 2: ");

7 scanf("%f", &tmp.ris_esami[1]);fflush(stdin); tmp.ris_esami[2] = (tmp.ris_esami[0] + tmp.ris_esami[1]) / 2; printf("\ndati acquisiti.\n"); /* se l'array e` vuoto si effettua l'inserimento direttamente */ if (numel == 0) a[0] = tmp; /* cerco la posizione di inserimento */ i = 0; while(i < numel && a[i].matricola < tmp.matricola) /* creo lo spazio per inserire l'elemento */ j = numel; while (j > i) a[j] = a[j-1]; j--; /* inserisco l'elemento nella posizione corretta */ a[i] = tmp; numel++; printf("\nlista piena...\n\n"); /* stampo i numeri di matricola a scopo di test */ printf("dati inseriti. La lista ora contiene %3d record\n", numel); printf("*** Lista studenti:\n"); puts(" "); printf("%5s%15s%12s%10s%10s%10s%10s\n", "INDEX", "COGNOME", "NOME", "MATRICOLA","VOTO 1","VOTO 2"," FINALE"); puts(" "); for(i = 0; i < numel ; i++) printf("%4d)%15s%12s%10d%10.3f%10.3f%10.3f\n", i+1, a[i].cognome, a[i].nome, a[i].matricola, a[i].ris_esami[0], a[i].ris_esami[1], a[i].ris_esami[2]); puts("=======================================================================\n\n"); // EDIT - Codice per modificare un'entry. case 'e' : /* stampo i numeri di matricola a scopo di test */ printf("*** Lista studenti:\n"); puts(" "); printf("%5s%15s%12s%10s%10s%10s%10s\n", "INDEX", "COGNOME", "NOME", "MATRICOLA","VOTO 1","VOTO 2"," FINALE"); puts(" "); for(i = 0; i < numel ; i++) printf("%4d)%15s%12s%10d%10.3f%10.3f%10.3f\n", i+1, a[i].cognome, a[i].nome, a[i].matricola, a[i].ris_esami[0], a[i].ris_esami[1], a[i].ris_esami[2]); puts("=======================================================================\n\n");

8 do // Controllo che l'indice esista... printf("indice da modificare: "); scanf("%d", &index); fflush(stdin); while(index < 1 index > numel); do puts("campo da modificare: "); puts("\tn ---> nome"); puts("\tc ---> cognome"); puts("\tm ---> matricola"); puts("\t1 ---> voto prima prova"); puts("\t2 ---> voto seconda prova"); puts("\tq ---> esci modalità modifica"); printf("scelta effettuata: "); scanf("%c", &sub_com); fflush(stdin); switch(sub_com) case 'n': printf("inserire nuovo nome: "); scanf("%s", &(a[index-1].nome)); fflush(stdin); case 'c': printf("inserire nuovo cognome: "); scanf("%s", &(a[index-1].cognome)); fflush(stdin); 1].matricola) case 'm': printf("inserire nuova matricola: "); scanf("%6d", &(a[index-1].matricola)); fflush(stdin); /* cerco la posizione di inserimento */ i = (index == 1)? 1 : 0; while(i < numel && a[i].matricola < a[index- i = (i == index-2)? i+2 : i+1; tmp = a[index-1]; j = index-1; if(i < index-1) /* creo lo spazio per inserire l'elemento */ while (j > i) a[j] = a[j-1]; j--; /* inserisco l'elemento nella posizione corretta */ a[i] = tmp; index = i + 1; if(i > index-1) while (j < i -1) a[j] = a[j+1]; j++; /* inserisco l'elemento nella posizione corretta */ a[i-1] = tmp; index = i;

9 puts("campo modificato e ordine aggiornato."); case '1': printf("inserire nuovo voto prima prova: "); scanf("%f", &(a[index-1].ris_esami[0])); fflush(stdin); a[index-1].ris_esami[2] = (a[index-1].ris_esami[0] + a[index-1].ris_esami[1]) / 2; puts("campo modificato e media aggiornata"); case '2': printf("inserire nuovo voto seconda prova: "); scanf("%f", &(a[index-1].ris_esami[1])); fflush(stdin); a[index-1].ris_esami[2] = (a[index-1].ris_esami[0] + a[index-1].ris_esami[1]) / 2; puts("campo modificato e media aggiornata"); view[i].cognome) >= 0) case 'q': default: printf("comando sconosciuto."); while(sub_com!= 'q' && sub_com!= 'Q'); case 'v' : do puts("criterio di ordinamento: "); puts("\tc ---> cognome"); puts("\tm ---> matricola"); puts("\tv ---> voto medio"); puts("\tq ---> esci modalità visualizza"); printf("scelta effettuata: "); scanf("%c", &sub_com); fflush(stdin); if(sub_com!= 'q') view[0] = a[0]; for(k = 1; k < numel ; k++) i = 0; switch (sub_com) case 'c': while(i < k && strcmp(a[k].cognome, if(strcmp(a[k].cognome,view[i].cognome) == 0 && strcmp(a[k].nome, view[i].nome) < 0) case 'm': view[k] = a[k]; view[i].ris_esami[2]) case 'v': while(i < k && a[k].ris_esami[2] >

10 // Fine switch matricola.. basta copiarla... /* creo lo spazio per inserire l'elemento */ if(sub_com!= 'm') // La matrice a è già ordinata per j = k; while (j > i) view[j] = view[j-1]; j--; /* inserisco l'elemento nella posizione corretta */ view[i] = a[k]; // Fine for // Fine IF // Visualizziamo! /* stampo i numeri di matricola a scopo di test */ printf("*** Lista studenti:\n"); puts(" "); printf("%5s%15s%12s%10s%10s%10s%10s\n", "INDEX", "COGNOME", "NOME", "MATRICOLA","VOTO 1","VOTO 2"," FINALE"); puts(" "); for(i = 0; i < numel ; i++) printf("%4d)%15s%12s%10d%10.3f%10.3f%10.3f\n", i+1, view[i].cognome, view[i].nome, view[i].matricola, view[i].ris_esami[0], view[i].ris_esami[1], view[i].ris_esami[2]); puts("=======================================================================\n\n"); while(sub_com!= 'q'); case 'q' : // Codice per uscire dal programma... printf("sicuro di voler uscire? [y/n]: "); scanf("%c", &exit); fflush(stdin); default :

Corso di Informatica B - Sezione D

Corso di Informatica B - Sezione D Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Corso di Informatica B - Sezione D Esercitazioni Linguaggio C Informatica B - Esercitazione 4 del 26/10/2012

Dettagli

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

# include<stdio.h> int main() { // Dichiarazioni int n; int i; /* CALCOLIAMO I DIVISORI DI UN NUMERO. INSERIAMO UN CONTROLLO CHE IL NUMERO SIA EFFETTIVAMENTE POSITIVO UTILIZZIAMO IL DO...WHILE PER SEMPLIFICARE IL CODICE # include int main() // Dichiarazioni

Dettagli

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len; /* Date in ingresso una frase, dire se una è palindroma */ #include #define MAX 100 int main() /*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i,

Dettagli

Esercizio 1: calcolo insieme intersezione

Esercizio 1: calcolo insieme intersezione Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************

Dettagli

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

Linguaggio C - Array. Array: tipo nome_array[num_elementi] Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

dott. Sabrina Senatore

dott. Sabrina Senatore dott. Sabrina Senatore Dipartimento di Informatica Riepilogo strutture 1 Sintassi della dichiarazione: typedef struct nome_tipo { Dichiarazione dei campi nome_tipo; typedef struct point{ int x; int y;

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Informatica 2 modulo C Massimo Callisto De Donato

Informatica 2 modulo C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Informatica B

Informatica B Informatica B 2016-2017 Esercitazione 8 Array e Stringhe Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1: stringhe - vocali consecutive Scrivere un programma che data

Dettagli

Tutorato Programmazione 1 Modulo 2

Tutorato Programmazione 1 Modulo 2 Tutorato Programmazione 1 Modulo 2 Matrici e Stringhe Do#. Michele Ciampi Esercizi svol5 con standard C99 Matrici Prendere in input una matrice NxN (controllare che N

Dettagli

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

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

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

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Stampa di voti Esempio 1 (switch) Realizzare un programma che legge da input un voto (carattere tra A ed E ) e ne

Dettagli

Corso di Informatica B - Sezione D. Esercitazioni Linguaggio C

Corso di Informatica B - Sezione D. Esercitazioni Linguaggio C Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Corso di Informatica B - Sezione D Esercitazioni Linguaggio C Esercitazione del 2012-10-11 Davide Chicco davide.chicco@elet.polimi.it

Dettagli

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

acquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 20 ottobre 2004 Esercizi su array e applicazione delle regole di conversione di tipo Esercizi presenti:

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Esercizio 1. Esercizio 1 - Soluzione

Esercizio 1. Esercizio 1 - Soluzione Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e

Dettagli

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float

Dettagli

Tutorato Programmazione 1 Modulo 2

Tutorato Programmazione 1 Modulo 2 Tutorato Programmazione 1 Modulo 2 Lezione 1 Do#. Michele Ciampi Esercizio 1 pagina 122 Esercizio 1 pagina 122 (Loops) Scrivere un programma che trova il più grande valore inserito dall utente. L utente

Dettagli

1 (4) 2 (4) 3 (12) 4 (6) 5 (6)

1 (4) 2 (4) 3 (12) 4 (6) 5 (6) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2016-2017 Proff. Danilo ARDAGNA Prima Prova in Itinere 4.5.2017 Cognome Nome Matricola Firma Durata: 2h Valutazioni

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

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

Dettagli

Record in C: il costruttore struct.

Record in C: il costruttore struct. Record in C: il costruttore struct. Le variabili di tipo record e i nuovi tipi record si dichiarano in C tramite il costruttore di tipo struct:. ::= ;

Dettagli

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

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 30 giugno 04 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve

Dettagli

Esercizio 1: Puntatori impiegati che sono manager

Esercizio 1: Puntatori impiegati che sono manager Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si

Dettagli

Ricerca binaria ricorsiva!

Ricerca binaria ricorsiva! ESERCIZIO: RICERCA BINARIA! Soluzione Iterativa! int ricerca_bin (int vet[], int el) {int first=0, last=n-1, med=(first+last)/2; int T=0; while ((first

Dettagli

Istruzioni decisionali

Istruzioni decisionali Istruzioni decionali 1. if 2. if-else 3. switch 115 switch Struttura di scelta plurima che controlla se una espresone assume un valore all interno di un certo ineme di costanti e comporta di conseguenza

Dettagli

Introduzione al C. Esercitazione 8. Domenico Daniele Bloisi Raffaele Nicolussi. Corso di Laboratorio di Informatica Ingegneria Clinica

Introduzione al C. Esercitazione 8. Domenico Daniele Bloisi Raffaele Nicolussi. Corso di Laboratorio di Informatica Ingegneria Clinica Introduzione al C Corso di Laboratorio di Informatica Ingegneria Clinica Esercitazione 8 Domenico Daniele Bloisi Raffaele Nicolussi Menu di oggi Matrici Funzioni Stringhe Introduzione al C Esercitazione

Dettagli

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

Università degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Linguaggio C 1! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Oggetti dello stesso tipo Identificazione univoca degli oggetti! Il tipo più semplice ha una sola

Dettagli

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori -

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori - ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1 Sviluppare un programma che acquisisce dall utente al massimo 50 numeri

Dettagli

Linguaggio C. Esercizio 1

Linguaggio C. Esercizio 1 Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:didimo@dia.uniroma3.it) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili

Dettagli

Esercizio 1. Esercizio 1 - Soluzione

Esercizio 1. Esercizio 1 - Soluzione Esercizio 1 Progettare e Codificare in C un programma che permetta di Chiedere all utente quanti numeri vuole inserire Leggere i numeri inseriti dall utente e calcolare la somma dei fattoriali Esempio:

Dettagli

Esercizio 1 - Soluzione

Esercizio 1 - Soluzione Esercizio 1 Realizzare un programma che provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e le ripeta su standard output (servizio di echo ). Il programma deve

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono

Dettagli

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione Sequenze di cifre Esercizio 1 - cicli Realizzare un programma che prende in input una sequenza di cifre (tra 1 e 9) e calcola la somma massima fra le sotto- sequenze di cifre non decrescente Il programma

Dettagli

Il linguaggio C Puntatori

Il linguaggio C Puntatori Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi

Dettagli

Esempi di funzioni. Media tra tre numeri

Esempi di funzioni. Media tra tre numeri Esempi di funzioni 1 Media tra tre numeri int media(int a, int b, int c); int x,y,z,med; printf("inserisci il primo numero: "); scanf("%d",&x); printf("inserisci il secondo numero: "); scanf("%d",&y);

Dettagli

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:

Dettagli

Esercizio 1 - Soluzione

Esercizio 1 - Soluzione ESERCIZIO 1 Scrivere una funzione che data una stringa A calcoli la sua lunghezza. int lunghezza(char A[]); Scrivere una funzione che date due stringhe A e B copi il contenuto di A in B e restituisca il

Dettagli

Linguaggio C. Aggregati di dati

Linguaggio C. Aggregati di dati Linguaggio C Aggregati di dati Limiti delle variabili semplici Come elaborare e salvare grandi quantità di dati? Ad esempio, un sensore invia un dato ogni intervallo di tempo, la sequenza va poi conservata

Dettagli

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

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore. Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei vettori (ingl., array). La dichiarazione di un vettore di elementi omogenei in C avviene grazie

Dettagli

È dato un file di testo PEOPLE.TXT che più di 20), una persona per riga

È dato un file di testo PEOPLE.TXT che più di 20), una persona per riga Esercizio i 1: Strutture tt e file Esercizio - lettura/filtro/scrittura È dato un file di testo PEOPLE.TXT che contiene i dati di una serie di persone (non più di 20), una persona per riga Si vuole realizzare

Dettagli

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

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return

Dettagli

Input / Output, Espressioni Condizionali e Cicli

Input / Output, Espressioni Condizionali e Cicli LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Laboratorio di informatica LA Corso di laurea in Ingegneria Informatica - Anno Accademico 2007-2008 Input / Output, Espressioni Condizionali e

Dettagli

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli

Corso di Informatica 1 Esercitazione n. 4

Corso di Informatica 1 Esercitazione n. 4 Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli

Dettagli

Esercizi. Stringhe. Stringhe Ricerca binaria

Esercizi. Stringhe. Stringhe Ricerca binaria Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)

Dettagli

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame B COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Funzioni standard del C: Funzioni di I/O Allocazione dinamica della memoria Funzioni su stringhe di caratteri Testo di riferimento B.W. Kernighan & D.M. Ritchie

Dettagli

1. Esercizio tipo per prova pratica

1. Esercizio tipo per prova pratica 1. Esercizio tipo per prova pratica Testo: Si realizzi un programma nel linguaggio C che, data una sequenza di 10 interi da standard input, facendo uso di una funzione di nome media1, stampi tutti i valori

Dettagli

STRUTTURE DI CONTROLLO E TIPI SEMPLICI...4

STRUTTURE DI CONTROLLO E TIPI SEMPLICI...4 Esercizi di Informatica A cura di Massimiliano Colombo ed Elisabetta Di Nitto (Vi preghiamo di segnalarci ogni errore che vi capitasse di trovare.) Indice 1. STRUTTURE DI CONTROLLO E TIPI SEMPLICI...4

Dettagli

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

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

- Dispensa III - PROGRAMMAZIONE C (Parte I)

- Dispensa III - PROGRAMMAZIONE C (Parte I) Elementi di Informatica e Programmazione - Dispensa III - PROGRAMMAZIONE C (Parte I) Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Linguaggi di Programmazione

Dettagli

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli - ESERCIZI DI PROGRAMMAZIONE - condizionali e cicli - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1: dal tema d esame ING-INF del 28 gennaio 2009 Si sviluppi un programma in

Dettagli

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case

Dettagli

sum = 0; positivenumbers = 0; /* Passo 1 */ printf("introduci i numeri (0 per finire): "); scanf("%d", &number);

sum = 0; positivenumbers = 0; /* Passo 1 */ printf(introduci i numeri (0 per finire): ); scanf(%d, &number); / Questo programma legge numeri interi, positivi e negativi, finche' l'utente non digita il valore 0 (valore di terminazione). Quando l'utente ha finito di immettere gli interi, il programma stampa la

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

int, char, float.. int, char, float.. enum - enum{nome1, nome2,, nomen}; 0 N-1 enum{falso, vero}; falso=0 falso vero=1 vero enum{quardi,cuori,fiori,spade}; enum{biondi,neri,castani,rossi,bianchi}; enum

Dettagli

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

Esercizio 1: calcolo del massimo di una sequenza (versione 1) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 2 Esercitazione: 12 ottobre 2005 Primi esercizi in C Esercizio 1: calcolo del massimo di una sequenza (versione 1) Si legga

Dettagli

1 (4) 2 (4) 3 (7) 4 (5) 5 (5) 6 (7)

1 (4) 2 (4) 3 (7) 4 (5) 5 (5) 6 (7) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2014-2015 Proff. Danilo ARDAGNA, Antonio MIELE Prima Prova in Itinere 4.5.2016 Cognome Nome Matricola Firma

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Esercizio 1. Esercizio - 1

Esercizio 1. Esercizio - 1 Sia data la struttura Esercizio 1 struct time { int hour, minute, second; ; Per semplicità si può definire il tipo Time typedef struct time Time; 1 Esercizio - 1 Si realizzi in un modulo tempo.h/tempo.c

Dettagli

Rappresentazione di dati

Rappresentazione di dati Rappresentazione di dati oggetti del mondo reale: - caratteristiche - caratteristiche obiettivo della rappresentazione analisi e progettazione strutture dati teoriche (ADT) - domini ( ) - dominio di interesse

Dettagli

main() { int i; int a[10]={1,2,3,4,5,6,7,8,9,10}; /* inizializzazione in fase di definizione */ int b[10];

main() { int i; int a[10]={1,2,3,4,5,6,7,8,9,10}; /* inizializzazione in fase di definizione */ int b[10]; ESERCIZI ARRAY 1. Scrivere un programma che inizializza un vettore monodimensionale di interi e poi copia il vettore in un altro vettore della stessa dimensione. 2. In una gara il punteggio di ciascun

Dettagli

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame A COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene

Dettagli

Puntatori a Funzioni e Callback. Massimo Benerecetti

Puntatori a Funzioni e Callback. Massimo Benerecetti Puntatori a Funzioni e Callback Massimo Benerecetti Puntatori a Funzione Un «puntatore a funzione» è un puntatore che punta all indirizzo di memoria in cui è contenuto il codice eseguibile di una funzione.

Dettagli

int ninv; /* numero di inventario */

int ninv; /* numero di inventario */ 1) Scrivere il programma C che legga da un file di testo ("dati.dat") i record con dati relativi ad un archivio di dischi (utilizzando la struttura data) e scriva il file dati1.dat con i nomi degli artisti

Dettagli

(*lista == NULL (*lista)->info >= elem) accede al campo next di *lista solo se *lista non e' NULL. */ #include <stdio.h> #include <stdlib.

(*lista == NULL (*lista)->info >= elem) accede al campo next di *lista solo se *lista non e' NULL. */ #include <stdio.h> #include <stdlib. /* ATTENZIONE: non accedere mai ai campi di un elemento della lista prima di essersi accertati che tale elemento sia diverso da NULL; Si osservi che la condizione booleana (*lista == NULL (*lista)->info

Dettagli

Fondamenti di Informatica L-A

Fondamenti di Informatica L-A Fondamenti di Informatica L-A Esercitazione del 30/10/07 Ing. Giorgio Villani Ripasso Teoria Ciclo do while do {istruzioni while(espressione); int i; do { printf( Scegli un numero tra 1 e 3 ); scanf( %d,

Dettagli

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h> Ricerca di un elemento in vettore Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall utente,

Dettagli

Programmi su più moduli - Esempio

Programmi su più moduli - Esempio Programmi su più moduli - Esempio Calcolo del logaritmo in base qualunque Incapsulare la logica di calcolo in una funzione PASSO 1: definisco la dichiarazione della funzione (nome, parametri di input e

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4

Dettagli

Corso di Informatica 1 (IN1) Tutorato n. 11

Corso di Informatica 1 (IN1) Tutorato n. 11 Corso di Informatica 1 (IN1) Tutorato n. 11 Marco Liverani Esercizio n. 1 Leggere in input una lista di numeri interi ordinati in ordine crescente. Dopo aver letto la sequenza, inserire nella posizione

Dettagli

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME 13 novembre 2006 RIGA COLONNA MATRICOLA Il presente plico pinzato, composto di sei fogli, deve

Dettagli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Esercizio 1 (valutazione in cortocircuito) int main() int a=5, b=5, c=5; if (a>0 (a=a+1) ) printf( %d, a); if (b>0

Dettagli

Linguaggio C - Strutture

Linguaggio C - Strutture Strutture: Le strutture (talvolta chiamate aggregati), così come gli array, sono tipi di dati derivati. Indicano collezioni di variabili collegate sotto un unico nome. Le strutture possono contenere variabili

Dettagli

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

Dettagli

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice Tipi di array Array Multidimensionali Antonella Santone Monodimensionali (vettore) Multidimensionali Array multidimensionale Un array multidimensionale è un array, i cui elementi sono a loro volta degli

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli (email: {alessandro.saetti,marco.sechi,andrea.bonisoli@unibs.it)

Dettagli

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

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 7 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Programmazione I (Classe 1)

Programmazione I (Classe 1) Programmazione I (Classe 1) Appello 12 CFU 8 Settembre 2017 Docenti: Fuccella - Zizza Cognome: Nome: Matricola: Ritirato Riservato alla commissione d esame 1 2 3 4 5 6 7 8 TOT (/40) Da codice etico Unisa

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

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

Il presente plico contiene 4 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 19 Febbraio 2015 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4 esercizi e

Dettagli

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Fondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 6A di Giovedì 11 Settembre 2014 tempo a disposizione 2h

Fondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 6A di Giovedì 11 Settembre 2014 tempo a disposizione 2h Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di:

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di: Le stringhe di caratteri sono gestite in C come dei vettori di char con alla fine un tappo dato dal carattere \0. E possibile acquisire un intera stringa di caratteri in una sola istruzione grazie all

Dettagli

Istruzioni Condizionali in C

Istruzioni Condizionali in C Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break Istruzioni

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

RICERCA DI UN ELEMENTO

RICERCA DI UN ELEMENTO RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Lezione 6: Funzioni di I/O avanzate

Lezione 6: Funzioni di I/O avanzate Lezione 6: Funzioni di I/O avanzate Laboratorio di Elementi di Architettura e Sistemi Operativi 11 Aprile 2012 Funzioni avanzate di I/O Il buffer di tastiera I caratteri digitati da tastiera rimangono

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998 21 Gennaio 1998 PROVA PRATICA Si scriva un programma C (BASIC per gli studenti di Elementi di Informatica) che: a) Legga da terminale una sequenza di caratteri terminati dal carattere '*' (un carattere

Dettagli

Esercitazione 12. Esercizi di Ricapitolazione

Esercitazione 12. Esercizi di Ricapitolazione Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli