F.A.Q. Programmazione



FAQ Club

 



L'Autore


Il curatore di queste F.A.Q. è Alessandro Luparello, laureando in Ingegneria Informatica.

Lo potete contattare attraverso l'indirizzo del club oppure attraverso l'indirizzo di posta personale: alswolf@inwind.it

 

Note dell'autore

 

Le F.A.Q. (frequently asked questions) presentano domande (e le relative risposte) inerenti i più comuni quesiti che gli utenti pongono alla redazione del Club oppure che si evincono dalle discussioni nella nostra community.

Il campo di questa sezione ("Programmazione") è probabilmente uno degli argomenti più gettonati dagli appassionati di Informatica... Programmare può essere molto bello e dare grandi soddisfazioni, ma bisogna sapersi orientare ed agire con metodo rigoroso (oltre che con estro e fantasia)!

Alessandro Luparello

Feedback

 

Ovviamente scopo delle FAQ è quello di essere d'aiuto e di supporto agli utenti. Se hai commenti (o aggiunte) da dare alle risposte presenti o se vuoi porre nuove domande, puoi semplicemente inviare una email all'indirizzo del club oppure a quello personale dell'autore: alswolf@inwind.it.

 
 
Domande

 

  • Per un principiante, con quale linguaggio di programmazione è consigliabile iniziare?
  • Cerco siti dedicati al visual basic per principianti
  • Gradirei imparare a programmare in Visual Java. Ho procurato una copia trial di Visual Cafè,...
  • Ho un palmare che utilizza il linguaggio OPL, mi piacerebbe saperlo utilizzare
  • Sto realizzando un programma in C++ Builder 3, in cui lavoro con i Data Base. Come creare un programma di installazione?
  • ..come includere in un progetto in VC++ i miei file generati con Flex e Bison?
  • Lex e Yacc: quando provo ad inserire la funzione all'interno del main mi da un numero elevati di errori.
Risposte


Per un principiante, con quale linguaggio di programmazione è consigliabile iniziare?
risponde Alessandro

Domanda difficile!

Se non hai mai programmato, il consiglio che possiamo darti è quello di iniziare con un linguaggio semplice e formativo, che risulti didatticamente valido più che flessibile o potente. Noi siamo dell’idea che il primo approccio alla programmazione sia il più importante, quello che fornisce basi, abitudini e metodi che, fatti propri, caratterizzeranno il programmatore per un lungo periodo di tempo (forse anche per sempre).
Quello della programmazione è un mondo molto bello, che costringe ad affinare le proprie capacità di ragionamento e di analisi, che concorre a formare una mentalità molto razionale (quasi matematica) e che, dall’altro lato, dà libero sfogo alla fantasia, alla creatività ed all’estro (persino artistico) della singola persona.

Tornando alla tua domanda: noi ti suggeriamo di iniziare con il Pascal.
Il Pascal è un linguaggio procedurale semplice e molto rigoroso. Ha innegabili qualità didattiche, nel senso che indirizza il programmatore inesperto ad assumere l’atteggiamento più serio, metodico e logicamente pulito (nel senso di cercare le soluzioni più chiare e lineari), di approccio al problema. Il compilatore Pascal ha la caratteristica di effettuare molti controlli sul codice, in modo da intervenire immediatamente quando il programmatore commette un errore (in modo che questo possa essere facilmente individuato).

Una cosa che crediamo sia importantissima per tutti i programmatori (e specialmente per i principianti), è il giusto atteggiamento verso il problema da affrontare, la soluzione immaginata (che deve essere sempre la più semplice possibile) ed il codice scritto: tale atteggiamento deve essere fatto proprio già dalle prime esperienze e costituirà la base per una successiva serie di raffinamenti e perfezionamenti. Il Pascal, a nostro modo di vedere, rimane il linguaggio più adatto a conseguire questo scopo.

Alternative possibili sono:

  • Il linguaggio C:
    Estremamente potente ed efficiente (viene utilizzato per scrivere Sistemi Operativi, UNIX ne è un esempio) risulta però forse troppo complesso e sicuramente dà eccessiva libertà al programmatore (sulle cui decisioni il compilatore interviene molto di rado).
  • Linguaggi orientati agli oggetti (ad es. Delphy, C++, Java):
    Quella Object Oriented è una filosofia di programmazione che può pensarsi ad un livello di astrazione più alto rispetto le normale programmazione (ci si riferisce a quella strutturata, o procedurale). E’ consigliabile (non necessariamente) affrontare questo tipo di programmazione solo dopo aver fatto esperienza con linguaggi strutturati.

Se hai desiderio di programmare, di costruire, istruzione dopo istruzione, un codice (così si chiama il listato finale del programma) chiaro e pulito, di creare un progetto funzionante, valido ed efficiente per risolvere un qualsiasi problema, non possiamo che congratularci con te!

 

