#include<stdlib.h> #include<stdio.h> #include<string.h> typedef char mese[20]; typedef struct { int giorno; mese month; int anno; } data;
|
|
- Mariangela Vinci
- 6 anni fa
- Visualizzazioni
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
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;
/* 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;
/* 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,
DettagliEsercizio 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: *******************************************************************
DettagliLinguaggio 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
DettagliEsercizio 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
Dettaglidott. 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;
DettagliArray 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
DettagliInformatica 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
DettagliInformatica 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
DettagliTutorato 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
Dettagligiapresente( ) 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
DettagliComplementi. - 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
DettagliAlcuni 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
DettagliCorso 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
Dettagliacquisizione 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:
DettagliLinguaggio 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
DettagliEsercitazione 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
DettagliEsercizio 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
DettagliRealizzare 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
DettagliTutorato 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
Dettagli1 (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
DettagliInformatica 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
DettagliRecord 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:. ::= ;
DettagliIl 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
DettagliEsercizio 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
DettagliRicerca 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
DettagliIstruzioni 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
DettagliIntroduzione 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
DettagliUniversità 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
DettagliESERCIZI 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
DettagliLinguaggio 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
DettagliEsercizio 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:
DettagliEsercizio 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
DettagliFondamenti 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
DettagliEsercizio 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
DettagliIl 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
DettagliEsempi 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);
DettagliEsercitazione 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:
DettagliEsercizio 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
DettagliLinguaggio 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
Dettagliil 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
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
DettagliArray. 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
DettagliStrutture 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
DettagliInput / 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
DettagliScrittura 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
DettagliCorso 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
DettagliEsercizi. 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)
DettagliLinguaggio 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
DettagliNOTA: 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
DettagliLaboratorio 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
Dettagli1. 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
DettagliSTRUTTURE 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
DettagliEsercizio 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)
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
DettagliESERCIZI 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
DettagliEsercitazione 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
Dettaglisum = 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
DettagliEsercizi. 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
Dettagliint, 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
DettagliEsercizio 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
Dettagli1 (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
DettagliFondamenti 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.
DettagliEsercizio 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
DettagliRappresentazione 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
Dettaglimain() { 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
DettagliNOTA: 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
DettagliPuntatori 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.
Dettagliint 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.
/* 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
DettagliFondamenti 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,
DettagliSoluzione/* 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,
DettagliProgrammi 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
DettagliProva 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
DettagliPolitecnico 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
DettagliCorso 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
DettagliPolitecnico 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
DettagliAlcuni 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
DettagliLinguaggio 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
DettagliLezione 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
DettagliMultidimensionali. 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
DettagliFondamenti 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)
DettagliEsercitazione 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
DettagliProgrammazione 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
DettagliEsercitazione 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
DettagliIl 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
DettagliPolitecnico 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
DettagliNon 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
DettagliFondamenti 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
DettagliPolitecnico 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
Dettagli5 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
DettagliIstruzioni 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
DettagliERRATA 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
DettagliRICERCA 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
DettagliStruttura 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
DettagliLezione 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
DettagliESAME 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
DettagliEsercitazione 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,
DettagliFondamenti 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