Tullio Nicolussi. Il COBOL. J u r a s s i c B o o k s

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Tullio Nicolussi. Il COBOL. J u r a s s i c B o o k s"

Transcript

1 Tullio Nicolussi Il COBOL J u r a s s i c B o o k s

2 Title: Il COBOL Author: Tullio Nicolussi Acquisitions Editor: Bes Delsec Technical Editor: Tullio Nicolussi Production Editor:Bes Delsec Production Manager: Tullio Nicolussi Book Designer: Anna Cover Designer: Anna Copyright 2008 by Jurassic News Published in Italy First edition 2009 ISBN: na This publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, only in integral form. Distribution on-line from Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. For general information on our other products and services or to obtain technical support, please contact our Customer Care Department at Library of Congress Cataloging-in-Publication Data Nicolussi, Tullio. Il COBOL / Tullio Nicolussi. - 1st ed. ISBN na 1. Computer programming 2. Computer language 3. Computer manual. TRADEMARKS: Jurassic News, is not associated with any product or vendor mentioned in this book

3 Sommario Introduzione...4 Overview...6 Il primo programma...10 Il Bubble Sort in COBOL...12 Le Variabili Strutturate...19 La Gestione dei File...26 La Gestione del Video...32 Conclusione

4 COBOL Introduzione Rileggendo la prima stesura di questo articolo ho visto (con orrore) che avevo scritto le solite cose che si dicono quando si spolvera un vecchio software e in particolare un linguaggio di programmazione che non gode più dei favori degli sviluppatori, cioè qualcosa come: - che questo è un peccato, che in realtà il linguaggio non ha nulla da invidiare ai più moderni idiomi, che ancora viene usato con profitto,... e via di questo passo fra un rammarico e un sospiro. Il bello è che per il COBOL tutto questo corrisponde alla verità! Ma perché allora quando se ne sussurra il nome gli studenti sghignazzano, i guro della programmazione si fanno due volte il segno della croce (che vuol dire che invocano il dio C++) e i colleghi più giovani scuotono il capo e mentre si allontanano si coglie chiara la frase...pronto per la pensione...? Ehi, un po di rispetto, che diamine! Per essere onesti non si deve negare che qualche acciacco ahinoi il linguaggio per eccellenza della programmazione gestionale non riesce a nasconderlo. Qualche iniezione di Gerovital in forma di query SQL è valsa a migliorarne taluni aspetti nascondendo le artriti reumatoidi dei file indexed. Parimenti le stampelle della programmazione per eventi sono valse a traghettare l idioma nelle acque assai agitate della programmazione Windows. Per finire la clonazione sotto forma di linguaggi embedded nei sistemi ERP (vedi ad esempio SAP), hanno arginato il fuggi fuggi generale dei cervelli programmatoidi che rischiava di lasciare milioni di righe di codice prive di qualsiasi possibilità di manutenzione. Eppure ancora oggi dove l idea di classe regna indiscussa, il COBOL rimane una buona scelta in molte circostanze. Questa considerazione è valida per la quasi totalità dei linguaggi di programmazione che sono stati inventati nella storia dell informatica (parecchie centinaia se contiamo anche i dialetti). Dipende tutto dalle circostanze in cui si opera, dai sistemi di cui si dispone e dalle prestazioni dei tool di sviluppo dei quali possiamo avvalerci. La fortuna di un linguaggio è determinata da una serie di circostanze contingenti che dipendono molto anche dalle mode, oltre che naturalmente dallo scopo con il quale esso viene progettato. L Assembly ad esempio nasce con i microprocessori e rimane l indiscusso re della programmazione a basso livello. Non è stato inventato niente di meglio perché è perfetto 4

5 così com è. I problemi di concorrenza si pongono quando più linguaggi si sovrappongono per funzionalità specifiche dell ambiente in cui operano. Ad esempio VBSCRIPT piuttosto che PHP, Python piuttosto che Ruby, etc, nella programmazione Web. Il COBOL ha rappresentato per un paio di decenni la soluzione indiscussa nell ambito della programmazione gestionale e rimane tutt ora uno strumento molto usato in questo ambito. Fino a pochi anni fa si calcolava esistessero molte più righe di COBOL al mondo di quante ne potesse vantare il C. Non sono a conoscenza del rapporto esistente in questo momento ma credo che sebbene il C possa vantare la palma del vincitore in questa gara, il COBOL non sia molto distante dal podio. 5

6 COBOL - Overview L insegnamento del linguaggio COBOL è stato per anni appannaggio della scuola secondaria a indirizzo tecnico. Qualunque istituto pretendesse di sfornare programmatori doveva tenerne conto ed approntare per esso specifici corsi. Le banche e la finanza in genere hanno assorbito moltissima forza lavoro dedicata al settore dell elaborazione dei dati e se andavi a lavorare lì non avevi speranza: era COBOL a pranzo e cena! Appena possibile le scuole si sono liberare da questo fardello, perché? A mio giudizio le cause sono diverse ma fra le principali non mancano le seguenti: - una pretesa di modernità, visto che ad un certo punto, come detto prima, se parlavi di COBOL venivi deriso; - la mancanza di insegnanti preparati unita ad una certa difficoltà, peraltro obiettiva, di insegnare la programmazione usando questo linguaggio; - la diffusione del Personal Computer e la conseguente diffusione di linguaggi più semplici, anche e meno potenti, come ad esempio il Basic. Delle tre a mio giudizio l ultima è quella chiave: se trovi il Basic nella macchina finirai per usare solo quello! Che dire della difficoltà di apprendimento della quale il linguaggio è stato accusato? Il problema nasce tutto dalla sua prolissità. Infatti il COBOL nasce con intenti molto ambiziosi come la cross-compilation ad esempio; è possibile sviluppare su un sistema e trasferire su un altra macchina, purché supportata. Il contesto dove viene messo a punto è quello dei sistemi mainframe e mini dipartimentali e soprattutto per i primi la cross-compilation è essenziale. La pesantezza della sintassi viene, diciamo così, aggravata dalla ricchezza delle estensioni. Una istruzione può essere usata in forma semplice ma può essere estremamente strutturata per svolgere molteplici compiti, essenzialmente di tipo ripetitivo. Facciamo un esempio per capire meglio questo punto. Prendiamo l istruzione di addizione che si può scrivere con l seguente sintassi: ADD A TO B. che tradotto sarebbe somma il contenuto della variabile A con il contenuto della variabile B e metti il risultato in B. Qualcosa come: B = B + A Per incrementare un contatore di una unità si userebbe: ADD 1 TO INDICE Fino a qui nulla di particolarmente sconvolgente, la sintassi è leggermente diversa rispetto ai linguaggi correnti che per la maggior parte 6

