Linguaggio C. Aggregati di dati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggio C. Aggregati di dati"

Transcript

1 Linguaggio C Aggregati di dati

2 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 per un certo tempo per essere elaborata Occorre definire tante variabili diverse ad esempio numerate? Come descrivere dati strutturati anagrafici? Ad esempio dati anagrafici di un comune molte variabili scollegate, nome, cognome, data nascita, residenza, etc? Ripetute per ogni cittadino?

3 Strutture La struttura è una collezione di variabili (di solito non dello stesso tipo) raggruppate sotto lo stesso nome. struct tempo {! int ore;! int minuti;! int secondi;! } orologio1, orologio2;! struct tempo {! int ore;! int minuti;! int secondi;! };! struct tempo orologio1, orologio2;!

4 Nuovi tipi di dati: typedef L'istruzione typedef definisce un sinonimo per un tipo. typedef int intero; intero x = 3;! Con le strutture, typedef serve a definire un sinonimo per strutture complesse typedef struct tempo{...} orologio;! orologio swatch, sector;! typedef è un sinonimo per la dichiarazione di istanze di strutture /*dichiarazione con typedef*/! typedef struct {int x; int y;} coord;! /*istanza*/! coord punto1, punto2;! /*dichiarazione senza typedef*/! struct coord {int x; int y;};! /*istanza*/! struct coord punto1, punto2;!

5 Operatori per strutture l'operatore punto (".") è lo strumento per accedere ai singoli campi delle variabili struct orologio1.ore = 18;! orologio1.minuti = 21;! orologio1.secondi = 22;! Le strutture si possono nidificare (cioè si può inserire una struttura dentro un'altra struttura) struct nascita {! struct tempo ora;! struct data data;! };!

6 Esempio concorso # include <stdio.h> /* definizione di tipo globale*/! struct concorso {! int serie;! char organizzatore;! int partecipanti;! };! main()! {! struct concorso c0, c1;! c0.serie = 2; c0.organizzatore = 'F';! c0.partecipanti = 482;! c1.serie = 0; c1.organizzatore = 'G';! c1.partecipanti = 33;! printf("serie della concorso 0: %d\n", c0.serie);! printf("organizzatore della concorso 1: %c\n",! c1.organizzatore);! }!

7 /*Programma distanza con variabili singole*/!.! double lato1, lato2, distanza, x1=1, y1=5, x2=4,! y2=7;! lato1= x2-x1; lato2= y2-y1;! distanza=sqrt(lato1*lato1 + lato2*lato2);! /* visualizzazione */! printf ( la distanza fra i due punti è! %5.2lf\n, distanza);! }! un punto nel piano cartesiano può essere visto come struct o come array

8 /* Programma distanza con struct per punto*/!.! double lato1, lato2, distanza;! struct punto {! double x;! double y;! } p1, p2;! p1.x = 1; p1.y = 5;! p2.x = 4; p2.y = 7;! lato1= p2.x - p1.x; lato2= p2.y - p1.y;! distanza=sqrt(lato1*lato1 + lato2*lato2);! /* visualizzazione! */! printf ( la distanza fra i due punti = %5.2lf\n,! distanza);! }!

9 Molti dati dello stesso tipo Occorre un costruttore che permette di usare lo stesso nome per tante variabili dello stesso tipo Nella notazione matematica (serie, etc) si usano i pedici In C si usano indici Questi dati saranno memorizzati in memoria di lavoro in posizioni contigue L area per memorizzarli sarà statica

10 array La struttura dati che naturalmente si adatta ai costrutti for è l array, Tutti gli elementi! hanno lo stesso! nome c)! cioè la sequenza di valori c[0]! -45! c[1]! 6! organizzati insieme ed c[2]! 0! c[3]! 72! individuabili con un unico nome. c[4]! 1543! c[5]! -89! Il nome dell array è un c[6]! 0! identificatore, ed è possibile c[7]! 62! c[8]! -3! accedere ad ognuno degli c[9]! 1! c[10]! 6453! elementi usando un indice c[11]! 78! (indirizzamento mediante registro indice) che parte da 0 Posizione! dell elemento! nella array c!

