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!
|
|
|
|
|
|