ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ"

Transcript

1 @-, ì'ì,., ì'ì,., ì'ì,., ì'ì,., \ )(_) -+- \ / _ \ \ /\ / / _ \ / _ Y -+- : \ /\ V V / _) \ : _ \_ \ \_/\_/ / _ \ ì'ì,., ì'ì,., ì'ì,., ì'ì,., NEW BIES (num 2) (data 07/03/99) [ powered By ZeroCool and N0bodY88 ] DISCLAIMER LEGALE IL NEWBIES STAFF NON SI ASSUME NESSUNA RESPONSABILITA' X L'UTILIZZO DELLE TECNICHE SOTTO RIPORTATE, LE QUALI SONO STATE DISTRIBUITE UNICAMENTE X CONDIVIDERE LE CONOSCENZE DA NOI "ACUISITE" (mitico edu...) E PER CERCARE QUALCUNO CON CUI CONFONTARE LE NS ESPERIENZE E LE CONOSCENZE X MIGLIORARE VICENDEVOLMENTE...DIVERTENDOSI! N0bodY88 of NewBies Staff PREMESSA ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Questa e-zine e' nata in una giornata qualsiasi di gennaio, mentre 2 newbies stavano parlando tra loro in IRC di non mi ricordo cosa. Da quel fatidico giorno la e-zine e' cresciuta, le persone che ho contattato x scrivere un articolo mi hanno dato la loro disponibilita' e entro alcuni giorni mi hanno fatto avere il loro operato. Alcune persone hanno fatto tardi x notti intere (fra cui il sottoscritto) ed hanno sacrificato il loro tempo x creare qualcosa che fosse nuovo, divertente, che ci facesse diventare + bravi, + amici, + uniti e forse...beh...forse anche + famosi...hihihi! Questo e' quello che abbiamo realizzato insieme, collaborando e scambiandoci opinioni. Se questa e-zine non vi piace, e' troppo semplice o e' stupida non scriveteci (oppure scriveteci x migliorare un art. della e-zine sfruttando le vostre conoscenze) ma se solo sara' piaciuta ad una persona, se solo un ragazzo dopo aver letto questa avra' deciso di passare a linux, di programmare in visual basic, di farsi una propria backdoor o di mettersi a studiare come si usa telnet (troppo poco attrezzato di voci nei menu x essere quello tanto decantato dovunque, ma anche troppo simpatico con il suo prompt a mo di Commodore 64) allora questa e-zine sara' servita a qualcosa. E ricordate...newbies si nasce, hacker si diventa. Buona lettura ^ ^ N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ INTRODUZIONE: Hey ciao benvenuti a NewBies n.2 la nostra strafigha e-zine, bhe stavolta abbiamo apportato dei cambiamenti ad esempio abbiamo letto meglio gli articoli confrontandoli con quelli gia' esistenti di altre e-zines per evitare che qualcuno faccio copiature e rippamenti vari e qui ringrazio Lord Guf x averci aiutato a trovare articoli poco edificanti contenuti nel numero 1. Cavolo io N0bodY88 siamo felicissimi di continuare quest' azzentura [sei mitico N0bodY88] e speriamo di poter dare con questo numero un taglio + tecnico alla e-zines. Grazie a tutti quelli che hanno letto il n.1 e spero che sto numero piaccia molto di +. Ringrazio RigoR MorteM, ChRoMe, Brigante, Master di SPP per averci sostenuto e aver parlato di noi nella loro e-zines ; Ringrazio Blum e quelli di Spaghetti Phreackers per il link e i consigli al nostro sito. Ringrazio gli stramitici BFI e in particolare Spirito per la sua cordialita' e disponibilita', siete veramente mitici spero un giorno di diventare come voi. Continuate cosi' SiEtE I MiGliOrI... Un grazie a tutti quelli che conosco, a DarkSchanider e a tutti quelli che in mirc ci hanno dato un poco disupporto morale...grazieeee. Voglio anche mettere un particolare ''saluto'' a Luce e a Mofoz che anche se la sorte avversa li ha toccati rimarrano nel cuore di tutti noi, questo e'da parte di ZeroCool x Voi e vi dedico questa frase : Non cercare di capire, Non cercare di pensare, Non cercare di credere in qualcosa in cui tu non riesci a credere stupido essere,

2 Noi siamo cio' che tu non sei, Noi siamo la Luce [e/o la cerchiamo] e tu il buio, puoi fermare uno di noi ma non tutti. UN FUCK A TUTTI GLI ENTI e a TELECOM in particolare noi non abbiamo paura di voi ma voi si per questo volete fermarci ma mai e poi mai ci riuscirete noi siamo troppi e molti si aggiungono. Un mio saluto a tutto quelli che ci lavorano e mi danno una mano a fotterla. Ciaoz da ZeroCool ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í» º ARTICOLO ÌÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎÍÎ͹ AUTORE º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í¹ ³NOVITA' DAL MONDO NewBies Staff ³ ³ CONOSCETE NETRUNNERS? NO??? E COME FATE A VIVERE?????? N0bodY88 ³ ³ DIAMO AD AVATAR CIO' CHE E' DI AVATAR N0bodY88 ³ ³INFO SUGLI ALLEGATI NewBies Staff ³ ³ 2 PAROLE SUGLI ALLEGATI N0bodY88 ³ ³PROGRAMMAZIONE NewBies Staff ³ ³ C TUTORIAL [ SECONDA PARTE ] ElectroRipper ³ ³ VB TUTORIAL [ SECONDA PARTE ] R0n n ³ ³ PASCAL TUTORIAL [ PRIMA PARTE ] T0rment0 ³ ³ JAVA TUTORIAL [ PRIMA PARTE ] SkHammer ³ ³ VB AVANZATO Master ³ ³ JAVASCRIPT Master ³ ³ COME ELIMINARE I BANNER DALLE HP Master ³ ³ANARCHIA, BANCHE, BOMBE ET SIMILI NewBies Staff ³ ³ STINKY BOMB Avatar666 ³ ³ DIVERTIRSI A SCUOLA ElectroRipper ³ ³ COME FOTTERE I SOLDI AL VS VICINO IN MODO DEL TUTTO LEGALE N0bodY88 ³ ³ SCHERZI TELEFONICI ElectroRipper ³ ³CRITTOGRAFIA E STEGANOGRAFIA NewBies Staff ³ ³ CRITTOGRAFIA E SEMPLICI IDEE X FARSI QUALKE PROGRAMMINO N0bodY88 ³ ³ STEGANOGRAFIA FOR DUMMIES Nietzsche ³ ³ STEGANOGRAFIA CON IL PROGRAMMA IME Nietzsche ³ ³ CRITTOGRAFIA FOR DUMMIES Nietzsche ³ ³CRACKING NewBies Staff ³ ³ CRACK FOR BEGINNERS ZioFill ³ ³ CRACKING QUESTO SCONOSCIUTO SpYmAsTeR ³ ³ MASTERIZZARE CHE PASSIONE KaOsS

