Esercitazione 6. Array

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazione 6. Array"

Transcript

1 Esercitazione 6 Array

2 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 di un array di nome a atto a memorizzare 6 elementi di tipo int */

3 Arrays Ogni elemento di un array è individuato da un indice (da 0 a lunghezza dell array meno 1). Esempio int a[6]; a[0] = 4; a[1] = 42; a[2] = 34; a[3] = -23; a[4] = 87; a[5] = a[2];

4 Esercizio Descrivere l output generato dal seguente programma. #include <stdio.h> main ( ) { int a, b = 0; int c [10] ; for (a = 0; a< 10; a++) c [a] = a; } for (a = 0; a < 10; ++a) if ((c [a] % 2) == 0) b += c[a]; printf ( %d, b);

5 Soluzione Il programma definisce un array c di 10 interi che contiene i valori 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; calcola la somma degli elementi dell array i cui valori sono pari; quindi stampa il valore di tale somma che vale 20.

6 Esercizio: Crivello di Eratostene Costruire una tabella di numeri interi tale che: int tabella [DIM] in corrispondenza di ogni indice da 0 a 100 c è un numero 0 o 1 tale che se i è 0 o 1 allora tabella[i]==1; per ogni i compreso tra 2 e 100, se i è primo allora tabella[i]=1; se i non è primo allora tabella[i]=0; Infine si stampino i numeri primi trovati.

7 Soluzione inizializzazione cancello i multipli di cancello i multipli di

8 #include <stdio.h> #define DIM 101 /* deve contenere i numeri da 0 a 100 */ main ( ) { int i, j; int tabella [DIM] ; for (i = 0; i< DIM; i++) /* inizializzo la tabella */ tabella [i] = 1; printf ( %d, 1); } for (i = 2; i < DIM; i++) if (tabella [i] == 1) { printf ( %d, i); for (j = 2; j * i < DIM; j++) /* elimino i multipli di i */ tabella [i * j] =0; } printf ( \n );

9 scanf La funzione scanf legge caratteri dallo standard input (tastiera), li interpreta, memorizza il risultato negli argomenti successivi (che sono indirizzi di memoria). La funzione scanf restituisce un intero che rappresenta il numero di valori che sono stati letti con successo

10 scanf di caratteri La funzione scanf legge i caratteri dallo standard input (tastiera) esattamente nell ordine in cui vengono inseriti i caratteri di fine linea, tab ecc. non vengono ignorati (è dunque necessario tenere conto di tali caratteri) è possibile ignorare i carattere di fine linea, tab e spazi mettendo uno spazio prima di %c

11 Esercizio Scrivere una funzione che inizializza un array di caratteri. void inizializza_array (char tabella [ ], int dim) { int i; for (i=0; i<dim; i++) { printf ( inserisci elemento %d e digita invio:, i+1); scanf( %c, &tabella[i]); } } spazio (ignora tutti gli spazi e i tab che precedono l immissione del carattere)

12 Esercizio Scrivere un programma che utilizza la funzione inizializza_array. #include <stdio.h> #define N 5 void inizializza_array (char tabella [ ], int dim){...} main ( ) { char array[n]; } inizializza_array (array,n); /* stampa la tabella */ printf( \n la tabella inizializzata è: \n\n\t ); for (i=0; i<n; i++) printf ( %c, array[i]); printf( \n\n );

13 Output Esempio di esecuzione del programma precedente. inserisci elemento 1 e digita invio: l inserisci elemento 2 e digita invio: i inserisci elemento 3 e digita invio: b inserisci elemento 4 e digita invio: r inserisci elemento 5 e digita invio: o la tabella inizializzata è: l i b r o prompt$

14 Esercizio: istogrammi Scrivere un programma che legge un vettore di interi di dimensione fissata, e stampa il corrispondente istogramma. Esempio: Dato il vettore stampa * 3 *** 2 ** 4 **** 7 ******* 9 *********

15 #include <stdio.h> #define DIM 10 int main(void) { int vett [DIM]; int i, j; /* leggi vettore */ printf("inserire un vettore di interi di dimensione %d\n", DIM); for (i = 0; i < DIM; i++) scanf("%d", &vett[i]); /* stampa dell'istogramma */ for (i = 0; i < DIM; i++) { printf("%d ", vett[i]); for (j = 0; j < vett[i]; j++) printf("*"); printf("\n"); } }

16 Le funzioni getchar e putchar Le funzioni int getchar (void): legge il prossimo carattere dallo standard input e lo restituisce come valore intero. int putchar(int c): visualizza il carattere memorizzato in c. si trovano nella libreria stdio.h per l input/output standard.

17 Esercizio: MCD Scrivere un programma che calcola il massimo comune divisore tra due numeri interi positivi, n e m. Esempi: MCD (5, 15) = 5 MCD (12, 16) = 4 MCD (100, 75) = 25