11 array a[0] a[1] un array è un insieme di locazioni di memoria con lo stesso nome e distinte da un numero detto indice (in inglese subscript). Gli array si dichiarano come le variabili ma sono seguiti da [n], dove n è una costante ed indica la dimension dell'array int a[6];! char testo[20];! Le singole locazioni di memoria si indicano con i simboli a[0],a[1],a[2],..., a[5]!

12 Memoria per array indirizzi 9, cioè1001 contenuti int pippo[3] pippo & pippo[0] pippo[0] = 0 pippo[1] =2 pippo[2] = 2

13 Dichiarazioni e assegnamenti array Es di dichiarazione: int s[6];! double t[4];! Es. di inizializzazione contestuale: int s[6] = {5, 0, -1, 2, 15, 2};! double t[4] = {0.0, 0.1, 0.2, 0.8};! int s[6] = {0}; assegna 0 a tutti gli elementi! int s[ ] = {5, 0, -1, 2, 15, 2}; calcola! la dimensione dai dati di inizializzazione

14 Inizializzare mediante cicli Per inizializzare in modo regolare: int k; double gi[21];! for (k=0; k<= 20; k++)! gi[k] = k * 0.5;! se k supera 20 accede a posizioni di memoria fuori dell array Per inizializzare mediante lettura : int k; double gi[21];! for (k=0; k<= 20; k++)! scanf ( %lf, &gi[k]);!

15 esempio #include <stdio.h>! /* programma che acquisisce 5 numeri in array e la stampa*/! main()! { int lista[5];! int contavolte = 0, letto = 0;! printf("inserire 5 numeri tra 1 e 10\n");! /* questo ciclo while controlla la gestione dei 5 valori */! while ( contavolte < 5 )! { letto = 0;! /* questo ciclo while aspetta un numero fra 1 e 10*/! while (letto < 1 letto > 10)! { printf("\n Inserisci il num. %d: ", contavolte + 1 );! scanf("%d", &letto );! }! lista[contavolte] = letto;! contavolte++;! }! for (contavolte = 0; contavolte < 5; contavolte++)! printf("\nval. %d=%d", contavolte + 1, lista[contavolte]! );! }!

16 /* Programma distanza - ogni punto è un array di due*/!.! double lato1, lato2, distanza;! double punto1[2], punto2[2];! punto1[0] = 1; punto1[1] = 5;! punto2[0] = 4; punto2[1] = 7;! lato1= punto2[0] - punto1[0] ;! lato2= punto2[1] - punto1[1] ;! distanza=sqrt(lato1*lato1 + lato2*lato2);! /* visualizzazione! */! printf ( la distanza fra i due punti = %5.2lf\n, distanza);! }! Estendere al caso 3D?! Ogni punto è array di 3 posizioni! Estendere a più punti?! Fare array rettangolare: ogni linea è un punto, ogni! colonna i valori di un asse!

17 Esempio: stampa un istogramma #include <stdio.h>! #define SIZE 10! main()! {! int n[ SIZE ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };! int i, j;! printf( "%s%13s%17s\n", "Elemento", "Valore", Istogramma! for ( i = 0; i <= SIZE - 1; i++ ) {! printf( "%7d%13d! ", i, n[ i ]) ;! for ( j = 1; j <= n[ i ]; j++ )! /* stampa una barra */! printf( "%c", '*' );! }!} printf( "\n" );!

18 Output del programma Elemento! Valore! Istogramma! 0! 19! *******************! 1! 3! ***! 2! 15! ***************! 3! 7! *******! 4! 11! ***********! 5! 9! *********! 6! 13! *************! 7! 5! *****! 8! 17! *****************! 9! 1! *!

19 massimo rivisto: Trovare il massimo di un array di 5 valori naturali, prendendo il primo come max provvisorio int max, i, corrente, valori[5];! /* lettura*/! for (i = 0; i<5; i++)! scanf ("%6d \n", &valori[i]);! /* calcolo */! max = valori[0];! for (i = 1; i<5; i++)! { if (valori[i] > max) max = valori[i]; }! printf ("il massimo è' %d \n", max);!.!