Cerco siti dedicati al visual basic per principianti (ma non troppo).
Ho problemi con i comandi (tipo docmd...), dove me li posso procurare?
risponde Daniele

Da quello che ho capito, quello che ti serve maggiormente e' entrare in contatto con qualcuno che abbia esperienze di programmazione in Visual Basic e non semplicemente un link ad un sito con qualche corso di programmazione on-line.
Quindi il mio consiglio e quello di iscriverti ad un newsgroup specifico sull'argomento (se non sai come funzionano i ng, niente paura: ci siamo qua noi...), dove potrai trovare altra gente, con esperienze di programmazione, disposta a rispondere a tutte le tue richieste e a sciogliere ogni tuo dubbio.
Il gruppo che ti consiglio e' it.comp.lang.visual-basic perche' e' frequentato in genere da gente molto competente e, cosa da non sottivalutare, e' pure in italiano. Il gruppo ha anche un sito a cui fa riferimento, sul quale vengono periodicamente (e' sempre abbastanza aggiornato) raccolte le domande piu' ricorrenti e i listati pubblicati sul ng.

 

Gradirei imparare a programmare in Visual Java.
Ho procurato una copia trial di Visual Cafè, ma non trovo un buon manuale per iniziare (posseggo solo il documento PDF fornito con una copia trial del programma).
risponde Daniele

Se quello che ti interessa e' imparare a programmare in Visual Java (Microsoft) e conti di usare il prodotto della Symantec come "trampolino di lancio" verso un linguaggio per te nuovo, non ti consiglio di spendere soldi e fatiche per procurarti un manuale apposito per Visual Cafe': in Italia, infatti, almeno a quanto mi riulta, non esistono pubblicazioni che trattino questo specifico software e, imbarcarsi in spedizioni internazionali (o intercontinentali) e' una cosa che non sta simpatica a molti (non so a te...).
Quindi, per entrare nell'ambiente, potrebbe essere sufficiente il manuale in formato .PDF a corredo della trial version, magari accompagnato da un buon manuale di Java (ti consiglio quello della Apogeo, "Java Tutto e Oltre", abbastanza completo, e semplice anche per chi parte da zero).

Se invece hai intenzione di "specializzarti" su Visual Cafe', allora quello di procurarti i libri d'oltreoceano e' un prezzo che devi pagare. Infatti non ci e' stato possibile reperire alcun tipo di tutorial o altra documentazione che andasse oltre quanto gia' da te posseduto. Trovandosi costretti a mettere le mani al portafogli, il libro che ti consiglio e' "Teach yourself Visual Cafe' in 21 days" di Mike Cohn: ho avuto modo di visionare la versione relativa a VC2 e di leggerne anche diverse recensioni tutte molto entusiastiche se confrontate con prodotti analoghi.
Anche in questo caso, come per tutti gli altri prodotti della serie "Teach Yourself", l'approccio e' piuttosto elementare e questo semplifica parecchio la vita per chi si avvicina all'ambinte per la prima volta e, magari, non ha una grandissima dimestichezza con la lingua inglese.
Comunque, malgrado l'approccio elementare, il livello di approfondimento e' molto buono (e' un mattone di oltre 800 pagine contro la media di 500 pagine per i suoi concorrenti).

 

Ho un palmare che utilizza il linguaggio OPL, mi piacerebbe saperlo utilizzare
risponde Daniele

Purtroppo siamo costretti a deludere almeno in parte le tue aspettative: nessuno di noi (almeno per il momento) ha esperienze di programmazione in OPL, non possedendo un palmare che lo supporti.
Ci siamo documentati, comunque e spero possiamo esserti d'aiuto ugualmente.

Come gia' saprai OPL ("Organiser Programming Language") e' un semplice linguaggio di programmazione basic-like sviluppato da Psion/Symbian, e implementato come linguaggio di programmazione sui palmari Psion con sistema operativo Epoc. E' un linguaggio pensato essenzialmente per la gestione di un agenda (indirizzi, appuntamenti e simili...) e quindi caratterizzato da funzioni tipiche dei database, nonche' dotato di semplici ma efficienti strutture (filtri e protocolli) di trasmissione-sincronizzazione dei dati, per interfacciarsi direttamente con applicazioni come Word, Excel, Access e Outlook sia per PC che per MAC.

Ne esiste una anche estensione, OOPL, (la puoi trovare facendo una ricerca all'indirizzo http://volftp.mondadori.com) che fornisce fuzioni avanzate come strutture, classi, alberi di classi dinamiche, puntatori, aritmetica avanzata, e molto altro. La sezione Epoc World, sul sito di SYMBIAN (www.symbian.com), fornisce parecchie informazioni sul sistema operativo Epoc 32 e sulla programmazione in OPL.

Un corso di programmazione per "absolute beginners" si trova su 3Lib. Un utilissimo Editor Esadecimale (freeware e in italiano) è "HexHeditor". Su queste stesse pagine pui trovare anche vari plugin per HexHeditor (decompile, clipboard, autocomplete...) e ancora dell'altro materiale per OPL.

 

Sto realizzando un programma in C++ Builder 3, in cui lavoro con i Data Base. Proprio l'utilizzo dei dB rende impossibile la realizzazione di un file esecutivo che possa essere fornito senza l'accompagnamento di alcune librerie dinamiche (quelle relative appunto al BDE).
Il programma che sto realizzando dovrà quindi essere installato sulla macchina che lo eseguirà. La domanda è proprio questa: come realizzare tale operazione?

rispondono Daniele, Luca ed Alessio (dalla mailing list)

Nella versione 3 e 4 del C++ Builder c'è un'applicazione chiamata InstallShield Express; sulla macchina che deve eseguire l'applicativo deve già essere presente un gestore di database chiamato BDE amministrator che puoi trovare nel pannello di controllo (nel CD del C++ Builder 4 tale applicazione si trova nella directory "D:\runimage\Borland Shared\Bde"; c'è anche un file help che potrebbe esserti di aiuto).

Le versioni 5 dei RAD Borland, sia C++ Builder che Delphi (credo, però, solo nella edizione "Enterprise"), includono anche un tool per creare le installazioni dei programmi sviluppati, con annesse librerie, dll e altri file correlati. L'uso di questo tool è più che semplice, addirittura automatico, perchè il RAD "sa" già quali file usa il programma che si vuole impacchettare e pensa a tutto lui.
Se non hai la possibilità di procurarti questa versione del RAD, puoi sempre ricorrere a qualche prodotto di "terze parti", facilmente reperibile in rete, come InstallShield.
Oppure provare a fare un file batch (.BAT) che lancia in sequenza l'installazione del BDE e poi il Setup del programma.

 

Vorrei realizzare la tesina di linguaggi e traduttori in Visual C++ 6.0 che sto studiando da un po' di tempo, e mi servirebbero degli esempi di tesine già realizzate con lo stesso sistema oppure un tutorial su come includere in un progetto in VC++ i miei file generati con Flex e Bison.
Ho cercato in rete ma su Flex e Bison ci sono solo degli stupidi esempi per realizzare delle calcolatrici ma nessun valido esempio su come realizzare un linguaggio serio da utilizzare in una applicazione creata con VC++.
Risponde Luca

Visto che ti interessa materiale su Linguaggi sicuramente avrai già scaricato le lezioni e la tesina Nadja (lo sketch editor).
Per quanto riguarda il Visual C++ non credo che ci debbano essere troppi problemi. Io però ho sempre compilato i sorgenti di Lex e Yacc con il Borland C++ Builder.

Effettivamente ci sono delle difficoltà, dovute principalmente al linkaggio. In C++Builder mi pare che includevo i file generati da Lex e Yacc direttamente nel progetto. Comunque puoi andare a controllare direttamente nei sorgenti di Nadja.
Purtroppo un tutorial sull'argomento non è stato mai realizzato perché il Club è posteriori al periodo in cui abbiamo lavorato alla tesina. Io ti consiglio di procedere per gradi. Inizia a compilare solo un programmino Lex che non fa molto (ad esempio eliminare gli spazi da un file). Poi inizia a complicare la faccenda e aggiungi anche Yacc. Io ho fatto così e alla fine sono riuscito a farcela.

 

Sto realizzando la tesina di linguaggi, impiegando il Borland Bulder pro 4 e compilando il file lex e yacc con bcc32: non ci sono stati problemi tenuto conto che si devono eliminare alcune righe dal file lexyy.c (riga 68 69 70), ma quando provo ad inserire la funzione all'interno del main del form della applicazione mi da un numero elevati di errori.

risponde Luca

Anche io ho avuto gli stessi problemi di compilazione che stai avendo tu.

Mi ricordo che alcune volte riuscivo a compilare il tutto, e altre volte no!.
In ogni caso non disperare, procedi per gradi, inserendo soltanto la funzione che ricavi da Lex e poi effettua l'integrazione anche con Yacc (che mi pare che dava maggiori problemi).
Al limite, se non riesci a linkare il tutto, eccoti un consiglio che con me ha funzionato: inserisci nel progetto non tanto il file y_tab.c (mi pare che si chiami così) ma piuttosto il file y_tab.obj Se ancora non funziona fammi sapere e vedrò di aiutarti!

 
 

Se avete domande, consigli, critiche o quant'altro vogliate comunicarci,
utilizzate la nostra casella di posta:
clubinfo@libero.it