18 Esercizio (continua) Una soluzione elegante è fornita dal ben noto algoritmo di Euclide. L idea si basa sulla seguente osservazione: Per qualunque coppia di valori interi positivi x e y tali che x > y, l insieme dei divisori di x e y coincide con l insieme dei divisori di x - y e y

19 Esercizio (continua) Possiamo quindi risolvere il problema del MCD utilizzando il seguente algoritmo. ALGORITMO DI EUCLIDE se m=n allora il MCD(m,n) è m (o n) se m n allora se m>n allora MCD(m,n)=MCD(m-n,n) se m<n allora MCD(m,n)=MCD(m,n-m) Ripetendo questo procedimento, prima o poi si ottengono due numeri uguali che sono quindi il MCD(m,n) cercato.

20 Esercizio (continua) Dimostriamo formalmente che l algoritmo di Euclide è corretto. Siano x e y due numeri interi positivi tali che x > y. Denotiamo con Div(x,y) l insieme dei divisori comuni di x e y. Vogliamo mostrare che k Div(x,y) se e solo se k Div(x-y,y) per qualunque scelta di k. Proviamo le due implicazioni separatamente. ( ) Per definizione di divisore, k Div(x,y) implica che esistono due interi s e t tali che x = s * k e y = t * k. Ma allora x - y = (s * k) (t * k) = (s t) * k e quindi k Div(x-y,y). k Div(x-y,y) implica che esistono s e t tali che x - y = s * k e y = t * k. Ma allora x = x y + y = s * k + t * k = (s + t) * k e quindi k Div(x,y).

21 Soluzione #include <stdio.h> int MCD(int x, int y) { while (x!=y) if (x>y) x = x - y; else y = y - x; return x; } Invariante del ciclo: Siano m e n i parametri attuali, quindi l invariante è: { x > 0, y > 0, Div(x,y) = Div(m,n) } Terminazione: la funzione d(x,y)=x+y per valori x > 0 e y > 0 decresce ad ogni iterazione del ciclo

22 Soluzione (continua) int main ( ) { int m, n, mcd; printf( Inserisci il numero intero positivo m: \n ); scanf ( %d, &m); printf( Inserisci il numero intero positivo n: \n ); scanf ( %d, &n); mcd = MCD(m,n); printf( Il MCD di %d e %d è: %d\n, m, n, mcd); }

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

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

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

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

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

LIA. LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L

LIA. LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L Corso di laurea in Ingegneria Chimica - Anno Accademico 2007-2008 Funzioni Esercizio 3.3 Si scriva un programma in linguaggio

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

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

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

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

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

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

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

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

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

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 5. Corso di Fondamenti di Informatica. Laurea in Ingegneria Informatica

Esercitazione 5. Corso di Fondamenti di Informatica. Laurea in Ingegneria Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 5 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

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

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Rappresentazione binaria delle variabili (int e char)

Rappresentazione binaria delle variabili (int e char) Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati

Dettagli

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Esercizi di programmazione in linguaggio C - Costrutto iterazione

Esercizi di programmazione in linguaggio C - Costrutto iterazione Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente

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

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

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

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

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA 28 Gennaio 1999 PROVA SCRITTA Esercizio 1 Un elaboratore rappresenta numeri interi in complemento a due su 8 bit e numeri reali in utilizzando un byte per la mantissa normalizzata e un byte per l esponente

Dettagli

Programmare in C. Esempio: Algoritmo del Risveglio

Programmare in C. Esempio: Algoritmo del Risveglio MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C (strutture di controllo) Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1

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

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

Lettura da tastiera e scrittura su monitor

Lettura da tastiera e scrittura su monitor Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

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

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

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

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Programmazione a moduli in C

Programmazione a moduli in C Funzioni Programmazione a moduli in C Politecnico di Milano Motivazioni Alcuni programmi possono essere molto, molto complessi E utile poter partizionare il lavoro di progettazione in sottolavori più semplici

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

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: FUNZIONI La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: double sqrt(double) double pow (double, double) della libreria matematica, che abbiamo già usato anche senza

Dettagli

Problemi, algoritmi e oggetti

Problemi, algoritmi e oggetti Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

Ricorsione. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Ricorsione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e

Dettagli

18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast

18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast Soluzione degli esercizi svolti in aula alla lavagna Seconda lezione Cast 1 Esempio Scriviamo un programma che converte temperature Fahrenheit in temperature Celsius La formula è cels = (fahr 32) * 5 *

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe 2 Vettori di caratteri Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di

Dettagli

Obiettivi di questa esercitazione

Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 1 Esercizio 1 Creare un programma che legga

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata Esempio: fai un giro del parco di

Dettagli

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

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

Caratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1

Caratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1 Caratteri e stringhe Il tipo stringa Terminatore nullo Input/output di stringhe 2 2006 Politecnico di Torino 1 Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di dato stringa

Dettagli

Linguaggio C: le funzioni

Linguaggio C: le funzioni Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: genna18@iol.it sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare

Dettagli

La gestione dei caratteri in C

La gestione dei caratteri in C in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio

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

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

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

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