20 Esempio calcolo vettoriale Scrivere un programma che chiede all utente di inserire due vettori e ne stampa il prodotto scalare e vettoriale. Vettore r, con componenti r1, r2, r3 Vettore s con componenti s1, s2, s3 Prodotto scalare r.s = r1*s1 + r2*s2 +r3*s3 Prodotto vettoriale c è un vettore c1, c2, c3 c1 = r2*s3 r3*s2 c2 = r3*s1 r1*s3 c3 = r1*s2 r2*s1

21 calcolo vettoriale: pezzi della soluzione /* dichiarazioni*/! int comp; double scalare; float r[3], s[3], c[3] = {0.0};! /* lettura dati mediante ciclo for*/! /* calcolo prodotto scalare*/! scalare = 0.0;! for(comp=0;comp<3;comp++)! scalare = scalare + r[comp]*s[comp];! /* calcolo prodotto vettoriale modo diretto*/! c[0] = r[1]*s[2] r[2]*s[1]! c[1] = r[2]*s[0] r[0]*s[2]! c[2] = r[0]*s[1] r[1]*s[0]! /* calcolo prodotto vettoriale: for e indici modulo3*/! for(comp=0;comp<3;comp++)! [comp]=! r[(comp+1)%3]*s[(comp+2)%3]-r[(comp+2)%3]*s[(comp+1)%3];!

22 Array a più dimensioni c0! c1! c2! c3! r0! a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ]! r1! a[ 1 ][ 0 ] a[ 1 ][ 1 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ]! r2! a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 2 ] a[ 2 ][ 3 ]! Nome array! Indice riga! Indice colonna! int a[ 3 ][ 4]! Inizializzare int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } };! Quello non specificato va a 0 int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } };! Richiamare un elemento Prima indice di riga, poi di colonna printf( "%d", b[ 0 ][ 1 ] );!

23 Array a più dimensioni /* esempio: immagine*/! const int height = 256;! const int width = 256;! int i, j, image [height][width];! /* inizializzazione con 2 for: uno! per righe e l interno per colonne*/! for(i=0;i< width;i++)! {! for(j=0;j<height;j++)! image[i][j] = i*j;! }!

24 stringhe Stringhe sono array di caratteri first - array di char costanti fra due apici! Dichiarazione e inizializzazione char string1[] = "first";! '\0' termina la stringa! string1 ha quindi 6 elementi! Equivalente a char string1[6] = { 'f', 'i', 'r', 's', 't', '\0' };! Per accedere al singolo carattere string1[ 3 ] is character s! Il nome dell array è il suo indirizzo. & non si usa in scanf scanf( "%s", string1 );!

25 esercizio: Media, mediana, modo su array Media somma valori divisa per il numero occorrenze 1, 2, 3, 4 => la media è 2,5 Mediana il numero nel mezzo di un insieme ordinato 1, 2, 3, 4, 5 => la mediana è 3 Modo il numero che compare più spesso 1, 1, 1, 2, 3, 3, 4, 5 => 1 è il modo

26 Array di strutture come gestire diversi concorsi? array di strutture struct concorso c[3];! Ogni elemento dell array è una struttura conforme al template concorso l'array ha nome c, 3 elementi del tipo struct concorso Per accedere ai singoli elementi dell'array specificare il nome dell'array seguito dall'indice, tra quadre, dell'elemento da referenziare; usare l'operatore punto per accedere al campo voluto.

27 #include <stdio.h>! struct concorso { int serie;! main()! char organizzatore;! int partecipanti;};! { int i; struct concorso c[3];! c[0].serie = 2; c[0].organizzatore = 'F';! c[0].partecipanti = 482;! c[1].serie = 0; c[1].organizzatore = 'G';! c[1].partecipanti = 33;! c[2].serie = 3; c[2].organizzatore = 'E';! c[2].partecipanti = 107;! for(i = 0; i < 3; i++)! printf("%d %c %d\n",c[i].serie,! c[i].organizzatore,c[i].partecipanti);}!