3 ³ ³TEORIA NewBies Staff ³ ³ FIREWALL E PROTOCOLLI INTERNET The Duke ³ ³ SSL Brigante ³ ³ INTRODUZIONE AL RARP Darkman ³ ³ BOOTP Darkman ³ ³ IP SPOOFING & IP MASQUERADE Ramesse ³ ³ SMTP N0bodY88 ³ ³TRADUZIONI NewBies Staff ³ ³ TROJAN HORSES, VIRUSES AND WORMS Wurz ³ ³ A HACKER by VAN HAUSER Wurz ³ ³INTERVISTE NewBies Staff ³ ³ INTERVISTA A UN HACKER/PHREAKER N0bodY88 ³ ³ INTERVISTA A UN EX CRACKER ORA HACKER N0bodY88 ³ ³PHREAKING NewBies Staff ³ ³ TELEFONARE GRATIS Fusyllo ³ ³ FORSE NON SAPEVATE CHE... ]Akuma[ ³ ³ COSA C'E' DIETRO AD UN GREEN ZeroCool ³ ³HACKING DI TUTTO DI PIU' E DIVERSI ART. MOLTO INTERESSANTI NewBies Staff ³ ³ HOTLINES QUESTO SCONOSCIUTO Nemesis ³ ³ FTP BOUNCE Ghimlet ³ ³ VIRUS X DOS 6.1 SorrowThePrince³ ³ QUALCHE INFO SU ANGELFIRE SkHammer ³ ³ COME MANTENERE LA VOSTRA PAGINA "ILLEGALE" Biavo ³ ³ COME CAMBIARE ICONE CON REGEDIT RigoR MorteM ³ ³ USARE ZAP2 X RENDERSI INVISIBILE RaG3 ³ ³ FINGER Fritz ³ ³ COME MODIFICARE SPEAKEASY X NON ESSERE BECCATI Meew ³ ³ COS'E'E COME SI USA UNA SHELL Fritz ³ ³ PROGETTO FUCKTEL - TELECOZZ E VARIE COSETTE UTILI ZeroCool ³ ³ DIRECTORY DI SISTEMA CON DESCRIZIONE Zinco ³ ³ INSTALLAZIONE LINUX Dante Alighieri³ ³ LOGHI OEM RigoR MorteM ³ ³ COME REGISTRARE UN CANALE CON IL CHANSERV Newbie 1.1 ³ ³ OVERCLOCKING ULNTWH99 ³ ³ IP ROUTING ZeroCool ³

4 ³ TROJAN FOR DUMMIES Nietzsche ³ ³ PRIVACY QUESTA SCONOSCIUTA Alby ³ ³ GUIDA DI BASE AL SOCIAL ENGEENERING ElectroRipper ³ ³ DOVE E COME METTERE BACKDOOR LordDestruction³ ³ QUALCHE MUST HAVE (URL INTERESSANTI) Fritz ³ ³ LINUX: COME METTERE UN FTP ANONIMO T0rment0 ³ ³ LISTA PROXY Sciaman ³ ³ HACKING DI WINDOZZO NT Game ³ ³ CARATTERISTICHE DISTRIBUZIONI LINUX T0rment0 ³ ³ METTERE L'APPROVED CON AGENT Fritz ³ ³ COME TOGLIERE I TROJAN Lopks ³ ³ L'MP3: QUESTO SCONOSCIUTO Sciaman ³ ³ OVERCLOCK Dante alighieri³ ³ PICCOLI TRUCCHI PER NEWBIES T0rment0 ³ ³ COME DIVENTARE OP CON UNA BOTTA DI...CULO P0nic0 ³ ³SALUTI ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÙ ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ² ÛÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛÛÛÛÛ ÛÛ ² ² ÛÛÛÛ ÛÛ ÛÛ²²ÛÛ ÛÛ ÛÛ Û ÛÛ Û ÛÛÛ ÛÛ ² ² ÛÛ ÛÛ ÛÛ ÛÛ²²ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛ ÛÛ ÛÛÛ ÛÛ²ÛÛ ² ² ÛÛ ÛÛÛÛ ÛÛ²²ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛÛ ² ² ÛÛ ÛÛÛ ÛÛÛÛÛÛ ÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º³ CONOSCETE NETRUNNERS? NO??? E COME FATE A VIVERE?????? ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ NetRunners per i poki newbies e hackers che non la conoscono e' un mitica e-zine frutto del lavoro di un gruppo hacker italiano che se non raggruppa i migliori elementi italiani... be ci va vicino! Il gruppo si chiama SPP (SpiPPoLaTorI) e sono formati da un gruppo di amici con conoscenze diciamo...vicine all'infinito+1...eheheh Il sito in cui DOVETE andare a scaricare la ezine arrivata al bellissimo numero 3 dedicato a netcat [ se non sapete cos'e'...scaricatela :-) ], si trova all'url: e non fate i tirchi ma date un okkiata all'ottimo sito realizzato da RigoR MorteM con l'aiuto di Teresa x la grafica...poi ditemi che non vi passiamo buoni link :P Colgo l'occasione x salutare ChRoMe e tutti quelli che aiutano il prog. NetRunners e buona fortuna x il futuro :) N0bodY88