stringhe array monodimensionali char. libreria < string.h>

stringhe array monodimensionali char. libreria < string.h> Le stringhe Le stringhe sono array monodimensionali il cui tipo base è char. Il nucleo del linguaggio non prevede particolari istruzioni per il trattamento delle stringhe che potrebbero essere gestite

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

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. Esericizi sempici su funzioni 2. Funzioni ricorsive 3. Funzioni e Header File 2 ESERCIZIO 1 (Funzioni) Codificare in C la funzione

Dettagli

Consideriamo un vettore allocato dinamicamente

Consideriamo un vettore allocato dinamicamente Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Esercizi. Piero Demichelis 1

Esercizi. Piero Demichelis 1 Esercizi Piero Demichelis 1 Equazione di II grado Legge i coefficienti a, b e c si a = 0? no si b = 0? no delta = b*b 4*a*c si c = 0? no Equazione di I grado: x= -(c / b) Equazione Equazione w = 2*a indeterminata

Dettagli

Vettori di caratteri. Caratteri e stringhe. Stringhe in C. Vettori di caratteri. char saluto[10] ; B u o n g i o r n o 4. Esempio.

Vettori di caratteri. Caratteri e stringhe. Stringhe in C. Vettori di caratteri. char saluto[10] ; B u o n g i o r n o 4. Esempio. Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe Caratteri e stringhe 2 Stringhe in C Vettori di caratteri Nel linguaggio C non è supportato esplicitamente alcun tipo di

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 27 novembre 2007 In C una stringa è rappresentata da una sequenza di caratteri terminante con il carattere nullo \0 il cui valore è

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

Obiettivi di questa esercitazione

Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Esericizi sempici su funzioni 2. Funzioni ricorsive 3. Funzioni e Header File 2 ESERCIZIO 1 Codificare in C la funzione int

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Cos è. un vettore (1) un vettore (2) un vettore (3)

Corso di Fondamenti di Programmazione canale E-O. Cos è. un vettore (1) un vettore (2) un vettore (3) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Vettori DD Cap. 6, pp. 85-244 Cos è un vettore () Osserva: Una variabile può contenere un solo valore alla volta. Il costruttore di vettore

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Linguaggi di programmazione + laboratorio a.a. 2012/2013

Linguaggi di programmazione + laboratorio a.a. 2012/2013 Linguaggi di programmazione + laboratorio a.a. 2012/2013 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi

Dettagli

Espressione di chiamata di funzione

Espressione di chiamata di funzione Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Complessità algoritmi su strutture dati (riassunto)

Complessità algoritmi su strutture dati (riassunto) Complessità algoritmi su strutture dati (riassunto) Struttura di dato Ricerca Complessità (caso peggiore) Tavola come array non Ricerca sequenziale O(N) ordinato (N elementi) Tavola come array ordinato

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E07 C. Limongelli Dicembre 2011 1 Contenuti q Esercizi: Palindroma Anagramma Fibonacci 2 Palindroma q Scrivere un programma che

Dettagli

Il generatore di numeri casuali

Il generatore di numeri casuali Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

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

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore. 1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno

Dettagli

Esercitazione 9. Array come puntatori. Aritmetica dei puntatori. Array multidimensionali. Ricapitolazione su Ricorsione e Array.

Esercitazione 9. Array come puntatori. Aritmetica dei puntatori. Array multidimensionali. Ricapitolazione su Ricorsione e Array. Esercitazione 9 Array come puntatori Aritmetica dei puntatori Array multidimensionali Ricapitolazione su Ricorsione e Array Stringhe Array come puntatori Gli array e i puntatori in C sono strettamente

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 rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Tutoraggio Venerdì 14

Dettagli

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 nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

Dettagli

Bontà dei dati in ingresso

Bontà dei dati in ingresso COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Il costo puo' dipendere dal valore dei dati in ingresso Un tipico esempio è dato

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

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione

Dettagli

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

Corso di Laurea in Matematica

Corso di Laurea in Matematica Corso di Laurea in Matematica Laboratorio di Informatica (a.a. 2003-04) Esercizi di programmazione in C: funzioni e procedure 1 Docente: Monica Nesi Nota Nelle soluzioni di alcuni degli esercizi riportati

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Gestione dei file. Linguaggio ANSI C Input/Output - 13 Gestione dei file Necessità di persistenza dei file archiviare i file su memoria di massa. Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

Dettagli

Esempio: Array di struct

Esempio: Array di struct Esempio: Array di struct Scrivere un programma C che definisca la struttura esame, composta dal nome dell esame (stringa) e dal voto (intero). Si leggano poi da terminale n esami, con n definito dall utente

Dettagli

Mini-dispensa sui puntatori in C

Mini-dispensa sui puntatori in C Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Esame Informatica Generale 13/04/2016 Tema A

Esame Informatica Generale 13/04/2016 Tema A Esame Informatica Generale 13/04/2016 Tema A! 1/! Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; void fz(int[], double[], double*); // puntatori void fz(int[],

Dettagli