28 Array come campo di struttura /*globale stato del concorso*/! serie struct concorso { int serie;! char organizzatore;! organizzatore int partecipanti;! char stato [2];};! partecipanti main()! { int i; struct concorso mio;! s0 s1 mio.serie = 2;! mio.organizzatore = A';! mio.partecipanti = 15;! mio.stato[0] = T';! mio.stato[1] = F';! printf("%d %c %d\n",mio.serie,! mio.organizzatore,mio.partecipanti);}! for(i = 0; i < 2; i++)! printf("%s",mio.stato[i]);! }!

29 Array come campo di struttura /*locale stato del concorso*/! main()! {struct concorso { int serie;! char organizzatore;! int partecipanti;! char stato [2];};! int i; struct concorso mio;! mio.serie = 2;! mio.organizzatore = A';! mio.partecipanti = 15;! mio.stato[0] = T';! mio.stato[1] = F';! printf("%d %c %d\n",mio.serie,! mio.organizzatore,mio.partecipanti);}! for(i = 0; i < 2; i++)!

30 Problemi di ricerca Esiste un certo dato in un array? Ricerca sequenziale (dall inizio o dalla fine, l unica se i dati non sono ordinati) Ricerca dicotomica (dal mezzo, su dati ordinati)

31 Ricerca sequenziale #include <stdio.h>! #define MAXDIM 100 /* dimensione massima del! vettore */! main()! {int i,k,n;! int V[MAXDIM];! do{! printf("\n Inserire la dimensione del vettore! non superiore a %d\n",maxdim);! scanf("%d",&n);! }while(n>maxdim);! /* inserimento vettore */! for (i=0;i<n;i++)! {! printf("inserire l'elemento %d : ",i+1);! scanf("%d",&v[i]);! }! /* Inserimento del valore da cercare ( chiave K! )*/! printf("inserire l'elemento da cercare : ");! scanf("%d",&k);!

32 /* scandire gli elementi del vettore partendo dal! primo V[0] e fermandosi se si trova K o se si! finisce l array*/! i=0;! while( K!= V[i] && i<n )! i = i + 1;! /*il risultato della ricerca dipende da quale! condizione di uscita è stata verificata*/! if ( i<n ) printf("elemento trovato in posizione! %d\n", i+1);! else printf("elemento non trovato\n");! }!

33 Ricerca dicotomica 1) Si individua l elemento che sta a metà del vettore; 2) Si confronta la chiave K con tale elemento. Se l elemento individuato non è uguale a quello cercato : se K > elemento mediano la ricerca continua solo nel semivettore superiore se K < elemento mediano la ricerca continua solo nel semivettore inferiore 3) Il procedimento continua suddividendo i semivettori via via individuati. Esempio: trovare 9 Confronto 9 con 6 - ripeti sul vettore Confronta 9 con 9 - trovato

34 Ricerca dicotomica #include <stdio.h>! #define MAXDIM 100! main()! {! int i,inf,sup,med,k,n; int V[MAXDIM];! do{! printf("\n Inserire la dimensione del vettore non! superiore a %d\n",maxdim);! scanf("%d",&n);! }while(n>maxdim);! /* inserimento del vettore ordinato */! for (i=0;i<n;i++)! {! printf("inserire l'elemento %d : ",i+1);! scanf("%d",&v[i]);! }!

35 /* Inserimento del valore da cercare K */! printf("inserire l'elemento da cercare : ");! scanf("%d",&k);! /*inizializzazione degli indici */! inf = 0; sup = N-1; med = (inf + sup)/2;! /*accedi al mediano del vettore a ciascun passo */! while ( K!= V[med] && inf<sup )! {! if ( K > V[med] ) /*vai nella parte alta*/! inf = med+1;! else! sup = med-1; /*vai nella parte bassa*/! med = (inf + sup)/2;! }! /*risultato della ricerca */! if ( V[med]== K )! printf("elemento trovato in posizione %d\n", med+1);! else printf("elemento non trovato\n");! }!