5 PS: quasi dimenticavo...un grazie x averci dato una mano a ChRoMe e RigoR sia x la ricerca di nuovi articoli, che x averci fatto pubblicita' :-) ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º³ DIAMO AD AVATAR CIO' CHE E' DI AVATAR ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Grazie alla segnalazione di Avatar, il NewBies Staff con me in testa si scusa con Avatar666, dato che nel primo numero di NewBies i green che sono stati dati erano stati "copiati e incollati" da una vecchia versione del Cookbook del mitico Avatar e a lui, quale autore del txt e scopritore degli stessi, non erano stati dati alcuni meriti, se non quello di aver scoperto il numero di sua eminenza. Alle foto sulla cabina "aperta con dolcezza" (eheheheh) allegate in un altro zip al 1ø numero non possiamo aggiungere altri articoli o foto degli IHC che cmq ci hanno promesso che se faranno qualcos'altro ce lo faranno pubblicare su uno dei prossimi numeri (mitici!!!) quindi pregate a mani congiunte che forse x il 3ø num DrShade e Cyrus The Virus ci presenteranno un'altro dei loro interessantissimi articoli. :))) Ci scusiamo quindi con Spaghetti (che porta avanti un progetto importante x la scena italiana) x le le foto delle cabine prese senza dare meriti al mitico Spaghetti e ad Avatar (che le ha fatte) a cui va tutta la nostra riconoscenza e la ns gratitudine per averci fatto notare i mancati riferimenti del 1ø num. Sperando in un 2ø numero migliore ricordo a tutti gli scrittori e a tutti i newbies che se all'interno dei propri articoli si citano testi altrui va specificato chi e' l'autore o il traduttore e se e' possibile bisogna contattarlo x chiedere la pubblicazione (come avevo fatto io con il mitico X-H4ck3r). Ora vi lascio con una frase di un amico hacker americano: INFORMATION WANTS TO BE FREE...BUT REMEMBER THE AUTHOR!!! Allego qua sotto il link al sito Spaghetti Phreakers, dove tra l'altro trovate anche il mitico Cookbook di Avatar (che x dimostrare che non ci sono problemi ora che e' tutto risolto ci ha permesso di includere un art. del suo nuovo Cookbook che deve ancora uscire nella ns e-zine!!! mitico Ava66!!!) <-- CHI NON CI VA, LEGGENDO QUESTA EZINE SI RITROVERA' 40 TROJAN INSTALLATI SU PC! ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ² ÛÛ ÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛ Û ² ² ÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛ ÛÛÛ ² ² ÛÛ²ÛÛ ÛÛ ÛÛ ÛÛÛÛ ÛÛ ÛÛÛÛ ÛÛ²ÛÛ ÛÛÛ ÛÛÛ ² ² ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛÛ ÛÛÛ ÛÛÛ ² ² ÛÛ ÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛ ÛÛÛ ² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ 2 PAROLE SUGLI ALLEGATI: - regmon = prog. che serve x crackare; il suo utilizzo viene spiegato nel proprio articolo da ZioFill; - ime = Image Mesage Encryptor ver 1.0 by Christian; programma che serve x nascondere i propri messaggi all'interno di immagini con estensione.jpg inserito xche' Nietzsche ne parla in uno dei suoi articoli sulla Stenografia

6 (argomento imo molto interessante, i questo momento in cui la privacy sembra non esistere...); - s-tools = programma usato x nascondere i propri msg in suoni o immagini; il suo utilizzo e' spiegato nel proprio articolo da Nietzsche; - ban = zip contenente un immagine e una pagina.htm grazie al quale si puo' vedere cio' di cui Master parla in uno dei suoi articoli riguardo alla morte dei ban che appaiono sulle hp free; - hackernovello = una guida in.htm che ho pensato di non addare all'interno della ezine, per mantenerla nel formato originale; questa guida fatta dal ns mitico T0rment0 (che in questo stesso numero ha anke iniziato un tutorial di Pascal utile a tutti i programmatori imo) la trovate anke sul suo sito [ ]. - ocx = serve x registrare il famoso winsck.ocx il file che meta' dei programmini in rete (winnuke, portrscan e altri) richiedono x funzionare; un grazie particolare a Urkes :))) - loghioem = mitico esempio concessoci da RigoR MorteM su come cambiare una cosetta molto simpatica in win, provate e rimarrete stupiti da questo trucco imo molto bello e da me usato a scuola [dove c'e' scritto "N0bodY88 has been here" hack the planet - information wants to be free] e adesso comnciate a darmi del lamer...hihihi - anti-s.zip = in euqesto zip sono contenuti 5 documenti di un insieme di 30 doc sulle reti, e ad ogni numero di newbies aggiungeremo 5 numeri fino a pubblicarli tutti...ps complimenti Anti-s :) - zerocool.zip = mitico zip con all'interno dei numeri telefonici e dei dati sicuramente interessanti per tutti i phreakers li' fuori che avranno cosi' nuove info da "addare" ai propri archivi :) Sono anke contenute una worldlist e altre info molto utili ^_^ PS: zero 6 \/ ^ ^ [ [] - vecna.zip = un insieme di articoli con l'elenco aggiornato dei bug di sendmail datoci dal mitico vecna...questo insieme di articoli potrebbe essere una ezine da solo xche' con tutte le cose che sa lui...ho pensato di metterlo in uno zip a parte primo perche' sono + art molto interessanti e poi xche'...vecna e' Vecna!!! Vecna 61m1t0!!! Dovrebbero esserci tutti questi prog acclusi, ma magari dividiamo in 2 la ezine... con tutti gli articoli che abbiamo riusciremmo a fare un numero 2 e un numero 3 :)) N0bodY88 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ² ÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ² ² ÛÛÛ ÛÛ ÛÛÛ ÛÛ²²²²ÛÛ ÛÛ²²ÛÛ ÛÛÛ ÛÛ ² ² ÛÛÛ ÛÛ ÛÛ ÛÛÛ ÛÛ²²²²ÛÛ ÛÛÛÛ ÛÛ ÛÛ²ÛÛ ÛÛ ² ² ÛÛÛ ÛÛ ÛÛ ÛÛÛ ÛÛ²²²²ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛÛ ÛÛ ² ² ÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ² ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ

7 ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ³ ::::::::::::::::::::::::::: ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Titolo: Corso di C - II Parte ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ di : ElectroRipper ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Scritto il : xx/2/99 ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ Pericolo: Û ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; ElectroRipper CORSO_DI_C II PARTE if ((aveteseguitolaprimaparte()) (necapitegiaqualcosa())) { } else { continuatealeggere(); leggetevilaprimaparte(); } // eheh, mi divertono sempre queste stronzate :) Allora, comincio dicendo che CRUSAD3R, autore della prima parte, nonche' cugino del sottoscritto, e' morto, e ha espresso nel testamento, come sua ultima volonta', il desiderio che io continuassi sto benedetto corso di C. Prima di cominciare a parlare della gestione dei file devo introdurre le strutture. Dunque, mettiamo per esempio che vogliate fare un gioco di corsa di automobili (ehhhhhhhhh! e state leggendo questo tutorial?) Per ogni automobile vi serve sapere il nome, la velocita' massima, e i soldi posseduti dal guidatore. Sarebbe comodo se ci fosse un tipo di variabile automobile che potesse contenere tutti questi dati, non trovate? Una variabile del genere si chiama struttura... Es. struct automobile{ char *nome; int velmax; long soldi; }; Ecco il tipo di variabile che ci serviva! Adesso pero' dobbiamo definire la variabile vera e' propria... Es. struct automobile auto1; struct automobile auto2; struct automobile auto3; In questo modo creiamo 3 variabili di tipo automobile chiamate auto1, auto2 e auto3. Ognuna di queste variabili conterra' al suo interno i membri della struttura automobile.

8 Es. strcpy(auto1.nome,"fiat 500"); auto1.soldi = 0; auto1.velmax = 150; Ovviamente, tornando all'esempio del gioco di corsa, converrebbe creare un array di automobili... Es. struct automobile automobili[10]; Ora vi spieghero' la gestione dei file da un punto di vista logico, cioe' non dovrete preoccuparvi di come il sistema operativo gestisce fisicamente i file, anche perche' questo richiederebbe una spiegazione a parte per ogni OS, mentre una delle caratteristiche piu' lodate del C e' la sua portabilita' da un sistema a un altro, quindi conviene piu' conoscere dei metodi generici di I/O, da potere poi usare sulla maggiorparte degli OS. Possiamo immaginare un file come un archivio contenente un certo numero di bytes ordinati, messi in fila uno di seguito all'altro. Ci sono due modi di accedere ad un file : in modo sequenziale (cioe' i bytes vengono scritti o letti in ordine, partendo dall'inizio del file), e in modo random, cioe' scrivendo o leggendo direttamente nel punto desiderato del file. I File di testo sono file formati da caratteri ascii, che non possono contenere il carattere 26 (EOF) dato che questo viene usato solo per indicare la fine del file. Ora, prima di continuare con la teoria, facciamo qualche esempio... #include <stdio.h> main(){ FILE *ilfile; } ilfile = fopen("\\autoexec.bat","a"); fprintf(ilfile,"%s","virus.exe"); fclose(ilfile); Non mi soffermo sulle stronzate che dovreste aver gia' imparato dalla prima puntata (main e #include), e vado direttamente alla chiamata a fopen. Questa e' la funzione di stdio che serve ad aprire un file. Il valore di ritorno lo assegniamo al puntatore al tipo FILE "ilfile". Il primo argomento di fopen e' il nome del file da aprire, il secondo serve a specificare in che modo vogliamo aprire il file (in questo caso a = appending, cioe' quello che scriviamo viene messo alla fine del file, senza cancellare le righe gia' esistenti. "w" invece corrisponde a write, cioe' crea un file per scriverci dentro, se il file gia' esiste lo sovrascrive. "r" indovinate un po' a che serve? :) Possiamo anche combinare piu' modi tra di loro per definire l'accesso al file che ci serve. Ad esempio "rwt" indica che vogliamo creare il file e poi accedervi in lettura e scrittura, trattandolo come file di testo ("t") Con fprintf scriviamo qualcosa nel file (alla fine del file in questo caso). I parametri da passare sono gli stessi di printf, ad eccezione del primo, che deve essere il puntatore a FILE. In questo caso la funzione scrive la stringa "virus.exe" alla fine del file aperto in ilfile, cioe' l'autoexec.bat. Con fclose chiudiamo il file (operazione necessaria, altrimenti tutte le modifiche vanno perse).

9 Quando operiamo su un file aperto come file di testo troviamo alcune limitazioni. Per prima cosa il carattere 26 viene considerato come fine del file, inoltre le funzioni seguono alcune convenzioni del sistema operativo. Ad esempio nel DOS, quando nel file si incontra la combinazione di caratteri CRLF (Return+Linefeed) viene letto un solo carattere, cioe' \n (se non sapete cos'e' dovreste andare a rivedervi la prima parte). Se vogliamo leggere il contenuto del file cosi' com'e', dobbiamo aprirlo in modo binario, anziche' come file di testo. Al posto di "t" useremo quindi "b". Es. ilfile = fopen("\\command.com","rb"); In tal modo tutti i caratteri verranno letti esattamente come si trovano nel file, senza conversioni. Scrivendo un numero in un file binario questo verra' scritto sotto forma di caratteri ascii, occupando quindi due soli byte per un int (risparmiando quindi spazio. Un altro vantaggio dell'uso dei file binari). Per leggere da un file, invece, possiamo usare la funzione fscanf, simile alla scanf, tranne che per il primo parametro, che deve essere il puntatore a FILE. Es. fscanf(ilfile,"%d",&numero); Il programma apre automaticamente alcuni file... stdout = La periferica standard di output (video, ma puo' essere ridirezionato) stdin = " " " " input (tastiera) stderr = " " " " error (video) stdprn = Stampante Standard (stampante) Es. fscanf(stdin,"%d",&ilnumero); // legge un numero dalla tastiera Ritornando ai file binari, un'importante funzione e' fwrite. Es. #include <stdio.h> main(){ FILE *ilfile; int ilnumero; } ilfile = fopen("prova.prv","wb"); fwrite(&ilnumero,sizeof(ilnumero),1,ilfile); fclose(ilfile); Il primo argomento e' l'indirizzo della variabile, il secondo la dimensione in bytes, il terzo il numero di dati e il quarto il file. sizeof ritorna la dimensione in bytes della variabile. Es. #include <stdio.h> main(){ FILE *ilfile; int inumeri[100]; ilfile = fopen("prova.prv","wb"); fwrite(inumeri,sizeof(inumeri[0]),100,ilfile);

10 fclose(ilfile); } In questo caso scriviamo nel file un intero array di int. La & davanti al primo argomento in questo caso non e' necessaria, dato che scrivendo il nome di un array senza numero ci si riferisce all'indirizzo in memoria dove inizia l'array. sizeof(inumeri[0]) ci da la dimensione di uno solo degli elementi dell'array, mentre il terzo argomento (100) dice alla funzione di registrare 100 dati della dimensione sizeof(inumeri[0]), dato che vogliamo registrare tutto l'array, composto appunto da 100 elementi. fwrite ha come valore di ritorno il numero di bytes che e' riuscito effettivamente a scrivere nel file. La funzione per leggere da un file corrispondente a fwrite e' fread, alla quale dobbiamo passare gli stessi argomenti di fwrite. Se ad esempio volessimo rileggere l'array salvato con l'esempio precedente... #include <stdio.h> main(){ FILE *ilfile; int inumeri[100]; } ilfile = fopen("prova.prv","rb"); fread(inumeri,sizeof(inumeri[0]),100,ilfile); fclose(ilfile); Come avrete gia' capito, fread ritorna invece il numero di bytes che e' riuscito a leggere dal file (utile per accorgersi di un errore se il numero e' inferiore a quello richiesto) Un grosso vantaggio di fwrite e fread e' che fanno parte dello standard ANSI, e garantiscono quindi una certa portatilita' ai programmi che accedono ai file unicamente con queste due funzioni. Per leggere o scrivere un solo carattere si usano invece putc e getc. Es. ilcarattere = getc(ilfile); putc(ilcarattere,ilfile2); Spesso capita di voler usare un ciclo generico per gestire file forniti dall'utente. In questo caso possiamo usare la funzione feof(file *stream) per controllare se il file e' terminato (la funzione ritorna nonzero) o no (la funzione ritorna 0), con qualcosa di questo tipo : while (!feof(inputf)){ fgetc(inputf); } Passiamo ora a vedere come accedere ad un file in modo random. Mentre in un file sequenziale leggevamo o scrivevamo byte uno dopo l'altro, possiamo immaginare un file random come un insieme di elementi numerati, chiamati record. Il vantaggio e' possiamo accedere direttamente al record che ci interessa, ricordando pero' che tutti i record devono essere della stessa dimensione. Anche se il C non fa differenza tra i due tipi di file, di solito si accede ad un file random in modo binario con fwrite e fread. Quindi per accedere in lettura e scrittura apriremo il file in modo "r+b"

