mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Millimetri e pollici

Devo convertire una misura da mm a pollici (e fin qui nessun problema); il 
problema sorge quando devo visualizzare i pollici in frazione (ad esempio 
1,5" = 1" 1/2).
In pratica vorrei creare una funzione che passando il numero in pollici con 
la virgola, mi restituisca il numero in frazione (string getPollici(double 
valore);)
Qualcuno puņ aiutarmi a calcolare la frazione partendo dal numero con la 
virgola?
Grazie, Massimo 

 virgola?
Trova la frazione della parte decimale usando il metodo di bisezione. 
Questo ti permette di scegliere in modo consistente una determinata 
precisione.
Come intervallo di partenza usa [0,1].
Naturalmente dovrai eseguire i calcoli con numeri razionali.
Kiuhnm

"neverland" <sorry.f...@antispam.invalid> ha scritto nel messaggio 
news:44630c4a$0$29093$5fc...@news.tiscali.it...

Ti ringrazio, se non ci sono altri modi proverņ ad utilizzare il sistema che 
mi hai detto.

Newsgroup: it.comp.lang.c++
Titolo: Borland 3 + Borland 5.5

Ho il TurboC 3.0 e sto per scaricare il compilatore gratuito della Borland,
il 5.5: trattandosi quest'ultimo di un compilatore tramite linea di comando,
posso sostituire gli eseguibili compilatori della versione 3 con quelli
della versione 5.5 per ottenere un mix tra un ambiente di sviluppo (il Turbo
C 3) e la versione 5.5?
Vi prego, non chiamatemi imbecille, sono alle primissime armi!!


wrote:


Io ho provato con il 5.02 e non funziona .
Ma hai sostituito solo il compilatore o anche il run time e gli
headers?
Paolo
Newsgroup: it.comp.lang.c++
Titolo: Problema con Op. new

Premetto che non ho avuto molto tempo per affrontare il problema e quindi
chiedo aiuto a chi ci si è per caso gia imbattuto (se al posto di new uso
la alloc il codice funziona senza problemi)
Le due funzioni qui sotto permettono di gestire l'allocazione/deallocazione
di una certa porzione di memoria.
L'allocazione funziona perfettamente, ma quando eseguo la dellocazione il
programma va in Assertion !!!! sulla linea indicata.
Chi mi sa indicare dove è l'errore !!!
unsigned char* m_PixelsSel;	// variabile privata di CCustomFont
// Allocate memory for the pixel selected
//
BOOL CCustomFont::Allocate_m_PixelsSel(int numPixel, int numByteForLine)
{
	m_dimAllocMem = numPixel*numByteForLine;
	m_PixelsSel = new unsigned char (m_dimAllocMem);
	if(m_PixelsSel == NULL)
		m_bfAllocPixelsSel = FALSE;		
	else
		m_bfAllocPixelsSel = TRUE;
	return m_bfAllocPixelsSel;
}
// Deallocate area for last copy and paste operation
//
void CCustomFont::Delete_m_PixelsSelArea()
{
	if(m_bfAllocPixelsSel)
	{
		delete [m_dimAllocMem]m_PixelsSel;	// <- Assertion
		m_bfAllocPixelsSel = FALSE;
		m_dimAllocMem = 0;
	}
}
--
Posted from [195.223.129.35]
via Mailgate.ORG Server - 
http://www.mailgate.org

 m_PixelsSel = new unsigned char (m_dimAllocMem);