36 Quale preferire? La Ricerca Sequenziale ricerca con successo:nel caso migliore ho un solo confronto e in quello peggiore N Il numero medio di confronti risulta (N+1)/2 ricerca senza successo: L algoritmo esamina sempre tutto il vettore, quindi il numero di confronti è sempre N

37 La Ricerca dicotomica Ad ogni iterazione l'insieme è dimezzato, il numero di confronti è pari a quante volte N può essere diviso per 2 fino a ridurlo a 0. in un vettore di dimensione N = 2h, l algoritmo deve compiere circa h = log2(n) passi (e quindi confronti) per la ricerca senza successo, nel caso medio il numero è leggermente inferiore mentre nel caso migliore è 1. Esempio : per cercare un elemento in un insieme di elementi, nel caso pessimo con la Ricerca Sequenziale dovremmo eseguire circa confronti, mentre con la Ricerca Binaria ne dobbiamo effettuare al massimo 21.

38 Problemi di ordinamento 3 metodi: Selection Insertion Exchange Si parte da array iniziale con i valori disordinati, e si ordina nell array stessa Una passata per ordinare ogni posizione Una passata per cercare il valore da mettere in quella posizione

39 Selection sort Trovo il minimo fra gli N; poi il minimo fra gli N-1; etc e lo metto nella posizione da ordinare #define N 100!.! main ()! {! int i, j, min, temp; int dati[n];! /*acquisisci gli N valori*/!! for (i = 0; i < N-1; i++) {! min = i;! for (j = i+1; j < N; j++) {! /* trovo l indice in cui si trova il minimo */! if(dati[j]<dati[min])! min=j;! temp = dati[i];! dati[i]=dati[min]; /*metto il minimo a posto*/! dati[min]= temp;! }! }!

40 Esempio selection inizio dopo for i= dopo for i = dopo for i= dopo for i = 3

41 Insertion sort..{ int i, j; int dati[n];! }}! for (i = 1; i <N; i++)! for (j = i; j > 0; j--)! if (dati[j]<dati[j-1])! {/*scambia*/;! temp = dati[j-1];! dati[j-1]=dati[j];! dati[j]= temp;!

42 Esempio insertion inizio dopo for i= dopo for i = dopo for i= dopo for i = 3

43 sort Bubble sort su array N passate Confronta un elemento con il successivo Se il primo è minore o uguale, nulla Se maggiore, scambia Repeat esempio: originale: passata 1: passata 2: passata 3: 23467

44 Bubblesort ordinare array a #include <stdio.h>! # define! N 10! main ()! { int pass, j, temp, a[n];! /* lettura di a*/! /* bubblesort a*/! for (pass = 1; pass <N; pass++)! for (j = 0; j <N-1; j++)! if a[j] > a[j+1]! {/* scambio*/! temp = a[j] ; a[j] = a[j+1] ; a[j+1]=temp;! } /* stampa di a*/!.! }

45 esercizi Calcolare la somma dei primi N numeri interi N(N+1)/2 N =1 Somma = 2/2 =1 N=2 Somma = 2(3)/2 = 3 cioè 1+2 Calcolare la somma dei primi N numeri pari N*N+N Es: N = 1 Somma=2 N=2 Somma = 2*2+2 = 6 cioè 2+4

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

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

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

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

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

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 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

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

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

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

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

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano

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

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 4 A.A. 2014/2015 Marco Redolfi marco.redolfi@unitn.it Simone Zen simone.zen@unitn.it Formati e Formattazione Finora abbiamo letto valori da tastiera e scritto sullo schermo

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

Università di Roma Tor Vergata L12-1

Università di Roma Tor Vergata L12-1 Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

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

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,

Dettagli

Variabili strutturate

Variabili strutturate Esempio Ordinamento crescente di numeri: 25 7 I passo: 25 7 25 7 7 25 7 25 Variabili strutturate in due scambi 25 è stato portato al suo posto Gli array II passo: 7 25 7 25 7 25 in uno scambio 7 è stato

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

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

Array e puntatori in C

Array e puntatori in C Array e puntatori in C Diapositive adattate dalle omonime create dalla Dottoressa di Ricerca Giovanna Melideo per il corso di Laboratorio di Algoritmi e Strutture Dati 10/05/2005 LP2-04/05 - Appunti di

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

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

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

Laboratorio di Informatica

Laboratorio di Informatica Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Laboratorio di Informatica 4. Array e strutture in C++ Strutture

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme

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

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

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

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

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico Francesco Tortorella Le strutture Gli array permettono la sola aggregazione di variabili dello stesso tipo. Quindi

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

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

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

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

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

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

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

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

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

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

Il TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3

Il TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3 Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali

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

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

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

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

Tecniche di Ordinamento dei Vettori

Tecniche di Ordinamento dei Vettori Tecniche di Ordinamento dei Vettori Corso di Laurea Ingegneria Corso B A.A. 2010-2011 1 Contenuto 1) Generalità 2) Metodi a Minimo Ingombro di Memoria 2.1) Ordinamento per selezione ( Selection Sort )

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

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

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

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

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

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Unità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.

