Scarica Fondamenti di Informatica e più Panieri in PDF di Fondamenti di informatica solo su Docsity! LEZIONE 1 RAM Random Access Memory Un byte è una sequenza di 8 bit Descrivere in maniera dettagliata i principali fattori che influenzano le prestazioni di un computer: la frequenza della CPU: più è elevata la frequenza della CPU, tanto maggiore sarà la velocità del computer; la dimensione della RAM: la RAM contiene tutti i dati ed i programmi che sono coinvolti nell'elaborazione corrente. Per poter essere elaborato un dato deve essere prima trasferito nella memoria RAM, lo stesso vale per un programma per poter essere eseguito. Perciò una RAM veloce e capiente rende il computer più rapido; il numero di applicazioni in esecuzione contemporanea: maggiore è il numero di applicazioni in esecuzione, maggiore è il tempo necessario per portare a termine ogni singola elaborazione. Cos'è una periferica? Fornire degli esempi di periferiche di input e di output. I dispositivi di input sono le periferiche che forniscono dati in ingresso al computer. Un tipico dispositivo di input è la tastiera. I dispositivi di output sono le periferiche che permettono di mostrare il risultato di un'elaborazione. Alcuni esempi di dispositivi di output sono lo schermo e la stampante. Quali sono le componenti hardware che compongono una CPU? Quali compiti sono deputati a svolgere? La CPU è costituita da tre parti: l'unità di controllo (Control Unit, CU), l'unità aritmeticologica (Arithmetic Logic Unit) ed i registri. La CU stabilisce quali operazioni devono essere eseguite e comanda la ALU. La ALU esegue i calcoli, effettua le operazioni logiche ed i confronti richiesti dalla CU. I registri sono delle celle di memoria contenute nella CPU che permettono alla CU di memorizzare temporaneamente alcune informazioni utili all'elaborazione, come ad esempio dati e risultati oppure indirizzi di celle di memoria RAM in cui sono contenute informazioni utili all'elaborazione. Quali sono le differenze tra Software di Sistema e Software Applicativo? Il primo è il sistema operativo, il secondo risolve i problemi dell’utente. Quali sono le principali funzioni di un Sistema Operativo? Le principali funzioni di un sistema operativo sono: - la gestione della CPU; - l’inizio e la fine della sessione di lavoro del calcolatore; - la gestione della memoria; - la gestione delle periferiche di input e di output; - la gestione dei file registrati sulla memoria di massa; - la gestione degli accessi Cosa si intende con il termine "Ciclo di Vita del Software"? Elencare le diverse fasi. L'insieme delle fasi che accompagnano un software durante la sua vita si chiamano "ciclo di vita del software". Il ciclo di vita di un software si può scomporre in queste fasi: - analisi e progettazione, nelle quali si analizzano il problema da risolvere, le esigenze dell'utente, le risorse disponibili e viene sviluppata l'architettura del progetto (costruzione dell'algoritmo, vedi paragrafo seguente); - programmazione (o sviluppo), nella quale viene scritto il codice del software; - test, nella quale viene testato il software realizzato e vengono corretti gli eventuali bug riscontrati; - rilascio, nella quale viene consegnata all’utente la versione definitiva del software. Fornire una definizione di Algoritmo. Un algoritmo è una sequenza di istruzioni che può essere impiegata per rappresentare lo sviluppo di un processo qualsiasi, partendo da uno stadio iniziale (input) fino ad arrivare ad uno stadio finale (output), tramite in insieme di istruzioni (o passi) ben definite. Nell'informatica gli algoritmi sono usati come metodologia per descrivere un'attività di elaborazione dei dati. Per esempio vengono costruiti algoritmi per calcolare il minimo comune multiplo di un determinato insieme di numeri, o per ordinare (alfabeticamente) delle parole o (in senso crescente, ad esempio) un elenco di numeri In merito ai linguaggi di programmazione, quali sono le differenze tra linguaggio di basso livello e linguaggio di alto livello? Linguaggio macchina interpretabile subito, ma svolge operazioni semplici. Linguaggio procedurale (PHP, JAVA…) Fornire una definizione di Informatica, intesa come scienza. È una scienza che propone di raccogliere, organizzare, conservare e distribuire informazioni tramite sistemi automatici di elaborazione dati. Descrivere in maniera proficua le differenze tra una memoria di tipo RAM e una memoria di tipo ROM. Memoria RAM: memoria volatile, i dati si perdono quando si spegne il PC Memoria ROM: è una memoria di sola lettura, sulla quale è possibile effettuare solo operazioni di lettura. LEZIONE 7 Internet è la rete mondiale formata da reti e computer connessi tra loro. Extranet è la rete privata aziendale che include particolari utenti esterni all’azienda. Intranet è la rete aziendale che usa tecnologia Internet. WWW - World Wide Web HTTP -Protocollo per la trasmissione di documenti su Internet. URL - Modalità di indirizzamento alle risorse presenti su Internet. ISDN (Integrated Service Digital Network) è un protocollo di telefonia integrata che consente di effettuare tutti i servizi di telecomunicazione tramite una sola linea telefonica digitale. Cookie - File memorizzati dal browser durante la navigazione. I Doppi apici “ durante ricerca Google permettono di effettuare ricerche più restrittive, imponendo di trovare tutte le parole racchiuse tra gli apici nell’esatta sequenza in cui sono state scritte. Un Client fruisce dei servizi messi a disposizione dai Server. In cosa consiste una rete di calcolatori? Quali sono i vantaggi? Elencare infine le diverse tipologie di rete viste a lezione. La rete di calcolatori è costituita da un insieme di cavi di connessione e software specifico progettato per l’elaborazione e lo scambio di informazioni. Serve per diffondere informazioni, comunicare, discutere, vendere e comprare con il resto del mondo da remoto, senza necessità di spostarsi. LAN (Local Area Network): rete di estensione locale di computer che risiedono tutti nello stesso ambiente di lavoro. Lo scopo principale della LAN è consentire la condivisione delle risorse (spazio disco, stampanti ecc.) ai computer ad essa collegati. WAN (Wide Area Network): rete geografica con un’estensione molto più vasta della LAN. Client-Server. La rete MAN (Metropolitan Area Network), è una rete che copre delle distanze metropolitane, cioè in un’area urbana di grandi dimensioni o dislocate tra paesi vicini e distanti pochi chilometri. I computer sono interconnessi tra loro e collegati a un server centrale nell’intero territorio comunale o metropolitano. Le reti GAN (Global Area Network) sono reti che collegano computer dislocati in tutti i continenti. Diverse sono le tecnologie impiegate per interconnettere le macchine: dal cavo in rame del comune doppino telefonico agli avanzati sistemi satellitari. Internet, la rete delle reti, è un tipico esempio di rete di tipo GAN. Computer che maggiormente influenzò la moderna concezione di computer – Macchina di Von Neumann Descrivere la figura di Ada Lovelace e la sua relazione con Babbage. Ada Augusta Lovelace era la giovane figlia del famoso poeta inglese, Lord Byron. Babbage assunse Ada per produrre un software per la analytical engine. Ada Lovelace fu quindi la prima programmatrice della storia e in suo onore fu chiamato il linguaggio di programmazione Ada. Perché John Atanasoff è considerato il padre dei calcolatori moderni? La macchina di Atanasoff era basata sull'aritmetica binaria e utilizzava dei condensatori per la memoria. Affinché la loro carica non si disperdesse, la memoria veniva periodicamente aggiornata, secondo un processo che Atanasoff chiamò “jogging the memory”. Atanasoff è considerato il padre dei calcolatori moderni perché le moderne memorie dinamiche (DRAM) funzionano secondo lo stesso principio. In che modo la guerra ha influenzato la realizzazione di nuovi calcolatori digitali? All'inizio della guerra lo spionaggio britannico riuscì a procurarsi una macchina ENIGMA, un dispositivo utilizzato dai tedeschi per decodificare i messaggi che gli ammiragli tedeschi spedivano i comandi via radio ai sottomarini. Tuttavia, per poter decifrare un messaggio codificato occorreva svolgere un'enorme quantità di calcoli ed era necessario poterlo fare molto velocemente, non appena il comando veniva intercettato, affinché ciò potesse essere di una qualche utilità. Per decodificare questi messaggi il governo britannico creò un laboratorio segretissimo per la costruzione di un computer chiamato COLOSSUS. Qual è la differenza tra la tecnologia a valvole e quella a transistor? L’arrivo dei transistor che novità a portato nella costruzione dei calcolatori digitali? La tecnologia a valvole, detta Prima Generazione, si basa su tre funzioni fondamentali che la macchina deve svolgere e che ancora oggi sono per definizione la base di un processo di elaborazione dati: l'immissione delle informazioni, la loro elaborazione, e l'immissione del risultato della elaborazione. I dati da utilizzare e le istruzioni necessarie ad eseguire automaticamente le varie operazioni, espressi sotto forma di perforazioni su schede, vengono letti dall'unità di immissione e trasferiti nella memoria interna. L'invenzione del transistor nel 1948 permise di rendere molto più piccoli i circuiti logici necessari per il funzionamento del calcolatore. Nasce così la Seconda Generazione. Rispetto ai computer a valvole presenta diversi vantaggi: dimensioni molto inferiori, potenza assorbita e dispersione di calore molto minori, tensione di lavoro più bassa, maggiore affidabilità, infine costi assai più limitati. In 10 anni il transistor rivoluzionò la tecnologia al punto che, nei tardi anni 50’ i computer a valvole divennero obsoleti, inoltre diedero il via alla nascita dell’industria dei microcomputer. Citare almeno tre tipi di calcolatori digitali a transistor. Il primo computer a transistor, il TX-0, era una macchina a 16 bit e fu costruito presso il Lincoln Laboratory del M.I.T. Nel 1961 nasce PDP-1, dotato di 4096 parole da 18 bit e poteva eseguire 200.000 istruzioni al secondo. Pochi anni dopo DEC introdusse il modello PDP-8, dotata di un unico bus, chiamato omnibus, cioè un insieme di cavi paralleli utilizzati per connettere i diversi componenti di un computer. Nel frattempo la IBM lanciò il modello 7090 e in seguito il modello 7094. Nel 1964 una piccola e sconosciuta società, la Control Data Corporation (CDC), introdusse il modello 6600, una macchina che era quasi un ordine di grandezza più veloce dell'imponente 7094 e di ogni altra macchina dell'epoca. Citare almeno tre calcolatori digitali a circuiti integrati. IBM introdusse un'unica linea di prodotti, il System/360, basata su circuiti integrati e progettata sia per i calcoli scientifici sia per quelli commerciali, e di cui ricordiamo il 360 Model 30, e il 360 Model 75. Nella terza generazione, anche il mondo dei microcomputer fece un gran passo in avanti con l'introduzione da parte di DEC della serie PDP-11, un successore a 16 bit del modello PDP-8. Perché l'INTEL 386 viene definito il primo Pentium della storia? Grazie al successo conseguito con l'8088, Intel continuò a realizzarne versioni via via migliori e più potenti. Particolarmente degno di nota fu il 386, introdotto nel 1985, in pratica il primo Pentium. Gli attuali Pentium infatti, sebbene siano molto più veloci, dal punto di vista dell'architettura non sono che una versione "truccata" del 386.05. Il PDP-1: descriverne il funzionamento e le novità apportate ai computer digitali. L'elaboratore PDP-1 era dotato di 4096 parole da 18 bit e poteva eseguire 200.000 istruzioni al secondo. Prima del PDP- 1 i computer erano talmente grandi e costosi che, per farli funzionare, aziende e università dovevano disporre di specifici uffici chiamati centri di calcolo mentre, con l'avvento dei microcomputer, ogni dipartimento poteva dotarsi di un proprio elaboratore. Dal 1980 i prezzi crollarono al punto che anche i privati potevano permettersi di possedere un computer: ebbe così inizio l'era dei personal computer. Fornire una definizione generale di VLSI. Negli anni '80 la tecnologia VLSI (Very Large Scale Integration, "integrazione a larghissima scala") permise di inserire in un unico chip prima decine di migliaia, poi centinaia di migliaia e infine milioni di transistor. Questo sviluppo portò velocemente alla realizzazione di computer più piccoli e più veloci. LEZIONE 20 TCP/IP – permette la comunicazione tra sistemi informatici diversi Primo software a supportare il protocollo HTTP – Mosaic Una delle concause della nascita di INTERNET è la necessità di comunicare in maniera non intercettabile. La nuova tecnologia di trasmissione dei dati alla base della nascita di INTERNET è il protocollo informatico TCP/IP. Chi tra questi può essere considerato uno dei padri di Internet? – CERF HTML – Meta linguaggio USEnet - Sistema di messaggistica distribuito In che anno è nata la rete Internet? – 1990 Quale software introduce il concetto di LINK? - Gopher IAD - Internet Addiction Disorder Quale software è stato il primo a supportare tutti PROTOCOLLI (http, ftp etc.)? – Netscape In che anno è stata dismessa ARPANET? – 1990 Descrivere in generale il progetto ARPAnet. Arpanet nasce dall’esigenza di collegare i computer di circa trenta università in tutto il paese dove si studiava informatica e che ricevevano fondi dall'Arpa.La realizzazione tecnica fu resa possibile dall’idea del Packet Switching, coniando forse per primo il termine packet.Il progetto su ArpaNET iniziò nell'ambito delle ricerche dell’Agenzia per i Progetti di Ricerca Avanzata sulla Difesa, organo facente parte del Dipartimentomilitare di Difesa americano. Il loro interesse era quello di trovare un altro modo di comunicare nel corso di una battaglia usando i computer. Così iniziarono con ArpaNET, come fu chiamata, che usava le linee telefoniche per collegare i computer tra di loro. Per collegare due computer con un packet switching network viene realizzata un interface Message Processor, che aveva il compito di ‘pacchettizzare’ i dati da mandare sulla linea di trasmissione, o di ricostruire dati che venivano trasmessi in pacchetti. Gli anni ’80: gli albori di internet e il protocollo TCP/IP. Esporre brevemente l’argomento. Gli anni ’70 hanno rappresentato il periodo “eroico” della scoperta del protocollo TCO/IP e del suo funzionamento sotto ARPAnet. Dopo la seconda Guerra Mondiale il Triple Network Experiment sancisce definitivamente il raggiungimento dell’obiettivo posto dall’Operation Research ARPA, obiettivo definito delle tre C: Controllo, Comando, Comunicazione. Il protocollo TCP/IP viene ufficialmente adottato dalle organizzazioni militari per lo sviluppo dei sistemi di comunicazione. Presto si assiste alla migrazione verso il protocollo TCP/IP anche dalle reti preesistenti. Tale protocollo è formato da due protocolli distinti che svolgono funzioni diverse nella trasmissione di dati: il protocollo TCP che gestisce l’organizzazione dei dati e il controllo della trasmissione e il protocollo IP che trasmette i dati e gestisce il traffico fra i diversi computer collegati. USEnet, il primo sistema di messaggistica: per quale piattaforma era stato creato? Uno dei primi importanti sistemi di messaggistica distribuiti fu l’Unix User Network o Usenet, che implementava il protocollo UUCP per trasportare messaggi e notizie. Dopo un primo inizio con andamento altalenante a causa di alcune incongruenze tecniche dovute alle distanze culturali tra gli amministratori ed i gestori del sistema il sistema di messaggistica si diffonde e si evolve. Il sistema corrisponde ad una architettura client-server nella quale il client richiede le notizie presenti su un gruppo di discussione ed il server, eventualmente collegandosi con altre macchine, fornisce i messaggi richiesti. Usenet nel 1986 è amministrata in modo rigido da un gruppo di amministratori che decidono quali gruppi devono esistere e su quali computer devono risiedere. Nel 1990 ARPAnet viene dismessa, ormai le reti generate sono diventate molto più grandi della loro genitrice, e vivono di vita autonoma. L'insieme di reti connesse viene chiamato Internet. Esempi di messaggistica contemporanea sono: Whatsapp Messenger Instagram Skype Telegram La nascita di internet: la preistoria. Descriverne il periodo e le prime applicazioni. Dopo la Seconda Guerra Mondiale gli Stati Uniti decidono di applicare metodi scientifici per condurre le operazioni militari. Per favorire queste ricerche nascono gli OR (Operation Research), essenzialmente per combattere lo sviluppo dell’URSS e della 'Red China'. Durante la guerra fredda, uno dei primi obiettivi da raggiungere è quello di stipulare un piano con il quale sopravvivere ad un attacco termonucleare. Innanzitutto viene costruita una zona protetta: il riparo del Presidente e dei membri del congresso; inoltre per quanto riguarda la comunicazione e il collegamento con l’esterno, viene creato un piano, detto della Nuclear Survivability, che viene redatto consultando il RAND. Quest’ultimo consiste nel creare una rete di comunicazioni vocali che possa sopravvivere ad una guerra nucleare. Tale progetto non verrà mai portato a termine. Tra tutti gli OR, ARPA sembrava il più adatto a portare avanti questo tipo di ricerca. Nel 1960, periodo in cui viene eletto presidente J.F. Kennedy, e questi progetti finalizzati di ricerca diventarono il pane con il quale la ricerca scientifica poteva vivere, infatti venne ideata la prima rete Arpanet. LEZIONE 22 Descrivere le differenze sostanziali tra gli ipertesti e gli ipermedia. Un ipertesto è un tipo di strutturazione delle informazioni in forma non necessariamente unilineare, tipica del mondo digitale, in cui i singoli blocchi di informazione (“nodi”) sono collegati tra di loro da legami (“links”). Un`ipermedia non è altro che l’evoluzione naturale degli ipertesti verso il mondo web che attualmente ci circonda, composto non solo da testo ma da numerosi oggetti multimediali. In che modo e con quali strumenti è implementata una lettura di tipo non-lineare degli ipertesti? l carattere non sequenziale dell’ipertesto non esclude una sua particolare forma di linearità. Negli ambienti ipertestuali si procede per scelta del lettore che seleziona, secondo i suoi criteri di curiosità e di conoscenza, percorsi di lettura associativa, in taluni casi neanche prevedibili dallo stesso autore che li ha predisposti. Egli, come il calcolatore elettronico, privilegia i metodi che conosce e ritiene utili per scartare quelli considerati inutil i alla risoluzione di un problema. Grazie a quali strumenti l’informatica aiuta psicologi e insegnanti nei disturbi dell’apprendimento? L’approccio ai disturbi dell’apprendimento si rapporta alle nuove tecnologie informatiche grazie in particolare all’uso degli ipertesti che favoriscono la progettazione di percorsi di studio personalizzati alle diverse esigenze. La possibilità inoltre di utilizzare suoni, messaggi vocali, animazioni e video permetterà ad un bambino (ma anche ad un adulto) che ha difficoltà ad apprendere di rimanere sempre e comunque ancorato alla programmazione scolastica o del corso che sta seguendo. Inoltre esistono dei software specifici per la riabilitazione di alcuni deficit come ad esempio l’acquisizione del processo di lettura o il rafforzamento delle capacità mnemoniche. Descrivere il funzionamento del sistema MYCIN. MYCIN usava un motore di inferenza abbastanza semplice basato sulla conoscenza di circa 600 norme. Dal punto di vista pratico il suo funzionamento si limitava ad una sequenza di domande che il sistema poneva al suo interlocutore, in generale il medico. Le domande poste e riguardanti il paziente in esame risultavano necessarie per giungere ad una dettagliata schermata finale che riassumeva in ordine: - l’elenco dei batteri colpevoli dell’infezione; - la diagnosi e il ragionamento utilizzato per formularla; - la cura medica da prescrivere al paziente. Come funzionava il famoso programma ELIZA degli anni ‘60? Il programma scritto nel 1965 da Weizenbaum, prendeva il nome di ELIZA. Ecco un tipico dialogo tra il programma e una ragazza: - RAGAZZA: Gli uomini sono tutti uguali. - ELIZA: In che senso? - RAGAZZA: Ci rompono sempre le scatole per una cosa o per l’altra. - ELIZA: Ti viene in mente un esempio specifico? - RAGAZZA: Il mio ragazzo mi ha fatto venire qui. - ELIZA: Il tuo ragazzo ti ha fatto venire qui? - RAGAZZA: Dice che sono sempre depressa. - ELIZA: Mi spiace che tu sia depressa. E così via, senza fine. È inaccurato dire che ELIZA simula un terapista. Weizenbaum disse che Eliza è una parodia delle domande di uno psicoterapista all'inizio di un intervento psichiatrico. Discutere del cosiddetto “effetto ELIZA”, analizzando le riflessioni prodotte dall’autore J. Weizenbaum. Weizenbaum pensava che era incredibile come le persone che conversavano con il software si lasciassero coinvolgere emotivamente dal computer e come questo assumesse evidenti caratteri antropomorfici. Certe persone conversavano con il computer come se fosse una persona a cui ci si poteva rivolgere per confidare i propri pensieri più intimi…» Secondo Weizenbaum un buon numero di psichiatri credette seriamente che quel programma di computer avrebbe potuto sfociare in una nuova forma, quasi completamente automatizzata, di terapia… Aveva sempre creduto che per poter aiutare qualcuno ad affrontare i suoi problemi emotivi fosse indispensabile partecipare all’esperienza di quei problemi e arrivare a capirli proprio grazie a questa loro individuazione empatica… Dalle considerazioni di Weizenbaum emersero domande difficili ad esempio: - quali precauzioni deve prendere uno scienziato prima di divulgare i suoi risultati? - di fronte a chi (o a che cosa) è responsabile? In relazione a quale analisi nasce la logica Fuzzy? Il mondo informatico si è sempre basato sulla logica fondata sull’algebra booleana, in cui a ogni evento può essere associato 0 o 1. Il sistema booleano consente di definire relazioni chiare tra Input e Output di una qualsiasi elaborazione: a una domanda del tipo “l’acqua è fredda?” le risposte potranno essere unicamente “è fredda” o “non è fredda”, intendendo in quest’ultimo caso che l’acqua è calda. L’analisi approfondita della domanda mostra delle sfumature rispetto alle possibili risposte. La logica introdotta dal prof. Zadeh, è incentrata a colmare le lacune dell’algebra booleana, definendo una nuova logica che tiene conto anche delle sfumature (i valori intermedi) e proprio per questo venne battezzata Fuzzy Logic. Ricorrendo ad essa, la veridicità di una proposizione può assumere valori compresi nell'intervallo tra 0 e 1 e non solo ai suoi estremi. Cos’è una rete neurale? (Fornire qualche esempio) La rete neurale si fonda su un grande numero di unità elementari connesse tra loro su cui si distribuisce l’apprendimento. Esse hanno la capacità di apprendere da esempi senza alcun bisogno di un meccanismo che ne determini a priori il comportamento. Stabilendo autonomamente le rappresentazioni interne e modificandole sulla base della presentazione ripetuta di esempi, esse apprendono dai dati d’esperienza. Il neurone di McCulloch e Pitts è un’unità logica in grado di fornire un’uscita binaria (zero oppure uno) in base al risultato di un semplice calcolo effettuato sui valori assunti da un certo numero di dati che si trovano sui suoi canali d’ingresso. A ognuno dei canali di ingresso viene assegnato un valore numerico, o peso. L’unità logica è caratterizzata da un valore numerico, un valore di soglia. Ogni singola unità logica confronta continuamente la somma pesata dei dati che si presentano ai suoi canali di ingresso con il valore della soglia. Se questo viene superato allora sul canale di uscita si troverà il valore uno. Altrimenti l’output sarà zero. L’analogia con il neurone biologico è evidente, così come l’estrema semplificazione rispetto ai reali processi che avvengono a livello cerebrale nelle cellule neurali. I campi di applicazione delle reti neurali sono tutti quelli dove l'analisi statistica di tutte le variabili di un problema risulti difficoltosa o dispendiosa in termini di calcolo, ma soprattutto dove non sia chiaro a priori quali relazioni deterministiche esistano tra le diverse variabili che caratterizzano il problema. Dare una definizione del termine “robotica” e analizzare i motivi della sua espansione a livello industriale. La robotica è una scienza che studia i comportamenti degli esseri intelligenti. Il campo industriale è sicuramente quello in cui i robot hanno trovato maggiore diffusione: il loro impiego nelle catene di montaggio ha permesso alle aziende di abbattere notevolmente i costi accelerando e migliorando la produzione. In cosa diverge l’intelligenza artificiale forte dall’intelligenza artificiale debole? L’intelligenza artificiale forte ritiene che un computer correttamente programmato possa essere veramente dotato di una intelligenza pura, non distinguibile dall'intelligenza umana. L’intelligenza artificiale debole, sostiene che un computer non sarà mai in grado di eguagliare la mente umana, ma potrà solo arrivare a simulare alcuni processi cognitivi umani senza riuscire a riprodurli nella loro totale complessità. LEZIONE 29 Cosa si intende con il termine HTML? Un file HTML è, in origine, un semplice documento di testo non formattato (di tipo ASCII). In che modo un browser interpreta un file HTML? Affinché un file contenente codice HTML sia visto come tale da un browser e quindi interpretato è necessario che la sua estensione sia .html o più semplicemente .htm. Cos’è un tag? A cosa serve un attributo? I tag sono parole speciali che creano la formattazione del documento (il browser le interpreta e in questo modo sa come comportarsi). Gli attributi sono informazioni aggiuntive associate a un tag, aiutando quindi ad associare una particolare proprietà in fase di formattazione dell’elemento. A cosa serve il tag META? Il tag META viene definito all’interno dell’HEAD ed è utilizzato per conservare informazioni sul documento, caricare o ricaricare una pagina web e includere file di suoni. Scrivere un semplice documento HTML (presentazione.html) che visualizzi al centro della finestra il proprio nome e cognome. <HTML> <head> <title>Presentazione</title <style> .centrato {text-align: center;} </style> <head> <body> <p class="centrato">Daniela Piscitelli.</p> </body> LEZIONE 30 Cos’è un elemento di blocco? Quali sono le sue caratteristiche e per cosa si differenzia da un elemento inline? Gli elementi di blocco sono così chiamati perché una volta definiti creano un blocco attorno a sé, di conseguenza vanno a capi e risultano distanziati dagli elementi che li circondano. La differenza con quelli inline sta nel fatto che gli elementi di blocco sono di tipo contenitore, cioè hanno un tag di apertura e uno di chiusura, mentre gli elementi inline vengono visualizzati all’interno della pagina senza separazioni, cioè senza interrompere il flusso con un’andata a capo. Descrivere brevemente le caratteristiche che differenziano un paragrafo, un div e uno span. Il DIV è un elemento di blocco mentre lo SPAN è un elemento inline. Lo SPAN lo usiamo per continuare sulla stessa linea del tag che lo include senza andare a capo. Il DIV lo utilizziamo per un blocco di testo che va a capo. Scrivere una pagina HTML formata da: a) un titolo; b) un paragrafo a centro pagina; c) un separatore lineare. <html> <head> <title> Esercitazione 30 </title> </head> <body> <h2> Esercizi Daniela Piscitelli </h2> <p align=”center”> Paragrafo </p> <hr width-“100px” size-“1” color-„blue” align-“center” /> </body> </html> Quali sono le differenze tra un elenco numerico ed uno puntato? Descrivere la sintassi html per definire un elenco numerico. L’elenco ordinato si presenta come l’enumerazione degli elementi che lo compongono, mentre l’elenco non ordinatosi presenta come una lista di elementi e ad ogni elemento è anteposto un punto. L’elenco ordinato equivale all’elenco numerico mentre l’elenco non ordinato equivale all’elenco puntato. Il tag da utilizzare per un elenco numerico è il seguente: <ol> ……. </ol> ed ogni singolo elemento viene individuato dal tag <li> ….. </li>. I tag <li> si trovano all’interno del tag <ol> Uno dei casi in cui è conveniente l’uso dei link interni è quello della pagina HTML che contiene il testo di un libro suddiviso in capitoli. L’indice iniziale linkato sul titolo di ogni capitolo ci permetterà di visualizzare subito il capito che ci interessa senza dover scorrere su tutto il documento. LEZIONE 32 Realizzare una pagina html che contenga un titolo e, al centro, un’immagine. <html> <head> <title>Esercitazione 32.3</title> </head> <body> <h1 align="center">Esercitazione 32</h1> <img src="https://www.uniecampus.it/fileadmin/user_upload/eC_sede_Roma.jpg"align="center" /> </body> </html> Spiegare come e perché è necessario attribuire un testo alternativo ad un’immagine. Per definire un testo alternativo ad un’immagine si utilizza l’attributo ALT. Non tutti i browser visualizzano le immagini presenti in una pagina html, o per scelta un utente potrebbe scegliere di non visualizzare le immagini, ad esempio gli ipovedenti, non sono in grado di mettere a fuoco del tutto le immagini inserite nelle pagine web, i non vedenti sono del tutto esclusi anche da questa pur limitata possibilità; altri ancora utilizzano browser che non supportano immagini e interpretano solamente i testi contenuti nelle pagine stesse. Pensare di creare pagine web alternative a quelle che utilizzano le immagini significherebbe di fatto discriminare tali utenti da una completa fruizione di tutto ciò che di positivo spesso riserva la rete. Fornire invece un testo equivalente per le immagini garantisce in tutti i casi sopraelencati l'accessibilità, oltre a essere utile indistintamente a tutti gli utenti Grazie a quale combinazione di tag è possibile fare in modo tale che un’immagine diventi un link ipertestuale? Nel mondo del web e dei codici html c’è la possibilità di rendere un logo, un’icona, un’immagine cliccabili, quindi renderle non soltanto un link. Realizzare un link, mediante un’immagine, consiste essenzialmente nell’annidare un tag <img> all’interno del tag <a> Cos’è una mappa-immagine in html? Quali attributi entrano in gioco per definire un’area della mappa? La logica di una mappa html è quella di suddividere l’immagine in aree dette anche zone calde (hotspot) grazie alle quali, facendo clic su di esse, è possibile raggiungere le destinazioni dei link. Per creare una mappa di immagine cliccabile dobbiamo utilizzare diversi comandi HTML che passiamo in rassegna: • map genera la mappa con riferimento all'immagine da mappare; • area genera le aree sensibili al click del mouse; • img visualizza l'immagine da mappare, con riferimento alla mappa. All’interno del MAP si trovano i tag AREA a cui vengono assegnati i seguenti attributi: • href riferimento al collegamento ipertestuale associato all’area; • shap: descrive la forma dell’area e può assumere il valore rect, circle e polygon; • coords elenca le coordinate dell’area cliccabile, separate da virgole Ciascuno di questi tag ha come scopo finale quello di realizzare una mappa immagine. LEZIONE 33 Realizzare una tabella con 5 righe e 5 colonne ed allineare il contenuto di ogni cella al centro. <html> <head> <title>Esercitazione 33 Tabelle HTML </title> </head> <body> <table border="lpx"> <tr> <th> Colonna 1 </th> <th> Colonna 2 </th> <th> Colonna 3 </th> <th> Colonna 4 </th> <th> Colonna 5 </th></tr> <tr style="text-align:center;"> <td> 1,1 </td> <td> 1,2 </td> <td> 1,3 </td> <td> 1,4 </td> <td> 1,5 </td> <tr style="text-align:center;"> <td> 2,1 </td> <td> 2,2 </td> <td> 2,3 </td> <td> 2,4 </td> <td> 2,5 </td> <tr style="text-align:center;"> <td> 3,1 </td> <td> 3,2 </td> <td> 3,3 </td> <td> 3,4 </td> <td> 3,5 </td> <tr style="text-align:center;"> <td> 4,1 </td> <td> 4,2 </td> <td> 4,3 </td> <td> 4,4 </td> <td> 4,5 </td> <tr style="text-align:center;"> <td> 5,1 </td> <td> 5,2 </td> <td> 5,3 </td> <td> 5,4 </td> <td> 5,5 </td> </table> </body> </html> Realizzare una tabella con 3 righe e 3 colonne contenente valori numerici, inoltre aggiungere una prima riga di intestazione ed un’ultima riga contenente il valore medio per ciascuna delle tre colonne. <html> <head> <title>Esercitazione 33 Tabelle HTML </title> </head> <body> <table border="lpx"> <tr> <th> Colonna 1 </th> <th> Colonna 2 </th> <th> Colonna 3 </th> <tr style="text-align:center;"> <td> 1 </td> <td> 5 </td> <td> 10 </td> <tr style="text-align:center;"> <td> 3 </td> <td> 4 </td> <td> 9 </td> <tr style="text-align:center;"> <td> 2 </td> <td> 6 </td> <td> 8 </td> <tr style="text-align:center; font-weight; bold; font-size:18"> <td> 2 </td> <td> 5 </td> <td> 9 </td> </tr> </table> </body> </html> Spiegare a cosa servono e in cosa differiscono gli attributi colspan e rowspan riferite alle celle. Nella creazione di tabelle all’interno dei documenti html, il numero delle righe e delle colonne può essere rigido e fisso, ma è possibile raggruppare alcune celle all’interno di altre grazie all’attributo Colspan con tag <td>. L’attributo rowspan riguarda l’unione di celle di una tabella, ma a differenza della colpa, il rowspan può essere utilizzato per l’unione delle righe. Realizzare una pagina html il cui body sia di colore blu e che contenga un paragrafo con sfondo nero e testo bianco. <html> <head> <title>Pagina blu</title> </head> <body style="background-color:blue; color:white"> Lo sfondo della pagina è blu. Il testo è bianco. </body> <p style='font-size:15px; background-color:black; color:white'> Paragrafo con sfondo nero e testo bianco </p> </html> Realizzare una pagina html che contenga un div con testo rosso, sfondo nero e bordo di colore giallo. Inoltre posizionare un secondo div distanziato di 15 px dal superiore. <html> <head> <title>Esercitazione 33.3-5</title> </head> <body> <div style='background-color:#000000; border:2px solid #ffff00; color:red'> Esercizio 5, esercitazione 33.3 </div> <div style='margin-top:15px; background-color::black; border:2px solid #FFFF00; color:red'> Ingegneria Civile e ambientale </div> </body> </html> LEZIONE 34 Scrivere uno script PHP che stampi a video il proprio nome e cognome. <html> <head> <title>Daniela Piscitelli</title> </head> <body> <p> <?php /* Questo è il nostro primo script PHP */ echo "Daniela Piscitelli"; ?> </p> </body> </html> Modificare lo script dell’esercizio precedente in modo da stampare il proprio nome e cognome in un DIV centrato orizzontalmente alla pagina. <html> <head> <title>Esercitazione 34.3-2</title> </head> <body> <div align='center'> <?php $nome = "Daniela"; $cognome = "Piscitelli"; print($nome." ".$cognome); ?> </div> </body> </html> LEZIONE 35 Realizzare uno script PHP che effettui la somma di due valori A e B e che stampi il risultato a video. <?php $stringa1 = "<br>Benvenuti"; $stringa2 = "<br>al corso"; $stringa3 = "<br>di"; $stringa4 = "<br>Fondamenti di Informatica"; echo($stringa1." ".$stringa2." ".$stringa3." ".$stringa4); ?> </p> </body> </html> LEZIONE 37 Scrivere uno script PHP che stampi a video il maggiore di tre numeri A, B e C. <?php $a=50; $b=10; $c=5; if($a>$b && $a>$c) { print ("il più grande è A=".$a); } if($b>$a && $b>c) { print ("il più grande è B=".$b); } if($c>$a && $c>b) { print ("il più grande è C=".$c); } ?> Scrivere uno script PHP che stampi a video, in ordine crescente, tre numeri A, B, C. <?php $a=13; $b=20; $c=10; $arr = array($a, $b, $c); sort($arr); print("A=$a <br>"); print("B=$b <br>"); print("C=$c <br>"); print ("I 3 valori in ordine crescente, sono: <b>"); foreach($arr as $val) print($val . " "); ?> LEZIONE 38 In tutti i linguaggi di programmazione esistono delle modalità per effettuare cicli e ripetizioni sul codice. Un ciclo, infatti, rappresenta la possibilità di ripetere l’esecuzione di una porzione di codice per un numero di volte che dipende dalle condizioni applicative e che quindi può anche non essere definito a priori. In PHP esistono numerosi costrutti che ci permettono di scrivere cicli sul codice: - ciclo for, effettua il test sulla condizione prima di iniziare la prima iterazione - ciclo foreach, consente di effettuare cicli e ripetizioni su tutti gli elementi di una collezione e di un array. - ciclo do-while, consente di effettuare cicli e ripetizioni in funzione di condizioni prestabilite, esegue la prima iterazione e solo successivamente effettua il test della condizione per verificare se le iterazioni debbano continuare - ciclo while, il suo comportamento è simile a quello del costrutto for, nel senso che se la condizione restituisce un valore FALSE allora non viene eseguita nessuna ripetizione, al contrario del costrutto do - while, che in ogni caso effettua una ripetizione, indipendentemente dal valore della condizione, le istruzioni che agiscono sulle variabili che poi hanno qualche effetto sul risultato della condizione devono essere inserite nel corpo stesso della ripetizione Per permettere l’uscita estemporanea da un ciclo si utilizza l’istruzione break. Scrivere uno script PHP che produca in output la tabellina del 2. <html> <head> <title>Esercitazione 37</title> </head> <body> <table> <?php for($i=0; $i<11; $i++){ $number = $i * 2; echo "<tr><td>2 * $i = $number </td></tr> \n"; } ?> </table> </body> </html> Scrivere uno script PHP che produca in output i numeri da 1 a 20 disposti in cinque righe di quattro colonne di numeri ciascuna. <?php for($i=1; $i<21; $i++){ echo "<span class='nb'>$i</span>"; if($i%4 == 0) echo "<br />"; } ?> Scrivere uno script PHP che stampi a video tutti i numeri dispari compresi tra 0 e 100. <?php $res = '1'; for($i=2; $i <=100; $i++){ if($i % 2 != 0 ){ $res .= ','.$i; } } echo $res; ?> LEZIONE 39 Scrivere una funzione PHP denominata Prodotto ($a, $b) che, acquisiti due numeri $a e $b, ne restituisca il prodotto utilizzando esclusivamente l’operazione di somma. Invocare la funzione da script PHP con le seguenti coppie di valori: $a = 5; $b = 2; $a = 1; $b = 9; $a = 0; $b = 4; $a = 9; $b = 7. <?php function prodotto($a,$b) { if($b ==0) return 0; else return $a + prodotto($a,$b-1); } print("<h2>prodotto con somma</h2><br>"); print("5*2= " .prodotto(5,2) . "<br>"); print("1*9= " .prodotto(1,9) . "<br>"); print("0*4= " .prodotto(0,4) . "<br>"); print("9*7= " .prodotto(9,7) . "<br>"); ?> LEZIONE 40 Si vogliono memorizzare le schede anagrafiche di 10 persone, ciascuna così composta: - Nome - Cognome - Data di nascita - Luogo di nascita - Codice Fiscale a) Strutturare un array multidimensionale per gestire la base dati. b) Dichiarare una funzione PHP denominata LeggiPersone($array) che stampi a video i dati anagrafici precedentemente memorizzati; utilizzare a piacimento i tag HTML per rappresentare graficamente ciascuna scheda anagrafica. <?php function LeggiPersone($array) { $LeggiPersone=($array); foreach($array as $persona) { print("<table border='1' align='center' cellspacing='0' cellpadding='25'>"); print("<h3 align='center'><b>SCHEDA ANAGRAFICA</b></h3><br>"); foreach($persona as $k=>$v) {