7 utilizzano una notazione tipo formula, che fra l altro è possibile utilizzare anche in COBOL scrivendo l istruzione precedente come: COMPUTE IND = IND + 1. E se dobbiamo sommare una serie di numeri? ADD N1 N2 N3 TO RIS. ADD 123,67 TO R1 ROUNDED R2 R3. Ancora, è anche possibile che non si voglia sporcare il valore dell operando ottenendo un comportamento più classico che prevede lo store del risultato in una variabile a parte. Per fare ciò si usa una variante dell istruzione ADD: Che, come avrete certo capito significa: ADD IMPORTO IVA GIVING IMPORTO-IVATO. RIS = RIS + N1 + N2 + N3 Ma le possibilità non si esauriscono qui. Consideriamo lo statement seguente: ADD A1 A2 A3 TO B1 B2 B3 B4. Questa sintassi è meno intuibile e significa: somma i valori A1, A2 e A3 poi aggiungi questo risultato alle variabile B1, B2, B3 e B4. Ovviamente è sempre possibile espandere l istruzione in più statement ottendeno ad esempio: ADD A1 A2 A3 TO R. ADD R TO B1. ADD R TO B2. ADD R TO B3. ADD R TO B4. Qualcuno degli operandi che accoglieranno il risultato possono essere arrotondati aggiungendo la specifica opzione ROUNDED dopo i nome, come in: Si capisce che la sintassi del linguaggio è molto articolata e questo mette sicuramente in difficoltà chi cerchi di utilizzarlo leggendo un manuale. L istruzione MOVE è l esempio più eclatante, se vogliamo, ad onta della sua semplicità (serve per caricare i valori nelle variabili), infatti essa è ricchissima di varianti, al punto che le pagine dei manuali ad essa dedicata scoraggiano il malcapitato che volesse imparare il linguaggio da autodidatta basandosi solo sulla documentazione tecnica. L istruzione MOVE carica i valori nelle variabili, come in: MOVE 1 TO INDICE. MOVE N1 TO R2. Niente di più semplice, apparentemente. Però qualsiasi manuale COBOL che ne riporta la descrizione e sintassi completa occuperà pagine e pagine! Un altro aspetto del linguaggio può essere chiamato in causa per 7

8 giustificarne la difficoltà di apprendimento, ed è la sintassi rigida detta in gergo informatico a campi. Significa che ogni elemento del linguaggio deve stare in certe zone definite della riga. Retaggio derivato dall uso delle schede perforate come la lunghezza di 72 caratteri massima e la necessità di distinguere fisicamente gli elementi di un programma. Per creare un programmatore COBOL professionista una azienda deve essere disposta ad investire almeno tre anni di formazione/ affiancamento e questo oggigiorno viene considerato un costo, piuttosto che un investimento. C è da dire un ultima cosa sull uso del linguaggio, che è la seguente: pochi, se non addirittura pochissimi, programmatori utilizzano la ricchezza sintattica del linguaggio. Nel tempo si è creato in tutte le aziende una sorta di lessico famigliare, per dirla alla Gizburg, che prevede l utilizzo di costrutti il più elementare possibile, anche per una ragione di manutenzione del software stesso. Le nuove generazioni di programmatori e i tempi di consegna sempre più stringenti non lasciano speranze di procedere altrimenti. Forse esiste un assioma che implica la longevità di un linguaggio di programmazione direttamente correlata con la ricchezza sintattica. Succede che all inizio esce una versione spartana e minimale, poi a furia di aggiungere features si finisce per snatuare l idea originale e si rende la curva di apprendimento sempre più ripida e lunga. Autorevoli esempi li troviamo nel Perl, nel PHP e nel Basic. Dovuta alla ricchezza della sintassi deriva la difficoltà nel costruire un compilatore, aumentata dal fatto che il linguaggio possiede obbligatoriamente embedded capacità di gestione per i file indicizzati (che come vedremo nel prosieguo di questa serie è la vera forza del COBOL). I compilatori professionali sono costosi e inizialmente indisponibili sulle piattaforme micro, con la lodevole eccezione dei sistemi che supportano il CP/M. La diffusione del personal computer in ambito professionistico ha cambiato molto le cose. In fondo una rete di PC vale quanto un mainframe (non sempre, ma è un discorso che ci porterebbe lontano). Per quanto accennato sopra il COBOL si è fatta una cattiva fama e gli ambienti, diciamo così, progressisti non hanno esitato a vituperarne l utilizzo. Se questo è stato un bene o il contrario non sta a me decidere. Da un lato si è persa una professionalitè elevata, dall altro i nuovi idiomi, più facili all approccio, hanno permesso a molte persone l avvicinarsi alla programmazione. Ci sono dei pro e dei contro, come in tutte le cose. Dopo questa lunga ma doverosa panoramica sulla filosofia del linguaggio COBOL veniamo a parlare di cose pratiche. Prima di tutto 8

9 bisogna procurarsi un compilatore se si vuole seguire con profitto il corso che proponiamo. - Bravo! E dove ne trovo uno?. Tranquilli, è più semplice di quanto si creda. Rivolgendosi all Open Source è possibile recuperare un buon compilatore che gira con GCC (che erroneamente viene considerato un compilatore di codice C, in realtà è uno dei cross compiler più flessibili che ci sono in giro). Se decidete di seguire questa strada il prodotto si chiama OpenCobol e si possono scaricare i sorgenti da questo link: Scelte alternative possono essere le versioni datate che qualche utente a volte svende (anche se teoricamente non sarebbe legalmente ineccepibile) su ebay. La Microsoft ha commercializzato per un certo tempo un compilatore per Windows chiamato Microsoft COBOL. Altra ditta specializzata è la MicroFocus che costruisce compilatori per tutte le piattaforme ed ha anche una versione educational molto bella chiamata Personal COBOL che viene venduta in libreria (non in Italia). Si veda la prova software in questo fascicolo. Un compilatore molto diffuso all epoca delle reti Novell era un certo MBP COBOL, prodotto da una ditta tedesca (la MBP, appunto), il cui acronimo non chiedetemi per cosa sta :-). Una fonte alternativa ma molto valida è fornita dal retro computing (se no che ci staremmo a fare?). E possibile che se il vostro retro computer preferito supporta il CP/M, troviate in giro le immagini di un compilatore. magari non sarà una scheggia, ma che importa? Ad esempio per Apple IIe sotto CP/M la Microsoft (sì, sempre lei) ha commercializzato un compilatore chiamato COBOL-80, elemento di una serie di prodotti il cui esponente più famoso è il BASIC-80. Su SurgeForce.org si possono reperire vari progetti che hanno a che fare con l argomento. Uno di questi propone un compilatore minimale per Windows, chiamato Tiny Cobol. Lo abbiamo scaricato e provato trovandolo per la verità non troppo esaltante... Ancora, all indirizzo: si trova un prodotto commerciale chiamato NETCobol, adatto all ambiente.net che sfrutta la IDE di Visual Studio. Ne esiste anche una versione Student, se volete provarci... Insomma non ci sono scuse del tipo non trovo un compilatore in giro :-) 9