Unità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture. Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

LE STRUTTURE DATI PARTE 2: RECORD. Prof. G. Ciaschetti

LE STRUTTURE DATI PARTE 2: RECORD. Prof. G. Ciaschetti 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOJ LE STRUTTURE DATI PARTE 2: RECORD Prof. G. Ciaschetti Abbiamo visto nella prima dispensa sulle strutture dati che una struttura dati è una collezione di dati in

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

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi

Dettagli

Programmazione: variabili e operatori. Variabili

Programmazione: variabili e operatori. Variabili Programmazione: variabili e operatori Variabili Una variabile è un'area di memoria (RAM) individuata da un nome detto identificativo. Tale nome esprime l'indirizzo dove sarà posto il valore che si assegnerà

Dettagli

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. PASCAL standard Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth. Nb: primi linguaggi furono: Fortran, Algol, Ada, Cobol (cfr testo)

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

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

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

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore. I vettori in C Sintassi della definizione Definizione di costanti Operazioni di accesso Vettori Definizione di vettori in C I vettori in C Definizione di vettori in C Definizione di vettori in C Stesse

Dettagli

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

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

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

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

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

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

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

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

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

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

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

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

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

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento

Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:

Dettagli

Implementazione di Liste puntate

Implementazione di Liste puntate Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Implementazione di Liste puntate 2 1 Indice Liste puntate semplici: Gli elementi sono logicamente

Dettagli

Introduzione al C. Tipi derivati

Introduzione al C. Tipi derivati Introduzione al C Tipi derivati 1 Strutture semplici Una struttura è una collezione di una o più variabili, anche di tipi diversi, raggruppate da un nome struct tag{ struttura_elementi } istanza; struct

Dettagli

Algoritmi di ordinamento. Algoritmi. Selection sort semplificato - I. Selection sort semplificato - II

Algoritmi di ordinamento. Algoritmi. Selection sort semplificato - I. Selection sort semplificato - II Algoritmi Ver..4 Algoritmi di ordinamento Lo scopo è ordinare in senso [de]crescente il contenuto di un vettore di N elementi senza utilizzare un secondo vettore Esiste molta letteratura scientifica a

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

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

Inside C : Puntatori. Indirizzo: operatore & p = &v; x = a; Puntatori Referenziazione e Dereferenziazione Arrays

Inside C : Puntatori. Indirizzo: operatore & p = &v; x = a; Puntatori Referenziazione e Dereferenziazione Arrays Pointers: Puntatori (I) Le variabili finora incontrate sono caratterizzate da un nome (o identificativo), un tipo, ed occupano un area di memoria di dimensione dipendente dal tipo. Per accedere ad una

Dettagli

Esercizi. I File ed il C

Esercizi. I File ed il C Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Spazio riservato ai docenti

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

Dettagli

3. Terza esercitazione autoguidata: progetto gestione voli

3. Terza esercitazione autoguidata: progetto gestione voli 9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati

Dettagli