11 se il file esiste gia', in modo "w+b" se vogliamo crearlo. Per accedere ad un certo record dobbiamo conoscerne la posizione nel file ed andarci con la funzione fseek. Es. #include <stdio.h> main(){ FILE *ilfile; } ilfile = fopen("prova.prv","rb"); fseek (ilfile,56l,seek_set); fclose(ilfile); In questo caso va al byte 56 (L = in formato Long) di ilfile, a partire da SEEK_SET, cioe' dall'inizio del file. SEEK_SET = inizio del file SEEK_CUR = posizione corrente SEEK_END = fine del file Noi pero' non vogliamo raggiungere un qualsiasi byte del file, ma l'inizio del record che ci interessa. Per fare cio' dovremo usare sizeof. fseek(ilfile,(long)numerodelrecord*sizeof(record),seek_set); OOOPS! Una cosa che doveva essere spiegata nella prima parte : il cast scrivendo tra parentesi un tipo di variabili forziamo il compilatore a considerare un valore come se fosse di quel tipo. In questo caso e' necessario dato che fseek si aspetta come secondo argomento un valore di tipo long Passiamo a un altro esempio. Se volessimo salvare i dati delle automobili di quel gioco... #include <stdio.h> struct automobile{ char *nome; int velmax; long soldi; }; main(){ FILE *ilfile; struct automobile automobili[10]; } ilfile = fopen("automob.sav","w+b"); fwrite(automobili,sizeof(automobile),10,ilfile); fclose(ilfile); In questo caso ogni record rappresenta i dati di un automobile.