Ho gia` risposto a questa tua identica domanda pochi giorni
fa, e ti ripeto: avendo tu usato qui le parentesi tonde e non
quadre, stai allocando UN unsigned char, inizializzato al
valore (8 bit bassi di) m_dimAllocMem, NON un array di
m_dimAllocMem unsigned char non inizializzati.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Conversione BSTR-CString e viceversa

Salve a tutti.
Sto scrivendo una dll in VC++ da poter utilizzare in VB (ok ok non
odiatemi... ho iniziato da poco a programmare) e ho la necessità di passare
al VC++ una stringa da VB, elaborarla e poi ritornarla a VB.
Nella funzione la stringa deve subire dei Replace che so fare solo con la
CString ( e ci mancherebbe! ).
Non essendo pratico di VC++ ( di C e C++ in generale, ma sto imparanfo pian
pianino) pensavo di passare la stringa da VB come BSTR di VC++, convertirla
in una CString, fare i Replace, riconvertirla in BSTR e passarla a VB, ma
ovviamente non mi è andata bene.
Fino ai Replace va tutto bene, i guai arrivano quando converto la CString in
BSTR in questo modo:
BSTR b = s.AllocSysString();
Infatti se ritorno b ottengo solo il primo carattere della stringa ( questo
perchè è il puntatore al primo carattere? )
Come posso fare?
Se qualcuno di voi mi potesse dare una mano giuro che inizierò a studiare
seriamente il C++ :))
Saluti
Roberto Alicata

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Scusate ero preso dal problema e non avevo letto a fondo il Manifesto (ora
l'ho fatto :D)
Grazie mille
Saluti
Roberto Alicata
"Nicola Musatti" <Nicola....@ObjectWay.it> ha scritto nel messaggio
news:3D197A7...@ObjectWay.it...


Newsgroup: it.comp.lang.c++
Titolo: Compilatore c/c++

Vi sarei grato se potreste indicarmi dove posso
trovare un compilatore c/c++ per la programmazione in
Windows 95, per esempio Visual C++ di Microsoft.
Grazie in anticipo :-)
--
  #-------------------------#-----------------------------#
  |      Cereda Massimo     |           IHGGER #7         |
  |-------------------------|-----------------------------|
  |   
max_...@freemail.it
  |                             |
  |   
max...@uninetcom.it
  |  Non lasciamo morire il NG  |
  |-------------------------|     it.comp.giochi.pbem     |
  |      #ICQ: 13346155     |                             |
  #-------------------------#-----------------------------#
           Tennis Pro Tournament of Alex Paci
 
http://space.tin.it/io/rpaci
               New Players are Welcome!

Windows 95, per esempio Visual C++ di Microsoft.
Lo trovi in tutti i negozi di informatica piu` forniti, come
ad esempio la catena Mondadori Informatica.
Se quello che hai in mente e` invece qualcosa di
gratuito, prova l'ambiente CygWin32, scaricabile,
ad esempio, da 
www.cygnus.com
.
Alex
Newsgroup: it.comp.lang.c++
Titolo: semplici applicazioni

ciao a tutti!
e da un po che programmo in c++ e vorrei capire come si fanno applicazioni
utilizzando la parte visual del c++ anke la piu semplice!
qualcuno mi puo dire come bisogna settare il compilatore (uso dev c++)per
questo tipo di applicazioni e magari fornire qualke semplice listato giusto
a titolo di esempio!
Antonio!

salve a tutti!
è da un po che programmo in c++ e nn ho mai usato la parte visual del c++!
potreste darmi qualke dritta anke magari mandandomi un esempio di una
semplice applicazione!


wrote:

Non esiste una parte visual del c++. lo std ISO-C++ non fa riferimento
ad alcuna libreria grafica. Devi utilizzare librerie fornite da terze
parti oppure le API Win32 se programmi in windows.
ti dò una serie di riferimenti:
-  
http://msdn.microsoft.com
 trovi tutto sulle API di windows
- puoi usare le MFC di Microsoft
- La VCL di Borland C++ Builder
- qualsiasi altra libreria grafica (es. QT, wxWindow, GTK)
ciao
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)

Newsgroup: it.comp.lang.c++
Titolo: problema - ereditaz. + override

ho una classe:
class Window
{
// ...
public:
    int OnDestroy();
    int ProcessMessage(int msg, long l, long w);
};
// i corpi delle funzioni sono definiti nel relativo file c++
e questa classe (nel file main.cpp):
class MyWindow1 : public Window
{
public:
    int OnDestroy()
    {
        // codice - (qui c'è il problema)
    }
};
in un certo punto del codice ottengo il puntatore alla classe, e faccio un reinterpret_cast:
  long p = ...;
  Window *pWnd = reinterpret_cast<Window *> (p);
  pWnd->ProcessMessage(_msg, wp, lp);
la funzione membro processMessage, a seconda del parametro msg, con uno switch deve chiamare le funzioni degli eventi. per ora ho
dichiarato solo OnDestroy.
il problema è che quando ProcessMessage chiama OnDestroy viene eseguito il codice nell'implementazione originale, e non nel mio
override.
come mai?
è possibile che dipenda da dove ho preso il puntatore della classe?
il puntatoren della classe lo memorizzo in un long durante una funzione membro di Window(::Create) (this)
ma io chiamo questo metodo create da un'istanza di MyWindow1, e non di Window.
perchè non funziona l'override?
grazie
ciao
xaero

ops!
scusate, il problema l'ho risolto.
era una questione di virtual
ciao
xaero

   pWnd->ProcessMessage(_msg, wp, lp);
Se p è un puntatore ad una classe derivata da Window allora non serve il
cast in quanto la conversione "puntatore a derivata -> puntatore a base"
è automatica.
EMG
Newsgroup: it.comp.lang.c++
Titolo: chiedo un consiglio

Ciao a tutti,
vorrei chiedervi un consiglio:ho da poco iniziato a studiare c++ e come
libro di testo uso c++ guida completa dell'Apogeo,come ambiente di sviluppo
uso il dev c++,qualcuno mi puo' consigliare qualche libro per applicazioni
grafiche?se non vi saro' tanto chiaro abbiate clememza :-( non sono un
esperto,intendo programmi da far girare sotto windows perche' questo libro
tratta piu' per dos,grazie a tutti e buon proseguimento.

 wrote

Il libro non tratta affatto programmi per dos! Il libro tratta
programmazione in C++ standard (mi auguro). Poi che ti si apra una finestra
console e' un altro discorso.
Il libro che leggi non lo conosco, ad ogni modo e' sicuramente come ti dico.
Per la programmazione per windows devi comprarti un libro apposito ed
imparare, a scelta, le API (win32 SDK) o le MFC o la programmazione .NET (e
windows forms).
Il mio consiglio e' quello di impararti bene prima il C++, poi le varie
API.... Se proprio non resisti allora prova a partire dalle API di windows,
visto che le MFC sono basate su concetti "avanzati" della OO. Per tutto cio'
che riguarda la programmazione per win32 devi rivolgerti a
it.comp.programmare.win32, su questo NG saresti OT altrimenti.
Tommy

 ha scritto nel messaggio
news:ca80ff$siu$1...@hercules.btinternet.com...

Per prima cosa vorrei ringraziarti,e seguiro' il tuo consiglio,ti vorrei
chiedere una sola cosa pero':potresti indicarmi un link che almeno mi
introduca a capire il significato sulle api su windows le mfc cosi da capire
le differenze?tanto per avvicinarmi a questo argomento.

Newsgroup: it.comp.lang.c++
Titolo: DLL

Mi spieghereste il procedimento per creare una dll che contenga tutte le
icone e i bmp della mia appliazione, per poi peterla richiamare da VB6 ?
Grazie a tutti.

Qui sei OT. Prova a chiedere su it.comp.programmare.win32 .
Ciao,
Nicola

 ha scritto nel messaggio
news:3A65D84D...@divalsim.it...


di una schiera di eletti. Non penso che sia questo lo spirito di un NG.
eletti ??? ti sei fumato l'impossibile ?
Ti ha semplicemente detto che in questo newsgroup difficilmente
qualcuno di avrebbe dato retta (visto che sei OT). Ti ha anche
consigliato un newsgoup probabilmente piu' adatto.
Avresti preferito essere ignorato completamente ?
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 Grazie comunque per avermi risposto.
Prego.
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Aiuto, aiuto, aiuto

Mi potreste spiegare come risolvere questo esercizio? Cosa dovrei
considerare? In che modo potrei fare?
Grazie a tutti
Scrivere un programma per effettuare la conversione di un numero dal formato
numerico (ad esempio 1845) al formato letterale (ad esempio
milleottocentoquarantacinque). Considerate che i numeri da 11 a 19 hanno
regole diverse dagli altri per la conversione. Per evitare troppi casi
particolari supponete che i numeri 31, 38, 41, 48, etc. si scrivano
trentauno, trentaotto, quarantauno, quarantotto, etc.
(Suggerimento: utilizzate array di stringhe per indicizzare le stringhe
corrispondenti ai numeri da zero a diciannove e per le stringhe
corrispondenti ai prefissi venti, trenta, .)


Tabella da 0 a 99
Oppure tabella fino a 19.
Poi da 20 a 99 composizione di decina+unità ricordando che in caso di 
vocali adiacenti rimane solo la seconda.
Dopo 100 sono tutti regolari (da gestire il singolare/plurale per 
milione/miliardo).
Ma forse è una questione più di lingua italiana che di c++.
Newsgroup: it.comp.lang.c++
Titolo: Impulsi in input dal microfono.

Ciao, sono uno studente di informatica e vorrei sapere come fare a prendere
in input per un programma Pascal o C degli impulsi provenienti dal microfono
del pc.
Quello che mi interessa maggiormente e riuscire a carpire la frequenza di un
insieme di impulsi, o meglio voglio ad esempio che ad ogni impulso mi scriva
un # sullo schermo, č possibile fare tutto ciň?
Per maggiori informazioni potete scrivermi 
ric...@freemail.it
 io posso
mandarvi un esempio registrato degli impulsi che devo recepire e l'immagine
dell'onda di un impulso.
Spero davvero che possiate aiutarmi.
Grazie tante anticipatamente.

Prova a cercare su google il codice di qualche equalizzatore grafico in
c.....

beh dipende molto dal s.o.  linux ci sara' un device da qualche
parte, quindi non dovrebbe essere complicato... anche sotto
win dovresti poter essere indipendente dall'hardware, se invece
sei sotto dos schietto allora  devi interfacciarti tu con l'hw...
in c potresti trovare il 'cthugha' che aveva src pubblici
--
Dreadnaut
(Life would be easier if I had the source code)

Windos, si dovrei farlo con windos, come posso fare?
"Dreadnaut" <Drea...@liberoDALLASPAM.it> ha scritto nel messaggio
news:lded8.3921$fa5.1...@twister2.libero.it...


Newsgroup: it.comp.lang.c++
Titolo: C++ Builder. Help !!!

application this button doesn't shows.
Have you inserted the button from the IDE o run-time? If run-time, you have
to set the Parent property of the button to the owner form:
button->Parent = Form->Handle;
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org




Newsgroup: it.comp.lang.c++
Titolo: C++4 Embedded

Qualcuno ha già lavorato con il c++ 4 embedded
Non riesco a far girare gli esempi a corredo del programma sull'emulatore.
Prima mi appare il box che mi avverte che l'applicazione e per un tipo e
l'emulatore è settato per un altro.
Poi tenta di connettersi ma senza risultato.
Sicuramente sbaglio io ma dove??
Premetto che io programmo in altro linguaggio è sto provando c++ perchè è
l'unico che ho trovato che mi permette di lavorare con i palmari.
GRAZIE anticipatamente

 ha scritto nel messaggio
news:3gnHa.185323$g92.3...@news2.tin.it...

Che palmari? Per pocket PC puoi usare anche VB e (credo) anche C#
nell'ultima edizione di Visual Studio, usando la piattaforma .NET. Se vuoi
scrivere
Per PalmOS, ce ne sono a bizzeffe, da Delphi a C++

 ha scritto nel messaggio
news:BTzHa.188042$g92.3...@news2.tin.it...


 Grazie anticipatamente
Newsgroup: it.comp.lang.c++
Titolo: Problema con Visual 6.0





CComboBox prova;

                

prova.AddString("pippo");


 


In fase di compilazione tutto fila liscio,


ma in fase di debug la
  

linea di codice sottolineata produce il seguente errore:


 


Debug 
Assertion Failed!


Program: 
..\ .....


File: 
afxwin2.inl


Line:735



ma in fase di debug la  linea di codice sottolineata produce il seguente
errore:
...
1) Hai postato il messaggio in HTML, sarebbe meglio non usare questo formano
nelle news.
2) Inoltre questo tipo di domanda andrebbe fatto su
it.comp.programmare.win32
L'oggetto CComboBox è un controllo che per poter essere usato deve prima
essere creato all'interno di una finestra. In altre parole manca, prima di
AddString, una chiamata al metodo Create (...).
Newsgroup: it.comp.lang.c++
Titolo: Come si Usa Soft Ice

Salve,non so se e' il ng giusto,
 mi sto avvicinando alla programmazione, molti mi hanno consigliato di usare
un programma chiamato Soft Ice per il debugger dei programmini.
Ho provato a documentarmi in merito, ma non ho trovato niente di
interessante.
Mi potreste indicare un sito che spieghi (possibilmente  in italiano) come
si usa softice (gli unici siti che ho trovato sono siti pirata che ti
piegano come cracckare questo e quel programma, ma esendo scritto in slang
inglese, e non interessandomi tanto il cracheraggio, ho lasciato perdere).
PS va bene per fare il debug di programmi scritti in C/C++ o anche con altri
linguaggi (anche piu' semplici)?
Grazie

...


Mi hanno regalato una versione per Win95; ho provato a farlo partire, ma non
va :-(
Quando chiamo il Loader mi dice che SoftIce non e' in esecuzione.
Eppure nel file autoexec.bat lo faccio partire
Newsgroup: it.comp.lang.c++
Titolo: Operatore [] per object *

Salve,
ho una classe in cui faccio l'override dell'operatore [].
Quello che non mi piace e' che per ottenere cio' che voglio
quando uso puntatori ad oggetti (es. miaclasse *obj;) mi tocca
usare ( *obj )[]... forse chiedo troppo, ma non c'e' un modo per
poter scrivere obj[] in ogni caso ed ottenere l'effetto voluto?
Bye
   Wiz
-- 
Ma... io trasecolo! Di piu', tramillennio!

 poter scrivere obj[] in ogni caso ed ottenere l'effetto voluto?
Hai provato a definire un operatore che ha come argomento un puntatore
all'oggetto???
--
| /
| \Byte - Andrea Briganti
E-Mail 
kbyt...@freemail.it
ICQ 40872731

 poter scrivere obj[] in ogni caso ed ottenere l'effetto voluto?
Non se "obj" e` un vero puntatore; non puoi ridefinire il
significato degli operatori su dati built-in, come i puntatori.
Puoi risolvere facendo di "obj" uno SMART pointer, cioe`
una classe che incapsula un puntatore e si comporta "grosso
modo" con un puntatore fatta eccezione per certe cose che
vuoi ridefinire.
Un esempio banale potrebbe essere:
template<class T>
class STpointer {
    T* ptr;
public:
    STpointer(T* ptr=0): ptr(ptr) {}
    T*& operator=(T*p) { return ptr=p; }
    operator T*() { return ptr; }
    operator const T*() const { return ptr; }
    T& operator[](int i) { return (*ptr)[i]; }
    const T& operator[](int i) const { return (*ptr)[i]; }
};
Questa riproduce praticamente in modo integrale il
comportamento di un puntatore nudo, senza valore
aggiunto (normalmente gli smart pointer definiscono
vari "valori aggiunti", tipo auto-rilascio di risorse),
eccetto che ti permette di usare operator[] come desideri.
Naturalmente, questo ti ruba il vero significato built-in
di operator[] applicato a un puntatore obj, per cui, da
che C e` C, obj[i] e` sinonimo di *(obj+i).
Personalmente, disapprovo queste soluzioni che si
riducono esclusivamente a puro zucchero sintattico.
Esse non fanno altro, a mio avviso, che rendere il
programma di piu` difficile comprensione e manutenzione
per chi non conosca le idiosincrasie sintattiche preferite
dell'autore.
E` effettivamente scomodo applicare gli operator definiti
dall'utente ad un puntatore, ma secondo me la migliore
soluzione e` quella di definire funzioni-membro dai nomi
piu` leggibili, che siano sinonime degli operator, tipo...:
    T& item(int i) { return (*this)[i]; }
    template <class X>
    void add(const X&x) { return (*this)+x; }
eccetera.  Questo permette di chiamare obj->item(i) al
posto di (*obj)[i], non ruba alcuna funzionalita` normale
del linguaggio, e offre vantaggi collaterali (facilita` nel
prendere gli indirizzi di queste come pointer-to-member).
Alex
Newsgroup: it.comp.lang.c++
Titolo: memset delle SDL

negli esempi di codice delle biblioteche SDL ( Simple DirectMedia Layer)
ho trovato la funzione memset(unsigned char..., ,) e con il comando man
memset ho avuto come risposta che la funzione si trovava in string.h, ora
senza aggiungere agli headers nulla in C il programma compila senza
problemi, mentre in C++ mi dice che sto implicitamente dichiarando la
funzione.
Qualcuno sa dirmi dove compilando in C il compilatore riesce
a leggere la dichiarazione della funzione memset ?
ovviamente presumo che la risposta non sia string.h poiche il programma in
C compila e in C++ no, neanche aggiungendo string.h.

Pierpaolo Giacomin wrote:

Prova ad eseguire :
memset(memset(array,0,sizeof(array)),0,sizeof(array)) su una macchina con
indirizzi a 64 bit senza includere l'header file...........e vedrai che lui
non la legge da nessuna parte.....
Ivan Molella icq# 97960484
__LINUX__ the choice of the __GNU__ generation
icq# 97960484


In C (ma non nel nuovo Standard, mi sembra) una funzione può
essere usata anche senza avere la sua dichiarazione
(con tutti gli svantaggi che porta).
Manlio Perillo

C compila e in C++ no, neanche aggiungendo string.h.
memset e' definita in <string.h> ma anche altri header
potrebbero definirla esplicitamente o tramite #include
nidificati. Quindi il fatto che si riesca a compilare
un programma che usa memset anche senza includere
<string.h> non e' necessariamente un bug; nota che pero'
scrivere codice che fa affidamento su include di sistema
nidificati rende il programma non portabile (come sono
nidificati gli include di sistema e' una scelta di chi
scrive il compilatore).
Il C inoltre permette di chiamare funzioni senza che ne
sia stato fornito il prototype. Nota che comunque e' una
pratica decisamente sconsigliabile e molti compilatori
generano un warning al riguardo.
Il fatto che in C++ tu non riesca a chiamare memset nemmeno
con l'inclusione di <string.h> mi insospettisce molto...
la cosa dovrebbe funzionare senza problemi.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 la cosa dovrebbe funzionare senza problemi.
forse effettivamente non mi sono spiegato benessimo, poiche in C++ la
funzione memset contenuta in string riesco a chiamarla ma non con il
risultato sperato.
se qualcuno ha dei consigli specifici alle SDL e non vuole disturbare l NG
potrebbe postarmeli direttamente a 
pgia...@invernomuto.resc.insa-lyon.fr
grazie mille

Newsgroup: it.comp.lang.c++
Titolo: Nuovo nodo in albero binario

Salve ragazzi, avrei un problema, devo creare un albero binario di ricerca,
ho una struttura dati di 3 campi, un puntatore a sinistra, uno a destra e
una variabile di tipo intero, devo riempire questa struttura con dei numeri
fino a quando non viene inserito 0, poi visualizzare l'albero binario
appena creato con la visita pre-ordine, poi successivamente devo inserire
un nuovo nodo e devo collocarlo al posto giusto dell'albero.
Ho buttato giù un pò di codice, sono riuscito a fare la creazione
dell'albero anche la visita pre-ordine è corretta, ma non so proprio da
dove cominciare per inserire un nuovo nodo al posto giusto, spero che
qualcuno vorrà aiutarmi ;-)
#include <iostream>
using namespace std;
struct nodo
{
        int dato;
        struct nodo *left;
        struct nodo *right;
};
typedef struct nodo NODO;
void visita_pre(NODO* r)
{
        if(r)
        {
        visita_pre(r->left);
        cout << r->dato << " ";
        visita_pre(r->right);
        }
}
int main ()
{
    int x;
    NODO* aux=NULL;
    NODO* scan=NULL;
    NODO* r=NULL;
    cout<<"Inserire dato" << " ";
    cin>>x;
    while (x)
    {
        aux=new(NODO);
                aux->dato=x;
                scan=r;
                while(scan)
                        if(aux->dato<scan->dato)
                                if(!scan->left)
                                {
                                        scan->left=aux;
                                        scan=NULL;
                                }
                                else
                                        scan=scan->left;
                        else
                                if(!scan->right)
                                {
                                        scan->right=aux;
                                        scan=NULL;
                                }
                                else
                                        scan=scan->right;
                if(!r)
                        r=aux;
    cout<<"Inserire dato" << " ";
    cin>>x;
    }
        visita_pre(r);
        cout << endl;
return 0;
}
-- 
Imperatore
Icq #84624356

 qualcuno vorrà aiutarmi ;-)
Magari mi e' sfuggito qualcosa, ma quando l'utente inserisce i numeri, 
quello che tu fai e' proprio creare nodi, ed inserirli nel posto giusto 
dell'albero! Quindi, dov'e' il problema? :P
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */
Newsgroup: it.comp.lang.c++
Titolo: FAQ 4 e 5 -- LINEA GUIDA

"Sto cercando documentazione varia  sul C++ (tutorial generico, o
limitato anche alla sola STL o agli stream), dove posso trovarne?"
Indicate link vari e una breve descrizione riportando la natura del
materiale (tutorial, un articolo disponibile in rete...) e la lingua in 
cui e` stato realizzato.
Nella stesura definitiva della faq si puo` pensare di suddividere la 
domanda in piu` parti riguardanti tutorial piu` o meno specifici a 
seconda del materiale che riusciremo a catalogare.
Che facciamo con la FAQ di R. Gerola, la indichiamo come ulteriore
risorsa oppure vediamo se l'autore e` disponibile a creare una
unica faq?
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

 unica faq?
Svincoliamoci. La indicheremo come altra risorsa. Cerchiamo di non
legare lo sviluppo di questa FAQ a troppe cose esterne altrimenti non la
finiamo più.
EMG
Newsgroup: it.comp.lang.c++
Titolo: Puntatori e Struc

Salve,
premetto che sono agli inizi. Ho una struttura così definita:
Session{
  unsigned char backup_value;
  unsigned char current_value;
};
Dovrei salvare in "previous" il valore "current" e recuperarlo in un 
secondo momento.
Situazione 1 **** :
session->current_value = 12;
session->previous_value = session->current_value;
se stampo il valore di previous_value è 12. OK. Se cambio il valore di 
current_value in questo modo:
session->current_value = 5;
e provo a stampare il valore di previous_value ora è 5!
Mi sono messo googlare, trovato qualcos ho modificato in questo modo
(*session).value  = session->current_value;
Sembra funzionare. Avrei quindi 2 domande da niubbo:
1) cosa succede esattamente con l'istruzione funzionante?
2) esiste un modo più "elegante"? Nella stesura del codice sono stato 
attento ad utilizzare le funzioni di casting del C++ anzichè quelle 
brute del C.
Un saluto e grazie,

