Capitolo 2 Fondamenti di Informatica - Esercizi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 2 Fondamenti di Informatica - Esercizi"

Transcript

1 Capitolo 2 Fondamenti di Informatica - Esercizi Vengono proposti alcuni esercizi relativi al dato strutturato array e vengono presentate le relative soluzioni. 1

2 2 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI 2.1 DATI STRUTTURATI Esercizio 1 Scrivere un programma che, acquisiti due vettori di interi da input, V1 e V2 stampi in output la differenza V1 - V2, cioè gli elementi di V1 che non sono in V2. Esercizio 2 Scrivere un programma che, dato un vettore V di LV1 elementi interi, calcoli gli indici P e Q dei due elementi V[P] e V[Q] la cui distanza D = jv [P ] V [Q]j è maggiore. Esercizio 3 Scrivere un programma che acquisisca da input un vettore di interi con elementi distinti. Esercizio 4 Dati due vettori V1 e V2 contenenti rispettivamente N1 e N2 valori interi già ordinati: int V1[N1] = {1,3,3,5,6,9,9; /* esempio con N1=7 */ int V2[N2] = {2,3,3,5,5; /* esempio con N2=5 */ scrivere un programma C che esegua le seguenti operazioni: 1. Costruire e stampare output il vettore V di N1+N2 valori interi ordinati, ottenuto tramite fusione dei due vettori V1 e V2: V V V Calcolare e stampare in output : (a) numero di valori in comune tra V1 e V2; (nellesempio precedentea=2) (b) B: numero di valori contenuti in V1 ma non in V2; (nellesempio precedenteb=3) Esercizio 5 Data una matrice di N*M interi, (N righe, M colonne): int MAT[N][M] = {3,5,7,9,0,7,2,2,8,9,3,2,8,2,2,2,4,5; scrivere un programma C che acquisisca da input due interi, RIGA e COLONNA, e calcoli la somma di tutti gli elementi della sottomatrice ottenuta da MAT eliminando la riga e la colonna indicate da RIGA e COLONNA rispettivamente (cioè la somma di tutti gli elementi di MAT ad eccezione di quelli appartenenti alla riga RIGA oppure alla colonna COLONNA).

3 2.2. ORDINAMENTO 3 Esercizio 6 Data una matrice di N*M interi, (N righe, M colonne): int MAT[N][M] = {3,5,7,9,0,7,2,2,8,9,3,2,8,2,2,2,4,5; scrivere un programma C che acquisisca da input quattro interi NS, MS, R e C in modo da individuare e stampare in output la sottomatrice NS*MS il cui elemento più alto a sinistra (cioè in posizione 0,0) è Mat[R][C]. Effettuare i controlli sui valori NS, MS, R e C acquisiti da input: NS» N, NS+R» N e cosi via. Esempio: Mat[3][6] Con R=1, C=2, NS=2 e MS=3 si ottiene la sottomatrice evidenziata Mat[3][6] Esercizio 7 Scrivere un programma per costruire la matrice A[M][N] di interi tale che A[I][J] = I + J, 0 <I<Me 0 <J<V. Costruire quindi la matrice B come matrice trasposta di A e stamparla. Esercizio 8 Date due stringhe S1 e S2 costruire una terza stringa S3, ottenuto mettendo alternativamente un carattere di S1 ed un carattere di S2; quando una delle due stringhe termina, mettere tutti i caratteri rimasti dellaltra. Ad esempio, con S1="prova" e S2="ora" si deve ottenere S3="porroava" 2.2 ORDINAMENTO In questa sezione vengono presentati alcuni problemi che possono essere risolti tramite l ordinamento dei dati. Esercizio 9 Scrivere un programma che acquisisca da input un vettore di N numeri interi, e riporti in uscita la frequenza di ciascun intero presente nel vettore. Esempio Vettore in input

4 4 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI Output 1 e presente 3 volte 3 e presente 1 volte 4 e presente 2 volte 99 e presente 2 volte Metodo: Si ordina il vettore e quindi si scandiscono i suoi elementi: se l i-esimo elemento è uguale a quello successivo si incrementa una variabile di conteggio, altrimenti il valore della variabile di conteggio rappresenta il numero di volte che l i-esimo è presente nel vettore Vettore ordinato I I+1 V[I]!=V[I+1] e count = 3, allora riporta che V[I] compare 3 volte Siccome considero V[I] e V[I+1], la scansione partirà da0earriverà a N-2. Fare attenzione all ultimo elemento! Esercizio 10 Scrivere un programma in C che acquisisca da input due stringhe S1 e S2 e controlli se una è l anagramma dellaltra. Metodo: si ordinano alfabeticamente le due stringhe e si confrontano: se il risultato del confronto è positivo allora una stringa è l anagramma dell altra. Esempio: S1="domenico" -- (ordinamento) --- > "cdeimnoo" S2="incomode" -- (ordinamento) --- > "cdeimnoo"

5 2.3. SOLUZIONI SOLUZIONI Soluzione Esercizio 1 Per poter affermare che un elemento X del vettore V1 non è nel vettore V2, si deve confrontare X con tutti gli elementi di V2: Inizializza TROVATO a 0 Acquisizione vettore V2 Acquisizione vettore V2 Per ogni elemento X del vettore V1 Per ogni elemento Y del vettore V1 se X==Y TROVATO=1 Se TROVATO e 0 Stampa X Inizializza TROVATO a 0 #define LV1 10 #define LV2 5 int I,J; int V1[LV1]; int V2[LV2]; int trovato=0;/* indica che un elemento di V1 e uguale ad uno di V2 */ for (I=0;I<LV1;I++) /* acquisizione V1 */ scanf("%d",&v1[i]); for (J=0;J<LV2;J++) /* acquisizione V2 */ scanf("%d",&v2[j]); for (I=0;I<LunghezzaVettore1;I++){ /* V1 - V2 */ for (J=0;J<LunghezzaVettore2;J++) if (V1[I]==V2[J]) trovato=1; if (trovato == 0) printf("\n %d", V1[I]); trovato=0;

6 6 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI 2 Scrivere un programma che, acquisiti due vettori di interi da input, V1 e V2 stampi in output l intersezione V1 V2, cioè gli elementi in comune tra V1 e V2. Soluzione Esercizio 2 #include <math.h> #define LV 10 int I,J; int P,Q; int V[LV1] = { 12,43,21,4,5,10,49,67,2,20; P=0; Q=0; for (I=0;I<LV;I++) for (J=0;J<LV;J++) if (abs(v[i]-v[j])> abs(v[p]-v[q]) { P=I; Q=J; printf("\n %d %d", P,Q); Soluzione Esercizio 3 Ad ogni acquisizione dell elemento I del vettore, si controlla se tale elemento non sia già presente nelle posizioni precedenti (dalla posizione 0 alla posizione I-1): in caso positivo viene richiesto di immettere di nuovo l elemento. #define LV 10 int I,J; int V[LV1]; int trovato;/* indica che un elemento e

7 2.3. SOLUZIONI 7 gia presente in V */ for (I=0;I<LV1;I++) /* acquisizione V */ do { trovato=0; printf("\n Inserire elemento %d",i); scanf("%d",&v1[i]); for (J=0;J<I;J++) if (V[J]==V[I]) trovato=1; while (trovato!=0); Soluzione Esercizio 4 #define N1 7 #define N2 5 int V1[N1] = {1,3,3,5,6,9,9; /* esempio con N1=7 */ int V2[N2] = {2,3,3,5,5; /* esempio con N2=5 */ int V[N1+N2]; int temp; int N=N1+N2; int trovato,count=0; int I,J; int K; /* domanda 1 : prima soluzione */ /* inserisco V1 e V2 in V e poi lo ordino */ for(i=0;i<n1;i++) V[I]=V1[I]; for(i=n1;i<n1+n2;i++) V[I]=V2[I]; /* ordinamento di V con Bubblesort */ for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if (V[J]>V[J+1]) { temp=v[j]; V[J]=V[J+1];

8 8 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI V[J+1]=temp; /* stampo V */ for(i=0;i<n1+n2;i++) printf("%2d",v[i]); /* domanda 1 : seconda soluzione si esaminano gli elementi di V1 e V2 e si inserisce in V il minore */ I=0; J=0; K=0; while((i<n1)&&(j<n2)) { if (V1[I]<V2[J]) { V[K]=V1[I]; I++; else { V[K]=V2[J]; J++; K++; /* copia in V di tutti quelli eventualmente rimasti in V1 */ while(i<n1) { V[K]=V1[I]; I++; K++; /* copia in V di tutti quelli eventualmente rimasti in V2 */ while(j<n2) { V[K]=V2[J]; J++; K++; /* stampo V */ printf("\n");

9 2.3. SOLUZIONI 9 for(i=0;i<n1+n2;i++) printf("%2d",v[i]); /* domanda 2 - punto A */ for(i=0;i<n1-1;i++) if(v1[i]!=v1[i+1]) { trovato=0; for(j=0;j<n2;j++) if (V1[I]==V2[J]) trovato=1; if (trovato==1) count++; trovato=0; /* ultimo elemento di V1*/ for(j=0;j<n2;j++) if (V1[N1-1]==V2[J]) trovato=1; if (trovato==1) count++; printf("\n A = %d",count); /* domanda 2 - punto B */ count=0; for(i=0;i<n1-1;i++) if(v1[i]!=v1[i+1]) { trovato=0; for(j=0;j<n2;j++) if (V1[I]==V2[J]) trovato=1; if (trovato==0) count++; trovato=0; /* ultimo elemento di V1*/ for(j=0;j<n2;j++) if (V1[N1-1]==V2[J]) trovato=1; if (trovato==0) count++;

10 10 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI printf("\n B = %d",count); /* Una soluzione piu semplice alla domanda 2 e quella di contare piu volte i valori di V1 ripetuti: in questo modo, A= 4 */ for(i=0;i<n1-1;i++) { trovato=0; for(j=0;j<n2;j++) if (V1[I]==V2[J]) trovato=1; if (trovato==1) count++; printf("\n %d",count); Soluzione Esercizio 5 #define N 3 #define M 6 int MAT[N][M] = {3,5,7,9,0,7,2,2,8,9,3,2,8,2,2,2,4,5; int i, j, Totale=0; int RIGA, COLONNA; do { printf("inserire RIGA e COLONNA da eliminare"); scanf("%d %d",&riga,&colonna); while(riga>n COLONNA>M); for(i=0;i<n;i++) if(i!=riga) for(j=0;j<m;j++) if(j!=colonna) Totale =Totale + MAT[i][j];

11 2.3. SOLUZIONI 11 printf("totale = %d",totale); {\soluzione{\ref{matrice:sotto \begin{verbatim #define N 3 #define M 6 int MAT[N][M] = {3,5,7,9,0,7,2,2,8,9,3,2,8,2,2,2,4,5; int R,C; int NS,MS; int max; int I,J; do { printf("inserire R e C dell elemento 0,0 della sottomatrice:"); scanf("%d %d",&r,&c); while(r>n C>M); do { printf("/n Inserire dimensioni della sottomatrice : "); scanf("%d %d",&ns,&ms); while(r+ns>n C+MS>M); for(i=r;i<r+ns;i++){ for(j=c;j<c+ms;j++) printf("%2d",mat[i][j]); printf(" RIGA %2d \n",i); Soluzione Esercizio 7 #define M 4 #define N 3 int I,J;

12 12 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI int A[M][N],B[N][M]; for (I=0;I< M;I++) for (J=0;J< N;J++) A[I][J]=I+J; printf("\n"); /* trasposta */ for (I=0;I<M;I++) for (J=0;J<N;J++) B[J][I]=A[I][J]; printf("la matrice trasposta %dx%d e \n",n,m); for (J=0;J< N;J++) { for (I=0;I< M;I++) printf("%d ",B[J][I]); printf("\n"); 2 Stampare la matrice trasposta di A, senza costruire la matrice B. Soluzione Esercizio 8 #define M 6 char S1[M]="prova"; char S2[M]="ora"; char S3[M+M]; int I=0; /* indice per la stringa S1 */ int J=0; /* indice per la stringa S2 */ int K=0; /* indice per la stringa S3 */ /* finche ci sono caratteri in entrambe S1 e S2 si riporta in S3 prima un carattere di S1 e poi un carattere di S2 */ while(s1[i]!= \0 && S2[J]!= \0 ){ S3[K]=S1[I]; K++; I++;

13 2.3. SOLUZIONI 13 S3[K]=S2[J]; K++; J++; /* si riporta in S3 gli eventuali caratteri rimasti in S1 */ while(s1[i]!= \0 ){ S3[K]=S1[I]; K++; I++; /* si riporta in S3 gli eventuali caratteri rimasti in S2 */ while(s2[j]!= \0 ){ S3[K]=S2[J]; K++; J++; /* si riporta in S3 il carattere di terminazione */ S3[K]= \0 ; printf("stringa risultante = %s",s3); Soluzione Esercizio 9 In base al metodo descritto nel testo dell esercizio, si delinea il seguente algoritmo: Ordinamento del vettore Inizializza variabile di conteggio count= 1 per I da 0 a N-2 se V[I]==V[I+1] allora incrementa count di 1 altrimenti riporta che la frequenza di V[I] è count riparti con il conteggio: count =1 riporta che la frequenza di V[I+1] è count che viene tradotto nel seguente programma: #include <stdlib.h> #define LV 12

14 14 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI typedef int Vettore[LV]; int I,J; int Tot; /* numero totale di elementi differenti */ Vettore V; int count; int temp; /* assegnamento casuale */ for (I=0;I<LV;I++) V[I]=rand()%10; /* stampa vettore non ordinato */ for (I=0;I<LV;I++) printf("%d ",V[I]); printf("array iniziale \n\n"); /* ordinamento con bubble sort */ for(i=0;i<lv-1;i++) for(j=0;j<lv-1-i;j++) if (V[J]>V[J+1]) { temp=v[j]; V[J]=V[J+1]; V[J+1]=temp; /* stampa vettore ordinato */ printf("vettore Ordinato\n\n"); for (I=0;I<LV;I++) printf("%d ",V[I]); printf("\n\n"); count=1; for (I=0;I<LV-1;I++) { if (V[I]==V[I+1]) count++; else { printf(" %d compare %d volte\n",v[i],count); count=1; /* end if */ /* end for */ printf("%d compare %d volte\n",v[lv-1],count); /* end main */ Soluzione Esercizio 10

15 2.3. SOLUZIONI 15 acquisizione delle stringhe S1 e S2 ordinamento delle stringhe S1 e S2 se le due stringhe ordinate sono uguali stampa OK altrimenti stampa NO #define MAXSTRINGA 20 /* massima lunghezza della stringa */ char S1[MAXSTRINGA+1],S2[MAXSTRINGA+1]; int LS1,LS2; /* lunghezza stringhe da confrontare */ int I,J; char temp; int uguali; /* controllo di uguaglianza delle stringhe */ char Ch; /* acquisizione e calcolo lunghezza stringa S1 */ printf("introdurre la stringa S1\n"); Ch=getchar(); I=0; while(ch!= \n ){ if (I<MAXSTRINGA){ S1[I]=Ch; I++; Ch=getchar(); S1[I]= \0 ; LS1=I; /* acquisizione e calcolo lunghezza stringa S2 */ printf("introdurre la stringa S2\n"); Ch=getchar(); I=0; while(ch!= \n ){ if (I<MAXSTRINGA){ S2[I]=Ch; I++; Ch=getchar(); S2[I]= \0 ; LS2=I;

16 16 CAPITOLO 2. FONDAMENTI DI INFORMATICA - ESERCIZI /* ordinamento delle stringa S1 con bubble sort */ for(i=0;i<ls1-1;i++) for(j=0;j<ls1-1-i;j++) if (S1[J]>S1[J+1]) { temp=s1[j]; S1[J]=S1[J+1]; S1[J+1]=temp; /* ordinamento delle stringa S2 con bubble sort */ for(i=0;i<ls2-1;i++) for(j=0;j<ls2-1-i;j++) if (S2[J]>S2[J+1]) { temp=s2[j]; S2[J]=S2[J+1]; S2[J+1]=temp; /* confronto delle due stringhe */ uguali = 1; I = 0; while (I < LS1 && uguali==1) if (S1[I]==S2[I]) I++; else uguali=0; /* output del risultato del confronto */ if (uguali==1) printf("ok"); else printf("no");

1 Elementi base di un programma INTRODUZIONE AL C SOLUZIONI... 8

1 Elementi base di un programma INTRODUZIONE AL C SOLUZIONI... 8 Indice 1 Elementi base di un programma 3 1.1 INTRODUZIONE AL C....................... 4 1.2 SOLUZIONI............................. 8 2 Dato strutturato array 23 2.1 DATI STRUTTURATI........................

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

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

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

3 Costrutti while, for e switch

3 Costrutti while, for e switch Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei costrutti while, for e switch. I costrutti per costruire cicli in C sono il while, la variante

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

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

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

Esercitazione 8. Array multidimensionali

Esercitazione 8. Array multidimensionali Esercitazione 8 Array multidimensionali Prodotto di due matrici Una matrice può essere rappresentata in C con un array bidimensionale. Consideriamo il seguente problema: date due matrici mat1[n] [P] mat2[p]

Dettagli

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

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

Capitolo 1 Fondamenti di Informatica - Esercizi

Capitolo 1 Fondamenti di Informatica - Esercizi Capitolo 1 Fondamenti di Informatica - Esercizi Vengono proposti alcuni esercizi relativi alla parte introduttiva della programmazione in C (Struttura ed elementi base di un programma, Ingresso e uscita

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

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

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

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

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

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,[email protected])

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

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

Esercizi su strutture dati

Esercizi su strutture dati Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Stringhe e tipi di dati strutturati

Stringhe e tipi di dati strutturati Stringhe e tipi di dati strutturati Marco D. Santambrogio [email protected] Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Lezione 8 Struct e qsort

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

Dettagli

Esercizi d esame. Elena Tundo

Esercizi d esame. Elena Tundo Esercizi d esame Elena Tundo Esercizi su Linux Tenendo presente di partire dalla home directory, la sequenza di comandi Linux per creare una sottocartella dir2 ed una dir3 e spostare dentro dir2 il file

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

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

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Dettagli

Istruzioni iterative. Istruzioni iterative

Istruzioni iterative. Istruzioni iterative Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",

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

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

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

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array Lab06 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi

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

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0 STRINGHE: ARRAY DI CARATTERI Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1

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

Lezione 6 Selection/Insertion Sort su interi e stringhe

Lezione 6 Selection/Insertion Sort su interi e stringhe Lezione 6 Selection/Insertion Sort su interi e stringhe Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Tutoraggio Venerdì 14

Dettagli

Linguaggio C++ 8. Matrici

Linguaggio C++ 8. Matrici 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 8 Matrici Linguaggio C++ 8 1 Array a più dimensioni. Sintassi generale : tipo nome [dimensione 1][dimensione

Dettagli

Esercizi C sui tipi definiti dall utente

Esercizi C sui tipi definiti dall utente Politecnico di Milano Esercizi C sui tipi definiti dall utente Typedef,, tipi enumerativi e strutturati Sinonimi: typedef int Intero; Intero a; int b; Definire un nuovo tipo typedef char Stringa[10]; Stringa

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

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

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

1 (6) 2 (7) 3 (7) 4 (7) 5 (6) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B anno accademico 010-011 Prof. Danilo ARDAGNA Seconda Prova in Itinere 7.06.011 Durata 1h 30 Valutazioni 1 (6) (7) 3 (7) 4 (7)

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

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

Problema. Vettori e matrici. Vettori. Vettori

Problema. Vettori e matrici. Vettori. Vettori e matrici Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Problema Si vuole un programma che chieda 10 numeri dalla tastiera e li visualizzi dall ultimo al primo Soluzione attuale (con le

Dettagli

Vettori Algoritmi elementari di ordinamento

Vettori Algoritmi elementari di ordinamento Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Vettori Algoritmi elementari di ordinamento Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale

Dettagli

STRINGHE: ARRAY DI CARATTERI! a p e \0

STRINGHE: ARRAY DI CARATTERI! a p e \0 STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più

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

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto:

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto: ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

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

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Esercizio 1 (15 punti)

Esercizio 1 (15 punti) Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind

Dettagli

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

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,

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

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere

Dettagli

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica O. BELLUZZ I - L. DA VINCI Prot.8480/6.3 del 05/07/2017 A.S. 2016-2017 Classe III H Informatica Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

Dettagli

Stringhe di caratteri

Stringhe di caratteri Linguaggio C Stringhe di caratteri 1 Variabili e costanti stringa! Una stringa letterale è una sequenza di caratteri racchiusa tra doppi apici! Può essere scritta su più righe utilizzando il backslash

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

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci [email protected] - alessandronacci.com

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci [email protected] - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

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

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

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