Newsgroup: it.comp.lang.c++
Titolo: sorgente corretto o incorretto ?

Salve a tutti ho iniziato a scrivere il codice piu' difficile che
esiste al mondo, questo piccolo sorgente non è il massimo ma visto che
programmo da poco cosa ne pensate del sorgente??
Distinti saluti
Roberto
/* Esercizio Per Incremento E Decremento Di Due Cicli Numerici */
#include <iostream.h>
int main () // Inizio Programma
{
    int cronoa; // Dichiarazione Variabile (a)
    int cronob; // Dichiarazione Variabile (b)
    int stop; // Dichiarazione Variabile Per Blocco Programma
    for (cronoa=0; cronoa<=10000; cronoa++) // Primo Ciclo Incremento
    cout  << " \n" << " " << " " << " " << " " << cronoa; // Stampa Su
Schermo
    for (cronob=10000; cronob>=0; cronob--) // Secondo Ciclo Decremento
    cout  << " \n" << " " << " " << " " << " " << cronob; // Stampa Su
Schermo
    cout << " scritto e compilato da roberto ricioppo 2005\n"; //
Stampa Su Schermo
    cin >> stop; // Blocco Programma
    return 0; // Fine Programma
 
}

 
Per il resto e' tutto giusto.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 ha scritto nel messaggio 
news:433fdbd8$0$15710$4faf...@reader4.news.tin.it...

piccolo appunto di stile.
1)
In C++ non sei obbligato a definire le variabili prima delle strutture di 
controllo, quindi definiscile al momento di usarle.
Nel caso del ciclo, se l'indice non ti serve all'esterno del ciclo, è meglio 
usare:
for(int i = 0; i < 10000; ++i)
    cout << "    " << i << endl;
2)
non usare numeri, ma costanti o macro es.
const int maxRepeat = 10000; // visibilità dipendente dal punto di 
dichiarazione
oppure
#define MAX_REPEAT 10000 // visibilità globale dalla posizione fino alla 
fine del file
che, oltre ad evitarti di modificare il numero in cento posti, sei sicuro 
che il numero sia riferito alla stessa cosa ed in più aggiunge informazione 
sul suo significato.
Quindi il ciclo diventa:
for(int i = 0; i < MAX_REPEAT; ++i)
e
for(int i = MAX_REPEAT; i > 0; --i)

 
Scusami ma quest'ultima non l'ho capita, ma non viene detto praticamente 
ovunque che è sempre preferibile non utilizzare le macro quando non c'è 
bisogno?
Inoltre se dobbiamo trascurare la leggibilità (cosa che in questo 
esempio sembra non essere necessaria) alla fine al compilatore arriva la 
stessa cosa....
Noob

 stessa cosa....
const int MAX_REPEAT=10000;
...
...
for(int i=0;i<MAX_REPEAT;i++)
    ...
Il codice compilato diventa molto probabilmente uguale a quello con le 
macro. In certe condizioni non e' nemmeno da escludere che il 
compilatore rimuova il dato e lo sostituisca con il valore dove e' 
richiesto, un po come farebbe un preprocessore con una #define.



Con un compilatore decente è vero al 99.99%

 cost, e' questo che intendi?
Beh, io preferisco le const.
riko

 eventualmente visionarlo/modificarlo.
:)) [ ok, è C...]
/*
 * Program to compute an approximation of pi
 * by Brian Westley, 1988
 * (requires pcc macro concatenation; try gcc -traditional-cpp)
 */
#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_
}
riko

 Per il resto e' tutto giusto.
#include <iostream.h>
non lo e'!
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Già questo è vero, ma circa un anno e mezzo fa proprio in questo NG 
lessi una cosa interessante al riguardo:
"E' sempre meglio fidarsi del compilatore che del preprocessore, in 
quanto il preprocessore tende ad essere sempre più semplice, mentre il 
compilatore tende a essere sempre più intelligente"
E non aveva tutti i torti
Noob
P.s. probabilmente la frase era leggermente diversa ma il significato 
era quello

 devono eventualmente visionarlo/modificarlo.
Questo non l'ho mai messo in dubbio. Il fatto è che la maggior parte dei 
casi i cicli hanno significati ben precisi con condizioni di uscita ben 
precise e in quel caso si che servono le macro/const. Nei restanti casi 
i cicli sono semplici (come quello in esame) ed andare a definire 
un'altra macro/const a mio parere è un po inutile e a volte anche nocivo.
Noob

 non lo e'!
Esatto, se ci sono gli standard seguiamoli:
#include <iostream>
Saluti
-- 
[ cikko <cikkox (on) yahoo . it>    ]
[ 
http://cikkox.altervista.org
      ]
[ GNU/Linux Registered User #365929 ]
[ GnuPG/OpenPGP key available       ]

Salve, grazie mille per le vostre risposte.
Ho cercato di far eseguire al pc un ciclo numerico come per esempio un
sali e scendi su per una strada di montagna diciamo che la mia
curiosità era di incrementare un flusso numerico e poi decrementarlo
quando arriva al valore max della variabile che è in questo caso
10000-1=9999. Gli spazi che ho inserito mi servivano per far apparire i
numeri a 4 spazi da sx a dx.
P.s.
Sto programmando da pochissimo e non conosco le parole riservate che mi
avete descritto, la mia conoscenza sul C++ è al 30%. per compilare uso
devcpp.
Grazie
distinti saluti

 
E' colpa della scuola. Nei miei programmi non ho mai usato iostream.h, 
pero' quando lo vedi 3-4 ore al giorno e ti mandano dietro alla lavagna 
;-) se provi a correggerlo... dopo un po' ti abitui e non lo vedi piu', 
insieme a tutte le altre cazzate :-(


Salve, se inserisco delle costanti al posto delle variabili non avro'
nessun flusso numerico perchè il valore resta identico alla
dichiarazione.
Voi scrivete del codice senza usare // per chi vuole riprendere il
lavoro in futuro come farete se avete per le mani un sorgente di 10000
caratteri in caso di errori?
mi avete detto che header (#include <iostream.h> non si usa mai ma
questa parte è esatta in C++ #include <iostream>
using namespace sdt;?
Distinti saluti

Salve, questo codice è esatto ??
/* Ciclo Controllato Da Due For */
#include <iostream>
using namespace std;
int main () // Inizio Programma
{
    int b; // Blocco Programma
    for (int i=0; i<=20000; i++) // Ciclo e Dichiarazione Variabile i
    cout  << "\n" << i << " " << "Incremento i di 1 unita' i=i+1
diventa i++"; // Stampa Su Schermo Il Valore i
    for (int j=20000; j>=0; j--) // Ciclo e Dichiarazione Variabile j
    cout  << "\n" << j << " " << "Decremento j di 1 unita' j=j-1
diventa j--"; // Stampa Su Schermo Il Valore j
    cout << "\n\n\n" << "Autore Roberto Ricioppo 04/10/2005\n";
    cin >> b; // Blocco Programma
 
    return 0; // Fine Programma 
 
}
Distinti saluti

 #include <iostream>
Non basta. Si vuol anche
    #include <ostream>
    using namespace std ;
O meglio, un std:: davanti tutti i cout.
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34