ISTITUTO PROFESSIONALE DI STATO
PER L’INDUSTRIA E ARTIGIANATO
- MORETTO-
DA SILVA MOREIRA FRANCISCO JOSÈ
CLASSE: 5^BZ
ANNO SCOLASTICO 2005/06
Indice
Introduzione ..........................................................................................................................................3
Il concetto di trasmissione dei dati........................................................................................................4
Architettura del sistema………………………………………………………………………………..5
Personal Computer(generale)................................................................................................................6
Il sistema d’interfacciamento………………………………………………………………………….7
Il Software……………………………………………………………………………………………..8
•
Linguaggio Delphi…………………………………………………………………………….8
•
Caratteristiche di Delphi………………………………………………………………………10
•
Versioni di Delphi attualmente sul mercato…………………………………………………..11
Concetto di database…………………………………………………………………………………..12
Email…………………………………………………………………………………………………..13
•
Come se usa …………………………………………………………………………………..13
•
Programma PO3………………………………………………………………………………14
La Rete Internet……………………………………………………………………………………….15
•
Origini e Funzionamenti……………………………………………………………………...15
•
Comunicazione di pacchetto………………………………………………………………….16
Programmi Realizzati…………………………………………………………………………………17
•
Trasferimento Ordinato Dei Santi…………………………………………………………….17
•
Listato del sorgente delphi…………………………………………………………………....18
•
Ricerca Onomastici………………………………………………………………………..….20
•
Listato del sorgente delphi…………………………………………………………………....21
•
Gestione Onomastici………………………………………………………………………….24
•
Listato del sorgente delphi…………………………………………………………………....25
•
Compleanni Studenti………………………………………………………………………….29
•
Listato del sorgente delphi…………………………………………………………………....30
•
Test Santi Doppi………………………………………………………………………………34
•
Listato del sorgente delphi………………………………………………………………….....35
•
Invio Email…………………………………………………………………………………....36
•
Listato del sorgente delphi…………………………………………………………………….37
Tesina di Inglese……………………………………………………………………………………….38
• network computer types…………………………………………………………………...39
Bibiografia .............................................................................................................................................40
Ringraziamenti .......................................................................................................................................41
Tesina Maturità 2005/06
2
Introduzione:
La nostra tesina consiste nella gestione, via software, degli onomastici e dei compleanni dell’intero
personale dell’istituto (alunni, professori, non docenti..). Il nostro scopo è quello di sapere per ogni
giorno dell’anno scolastico quali sono gli onomastici e i compleanni dell’intero personale dell’istituto.
All’inizio di ogni settimana il nostro software deve essere in grado di presentare gli onomastici e i
compleanni dell’intera settimana ed spedire via e-mail al personale responsabile.
Software usati:
access: con questo programma abbiamo creato 2 database: il primo contiene 3 santi per ogni giorno, il
secondo invece contiene i dati di tutto il personale dell’istituto.
Delphi: in questo programma viene realizzata la gestione dell’intero sistema.
La nostra tesina prevede quindi i seguenti due servizi:
a) GIORNALIERO : ogni giorno vengono comunicati al VicePreside
1) I Santi festeggiati in quel Giorno (previsti dal calendario di Frate Indovino)
2) I nominativi di STUDENTI, DOCENTI, e NON DOCENTI per i quali si verifica la
ricorrenza dell'ONOMASTICO.
3) I nominativi di STUDENTI, DOCENTI, e NON DOCENTI per i quali si verifica la
ricorrenza del COMPLEANNO.
b) SETTIMANALE : ogni SABATO vengono comunicati al VicePreside tutti i dati previsti dal servizio
GIORNALIERO e relativi alle giornate della settimana successiva a quel SABATO ossia DOMENICA,
LUNEDI', MARTEDI', MERCOLEDI', ..., SABATO successivo.
c) Le comunicazioni vengono effettuate via e-mail all'indirizzo : [email protected]
d) Prevedere comunicazioni scritte AUGURALI separate (files di testo separati) per DOCENTI, NON
DOCENTI, STUDENTI (Classe per Classe) da affiggere ALBO NON DOCENTI, SALA
INSEGNANTI, SINGOLE CLASSI.
Il Preside, il personale docente e non docente, gli studenti augurano a:
<lista COMPLEANNI>
BUON COMPLEANNO
<lista ONOMASTICI>
BUON ONOMASTICO
Brescia data ora
(Il testo del messaggio scritto augurale va richiesto al prof. ARCANGELO).
Oggi 29 aprile 2006 si festeggiano le seguenti ricorrente < lista1 > e i seguenti Santi <lista2>.
Porgiamo perciò i nostri migliori AUGURI a :
<nomi con indicazione ONOMASTICO o COMPLEANNO>
Tesina Maturità 2005/06
3
IL CONCETTO TRASMISSIONE DEI DATI:
La trasmissione dei dati è l’insieme delle tecniche e delle problematiche connesse con il
trasferimento a distanza di segnali informativi di tipo digitale tra elaboratori elettronici, utilizzando allo
scopo le risorse, e in particolare i canali di comunicazione, messi a disposizione dai sistemi di
telecomunicazione.
Negli ultimi anni, invece, la situazione è radicalmente cambiata per via dell'enorme sviluppo della
microelettronica e della diffusione sempre maggiore di calcolatori in ogni ambito, sia aziendale sia
domestico. I calcolatori sono sempre più utilizzati anche come veri e propri apparati per la
comunicazione a distanza tra utenti in una rete, come dimostra l'enorme successo avuto da Internet. Si
sta così assistendo ali trasformazione degli elaboratori da puro strumento di calcolo ad apparato di
telecomunicazione tramite il quale è possibile scambiare in modo digitale segnali di varie natura (voce,
immagini, dati).
APPARATI INFORMATICI E DI TELECOMUNICAZIONE IN UN SISTEMA DI TRAMISSIONE:
−
Elaboratori:
Possono essere microprocessori, microcalcolatori o grossi calcolatori(su cui risiedono, per esempio le
banche dati).
−
Aparecchi di telefonia:
Possono essere telefono mobile, telefax.
ORGANISMI INTERNAZIONALI DI STANDARDIZZAZIONE:
Esistono diversi organismi internazionali di standardizzazione che si occupano di trasmissione
dati, i principali sono:
ITU - (International Telecommunications Union);
ETSI – (European Telecommunciations Standardas Institute);
ISO - (International Organization for Standardization);
IEC – (International Electrotrechnical Commission).
IEEE - (Institute of electrical and electronics engineers)
L’organismo di standardizzazione principale per le telecomunicazioni è l’ITU: un’organizzazione
intergovernativa all’interno della quale cooperano sia enti pubblici sia privati al fine di consentire lo
sviluppo delle telecomunicazioni.
Tesina Maturità 2005/06
4
ARCHITETTURA DEL SISTEMA:
Questo progetto può essere suddiviso nei seguenti blocchi:
•
ELABORATORE(PERSONAL COMPUTER)
•
INTERFACCIA
•
MODEM
•
RETE INTERNET
SCHEMA A BLOCCHI :
Elaboratore
Tesina Maturità 2005/06
Interfaccia
Modem
5
ELABORATORE :
Il Personal Computer
Per descrivere un PC, può essere utile pensarlo in termini di
sottosistemi che lo compongono. Questo rapido sommario
dei suoi componenti può servire a mettere tutto in una
corretta prospettiva:
- (Aspetto esteriore) si vedono lo schermo, la tastiera, il
mouse e l'involucro del PC. L'involucro contiene tutti i componenti essenziali per il PC e
fornisce anche l'accesso alle unità CD-ROM e floppy nella parte anteriore e a varie porte sul
retro. L'involucro inoltre protegge l'utente dalle radiazioni elettromagnetiche prodotte dai
componenti interni e consente al flusso d'aria canalizzato di ridurre i problemi di
surriscaldamento.
-
(Componenti interni) CPU: L'unità di elaborazione centrale (Central Processing Unit), o
processore, che gestisce i programmi attivi sul PC. La velocità della CPU, combinata con il
suo design interno, determina la velocità e l'efficienza con cui possono essere elaborati i
dati e i codici dei programmi.
-
Memoria di sistema: Chiamata anche memoria ad accesso casuale (Random Access
Memory), o RAM, la memoria di sistema immagazzina i codici e i dati che il PC sta
utilizzando. Più memoria si ha, migliori sono le prestazioni.
-
Disco rigido: È il dispositivo per l'immagazzinamento permanente dei dati sul PC. I
programmi e i dati contenuti nel disco rigido vengono trasferiti nella RAM di sistema per
essere usati. I dischi rigidi odierni vantano capacita di 20 GB e oltre.
-
Unita CD-ROM: L'onnipresente supporto rimovibile di grande capacità. Le unità CDROM permettono agli utenti del PC di accedere ai contenuti multimediali, di installare
applicazioni di grande dimensioni e di lavorare con enormi data base e con altre risorse.
Questa tecnologia sta lasciando il posto alle unità DVD-ROM, che offrono capienze ancora
più grandi per i dati (sull'ordine dei 17 GB).
Tesina Maturità 2005/06
6
-
Scheda grafica: Tutto ciò che si vede sullo schermo passa attraverso la scheda grafica.
Questo componente hardware accelera la visualizzazione delle immagini, sia in due sia in
tre dimensioni, e delle riproduzioni dei video. Una buona scheda grafica è fondamentale
per avere una buona visione e per prestazioni veloci.
-
Scheda audio: Tutto ciò che va oltre gli elementari bip e che è emesso dall'altoparlante del
PC passa attraverso il sottosistema audio. Le schede audio permettono di riprodurre i
suoni digitali attraverso gli altoparlanti, nonché di registrare suoni analogici in formato
digitale.
-
Modem: Consente al PC di "parlare" con Internet, con i fax e con altri PC, usando una
normale linea telefonica. Può essere sia una scheda aggiunta internamente sia un
dispositivo esterno.
-
Scheda di interfaccia con la rete: Questa scheda supplementare serve a connettere il PC a
una rete locale.
IL SISTEMA D’INTERFACCIAMENTO:
I sistemi di interfacciamento, vengono utilizzati nei PC per connettere il sistema di elaborazione
dati con i dispositivi periferici esterni (tastiera, mouse, video, stampante, plotter, unità HD, FD,
CDROM, modem etc). Alcuni sistemi di interfacciamento sono essenziali per il funzionamento del
sistema stesso (interfaccia video, interfaccia tastiera), altri sono opzionali. Fra le modalità di
trasferimento dati distinguiamo la “modalità parallelo” attuata ad esempio nel caso dell’interfaccia di
una stampante e interfacciamento seriale (verso un modem o un plotter o una stampante seriale).
Tesina Maturità 2005/06
7
IL SOFTWARE :
Il linguaggio di programmazione scelto per la realizzazione di questo progetto è:
Delphi della casa americana Borland.
Cos’è Delphi
Il Delphi è l’evoluzione del "Borland Turbo Pascal", un linguaggio ad alto livello elaborato dal
professor Niklaus Wirth alla fine degli anni sessanta a Zurigo, con l’obbiettivo di realizzare un
linguaggio programmazione sufficienti per insegnarla sotto forma di disciplina logica e sistematica.
Il linguaggio di programmazione di Delphi è basato sul Pascal, usato all’università di Ginevra
come mezzo di insegnamento della programmazione strutturata. Per questo motivo tale linguaggio
risulta essere assai elegante e leggibile, soprattutto se lo confrontiamo con linguaggi analoghi come
C/C++, più strutturalmente vicino al linguaggio macchina oppure al Basic, che solo in tempi recenti ha
subito un accurato riadattamento ai canoni della programmazione strutturata.
Il Pascal doveva essere allo stesso tempo un linguaggio facile ed efficiente a tal punto da poter
essere implementato sulla maggior parte dei calcolatori, e una volta raggiungiunto tale obiettivo esso si
è rapidamente diffuso sia come linguaggio usato nella didattica dei principi di programmazione, sia
come linguaggio effettivo per scrivere software di base ed applicativi.
Con il Delphi la Borland ha introdotto il concetto di sviluppo Visuale RAD (Rapid Application
Development) orientato alla gestione degli eventi come nel Visual Basic, senza perdere però i vantaggi
della compilazione Pascal.
Delphi è un ambiente di programmazione visuale orientato ad oggetti per lo sviluppo rapido di
applicazioni a carattere generale e di applicazioni Client/Server per Windows 95 e 98 e Windows NT.
Con Delphi è possibile creare applicazioni Windows altamente efficienti riducendo al minimo i
tempi di programmazione grazie agli strumenti di gestione dei database e i componenti di gestione dei
dati previsti in Delphi, questi ci permettono di sviluppare strumenti di gestione dati e applicazioni
Client/Server in tempi notevolmente ridotti.
Comprende una libreria di componenti riutilizzabili VCL e un insieme di strumenti di
progettazione RAD, tra cui i modelli di applicazioni standard e di schede Expert di programmazione.
Con questi strumenti e con il compilatore Delphi a 32 bit è possibile creare rapidamente e testare
prototipi, trasformandoli in robuste applicazioni perfettamente in linea con le moderne esigenze.
Delphi può essere utilizzato per sviluppare qualsiasi tipo di applicazione, dalle utility di analisi e
test dei PC, fino ai più sofisticati strumenti di accesso ai database.
Con i controlli di gestione dei dati di Delphi, i dati vengono visualizzati direttamente durante la
creazione dell’applicazione, consentendo una immediata verifica del risultato delle interrogazioni al
database e delle modifiche all’interfaccia dell’applicazione.
La facilità di lettura si accompagna simmetricamente alla facilità di scrittura: Se si tiene conto
del fatto che Delphi è un compilatore velocissimo, scrivere programmi in Pascal per Windows significa,
beneficiare di un ottimo compromesso tra velocità degli eseguibili prodotti e facilità di scrittura del
codice.
Pascal è un linguaggio procedurale, dotato di tipizzazione forte. Questo sta a significare che per
ogni variabile utilizzata all'interno nei programmi Pascal deve essere esplicitamente dichiarato un
tipo(ad esempio Integer, variabile numerica intera; Real, variabile numerica reale, ecc.). Ad ogni
variabile, salvo qualche eccezione per i valori numerici, deve essere assegnato un valore del tipo
corrispondente, per visualizzare possibili errori in fase di compilazione. Senza questi vincoli, il
compilatore non potrebbe risultare altamente ottimizzante e si correrebbe il rischio di errori a Run-time
dovuti ad assegnamenti “misti” non voluti dal programmatore(Bug) e non intercettati dal compilatore,
Tesina Maturità 2005/06
8
che a sua volta non sarebbe più in grado di effettuare controlli approfonditi sulla validità formale degli
assegnamenti.
Il linguaggio Pascal rende disponibile al programmatore un set completo di tipi di dato di base,
che variano dai numeri interi(Integer) fino ad arrivare a stringhe(String) la cui gestione in memoria è
trasparente al programmatore, passando per il tipo Boolean, che è in grado di esprimere i valori di verità
True e False, definiti come costanti del linguaggio.
Viene offerta anche una completa gestione di puntatori ed allocazione dinamica di memoria,
cosa che permette di creare a run-time nuove entità le cui dimensioni non devono essere decise a tempo
di codifica. Questo si traduce in un'ottimizzazione dello sfruttamento delle risorse della macchina su cui
si sta lavorando. Combinando i meccanismi di allocazione dinamica alla possibilità di derivazione di
nuovi tipi di dato strutturati a partire dal costrutto record, inoltre, è possibile costruire e gestire con
relativa facilità tipi di dato ricorsivi come “liste” e gli “alberi”.
L'operatore di assegnamento utilizzato dal Pascal è :=, a differenza della stragrande maggioranza
dei linguaggi procedurali. Pur essendo più corretto dal punto di vista matematico, questo potrebbe essere
disorientante per chi proviene da altri linguaggi.
E’ possibile inglobare blocchi di codice all'interno delle strutture di controllo, usando la
Keyword di apertura ‘Begin’ e quella di chiusura ‘End’.
Ogni istruzione deve essere terminata da un punto e virgola “;”.
I commenti sono porzioni dei sorgenti racchiusi tra parentesi graffe{commento} oppure dalla
combinazione di parentesi tonda ed asterisco(*commento*). Se sono brevi si possono usare anche le
BackSlash( // ).
Pascal distingue tra funzioni e procedure: le prime, dichiarate utilizzando la Keyword Function,
restituiscono un valore, mentre le seconde no.
Le variabili possono essere locali o globali, le prime vanno dichiarate all’interno di procedure
mentre le seconde(visibili da tutte le procedure appartenenti al programma) devono essere dichiarate
all'interno di sezioni separate, diversamente da quanto previsto in altri linguaggi(esempio, in C/C++).
Delphi è dotato di un costrutto che permette una programmazione modulare, cioè le Unit. In
effetti, attraverso la struttura delle Unit è possibile creare programmi accostando diversi moduli di
codice visibili solo tramite un'interfaccia data dalle dichiarazioni delle funzioni in esse contenute.
Con le Unit Borland fornisce la possibilità di costruire entità contenenti codice nelle quali si può
restringere l'accesso dall'esterno a particolari funzioni dichiarate in una sezione di interfaccia.
Le Unit sono molto utilizzate in Delphi, visto che ad ogni finestra del proprio programma viene
associata una unit che ne contiene la definizione.
Tesina Maturità 2005/06
9
CARATTERISTICHE DI DELPHI
AMBIENTE DI SVILUPPO INTEGRATO
L’ambiente di sviluppo integrato di Delphi IDE (Integrated, Development,Enviroment) mantiene
sviluppo, verifica e gestione delle applicazioni in un unico ambiente. E’ possibile creare o modificare
una applicazione compreso schede di inserimento dati, report, menu, finestre di dialogo, database e
definizioni di file, moduli dati, componenti, senza uscire dal compilatore.
DRAG AND DROP DESIGN
Delphi aumenta la produttività automatizzando le operazioni di programmazione ripetitive. E’
possibile creare applicazioni semplicemente trascinando pochi componenti dalla Component Palette in
una scheda chiamata form creando l’architettura dell’applicazione velocemente e facilmente, con la
minima conoscenza della programmazione.
STRUMENTI BIDIREZIONALI
Procedendo con la selezione e la modifica delle proprietà dei componenti e delle schede, i
risultati vengono aggiornati automaticamente nel codice sorgente, e viceversa. Modificando il codice
sorgente direttamente con un editor di testo, come il Code Editor incorporato, le modifiche vengono
immediatamente riflesse negli strumenti visuali.
COMPILATORE IN CODICE NATIVO
Il compilatore Delphi 32-bit, sviluppato per ottimizzare il codice nativo produce applicazioni
“selfcontained”, in codice nativo eseguibile “.EXE”. Oltre ad avere migliorato le prestazioni degli
eseguibili compilati(in confronto ai linguaggi interpretati) la natura self-contained di un’applicazione
Delphi consente l’indipendenza dalle librerie Runtime “.DLL”.
CONNESSIONE AI DATABASE INTEGRATA
Il Borland Database Engine BDE, inserito in Delphi permette lo sviluppo di applicazioni in
grado di accedere ai database Paradox, dBase, e InterBase. Attraverso SQL Links, l’applicazione può
accedere anche a server SQL, tra cui InterBase, Oracle, Sybase, e Microsoft SQL. Inoltre, il flessibile
motore di gestione dei database di Delphi facilita il passaggio da applicazioni locali ad applicazioni
Client/Server.
CASE – INSENSITIVE
Il compilatore non distinguerà in alcun punto del programma(tranne che all'interno delle
Stringhe) tra lettere maiuscole e minuscole. Saranno quindi considerati identici nomi di variabili e
funzioni come ‘Casa’ e ‘casa’, a differenza di quanto accade negli analoghi linguaggi come C/C++
o il Basic.
Tesina Maturità 2005/06
10
VERSIONI DI DELPHI ATTUALMENTE SUL MERCATO
La Borland dopo avere distribuito Turbo Pascal 6.0 per DOS ha introdotto sul mercato un
prodotto per Windows 3.1 e lo ha chiamato Borland Pascal 7.0 (versione Windows di Turbo Pascal 7.0).
Successivamente ha completamente rivisto la struttura dei suoi compilatori e strumenti di sviluppo
accessori introducendo la famiglia Delphi.
A tutt’oggi sono state rilasciate ben 6 edizioni di Delphi: Delphi 1 per lo sviluppo di applicativi
a 16 bit in ambiente Windows 3.1 e 3.11.
Nell’ordine si sono poi succedute le versioni di Delphi 2 , 3, 4, 5, 6, 7, 8 Delphi 2005 e Delphi
2006 per lo sviluppo di applicazioni a 32 bit per Windows 9x e Windows NT. I compilatori Borland
sono generalmente disponibili in tre versioni :
a) versione desktop (a basso costo)
b) versione professional
c) versione client/server o enterprise
La versione desktop pur costando poco è una versione completa ma priva di oggetti VCL
particolari o di driver nativi per database particolari (opzioni richieste da un programmatore che sviluppi
applicativi professionali) è comunque generalmente adatta per sviluppare applicazioni di tipo standalone.
Recentemente è stata introdotta sul mercato pure una versione di Delphi che opera in ambiente
Linux(denominata Kylix) ciò consentirà di trasferire in questo nuovo ambiente, applicazioni native
sviluppate per l’ambiente Windows.
Tesina Maturità 2005/06
11
DATABASE
•
CONCETTO
un database non è altro che una specie di "contenitore" che ci permette di gestire grossi quantitativi di
informazioni simili in maniera ordinata e (si spera) più semplice e veloce che con grossi libroni cartacei
o documenti di tipo foglio di calcolo o testo. Questo termine indica un insieme di dati riguardanti uno
stesso argomento, o più argomenti correlati tra loro, strutturata in modo tale da consentire che i dati
possano venire utilizzati per diverse applicazioni e, normalmente, possano evolvere nel tempo.
•
Piccola Storia su i DataBase
Probabilmente il più glorioso antenato dei database relazionali odierni può essere identificato con la
sana e vecchia agenda telefonica. in effetti penso che se guardiamo come è fatta la nostra agenda
scopriremo una notevole affinità con i sui parenti più tecnologici attuali. Infatti è organizzata
tramite un indice, che gestisce una tabella composta da colonne che identificano il tipo di dato sotto
riportato (nome, numero di telefono, a volte indirizzo) all' interno delle registrazioni o record che ,
pur differendo l' una dall' altra per i dati riportati al loro interno "hanno tutti la stessa struttura", cioè
riportano le stesse informazioni nella medesima maniera.
La base di dati, oltre ai dati veri e propri, deve contenere anche le informazioni sulle loro
rappresentazioni e sulle relazioni che li legano. Spesso, ma non necessariamente, una base dati contiene
le seguenti informazioni:
•
Strutture dati che velocizzano le operazioni frequenti, tipicamente a spese di operazioni meno
frequenti.
•
Collegamenti con dati esterni, cioè riferimenti a file locali o remoti non facenti parte del
database.
•
Informazioni di sicurezza, che autorizzano solo alcuni profili utente ad eseguire alcune
operazioni su alcuni tipi di dati.
•
Programmi che vengono eseguiti, automaticamente o su richiesta di utenti autorizzati, per
eseguire elaborazioni sui dati. Un tipico automatismo costituisce nell'eseguire un programma
ogni volta che viene modificato un dato di un certo tipo.
In un sistema informatico, una base di dati può essere manipolata direttamente dai programmi
applicativi, interfacciandosi direttamente con il sistema operativo. Tale strategia era quella adottata
universalmente fino agli anni 60, ed è tuttora impiegata quando i dati hanno una struttura molto
semplice, o quando sono elaborati da un solo programma applicativo.
Tuttavia, a partire dalla fine degli anni 60, per gestire basi di dati complesse condivise da più
applicazioni, si sono utilizzati appositi sistemi software, detti sistemi per la gestione di basi di dati (in
inglese "Database management system" o "DBMS").
La ricerca nel campo delle basi di dati studia le seguenti problematiche:
•
Progettazione di basi di dati.
•
Progettazione e implementazione di DBMS.
•
Interpretazione (o analisi) di dati contenuti in database.
Tesina Maturità 2005/06
12
POSTA ELETTRONICA
Cos’è la posta elettronica
•
La posta elettronica è un sistema per inviare, ricevere, gestire messaggi di testo, documenti, file:
dalle immagini ai brani musicali fino ai filmati. Per usarla occorrono almeno:
•
un computer (o altri apparecchi come telefoni cellulari e palmari predisposti)
•
una connessione a Internet
•
una casella di posta attivata da un Internet Service Provider (ISP) come Libero, col suo indirizzo
•
un'interfaccia di posta elettronica: un client o un browser
•
Come funziona
Il sistema è complesso ma, semplificando e banalizzando, ogni messaggio di posta si può descrivere
come un file che viene scambiato tra mittente e destinatario (o destinatari), tramite server (i server
sono dei grossi computer). Perché tutti lo possano leggere, il file ha dei campi fissi da compilare:
alcuni obbligatori (Destinatario), altri facoltativi (Mittente, Oggetto, Destinatari in Copia
Conoscenza, Testo, Allegati ecc...).
Per scrivere un messaggio di posta (chiamato anche email, e-mail o mail), apriamo e compiliamo
questo file con un programma di posta o direttamente sul Web.
Quindi spediamo l’email(file) alla casella di posta del destinatario: inviamo, cioè, il file al server
dell’ISP dove si trova la casella del destinatario. Tutte le caselle sono sempre collocate nel server
degli ISP.
Quando il destinatario si connette a Internet e accede alla sua casella, riceve il nostro messaggio
(file): può visualizzarlo e eventualmente scaricarlo sul suo Pc.
•
•
•
Anche noi, per ricevere le mail (file), dobbiamo connetterci a Internet e accedere alla casella.
•
•
Anche noi, per ricevere le mail (file), dobbiamo connetterci a Internet e accedere alla casella.
I file delle email possono anche "trasportare" altri file: gli allegati.
•
Come si usa
La posta elettronica si gestisce sostanzialmente in 3 modi: con un programma di posta in modalità
POP3, con la Web Mail, con un programma di posta in modalità IMAP4. Si ricorda che per usare la
posta devi attivare una casella da un IPS, solitamente registrandoti nel suo sito Internet
• PROGRAMMA DI POSTA IN MODALITÀ POP3
Generalmente ogni Pc ha un client email installato con il sistema operativo: Windows offre Outlook
Express, i sistemi Macintosh offrono Mail o altri programmi. Ovviamente puoi usare altri client:
commerciali, gratuiti o con licenze diverse (per esempio Microsoft Outlook, Qualcomm Eudora, Mozilla
Thunderbird, Opera, Incredimail...)
Tesina Maturità 2005/06
13
•
•
•
•
Per cominciare devi aprire il programma e configurarlo per gestire l'account di posta.
Nellasezione Configura la casella trovi le procedure per i programmi più comuni; l'elenco dei
parametri è nella pagina Dati e parametri. L'utilizzo del protocollo POP3 (Post Office Protocol)
permette di ricevere i messaggi direttamente sul Pc. Il protocollo per la posta in uscita è sempre
SMTP (Simple Mail Transfer Protocol.
Terminata la configurazione, devi connetterti a Internet.
Quindi puoi comporre un nuovo messaggio e inviarlo: finirà nella casella del destinatario sul
server del suo Provider e ci resterà finché egli non lo scaricherà sul Pc o non lo cancellerà dalla
Web Mail. Di solito i client salvano una copia dei messaggi spediti nella cartella "Posta
inviata".
L'altra operazione "base" è ricevere le email presenti nella tua casella. Usando il POP3 si parla
di messaggi "scaricati" perché i file delle email sono materialmente spostati dal server dell'ISP
al Pc dell'utente: li leggi nella cartella "Posta in arrivo" del client e li trovi in una cartella creata
sul disco fisso del Pc.
La gestione in POP3 è la più utilizzata perché rapida, flessibile e consente di leggere i messaggi
scaricati anche senza essere connesso al Web. Inoltre permette di archiviare un numero illimitato di
email: il quantitativo dipende solo dalla capacità del disco fisso del Pc.
•
WEB MAIL
Questo sistema consente di spedire, inviare e gestire le mail senza usare un programma. Basta avere
un Pc, anche quello di un amico o di un Internet Cafè in qualsiasi parte del mondo, connesso a Internet.
Semplificando, la Web Mail è l'interfaccia di un sito Internet che dà accesso alla casella di posta
direttamente sul server del Provider.
1. Per accedervi apri un browser ( un programma di navigazione come Internet Explorer, Netscape
o Mozilla) e si raggiungi il sito dell’Internet Provider.
2. Scrivi username e password negli appositi campi dell’area Mail.
3. entrato nella Web Mail gestisci i messaggi tramite un’interfaccia le cui funzioni variano a
seconda dell’ISP. La Web Mail ha tuttavia due limiti: non puoi leggere i messaggi se non sei
connesso a Internet e lo spazio a disposizione è limitato. Se utilizzi solo la Web Mail, rischio
infatti di occupare tutto lo spazio messo a disposizione dall’ISP sulla casella con la conseguente
intrerruzione del servizio finché non scarichi (o cancelli) un sufficiente numero di mail.
• PROGRAMMA DI POSTA IN MODALITÀ IMAP4
È una "via di mezzo" fra le altre modalità. Gestisci la posta con i client (gli stessi del POP3), ma non
scarichi le mail nel Pc: restano memorizzate sul server. Il programma le visualizza solo se ti connetti
a Internet: altrimenti vedi le sole intestazioni. Questo sistema è meno flessibile degli altri ed è
limitato dalla dimensione della casella.
Tesina Maturità 2005/06
14
LA RETE INTERNET
• ORIGINI E FUNZIONAMENTO
La grande rete di internet, in prima approssimazione, può essere immaginata come una rete telefonica
che permette ad ogni utente di comunicare con chiunque altro nel mondo semplicemente componendo
un numero. Basta soltanto sostituire i telefoni con i computer. Negli anni '60, con i fondi dell'Advanced
Research Projects Agency (ARPA), dipendente dal Dipartimento della Difesa degli Stati Uniti, furono
sperimentate tecnologie innovative per collegare alcuni computer fra loro attraverso le linee telefoniche
mediante la cosiddetta "commutazione di pacchetto". Questa tecnologia comportava che i dati in transito
su una linea telefonica fossero divisi in piccole parti, ognuna con il proprio "indirizzo di destinazione".
Comunicazione di pacchetto:
La tecnologia a commutazione di pacchetto, permette a diversi utenti di usare e condividere la stessa
linea di comunicazione. Questo sistema permette la creazione di reti che possono automaticamente
dirottare i dati evitando computer e linee fuori uso, poiché ogni pacchetto ha un proprio "indirizzo" di
recapito.
Com’è chiaro, il sistema a pacchetti permette ad un notevole numero di veicoli-pacchetti (ognuno con il
proprio indirizzo) di utilizzare la stessa linea. Invece, i precedenti sistemi a commutazione di circuito (
il sistema per lo smistamento delle chiamate telefoniche basato sulla connessione fisica diretta tra due
utenti) per mettere in rete i computer richiedevano una linea per ogni computer, utilizzabile di volta in
volta solo dai due utenti collegati (anche se non dialogano).
Tesina Maturità 2005/06
15
A partire degli anni’ 80 questa "ragnatela" divenne comunemente nota come Internet, e prese le
stesse diramazioni con crescente velocità. In seguito, l'accesso si rese disponibile al pubblico. Ora
chiunque abbia un computer può girare per il mondo utilizzando un modem: un dispositivo che
permette di convertire (modulare) i segnali digitali (sequenze di 0 e 1) del computer in
segnali analogici, in grado di transitare sulle linee telefoniche; ovviamente il modem esegue anche
l'operazione inversa (demodulare).
Dagli anni '90, la rete continua a crescere in modo esponenziale. Per soddisfare il crescente volume
di traffico.Inizialmente, la principale "backbone" (dorsale) della rete negli Stati Uniti muoveva i dati
a 56.000 bps (bit per secondo: ossia in un secondo ogni punto della rete è attraversato da 56000 cifre
composte da 0 e 1), si dimostrava troppo lenta per la crescente quantità di dati che veniva inviata
attraverso di essa, e negli anni recenti la velocità massima è cresciuta fino ad 1.5 milioni e poi fino a
45 milioni di bps. Un altro dei più importanti cambiamenti è stato lo sviluppo di servizi commerciali
che potessero fornire servizi Internet ad una velocità paragonabile a quella dei sistemi governativi.
Connessi ai computer della dorsale ci sono piccoli network che servono particolari regioni
geografiche, che generalmente muovono i dati ad una velocità di circa 1.5 milioni di bit al secondo.
Questi, a loro volta, alimentano i network più piccoli o i computer individuali. In realtà, non sono
uno o più computer centrali che costituiscono il "motore" di Internet: le sue risorse sono costituite
proprio dalle migliaia di computer individuali. Questo è allo stesso tempo il suo più grande punto di
forza e la sua più grande debolezza. Il punto di forza rende virtualmente impossibile che l'intera rete
vada in crash contemporaneamente, infatti se qualche computer è in tilt (down), il resto della rete
rimane in piedi. Inoltre, la sua struttura di sistema riduce anche i costi di accesso alla rete per un
singolo o per un'organizzazione. Per contro, migliaia di computer connessi possono anche rendere
difficile navigare nella rete e trovare quello che si cerca. Per ovviare in parte a questa difficoltà sono
stati sviluppati alcuni "motori" di ricerca che catalogano e facilitano la ricerca delle informazioni..
Le reti Internet possono collegare quasi ogni tipo di computer o di sistema operativo, e utilizzano
praticamente ogni tipo di mezzo elettronico di trasmissione: fibre ottiche, linee in rame per telefoni,
canali radio o a microonde e, in un prossimo futuro, anche le linee elettriche.
I collegamenti a Internet sono realizzati con l'intermediazione dei cosiddetti provider (AMERICAN
ON LINE è il più grande provider del mondo; TIN, INFOSTRADA, TISCALI, FLASHNET, sono
alcuni - non necessariamente i migliori - dei molti provider disponibili in ITALIA) che usano
standard internazionali complessivamente denominati TCP/IP (Transmission Control
Protocol/Internet Protocol), definiti da un'organizzazione detta Internet Society.
Le grandi dimensioni e l'universalità della rete pubblica Internet la rendono utilizzabile per il
collegamento di altri tipi di rete e di servizi computerizzati, compresi i sistemi online di
informazione e di shopping. Grazie a queste caratteristiche, la rete Internet si è dimostrata un mezzo
efficiente per costruire una struttura universale di informazione molto completa a livello mondiale.
Tesina Maturità 2005/06
16
PROGRAMMI REALIZATI
Nella realizazione di tutti i piccoli programi che compongono questo progetto, come linguaggio di
programazione abbiamo usato il Delphi. tutti i dati ritenuti necessari sono stati memorizzati in un
apposito databese, perciò si deve avere una interrazione tra questi due sistemi.
i componenti che abbiamo usato per andare a prendere i dati, qualvolta necessario, nei database sono
i seguenti:
ADOConnction
DataSource
Questo componenti ha il compito di fare il
colegamento tra il programma delphi e il data base;
bisonha solaente indicare il percorso del database e
vedere se la connezione è stata realizzata
corretamente.
Questo componente funziona da sorgente. è in
grado di prendere i dati dalla tabella e di inviare ad
un contenitore, come ad esempio una memo.
ADOTable
Organizza i dati appogiandosi all’Ado Connetion.
offre accesso diretto ad ogni record e campo in una
tavola di database fondamentale
Timer
Questo componenti appartiene al gruppo degli
oggetti non visibili di delphi, ovviamente non in
fase di progettazione. Nel nostro caso sostituisci la
funzione del pulsanti; cioè iniziare la ricerca e
chiudere il programma.
•
Trasferimento Ordinato Dei Santi
Il seguente programma ha la funzione di trasferire in maniera ordinata, in base al mese i al giorno.
Abbiamo fatto ciò perché i dati contenuti nel database non erano ordinati, dovuto alle modifiche fatte in
quest’ultimo. Quando in un data base dobbiamo aggiungere dei dati, questi vengono aggiunti in fondo al
data base; inoltre distingue i santi del calendario di Frate Indovino con quelli trovati in Internet.
Quest’ultima è stata realizzata con l’inserimento del numero 99 nella casella corrispondente al grado dei
santi.
Tesina Maturità 2005/06
17
Listato del sorgente Delphi
procedure TForm1.Button1Click(Sender: TObject);
var cont : integer;
st : string;
Begin
tanno1.Open;
st := 'SELECT * FROM ANNO '+ 'ORDER BY MESE, GIORNO, NOME, N ASC';
// Seleziono tutti i campi della tabella ANNO, ordinati per M, G, N, in modo ascendente.
QAnno.Close;
QAnno.SQL.Clear ; // pulisci il contenitore dove c'è l'istruzione
QAnno.SQL.Add(st); // aggiungi nuovo commando
QAnno.Open;
for cont := 1 to QAnno.RecordCount do
begin
TAnno1.Append; // crea un nuovo record
TAnno1.FieldByName('MESE').AsInteger := QAnno.FieldByName('MESE').AsInteger;
TAnno1.FieldByName('GIORNO').AsInteger := QAnno.FieldByName('GIORNO').AsInteger;
TAnno1.FieldByName('N').AsInteger := QAnno.FieldByName('N').AsInteger;
TAnno1.FieldByName('CAT').AsString := QAnno.FieldByName('CAT').AsString;
TAnno1.FieldByName('NOME').AsString := QAnno.FieldByName('NOME').AsString;
TAnno1.FieldByName('TIPO').AsString := QAnno.FieldByName('TIPO').AsString;
TAnno1.FieldByName('DESCRIZIONE').AsString := QAnno.FieldByName('DESCRIZIONE'). AsString;
TAnno1.Post; // salva sul disco
QAnno.Next; // passa al record successivo della query
end;
SHOWMESSAGE('HO FINITO');
end;
procedure TForm1.Button2Click(Sender: TObject);
VAR CONT, n : INTEGER;
st : string;
begin
For Cont := 1 To TAnno.RecordCount do
Begin
n := TAnno.FieldByName('N').AsInteger; //Leggi quello che c’è nel campo N
st := TAnno.FieldByName('N').AsString;
If (n = 0) OR (st = '')
Then
Begin
TAnno.Edit;
TAnno.FieldByName('N').AsInteger := 99; // Inserisci 99 quando è vuoto il campo N.
TAnno.Post;
End;
TAnno.Next;
End;
SHOWMESSAGE('HO FINITO');
end;
end.
Tesina Maturità 2005/06
18
•
Ricerca Onomastico
Questo piccolo programma ci permette di sapere i giorni che si festeggia un determinato santo; basta
inserire il nome del santo che si vuole ricercare nell’apposita casella e premere il pulsante:
in questo modo viene visualizzato su un contenitore dati, la data e i nomi dei santi che si festeggiano.
Inoltre possiamo scegliere il tipo di ricerca da effettuare:
solo 1..3 il programma andrà a ricercare i santi in corrispondenza al calendario di Frante Indovino;
Tutti farà riferimento all’interro database, il quale è composto sia dai santi del calendario di Frate
Indovino, sia dei santi ottenuti da una ricerca fatta su Internet.
Tesina Maturità 2005/06
19
LISTATO DEL SORGENTE DELPHI
unit Unit1
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, Grids, DBGrids, ExtCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ANNO: TADOTable;
Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
rg1: TRadioGroup;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Function Mese(mm : integer) : String;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
VAR C1, mm, gg, n : Integer;
nome : string;
cond : Boolean;
begin
Memo1.Clear;
ANNO.First;
Memo1.Lines.Add('Onomastico per '+ Edit1.text);
Memo1.Lines.Add('');
for c1 := 1 to ANNO.RecordCount do
begin
nome := ANNO.FieldByName('NOME').AsString;
n := ANNO.FieldByName('N').AsInteger;
Tesina Maturità 2005/06
20
nome := UpperCase(nome); // DIVENTA TUTTO MAIUSCOLO
If Rg1.ItemIndex = 0
Then cond := (Pos(Edit1.Text,nome) <> 0) and (n < 99)
Else cond := (Pos(Edit1.Text,nome) <> 0) ;
If cond
Then
Begin
mm := anno.FieldByName('MESE').AsInteger;
gg := anno.FieldByName('GIORNO').AsInteger;
Memo1.Lines.Add(IntToStr(gg)+' '+Mese(mm)+' '+nome+ ' - ' + IntToStr(n)); // specifica il grado
Memo1.Lines.Add('');
End;
ANNO.Next;
end;
end;
function TForm1.Mese(mm: integer): String;
begin
Case mm of
1 : Result := 'Gennaio';
2 : Result := 'Febbraio';
3 : Result := 'Marzo';
4 : Result := 'Aprile';
5 : Result := 'Maggio';
6 : Result := 'Giugno';
7 : Result := 'Luglio';
8 : Result := 'Agosto';
9 : Result := 'Settembre';
10: Result :='Ottobre';
11: Result :='Novembre';
12: Result := 'Dicembre';
end;
end;
end.
Tesina Maturità 2005/06
21
Gestione Onomastici:
Questo programma ci consente di verificare i nominativi degli Studenti per i quali si verifica la
ricorrenza dell'ONOMASTICO. In questo programma viene utilizzato i due database: quello degli
studenti e quelli dei santi.
In corrispondenza della data scelta il programma è in grado di verificare i nome dei santi di quel giorno
e allo stesso momento se all’interno della tabella studenti è presente un nome compatibile a quello del
santo di quel giorno. Se si verifica l’onomastico, fa visualizzare in un contenitore, il nome e cognome
della persona, l’anno di nascita e la classe dello studente.
Inoltre salva tutti questi dati su un file di testo, il quale servirà per l’invio dell’email, poi deve chiudersi.
Tutti queste operazioni vengono eseguite in modo automatico.
Tesina Maturità 2005/06
22
Listato del sorgente Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils,Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, ComCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOConnection2: TADOConnection;
DataSource1: TDataSource;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
dtpk: TDateTimePicker;
Button1: TButton;
Label1: TLabel;
SqlSanti: TADOQuery;
Memo1: TMemo;
sqlStudenti: TADOQuery;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
public
{ Public declarations }
Function Ricerca_Onomastico(san : string) : string;
Function Mese(nm : integer) : string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function TForm1.Mese(nm : integer) : string;
Begin
Case nm of
1 : Result := 'Gennaio';
2 : Result := 'Febbraio';
3 : Result := 'Marzo';
4 : Result := 'Aprile';
5 : Result := 'Maggio';
Tesina Maturità 2005/06
23
6 : Result := 'Giugno';
7 : Result := 'Luglio';
8 : Result := 'Agosto';
9 : Result := 'Settembre';
10 : Result := 'Ottobre';
11 : Result := 'Novembre';
12 : Result := 'Dicembre';
End;
End;
procedure TForm1.Button1Click(Sender: TObject);
var
cont, z : integer;
Anno, Mes, Giorno: Word;
data : TDateTime;
st : string;
begin
Memo1.Clear;
data := dtpk.Date;
DecodeDate(data, Anno, Mes, Giorno); Label1.Caption := 'Giorno: ' + IntToStr(Giorno) + ' del Mese:’
+ mese(mes) + ' dell''anno: ' + IntToStr(Anno);
st := 'SELECT * FROM ANNO ' + 'WHERE (MESE='+ IntToStr(mes)+')
AND '+ '(GIORNO='+ IntToStr(giorno)+') AND ' + '(N < 99) ORDER BY N ' ;
SqlSanti.Close;
SqlSanti.SQL.Clear;
SqlSanti.SQL.Add(ST);
SqlSanti.Open;
Memo1.Lines.Add('Onomastici del Giorno: ' + IntToStr(Giorno) + ' del Mese di '
+ mese(mes) + ' dell''anno: ' + IntToStr(Anno));
Memo1.Lines.Add('');
If SqlSanti.RecordCount <> 0
Then
Begin
For Cont := 1 To SqlSanti.RecordCount do
Begin
st := UpperCase(SqlSanti.FieldByName('NOME').AsString);
// z := Pos(' ',st);
// If z <> 0 Then st := Copy(st,1,z-1);
Memo1.Lines.Add(st);
Memo1.Lines.Add(Ricerca_Onomastico(st));
SqlSanti.Next;
End;
Tesina Maturità 2005/06
24
End
Else
Begin
Memo1.Lines.Add('----');
End;
Memo1.Lines.SaveToFile('Onomastici.txt'); // salvo il contenuto della memo in un file di testo.
end;
Function TForm1.Ricerca_Onomastico(san : string) : string;
var
st : string;
k : integer;
Begin
st := 'SELECT * FROM STUDENTI ' + 'WHERE NOME="'+san+'"';
SqlStudenti.Close;
SqlStudenti.SQL.Clear;
SqlStudenti.SQL.Add(st);
SqlStudenti.Open;
st := '';
For k := 1 To SqlStudenti.RecordCount do
Begin
st := st + SqlStudenti.FieldByName('COGNOME').AsString+' '+
SqlStudenti.FieldByName('NOME').AsString+' '+
SqlStudenti.FieldByName('DN').AsString+' '+
SqlStudenti.FieldByName('CLASSE').AsString+#13+#10 ;
SqlStudenti.Next;
End;
Result := st;
End;
procedure TForm1.FormCreate(Sender: TObject);
begin
dtpk.DateTime := Now;
timer1.Enabled := true;// nell'evento create della Form abito il timer.
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
button1.Click;// quando ha finito il tempo fa la funzione del bottone, avviando la ricerca.
close; // chiude il programma.
// con queste istruzioni faccio in modo che il programma si gestisca da solo.
end;
end.
Tesina Maturità 2005/06
25
•
Compleanni Studenti
Questo programma, in base alla data scelta, ci va vedere i compleanni. Se c’è la ricorrenza del
compleanno visualizza in un contenitore Memo, i nomi e cognomi, la classe, la data di nascita e
l’età. Dopo ciò deve salvare i dati ottenuti in un file di testo per l’invio dell’email.
Anche questo programmino esegui tutte queste operazione in maniera automatica.
Listato del sorgente Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, ComCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ADOConnection2: TADOConnection;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
dtpk: TDateTimePicker;
Button1: TButton;
Memo1: TMemo;
SQLStudenti: TADOQuery;
Label1: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure dtpkChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
Tesina Maturità 2005/06
26
{ Public declarations }
Function DOW(dat : TDateTime) : string;
Function Mese(nm : integer) : string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//uses DateUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
cont : integer;
Anno,AnnoNas, Mes, Giorno, MM, DD: Word;
data, dn : TDateTime;
st, cog, nom, cla : string;
begin
Memo1.Clear;
data := dtpk.Date;
DecodeDate(data, Anno, Mes, Giorno);
// Recupero Anno, Mese, Giorno della data recuperata dal TDateTimePicker
Memo1.Lines.Add('Compleanni del Giorno: ' + IntToStr(Giorno) + ' del Mese: '
+ Mese(mes) + ' dell''anno: ' + IntToStr(Anno));
Memo1.Lines.Add('');
SqlStudenti.First;
For cont := 1 To SqlStudenti.RecordCount do
Begin
cog := SqlStudenti.FieldByName('COGNOME').AsString;
nom := SqlStudenti.FieldByName('NOME').AsString;
cla := SqlStudenti.FieldByName('CLASSE').AsString;
DN := SqlStudenti.FieldByName('DN').AsDateTime;
DecodeDate(dn, AnnoNas, MM, DD);
// Recupero Anno, Mese, Giorno della data di Nascita
If (MM = Mes) AND (DD = Giorno)
Then
Begin
Memo1.Lines.Add(cog+' - '+nom+' - '+cla+' - '+DateToStr(DN)+' anni: '+IntToStr(Anno-AnnoNas));
End;
SqlStudenti.Next;
End;
Memo1.lines.SaveToFile('compleanni.txt');
end;
procedure TForm1.FormCreate(Sender: TObject);
Tesina Maturità 2005/06
27
begin
DTPK.DateTime := Now;
Label1.Caption := Dow(DTPK.DateTime);
Timer1.Enabled := True;
end;
Function TForm1.Mese(nm : integer) : string;
Begin
Case nm of
1 : Result := 'Gennaio';
2 : Result := 'Febbraio';
3 : Result := 'Marzo';
4 : Result := 'Aprile';
5 : Result := 'Maggio';
6 : Result := 'Giugno';
7 : Result := 'Luglio';
8 : Result := 'Agosto';
9 : Result := 'Settembre';
10 : Result := 'Ottobre';
11 : Result := 'Novembre';
12 : Result := 'Dicembre';
End;
End;
Function TForm1.DOW(dat : TDateTime) : string;
Begin
// ricordarsi i cambiamenti x delphi 6
// DayOfTheWeek, il primo giorno settimana è Lunedì
Case DayOfWeek(dat) of
1 : Result := 'Domenica';
2 : Result := 'Lunedì';
3 : Result := 'Martedì';
4 : Result := 'Mercoledì';
5 : Result := 'Giovedì';
6 : Result := 'Venerdì';
7 : Result := 'Sabato';
End;
End;
procedure TForm1.dtpkChange(Sender: TObject);
begin
Label1.Caption := Dow(DTPK.DateTime);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
button1.Click;
close;
end;
end.
Tesina Maturità 2005/06
28
• TEST SANTI DOPPI
Questo programma ha servito per visualizzare se nello stesso campo “NOME”, nel qualle sono stati
inseriti i nome dei santi, erano presente più di un santo. il problemma era che avendo due santi sullo
stesso campo, il programma considerava un unico nome. quando dovevamo fare la ricerca era
praticamente impossibile trovare uno che avessi tutti due i nomi.
Listato del sorgente Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
dtpk: TDateTimePicker;
Button1: TButton;
SqlSanti: TADOQuery;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Tesina Maturità 2005/06
29
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
cont, z : integer;
Anno, Mese, Giorno: Word;
data : TDateTime;
st : string;
begin
Memo1.Clear;
data := dtpk.Date;
DecodeDate(data, Anno, Mese, Giorno);
z := 0;
For cont := 1 to SqlSanti.RecordCount do
Begin
st := SqlSanti.FieldByName('NOME').AsString;
mese := SqlSanti.FieldByName('MESE').AsInteger;
giorno := SqlSanti.FieldByName('GIORNO').AsInteger;
If Pos(' e ',st) <> 0
Then
Begin
Inc(z);
Memo1.Lines.Add(IntToStr(z)+'-'+st+' M'+IntTostr(mese)+' G'+IntToStr(giorno));
End;
SqlSanti.Next;
End;
memo1.Lines.SaveToFile('Santi-doppi.txt');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
dtpk.DateTime := Now;
end;
end.
Tesina Maturità 2005/06
30
•
INVIO EMAIL
Lo scopo di questo programma è di essere in grado di prendere i dati salvati, in un file di testo, dai
programmi onomastici e compleanni, e di spedire via posta elettronica(email).
Abbiamo salvato in un database i nomi dei destinati, così il programma può sapere a chi deve inviare i
dati.
Nella realizzazione di questo programma abbiamo sostanzialmente lavorato nella manipolazione di un
componente chiamato NMSMTP, il quale si occupa della spedizione della email.
Cronologia del programma:
•
Apre il Programma Calendario
•
Avvia il programma Ricerca Onomastici prendendo successivamente i dati ottenuti e memorizza
in una memo.
•
Avvia Ricerca Compleanni prendendo successivamente i dati ottenuti e memorizza in una
memo.
•
Aperta connessione dalla postazione:
•
Connessione al server: mail.tin.it( serve di posta in cui siamo collegati) 25
Il numero 25 corrisponde alla porta in cui è attivo il servizio SMTP, cioè il protocollo che
trasmette i messaggi di posta elettronica tra due utenti.
•
Invio email: ARCANGELO ANTONIO:[email protected]
•
Invio email: AZZANI CLETO:[email protected]
•
Invio email: DA SILVA FRANCISCO:[email protected]
•
Chiusura Programma Calendario
Tesina Maturità 2005/06
31
Listato del sorgente Delphi
unit u_invioemail;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Psock, NMsmtp, ExtCtrls, Grids, DBGrids, DB, ADODB, ShellApi,
DBCtrls, LogFile;
type
TForm1 = class(TForm)
NMSMTP1: TNMSMTP;
Button1: TButton;
Button2: TButton;
Edit7: TEdit;
Label7: TLabel;
Button6: TButton;
Edit10: TEdit;
Label11: TLabel;
Memo1: TMemo;
ADOConnection1: TADOConnection;
Tab_utenti: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button3: TButton;
Timer1: TTimer;
logf: TLogFile;
sb: TStatusBar;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure NMSMTP1Connect(Sender: TObject);
procedure NMSMTP1Disconnect(Sender: TObject);
procedure NMSMTP1Status(Sender: TComponent; Status: String);
procedure Button6Click(Sender: TObject);
procedure NMSMTP1EncodeStart(Filename: String);
procedure NMSMTP1EncodeEnd(Filename: String);
procedure NMSMTP1MailListReturn(MailAddress: String);
procedure NMSMTP1ConnectionFailed(Sender: TObject);
procedure NMSMTP1ConnectionRequired(var handled: Boolean);
procedure NMSMTP1Failure(Sender: TObject);
procedure NMSMTP1HostResolved(Sender: TComponent);
procedure NMSMTP1InvalidHost(var handled: Boolean);
procedure NMSMTP1PacketSent(Sender: TObject);
procedure NMSMTP1RecipientNotFound(Recipient: String);
procedure NMSMTP1SendStart(Sender: TObject);
procedure NMSMTP1Success(Sender: TObject);
procedure NMSMTP1HeaderIncomplete(var handled: Boolean;
hiType: Integer);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
Tesina Maturità 2005/06
32
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
stat, nmail : integer;
nome, email : string;
procedure Connessione_SMTP;
procedure Preparazione_email;
procedure Spedizione_email;
end;
var
Form1: TForm1;
const
host_smtp = 'mail.tin.it';
host_port = 25;
host_name = 'CALENDARIO';
email_addr ='[email protected]';
implementation
{$R *.DFM}
procedure TForm1.Connessione_SMTP;
begin
NMSMTP1.Host := host_smtp;
NMSMTP1.Port := host_port;
NMSMTP1.Connect;
logf.LogToFile(TimeToStr(time)+' Connessione al server: '+host_smtp+':'+IntToStr(host_port));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Connessione_SMTP;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
NMSMTP1.Disconnect;
end;
procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
sb.Panels[0].Text := 'Connected';
logf.LogToFile(TimeToStr(time)+' Aperta connessione');
Inc(Stat);
end;
procedure TForm1.NMSMTP1Disconnect(Sender: TObject);
begin
If sb.Panels[0].Text <> ''
then sb.Panels[0].Text := 'Disconnected';
end;
procedure TForm1.NMSMTP1Status(Sender: TComponent; Status: String);
begin
If sb.Panels[0].Text <> ''
then sb.Panels[0].Text := status;
Tesina Maturità 2005/06
33
end;
procedure TForm1.Spedizione_email;
begin
// dati del mittente
NMSMTP1.PostMessage.FromAddress := email_addr;
NMSMTP1.PostMessage.FromName := host_name;
NMSMTP1.PostMessage.Subject := Edit10.Text;
NMSMTP1.PostMessage.ToAddress.Add(Edit7.Text);
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add('[email protected]');
NMSMTP1.PostMessage.Body.Assign(Memo1.Lines);
NMSMTP1.SendMail;
logf.LogToFile(TimeToStr(time)+' Invio email: '+nome+':'+email);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Spedizione_email;
end;
procedure TForm1.NMSMTP1EncodeStart(Filename: String);
begin
sb.Panels[0].Text := 'Encoding '+Filename;
end;
procedure TForm1.NMSMTP1EncodeEnd(Filename: String);
begin
sb.Panels[0].Text := 'Finished encoding '+Filename;
end;
procedure TForm1.NMSMTP1MailListReturn(MailAddress: String);
begin
// Memo2.Lines.Add(MailAddress);
end;
procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('Connection Failed');
end;
procedure TForm1.NMSMTP1ConnectionRequired(var handled: Boolean);
begin
If MessageDlg('Connection Required. Connect?', mtConfirmation, mbOkCancel, 0) = mrOk then
Begin
Handled := TRUE;
NMSMTP1.Connect;
End;
end;
procedure TForm1.NMSMTP1Failure(Sender: TObject);
begin
sb.Panels[0].Text := 'Failure';
end;
procedure TForm1.NMSMTP1HostResolved(Sender: TComponent);
begin
sb.Panels[0].Text := 'Host Resolved';
end;
procedure TForm1.NMSMTP1InvalidHost(var handled: Boolean);
var
TmpStr: String;
begin
Tesina Maturità 2005/06
34
If InputQuery('Invalid Host!', 'Specify a new host:', TmpStr) then
Begin
NMSMTP1.Host := TmpStr;
Handled := TRUE;
End;
end;
procedure TForm1.NMSMTP1PacketSent(Sender: TObject);
begin
sb.Panels[0].Text := IntToStr(NMSMTP1.BytesSent)+' bytes of '+IntToStr(NMSMTP1.BytesTotal)+'
sent';
end;
procedure TForm1.NMSMTP1RecipientNotFound(Recipient: String);
begin
ShowMessage('Recipient "'+Recipient+'" not found');
end;
procedure TForm1.NMSMTP1SendStart(Sender: TObject);
begin
sb.Panels[0].Text := 'Spedizione messaggi';
end;
procedure TForm1.NMSMTP1Success(Sender: TObject);
begin
sb.Panels[0].Text := 'Success';
Inc(Stat);
end;
procedure TForm1.NMSMTP1HeaderIncomplete(var handled: Boolean;
hiType: Integer);
begin
ShowMessage('Mail-Header Incompleto');
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
NMSMTP1.Abort;
end;
procedure TForm1.Preparazione_email;
var body : string;
begin
// global variables
nome := Tab_utenti.FieldByName('NOME').AsString;
email := Tab_utenti.FieldByName('EMAIL').AsString;
edit10.Text := 'SERVIZIO CALENDARIO ELETTRONICO per: '+nome;
edit7.Text := email;
Memo1.Lines.LoadFromFile('Onomastici.txt');
body := Memo1.Lines.Text;
Memo1.Lines.LoadFromFile('Compleanni.txt');
body := body + Memo1.Lines.Text;
Memo1.Lines.Text := body;
Memo1.Lines.Add('');
Memo1.Lines.Add('Copyright [email protected]');
memo1.Lines.SaveToFile('email.txt');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DeleteFile('Onomastici.txt');
Tesina Maturità 2005/06
35
DeleteFile('Compleanni.txt');
Timer1.Enabled := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
stat := 0;
nmail := 0;
Tab_utenti.Open;
Edit1.Text := IntToStr(Tab_Utenti.RecordCount);
logf.LogToFile(TimeToStr(time)+' Apertura Programma Calendario');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
case stat of
0 : Begin
Inc(Stat);
ShellExecute(Form1.HANDLE,PChar('open'),PChar('pOnomastici.exe'),nil,nil,SW_MINIMIZE);
logf.LogToFile(TimeToStr(time)+' Ricerca Onomastici');
End;
1 : Begin
If FileExists('Onomastici.txt') Then Inc(Stat);
End;
2: Begin
Inc(Stat);
ShellExecute(Form1.HANDLE,PChar('open'),PChar('pCompleanni.exe'),nil,nil,SW_MINIMIZE);
logf.LogToFile(TimeToStr(time)+' Ricerca Compleanni');
End;
3: Begin
If FileExists('Compleanni.txt') Then Inc(Stat);
End;
4: Begin
Connessione_SMTP; // attiva la connessione
Inc(Stat);
End;
5: sb.Panels[1].Text := 'CONNESSIONE IN CORSO ';
6: Begin
//
Preparazione_email;
Spedizione_email;
Inc(Stat);
End;
7 : sb.Panels[1].Text := 'SPEDIZIONE IN CORSO ';
8: Begin
Inc(nmail);
If nmail >= Tab_Utenti.Recordcount
Then
Begin
Inc(Stat);
End
Else
Begin
Tab_Utenti.Next;
Stat := 6;
Tesina Maturità 2005/06
36
End;
End;
9: Begin
NMSMTP1.Disconnect;
Inc(Stat);
End;
10: Begin
Close;
End;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Tab_utenti.Close;
logf.LogToFile(TimeToStr(time)+' Chiusura Programma Calendario');
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form1.Caption := 'Servizio Calendario Elettronico IPSIA MORETTO '+NMSMTP1.GetLocalAddress;
end;
end.
Tesina Maturità 2005/06
37
ISTITUTO PROFESSIONALE DI STATO
PER L’INDUSTRIA E ARTIGIANATO
- MORETTOESAME
DI STATO
NETWORK COMPUTER TYPES
DA SILVA MOREIRA FRANCISCO JOSÈ
Calsse: 5^BZ
ANNO SCOLASTICO 2005/06
Tesina Maturità 2005/06
38
TELECOMMUNICATIONS
•
Computer Network:
A computer network is a group of computers which are interconnected by telephone lines or
other high speed communication links in order to share information and processing resources.
Networks enable data to be transferred rapidly from one computer to another.
•
Three network types:
BUS
RING
STAR
BUS:
A bus network topology, also called a daisy-chain topology has each computer directly connected on a
main communication line. One end has a controller, and the other end has a terminator. Any computer
that wants to talk to the main computer must wait its turn for access to the transmission line. In a
straight network topology, only one computer can communicate at a time. When a computer uses the
network, the information is sent to the controller, which then sends the information down the line of
computers until it reaches the terminating computer. Each computer in the line receives the same
information.
RING:
Ring networks operate like bus networks with the exception of a terminating computer. In this
configuration, the computers in the ring link to a main communication cable. The network receives
information via a “token” containing information requested by one or more computers on the network.
The token passes around the ring until the requesting computer(s) have received the data. The token uses
a packet of information that serves as an address for the computer that requested the information. The
computer then “empties” the token, which continues to travel the ring until another computer requests
information to be put into the token.
STAR:
A network in which all terminals are connected through a single point, such as a star coupler or
concentrator.
Star networks incorporate multiport star couplers in to achieve the topology. Once again, a main
controlling computer or computer server interconnects with all the other computers in the network.
As with the bus topology with a backbone, the failure of one computer node does not cause a failure
in the network. Both the bus and the star network topologies use a central computer that controls
the system inputs and outputs. Also called a server, this computer has external connections, to the
Internet for example, as well as connections to the computer nodes in the network.
Tesina Maturità 2005/06
39
BIBLIOGRAFIA :
Tutti i documenti che sono stati utilizzati per fare questa tesina provengono da:
www.google.it
Manuale di Delphi
www.google.com.br
Corsi di Delphi
www.ipsiamoretto.com
Approfondimenti
Tesina Maturità 2005/06
40
RINGRAZIAMENTI:
VORREI RINGRAZIARE TUTTI I DOCENTE DELLA CLASSE 5BZ, IN MODO PARTICOLARE IL
PROFESSORE CLETO AZZANI, CHE SI È RESO SEMPRE DISPONIBILE NELLA REALIZAZZIONE
QUESTO PROGETTO, SOPRATTUTTO PER QUANTO RIGUARDA LA REALIZZAZIONE DEI PROGRAMMI
IL LINGUAGGIO DELPHI. RINGRAZIO INOLTRE AL VICE-PRESIDE ARCANGELO CHE CI HA
CONSENTITO DI REALIZZARE QUESTO PROGRAMMA DI STUDIO.
Tesina Maturità 2005/06
DI
CON
41
Scarica

- MORETTO- CLASSE: 5^BZ - Home page sito web prof. Cleto Azzani