miii, che casino con i nomi delle variabili, ci riprovo:
Salve,
premetto che sono agli inizi (s'è capito). Ho una struttura così definita:
Session{
  unsigned char previous;
  unsigned char current;
};
Dovrei salvare in "previous" il valore "current" e recuperarlo in un 
secondo momento.
Situazione 1 **** :
session->current= 12;
session->previous = session->current;
se stampo il valore di previous è 12. OK. Se cambio il valore di current 
in questo modo:
session->current = 5;
e provo a stampare il valore di previous ora è 5!
Mi sono messo googlare, trovato qualcos ho modificato in questo modo
(*session).previous  = session->current;
Sembra funzionare. Avrei quindi 2 domande da niubbo:
1) cosa succede esattamente con l'istruzione funzionante?
2) esiste un modo più "elegante"? Nella stesura del codice sono stato 
attento ad utilizzare le funzioni di casting del C++ anzichè quelle 
brute del C.
Un saluto e ri-grazie,

 Sembra funzionare.
Se p è un puntatore, l'espressione (*p).m è equivalente a p->m. Non c'è
alcuna differenza.
Max

 alcuna differenza.
Vediamo di metterci un pò di codice:
//////////////// nel .h :
SessionStruct {
  unsigned char current;
  unsigned char previous;
};
//////////////// nel pluto.h :
SessionStruct* m_session;
//////////////// nella funzione di inizializzazione di pluto.cc :
m_session = new SessionStruct;
//////////// nella funzione di un terzo modulo.cc
SessionStruct* session = m_pluto->GetSession();
se faccio così non va ed il valore di previous cambia ogni volta che lo 
cambio in current:
session->previous = session->current;
mentre così funziona, previous mantiene il valore assegnato anche 
modificando current:
(*session).previous = session->current;
Un saluto,

