Seminario di C Appendici
|
|
- Bartolommeo Durante
- 8 anni fa
- Visualizzazioni
Transcript
1 Seminario di C Appendici Paride Dominici
2 Indice Appendice A - Allocazione dinamica della memoria... 2 Appendice B - Progettazione lineare di un programma... 4 Appendice C - Utilizzo dei file in modalità binaria... 5 Appendice D - Utilizzo del programma make... 7 Appendice E - Tabella codici ASCII Standard (0 127)... 9 Appendice F Tipi più comuni nella generazione delle CGI
3 Appendice A - Allocazione dinamica della memoria Per rendere più efficiente e meno pesante un programma in C si utilizza una tecnica particolare che è detta allocazione dinamica della memoria. Generalmente all ingresso di una funzione il compilatore si occupa di riservare la quantità di memoria di cui ha bisogno la funzione per le variabili locali. Ad esempio : void funzione() { int a; char stringa[200];... } All ingresso di questa funzione il compilatore alloca cioè riserva (considerando che l int sia a 4 byte) 204 byte per le variabili locali in una zona di memoria preposta a questo. All uscita della funzione, sarà il compilatore stesso a liberare cioè a rendere di nuovo disponibile la memoria che si era riservato. Questa modalità di gestione della memoria è molto comoda, perché non ci costringe a pensare ai problemi di memoria, ma in alcuni casi può essere comodo poter avere il controllo su queste operazioni. Le due funzioni principali del C per fare l allocazione dinamica della memoria sono la malloc (per allocare la memoria) e la free (per liberare la memoria). In pratica con queste due funzioni (o altre similari che vedremo in C++) siamo noi a chiedere al sistema operativo di riservarci una certa quantità di memoria (che siamo noi a specificare) e di dirci semplicemente dove inizia la memoria che ci ha riservato. Il prototipo della funzione malloc è il seguente : void* malloc(size_t size); Ad esempio per allocare dinamicamente un array di 1000 caratteri : char *array; array = (char*)malloc(1000); Se la malloc fallisce (non riesce a riservare la memoria) il puntatore viene impostato a NULL. Questo ci permette di avere un minimo controllo e di dare eventualmente un messaggio di errore. Da questo punto in poi la memoria rimane a nostra disposizione finché non diciamo al sistema operativo che non ci serve più (o finché non usciamo dal programma). Una volta che la memoria ha terminato il suo compito per dire al sistema operativo che la memoria non ci serve più utilizzeremo la funzione free. Il prototipo della funzione free è: void free(void* block); 2
4 Per liberare la memoria quindi chiameremo : free(array); Uno degli utilizzi più comuni è quello ad esempio della allocazione dinamica di stringhe. Se ad esempio dobbiamo leggere da file una serie di righe di cui non conosciamo la lunghezza posso dichiarare un array monodimensionale di puntatori a carattere (char*) e allocare per ognuno di essi solo lo spazio che mi serve. Ad esempio : char* righe[1000];/* fisso un massimo di 1000 righe */ char templinea[1000]; /* array temporameo dove metto una sola riga */ int numerorighe = 0; /* apertura del file */.. while(! eof(fp)) /* finché non finisce il file */ { LeggiRiga(templinea); /* questa funzione legge una riga da file e la mette in templinea */ righe[numerorighe] = (char*)malloc(strlen(templinea) +1); /* c e anche il \0 */ strcpy(righe[numerorighe], templinea); numerorighe++; } Senza usare l allocazione dinamica saremmo stati costretti a dichiarare un array di caratteri da 1000 per 1000 (char linee[1000][1000];) che occupa la bellezza di 1'000'000 di bytes!!!! Con questa tecnica invece avremo occupato in memoria solo quello che effettivamente ci serve, con un incremento di prestazioni e una ottimizzazione della memoria occupata. Logicamente alla fine dell utilizzo dovremo deallocare tutta la memoria che abbiamo allocato. Per evitare problemi normalmente si tende ad inizializzare tutto l array di puntatori a NULL per poter riconoscere quali di questi puntatori andranno cancellati. for(i = 0; i < 1000; i++) righe[i] = NULL; e al termine del programma o dell utilizzo : for(i = 0; i < 1000; i++) if(righe[i]!= NULL) free(righe[i]); 3
5 Appendice B - Progettazione lineare di un programma Nella progettazione di un programma in C si procede nel mese seguente : Definizione del problema da risolvere Definizione degli input(dati necessari in ingresso), degli output (dati da mostrare in uscita) e dei dati necessari per il problema Scomposizione del problema in problemi più piccoli Analisi dei problemi più piccoli al fine di scomporli in problemi ancora più piccoli finché non si arriva ad usare le istruzioni e funzioni fondamentali del linguaggio. Considerando ad esempio il caso di un programma che debba fare la somma. Dati necessari in ingresso : le due cifre Dati da mostrare in uscita : risultato Operazioni da fare : Chiedere primo dato Chiedere secondo dato Effettuare la somma Mostrare il risultato A questo punto possiamo stendere un primo flusso del programma : int main() { int dato1; int dato2; int risultato; } dato1 = ChiediDato(); dato2 = ChiediDato(); risultato = Somma(dato1, dato2); Mostra(risultato); A questo punto ogni funzione che abbiamo creato andrà scomposta in funzioni più specifiche che a loro volta, come in una struttura ad albero, andranno scomposte fino al minimo livello possibile. Da notare che nella scomposizione del problema bisogna sempre cercare di mantenere un equilibrio nella grandezza e complessità delle funzioni. Nel nostro caso ad esempio sia per la funzione Somma, sia per la funzione Mostra si sarebbero potute usare le funzioni di sistema. Al contrario se si vuole mostrare in modo particolare (ad esempio all interno di una tabella) il risultato è necessario metterla in una funzione. Tenete conto che la grandezza e complessità va scelta in modo che non sia troppo dispersiva (perdo d occhio il flusso principale di operazioni) o troppo restrittiva (funzioni con pochissime istruzioni che avrebbero potuto essere comprensibili anche nel flusso del programma. Tenete inoltre conto che la semplicità è la chiave dell affidabilità. 4
6 Appendice C - Utilizzo dei file in modalità binaria Se necessario è possibile utilizzare, come abbiamo già visto la modalità binaria di accesso ai file. Con questa modalità abbiamo la possibilità di avere un controllo maggiore sul file. Possiamo infatti muoverci avanti e indietro all interno del file e leggere o scrivere intere parti di file. La funzioni più comuni nell utilizzo della modalità binaria sono fread, fwrite, fseek e ftell. Con la funzione fread ci permette di leggere una parte del file e di metterle in una certa zona di memoria. Il prototipo di questa funzione è : size_t fread(void *ptr, size_t size, size_t n, FILE *stream); I parametri di questa funzioni lavorano nel modo seguente: ptr è il puntatore all inizio della zona di memoria nella quale vogliamo mettere i nostri dati, size è la lunghezza di ogni elemento che vogliamo cariare in memoria, n è il numero di elementi da caricare e stream è il FILE pointer da cui dobbiamo leggere i dati. La funzione torna il numero di oggetti (non bytes) letti. Questo ci permette di controllare che tutti i dati che volevo leggere siano stati letti. Il fatto di usare i due parametri dimensione del dato e numero di dati è utile se pensiamo ai dati come a dei record di un database. Il compilatore in realtà si limiterà a leggere size*n bytes e a memorizzarli a partire dal puntatore ptr, ma ci toglie dall incombenza di calcolare noi la memoria e rimane molto più leggibile. Facciamo degli esempi : char mem[1000];... fread(mem, sizeof(mem[0]), 1000, fp); Leggerà 1000 bytes (il record è grande come un char) dal file. Con programmi più complessi, che utilizzino ad esempio strutture, la modalità binaria ci permette di leggere record per record (una struttura intera) o leggere tutti i record che dobbiamo leggere. Ad esempio struct persona { char nome[100]; char cognome[100]; };... struct persona impiegati[1000]; fread(impiegati, sizeof(struct persona), 1000, fp); Con questa fread abbiamo letto con una sola istruzione tutti i 1000 record della struttura impiegati e li abbiamo messi in memoria. La funzione fwrite è la complementare della precedente. Ha infatti gli stessi parametri e si comporta nello stesso modo a parte il fatto che scrive sul file invece che leggere dal file. Il vantaggio che ci dà la modalità binaria è inoltre quello del maggiore controllo che abbiamo sul file. Ci possiamo infatti muovere avanti e indietro all interno del file. Pensate al file binario come ad un nastro (in effetti la modalità deriva proprio da questo). Abbiamo quindi un puntatore che ci indica dove siamo all interno del file. 5
7 La funzione che serve per cambiare posizione nel file è la fseek che ha il seguente prototipo : int fseek(file *stream, long offset, int whence); Il parametro stream è il file pointer, offset è lo spostamento all interno del file dal rifermento che decidiamo e whence è il nostro riferimento che può valere : SEEK_SET Il riferimento è l inizio del file SEEK_CUR Il riferimento è la posizione corrente nel file SEEK_END Il riferimento è la fine del file Nell esempio precedente se invece di leggere tutto il file avessimo voluto leggere solo il record numero 155 sarebbe bastato scrivere : fseek(fp, sizeof(struct persona) * 155, SEEK_SET); fread(impiegati, sizeof(struct persona), 1, fp); Per conoscere invece la posizione corrente del file pointer si utilizza la funzione ftell. Il suo prototipo è : long ftell(file *stream); Viene passato alla funzione il file pointer e questa mi torna un valore maggiore o uguale a 0 se non ha errori o -1L se ne ha. Usando in combinazione queste funzioni è possibile lavorare sui vari record di un file senza doverlo necessariamente leggere tutto in memoria. Per conoscere ad esempio il numero di record contenuti nel file dell esempio precedente basta fare : long numero_record; fseek(fp, 0, SEEK_END); /* si posiziona alla fine del file */ numero_record = ftell(fp) / sizeof(struct persona); A questo punto potete usare l allocazione dinamica della memoria per allocare solo lo spazio in memoria che vi serve con notevole risparmio di risorse. 6
8 Appendice D - Utilizzo del programma make Per rendere più leggibile e maneggevole un programma in C si tende a dividere lo stesso in più file sorgenti che andranno poi uniti insieme. Molti ambienti (come il Borland o il microsoft) hanno un gestore delle dipendenze dei file integrato, ma il modo più comune, soprattutto se pensate di compilare lo stesso programma su compilatori o sistemi operativi diversi è appunto quello di usare il programma make. Il make ci permette di definire delle variabili, di definire dei target, cioè degli obbiettivi per quel tipo di esecuzione del make. Con il target possiamo ad esempio fare una parte del make che ripulisce tutti i file oggetto del progetto, o un target che compila tutto il progetto con le funzioni di debug, o ancora con opzioni diverse se volessimo differenziare il programma. Vedremo più avanti con degli esempi. Un altro strumento che il make ci dà a disposizione sono le variabili. Una variabile viene definita con il formato : VARIABILE = valore_variabile Per ricavarne il valore si usa invece : $(VARIABILE). Sicccome il make espande le variabili negli assegnamenti non è possibile fare : $(VARIABILE) = $(VARIABILE) -o perché il valore di $ variabile sarebbe accodato in un loop infinito. Per accodare un testo ad una variabile è necessario invece usare la sintassi : CC := gcc CC += -o per l assegnamento, e per l append di altri valori. Possiamo quindi iniziare a scrivere il nostro makefile. Se chiamate make senza parametri infatti viene usato il file makefile. Poniamo il caso che abbiamo un progetto il quale sia composto da tre file : main.c files.c utility.c -> dipendente da files.h -> dipendente da utility.h Il file inizierà con : # Inizio del makefile # Variabili definite dal programmatore Nome del compilatore CC = gcc VERSION = Versione 1.0 file oggetto da unire nel file finale OBJS = main.o files.o utility.o A questo punto possiamo iniziare a definire i vari target. Il primo che possiamo vedere è quello per pulire il progetto da tutti gli objs. Questa parte andrà in realtà al termine del file, perché il make chiamato senza parametri esegue il primo target del progetto clean: rm *.o per unix 7
9 del *.obj per dos Chiamando make clean tutti i file.o o.obj saranno cancellati dalla directory del makefile. Questo può essere utile se facciamo due target differenti per fare un programma da debuggare (in sviluppo) o un programma definitivo (senza debug e più snello). Cominciamo il secondo target per compilare normalmente un programma. Poniamo che il programma si debba chiamare prog01. prog01: $(OBJS) $(CC) o prog01 $(OBJS) Questa parte unisce i file oggetto che abbiamo specificato nel file eseguibile. Definiamo quindi e regole per creare i file oggetto : main.o : main.c $(CC) c main.c files.o : files.c files.h $(CC) c files.c utility.o : utility.c utility.h $(CC) c utility.c Make, per ogni file oggetto andrà a controllare lo stato di dipendenza (andando a prendere il target ad esso associato) del file oggetto dai file.c e.h ad esso correlati per ognuno di essi lancerà la linea di comando corrispondente. Una volta terminate tutte de dipendenze dei file oggetto andrà a chiamare la linea del file programma (prog01) da cui era partito ed eseguirà la linea corrispondente. In pratica per ogni modulo che aggiungete al progetto va aggiunto il file oggetto nella variabile OBJS e va aggiunta la sezione corrispondente con le dipendenze nel file aggiunto. Possiamo inoltre mettere (in unix/linux in realtà è proprio un modo di lavorare) un target con i comandi per l installazione. install: mkdir./mioprogramma1.0 mv./prog01./mioprogamma1.0 echo $(VERSION) > leggimi.txt mv./leggimi.txt./mioprogamma1.0 con questi pochi comandi (che funzioneranno solo per unix/linux) creiamo una directory dove andremo a mettere il programma. Per dos/windows dovremo usare logicamente i comandi batch corrispondenti. Il make è un programma presente in tutte le installazioni di compilatori C o C++. In realtà non è stato fatto esplicitamente per il C. E un programma che riesce ad eseguire automaticamente, come avrete già capito, una serie di operazioni ed ha una flessibilità straordinaria. L utilizzo di questo programma vi permette di portare un progetto da un sistema ad un altro con poche modifiche, mentre usando un ambiente integrato, seppur più comodo, non abbiamo questa possibilità. Tenete conto che abbiamo visto solo una piccolissima parte delle sue potenzialità. 8
10 Appendice E - Tabella codici ASCII Standard (0 127) HEX DEC CHR CTRL HEX DEC CHR HEX DEC CHR HEX DEC CHR 00 0 NUL ^@ SP ` 01 1 SOH ^A 21 33! A a 02 2 STX ^B " B b 03 3 ETX ^C # C c 04 4 EOT ^D $ D d 05 5 ENQ ^E % E e 06 6 ACK ^F & F f 07 7 BEL ^G ' G g 08 8 BS ^H ( H h 09 9 HT ^I ) I i 0A 10 LF ^J 2A 42 * 4A 74 J 6A 106 j 0B 11 VT ^K 2B B 75 K 6B 107 k 0C 12 FF ^L 2C 44, 4C 76 L 6C 108 l 0D 13 CR ^M 2D 45 4D 77 M 6D 109 m 0E 14 SO ^N 2E 46. 4E 78 N 6E 100 n 0F 15 SI ^O 2F 47 / 4F 79 O 6F 111 o DLE ^P P p DC1 ^Q Q q DC2 ^R R r DC3 ^S S s DC4 ^T T t NAK ^U U u SYN ^V V v ETB ^W W w CAN ^X X x EM ^Y Y y 1A 26 SUB ^Z 3A 58 : 5A 90 Z 7A 122 z 1B 27 ESC 3B 59 ; 5B 91 [ 7B 123 { 1C 28 FS 3C 60 < 5C 92 \ 7C 124 1D 29 GS 3D 61 = 5D 93 ] 7D 125 } 1E 30 RS 3E 62 > 5E 94 ^ 7E 126 ~ 1F 31 US 3F 63? 5F 95 _ 7F 127 DEL 9
11 Appendice F Tipi più comuni nella generazione delle CGI Type of file Extension MIME Type HTML.html,.htm text/html Text only (no markup).txt,.text text/plain Formaldehyde (formerly NetCloak).nclk text/html Formaldehyde (formerly NetForms).fdml text/html Formation (formerly Flexmail).flx,.fcn text/html Tango.qry text/html Java Class.class application/octet-stream JavaScript.js application/x-javascript GIF image.gif image/gif JPEG image.jpg,.jpeg image/jpeg MIDI files.midi,.mid audio/x-midi Quicktime movie.mov,.qt,.qtvr video/quicktime Mpeg movie.mpg,.mpeg vido/mpeg Director/Shockwave.dir application/x-director Director/Shockwave.dcr application/x-director Director/Shockwave.dxr application/x-director Flash.swf application/x-shockwave-flash AIFF sound file.aiff audio/x-aiff AU sound file.au audio/baisc RealAudio.ra,.rm,.ram,.rpm application/x-pn-realaudio Wav sound file.wav application/x-wav Acrobat (PDF) format.pdf PostScript.ps application/postscript RTF (Rich Text Format).rtf application/rtf Word document.word,.doc application/msword ClarisWorks.works (recommended) Powerpoint.ppz application/ppt Excel document.xl,.xls,.xlt application/excel Lotus application/lotus Binhex files.hqx application/mac-binhex40 GZ files.gz application/x-gzip MacBinary.bin application/x-macbinary StuffIt files.sit application/x-stuffit Tar files.tar application/x-tar Zip files.zip application/zip PC Executable.exe application/octet-stream 10
Gestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliStruttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura
Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Dettagliwww.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
DettagliAndrea Bobbio CODIFICA DELL'INFORMAZIONE E CODICI BINARI Anno Accademico 1996-1997 1 Codiæca dell'informazione 2 La codiæca dell'informazione sistemi di elaborazione operano al loro interno soltanto I
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliIl comando Make: : uno strumento per la compilazione ed esecuzione di software applicativo. A. Murli - Cacolo Scientifico a.a.
Il comando Make: : uno strumento per la compilazione ed esecuzione di software applicativo a.a.2007/2008 1 Un software si compone di diversi moduli, generalmente memorizzati in file diversi. Il programma
DettagliLe operazioni di allocazione e deallocazione sono a carico del sistema.
Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione
Dettagli2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento
1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliFormattazione. ü Introduzione
Formattazione ü Introduzione Abbiamo fatto un bel po' di lavoro con Mathematica, vero? Abbiamo visto come creare, valutare, semplificare, disegnare, programmare, cucinare, pescare, ed anche come sfilare
DettagliRISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
DettagliInformatica pratica. File e cartelle
Informatica pratica File e cartelle Riassunto della puntata precedente Abbiamo visto a cosa serve un word processor: Quali sono i suoi benefici rispetto alla macchina da scrivere tradizionale Quali sono
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliFile, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
Dettagli[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008
Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti
DettagliTutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...).
ESEMPIO DI QUERY SUL FILE Formario_minuscolo Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...). Durante l interrogazione,
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliIL MIO PRIMO SITO: NEWS
Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un
DettagliAlla scoperta della nuova interfaccia di Office 2010
Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliLa Stampa Unione. Individuare la lista indirizzi per la Stampa Unione
La Stampa Unione La Stampa unione consente di personalizzare con il nome, il cognome, l'indirizzo e altri dati i documenti e le buste per l'invio a più destinatari. Basterà avere un database con i dati
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliGuida all uso. Esso sarà riportato nell intestazione. Vediamo:
faxm@il è un applicazione che permette agli utenti dei sistemi di telefonia IP di inviare, ricevere e gestire fax. Il tradizionale sistema di fax è ormai superato. Con faxm@il non riceviamo né spediamo
DettagliPer effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra
4.5 Stampa 4.5.1 Stampare semplici fogli elettronici 4.5.1.1 Usare le opzioni di base della stampa Per effettuare la stampa di una cartella di lavoro si accede al comando Stampa dal menu File o si utilizza
DettagliAutomatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliTRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF
TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF Come da disposizioni di inizio stagione, alcune Delegazioni provinciali hanno richiesto la trasmissione dei referti arbitrali solo tramite fax o tramite mail.
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliL archiviazione della posta elettronica può aiutarci a recuperare spazio senza costringerci a cestinare documenti importanti
L archiviazione della posta elettronica può aiutarci a recuperare spazio senza costringerci a cestinare documenti importanti Potete immaginare un ufficio senza archivio? Sarebbe un inferno. Dover rintracciare
DettagliISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)
ISTRUZIONI XCODE Autore: Luca Florio (luca.floriopolimi.it) XCode è l ambiente di sviluppo fornito da Apple che permette la creazione di applicazioni OSX e iphone. In questa guida vedremo come installarlo
DettagliLezione 10: Librerie e compilazione separata
Lezione 10: Librerie e compilazione separata Laboratorio di Elementi di Architettura e Sistemi Operativi 16 Maggio 2012 Calendario della parte finale del corso Mer 23 Maggio ultima lezione sul C Gio 24
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
Dettagliper immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1
Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella
DettagliIl Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
DettagliRaggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
DettagliLe query di raggruppamento
Le query di raggruppamento Le "Query di raggruppamento" sono delle Query di selezione che fanno uso delle "Funzioni di aggregazione" come la Somma, il Conteggio, il Massimo, il Minimo o la Media, per visualizzare
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliIntroduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma
Introduzione Macro macro istruzione Sequenza di comandi memorizzati programma Scopo: eseguire più volte una sequenza di operazioni che a mano sarebbero noiose e ripetitive, se non proibitive Le macro Le
DettagliEXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,
EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area
DettagliEsempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante
Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)
DettagliProgrammare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliUso delle tabelle e dei grafici Pivot
Uso delle tabelle e dei grafici Pivot 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella riassuntiva basata su condizioni multiple che hanno punti di
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliDati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi
Tipi di dato testuali Caratteri Stringhe Caratteri e stringhe 5 Tipi di dato testuali I programmi visti finora erano in grado di elaborare esclusivamente informazioni numeriche Numeri eri (), numeri reali
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliPROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
Dettaglilo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
DettagliRAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL
RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL 1 RAPPRESENTAZIONE GRAFICA Per l analisi dati con Excel si fa riferimento alla versione 2007 di Office, le versioni successive non differiscono
DettagliCODIFICA DELL INFORMAZIONE E CODICI BINARI
Codifica dell informazione 1 CODIFICA DELL INFORMAZIONE E CODICI BINARI Andrea Bobbio Anno Accademico 2001-2002 Codifica dell informazione 2 La codifica dell informazione I sistemi di elaborazione operano
DettagliIl Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10
Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro
DettagliINTRODUZIONE I CICLI DI BORSA
www.previsioniborsa.net 1 lezione METODO CICLICO INTRODUZIONE Questo metodo e praticamente un riassunto in breve di anni di esperienza e di studi sull Analisi Tecnica di borsa con specializzazione in particolare
DettagliGESTIONE CANTINA MANUALE UTENTE. @caloisoft GESTIONE CANTINA 1
GESTIONE CANTINA MANUALE UTENTE @caloisoft GESTIONE CANTINA 1 IL PROGRAMMA CANTINA Si tratta di un programma per la gestione di una cantina che permette di mantenere un archivio aggiornato di tutte le
DettagliSistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
DettagliGuida di riferimento dei codici a barre
Guida di riferimento dei codici a barre Versione 0 ITA 1 Introduzione 1 Panoramica 1 1 Questa guida di riferimento contiene informazioni sulla stampa dei codici a barre attraverso l invio diretto di comandi
DettagliGuida all uso del servizio faxm@il
faxm@il è un applicazione che permette agli utenti dei sistemi di telefonia IP di inviare,ricevere e gestire fax. Il tradizionale sistema di fax è ormai superato. Con faxm@il non riceviamo né spediamo
Dettaglidall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
DettagliProcedura per creare un archivio storico remoto nelle 24 ore giornaliere
Procedura per creare un archivio storico remoto nelle 24 ore giornaliere La seguente procedura ha lo scopo di illustrare il metodo di creazione di un archivio storico fotografico nell arco delle 24 ore
DettagliLUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
DettagliProgrammazione. Laboratorio. Roberto Cordone DI - Università degli Studi di Milano
Gestione della memoria p. 1/11 Programmazione Laboratorio Roberto Cordone DI - Università degli Studi di Milano Tel. 02 503 16235 E-mail: roberto.cordone@unimi.it Ricevimento: su appuntamento Lezioni:
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliNOZIONI BASE PER ESERCITAZIONI
NOZIONI BASE PER ESERCITAZIONI Shahram Rahatlou Laboratorio di Calcolo, Anno Accademico 2015-16 http://www.roma1.infn.it/people/rahatlou/labcalc/ Sistema Operativo Hardware Software n Routine e programmi
DettagliPer chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliIl memory manager. Gestione della memoria centrale
Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliNell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo
Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo - la durata del mutuo in anni - l importo del mutuo
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di
Dettagli[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina
[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina Creare cartelle per salvare il lavoro] Per iniziare dobbiamo imparare a gestire quello spazio bianco che diverrà la
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliCome masterizzare dischi con Nero 11
Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento
DettagliPulire IM. Non tutti sanno che solo una corretta e regolare pulizia nelle cartelle di IM, assicura un funzionamento longevo del programma
Pulire IM Non tutti sanno che solo una corretta e regolare pulizia nelle cartelle di IM, assicura un funzionamento longevo del programma Vediamo come fare questa pulizia attraverso due passaggi (teniamo
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliCos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)
Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: V. Lonati Progetto Compagnie aeree valido per la prova in itinere di gennaio 2013 1 Il problema Numerose compagnie aeree si spartiscono il traffico aereo
DettagliOffice 2007 Lezione 02. Le operazioni più
Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
DettagliSistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
Dettagli