12 Per accedere al terzo record scriveremo : struct automobile auto1; fseek(ilfile,(long)2*sizeof(auto1),seek_set); fread(&auto1,sizeof(auto1),1,ilfile); Ci ritroveremo cosi' nella variabile auto1 i dati dell'automobile numero 3. Ecco, mi sembra di aver spiegato le cose di base sulla gestione dei file. Per piacere non mi ate per dirmi che ho dimenticato di spiegare qualcosa. Questo e' solo un tutorial con il quale cerco di spiegare il C a chi non lo conosce, ma le cose piu' importanti si imparano sperimentando da soli. Se trovate questo tutorial troppo scemo, vi ricordo che questo tutorial DEVE cominciare da zero (e conoscendo la mia coerenza c'e' da scommettere che non andra' troppo lontano :) Se invece trovate questo tutorial troppo difficile... e che cazzo! It's impossible!!!!! ElectroRipper ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º³ VB TUTORIAL [ SECONDA PARTE ] ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Bene, bene... a quanto pare si continua!!!! Sperando che abbiate capito qualcosa dal primo numero (ricordatevi che potete scrivermi per qualsiasi cosa [ma ricordate che sono un NewBie] a si riparte!!! L'altra volta abbiamo accennato ai cicli, ed abbiamo visto il ciclo FOR (che, spero lo abbiate gia' capito, serve per quei cicli che vanno eseguiti un numero preciso di volte). Oggi parliamo del ciclo DO/LOOP. La principale differenza e' che qui non sappiamo quante volte il ciclo verra' eseguito, e ne usciremo solo al verificarsi di una certa condizione. Ad esempio: Sub Prova() Dim Risposta as Integer Do Risposta = MsgBox ("Ciao, continua?", VbYesNo, "Prova") Loop Until Risposta = 7 End Sub Prima il MsgBox... questa istruzione crea una finestra di messaggio. La sintassi e': MsgBox(prompt[, buttons] [, title] [, helpfile, context]) dove: prompt --> buttons --> E' il messaggio che sara' visualizzato (facoltativa) Indica i pulsanti che saranno visualizzati (vedi tabella dopo) title --> (facoltativa) E' il titolo della finestra helpfile--> (facoltativa) Indica il file di guida utilizzato per le informazione relative al contesto context --> (facoltativa) Indica il numero del contesto a cui si fa riferimento nel file guida Se viene usato helpfile, context diventa obbligatorio e viceversa (non ho mai utilizzato queste due opzioni, diciamo che sono qui per completezza di informazione, hehehe) La variabile "buttons" A seconda dei pulsanti che si vogliono visualizzare

13 VbOKOnly 0 Visualizza solo il pulsante OK. VbOKCancel 1 Visualizza i pulsanti OK e Annulla. VbAbortRetryIgnore 2 Visualizza i pulsanti Termina, Riprova, e Ignora. VbYesNoCancel 3 Visualizza i pulsanti Si', No e Annulla. VbYesNo 4 Visualizza i pulsanti Si' e No. VbRetryCancel 5 Visualizza i pulsanti Riprova e Annulla. A seconda di come apparira' la finestra VbCritical 16 Visualizza l'icona di messaggio critico. VbQuestion 32 Visualizza l'icona di richiesta di avviso. VbExclamation 48 Visualizza l'icona di messaggio di avviso. VbInformation 64 Visualizza l'icona di messaggio di informazione. A seconda del pulsante predefinito VbDefaultButton1 0 Il primo pulsante e' il predefinito. VbDefaultButton2 256 Il secondo pulsante e' il predefinito. VbDefaultButton3 512 Il terzo pulsante e' il predefinito. VbDefaultButton4 768 Il quarto pulsante e' il predefinito A seconda se la scelta e' obbligatoria per l'applicazione o il sistema VbApplicationModal 0 Scelta obbligatoria nell'applicazione. L'utente deve rispondere prima di poter continuare a lavorare nell'applicazione corrente. VbSystemModal 4096 Scelta obbligatoria nel sistema. Tutte le applicazioni vengono sospese fino a quando l'utente non risponde. La variabile buttons deriva dalla somma delle opzioni corrispondenti alle nostre scelte. Ad esempio: se voglio visualizzare solo il pulsante OK, in stile di messaggio critico e con priorita' sul sistema assegnero' il valore 4112 dato da se voglio visualizzare i pulsanti SI e NO, senza stile, con pulsante predefinito il 2ø (NO), con priorita' solo sull'applicazione assegnero' il valore 260 dato da Per ogni gruppo e' possibile scegliere un'opzione (intendo dire che non e' possibile mettere il primo pulsante come predefinito e pure il terzo, 8 ; oppure mettere come stile sia il messaggio di avviso che quello critico), e il valore finale e' dato dalla loro somma (come gia' detto). Inoltre e' possibile sostituire il valore con la costante associata (VbQuestion e' la costante 32 che si riferisce allo stile di richiesta di avviso). In questo caso, piu' opzioni vengono gestite con l'operatore "+". Ad esempio: MsgBox "Prova", VbYesNo + VbSystemModal, "Titolo Prova" Infine l'istruzione include le parentesi quando e' una funzione (cioe' restituisce un risultato). Quindi: Variabile = MsgBox ("Testo", VbYesNo) --> visualizza la finestra e memorizza la risposta in Variabile Msgbox "Testo", VbYesNo --> visualizza la finestra I possibili risultati sono: Costante Valore Significato vbok 1 OK vbcancel 2 Annulla vbabort 3 Termina vbretry 4 Riprova vbignore 5 Ignora vbyes 6 Si' vbno 7 No OOPS... mi sono dilungato un po. Torniamo al ciclo. Come potete vedere, il ciclo visualizza una finestra di messaggio finche' non premiamo il pulsante NO. La parola UNTIL indica che il ciclo e' eseguito quando la condizione e' FALSA

14 (infatti, come diventa vera, usciamo dal ciclo) Questa puo essere sostituita dalla parola WHILE che ha esattamente la funzione opposta: il ciclo verra' eseguito quando la condizione e' VERA. Quindi ad esempio, questo listato risulta uguale a quello precedente: Do Risposta = MsgBox ("Ciao, continua?", VbYesNo, "Prova") Loop While Risposta = 6 Viene controllato che risposta sia uguale a 6 (SI) e, se vero, il ciclo si ripete. In questi casi, pero, si entra nel ciclo sempre almeno una volta... potremmo pero' non volere eseguire il ciclo nemmeno una volta. Possiamo quindi mettere la condizione di esecuzione del ciclo all'inizio: Do While Risposta = 6 Risposta = MsgBox ("Ciao, continua?", VbYesNo, "Prova") Loop Con questo listato per entrare nel ciclo la variabile Risposta deve gia' avere il valore 6, altrimenti le istruzioni all'interno del ciclo saranno completamente ignorate e l'esecuzione del programma riprendera' dall'istruzione seguente LOOP. Anche in questo caso e' possibile usare WHILE o UNTIL. Infine diciamo che la condizione puo' essere composta da piu' relazioni legate da operatori logici. Ad esempio con "Do While Risposta = 6 And Fine = 1" il ciclo viene eseguito solo se Risposta e' uguale a 6 E Fine e' uguale ad 1; basta che una delle due condizioni sia falsa per uscire dal ciclo. Gli relazioni possono essere anche a carattere gerarchico (cioe' si possono utilizzare le parentesi). Do While Risposta = 6 And (Fine = 1 Or Inizio = 1) Non vi dico il significato di questa istruzione... cercate di capire quando si esce dal ciclo!!!! Ecco i principali operatori logici che potete usare in Visual Basic: *** AND Espressione1 Espressione2 Risultato True True True True False False False True False False False False Restituisce True solo se tutte le espressioni hanno valore True *** OR Espressione1 Espressione2 Risultato True True True True False True False True True False False False Restituisce True solo se almeno una delle espressioni ha valore True *** NOT Espressione Risultato True False False True Inverte il valore della variabile *** XOR Espressione1 Espressione2 Risultato True True False True False True False True True False False False Restituisce True se i due valori sono diversi tra loro *** IMP Espressione1 Espressione2 Risultato True True True True False False False True True False False True Mai usato... se qualcuno capisce in base a che principio funziona me lo dica;p

15 (la guida dice: "Utilizzato per stabilire un'implicazione logica tra due espressioni") *** EQV Espressione1 Espressione2 Risultato True True True True False False False True False False False True Praticamente l'opposto di XOR Prima di finire con i cicli diciamo che possono essere nidificati (cioe' uno dentro un altro) e che, in quel caso, l'istruzione di chiusura (LOOP per il ciclo DO, NEXT per il ciclo FOR) si riferisce all'inizio piu' vicino ancora aperto: DO {istruzioni} DO {altre_istruzioni} LOOP LOOP Il primo LOOP si riferisce al secondo DO (quello aperto piu' vicino) e lo chiude... il secondo LOOP chiude il primo DO. N.B. Quando chiudete un ciclo FOR ricordate di mettere il giusto contatore vicino all'istruzione NEXT o verra' generato un errore. E anche questa e' fatta!!! I cicli principale sono questi. Passiamo ora all'esecuzione condizionale. Si tratta semplicemente di istruzioni che vengono eseguite solo se si verificano (o meno) certe condizioni. La prima e' sicuramente l'if. Sub Main() Dim Risposta as integer Risposta = MsgBox ("Ciao, continua?", VbYesNo, "Prova") If Risposta = 6 then MsgBox "Ok, let's go on" End If End Sub In questa routine chiediamo se si vuole continuare e se la risposta e' SI viene visualizzata un'altro messaggio. La struttura e': If condizione1 then {blocco_istruzioni1} Else {blocco_istruzioni2} End If Se la condizione risulta vera, verra' eseguito il blocco_istruzioni1; se falsa, il blocco_istruzioni2. ELSE indica quello che deve essere fatto se la condizione risultasse falsa (e' opzionale, vedi l'esempio). E' possibile controllare diverse condizioni, ad esempio: If condizione1 then {blocco_istruzioni1} ElseIf condizione2 then {blocco_istruzioni2} Else {blocco_istruzioni3} End If In questo caso se condizione1 e' falsa viene controllata condizione2 che, se vera, portera' all'esecuzione del blocco_istruzioni2. Se sono tutte false si esegue l'else. E' possibile mettere tutti gli ELSEIF che si vuole e l'else verra' eseguito solo se TUTTI i precedenti risultano essere falsi. Anche le IF, naturalmente, possono essere nidificate, e in questo caso ogni End If si riferisce all'if piu' vicino ancora aperto. Tra le condizioni, come nel ciclo DO/LOOP, e' possibile mettere delle relazioni logiche utilizzando gli operatori sopra descritti (ad es. If A = 1 Or B = 2 then...).

16 Esiste inoltre un metodo per valutare una variabile e reagire di conseguenza: Select Case variabile Case controllo1 {Istruzioni1} Case controllo2 {Istruzioni2} Case Else {Istruzioni_Else} End Select variabile e' cio' che viene messo a confronto con i vari CASE. Se variabile corrisponde ad esempio a controllo1 verra' eseguito istruzioni1, e cosi' via... Se nessun controllo da esito positivo viene eseguito il CASE ELSE (facoltativo). Ad esempio: Select Case Voto Case 10 MsgBox "Bravo" Case 6 to 9 MsgBox "Bravetto" Case 3, 4, 5 MsgBox "Applicati" Case is < 3 Msgbox "SFATICATO!!!!" Case Else MsgBox "Errore" End Select In questo esempio si vedono le sintassi che possono avere i CASE: 1ø Case 10 --> Controlla se e' uguale a 10 2ø Case 6 to 9 --> Controlla se appartiene all'intervallo da 6 a 9 3ø Case 3, 4, 5 --> Controlla se e' uguale a 3, a 4 o a 5 (avremmo potuto scrivere CASE 3 to 5) 4ø Case is < 3 --> Controlla se e' minore di 3 Come parametro per il CASE e' possibile mettere un valore (1ø), un intervallo (2ø), o piu' condizioni staccate da una virgola (3ø). E' infine possibile utilizzare la parola chiave IS con gli operatori di confronto =, >, =>, <, <= (4ø) R0n n ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º³ PASCAL TUTORIAL [ PRIMA PARTE ] ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ /( ) ÿ\ ( ) /( ) (ÿ( )ÿ ( ) ( ) \ÿ\( ) /( ( ) ) )ÿ) (ÿÿ ( )( ) \ÿ( ) \( ( ) ) (ÿ( \ÿÿ( ) ( ) \(_) \( ) \ÿ\ \ÿ( ) ( ) \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Corso a puntate di Turbo Pascal /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Le cose fondamentali da sapere

17 Imparare un linguaggio di programmazione non e' mai facilee spesso si ricorre a studiarli forzatamente per necessita'.ora, sperando che lo finisca, vi presentero' un corso basatosu uno dei linguaggi di programmazione fondamentali, non percio' che riesce a fare ma per il semplice motivo che e' stato uno dei primi linguaggi di programmazione a livello alto. A noi non interessa tanto sfruttarlo per nostre applicazioni mabensi' come base che ci fara' capire come funziona un linguaggio di programmazione un po' piu' complesso.allora, credo che a questo punto possiamo iniziare:(azz! Ho finito le siga...e pensare che le ho comprate 6 ore fa..sigh!)un programma in Pascal, che utilizza solo le istruzioni di base, e' formato generalmente da tre sezioni:--intestazione----dichiarazioni----istruzioni--nell'intestazione viene specificato il nome del programma.nelle dichiarazioni vengono descritti in modo formale glioggetti su cui il programma dovra' operare.nelle istruzioni abbiamo le operazioni in cui vengono descrittele azioni da compiere, collegandole tra loro con opportune strutture di controllo. Ecco lo schema: PROGRAM NOMEDELPROGRAMMA; <-----INTESTAZIONE...<-----DICHIARAZIONI...BEGIN......<----- ISTRUZIONI (ALLINEATE SEMPRE SOTTO IL TERZO CARATTERE)...END. <----- INDICA LA FINE DEL PROGRAMMA (QUANDO C'E' IL. ) Di solito l'intestazione viene ignorata dalla cpu mentre nell'end finale ci vuole sempre il punto. ->DICHIARAZIONI<- In un programma che usa solo le strutture di base, questa sezione e' divisa in tre part:la dichiarazione dei moduli usati dal programma (clausola USES) La dichiarazione delle costanti (clausola CONST) La dichiarazione delle variabili (clausola VAR)-->LA DICHIARAZIONE DEI MODULI<--Il Pascal, come succede ormai per la maggior parte dei linguaggi, mette a disposizionedel programmatore diverse librerie di sottoprogrammi di utilita'(moduli).tra i moduli standard ricordiamo:¹ Il modulo Crt, che contiene le procedure e funzioni che consentono di sfruttare in modo piu' efficiente le potenzialita' della tastiera e del video² Il modulo Printer, che contiene le procedure necessarie alla gestione della stampante³ Il modulo Graph, contenente tutte le procedure e le funzioni legate alla gestione grafica dello schermola sintassi della dichiarazione di uno o piu' moduli e' questa:uses nome del modulo,nome del modulo,...,nome del modulo ;-->La dichiarazione delle costanti<-- In Pascal e' possibile gestire due classi di costanti: quelle espresse da noi nel programmaattraverso assegnazione e quelle che vengono dichiarate nella sezione di dichiarazione e sono precedute dalla parola chiave CONST.ES.CONST gravita':=9.81; pigreco:=3.14 ;-->La dichiarazione delle variabili<-- Tutte le variabili usate nel programma devono essere dichiarate, con l'indicazione del tipo,nell'apposita sezione che inizia con la parola chiave VAR.Ecco la sintassi:var nome della variabile:tipo; nome della variabile,.....,nome della variabile:tipo;il nome della variabile e' attribuito da noi, mentre il tipo dobbiamo sceglierlo tra i seguenti: TIPO DESCRIZIONE OCCUPAZIONE CONTIENE I NUMERI COMPRESI TRA BYTE 1 A BYTE PERMETTE DI RAPPRESENTARE TUTTI I REAL VALORI DECIMALI COMPRESI TRA: 6 BYTE ±2.9 * 10 ^-38 A ±1.7 * 10^38 CONSENTE DI RAPPRESENTARE VALORI INTEGER INTERI RELATIVI COMPRESI TRA: 2 BYTE E

18 CONSENTE DI RAPPRESENTARE GLI INTERI LONGINT COMPRESI TRA: 4 BYTE E PERMETTE DI RAPPRESENTARE TUTTI CHAR I CARATTERI APPARTENENTI 1 BYTE ALL'ALFABETO ASCII PERMETTE DI RAPPRESENTARE UNA STRING QUALSIASI SEQUENZA DI CARATTERI LA FINO A 255 BYTE CUI LUNGHEZZA VARIA DA 1 A 255 PERMETTE DI RAPPRESENTARE I DUE BOOLEAN VALORI LOGICI TRUE E FALSE 1 BYTE -->L'ASSEGNAZIONE<-- L'assegnazione permette di memorizzare un valore in una locazione di memoria. La sintassi e' questa:nome della variabile:=valore o espressione;non dimenticate che ogni assegnazione va chiusa con il punto e virgola. -->LE PROCEDURE DI INPUT/OUTPUT<-- La procedura che in Pascal consente di acquisire dati attraverso tastiera e' READLN. La sintassi e' questa: READLN(VARIABILE); oppure READLN(VARIABILE1,VARIABILE2,...,VARIABILEn);La cpu attende che l'operatore digiti qualcosa da memorizzare nella rispettivalocazione di memoria. Anche quest'istruzione ha bisogno di essere chiusa da un punto e virgola. L'istruzione per visualizzare un messaggio di output sullo schermo e' WRITELN. Sintassi: WRITELN(NOME DELLA VARIABILE); oppure WRITELN(NOME DELLA VARIABILE,NOME DELLA VARIABILE2,...,NOME DELLA VARIABILEn); oppure WRITELN('CIAO LAMER');I primi due mostrano il contenuto delle variabili, mentre il terzo mostra un messaggio sullo schermo. Quando bisogna visualizzare un messaggio a video, il testo deve esserecontenuto tra due apici. Per ottenere, invece, l'output sulla stampante bisogna, quando dichiariamo i moduli, specificare il modulo PRINTER e usare l'opzione LST in questo modo: WRITELN(LST'sAlVe SoNo UnA stampa') ;->LE ISTRUZIONI STRUTTURATE<- Le istruzioni strutturate si dividono in tre tipi:»»»»sequenza««««»»»selezione«««»»»iterazione«««-->sequenza<-- La sequenza e' una struttura in cui le istruzioni strutturate che la compongono vengono eseguiteuna dopo l'altra nell'ordine indicato. In Pascal questa struttura e' racchiusa tra le istruzionibegin e END e al suo interno ogni istruzione e' suddivisa dalla successiva attraverso il ; Faccio un esempio di un programma primitivo: PROGRAM UTENGLUONG; (* QUESTO E' UN COMMENTO *) VAR A,B,C:INTEGER; {ANCHE QUESTO} BEGIN WRITELN ('INSERISCI I DUE NUMERI DA SOMMARE'); READLN(A,B); (* LEGGE UN NUMERO CHE NON DEVE SUPERARE LA CIFRA ±32767 *) C:=A+B; (*CALCOLA LA SOMMA E LA MEMORIZZA NELLA VARIABILE C*) WRITELN ('LA SOMMA E'' ',C); (*STAMPA LA SOMMA*)END....IF A<0... CIOÉ SE A É MINORE DI 0...IF A=0... CIOÉ SE A É UGUALE A 0...IF A<=0... CIOÉ SE A É MINORE O UGUALE A 0...IF A>=0... CIOÉ SE A É MAGGIORE O UGUALE A 0...IF A<>0... CIOÉ SE A É DIVERSO DA 0...

19 Esempio di un programma con selezione: PROGRAM UTENGTUOST; (* QUESTO PROGRAMMA CONFRONTA DUE NUMERI *) VAR A,B:INTEGER;BEGIN WRITELN ('INSERISCI DUE NUMERI'); READLN(A,B); IF A>B THEN WRITELN ('IL PIU'' GRANDE E'' ',A); (* VERIFICA SE A É MAGGIORE DI B O VICEVERSA *) IF A<B THEN WRITELN ('IL PIU'' GRANDE E'' ',B); IF A=B THEN WRITELN ('SONO UGUALI'); (* VERIFICA SE SONO UGUALI *)END. -->ITERAZIONE<-- I cicli iterativi servono per ripetere piu' volte un determinato numero di istruzioni sotto ilcontrollo di una condizione booleana.esistono tre tipi di cicli:il ciclo WHILE, il ciclo REPEAT e il ciclo FOR.Il ciclo WHILE esegue le istruzioni se la condizione e' vera ed esce se la condizione e' falsa.while CONDIZIONE DO BEGIN ISTRUZIONI DA RIPETERE; END;Il ciclo REPEAT esegue le istruzioni se la condizione e' falsa ed esce se e' vera.repeat ISTRUZIONI DA RIPETERE;UNTIL CONDIZIONE;Il ciclo FOR e' simile al WHILE ma ripete fino a quando specificato nella condizione. FOR CONDIZIONE DO BEGIN ISTRUZIONI DA RIPETERE; END;Ogni ciclo possiede un contatore. Il contatore deve essere inizializzato fuori dal ciclo eaumentato dentro al ciclo o viceversa, tranne con il FOR.Ora vi mostro un programma che sfrutta tutti e tre i cicli: PROGRAM SONOUNFRISCONE; (* QUESTO PROG NON SERVE A NIENTE *) USES CRT; VAR K,CAZZO,I,VAGINA,SEGA:INTEGER; NOME:STRING[15]; (* IL 15 TRA [] SIGNIFICA CHE LA PAROLA PUo' ESSERE LUNGA 15 CARATTERI *) CHIAVAMI:BOOLEAN; BEGIN REPEAT (* CONTROLLA SE K E' MAGGIORE DI 0 *) WRITELN ('INSERISCI QUANTE TE NE VUOI CHIAVARE'); READLN(K); UNTIL K>0; WRITELN ('QUANTO CM CE L''HAI LUNGO?'); READLN(CAZZO); WRITELN ('QUANTI CM CE L''HA LARGA, LEI? '); READLN(VAGINA); IF CAZZO>VAGINA THEN SEGA:=CAZZO-VAGINA; IF VAGINA>CAZZO THEN SEGA:=VAGINA-CAZZO; IF SEGA>10 THEN WRITELN ('AHIAHIAHI SEI FUORI DALLA MEDIA, VEDIAMO DI RECUPERARE!'); DELAY(3000); (*QUESTO COMANDO SERVE PER ASPETTARE ALCUNI SECONDI PRIMA DI CONTINUARE *) CLRSCR; (* QUESTO COMANDO SERVE PER PULIRE LO SCHERMO *) WRITELN ('IL TUO CAZZO DOVREBBE ESSERE COSI'' '); DELAY(2000); (*ASPETTA UN ALTRO PO'*) WRITELN (''); WRITELN (' '); WRITELN (' / \ '); WRITELN (' ( ) '); WRITELN (' \ / '); (* RIPETE IL CICLO DA 1 A SEGA*) FOR I:=1 TO SEGA DO WRITELN (' '); WRITELN (' / \ '); WRITELN (' ( ) '); WRITELN ('( () )'); WRITELN (' ( ( ( ) '); WRITELN (' ((( ))) '); DELAY(5000); (*MI SON ROTTO DI ASPETTARE*) CLRSCR; WRITELN ('COME TI CHIAMI?'); READLN (NOME); WRITELN ('ALLORA ',NOME,' CERCHIAMO DI FAR LUCE SU QUESTO CASO'); DELAY(3000); (*UFF*) I:=1; (* INIZIALIZZA IL CONTATORE AD 1 *) CHIAVAMI:=FALSE; (* INIZIALIZZA LA VARIABILE BOOLEANA A FALSE *)

20 WHILE (I<=K) AND (CHIAVAMI=FALSE) DO BEGIN WRITELN ('IL ',I,'ø GIORNO TE NE TIRI ',SEGA); IF SEGA=0 THEN CHIAVAMI:=TRUE; (* SE SEGA E' UGUALE A ZERO DICHIARA F=TRUE*) SEGA:=SEGA-1; I:=I+1; END; (* IL CICLO SI FINISCE SE F É TRUE E SE I HA RAGGIUNTO K*)END. E' ovvio che guardando questo prog non riusciate a capire cosa faccia, vabbe' quello e' normale! Neanche io ho capito che fa! L'importante e' aver capito come funziano i cicli. Credo che per ora basta cosi', per il continuo mi raccomando non perdete di vistala rivista che se l'avete gia' vista avete preso una svista e per ora ben vista'.la prox volta vedremo le strutture non primitive, gli array e qualcos'altro...;-3per ora sbizzaritevi con questi comandi ;-PABS(X)Calcola il valore assoluto di xarctan(x)calcola al'arcotangente in radianti di XChr(CODICE)Restituisce il carattere che ha il codice ASCII specificatocopy(stringa,posizione,numerocaratteri)estrae dalla stringa una sottostringa formata dal numero di caratteri specificatopresi a partire dalla posizione indicata.cos(x)calcola il coseno di un angolo in radiantidelay (MILLISEC)Interrompe l'esecuzione del programma per il tempo specificato Delete(STRINGA,POSIZIONE,NUMEROCARATTERI)Elimina dalla stringa un certo numero di caratteri a partire dalla posizione specificata. Exp(X)Calcola il valore della funzione esponenziale e^xfrac(x)calcola la parte frazionaria, compresa tra 0 e 1, di un numero realeinsert(nuova,originale,posizione) Inserisce i caratteri della nuova stringa all'interno della stringa originaleint(x)calcola la parte intera di un numero realelenght(stringa) Restituisce il numero di caratteri che compongono la stringaln(x)calcola il logaritmo naturaleord(carattere)restituisce il codice ASCII del caratterepi Restituisce il valore della costante pigreco con 18 cifre decimalirandom(n) Resituisce un numero casuale intero compreso tra 0 e N-1RandomizeQuesta funzione si deve inizializzare se si vuole usare il comando RandomRound(X) Arrotonda un numero reale all'intero piu' vicinosin(x)calcola il coseno di un angolo in radiantisqr(x)calcola il quadratosqrt(x)calcola la radice quadrata di un numero realestr(valore,stringa)genera la stringa di caratteri corrispon dente al valore numerico specificatostr(stringa,valore)genera il valore corrispondente alla stringa di caratteri specificatatrunc(x)elimina la parte decimale di un numero reale. T0rment0 ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ che cos'e' java??? ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ º º³ JAVA TUTORIAL [ PRIMA PARTE ] ³º ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙº ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Java e' un linguaggio di programmazione molto simile al c++ o al pascal piuttosto che a un linguaggio di descrizione della pagina come HTML o a un semplice linguaggio di skript come JavaSkript. Piu' specifikatamente, java e' un linguaggio di programmazione orientato ad oggetti (come il Visual Basic)sviluppato dalla Sun MicroSystems, ispirato al C++ (quindi noterete molte somiglianze) ed e' stato progettato con lo scopo di ottenere un prodotto di piccole dimensioni, semplice e portabile su diverse piattaforme e sistemi operativi, sia a livello del kodice sorgente sia al livello del kodice binario il ke signifika che i programmi java(sia applet che applicazioni) possono essere eseguiti su qualunque komputer sia installata una makkina java. Va be' cmq se avete capito (o almeno avete letto) li' sopra avete compreso qual'e' la differenza di java con gli altri linguaggi, cioe' la possibilita' di avere un programma compatibile sulla maggior parte dei sistemi (Pentium, powerpc, SPARC) Ekkovi uno schemino

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

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

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

Dettagli

Struttura dati FILE. Concetto di FILE

Struttura dati FILE. Concetto di FILE Struttura dati FILE Concetto di FILE Per poter mantenere disponibili dei dati tra diverse esecuzioni di un programma (PERSISTENZA dei dati), è necessario poterli archiviare su memoria di massa. Un file

Dettagli

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

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

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

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

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

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Programmazione in Excel con il linguaggio Visual Basic

Programmazione in Excel con il linguaggio Visual Basic Programmazione in Excel con il linguaggio Visual Basic L'ambiente di programmazione Il foglio elettronico Excel, così come gli altri prodotti Office di Microsoft, possiede un vero e proprio ambiente di

Dettagli

Scrivere un fake mailer in Visual Basic. La parte della guida di Lord Shinva sulle Fake Mail

Scrivere un fake mailer in Visual Basic. La parte della guida di Lord Shinva sulle Fake Mail Scrivere un fake mailer in Visual Basic Tutti noi, all'inizio abbiamo letto la famosa guida all'hacking di Lord Shinva. Altra cosa certa è che tutti noi sappiamo la quasi inutilità di questa guida... La

Dettagli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag