View Full Version : [C++] Utilizzo valori di default in Netbeans
Salve a tutti.
Ho bisogno di sapere come si fa in Netbeans a utilizzare dei valori di default per le variabili.
In pratica quello che voglio ottenere è il risultato immediato una volta fatto partire il programma.
Sia chiaro: non voglio inizializzare le variabili all'interno del programma. So che c'è qualche settaggio in Netbeans o almeno lo spero, nel Turbo C++ della Borland c'era.
Grazie in anticipo.
Per favore !!!! :help: :help: :help: :help: :help:
Non è standard e non si dovrebbe fare, se poi riusi lo stesso pessimo codice senza inizializzazioni fuori da netbeans crasherebbe nelle maniere più disparate.
E' così difficile ricordarsi di inizializzare? :asd:
tomminno
04-07-2010, 15:09
Non è standard e non si dovrebbe fare, se poi riusi lo stesso pessimo codice senza inizializzazioni fuori da netbeans crasherebbe nelle maniere più disparate.
E' così difficile ricordarsi di inizializzare? :asd:
Se non ho capito male lui non vuole inizializzare le variabili del programma, ma eseguire il programma assegnango dei valori alle variabili senza specificarle via codice, in pratica un test. Non so come potrebbe l'IDE fare una cosa simile in automatico.
Nel turbo della borland era possibile me lo ricordo fin troppo bene... uso netbeans solo perchè l'ide della borland richiede una decina di prerequisiti che non sto qui ad elencare perchè non me li ricordo neanche...
Idee??
Se non ho capito male lui non vuole inizializzare le variabili del programma, ma eseguire il programma assegnango dei valori alle variabili senza specificarle via codice, in pratica un test. Non so come potrebbe l'IDE fare una cosa simile in automatico.
Si si hai centrato esattamente il problema. Ma come si faaa !!!
tomminno
05-07-2010, 23:55
Si si hai centrato esattamente il problema. Ma come si faaa !!!
Non credo sia possibile, per lo meno non come lo intendi te.
Come funzionava con il Borland?
Dopotutto i valori delle variabili sono determinati dall'esecuzione del programma o dalla loro inizializzazione.
Non credo sia possibile, per lo meno non come lo intendi te.
Come funzionava con il Borland?
Dopotutto i valori delle variabili sono determinati dall'esecuzione del programma o dalla loro inizializzazione.
Lo devo reinstallare però c'era un'opzione apposita come una Watch list soltanto che li inserivi i parametri da utilizzare... Altrimenti qualcosa di simile?? Mi sembra molto strano che non esista quello che intendo...Nei grandi progetti credo sia abbastanza antiproduttivo tutte le volte inizializzare le variabili per testare il programma.... Poi non lo so eh...
tomminno
06-07-2010, 00:48
Lo devo reinstallare però c'era un'opzione apposita come una Watch list soltanto che li inserivi i parametri da utilizzare... Altrimenti qualcosa di simile?? Mi sembra molto strano che non esista quello che intendo...Nei grandi progetti credo sia abbastanza antiproduttivo tutte le volte inizializzare le variabili per testare il programma.... Poi non lo so eh...
Nei grandi progetti si usano i test, pensati per coprire il più possibile tutti i path di esecuzione.
Oltretutto in un programma le variabili sono già inizializzate a dovere, non capisco perchè vorresti modificare il valore di inizializzazione, falsando così il comportamento del programma che di per sé inizializzerebbe quelle variabili in altro modo.
Non è che ti stai riferendo ai parametri da passare da linea di comando ad un progetto console?
Non ho capito minimamente cosa stai cercando di fare, ma devo dire che, premesso che Netbeans 6.9 supporta l'integrazione con cppunit e cunit (comoda e carina graficamente, anche se ogni tanto la generazione dei makefiles canna miseramente e si viene sommersi da errori di linkaggio), quello che vuoi fare equivale sostanzialmente al settare un breakpoint in "zona franca", far partire il debug e editare i valori nella lista dei watches ;)
Non ho capito minimamente cosa stai cercando di fare, ma devo dire che, premesso che Netbeans 6.9 supporta l'integrazione con cppunit e cunit (comoda e carina graficamente, anche se ogni tanto la generazione dei makefiles canna miseramente e si viene sommersi da errori di linkaggio), quello che vuoi fare equivale sostanzialmente al settare un breakpoint in "zona franca", far partire il debug e editare i valori nella lista dei watches ;)
Eh va... ma è tanto difficile capirlo? ... Sarà che mi sono spiegato male anche se Tomminno ha capito quello che intendo...
Ad esempio:
int main() {
int a, b, c;
a = b + c;
return a;
Quello che intendo fare è assegnare i valori che voglio NON dentro il programma quindi tramite inizializzazione, ma dall'IDE in modo che quando faccio il Run mi dia subito il risultato e il programma faccia effettivamente quello che voglio. Io l'ho già detto: mi sembra stranissimo che non sia possibile una cosa del genere. Aspetto nuove idee comunque :) .. a presto !!
banryu79
06-07-2010, 09:27
Riprendendo il tuo esempio qui sopra: passa i valori di 'b' e 'c' dalla riga di comando (e nel codice leggi gli argomenti passati in ingresso al main).
L'IDE, sotto il comando Run, dovrebbe mettere a disposizione un gestore di configurazioni di lancio, appunto per personalizzare i valori dei parametri di ingresso. Trovi tutti i dettagli aprendo l'help dell'IDE e facendo una ricerca per la stringa "Run".
Un appunto invece per quanto riguarda i toni:
Eh va... ma è tanto difficile capirlo? ... Sarà che mi sono spiegato male anche se Tomminno ha capito quello che intendo...
Sì, era difficile capirlo, ed evidentemente ti sei spiegato male.
Inutile fare del sarcasmo, soprattutto verso persone che cercano di aiutarti (e che non sono obbligate a farlo).
Riprendendo il tuo esempio qui sopra: passa i valori di 'b' e 'c' dalla riga di comando (e nel codice leggi gli argomenti passati in ingresso al main).
L'IDE, sotto il comando Run, dovrebbe mettere a disposizione un gestore di configurazioni di lancio, appunto per personalizzare i valori dei parametri di ingresso. Trovi tutti i dettagli aprendo l'help dell'IDE e facendo una ricerca per la stringa "Run".
Ok proverò a darci un'occhiata poi vi faccio sapere. Grazie.
Un appunto per quanto riguarda i TUOI toni BANRYU79.
Io non ho offeso nessuno te lo posso assicurare. Se pensi questo è perchè non mi conosci e non devi venirmi a dire come devo comportarmi. Certo questa è una realtà virtuale e a seconda di come vengono lette le frasi può sembrare "offensivo" o meno. Ma non mi sembra il caso di essere così infantili e permalosi dai. Sii uomo.
Grazie comunque per la risposta.
tomminno
06-07-2010, 09:56
Eh va... ma è tanto difficile capirlo? ... Sarà che mi sono spiegato male anche se Tomminno ha capito quello che intendo...
Ad esempio:
int main() {
int a, b, c;
a = b + c;
return a;
Quello che intendo fare è assegnare i valori che voglio NON dentro il programma quindi tramite inizializzazione, ma dall'IDE in modo che quando faccio il Run mi dia subito il risultato e il programma faccia effettivamente quello che voglio. Io l'ho già detto: mi sembra stranissimo che non sia possibile una cosa del genere. Aspetto nuove idee comunque :) .. a presto !!
Solo che quello che cerchi di fare te è un qualcosa che non ha senso.
Perchè a b c dovresti averle inizializzate nel codice, altrimenti il tuo programma realmente come fa a funzionare?
Prova a pensare ad un esempio un pò più complesso, e ti renderai conto che quello che desideri fare è una pazzia. Passeresti ore ad impostare i valori di centinaia di variabili.
Solo che quello che cerchi di fare te è un qualcosa che non ha senso.
Perchè a b c dovresti averle inizializzate nel codice, altrimenti il tuo programma realmente come fa a funzionare?
Prova a pensare ad un esempio un pò più complesso, e ti renderai conto che quello che desideri fare è una pazzia. Passeresti ore ad impostare i valori di centinaia di variabili.
:cry: :cry: :cry: O sono io che voglio qualcosa di irrealizzabile o non riesco a spiegarmi...
struct ind {
char nome [80];
char cognome [80];
char email [80];
};
bool aggiungi(ind lista [], int& n, ind s) {
bool k;
for (int x = 0; x < n; x++) {
if (s.nome != lista[x].nome && s.cognome != lista[x].cognome) k = true;
else k = false;
if (k == false) lista[x].email = s.email;
}
if (k == true) {
lista[n] = s;
return true;
}
else return false;
}
Questo è ad esempio un esercizio dato ad un esame di università che ho risolto (almeno credo) .. Adesso supponiamo che aggiungo il main dove chiedo di inserire nome, cognome, email della lista per un certo numero di volte dato che ho bisogno di una certa quantità di dati per testare il programma.
Se il programma funziona a posto. Se non funziona devo correggere il programma e ogni volta che lo riavvio devo star li a reinserire i parametri.
è più chiaro adesso? Vi prego ditemi di si !! :(
tomminno
06-07-2010, 10:48
è più chiaro adesso? Vi prego ditemi di si !! :(
Quello che puoi fare è valorizzare il parametro argv del main con dei valori fissi che l'IDE passerà al tuo programma tutte le volte che lo avvia in debug.
Certamente l'IDE non potrà valorizzare automaticamente dei valori che andrai a richiedere all'utente tramite operazioni di IO.
Quello che puoi fare è valorizzare il parametro argv del main con dei valori fissi che l'IDE passerà al tuo programma tutte le volte che lo avvia in debug.
Certamente l'IDE non potrà valorizzare automaticamente dei valori che andrai a richiedere all'utente tramite operazioni di IO.
Mmmm... ma nell'esempio che ho postato prima potrei assegnare in automatico dei valori agli elementi della lista? Comunque oggi pomeriggio installo il Borland sulla macchina virtuale e poi ti faccio sapere. Grazie della pazienza.
Eh va... ma è tanto difficile capirlo? ... Sarà che mi sono spiegato male anche se Tomminno ha capito quello che intendo...
Ad esempio:
int main() {
int a, b, c;
a = b + c;
return a;
Quello che intendo fare è assegnare i valori che voglio NON dentro il programma quindi tramite inizializzazione, ma dall'IDE in modo che quando faccio il Run mi dia subito il risultato e il programma faccia effettivamente quello che voglio. Io l'ho già detto: mi sembra stranissimo che non sia possibile una cosa del genere. Aspetto nuove idee comunque :) .. a presto !!
Guarda che nel mio messaggio ti ho detto che non capivo perché vuoi farlo, ma ti ho anche dato una possibile soluzione... metti un breakpoint su "a = b + c" e fai partire il debug... dalla lista dei watches, ritocca i valori ;)
Resta una tecnica adatta solo a testing di programmi molto piccoli, così come usare gli argomenti a linea di comando come ti hanno suggerito non può essere una soluzione per TUTTE le variabili di un software.
Eh va... ma è tanto difficile capirlo? ... Sarà che mi sono spiegato male anche se Tomminno ha capito quello che intendo...
Ad esempio:
int main() {
int a, b, c;
a = b + c;
return a;
Quello che intendo fare è assegnare i valori che voglio NON dentro il programma quindi tramite inizializzazione, ma dall'IDE in modo che quando faccio il Run mi dia subito il risultato e il programma faccia effettivamente quello che voglio. Io l'ho già detto: mi sembra stranissimo che non sia possibile una cosa del genere. Aspetto nuove idee comunque :) .. a presto !!
Guarda che nel mio messaggio ti ho detto che non capivo perché vuoi farlo, ma ti ho anche dato una possibile soluzione... metti un breakpoint su "a = b + c" e fai partire il debug... dalla lista dei watches, ritocca i valori ;)
Resta una tecnica adatta solo a testing di programmi molto piccoli, così come usare gli argomenti a linea di comando come ti hanno suggerito non può essere una soluzione per TUTTE le variabili di un software.
Certamente l'IDE non potrà valorizzare automaticamente dei valori che andrai a richiedere all'utente tramite operazioni di IO. é possibile redirigere lo standard input su un file preparato, peró non so se la cosa puó essere configurata in NetBeans. sicuramente é possibile scrivere uno starter banale che usa popen e pclose per avviare il programma vero e proprio.
tomminno
06-07-2010, 16:34
é possibile redirigere lo standard input su un file preparato, peró non so se la cosa puó essere configurata in NetBeans. sicuramente é possibile scrivere uno starter banale che usa popen e pclose per avviare il programma vero e proprio.
Dimentichi che la richiesta è che lo faccia NetBeans senza scrivere codice.
E potenzialmente non è detto che i dati vengano dallo standard input.
Ho installato il Borland e adesso sto cercando di risolvere questo benedetto problema. Soltanto che non mi ricordo come si faceva ma credo di aver trovato una dritta sotto l'opzione run > evaluate\modify . Credo sia quello spero.
tomminno
07-07-2010, 08:50
Ho installato il Borland e adesso sto cercando di risolvere questo benedetto problema. Soltanto che non mi ricordo come si faceva ma credo di aver trovato una dritta sotto l'opzione run > evaluate\modify . Credo sia quello spero.
Quella voce ti consente di osservare/modificare il valore di una variabile durante il debug. Non fa quello che pensi te.
Quella voce ti consente di osservare/modificare il valore di una variabile durante il debug. Non fa quello che pensi te.
Ah. Niente :( . Mi sa che è un'utopia quella che sto cercando di trovare.
Potrebbe essere un'idea quella di scrivere i parametri per le variabili in un file txt che poi gestisco all'interno del programma, con la libreria fstream?
Lo so gente che sono cocciuto ma sono fatto così. Quando mi si pone un problema non vado avanti finchè non l'ho risolto.
tomminno
07-07-2010, 10:41
Potrebbe essere un'idea quella di scrivere i parametri per le variabili in un file txt che poi gestisco all'interno del programma, con la libreria fstream?
Lo so gente che sono cocciuto ma sono fatto così. Quando mi si pone un problema non vado avanti finchè non l'ho risolto.
E quando avrai finito con la fase di test che fai riscrivi il programma per non leggere i dati da file? E se vengono fuori bug dopo?
Secondo me dovresti orientarti verso gli unit test ad esempio con cppunit.
Scrivi il codice come deve essere e con i test fai tutte le prove che vuoi cambiando i valori come ritieni più opportuno.
Lo devo reinstallare però c'era un'opzione apposita come una Watch list soltanto che li inserivi i parametri da utilizzare... Altrimenti qualcosa di simile?? Mi sembra molto strano che non esista quello che intendo...Nei grandi progetti credo sia abbastanza antiproduttivo tutte le volte inizializzare le variabili per testare il programma.... Poi non lo so eh...
Io continuo a scrivertelo dalla pagina precedente... anche in Netbeans puoi "inserire i valori" (in realtà modificarli" dalla lista dei watches: basta far partire il debug (Debug -> Debug Project o clic sul tasto di Debug, vicino al Run) ed aver settato un breakpoint prima dell'utilizzo delle variabili in questione; poi te le modifichi allegramente dalla lista, e fai continuare l'esecuzione fino al termine.
Rimane una tecnica adatta soltanto al "testing" di piccolissimi pezzetti di software ;)
Io continuo a scrivertelo dalla pagina precedente... anche in Netbeans puoi "inserire i valori" (in realtà modificarli" dalla lista dei watches: basta far partire il debug (Debug -> Debug Project o clic sul tasto di Debug, vicino al Run) ed aver settato un breakpoint prima dell'utilizzo delle variabili in questione; poi te le modifichi allegramente dalla lista, e fai continuare l'esecuzione fino al termine.
Rimane una tecnica adatta soltanto al "testing" di piccolissimi pezzetti di software ;)
Scusami Albi89 se non ti ho preso in considerazione. Ho capito quello che intendi dire. A parte che non riesco a far funzionare il debug di Netbeans ma vabbè. Comunque quello che cercavo nello specifico era un settaggio dei parametri delle variabili che rimanesse fisso ad ogni riavvio del programma.
Adesso comunque la troverò una soluzione :) . Grazie mille !
E quando avrai finito con la fase di test che fai riscrivi il programma per non leggere i dati da file? E se vengono fuori bug dopo?
Secondo me dovresti orientarti verso gli unit test ad esempio con cppunit.
Scrivi il codice come deve essere e con i test fai tutte le prove che vuoi cambiando i valori come ritieni più opportuno.
Si in effetti forse hai ragione. Scusa Tomminno non ho capito: cosa sono questi unit test?
tomminno
07-07-2010, 16:57
Si in effetti forse hai ragione. Scusa Tomminno non ho capito: cosa sono questi unit test?
Credo che in circolazione ci siano qualche milione di pagine a riguardo.
Credo che in circolazione ci siano qualche milione di pagine a riguardo.
Ok ok darò un'occhiata per internet :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.