10 10 Il primo programma A seconda dell ambiente operativo che avete scelto dovete cominciare a scrivere il sorgente dei programmi. Alcuni tools prevedono un input guidato, ad esempio con i tab impostati per muoversi fra le varie zone nelle quali è divisa la riga. Vi ricordo che i primi sei catarreri della riga sono riservati alle label. Il settimo carattere contiene un eventuale controllo di riga: il simbolo - per la continuazione dalla riga precedente, * per una riga di commento (da qui il verbo asteriscare che usano i veri programmatori), / per ordinare il salto pagina alla stampante sulla quale andiamo a ottenere il listing del sorgente. Dall ottavo carattere inizia la ZONA A e al 12 carattere la ZONA B. Il primo programma è visibile nel riquadro Listato 1 che ora andiamo ad eseminare in dettaglio AAAABBBBBBBBBBBBBBBBBBBB... IDENTIFICATION DIVISION. PROGRAM-ID HELLOWORLD. ENVIRONMENTAL DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL POINT IS COMMA. DATA DIVISION. PROCEDURE DIVISION. MAIN SECTION. INIZIO. DISPLAY HELLO WORLD. Abbiamo scritto il classico programma hello World e come si vede l idea della prolissità colpisce abbastanza. Rispetto ad un Basic che con una semplice istruzione: 10 PRINT HELLO WORLD avrebbe fornito lo stesso risultato, in COBOL sono state necessarie molte più righe. L utilità dell organizzazione del sorgente con molte parti dichiarative sarà molto più chiara nel prosieguo del corso che abbiamo per ora solo introdotto. C è da dire comunque, a consolazione di chi si è spaventato da subito, che i programmatori si limitano fare un copia incolla da un template. Oserei dire che moltissimi di essi nemmeno sarebbero capaci di scrivere da zero l intera parte dichiarativa: semplicemente non la possono ricordare, dopo anni che non se ne preoccupano! Esaminando il primo sorgente evidenziamo gli aspetti essenziali del linguaggio. Prima di tutto il token di chiusura di uno statement è il punto e ogni riga, come si diceva, deve concludersi entro 72 caratteri, punto compreso. La regola dei compilatori è ignorare tutto ciò che eccede il 72-simo carattere. Il sorgente è diviso in DIVISION che ne indi-

11 viduano le quattro parti principali. L IDENTIFICATION DIVISION come dice il nome è deputata a contenere delle meta-istruzioni che servono all identificazione del programma. Una di queste informazioni è il nome del programma stesso la cui composizione segue le regole dell ambiente operativo. Non necessariamente il PROGRAM-ID corrisponde al nome del binario compilato sul file system, esso è un nome interno al quale fare riferimento ad esempio se il sorgente fosse in una libreria di funzioni. La ENVIRONMENT DIVISION specifica l ambiente dove il programma viene sviluppato rispetto alla sua destinazione finale. Ricordate che il COBOL è crossplatform? In ambiente Personal Computer queste specifiche hanno ormai poco senso e anzi i compilatori sono stati di fatto alleggeriti della capacità di compilare per diversa piattaforma. Rimane quindi sostanzialmente una divisione figurativa che serve al più per specificare alcune particolarità che si intendono usare, come ad esempio l utilizzo della virgola come separatore dei decimali. La DATA DIVISION non è altro che la parte di sorgente dove si dichiarano le variabili. In COBOL variabili e costanti devono essere dichiarate tutte in questa divisione dove trovano posto anche altre strutture informative come ad esempio i file sequenziali o con chiave, le specifiche di ordinamento, etc... Infine la PROCEDURE DIVISION ospita il codice che viene organizzato in sezioni. Tradizionalmente si nomina la prima sezione MAIN SECTION, anche se il nome MAIN non è obbligatorio (potrebbe essere chiamata INIZIO o qualsiasi altra cosa piaccia). Poi abbiamo inserito anche la parola INIZIO che funge da label. Si usa, ma anche questo non è obbligatorio. Per completare la disamina del primo sorgente diciamo che l istruzione DISPLAY stampa a video una costante letterale (è il nostro caso) o il valore di una variabile. Il programma viene eseguito dalla prima sezione che si incontra fino al termine della stessa o fino alla conclusione del sorgente. Esiste una specifica istruzione STOP PRO- GRAM o semplicemente STOP che conclude l elaborazione. Tradizionalmente i sorgenti vengono scritti in maiuscolo in omaggio ai vecchi terminali dei mainframe anni 60. I compilatori oggigiorno accettano anche il minuscolo che negli ultimi anni è diventata una pratica seguita da moltissimi programmatori, specialmente se appartenenti alle nuove generazioni, abituati ai linguaggi correnti. Il Cobol rimane però unsensitive, come il Basic: non distingue fra maiuscole e minuscole. Pur esistendo qualche approccio alla pratica dell interpretazione, il COBOL nasce come linguaggio 11

12 compilato. La rigida organizzazione dei sorgenti è a supporto della creazione del codice binario. Il COBOL si presenta quindi praticamente sempre con la classica configurazione di sviluppo editorcompilazione-esecuzione. L ambiente di eccellenza per l esecuzione di programmi COBOL è l interfaccia a caratteri, proprio per la forma spartana dell I/O tipica del linguaggio. Come abbiamo detto nell introduzione non mancano comunque implementazioni a finestre realizzate con opportune estensioni del linguaggio stesso che dimostra una certa dose di adattabilità grazie soprattutto alle estensioni ad-hoc che le aziende produttrici vi inseriscono a forza per dare al loro prodotto una parvenza di modernità. Già dalla nascita comunque è stata prevista una sorta di gestione a form del video. Una specifica SECTION, esattamente la SCREEN SEC- TION, è deputata alla descrizione dell interfaccia. Il bubble sort in COBOL Un esempio più articolato è riportato per intero nei box delle pagine seguenti. Si tratta di una implementazione dell algoritmo classico di bubble sort. Penso sia noto a tutti il meccanismo di questo semplice algoritmo di ordinamento: si tratta di spostare degli elementi in un vettore effettuando dei ripetuti scambi con gli elementi adiacenti fino ad ottenere un vettore ordinato. Maggiori approfondimenti si possono trovare sul fascicolo numero 1 di Jurassic News. Commentiamo ora le righe che incontriamo nel sorgente per introdurre le novità rispetto a quanto visto finora. Nella WORKING-STORAGE SECTION abbiamo dichiarato due costanti (in realtà non esiste una dichiarazione speciale per variabili immodificabili, il fatto che siano costanti lo decidiamo noi). 01 MAX COMP-1 VALUE LIMITE COMP-1 VALUE Il tipo COMP-1 è il classico Integer che occupa una o più coppie di byte a seconda dell implementazione del compilatore. Sono variabili numeriche senza una definizione di formato. A cominciare dalla variabile VET- TORE abbiamo il primo esempio di variabile strutturata. VETTORE è il nome della nostra variabile dichiarata a livello 01 che contiene un sotto-livello, individuato dal livello 12

