Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int
|
|
- Rosalia Rinaldi
- 6 anni fa
- Visualizzazioni
Transcript
1 Gli array Gli array rappresentano una modalità molto compatta per accedere ad un gruppo di variabili; tale gruppo è identificato dal nome dell'array; i tipi delle variabili appartenenti al gruppo devono essere tutti uguali. All'intero della memoria del calcolatore, ciascuna variabile occupa una ben definita posizione; le variabili che compongono l'array sono disposte una vicino all'altra. la dichiarazione int vettore[10]; impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int Ad ogni elemento del gruppo si accede conoscendo: il nome dell'array la posizione occupata da tale elemento all'interno del gruppo il secondo elemento dell'array, cui corrisponde l'indice 1, viene individuato scrivendo: vettore[1] indice: valore:
2 Gli array: ordinamento con diversi criteri Scriviamo un programma basato sulla seguente traccia: dichiarare un array di variabili di tipo char; la dimensione dell'array deve essere fissata utilizzando la direttiva per il preprocessore #define inizializzare l'array assegnando a ciascun elemento un valore casuale di tipo intero compreso tra 65 e 122 (in termini di codice ASCII, questo corrisponde alle minuscole, maiuscole e ad alcuni altri caratteri compresi tra questi due gruppi). Implementare questa funzionalità definendo un'opportuna funzione. visualizzare i valori contenuti negli elementi dell'array (usando %c come specificatore di formato) controllare se ci sono valori compresi tra 91 e 96, estremi inclusi; se ci sono valori che soddisfano a questa condizione, il loro valore deve essere diminuito di 8 (questa operazione corrisponde all'eliminazione di tutti i caratteri che non sono lettere minuscole o maiuscole). Implementare questa funzionalità definendo un'opportuna funzione. codice ASCII carattere... X Y Z [ \ ] ^ _ ` a b visualizzare i valori contenuti negli elementi dell'array (usando %c come specificatore di formato) contare quante lettere di un determinato valore siano presenti nel gruppo (ovvero quante 'A' siano presenti, quante 'B', etc. etc.) disporre in ordine crescente i valori contenuti nell'array (questo corrisponde ad ordinare le lettere in ordine alfabetico, prima le maiuscole e poi le minuscole) visualizzare i valori contenuti negli elementi dell'array (usando %c come specificatore di formato) applicare all'array il seguente criterio di ordinamento: una lettera maiuscola non deve essere seguita da una minuscola... qual è l'effetto di questo criterio di ordinamento? 10. visualizzare i valori contenuti negli elementi dell'array (usando %c come specificatore di formato)
3 Passo 1: quali sono le direttive del preprocessore da utilizzare? quali i loro parametri? per visualizzare dei valori -> printf() -> #include stdio.h per poter generare numeri casuali -> rand() -> #include stdlib.h per distinguere le lettere maiuscole dalle minuscole -> #include ctype.h per poter definire una macro e assegnare una dimensione all'array -> #define SIZE 60 Passo 2: debbono essere implementate funzioni? quale deve essere il loro prototipo? 1. Una funzione deve generare numeri casuali compresi tra 65 e 122. Per preparare una funzione riutilizzabile anche in futuro si può scegliere il seguente prototipo: char RandChar(char min,char max); ove min e max rappresentano il minimo ed il massimo valore da generare La funzione dovrà restituire un valore compreso tra min e max, estremi inclusi. 2. La seconda funzione deve analizzare un carattere e scegliere se modificarlo o meno. Tale modifica deve essere "resa nota" al programma che richiama lafunzione; un modo per implementare questa funzionalità consiste nel far restituire alla funzione il valore del carattere (sia nel caso in cui esso venga modificato che nel caso in cui esso non venga modificato). char ScegliChar(char car); La funzione deve restituire un valore pari a quello di car, se car non risulta compreso tra 91 e 96, mentre deve restituire un valore pari a quello di car diminuito di 8 unità, se car è compreso tra 91 e 96, estremi inclusi. Passo 3: di che variabili ho bisogno per la preparazione del programma?
4 a. array di char b. un indice, ovvero una variabile di tipo int (per scorrere l'array) c. d. e. una variabile temporanea, dello stesso tipo delle variabili presenti nell'array (per poter effettuare gli scambi connessi con l'applicazione di un criterio di ordinamento) una seconda variabile di tipo intero (per poter determinare quando terminare l'applicazione del criterio di ordinamento) devo contare quante volte ciascuna lettera minuscola o maiuscola è presente nel gruppo; ho bisogno quindi di due array di interi, ciascuno dei quali mi permetta di memorizzare quante volte ogni lettera compaia nell'array di char int NumMinuscole[26]; int NumMaiuscole[26]; perché 26? NumMinuscole[0] indicherà quante siano le occorrenze della lettera 'a' NumMinuscole[1] indicherà quante siano le occorrenze della lettera 'b'... NumMaiuscole[0] indicherà quante siano le occorrenze della lettera 'A' NumMaiuscole[1] indicherà quante siano le occorrenze della lettera 'B' Come faccio a contare quante volte compare la 'f', ad esempio, senza usare il costrutto if-else e senza utilizzare il costrutto switch()? Se la 'f' è presente, devo incrementare il valore dell'elemento dell'array NumMinuscole che corrisponde alla lettera 'f'; la 'f' è la sesta lettera dell'alfabeto, quindi le compete l'elemento con indice pari a 5, NumMinuscole[5]. Se inizio a contare dalla 'a', la "distanza" tra la 'f' e la 'a' è pari a 'f' - 'a' = 5... che, guarda caso, è l'indice che corrisponde alla lettera 'f'... iniziamo a scrivere... /* inizio codice */ #include <stdio.h>
5 #include <stdlib.h> #include <ctype.h> #define SIZE 60 /* inseriamo qui i prototipi delle funzioni essi devono essere letti dal compilatore PRIMA che le funzioni stesse vengano utilizzate */ char RandChar(char,char); char ScegliChar(char); int main() {char vettore[size]; int NumMinuscole[26]; int NumMaiuscole[26]; char temp; int i,scambio; /* inizializzo gli array che serviranno per il conteggio delle lettere */ for( i = 0 ; i < 26; i++ ) {NumMinuscole[i] = 0; NumMaiuscole[i] = 0; /* l'array di caratteri viene inizializzato e si visualizzano i valori in esso contenuti */ putchar('\n'); for( i = 0 ; i < SIZE ; i++ ) {vettore[i]=randchar(65,122); printf("%c", vettore[i] ); /* viene effettuato il controllo sull'array */ putchar('\n'); for( i = 0 ; i < SIZE ; i++ ) {vettore[i]=sceglichar(vettore[i]); printf("\n Nella posizione %d è presente il valore %c", i, vettore[i] ); /* i caratteri vengono riconosciuti e contati; essi vanno prima suddivisi tra minuscole */ for( i = 0 ; i < SIZE ; i++ ) {if(islower(vettore[i])) { NumMinuscole[ vettore[i]-'a' ]++; if(isupper(vettore[i])) { NumMaiuscole[ vettore[i]-'a' ]++; /* visualizzo le occorrenze di ciascun carattere */ putchar('\n');
6 for( i = 0 ; i < 26; i++ ) {printf("\n Nell'array %c compare %d volte",'a'+i, NumMinuscole[i]); printf("\n Nell'array %c compare %d volte",'a'+i, NumMaiuscole[i]); /* gli elementi dell'array vengono disposti in ordine crescente */ scambio = 1; while(scambio) { scambio = 0; for( i=0 ; i < ( SIZE - 1 ) ; i++) {if( vettore[i] > vettore[i+1] ) /*se non sono in ordine crescente, scambio i valori */ {temp = vettore[i]; vettore[i] = vettore[i+1]; vettore[i+1] = temp; scambio = 1; /* visualizzo i valori contenuti nell'array dopo l'ordinamento */ putchar('\n'); for( i = 0 ; i < SIZE ; i++ ) {printf("%c", vettore[i] ); /* applico il secondo criterio di ordinamento */ scambio = 1; while(scambio) { scambio = 0; for( i=0 ; i < ( SIZE - 1 ) ; i++) {/*se non soddisfano il criterio, scambio i valori */ if( isupper(vettore[i]) && islower(vettore[i+1]) ) {temp = vettore[i]; vettore[i] = vettore[i+1]; vettore[i+1] = temp; scambio = 1; /* visualizzo i valori contenuti nell'array dopo l'ordinamento */ putchar('\n'); for( i = 0 ; i < SIZE ; i++ ) {printf("%c", vettore[i] ); return 0;
7 /* inseriamo ora le implementazioni delle funzioni */ char RandChar(char min,char max) {char CarCasuale; CarCasuale = min + rand() % (max - min + 1) ; /* perché +1?*/ return CarCasuale; /*... una versione un po' più sintetica... char RandChar(char min,char max) {return ( min + rand() % (max - min + 1) ) ; */ char ScegliChar(char valore) {if( (valore >= 91) && (valore <= 96) ) {valore -= 8; return valore; /*... un'altra versione... char ScegliChar(char valore) {if( (valore >= 91) && (valore <= 96) ) {return (valore - 8); return valore;? Perché non serve l' else? */ /* fine codice */ Nell'ipotesi in cui l'eseguibile si chiami ordering, ecco l'output. /home/studente>./ordering jxmu^guksovpxhl\funk\oqfc]viybvchwns`zjct`czjydxhy\ein\jxxfy Nella posizione 0 è presente il valore j Nella posizione 1 è presente il valore X Nella posizione 2 è presente il valore M Nella posizione 3 è presente il valore u Nella posizione 4 è presente il valore V Nella posizione 5 è presente il valore G Nella posizione 6 è presente il valore u Nella posizione 7 è presente il valore K Nella posizione 8 è presente il valore s Nella posizione 9 è presente il valore o Nella posizione 10 è presente il valore V
8 Nella posizione 11 è presente il valore P Nella posizione 12 è presente il valore X Nella posizione 13 è presente il valore H Nella posizione 14 è presente il valore l Nella posizione 15 è presente il valore T Nella posizione 16 è presente il valore f Nella posizione 17 è presente il valore u Nella posizione 18 è presente il valore N Nella posizione 19 è presente il valore k Nella posizione 20 è presente il valore T Nella posizione 21 è presente il valore o Nella posizione 22 è presente il valore Q Nella posizione 23 è presente il valore f Nella posizione 24 è presente il valore C Nella posizione 25 è presente il valore U Nella posizione 26 è presente il valore V Nella posizione 27 è presente il valore i Nella posizione 28 è presente il valore y Nella posizione 29 è presente il valore B Nella posizione 30 è presente il valore v Nella posizione 31 è presente il valore c Nella posizione 32 è presente il valore h Nella posizione 33 è presente il valore w Nella posizione 34 è presente il valore N Nella posizione 35 è presente il valore S Nella posizione 36 è presente il valore X Nella posizione 37 è presente il valore Z Nella posizione 38 è presente il valore j Nella posizione 39 è presente il valore c Nella posizione 40 è presente il valore t Nella posizione 41 è presente il valore X Nella posizione 42 è presente il valore C Nella posizione 43 è presente il valore z Nella posizione 44 è presente il valore j Nella posizione 45 è presente il valore Y Nella posizione 46 è presente il valore D Nella posizione 47 è presente il valore x Nella posizione 48 è presente il valore H Nella posizione 49 è presente il valore Y Nella posizione 50 è presente il valore T Nella posizione 51 è presente il valore e Nella posizione 52 è presente il valore I Nella posizione 53 è presente il valore n Nella posizione 54 è presente il valore T Nella posizione 55 è presente il valore j Nella posizione 56 è presente il valore X Nella posizione 57 è presente il valore x Nella posizione 58 è presente il valore f Nella posizione 59 è presente il valore Y Nell'array a compare 0 volte Nell'array A compare 0 volte Nell'array b compare 0 volte Nell'array B compare 1 volte Nell'array c compare 2 volte Nell'array C compare 2 volte Nell'array d compare 0 volte
9 Nell'array D compare 1 volte Nell'array e compare 1 volte Nell'array E compare 0 volte Nell'array f compare 3 volte Nell'array F compare 0 volte Nell'array g compare 0 volte Nell'array G compare 1 volte Nell'array h compare 1 volte Nell'array H compare 2 volte Nell'array i compare 1 volte Nell'array I compare 1 volte Nell'array j compare 4 volte Nell'array J compare 0 volte Nell'array k compare 1 volte Nell'array K compare 1 volte Nell'array l compare 1 volte Nell'array L compare 0 volte Nell'array m compare 0 volte Nell'array M compare 1 volte Nell'array n compare 1 volte Nell'array N compare 2 volte Nell'array o compare 2 volte Nell'array O compare 0 volte Nell'array p compare 0 volte Nell'array P compare 1 volte Nell'array q compare 0 volte Nell'array Q compare 1 volte Nell'array r compare 0 volte Nell'array R compare 0 volte Nell'array s compare 1 volte Nell'array S compare 1 volte Nell'array t compare 1 volte Nell'array T compare 4 volte Nell'array u compare 3 volte Nell'array U compare 1 volte Nell'array v compare 1 volte Nell'array V compare 3 volte Nell'array w compare 1 volte Nell'array W compare 0 volte Nell'array x compare 2 volte Nell'array X compare 5 volte Nell'array y compare 1 volte Nell'array Y compare 3 volte Nell'array z compare 1 volte Nell'array Z compare 1 volte BCCDGHHIKMNNPQSTTTTUVVVXXXXXYYYZccefffhijjjjklnoostuuuvwxxyz ccefffhijjjjklnoostuuuvwxxyzbccdghhikmnnpqsttttuvvvxxxxxyyyz /home/studente>
10 Esercizi proposti: 1. Verificare che rand() è un buon generatore di numeri casuali. A questo scopo, utilizzare la funzione che genera numeri casuali tra un valore massimo ed uno minimo e farle generare valori casuali compresi tra 97 e 122 (lettere minuscole) per un numero molto elevato di volte (ad esempio alcuni miliardi). Man mano che la funzione genera caratteri, contare quante 'a', quante 'b',... etc., vengano generate usando la procedura presentata sopra. se rand() è un buon generatore di numeri casuali, quanto deve valere il rapporto tra il numero di volte in cui è comparsa la 'a' ed il numero di volte in cui è comparsa, ad esempio, la 'k'? Per generare le lettere, supponendo che i sia una variabile di tipo intero, implementare un costrutto ciclico di questo tipo: for( i=1 ; i>0 ; i++ ) {... istruzioni... E' possibile effettuare quanto richiesto o si tratta di un ciclo infinito? 2. L'ultimo ordinamento applicato all'array vettore considerato durante l'esempio impone alle lettere maiuscole di posizionarsi alla fine dell'array ed alle minuscole di raggrupparsi all'inizio dell'array stesso. Utilizzando lo stesso criterio di ordinamento e le funzioni tolower() e toupper(), è possibile fare in modo che le lettere minuscole si spostino alla fine dell'array e le maiuscole vadano all'inizio dell'array stesso?
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
DettagliIndovina la lettera...
Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
DettagliIl 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
DettagliProgrammazione 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
DettagliLettura 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
DettagliRappresentazione 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
DettagliApplicando lo stesso meccanismo al tipo puntatore, possiamo dichiarare un array di puntatori:
Le tabelle In C, dato un tipo di variabile, è possibile costruire un array di variabili di tale tipo usando la dichiarazione (facendo l esempio per il tipo float): float vettore[100]; Applicando lo stesso
DettagliBreve 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
DettagliAssociazione Variabile-Indirizzo
I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include
DettagliAlgoritmi 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
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliEsercizio 1. Tavola ordinata in memoria centrale
Esercizio 1. Tavola ordinata in memoria centrale E dato un programma che realizza una rubrica telefonica come tavola in memoria centrale. In particolare, ogni elemento della tavola è caratterizzato dalle
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliGli Array. Dichiarazione di un array
Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato
DettagliUniversità degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti
Linguaggio C 1! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Oggetti dello stesso tipo Identificazione univoca degli oggetti! Il tipo più semplice ha una sola
DettagliC: 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
DettagliARRAY 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
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliLa 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
DettagliPuntatori (in C) Emilio Di Giacomo
Puntatori (in C) Emilio Di Giacomo Puntatori In questa lezione parleremo di uno dei costrutti più potenti del C: i puntatori I puntatori vengono utilizzati per realizzare il passaggio di parametri per
DettagliUnità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
DettagliCorso 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
DettagliEsercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
DettagliEsercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 7 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliEsercitazione 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
DettagliEsercizio 1: calcolo insieme intersezione
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************
DettagliEsercizi. Stringhe. Stringhe Ricerca binaria
Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)
DettagliEsercitazione 3. Heapsort
Esercitazione Heapsort Heapsort Algoritmo di ordinamento che utilizza una struttura dati detta heap per la gestione delle informazioni Tempo di esecuzione O(n lg n) Heap (binario) = struttura dati composta
DettagliStringhe 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
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
Dettagliprova.c #include <stdio.h> char funzione(char); codice oggetto del main()
prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Puntatori a funzioni 1 Funzioni che restituiscono puntatori Il valore di ritorno restituito da una funzione può essere di qualsiasi tipo, compreso il tipo puntatore.
DettagliIl presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 30 giugno 04 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve
Dettagli7. Strutture di controllo
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 7. Ing. Michele Ruta 1 di 17 Indice Istruzioni di selezione Mappate dal costrutto switch Istruzioni cicliche (di iterazione)
DettagliLABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo
DettagliFunzioni di libreria. KP pp , , , 589, DD pp , , ,
Funzioni di libreria KP pp.112-115, 471-474, 573-575, 589, 598-601 DD pp.144-153, 307-313, 563-565, 588-591 Funzioni matematiche (1) KP p. 112,573 Il linguaggio C non contiene funzioni matematiche predefinite.
DettagliProblema: ricerca di un elemento
Problema: ricerca di un elemento Ricerca di un numero all'interno di un vettore. Assumere che la dimensione del vettore sia uguale ad N e che la prima posizione del vettore sia uguale a 0. Esempio: Se
DettagliCaratteri 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
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliQuicksort e qsort() Alessio Orlandi. 28 marzo 2010
Quicksort e qsort() Alessio Orlandi 28 marzo 2010 Intro Quicksort è l algoritmo di ordinamento più implementato, insieme con Mergesort. Tutte le librerie standard UNIX ne prevedono una implementazione.
DettagliEsercitazione 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
DettagliEsercizi 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
DettagliI Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
I Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Variabili I tipi di variabili che abbiamo usato finora hanno la caratteristica comune di non essere strutturate: ogni
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
Dettaglimain() { int i; int a[10]={1,2,3,4,5,6,7,8,9,10}; /* inizializzazione in fase di definizione */ int b[10];
ESERCIZI ARRAY 1. Scrivere un programma che inizializza un vettore monodimensionale di interi e poi copia il vettore in un altro vettore della stessa dimensione. 2. In una gara il punteggio di ciascun
DettagliArray 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
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliInformatica 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,
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliRicerca binaria ricorsiva!
ESERCIZIO: RICERCA BINARIA! Soluzione Iterativa! int ricerca_bin (int vet[], int el) {int first=0, last=n-1, med=(first+last)/2; int T=0; while ((first
Dettagli3. 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
DettagliLaboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013
Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare
DettagliPuntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a
Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime
DettagliLa gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
DettagliCorso 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
DettagliProblema: conteggio occorrenze
Problema: conteggio occorrenze start read N,X i := 0 occorrenze := 0 vero vero i < N vettore[i]=x falso write occorrenze end occorrenze := occorrenze + 1 falso i := i + 1 Codice Javascript: prima parte
DettagliUnità 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
DettagliLinguaggio C - Array. Array: tipo nome_array[num_elementi]
Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliProblema. 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
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliCorso di Informatica 1 Esercitazione n. 4
Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli
DettagliEsercitazione 12. Esercizi di Ricapitolazione
Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,
DettagliDIRETTIVE DI PREPROCESSORE
DIRETTIVE DI PREPROCESSORE elaborazione di macro inclusione di file sorgente compilazione condizionale (consente di compilare porzioni di codice sorgente in dipendenza del valore di una espressione aritmetica)
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliProf. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Operazioni sulle liste Definiamo una serie di procedure e funzioni per operare sulle liste. Usiamo liste di interi per semplicità, ma tutte le operazioni sono realizzabili in modo del tutto analogo su
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliOperazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliLaboratorio 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,
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
DettagliStrutture di Controllo
Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliLe direttive del Preprocessore
Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza
DettagliEsercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
DettagliPrimi 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
DettagliIterazione (introduzione)
Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale
DettagliINFORMATICA ED ELEMENTI DI INFORMATICA MEDICA. MODULO DI INFORMATICA Prof. Stefano Gaburri e Prof. Gianluca Palermo. Prova del 12 Luglio 2010
INFORMATICA ED ELEMENTI DI INFORMATICA MEDICA MODULO DI INFORMATICA Prof. Stefano Gaburri e Prof. Gianluca Palermo Prova del 12 Luglio 2010 Nome: Cognome: Matricola: Firma: Non separate questi fogli (AD
DettagliL'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
DettagliEsercizio 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
DettagliVettori e Matrici (array)
Vettori e Matrici (array) Introduction to Fortran 90 Massimiliano Guarrasi, CINECA m.guarrasi@cineca.it Ottobre 2014 Array - Introduzione Gli array sono serie di variabili dello stesso tipo, ciascuna accessibile
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Esercizio 1. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis
Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Biomedica Corso di Laurea in Ingegneria Elettrica, Elettronica ed Informatica Capitolo 5 Linguaggio Assembly
DettagliArray ( vettore/matrice Un dato strutturato. indice Accesso diretto
Array (vettore/matrice) Un dato strutturato. Un insieme di variabili tutte dello stesso tipo identificate con un nome comune. Uno specifico elemento è referenziato tramite un indice (funzione di accesso)
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
DettagliIterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Giugno 2017
Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/2017 12 Giugno 2017 Testo Il database del sistema di gestione delle prenotazioni dei voli
DettagliI puntatori e l allocazione dinamica di memoria. Esercizi risolti
I puntatori e l allocazione dinamica di memoria Esercizi risolti 1 Esercizio Si vuole realizzare un tipo struct, utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 9 (svolta) RPC: Inizializzazione Strutture Dati sul Server Luca Foschini Anno accademico 2010/2011
DettagliESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza
ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza vers.0 in lavorazione Docente SAFFI FABIO Contenuti Implementazione delle operazioni di base mediante main in un unico file sorgente... 2 Struttura
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis
Esercitazione di Ing. Gian Luca Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore v; &v[i] è il suo indirizzo.
Dettagliin più stringhe,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,...
ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,... una stringa è qualcosa che si può concatenare, spezzare in più stringhe,...
DettagliLaboratorio di Programmazione Lezione 3. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 3 Cristian Del Fabbro Prossima lezione GIOVEDÌ 12 NOVEMBRE ORE 14:00 Array a.k.a. vettore Un array è una collezione ordinata di dati omogenei (cioé sono tutti dello
DettagliEs 1. Scrivere un programma che verifica se una terna di numeri interi e' pitagorica
Es 1. Scrivere un programma che verifica se una terna di numeri interi e' pitagorica 1. Analisi del problema INPUT (variabili e tipo)? Tre numeri interi x,y,z:int OUTPUT? Si/No MA... Capire il problema:
Dettagli