> SessionStruct* session = m_pluto->GetSession();
GetSession() restituisce un puntatore a m_session

 (*session).previous = session->current;
Il problema non è qui. Prendi il tuo codice, fanne una copia, togli 
tutto quello che non è rilevante ai fini del problema, metti tutto il 
codice in un unico file, controlla che compili, controlla che abbia il 
comportamento anomalo, posta il file sul newsgroup.
E.
Newsgroup: it.comp.lang.c++
Titolo: Neofita non capisce cosa banale.....

Salve lo so che è una cosa banale, mi sono appena affacciato su questo
linguaggio di programmazione ,ma non riesco a capire cosa fanno questi
"cose" nella
funzioni "printf" e "scanf"
Esempio:
1) scanf(" %d ", &a)
       a cosa serve il % e & ?
2) printf(" il numero %i ",a);
       a cosa serve il percentuale ?
Grazie a tutti
Ciao

Ciao,
1) scanf(" %d ", &a)
       a cosa serve il % e & ?
Il %  indica al compilatore di non stampare cio' che segue cosi com'e ma di
sostituirlo con il valore contenuto nella variabile che segue che, essendo
preceduta da &, sara' un puntatore.
2) printf(" il numero %i ",a);
       a cosa serve il percentuale ?
Idem, solo che ora la variabile non e' preceduta dal & perche' non e' un
puntatore
http://welcome.to/C++Warriors
 interamente dedicato al C++
Grazie a tutti
Ciao

Newsgroup: it.comp.lang.c++
Titolo: Gestione del monitor

Salve!
come posso gestire l'output sul monitor, cioč come posso far comparire un
messaggio sempre in uno stesso punto del monitor?
grazie

 wrote in message
10kkpj2$mln$1...@fe2.cs.interbusiness.it...

Se Parli di programmazione in Dos puoi provare ad usare
#include <conio.h>
gotoxy(x,y);
Dove:
   X,Y sono le coordinate (riga,colonna)
   e GotoXY č definita come:
   void GotoXY(int x, inty);
--
Sgaragnao!!
-----------------------------
Gabriele "Happosai"  Visconti -- 
http://visconti.interfree.it
E-Mail: 
w.vis...@tiscalinet.it
Fan sfegatato della Divina Rumiko Takahashi
             (Non siam degni, non siam degni  ^__^;;)
Sostenitore di Mitsuru Adachi e delle Clamp
Aspirante membro delle BT
              (  a proposito ma come si diventa membri? :-/  )
Esaltatore Ufficiale del GEA - Gruppo Esaltazione Akane
 
http://gulliver.unian.it/genma/
---------------------------------
|-| /-\ |* |* O S /-\ |

...


 >come posso gestire l'output sul monitor, cioè come posso far comparire un

Newsgroup: it.comp.lang.c++
Titolo: Classe definita in 2 file .hpp

Per ottimizzare le compilazioni, è possibile eliminare le dipendenze che ci
sono nelle definizioni di classi in cui le parti della classe modificate
siano private?
Mi spiego meglio:
se ho una classe del genere:
// file: PIPPO.HPP
class Pippo {
 public:
    int a;
 private:
    class cl_privata;
}
posso includere un altro file definito in questo modo:
// file: PIPPO_SEMPLICE.HPP
class Pippo {
 public:
    int a;
}
dato che facendo così evito la compilazione dell'header che definisce  la
classe privata "cl_privata"?
Ringrazio chi mi darà delucidazioni.
Ciao
P.S. a un primo tentativo mi sembra che quello che ho esposto non possa
funzionare in quanto la dimensione della classe nelle varie parti del
programma risulta alterata... voi cosa dite?
--
Alessandro Pulvirenti
ale...@tiscalinet.it

 programma risulta alterata... voi cosa dite?
E` un modo di vedere perche` questo particolare caso non puo`
funzionare.  Ma in vari altri casi le ragioni sono diverse.  Quel
che conta davvero e` la regola: niente diverse definizioni di
una singola classe entro un dato programma.  Se un qualche caso
particolare ti sembrasse funzionare con un certo compilatore, nulla
impedisce che si rompa al prossimo release dello stesso compilatore,
ecc ecc.  Semplicemente, non lo fare.
Per il disaccoppiamento che desideri devi introdurre in qualche
modo un livello di indirettezza.  Il classico idioma e` detto pimpl,
da "Puntatore a IMPLementazione", ed e` del tipo:
class PippoImpl;
class Pippo {
private:
    PippoImpl* pimpl;
public:
    // quel che vuoi
};
Ovviamente, questo lo paghi in termini di prestazioni (poco, ma lo
paghi, perche` c'e` un'indirettezza in piu`).  Parte del modo in cui
il C++ "spinge a tavoletta" le possibilita` di ottimizzazione e`
proprio la possibilita` di avere oggetti PER VALORE (come variabili
locali, come membri di un altro oggetto, ...), e non solo _per
riferimento_, come e` in pratica in tutti gli altri linguaggi ad
oggetti.  Per ottenere l'epsilon di prestazioni dato dagli oggetti
tenuti per valore, naturalmente, si paga non poco in altri termini
(niente polimorfismo su oggetti tenuti per valore, maggiore coupling,
ecc, ecc).  Ma se le prestazioni massimali non interessano, almeno
in qualche parte cruciale del progetto, la scelta di usare il linguaggio
C++ difficilmente sara` comunque quella ottimale.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Cancellazione parziale nello heap

Ciao,
se dichiaro un puntatore:
	float *punt=new float[100];
prevedendo di caricarvi un massimo di 100 elementi,ma so che in effetti 
l'utilizzo sarà quasi sempre limitato ad un numero minore,ad es 35,come 
posso fare a deallocare la memoria riservata dal 36-mo elemento in su?

Gazza ha scritto:

Mi attacco qui per fare un'altra domanda: perchè non si può fare come 
nel codice seguente?
free[] (punt+35);

 posso fare a deallocare la memoria riservata dal 36-mo elemento in su?
In generale non puoi e, anche se potessi, non dovresti.
Un consiglio: non programmare in C++ come se fosse C. Serviti delle STL.
Kiuhnm

 free[] (punt+35);
Perché non si può.
Avendo voluto si sarebbe potuto, ma hanno deciso che non si possa. IMHO, 
anche avendo potuto, non si sarebbe dovuto.
Kiuhnm

Kiuhnm ha scritto:

Beh... magari non si puo' in modo diretto, ma scrivere una realloc non è 
poi cosi' difficile. Comunque è vero, non ha senso reinventare la ruota.

 Un consiglio: non programmare in C++ come se fosse C. Serviti delle STL.
Il fatto è che non le conosco...Puoi darmi qualche dritta? 


Kiuhnm

Kiuhnm ha scritto:

Si, mi sembrava ovvio. Mi chiedevo perchè fosse stato deciso cosi'.

 Si, mi sembrava ovvio. Mi chiedevo perchè fosse stato deciso cosi'.
Il ridimensionamento di un array è abbastanza inefficiente (devi 
scegliere un compromesso tra overhead e frammentazione interna). Se il 
linguaggio supportasse direttamente questa funzionalità, tutti o quasi 
inizierebbero ad abusarne senza forse rendersi conto dei costi.
Per scelta di filosofia, il C++ supporta nativamente solo funzionalità 
intrinsecamente efficienti.
Quelle inefficienti puoi sempre costruirtele ed usarle a tuo rischio e 
pericolo.
Kiuhnm

Newsgroup: it.comp.lang.c++
Titolo: Reset

Hi
Esiste una funzione c++ o alcune righe di codice per far resettare oppure
spegnere il PC?
Grazie

 wrote in message
8goqrh$p29$1...@nslave2.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: Dal Dos a Windows

Essendo in possesso di un compilatore Borlandc C++ ,vorrei passare
dalla programmazione Dos a Windows .
Se qualcuno conoscesse dei buoni libri in italiano ,atti allo scopo,
prego inviarmi  una  e-mail presso : 
gmai...@tin.it
Ciao

On Wed, 26 Nov 1997 17:50:25, 
gmai...@tin.it
 (Mainardi Gianfranco) 
wrote:

Non c'e' migliore libro che mettersi sotto a scrivere qualche 
programma guardando negli esempi del Borland come sono state fatte le 
cose (e leggendo i manuali).
Per il resto di libri ce ne sono a volonta', ma secondo me non 
insegnano a programmare Windows, esperienza personale.
-----------------------------------
--- Where did you go yesterday? ---
-----------------------------------
** Email replies to 
md7...@mclink.it
 **
visit my homepage at: 
http://www.volftp.tin.it/IT/IT/ITALIANI/rullo/index.htm

Newsgroup: it.comp.lang.c++
Titolo: Documenti in MDI

Sto realizzando un'applicazione che ha due tipi di documenti: uno di testo e
uno che è il testo di prima processato. Quando avvio l'applicazione mi
chiede quale tipo di documento voglio creare, ma il secondo tipo lo dovrei
ricavare solo dal primo. Come faccio ad evitare la schermata iniziale?
Ric
ri...@wxt.com

Riccardo wrote:

Overload  CWinApp::OnFileNew() like this :
void CMyApp::OnFileNew()
{
  CDocTemplate* pDocTempl = NULL;
  POSITION pos = GetFirstDocTemplatePosition();
  pDocTempl = GetNextDocTemplate( pos );
  if ( pDocTempl ) pDocTempl->OpenDocumentFile( NULL );    // create
"first" document
}
Ciao
Alexei
Newsgroup: it.comp.lang.c++
Titolo: Postincremento nel for e riconoscimento sistema operativo...

							for(i=0; i<N; i++)
C'è un motivo particolare? A me sembrano identiche... Nel ciclo ci vanno
i valori da 0 a 9 per entrambe. Su cosa influisce il postincremento?
Ne approfitto per chiedervi come possa riconoscere (con le direttive al
preprocessore o in fase di run-time) il sistema operativo su cui dovrà
girare il programma.
Ad esempio:
[...]
if (__SO__ = "Unix")
	system ("clear");
if (__SO__ = "Windows")
	system ("pause");
[...]
Ecco, servirebbe una variabile di sistema accessibile, magari una classe
con __SO__.version, __SO__.description e così via... :-)
Sono sicuro che esista qualcosa del genere... magari così potrei
implementare qualche routine in asm per la vecchia 'gotoxy' piuttosto
che includere le ncurses o altre lib simili...
Se po' ffa' ? :))
Grazie in anticipo,
Gregor Samsa
-- 
" Destandosi un mattino da sogni inquieti, si trovo' tramutato, nel suo
  letto, in un enorme insetto. Se ne stava disteso sulla schiena, dura
  come una corazza, e per poco che alzasse la testa poteva vedersi il
  ventre abbrunito e convesso, solcato da nervature arcuate [...]" - FK

 dovrà girare il programma.
Credo che con gli #ifdef si possa fare.
Penso che ogni compilatore abbia un suo specifico #define col
quale "farsi riconoscere".
Ma, a dire il vero, non so dirti molto al riguardo.
--
Gerolamo

 girare il programma.
Ogni compilatore implementa delle #define in merito al x platform
ad esempio il vecchio Borland C discriminava NT con Win9.x
ma le specifiche le trovi nel compilatore e, comunque, sono direttive
di PRE-compilazione..
mentre a Run-time esistono API per descriminare quale versione dell'OS
sta funzionando..am sempre della *famiglia* Windows
per quanto riguarda il tuo esempio non credo esista un sistema *standard* ma puoi
usare il vecchio (sporco) trucco di chiamare System() con una funzione di uno
specifico sistema operativo ("uname" per linux.. ad esempio) e trappare l'eventuale
errore per sapere se ha funzionato..
certo che come soluzione è sporca e brutta...
Giorgio

 Se po' ffa' ? :))
Occhio, questo non puoi farlo realmente a run-time. Ovvio che gli include 
si escludono/includono in compilazione, così come pezzi di codice 
dipendenti dal sistema devi fare in modo che non vengano nemmeno compilati 
(non basta non eseguirli). 
Ti ho già suggerito come faccio io... ;-)
-- 
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.

 girare il programma.
Non esiste un meccanismo standard. Se vuoi una soluzione davvero 
completa, studiati la libreria 'configure' di Boost: 
http://www.boost.org
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Errore di Threading

Sto creando un'applicazione contenente un controllo grafico acquistato di
recente; quando mi connetto al DB prima che questo controllo grafico sia
stato creato mi da il seguente errore:
Eccezione non gestita di tipo "System.Threading.ThreadStateException" in
system.windows.forms.dll
Informazioni aggiuntive: Impossibile creare un'istanza del controllo ActiveX
'd4739fdd-dc16-4ab8-bb0a-469661ccae31' perché il thread corrente non è un
apartment a thread singolo.
Sto sviluppando un'applicazione WinForms senza MFC (purtroppo non le
conosco!!!!).
Per connettermi al DB ho creato una classe ConnettiDB:
using namespace System;
using namespace ADODB;
#include <string>
using namespace std;
__gc class ConnettiDB
{
private:
// Singleton
static ConnettiDB *instance = NULL;
ConnectionClass *adoConnessione;
ConnettiDB(void);
public:
// Singleton
static ConnettiDB* getInstance();
RecordsetClass *getDataSet(string strSQL);
void ConnessioneDB(string strPercorsoDB, string strPassword);
virtual ~ConnettiDB(void);
};
Ringrazio anticipatamente chiunque mi possa aiutare a risolvere questo
problema.
P.S. purtroppo non posso connettermi al DB dopo aver creato il controllo.

 conosco!!!!).
riferisciti quindi ad un gruppo di discussione più adatto.
-- 
sbi

 ha scritto nel messaggio
news:qFnod.6152$C94....@tornado.fastwebnet.it...

Potresti dirmi qual'è il gruppo di discussione più adatto?

 Potresti dirmi qual è il gruppo di discussione più adatto?
Il gruppo
  [it]aliano per quelli che usano il
   [comp]uter come strumento per
    [programmare] in ambiente
     [win32]
Max

 Max
Grazie
Newsgroup: it.comp.lang.c++
Titolo: un consiglio ad un principiante

Salve a tutti. Ho abbandonato da una decina d' anni la programmazione in
c/c++, e adesso volevo riavvicinarmi a questo intrigante mondo.
Tuttavia, il mio approccio ai vari builder non e' stato buono (non riesco ad
abituarmi alla mancanza del main().... ), e volevo sapere se mi potete
consigliare un buon compilatore sotto windows con annesso un IDE decente.
O sono obbligato ad installare linux e lavorare li?
Grazie per il vostro aiuto
Idum

 wrote in message
_4WZ4.74396$VM3.5...@news.infostrada.it...


 O sono obbligato ad installare linux e lavorare li?
Leggi le faq su 
www.programmazione.it
, troverai diversi
link.
Paolo
-- 
------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
 
http://www.cli.di.unipi.it/~marotta
------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Grafica in C++

C'è qualcuno che ha qualche semplice esempio per gestire le maschere in C++?
Sono un prog vecchio stampo in modalità testuale e la grafica mi mette in
crisi...
--
==========
Riccardo Ricci - Servizi numerici
Via Giovanni della Penna, 47
00126 Roma
Tel. 065211915 - 03286299442
                                 03483665128
Fax. 06233215717
e.mail: 
neto...@tin.it
 
neto...@infinito.it
 
netm...@hotmail.com
 
ricci.r...@tin.it
 
r.r...@springconsulting.it

 crisi...
 In quale ambiente ? (win32, linux, dos, ...)

 crisi...
Anche a me.
Mi sono scaricato queste librerie grafiche che possono essere compilate su
VC, C++ Builder, Cygwin, etc.
Sono molto più semplici delle MFC e contengono un bel manuale e molti
esempietti utili per iniziare.
Per di più sono cross-platform!
Bye, Francy

Per di più sono cross-platform!
Dove le hai scaricate? 
mi interessano !!
<--------------------------------------------------->
messaggio by: credici
mailtome    : 
cre...@infinito.it
my home     : 
http://credici.supereva.it
 
visitate subito : 
http://www.city3000.it/athenet
e non ve ne pentirete mai 
<--------------------------------------------------->

 mi interessano !!
Pardon! Avevo dimenticato l'oggetto del mio post.
Le librerie sono le wxWindows e le scarichi dal loro sito:
http://www.wxwindows.org
Bye, Francy
Newsgroup: it.comp.lang.c++
Titolo: compilatori gratuiti

mi sapete indicare qualche compilatore gratuito liberamente scaricabile da
internet? qualcosa che sia conveniente per la mia scuola in pratica...ciao!
--
by ..::Retebug::..
* Vorrei vivere in un mondo senza CANCELLI e FINESTRE *
* I want to be alive in a world without GATES and WINDOWS*

"Retebug" <rete...@nospammareTin.it> a écrit dans le message news:
IfIg9.94834$ub2.1...@news1.tin.it...

Vista la tua 'signature' e' inutile che ti consigli di scaricare DevC++
della bloodshed
Maurus

 * I want to be alive in a world without GATES and WINDOWS*
A questo punto, ovvimente, il GCC che già trovi in qualunque
distribuzione di Linux.
--
Gerolamo

 distribuzione di Linux.
questo l'avevo gią pensato, ma nn credo che a scuola abbiano intenzione di
installare linux, sanno a mala pena usare il word....

 * I want to be alive in a world without GATES and WINDOWS*
behh prima di tutto inizierei da qua:
From: "Retebug" <rete...@nospammareTin.it>
Newsgroups: it.comp.lang.c++
Subject: compilatori gratuiti
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
Date: Sat, 14 Sep 2002 15:06:16 GMT
quanto meno userei FreeAgent ;) 


Allora Cygwin o MinGW, porting di GCC su Windows.
Se invece vuoi un IDE, Dev-C++, che ti hanno già consigliato.
Saluti
Libra

Newsgroup: it.comp.lang.c++
Titolo: Utilizzo di C++

Ciao a tutti, sono completamente ignorante su questo linguaggio; volevo
sapere qualè l'utilizzo di questo linguaggio; insomma cosa posso farci?
Grazie a tutti in anticipo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Togli il PELO per rispondermi sull'email
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie a tutti in anticipo
http://www.research.att.com/~bs/applications.html
pare che ci abbiano scritto persino windows con questo linguaggio!!
:-)

 :-)
Non proprio fino al kernel, quello è C puro, ma... da un certo punto in 
su credo proprio di sì. COM, COM+, ActiveX sembrano fatti apposta per 
essere usati e scritti da/in C++.
Appropo (visto che ormai siamo già andati OT), qualcuno sa mica 
indicarmi un buon libronzo attuale su COM e la roba di cui sopra? Su 
Gorilla ce ne sono, ma i più interessanti son tutti fuori stampa (oddio! 
Sarà mica un brutto segno???) e il resto mi ispira poco... i tutorial su 
internet ne ho letti un pò, ma ora mi serve di approfondire.

 Appropo (visto che ormai siamo già andati OT),
[CUT]
SEI andato OT io non lo ero.
:-)
Newsgroup: it.comp.lang.c++
Titolo: CILCO FOR per attesa

Ciao, ecco il mio problema (molto banale). 
Ricordandomi di  tempi remoti in cui programmavo con il BASIC ho pensato di utilizzare il cilco for (del c++) per fare un'attesa. esempio:
(codice del BASIC)
cls
print "ciao"
for i = 0 to 10000
next i
cls
print "maragnao"
Il risultato era che a video si vedeva la parola ciao e dopo qualche secondo si trasfromava in maragnao. provando a riscirvere il codice in c++ non mi viene l'effetto. Ho provato a ipotizzare che il mio processore sia cosě veloce da calcolare il ciclo for in meno di un secondo (e cosě non viene l'effetto desiderato) ma ho provato a scrivere lo stesso codice in basic sullo stesso processore e in basic viene. come posso fare con il c++ perchč ci sia un ritardo di qualche secondo prima che appaia l'altra scritta ?
mille grazie
credici
cre...@infinito.it
----------------------------------------------
Virgilio Mail - Il tuo indirizzo E-mail gratis
http://mail.virgilio.it
--
Posted from [212.48.4.47] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
20000818154012.SBIT19886.mta2@[212.48.4.50]...


mille grazie
Il problema e' che i compilatori C++ sono molto piu' furbi
di quello che credi (a volte, come in questo caso, sono
troppo furbi).
Se tu scrivi
  void Attesa()
  {
    int i;
    for (i=0; i<1000000; i++)
      ;
  }
il compilatore pensa "ma guarda che programmatore tonto...
fa un ciclo con dentro un bel niente e poi ritorna al
chiamante; io il ciclo lo elimino del tutto... tanto
nessuno si accorge della differenza e il programma
occupa meno spazio ed e' piu' veloce..."
Per fare una pausa puoi aspettare (chiamando le
funzioni dell'orologio o la funzione "sleep()")
oppure obbligare il compilatore ad eseguire il loop.
Un esempio di uso dell'orologio e':
  ...
  #include <time.h>
 
  void Attesa(int secondi)
  {
    // Legge l'ora corrente 
    time_t adesso = clock();
    // Continua a leggere l'ora sino a che non
    // sono passati il numero di secondi richiesto
    while (clock() - adesso < secondi*CLOCKS_PER_SEC)
      ;
  }
mentre un esempio che obbliga il compilatore a fare
per davvero il ciclo e':
   volatile int counter;
   void Attesa()
   {
     counter=1000000;
     while(counter!=0)
     {
       counter--;
     }
   }
La parola "volatile" indica al compilatore che
potrebbe esserci qualcuno che mentre il programma
sta girando andra' continuamente a controllare
quello che succede alla variabile e magari ne
cambiera' il contenuto. In questi casi il
compilatore deve rispettare quello che e' stato
detto di fare altrimenti il programma potrebbe
non funzionare.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Newsgroup: it.comp.lang.c++
Titolo: Q:come madare una e-mail

il prb è semplice mandare da programma visual c++ una e-mail!
non mi interessa scriverla (edit) ma solamente spedire  un messaggio std!
grazie!
F@b

 non mi interessa scriverla (edit) ma solamente spedire  un messaggio std!
Prova SpiMail.
EMG