13 05 che ne rappresenta il contenuto strutturato. 01 VETTORE. 10 ELEMENTO COMP-1 OCCURS VETTORE. 05 EL-VETTORE COMP-1 OCCURS EL-VETTORE è vettore di elementi di tipo COMP-1. Quando in una istruzione ci si riferisce alla variabile VETTORE si sta parlando dell intera struttura; quando ci si riferisce a EL-VETTORE si sta parlando di una componente che andrà individuata tramite il classico meccanismo degli indici: MOVE 12 TO EL-VETTORE(34) In questo specifico caso, cioè nella necessità di dichiarare vettori o matrici la strutturazione è obbligatoria. Infatti lo standard prevede che una variabile di livello 01 non possa essere indicizzata. C è un motivo pratico per questo: il livello 01 indica al compilatore anche la classe di storage della variabile, cioè i livelli 01 sono immagazzinati a partire dall indirizzo intero di memoria, cosa che non succede per i sotto-livelli. Se avessimo ad esempio un ambiente a 64 bit, quindi con word di quattro byte e il tipo COMP-1 fosse un intero da due byte, allora ogni dichiarazione di COMP-1 a livello 01 occuperebbe comunque una word, sprecando due byte di memoria. Una dichiarazione 01 VETTORE COMP-1 OCCURS 1000 occuperebbe 4000 byte di memoria, contro i 2000 occupati dalla dichiarazione: Un altro esempio di variabile strutturata è quella che contiene un orario: 01 ORA. 05 ORA-HH COMP ORA-MM COMP ORA-SS COMP ORA-CC COMP-1. In questo caso quattro variabili semplici di tipo COMP-1 sono raggruppate al solo fine di chiarezza, ma verranno elaborate singolarmente. Nella dichiarazione della variabile TOT-SECONDI troviamo un altra forma di dichiarazione di variabile numerica. 01 TOT-SECONDI PIC 9(12)V9(2) VALUE ZERO. PIC 9(12)V9(2) significa 12 cifre intere seguite da due decimali. Passiamo ora alla desamina del codice premettendo che esso è stato strutturato in maniera molto spinta (tipo Pascal per intenderci) cercando di introdurre i concetti di esecuzione dei singoli pezzi come fossero parti staccate (procedure o funzioni). INIZIO. * --- loop iterazioni PERFORM ESEGUI THRU ESEGUI-EXIT MAX TIMES. * --- calcolo della media COMPUTE MEDIA = TOT-SECONDI / MAX. * --- display dei risultati. DISPLAY TOTALE SECONDI IMPIEGATI: TOT-SECONDI. DISPLAY 13

14 IDENTIFICATION DIVISION. 14 PROGRAM-ID. BUBBLE. *********************************** * Titolo : Bubble Sort *********************************** DATE-WRITTEN. DATE-COMPILED. DIC/97. GEN/98. *********************************** ENVIRONMENT DIVISION. *********************************** CONFIGURATION SECTION. * SOURCE-COMPUTER. PENTIUM-PC166. OBJECT-COMPUTER. PENTIUM-PC166. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. /********************************** DATA DIVISION. *********************************** WORKING-STORAGE SECTION. *********************************** * ---- costanti 01 MAX COMP-1 VALUE LIMITE COMP-1 VALUE * --- variabili 01 VETTORE. 05 EL-VETTORE COMP-1 OCCURS I COMP SCAMBI COMP TOT-ITERAZIONI PIC 9(12). 01 J COMP TOT-SCAMBI PIC 9(12). 01 TEMP COMP ORA. 05 ORA-HH COMP ORA-MM COMP ORA-SS COMP ORA-CC COMP ORA-I. 05 ORA-I-HH COMP ORA-I-MM COMP ORA-I-SS COMP ORA-I-CC COMP ORA-F. 05 ORA-F-HH COMP ORA-F-MM COMP ORA-F-SS COMP ORA-F-CC COMP TOT-SECONDI PIC 9(12)V9(2) VALUE ZERO. 01 MEDIA PIC 9(5)V9(2) VALUE ZERO. 01 DIFF-SECONDI PIC 9(12). 01 SECONDI-INIZIALI PIC 9(12). 01 SECONDI-FINALI PIC 9(12). * ---- Variabili per il generatore di numeri casuali 01 MODULO COMP-1 VALUE MOLTIPLICATORE COMP INCREMENTO COMP SEME COMP-1. /**************************************** PROCEDURE DIVISION. **************************************** MAIN SECTION. **************************************** INIZIO. **************************************** * --- loop iterazioni PERFORM ESEGUI THRU ESEGUI-EXIT MAX TIMES. * --- calcolo della media COMPUTE MEDIA = TOT-SECONDI / MAX. * --- display dei risultati. DISPLAY TOTALE SECONDI IMPIEGATI: TOT-SECONDI. DISPLAY MEDIA PER VETTORE : MEDIA USCITA. STOP RUN. ESEGUI. PERFORM CARICA-VETTORE THRU CARICA-VETTORE-EXIT. * --- esecuzione sort CALL GTIME USING ORA-I. display ora iniziale: ORA-I-HH : ORA-I-MM : ORA-I-SS : ORA-I-CC. MOVE 1 TO SCAMBI. PERFORM LOOP-SCAMBIO THRU LOOP-SCAMBIO-EXIT UNTIL SCAMBI IS EQUAL ZERO. CALL GTIME USING ORA-F. display ora finale : ORA-F-HH : ORA-F-MM : ORA-F-SS : ORA-F-CC. MOVE ZERO TO DIFF-SECONDI. PERFORM CALCOLA-SECONDI THRU CALCOLA-SECONDI-EXIT. COMPUTE TOT-SECONDI = TOT-SECONDI + (DIFF-SECONDI / 100). DISPLAY TOTALE SECONDI : TOT-SECONDI. ESEGUI-EXIT. EXIT. LOOP-SCAMBIO. MOVE ZERO TO SCAMBI. PERFORM CONFRONTA THRU CONFRONTA-EXIT

15 LOOP-SCAMBIO-EXIT. EXIT. CONFRONTA. VARYING I FROM 1 BY 1 UNTIL I = LIMITE. IF EL-VETTORE( I + 1 ) IS < EL-VETTORE( I ) MOVE EL-VETTORE( I + 1 ) TO TEMP MOVE EL-VETTORE( I ) TO EL-VETTORE( I + 1 ) MOVE TEMP TO EL-VETTORE( I ) MOVE 1 TO SCAMBI. CONFRONTA-EXIT. EXIT. CARICA-VETTORE. CALL GTIME USING ORA. COMPUTE MOLTIPLICATORE = ORA-SS * ORA-MM. COMPUTE SEME = ORA-CC * ORA-SS. COMPUTE INCREMENTO = ORA-CC * ORA-MM. PERFORM NUMERO-RANDOM THRU NUMERO-RANDOM-EXIT VARYING I FROM 1 BY 1 UNTIL I > LIMITE. CARICA-VETTORE-EXIT. EXIT. NUMERO-RANDOM. MOVE SEME TO EL-VETTORE(I). COMPUTE SEME = (MOLTIPLICATORE * SEME + INCREMENTO). COMPUTE SEME = MODULO - (SEME / MODULO) * SEME. IF SEME < 0 COMPUTE SEME = -SEME. NUMERO-RANDOM-EXIT. EXIT. CALCOLA-SECONDI. * --- calcola il numero di secondi occorsi fra i due orari. COMPUTE SECONDI-INIZIALI = ORA-I-HH * ORA-I-MM * 60 + ORA-I-SS. COMPUTE SECONDI-INIZIALI = SECONDI-INIZIALI * ORA-I-CC. COMPUTE SECONDI-FINALI = ORA-F-HH * ORA-F-MM * 60 + ORA-F-SS. COMPUTE SECONDI-FINALI = SECONDI-FINALI * ORA-F-CC. COMPUTE DIFF-SECONDI = SECONDI-FINALI - SECONDI-INIZIALI. CALCOLA-SECONDI-EXIT. EXIT. 15

16 MEDIA PER VETTORE: MEDIA. USCITA. STOP RUN. C è una iterazione iniziale che richiama la sezione ESEGUI. La sintassi PERFORM ESEGUI THRU ESEGUI- EXIT MAX TIMES. Significa: esegui un numero di iterazioni pari al valore contenuto in MAX (che abbiamo dichiarato nella Working al valore ) delle istruzioni comprese nella sezione INIZIO per finire con quelle nella sezione ESEGUI-EXIT. Fatta questa iterazione c e un calcolo dei secondi medi impiegati, la stampa a video dei risultati e l uscita dal programma. La sezione ESEGUI, che abbiamo visto viene iterata volte, per avere un risultato medio attendibile, prevede i seguenti passaggi: caricamento del vettore con numeri pseudo-casuali, la rilevazione del tempo iniziale, il sort del vettore, la rilevazione del tempo impiegato. L algoritmo di ordinamento vero e proprio è costituito dai seguenti statement: MOVE 1 TO SCAMBI. PERFORM LOOP-SCAMBIO THRU LOOP-SCAMBIO-EXIT UNTIL SCAMBI IS EQUAL ZERO. Se vi è chiaro come procede il bubble sort, semplicemente si continua a fare scambi di elementi fino a che una spazzolatura finale del vettore non da luogo a nessuno scambio. Le istruzioni di iterazione innescate dall istruzione PERFORM vengono eseguite continuamente fino a che non si verifica la condizione descritta nell UNTIL. Si noti la sintassi usata per controllare la condizione di uscita. Si sarebbe potuto anche scrivere: UNTIL SCAMBI = 0 Concedendo un certo vantaggio ai programmatori moderni, ma perché dovremmo? La sintassi usata qui è molto più chiara per chi è avvezzo a leggere i sorgenti COBOL, infatti se ci pensate assomiglia molto di più ad una sintassi letterale. E dimostrato inoltre che molti errori di codifica nei programmi derivano dalla scrittura di condizioni al contorno errate dovute ad una errata interpretazione delle specifiche o all impiego di operatori di confronto simbolici che richiedono un quid di attenzione maggiore a chi codifica. Il caricamento dei dati nel vettore avviene nella form CARICA-VET- TORE chiamata dallo statement: PERFORM CARICA-VETTORE THRU CARICA-VETTORE-EXIT. Essa contiene un loop che interessa uno ad uno gli elementi del vettore e vi inserisce un numero pseudo-casuale. L istruzione che effettua il loop di caricamento è la seguente: PERFORM NUMERO-RANDOM THRU NUMERO-RANDOM-EXIT VARYING I FROM 1 BY 1 UNTIL I > LIMITE. 16

17 Questa sintassi prevede l incremento automatico di un indice rappresentato dalla variabile I che viene incrementato partendo dal valore 1 fino a superare il limite previsto, che è la dimensione del vettore stesso. Implicitamente abbiamo introdotto un ulteriore concetto: le variabili indicizzate hanno indice che inizia da 1. Il cuore dell algoritmo di bubble sort è contenuto nella form CON- FRONTA: CONFRONTA. IF EL-VETTORE( I + 1 ) IS < EL-VETTORE( I ) MOVE EL-VETTORE( I + 1 ) TO TEMP MOVE EL-VETTORE( I ) TO EL-VETTORE( I + 1 ) MOVE TEMP TO EL-VETTORE( I ) MOVE 1 TO SCAMBI. CONFRONTA-EXIT. EXIT. Qui si vede come l indicizzazione delle variabili avviene indicando l elemento con indice fra parentesi, eventualmente calcolando il valore stesso dell indice. Gli operatori di confronto in CO- BOL sono quelli classici: =, <, >, >=, <=, <>. Esiste tuttavia una forma letterale di questi operatori: altri linguaggi. Una particolarità che vale la pena spiegare è l utilizzo dello statement MOVE 1 TO SCAMBI All interno della form di confronto. Un valore diverso da zero della variabile SCAMBI serve per ordinare un ulteriore loop sugli elementi del vettore. Infatti l algoritmo si basa proprio sull iterazione dei confronti elemento per elemento del vettore fino a che un ultima iterazione non effettua alcuno scambio, segno che il vettore è ordinato. Non sarebbe stato meglio incrementare il valore di SCAMBI con una istruzione del tipo: ADD 1 TO SCAMBI In effetti se servisse anche tracciare quanti scambi vengono fatti in ogni iterazione, allora l istruzione di incremento sarebbe stata necessaria. In caso contrario è inutile una istruzione matematica, che consuma certo più tempo, rispetto ad una istruzione di assegnazione. = IS EQUAL > IS GREATHER THAN < IS LESS THAN >= IS GREATHER OR EQUAL, IS NOT LESS <= IS LESS OR EQUAL, IS NOT GREATHER <> IS NOT EQUAL La forma prolissa della sintassi è poco usata attualmente, dato che le nuove generazioni di programmatori sono ormai abituate alle forme matematiche più simili agli 17

18 Listato 1 L uso di variabili strutturate, come matrici e vettori, è incoraggiata in COBOL. C è chi addirittura struttura tutto, perfino i semplici contatori interi. Qualcosa come: 01 CONTATORE. 10 CONT PIC COMP-1. La multidimensionalità si ottiene inserendo una dichiarazione strutturata in un altra. Ecco un esempio: 01 MATRICE. 10 RIGA-MATRICE OCCURS EL-MATRICE PIC 9(5) OCCURS 100. Qui abbiamo dichiarato una matrice di dimensione 100 per 100 i cui elementi sono dei valori numerici di cinque cifre. E c c o un loop che carica gli elementi della matrice c o m e f o s s e una tavola pitagorica (listato 1). /**************************************** PROCEDURE DIVISION. **************************************** MAIN SECTION. **************************************** INIZIO. **************************************** PERFORM SCAN-RIGHE THRU SCAN-RIGHE-EXIT VARYING RIGA FROM 1 BY 1 UNTIL RIGA <= 10. USCITA. STOP RUN. SCAN-RIGA. PERFORM SCAN-COL THRU SCAN-COL-EXIT VARYING COLONNA FROM 1 BY 1 UNTIL COLONNA <= 10. SCAN-RIGHE-EXIT. EXIT. SCAN-COL. COMPUTE EL-MATRICE(RIGA, COLONNA) = RIGA * COLONNA. SCAN-COL-EXIT. EXIT. Variabili strutturate Un alt r o aspetto legato alla strutturazione del dato è la possibilità di ridefinire la memoria indirizzata da una variabile in modo che questa sia usabile con due o più nomi. Ad esempio: 01 CODICE. 02 COD-FIS PIC X(16). 02 PARTITA-IVA REDEFINES COD-FIS. 05 P-IVA PIC 9(12). 05 FILLER X(4). Incontriamo per la prima volta una parola chiave molto usata nella definizione delle variabili strutturate del COBOL: FILLER. Questa viene utilizzata come riempitivo. Nel nostro esempio, dato che la ridefinizione di un area di memoria deve essere coerente, cioè utilizzare tutto lo spazio, riempiamo con un nome simbolico FILLER quella parte di dato che nel caso stessimo trattando una partita IVA non ci interessa. E chiaro che COD-FIS e PARTI- TA-IVA condividono lo stesso spazio di memoria, è lo stesso meccanismo implementato con le union nel linguaggio C. Nel listato numero 2 riportiamo un esempio di definizione di un record anagrafico che contiene un po tutte le cose viste finora nella definizione dei tipi di dato in COBOL. 01 REC-ANAG. è la definizione del livello base, appunto 01, che identifica l inizio di un dato strutturato. 05 TIPO-RECORD PIC XX. è un tipo di secondo livello di formato due caratteri alfanumerici. 18

19 05 MATRICOLA. 10 NUMERO PIC 9(5). 10 CONTROLLO PIC X. MATRICOLA è un dato strutturato formato da due sotto-livelli che nell esempio sono identificato dal numero di livello 10. Ci si potrà riferire a questo dato indicando il singolo sotto-livello o il dato intero MATRICOLA. Ad esempio: MOVE 12345A TO MATRICOLA. MOVE TO NUMERO. MOVE A TO CONTROLLO. I due campi GENERALITA e NO- MINATIVO sono ridefiniti, cioè identificano la stessa locazione di memoria per una lunghezza di 50 caratteri alfanumerici. Mentre GE- NERALITA è stato sotto specificato in due sottocampi NOME e CO- GNOME, il campo NOMINATIVO, che possiamo pensare come un alias del campo GENERALITA, è definito come unico. Seguono tre livelli chiamati rispettivamente NASCITA, ASSUNZIONE e DIMISSIONI. Tutti e tre contengono una data definita con sottocampi che hanno lo stesso nome: ANNO, MESE e GIORNO. 10 DATA-NASCITA. 15 ANNO PIC MESE PIC GIORNO PIC DATA-ASSUNZIONE. 15 ANNO PIC MESE PIC ANNO PIC DATA-DIMISSIONI. 15 ANNO PIC MESE PIC ANNO PIC 99. Come si fa a riferirsi ad un particolare anno, mese o giorno? Purtroppo il COBOL non prevede un meccanismo di dereferenziazione del dato, come succede nei linguaggi di programmazione più moderni. Ad esempio nel C si usa il punto come separatore e indicatore di riferimento per il cosidetto Spazio di validità del dato. In C si scriverebbe qualcosa come: REC-ANAG.ASSUNZIONE.DATA-ASSUN- ZIONE.ANNO = Dato che il COBOL non dispone di questo meccanismo è fortemente consigliato differenziare i nomi dei campi in maniera nativa, cioè chiamandoli diversamente. Quando questo non è possibile si ricorre alla clausula OF come nell esempio seguente: MOVE 1975 TO ANNO OF DATA-NA- SCITA. Sembra complicato ma non lo è a f f a t t o, a n c h e considerando che la sintassi mantiene una o t t i m a leggibilità. Nel record che abbiamo esam i n a t o c o m e Listato 2 01 REC-ANAG. 05 TIPO-RECORD PIC XX. 05 MATRICOLA. 10 NUMERO PIC 9(5). 10 CONTROLLO PIC X. 05 GENERALITA. 10 NOME PIC X(25). 10 COGNOME PIC X(25). 05 NOMINATIVO REDEFINES GENERALITA. 10 FILLER PIC X(50). 05 SESSO PIC X. 05 NASCITA. 10 DATA-NASCITA. 15 ANNO PIC MESE PIC GIORNO PIC LUOGO-DI-NASCITA. 15 CITTA PIC X(25). 15 CAP PIC Z(5). 15 PROVINCIA PIC XX. 15 NAZIONE PIC X(25). 05 ASSUNZIONE. 10 DATA-ASSUNZIONE. 15 ANNO PIC MESE PIC ANNO PIC DIMISSIONI. 10 DATA-DIMISSIONI. 15 ANNO PIC MESE PIC ANNO PIC

20 esempio è presente una dichiarazione di USAGE PIC Z. Il tipo Z è un numerico che mantiene gli zeri non significativi. Serve nei casi in cui, come in questo, il valore numerico sia in realtà un alfabetico di sole cifre. Possiamo assegnare al campo il valore e la stampa ci mostrerebbe anche i due zeri leading, cioè davanti. Per chiudere il discorso sulla rappresentazione dei dati e cioè sull uso della specifica USAGE, che a volte viene omessa facciamo questo altri esempi significativi: USAGE IS PIC 9(5)V99. E in valore numerico con segno con cinque cifre intere e due cifre decimali. USAGE IS PIC AAAXX999. E un campo misto lungo otto caratteri dei quali i primi tre sono alfabetici (solo lettere), seguono due caratteri alfanumerici (lettere e numeri) e infine tre caratteri numerici. Infine USAGE IS PIC A(5)9(3)X(2). E un valore che contiene cinque caratteri alfabetici, seguiti da tre cifre ed infine due ulteriori caratteri alfanumerici. La clausula PICTURES, abbreviata in PIC, serve anche per definire una rappresentazione del dato su video al momento dell output o della stampa. PIC indica che vogliamo una rappresentazione con numeri di separazione per le migliaia. PIC indica che il dato è rappresentato con il segno alla fine (trailing), un uso molto comune nelle liste di cifre dei bilanci e il simbolo sarà un meno se il dato è negativo, uno spazio altrimenti. PIC indica che vogliamo il segno in coda al numero ma questa volta il segno esisterà sia per i valori positivi che per quelli negativi. C è un altra forma possibile per la rappresentazione dei valori positivi e negativi, anche se non molto usata in Italia, ed è quella di indicare due lettere CR che starebbe per credito e DB per debito. PIC 999CR. PIC 999DB. La stampa di CR e DB avviene solo se il dato è negativo e non come si potrebbe pensare DB se negativo e CR se positivo. PIC 999Z. sta ad indicare che vogliamo stampare la cifra zero a fronte di un valore nullo. Nell assegnazione dei valori sono consentite delle abbreviazioni e l uso di due costanti figurative per lo spazio (blank) e per lo zero. VALUE IS ZERO. VALUE IS ZEROES. VALUE IS SPACE. 20

24/07/00-17.05 COBOL LANGUAGE REFERENCE Pag. 1

24/07/00-17.05 COBOL LANGUAGE REFERENCE Pag. 1 24/07/00-17.05 COBOL LANGUAGE REFERENCE Pag. 1 _ REGOLE DI SCRITTURA COBOL : 1 fino a 6 = una volta usati per numerare le righe del programma, adesso usate normalmente per marchiare le modifiche. 7 * =

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

Dettagli

schema riassuntivo del corso di excel avanzato

schema riassuntivo del corso di excel avanzato corso di excel avanzato Materiale prodotto da Domenico Saggese unicamente come supporto per i suoi corsi. E lecito trattenerne una copia per uso personale; non è autorizzato alcun uso commerciale o in

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 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

Dettagli

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

IMSV 0.8. (In Media Stat Virtus) Manuale Utente

IMSV 0.8. (In Media Stat Virtus) Manuale Utente Introduzione IMSV 0.8 (In Media Stat Virtus) Manuale Utente IMSV è una applicazione che calcola che voti può'prendere uno studente negli esami che gli mancano per ottenere la media che desidera. Importante:

Dettagli

schema riassuntivo del corso di access

schema riassuntivo del corso di access schema riassuntivo del maggio-settembre 2006 Materiale prodotto da Domenico Saggese unicamente come supporto per i suoi corsi. E lecito trattenerne una copia per uso personale; non è autorizzato alcun

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014 LUdeS Informatica 2 EXCEL Prima parte AA 2013/2014 COS E EXCEL? Microsoft Excel è uno dei fogli elettronici più potenti e completi operanti nell'ambiente Windows. Un foglio elettronico è un programma che

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

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

Dettagli

1. Introduzione al corso

1. Introduzione al corso E107 WEB SYSTEM Corso on line di progettazione siti dinamici: livello base R E A L I Z Z A Z I O N E D I 1. Introduzione al corso By e107 Italian Team Sito web:http://www.e107italia.org Contatto: admin@e107italia.org

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE 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

Dettagli

La Domanda Perfetta Scopri Subito Chi ti Mente

La Domanda Perfetta Scopri Subito Chi ti Mente La Domanda Perfetta Scopri Subito Chi ti Mente Una tecnica di Persuasore Segreta svelata dal sito www.persuasionesvelata.com di Marcello Marchese Copyright 2010-2011 1 / 8 www.persuasionesvelata.com Sommario

Dettagli

Introduzione. Perché è stato scritto questo libro

Introduzione. Perché è stato scritto questo libro Introduzione Perché è stato scritto questo libro Sul mercato sono presenti molti libri introduttivi a Visual C# 2005, tuttavia l autore ha deciso di scrivere il presente volume perché è convinto che possa

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

disponibili nel pacchetto software.

disponibili nel pacchetto software. Modulo syllabus 4 00 000 00 0 000 000 0 Modulo syllabus 4 DATABASE 00 000 00 0 000 000 0 Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database

Dettagli

Database e Microsoft Access. Ing. Antonio Guadagno

Database e Microsoft Access. Ing. Antonio Guadagno Database e Microsoft Access Ing. Antonio Guadagno Database e Microsoft Access Un Database non è altro che un insieme di contenitori e di strumenti informatici che ci permette di gestire grossi quantitativi

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Breve riepilogo della puntata precedente:

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

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Le espressioni regolari.

Le espressioni regolari. Lezione 8 Le espressioni regolari. Le espressioni regolari. Corrispondenze e classi di caratteri. Le regular expressions (espressioni regolari) servono per descrivere dei modelli di stringa. E possibile

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Stampa unione in Word 2010 Stampe multiple personalizzate

Stampa unione in Word 2010 Stampe multiple personalizzate Stampa unione in Word 2010 Stampe multiple personalizzate Autore: Alessandra Salvaggio Tratto dal libro: Lavorare con Word 2010 Quando bisogna inviare documenti personalizzato a molte persone una funzione

Dettagli

Elementi del calcolatore: CPU

Elementi del calcolatore: CPU Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE Istituto di Istruzione Superiore G. Curcio Ispica I SISTEMI DI NUMERAZIONE Prof. Angelo Carpenzano Dispensa di Informatica per il Liceo Scientifico opzione Scienze Applicate Sommario Sommario... I numeri...

Dettagli

7. Microsoft Access. 1) Introduzione a Microsoft Access

7. Microsoft Access. 1) Introduzione a Microsoft Access 1) Introduzione a Microsoft Access Microsoft Access è un programma della suite Microsoft Office utilizzato per la creazione e gestione di database relazionali. Cosa è un database? Un database, o una base

Dettagli

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

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

Dettagli

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA Indice Introduzione Il sistema decimale Il sistema binario Conversione di un numero da base 10 a base 2 e viceversa Conversione in altri sistemi di numerazione

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

ARCHIVI E LORO ORGANIZZAZIONI

ARCHIVI E LORO ORGANIZZAZIONI ARCHIVI E LORO ORGANIZZAZIONI Archivio: - insieme di registrazioni (record), ciascuna costituita da un insieme prefissato di informazioni elementari dette attributi (campi) - insieme di informazioni relative

Dettagli

La codifica dell informazione

La codifica dell informazione La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

Corso di controllo numerico (Cnc iso)

Corso di controllo numerico (Cnc iso) Corso di controllo numerico (Cnc iso) A cura di Ferrarese Adolfo. - Copyright 2007 - Ferrarese Adolfo - Tutti i diritti riservati - 1 Prefazione: Il corso si articola in 8 sezioni: 7 lezioni più un'ampia

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Gestione ARCHIVI in C O B O L. I.T.C. "V.Emanuele II" - Perugia

Gestione ARCHIVI in C O B O L. I.T.C. V.Emanuele II - Perugia Gestione ARCHIVI in C O B O L I.T.C. "V.Emanuele II" - Perugia Prof.Claudio Maccherani 1996 GENERALITÀ Un archivio è costituito da un insieme di record (record logici). Un record logico è costituito da

Dettagli

IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008

IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008 IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008 Prima della visita Ho iniziato la preparazione della mia visita partecipando a quattro sessioni di

Dettagli

NOZIONI BASE PER ESERCITAZIONI

NOZIONI 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

Dettagli

Domanda e offerta di lavoro

Domanda e offerta di lavoro Domanda e offerta di lavoro 1. Assumere (e licenziare) lavoratori Anche la decisione di assumere o licenziare lavoratori dipende dai costi che si devono sostenere e dai ricavi che si possono ottenere.

Dettagli

Progetto costo I. O. I.A. A 5 9 4 B 8 15 9 C 4 3 3 D 9 7 1

Progetto costo I. O. I.A. A 5 9 4 B 8 15 9 C 4 3 3 D 9 7 1 Tecniche di Valutazione Economica Processo di aiuto alla decisione lezione 13.04.2005 Modello di valutazione Dobbiamo riuscire a mettere insieme valutazioni che sono espresse con dimensioni diverse. Abbiamo

Dettagli

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte.

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Continuiamo la parte che completerà la trattazione dei link, andando ad operare direttamente

Dettagli

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

Il foglio elettronico

Il foglio elettronico Il foglio elettronico Foglio di calcolo, Spreadsheet in inglese, Permette di elaborare DATI NUMERICI. E una TABELLA che contiene numeri che possono essere elaborati con FUNZIONI matematiche e statistiche.

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare 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

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Convertitori numerici in Excel

Convertitori 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 2 Rappresentazione delle informazioni: numeri e caratteri 1 Codice La relazione che associa ad ogni successione ben formata di simboli di

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video)

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video) TNT IV Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video) Al fine di aiutare la comprensione delle principali tecniche di Joe, soprattutto quelle spiegate nelle appendici del libro che

Dettagli

Bisanzio Software Srl AMICA IMPORTA. Come importare dati nella famiglia di prodotti AMICA GESTIONALE (www.amicagestionale.it)

Bisanzio Software Srl AMICA IMPORTA. Come importare dati nella famiglia di prodotti AMICA GESTIONALE (www.amicagestionale.it) Bisanzio Software Srl AMICA IMPORTA Come importare dati nella famiglia di prodotti AMICA GESTIONALE (www.amicagestionale.it) Nicola Iarocci 10/05/2010 AMICA IMPORTA Stato del documento: BOZZA Stato del

Dettagli

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat www.dimi.uniud.it/burigat File HTML e tag Un file HTML non è nient'altro che un puro file di testo al cui interno sono presenti delle

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

1. LA MOTIVAZIONE. Imparare è una necessità umana

1. LA MOTIVAZIONE. Imparare è una necessità umana 1. LA MOTIVAZIONE Imparare è una necessità umana La parola studiare spesso ha un retrogusto amaro e richiama alla memoria lunghe ore passate a ripassare i vocaboli di latino o a fare dei calcoli dei quali

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

USARE JOOMLA 1.7/2.5 per gestire il vostro sito.

USARE JOOMLA 1.7/2.5 per gestire il vostro sito. 1 USARE JOOMLA 1.7/2.5 per gestire il vostro sito. 1. Per accedere al pannello di controllo: www.vostrosito.it/administrator 2. Inserire utente e password 3. Il vostro pannello di controllo si presenterà

Dettagli

Virtualizzazione delle Periferiche. Corso di Sistemi Operativi

Virtualizzazione delle Periferiche. Corso di Sistemi Operativi Virtualizzazione delle Periferiche Corso di Sistemi Operativi Introduzione Una delle funzioni principali di un SO è di controllare tutte le periferiche connesse al PC SO deve: comandare i dispositivi ascoltare

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

Ins. Zanella Classe seconda. Problemi moltiplicativi

Ins. Zanella Classe seconda. Problemi moltiplicativi Ins. Zanella Classe seconda Problemi moltiplicativi FOGLI DI CARTA OGGI IN CLASSE SIAMO IN 23 ALUNNI. LA MAESTRA DA AD OGNI ALUNNO 3 FOGLI. DISEGNA QUESTA SITUAZIONE, IN MODO CHE SI CAPISCA QUANTI FOGLI

Dettagli

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 IIS Almerico Da Schio - DISCIPLINA: Informatica e Laboratorio CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 COMPETENZE ABILITÀ/ CAPACITÀ CONOSCENZE dei linguaggi L1 Utilizzare

Dettagli

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

Dettagli

MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB

MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB MANUALE PER LA PRODUZIONE DI TESTI PER IL WEB Questo manuale fornisce una guida tecnica per scrivere testi da copiare all interno di siti web minimizzando il lavoro necessario per adattare tali testi affinché

Dettagli

1 di 17 14-01-2009 18:14

1 di 17 14-01-2009 18:14 14 gen 2009 Stampa articolo 48 Commenti [Modifica] Corso interattivo di programmazione per iphone: I Lezione Corso Inglese Online Facile, Rapido e Divertente Corso a distanza. Provalo Gratis! ABAEnglish.com

Dettagli

Aritmetica: operazioni ed espressioni

Aritmetica: operazioni ed espressioni / A SCUOLA DI MATEMATICA Lezioni di matematica a cura di Eugenio Amitrano Argomento n. : operazioni ed espressioni Ricostruzione di un abaco dell epoca romana - Museo RGZ di Magonza (Germania) Libero da

Dettagli

Corso di Archivistica

Corso di Archivistica Corso di Archivistica e gestione documentale Prima Parte - Area Informatica Le tabelle Lezione 6 Creare un data base Introduzione La presente è la prima di una serie di lezioni finalizzate alla creazione

Dettagli

6. Applicazione: gestione del centro sportivo Olympic

6. Applicazione: gestione del centro sportivo Olympic LIBRERIA WEB 6. Applicazione: gestione del centro sportivo Olympic PROGETTO Il centro sportivo Olympic organizza corsi di tipo diverso: nuoto, danza, karate, ecc. Ogni corso ha un unico istruttore prevalente,

Dettagli

Il DATABASE Access. Concetti Fondamentali

Il DATABASE Access. Concetti Fondamentali Il DATABASE Access Concetti Fondamentali Con la nascita delle comunità di uomini, si è manifestata la necessità di conservare in maniera ordinata informazioni per poi poterne usufruire in futuro. Basta

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri.

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri. 6 LEZIONE: Algoritmi Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10-25 Minuti (a seconda che tu abbia dei Tangram disponibili o debba tagliarli a mano) Obiettivo Principale: Spiegare come

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Revisione e implementazione di algoritmi di elaborazione delle immagini

Revisione e implementazione di algoritmi di elaborazione delle immagini Stagnaro Francesca Mat. 2543707 Relazione Finale di Tirocinio: Revisione e implementazione di algoritmi di elaborazione delle immagini Svolto presso l azienda Numensoft Snc di M. Peri & Soci III Anno di

Dettagli

Sommari, indici e riferimenti incrociati in Word 2010 Strutturare i documenti in modo ordinato

Sommari, indici e riferimenti incrociati in Word 2010 Strutturare i documenti in modo ordinato Sommari, indici e riferimenti incrociati in Word 2010 Strutturare i documenti in modo ordinato Autore: Alessandra Salvaggio Tratto dal libro: Lavorare con Word 2010 Quando lavorate con documenti piuttosto

Dettagli

Copyright Alessandro de Simone 2006 ( www.alessandrodesimone.net)

Copyright Alessandro de Simone 2006 ( www.alessandrodesimone.net) Copyright Alessandro de Simone 2006 ( www.alessandrodesimone.net) - È vietato trascrivere, copiare, stampare, tradurre, riprodurre o divulgare il presente documento, anche parzialmente, senza l autorizzazione

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

I file di dati. Unità didattica D1 1

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

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php MODULO 3 Microsoft Excel TEST ED ESERCIZI SU: http:///ecdl/excel/index.php Foglio Elettronico - SpreadSheet Un foglio elettronico (in inglese spreadsheet) è un programma applicativo usato per memorizzare

Dettagli

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file 11 Realizzazione del File System 1 Metodi di allocazione Allocazione contigua Allocazione concatenata e varianti Allocazione indicizzata e varianti Gestione dello spazio libero 11.1.1 Struttura a livelli

Dettagli

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola?

PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Come viene associato un insegnate alla scuola? Cos è il Codice scuola? PIÙ IN DETTAGLIO Come si crea una scuola virtuale? Quando si compila il modulo di registrazione, selezionare l opzione scuola.una volta effettuata la registrazione, si può accedere a un ambiente molto

Dettagli

Il database management system Access

Il 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

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

Dettagli

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database Cosa è Basi di dati Pietro Pala (pala@dsi.unifi.it) Microsoft Access Access è un DBMS relazionale in grado di supportare: Specifica grafica dello schema della base dati Specifica grafica delle interrogazioni

Dettagli

WORD 97 SCRIVERE UNA TESI DI LAUREA

WORD 97 SCRIVERE UNA TESI DI LAUREA WORD 97 SCRIVERE UNA TESI DI LAUREA PASSO 1 Per prima cosa pensiamo al formato generale della pagina: i margini richiesti da una tesi sono quasi sempre più ampi di quelli di un testo normale. Apriamo ora

Dettagli

1. I database. La schermata di avvio di Access

1. I database. La schermata di avvio di Access 7 Microsoft Access 1. I database Con il termine database (o base di dati) si intende una raccolta organizzata di dati, strutturati in maniera tale che, effettuandovi operazioni di vario tipo (inserimento

Dettagli

IL FAI DA TE NEL SOFTWARE DIDATTICO

IL FAI DA TE NEL SOFTWARE DIDATTICO IL FAI DA TE NEL SOFTWARE DIDATTICO La realizzazione delle tastiere virtuali didattiche - 3 a parte Prosegue l articolo in cui l autore chiarisce che l individuazione o l impostazione della struttura logica

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli