mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Problema con 1.52

Ragazzi aiuto!
Devo caricare una ListBox con degli item che devono essere dei checkbox. Per
capirci come la lista che si può vedere in Word 97,
menu 'Strumenti' - Opzioni - Compatibilità.
Vi prego aiuto!!!
Grazie a tutti coloro che.......
Max.

 
Con le MFC del 6.0 esiste il controllo CCheckListBox, direttamente derivato
da CListBox. Di norma costruisci una dialog box standard (con l'editore
delle risorse) inserendoci una list box ed agganciandola ad un controllo
CListBox, quindi, a mano, nel sorgente (.h) sostituisci l'occorrenza della
CListBox con la CCheckListBox.
L'help in linea su CCheckListBox ti dira' come gestire lo stato
checked/unchecked dei singoli items.
Ciao,
Gianfranco

 wrote in message
01bf0ddf$07a53980$eb58cfc1@zula...


Newsgroup: it.comp.lang.c++
Titolo: Chiedo disperatamente aiuto

 compilatore mi segnala 12 errori. Ciao.
Io di solito nel progetto lascio il file CPP e quello RC, e tutto fila
liscio.
Se vuoi, inviami i files del progetto
Ciao..

Ciao, mi chiamo Enzo e sono poco pratico di C++...
Ringrazio anticipatamente tutte le persone che mi aiuteranno a risolvere
il mio piccolo problema.
Ho creato un nuovo "project" ed insieme ai file.cpp che inserisco nel
progetto compare un file con estensione def ma io non so proprio a cosa
serva questo dannato file e non so quali istruzioni vadano inserite
all'interno.
Il mio problema sorge proprio qui perchè il compilatore non mi compila




Newsgroup: it.comp.lang.c++
Titolo: Help su Array di oggetti

Ciao, qualcuno saprebbe aiutarmi ? Please ;-)
Ho una Classe1 costituita chessň da un intero MioX .
Ho poi la Classe2 con un array di oggetti di Classe1;
es.    class Classe2 {
            private:
                Classe1 Array[2][2];
        ....
il costruttore di Classe1 č cosě
        Classe1 (int x) {
            MioX = x;
        };
Il problema nasce nel costruttore di Classe2
        Classe2 (Classe1 ogg1,Classe1 ogg2,Classe1 ogg2,Classe1 ogg2) {
            // come inizializzo il mio ARRAY ????
            Array[0][0]= ?????
        };
Grazie a tutti quelli che aiuteranno questo novizio del C++ ;-)

 Grazie a tutti quelli che aiuteranno questo novizio del C++ ;-)
Usa std::vector<Classe1>, o se proprio devi avere la bidimensionalita`
l'equivalente bidimensionale (c'e` qualcosa sulle FAQ).
Alex

        };
Quando il controllo entra nel corpo del costruttore di Classe2,
l'oggetto Array e` stato costruito utilizzando il costruttore di
default di Classe1 (se non c'e` dovresti avere un errore a 
compile-time).
Nel corpo del costruttore di Classe2 puoi fare singoli assegnamenti:
        Classe2 (Classe1 ogg1,Classe1 ogg2,Classe1 ogg2,Classe1 ogg2) {
            Array[0][0]= ogg1;
        };
Ma deduco che il tuo problema sia quello di non disporre del
default ctor di Classe1.
Le soluzioni sono:
a) Ha senso avere un costruttore di default e quindi lo definisci
     esplicitamente.
b) Non ha senso e cambi approccio (ad esempio usando una
     lista linkata).
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Iniziare bene

Leggi le FAQ del newsgroup su 
www.programmazione.it
Ciao,
Nicola

Scusate, sono nuovo di c++ e vorrei da qualcuno + esperto qualche
informazione per iniziare (libri, link, altro)
Perciň se qualcuno mi potesse dare delle dritte per iniziare subito senza
rimanere disorientato.
GRAZIE A TUTTI.
Newsgroup: it.comp.lang.c++
Titolo: ciclo for...non capisco sta cosa...

Ho realizzato un piccolo "programmino"(se si puo definire cosě) per fare
delle prove con i cicli 'for'...
ve lo posto..
#include <iostream>
using namespace std;
int main()
{
    int vala;
    int valb;
    int res;
    int count;
    valb=5;
    for (count=0;count>=10;count++)
    {
        cin >> vala;
        res=vala+valb;
        cout << "il valore č "<< res <<"\n";
        if(res>10){count=10;}
        }
    return 0;
}
allora ditemi se sbaglio
il segno <= significa minore o uguale a
il segno >= significa maggiore o uguale a
giusto?
allora, io voglio che quando "res č maggiore o uguale a 10" count diventa "
uguale a 10" e il ciclo deve terminare.
Ma non funziona,per farlo funzionare correttamente devo invertire il segno>=
nel ciclo for, cioč:
 se count č maggiore o uguale a 10  termina il ciclo: for
(count=0;count>=10;count++), cosě non funziona, l'appplicazione termina
subito
 se count č minore o uguale a 10 termina il ciclo: for
(count=0;count<=10;count++), cosě invece funziona
Per me č un dilemma, ma sicuramente č una stupidata, potreste spiegarmi
questa cosa?
Grazie.

 (count=0;count<=10;count++), così invece funziona
For termina la prima volta che la condizione e' falsa, quindi devi 
scrivere for(count=0;count<10;count++)
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 questa cosa?
Spero di averlo fatto.
Su che libro stai studiando? Non c'e' cosa peggiore che studiare testi non 
validi. Penso che il problema di fondo sia il materiale su cui stai 
studiando.... E' un tutorial online? E' un libro del tipo"impara il C++ in 
37 secondi"?
Tommaso

 37 secondi"?
sto studiando su c++ guida completa (apogeo) di Herbert Schildt...che me lo
hanno sconsigliato ma ormai lo avevo già preso...
Comunque grazie...

 che me lo hanno sconsigliato ma ormai lo avevo già preso...
Beh, si Schildt e' abbastanza criticato e giustamente nella maggior parte 
dei casi. Tuttavia fino ai cicli for dovrebbe insegnarli bene....
Pensavo stessi studiando su materiale ancora peggiore.
Tommaso
Newsgroup: it.comp.lang.c++
Titolo: Formula matematica del resto

Qualcuno, gentilmente, mi ricorda la formula matematica del % ?
Se non sbaglio e'
a % b = (( a / b ) * b ) - a

a % b = (( a / b ) * b ) - a
beh... potevi sempre provartela! :-D
comunque è 
((a / b) - int(a / b)) * b
quell'int messo così farà sicuramente rabbrividire molti di questo
newsgroup, quindi facciamo qualcosa di più elegante:
poniamo che sia a che b siano di tipo float o double
((a / b) - (int) (a / b)) * b
o, meglio ancora (io odio questa notazione):
((a / b) - static_cast<int>(a / b)) * b
la tua formula, del resto, non ha senso: prima dividi per b, poi
rimoltiplichi per b e quindi ottieni a di nuovo, da cui sottrai a e
ottieni sempre 0!!
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 ((a / b) - int(a / b)) * b
Dato che l'operatore % e' definito solo su tipi interi e' ragionevole
assumere che a e b siano interi. La tua formula restituisce quindi 0.
Ciao,
Nicola

assumere che a e b siano interi. La tua formula restituisce quindi 0.
non c'è che dire... quando uno sbaglia, sbaglia... e quando uno c'ha
ragione, c'ha ragione... !!
oggi ho imparato una cosa nuova (o, meglio, ho imparato che non usavo
le cose che già sapevo)


Newsgroup: it.comp.lang.c++
Titolo: ipx programming con c++ builder

Qualcuno sa dove trovare vcl per programmare su network ipx ... montoring delle connessioni invio di files ecc...
Grazie



Prova alla Delphi Home Page presso 
www.infomedia.it
Newsgroup: it.comp.lang.c++
Titolo: scusate l'ignoranza....

> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< 
DucaCr...@iol.it
 >>>>>>>>>>>>>>

destra >> (o a sinistra <<?) sulla variabile lParam (o una sua copia)?
Si`, ma attento: >> su di un numero CON SEGNO (e se non sbaglio
LPARAM e` un intero CON segno!) puo` "propagare" il bit di segno,
cioe`, se int e` 32 bit:
    int pippo = 0x80000000;
    pippo>>31;    // puo` essere 0xFFFFFFFF
    unsigned int upippo = 0x80000000;
    upippo>>31;    // sicuramente vale 1
meglio quindi, per sapere con certezza cosa succede, applicare
lo shift solo a interi SENZA segno.
Comunque, "(lParam>>31)&1" dovrebbe essere nuovamente il
bit che cerchi (spostato nella posizione meno significativa), cioe`
valere 0 o 1.
C'e` un MINIMO di overhead (una istruzione di macchina) in
questo approccio: la maschera col bit 31 settato e` preparata
a compile-time (zero costo runtime) quindi l'unica operazione
di macchina e` lo AND, mentre questo shift e` da farsi a
runtime (e uno shift di 31 bit potrebbe prendere molteplici
tempi di clock, a seconda di quale sia esattamente la CPU
che usi, anche se e` espresso come una singola istruzione
di macchina).  99+% del tempo questo non ha importanza,
ma nel dubbio e` meglio prendere l'abitudine di non fare delle
elaborazioni "inutili"; cioe`, se devi testare dei bit di una parola,
e sai a priori di che bit si tratta, fallo con un AND con una
maschera costante, piuttosto che con shift E and.
Un altro approccio consiste nell'uso dei "bit-field", ma non te
lo consiglio -- e` meno portabile e quindi piu` oscuro, per quanto,
a prima vista, possa invece sembrare piu` leggibile.  Comunque,
questione di gusti e di stile personale.
Alex

destra >> (o a sinistra <<?) sulla variabile lParam (o
una sua copia)?
lParam >> 31
oppure usi una variabile bitmask = 1 << 31 che ti setta
il bit dio posto 31 a 1 e gli altri a 0
e poi fai
ris = (IParam & bitmask)
Bye,
Dome

Newsgroup: it.comp.lang.c++
Titolo: Consiglio vc++

Salve a tutti.
Sono nuovo del newsgroup, visto che più che altro programmo in VB 5.0 e 6.0.
Ora ho deciso di passare al mio vecchio amico C++, che avevo studiato
qualche anno fa quando andavo alle superiori. Qualcuno mi sa consigliare fra
Microsoft Visual C++ 5.0 e Borland C++ 1.0 ?
Io a casa ho installato il primo e pensavo di trovarmi di fronte ad un
ambiente molto visual, però per chi è profano come me è stato abbastanza uno
choc. Ho provato il secondo ed in effetti mi è sembrato davvero più
amichevole e più improntato al RAD.
Secondo voi quale dei due dovrei usare? Tenete presente che per adesso non
lo uso per lavoro, ma solamente per mio sfizio personale.
Grazie 1000 a tutti!!!!
Damiani Igor
ico...@simcity.it

lo uso per lavoro, ma solamente per mio sfizio personale.
Consiglio personalissimo se impari a muoverti bene con visual c++ non credo
che poi troverai grossi ostacoli con un ambiente come borland c++, quindi io
per sfizio mi butterei su visual c++.
Ciao
Terenzio
Newsgroup: it.comp.lang.c++
Titolo: Liste veloci con i puntatori?

Quando ho fatto informatica 1 (TP) mi aveno insegnato a fare le liste
in questa maniera:
(turbo pascal)
type
    pelementolista=^elementolista;
    elementolista=record
	dato:longint;
	next:pelementolista;
end;
var lista:^elementolista;
ho tentato di rifare cio in c++ e ci sono riuscito, pero' il risultato
sembra essere estremamente lento.
ho visto che sembra si possano fare liste usando direttamente gli
indirizzi dei puntatori:
(c++)
long *lista;
[codice vario]
(long *)(lista + numeroelemento)
o qualcosa del genere.
questo metodo e' + veloce del precedente?
il primo metodo permette di aggiungere elementi alla lista senza
limiti (eccetto la memoria) e senza perdere i precedenti ma questo?
Se le risposte fossero positive andrei a studiarmi come si usano :D
Un'altra cosa:
esiste un qualche documento specifico sulle ottimizzazioni in c++?
Ovvero quali metodi sono + veloci di altri?
Se chiedessi il metodo migliore per otimizzare una funzione c++
passandola in asm (proponendovi le mie soluzioni) sarei ot ovviamente,
ma dove potrei postarle?
Grazie.
Kirys
--------------------------------------------------
Brayan Fix Kirys Solfory
E-Mail: 
Ki...@technologist.com
 
For Free Software go to: 
http://Kiryssoft.cjb.net

ma dove potrei postarle?
Certamente non su it.comp.lang.c++
Non so se esiste qualcuno interessato ad
ottimizzazioni assembler in genere... sono cose
che dipendono troppo dallo specifico problema.
Una volta c'era la gara a chi scriveva il codice
migliore per texture mapping prospettico con
gouraud shading e fog... ma questo era prima che
arrivasse il silicio ad occuparsi del problema
qualche migliaio di volte piu' velocemente.
Esistono ancora competizioni di programmazione
"estrema" in cui bisogna stupire degli spettatori
(votanti) senza usare hw speciale e senza superare
un prefissato limite di dimensione del programma
(256 bytes, 4K, 64K sono limiti standard).
Puoi trovare informazioni su questo mondo interessante
su 
www.scene.org
.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

su 
www.scene.org
.
ci faccio sicuramente un salto.
Secondo me ci vorrebbe un po + di attenzione sull'ottimizzazione
troppo spesso si vedono cose fatte veramente male.
Un esempio era il primo encoder per mp3 mi ricordo che sul mio vecchio
p133 impiegava 5 volte la durata del brano per comprimerlo... 
poi un tizio fece un'altro encoder meno ufficiale che produceva lo
stesso file (facendo il confronto byte a byte) ma in un quinto del
tempo (li comprimeva in tempo reale sul mio 133)
Secondo me 70% dei prodotti ludici/grafici/video potrebbe girare con
macchine molto meno potenti(in cpu) di quelle che attualmente
richiedono.
Grazie ancora
Se non hai tempo per rispondermi non ti preoccupare.
Ciao 


 che il sito e' defunto :(.
Se l'inglese non ti spaventa, l'Association of C & C++ Users mantiene
una ampia raccolta di recensioni indipendenti, scritte da persone
competenti. Le trovi all'URL 
www.accu.org
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Lavorare con i socket

>>>>>>>>>>>>>>>pliz contact me at<<<<<<<<<<<<<<<
 
gio...@tiscalinet.it

>perdere tempo a visualizzare l'output)?
Forse sei OT in questo ng, comunque:
- devi creare una socket e connetteri al tuo server sulla porta 80.
- quindi devi mandare una richiesta HTTP del tipo:
GET /paginarichiesta HTTP/1.0
Host: serverchiamato
(riga vuota)
Dato che sono andato a memoria spero di non aver dimenticato nulla. Cosi' dovresti ricevere come risposta la pagina.
Antonio



 perdere tempo a visualizzare l'output)?
Il C++ standard non include nelle sue librerie (e tanto meno nel linguaggio)
alcun costrutto relativo alle socket (ne` ad altre interfacce di rete).
Comunque, la libreria "Berkeley" per le socket e` abbastanza diffusa e
portatile (e` praticamente clonata nella libreria "Winsock" su macchine
Windows, ad esempio, oltre ad essere ormai "di serie" in tutti i vari
Unix e simil-Unix), benche` non abbia assolutamente nulla a che vedere
con il C++ (la si programma strettamente a livello di linguaggio C, quindi
potrebbe essere piu` appropriato discuterne in it.comp.lang.c).
In generale, un cliente TCP/IP che usa la libreria "Berkeley" delle socket
prepara, appunto, una socket (di tipo "stream" per la maggior parte dei
protocolli di livello superiore, di tipo "datagram" per alcuni), esegue una
chiamata "connect" sul relativo handle, legge e scrive normalmente con
recv e send (su Unix, anche read e write, ma usare recv e send migliora
la portabilita`), e chiude la socket quando ha finito.
Quali dati e in che formato si dovranno scrivere e leggere dipende in
tutto e per tutto dal protocollo di livello superiore, in questo caso HTTP.
Tutti i protocolli sono documentati in specifiche dette "RFC" ("request
for comments").
Alex
Newsgroup: it.comp.lang.c++
Titolo: MFC csa e' ?

Leggendo queste news compare ogni tanto MFC.
Da quello che ho potuto capire sono librerie per la programmazione in
windows, pero' mi chiedevo con quale ambiente integrato si sviluppa in
MFC.
Io ho Borland c++ 4.5, e' possibile sviluppare in MFC o ci vuole
altro?
Altra domanda, sto eseguendo un programmino in c++ per windows, in
breve deve fare un bip (suono) ogni tot secondi.
L' utente puo' intervenire sulla durata del tempo pigiando il tasto
del mouse o uno della tastiera, pero' non funziona.
Il listato e' riassunto cosi'
dichiarazione di classi;
DEFINE_RESPONSE_TABLE1(.....)
	EV_COMMAND(101, SUONA),
	EV_COMMAND(102, CAMBIA_TEMPO),
	EV_COMMAND(),
END_RESPONSE_TABLE;
TAlle::SUONA()
	{ Ciclo while { beep}} // qui tramite alcuni input esegue un 	
				calcolo numerico per trovare 		
				l'intervallo di tempo, il problema e'
				che non deve uscire mai dal while 
				finche' non avviene il click del mouse
				o premuto il tasto da tastiera.
TAlle::CAMBIA_TEMPO()
	{Modifica variabile}//in questo modo riprendendo il ciclo 
				while di prima avro' un intervallo di 
				tempo diverso.
Alla fine mi sarebbe più comodo che l'evento fosse riconosciuto dentro
a TAlle::SUONA(), ma come posso fare?
La chiarezza non deve essere il mio forte, almeno credo !!!!!
Grazie a tutti,
	Aldrovandi Alessadnro
 
st...@gionet.it

 BYE




Forse con 4.5 no, ma se non sbaglio, e' possibile con 5.1
--
Marco Danti
remove NOSPAM from my address if you want to reply directly to me; sorry.
Email address intentionally wrong; remove the dash before replying
Newsgroup: it.comp.lang.c++
Titolo: ECCEZIONI IN C++ COME IN JAVA?

Ciao ragazzi,
colgo l'occasione per ringraziarvi delle tante dritte che questo ng è in
grado di dare.
Sono un programmatore Java, e mi sto avvicinando al C++ per la prima volta.
Come tutti sapete, chi dal C++ si avvicina a Java, o viceversa, in linea di
massima non dovrebbe trovare grandi difficolta; infatti fin'ora tutti i miei
programmini Java, sono stato in grado di, diciamo così, "tradurli" e farli
girare in C++.
Il mio problema, e non so se in C++ c'è una soluzione è quello "GESTIRE LE
ECCEZIONI". Mi spiego meglio: il flusso esecutivo di un programma,
indifferentemente se è stato sviluppato in C++ o in Java, per circostanze
anomale può essere interrotto, anche se il sorgente è scritto in maniera
impeccabile. Queste condizioni possono svilupparsi in seguito ad una grande
varietà di situazioni anomale: malfunzionamento fisico di un dispositivo,
mancata inizializzazione di oggetti, oppure semplicemente per errori di
programmazione come la divisione per zero. Ebbene prendiaamo quest'ultimo
caso, in Java lo posso gestire nel segunte modo:
public class Errore extends Exception //Exception classe che gestisce le
eccezioni
{
 Errore(){
    super("ATTENZIONE: DENOMINATORE NULL0"); //overloading del costruttore
della class Exception
 }
 public static void f(int n) throws Errore //Lancio dell'errore - funzione
imputata dell'errore
 {
     if (n == 0)
  {
   throw new Errore();
  }
  else
  {
   System.out.println("f(" + n + ") = " + (50/n));
  }
 }
 public static void main(String[] args) throws Errore { // avverto il main
di stare attento ad eventuali errori causati da oggetti Errore
    int n=10;
    try{ // prova se l'errore è in f(n);
        f(n);
    }catch(Errore e); //se c'è l'errore lo cattura, gestendo l'errore con
l'uscita dal programma
 }
}
ottenendo come output l'uscita dal programma quando cerca di esguire la
divisione (50/n) done n=0.
In c++ qual'è la classe da cui posso ereditare la mia classe Errore?
Quali funzioni utilizzare?

 Quali funzioni utilizzare?
In C++ puoi tirare qualsiasi classe ma ti consiglio di
fare ereditare la tua classe da std::exception e implementare il metodo
what:
class Error : public std::exception
{
    std::string theError;
    public:
        Error(const std::string& aError)
        :theError(aError)
        {
        }
    const char* what() { return theError.c_str(); }
};
e poi nel codice:
try {
    //il tuo codice che puo lanciare eccezioni
}
catch(std::exception& aException) {
    std::err << "Exception: " << aException.what() << std::endl;
}
catch(...) {
    std::err << "Unmanaged Exception" << std::endl;
}
tieni conto che in c++ puoi specificare quali eccezioni
puo tirare ma fanne a meno (o le metti dovunque o sono
inutili).
Ciao
Gaetano.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: Creazione dinamica di matrici

Scusate ho un problema con le matrici multidimensionali.
E' possibile creare dinamicamente matrici multidimensionali con
l'operatore new? Oppure la seconda dimensione deve sempre essere
specificata?


Sulle FAQ che trovi su 
www.programmazione.it
 ci sono degli esempi che
fanno proprio al caso tuo.
EMG

 ha scritto nel messaggio
news:3A004599...@gest.unipd.it...

La seconda dimensione deve sempre essere specificata.
Una scrittura del genere
byte *pbyte = new byte[10][20]
non può funzionare in quanto la new restituisce un puntatore ad un array di
tipi byte di dimensione [20], non un array di puntatori.
Quindi la sintassi corretta deve essere
byte (*pbyte)[20] = new byte[10][20];
e va da se che il [20] nella dichiarazione di byte (*pbyte)[20] non può che
essere un numero costante.
In questi casi l'unica cosa che si può fare è allocare un array di puntatori
e cioè:
byte **pbyte = new byte* [10];
e quindi il solito
for (int i = 0; i < 10; i++)
   pbyte[i] = new byte[20];
Dove ovviamente [10] e [20] possono essere variabili.
Newsgroup: it.comp.lang.c++
Titolo: Compilatore Mingw e Api Windows

Salve a tutti, con questo compilatore
devo creare una finestra al cui interno
si vedano nomi di file letti da una cartella.
Cliccando sopra al nome del file si deve
aprire il file scelto con il programma a cui
e associato il tipo di file.La finestra deve
avere anche la barra di scorrimento.
Domanda: quali header si devono utilizzare
e quali metodi,  funzioni.
Grazie
Ciao

Beh il compilatore ... è un po poco .... tu intendi qualcosa tipo le 
finestre di apri e salva dei programmi .... beh penso che devi fare 2 cose :
1) scrivere su un newsgroup di win32 credo
2) studiarti ed usare i commondialog delle api di windows... che se ti 
va bene di permettono di farlo con pochissimo codice .
cerca GetOpenFileName e similia.... se ho capito bene nn dovrebbe essere 
difficile
ciao
PP
Max ha scritto:


ti ringrazio.
Ciao
Newsgroup: it.comp.lang.c++
Titolo: c++ o visual basic

sono inesperto
vorrei imparare a programmare
quale scelgo tra i due?
come dififcolta sono uguali?
grazie mille 

dix619 wrote:

Fammi capire bene,,,vuoi iniziare a programmare ad oggetti o iniziare a
programmare e basta. Per iniziare a programmare ad oggetti č meglio il C++.
Perň se vuoi un consiglio, se proprio stai iniziando da zero, a mio avviso č
meglio iniziare col C ...in questo modo inizi a capire la programmazione
come funziona.
-- 
www.stasbranger.homeunix.com

 
NON aprire 2 thread (discussioni) sullo stesso argomento e lo stesso 
giorno, grazie.
-- 
Roal Zanazzi

Newsgroup: it.comp.lang.c++
Titolo: elenco funzioni libreria string

Si puo trovare un elenco delle funzioni della libreria string?

 Si puo trovare un elenco delle funzioni della libreria string?
http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=string2.html
anche se un buon libro...
--
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: VIOLAZIONE DI ACCESSO

salve,
mi potreste spiegare il motivo per cui
questo programma compilato con VC++ 6.0
mi da errore di accesso in memoria ????????
questo programma genera una lista di 5 elementi
con inserimento in testa e in coda (senza ordinamento)
ciao
                                daniele
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
struct elemento{
 int valore;
 char carattere;
 struct elemento *succ;
 };
struct elemento *testa;
struct elemento *nuovo;
struct elemento *p;
int i,val,flag = 0;
void main()
{
// clrscr();
// randomize();
  printf("numeri generati\n");
  for(i = 0; i < 5; i++)
  {
 p = testa;
 //val = random(10);
 val = val + i;
 printf("%d. ",val);
/* INSERISCE IN TESTA */
 if( testa == NULL && flag == 0)
 {
  testa -> valore = val;
  testa -> carattere = 65+i;
  flag = 1;
 }
 if(val <= testa->valore && flag == 1)
 {
    nuovo = (struct elemento *) malloc(sizeof(struct elemento));
    nuovo->valore = val;
    nuovo->carattere = 65+i;
    nuovo -> succ = testa;
    testa = nuovo;
 }
/* INSERISCE IN CODA ALLA LISTA */
 if(val > p->valore &&  flag == 1)
 {
    nuovo = (struct elemento *) malloc(sizeof(struct elemento));
    nuovo->valore = val;
    nuovo->carattere = 65+i;
  while(p->succ != NULL)
  {
    p = p->succ;
  }
  nuovo -> succ = NULL;
  p->succ = nuovo;
 }
  }
 p = testa;
 printf("\nnumeri nella lista\n");
 while(p != NULL)
 {
  printf("%d. ",p->valore);
  p = p->succ ;
 }
 printf("\n  pointer     Hex      Value     Hex->succ");
 printf("\n\n   (p)      %p :      %d          %p",p,*p,p->succ);
 printf("\n\n (nuovo)    %p :      %d
%p",nuovo,*nuovo,nuovo->succ);
 printf("\n\n (testa)    %p :      %d
%p",testa,*testa,testa->succ);
 p = testa;
 printf("\n\n   (p)      %p :      %d          %p",p,*p,p->succ);
 printf("\n\n\n");
}

 }
Ti faccio notare che se testa==NULL non puoi dereferenziare il
puntatore, ottieni per l'appunto un errore di violazione di accesso...
[omissis]
Infine, essendo la richiesta relativa ad un programma C e non C++,
vorrei invitarti a postare sul corrispondente NG (pura questione di
netiquette).
Saluti,
Paolo
------------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  G: Per concludere, possiamo chiedervi di commentare
     l'attuale panorama informatico?
  I: /* l'attuale panorama informatico */
------------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: HD rotti? Noi li garantiamo

Cari amici, questa news letter potrebbe essere interpretata come una
pubblicità e in effetti in un certo senso lo è ma da delle notizie che
riteniamo siano utili per molti di voi, Infatti chissà quanti hanno da
qualche parte degli HD rotti e non sanno che sono ancora in garanzia o, pur
sapendolo non sanno come farsela riconoscere.
Premesso che il periodo di garanzia varia da tre a cinque anni a seconda
delle marche e dei modelli gli acquirenti in genere si vedono riconoscere la
stessa solo per un anno dall' acquisto e spesso a fronte di pesentazione di
documenti fiscali non sempre di facile reperibilità.
Sena contare che qualora la garanzia venga riconosciuta, i nuovi hard disk
vengono resi con lunghissimi tempi di ritorno.
Utilizzando il nostro servizio si evitano tutte le proceedure burocratiche
legate ai numerosi fornitori, e in una sola volta si raggiungono tutti i
costruttori.
La procedura è molto semplice: ci basta conoscere la marca, il modello e il
serial number ed in pochi minuti sappiamo dirvi se il vostro HD è in
garanzia o meno.
Stabilito che l' HD è in garanzia dovrete spedirlo alla nostra sede di Roma
e con procedura di scambio anticipato o qualche giorno di attesa riavrete un
disco nuovo, spesse volte upgradato.
Al momento attuale effettuiamo il servizio di garanzia per le seguenti case
costrruttrici:
Seagate
Quantum
Maxtor
Hitachi
Fujitsu
Western Digital
IBM
Samsung
Ulteriori informazioni sui servizi offerti dalla ns. società le potrete
trovare sul nostro sito:
www.savedata.com
Ceti di avervi fatto cosa utile siamo a vs. disposizione per ogni altro
eventuale chiarimento.

 ecc... ecc...
Cari SaveData,
mi garantite anche le palle rotte dopo che leggo messaggi simili ai vostri?
Mauro
Newsgroup: it.comp.lang.c++
Titolo: ereditarieta' e polimorfismo

ciao, ho 1 classe template astratta pura A e una template B
voglio creare C tale che eredita A e B.
le funzioni pure di A sono definite in B.
io pensavo di sistemare il tutto con un semplice:
template <typename T>
class C: public A<T>, public B<T>
{};
pero' quando istanzio C non mi trova la definizione delle funzioni pure di A
(che ripeto stanno in B).
ho poi provato a ridefinire in C le suddette funzioni reindirizzandole a
quelle in B come:
C::funz_pura(){B::funz_pura();}
ma, istanziando oggetti C dentro altre classi semplici (D), non viene
trovato il costruttore di default di D.
spero di essermi spiegato bene.
ringrazio anticipatamente per l'attenzione.
ciao

 {};
Potresti aggiungere un ulteriore parametro a B che rappresenti la classe 
base da cui B<> stessa č derivata:
 template< class T, class BaseT >
 class B: public BaseT
 {
         //   ...
 };
 
 template <typename T>
 class C: public B< T, A<T> >
 {};
In questo modo, le funzioni virtuali pure di A<> potranno essere 
implementate in B<>.
Max

Newsgroup: it.comp.lang.c++
Titolo: [?] Ripristino connessione.

Ho due PC in rete MS i quali vedono il disco remoto come disco "D:" da
entrambi posso lanciare un programma di sincronizzazione. Il problema è che
all'avvio il PC che viene acceso per primo non vede il 2° PC. Quando anche
il secondo viene acceso il primo PC rimane comunque con il disco "D:"
disabilitato. Se da "Risorse del computer" si fa doppio click sul disco "D:"
viene visto e da questo momento entrambi i PC vedono il disco remoto.
La domanda è:  come forzare da codice la lettura del disco remoto  per non
dover fare quanto descritto sopra??
Grazie.
    Valter

>dover fare quanto descritto sopra??
Anziche' usare il disco puoi utilizzare il nome macchina con la sinstassi \\nomemacchina\risorsa\path.
Antonio Donatiello

Newsgroup: it.comp.lang.c++
Titolo: Libro di programmazione 3D

Ciao a tutti,
qualcuno conosce un buon libro in italiano o in inglese che tratti la
programmazione di un motore grafico 3d sotto Windoz?
Grazie a tutti!!!!





Ciao sono Fabrizio.


 


 


Sono anch' io un appassionato di programmazione 3D 
e come libri italiani per imparare ho usato quello Andrea Fasano ,un 
programmatore impiegato nella società della rivista di programmazione 
DEV.


E' ottimo per iniziare ma è indirizzato a 
chi conosce il C.


 


Atrimenti potresti andare sui siti consigliati 
dal mio(
www.rastiello.com
) che hanno un 
profondo spazio 3D.
Newsgroup: it.comp.lang.c++
Titolo: internet

esiste una funzione per collegarsi ad internet?

 esiste una funzione per collegarsi ad internet?
basta che scrivi Internet();
:D
--
Kali

 ha scritto nel messaggio
news:4feNb.256973$e6.10...@twister2.libero.it...

Newsgroup: it.comp.lang.c++
Titolo: dll in bloodsed dev c++

ciao a tutti, ho necessità di creare una dll usando il bloodsed dev c++. non 
sono riuscito a trovare nulla che spiegasse  un procedimento di esempio 
passo passo. qualcuno conosce qualche link oppure ha qualche suggerimento?
grazie a chi mi risponderà. 

GG ha scritto:

mi pare di ricordare che c'è un template di progetto apposta per fare le 
dll.
E.

Newsgroup: it.comp.lang.c++
Titolo: Carico sulla CPU dei metodi a runtime

Salve a tutti,
mi chiedevo se qualcuno fosse a conoscenza di un qualche debugger
(disponibile per Linux / BSD) in grado di monitorare o fornire indicazioni
sul carico a runtime dei metodi e delle funzioni, in modo da poter
ottimizzare software alla svelta individuando i pezzi di codice + pesanti.
Grazie,
Andrea

"Andrea" <andr...@FOOpuranicla.it> wrote 

La tipologia di software che cerchi si chiama profiler. Non sono un
esperto linux e quindi lascio ad altri il compito di consigliarti un
prodotto valido in tale ambiente.
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao,
lavoro solo da 6 mesi su Linux e ho conosciuto un solo profiler su 
Linux, ma sono sicuro che ce ne sono diversi.
Quello che ho usato è particolarmente semplice da usare, perchè si trova 
(penso) su tutte le distribuzioni ed è presente nel gcc.
Il funzionamento è semplice, basta compilare i sorgenti e linkarli con 
l'opzione -pg, lanciare il tuo programma e infine lanciare un programma 
che si chiama gprof che si occuperà di visualizzare i dati che avrà 
raccolto dal tuo programma.
Unico grosso inconeviente di questo profiler è che funziona così: ogni 
10 ms fa un controllo della funzione che il tuo programma in quel 
momento sta eseguendo, quindi prima cosa: devi avere un funzionamento 
"lungo" del tuo programma per avere dei dati affidabili. Secondo, il tuo 
programma deve uscire con return dal main o con una exit() altrimenti i 
dati raccolti non possono essere salvati. Terzo e molto importante: il 
programma deve "macinare" di suo, questo vuol dire che se il tuo 
programma inpiega il 95% del tempo in I/O, piuttosto che swappa su disco 
perchè contemporaneamente funziona con altri programmi che occupano la 
RAM, allora avrai pochi dati, perchè quello che gprof raccoglie sono 
solo quelli nel 5% del tempo che il tuo programma in realtà usa (in 
altre parole, se il tuo programma sta aspettando durante la lettura di 
un file, questo tempo non viene imputato al tuo programma).
Maggiori e dettagliate info le trovi sul sito del gcc o cercando in rete 
con gprof, ci sono ottimi tutorial in giro.
P.S. nonostante tutto gprof è ESTREMAMENTE semplice da usare
Xté


"Andrea" <andr...@FOOpuranicla.it> ha scritto nel messaggio 
news:pan.2005.06.28....@FOOpuranicla.it...

Credo che Eclipse - www.eclipse.org-  sia quello che fa per te e se non 
sbaglio anche il dev ha una funzione simile;
Squaloxp 

Andrea ha scritto:

Il profiler del gcc va bene (altro messaggio). Più sofisticati ma utili 
anche per il debug sono valgrind e kcachegrind.
Barone Frankenstein
-- 
There is no place like /home.
Newsgroup: it.comp.lang.c++
Titolo: Primi passi C++ per Win32

Per quale motivo creando in VC6.0 un semplice file c++ (non un progetto)
#include <windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  MessageBox(NULL, "Hello World!", "Message", MB_OK);
  return 0;
}
lo compila ma poi non riesce a linkarlo? Devo includere qualche altra
libreria tipo stdafx.h( a proposito a cosa serve questa libreria? )
Grazie a tutti per l'eventuale aiuto.
Federico

Quello è un file C, comunque anche se lo compili in C++ non fa differenza.
Il VC++ non permette di compilare un singolo file, ha necessariamente
bisogno di un progetto (se non lo crei tu, lo crea lui di default). Dato che
includi solo windows.h è strano che non rieca a linkarti il prog. Forse hai
compilato da riga di comando?
Comunque la soluzione è vedere quali simboli il compilatore non riesce a
trovare e includere le librerie (.lib)necessarie al progetto.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: °° CERCO UNA GUIDA PER INIZIARE °°

Salve, vorrei imparare il linguaggio C ++ . Da premettere che non so nulla
neppure del linguaggio C. Dove posso trovare una guida (degna di questo
nome) per iniziare a imparare qualcosa?

 nome) per iniziare a imparare qualcosa?
Leggi le FAQ su 
http://cpp.programmazione.it
Comunque il tutorial di Paolo Marotta
http://www.programmazione.it/Articles/corso/index.htm
dovrebbe andare bene per iniziare...
ciao
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: tutti i messages api di windows??

mi sapete indicare un libro o un sito in cui vengano elencati e spiegati
tutti i messaggi con cui lavora windows? possibile che ci sia solo l'help
delle api?
grazie
ciao

delle api?
L'MSDN (disponibile anche in linea) e la documentazione
del Platform SDK (scaricabile) portano anche l'elenco di
tutti i messaggi documentati, oltre a quello delle API e
delle strutture con qui API e messaggi lavorano.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Libro per iniziare con l'ANSI C++

Scusate l'intromissione.
Sono uno studente e dopo un corso sul linguaggio C
vorrei approfondire le mie conoscenze sulla filosofia
della programmazione orientata agli oggetti focalizzandola
nell'apprendimento del C++.
Ho sentito parlare in rete che lo standard ANSI C++ è stato
appena pubblicato.
Dovrei tener conto di questo fattore per acquistare un libro ed
eventualmente anche un compilatore?
Grazie.

eventualmente anche un compilatore?
Direi proprio di si...
Comunque sul sito di bruce eckel puoi scaricare la beta del
suo ultimo lavoro (Thinking in C++).
Inoltre sul sito di cppwarriors trovi un tutorial in italiano.
Paolo
----------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
----------------------------------------------------------

 eventualmente anche un compilatore?
Direi di si, a meno che tu non voglia imparare qualcosa che non esiste
piů. Potresti cominciare leggendoti Thinking in C++ di Bruce Eckel che
puoi scaricare gratuitamente dalla rete e prendendoti, sempre
gratuitamente dalla rete, il compilatore egcs della GNU.
EMG
Newsgroup: it.comp.lang.c++
Titolo: Evitare cast a classe derivata

salve a tutti
un piccolo problema dovuto ad inesperienza ed al "C way of thinking".
class base {
  private:
  class base * next ;
  public :
  class base * get_next() { return next; }
  ...
} ;
class derived : public base {
  ...
} ;
Se nel main ho codice del tipo:
derived * x , * p1 ;
...
for( x = p1 ; x!=NULL ; x=(derived *)(x->get_next()) )
...
come posso evitare il noiosissimo cast (derived *) ?
grazie per eventuali suggerimenti
 
saluti
Luca

Una cosa del genere, imo, e' piu' pulita:
derived *p1;
...
for (base* x = p1; x != NULL; x = x->get_next()) {
    derived* xd = dynamic_cast<derived*>(x);
    if (xd == NULL) { // skip cycle if xd is not a derived*
        continue;
    }
 ...
}
Ciao,
Giambattista

 come posso evitare il noiosissimo cast (derived *) ?
Evitando di usare l'ereditarieta' per implementare contenitori generici
ed usando invece i template (tralascero' di suggerirti di usare i
contenitori standard invece di creartene di tuoi :-)
template <typename Element> class Base {
  public:
    Base * get_next() { return next; }
  private:
    Base * next;
    Element elem;
};
for ( Base<int> * x = pl; x != 0; x = x->get_next() )
...
Ciao,
Nicola

 contenitori standard invece di creartene di tuoi :-)
Ovviamente potrei usare i contenitori della STL ; ma metti che voglio
farlo per esercizio ;-) ?
La mia situazione e' la seguente:
ho un insieme di classi B1,B2,...Bn ;
voglio, relativamente alla situazione, accorparle in una classe piu'
estesa. Ad esempio, la classe C deve poter ereditare B1,B2 e B6. E'
opportuno l'uso di classi template in questo caso? Io non ne ho idea
perche' ho poca esperienza.
grazie per la risposta e grazie anche a Giambattista per la precedente
ciao
Luca

 grazie per la risposta e grazie anche a Giambattista per la precedente
Prego!
Ciao,
Nicola

 vantaggiosa. 
mi spiegheresti meglio il concetto ?
Spiego meglio la mia situazione operativa :
dispongo di un certo numero di classi B1, B2 ... che possono essere
astratte perche' non le implemento mai come singoli oggetti.
Poi ho un certo numero di classi particolari C1 , C2 ...
In alcune applicazioni (quindi non a runtime) devo mettere insieme, ad
esempio, C1 con B1 e B2, C2 con B1 e B4 etc.etc.
In altre applicazioni pero' C1 deve essere messa insieme a B3 e B5, ad
esempio.
Con il C risolvevo tutto con  'void *' e  'int (*)()'  :-)) 
sto cercando di capire se con il C++ posso strutturare il tutto in
modo compatto, leggibile e sicuro.
ciao e grazie
Luca

 esempio.
[...]
Cosa intendi per "mettere insieme" delle classi ?
Derivazione multipla in una nuova classe ?
O forse ti riferisci a instanze di classi differenti ?
Giambattista

 wrote in message
news:al4iii$sbg$1...@newsreader.mailgate.org...

Hai ragione, questa soluzione e' piu' pulita, pero' attenzione che nel caso
specifico il dynamic_cast potrebbe tornare sempre NULL( o meglio 0) dato si
che  Base non sembra contenere metodi virtuali.
Ivan.
Newsgroup: it.comp.lang.c++
Titolo: Ereditarietà

Ciao a tutti.
Avrei un problema con l'ereditarietà. Ho una classe madre templata, da 
cui ho fatto derivare una classe specializzata, ossia
class TabIn : public Tab<int>{.......};
con
class TabIn{
TabIn(int a,int b){
Tab<int>(a,b);
}
}
e
class Tab<typename T>{
Tab<T>(){};
Tab<T>(int a, int b){......};
}
ossia in entrambe le classi ho fatto un costruttore con 2 parametri e 
voglio che quando si crea la classe figlia, il suo costruttore richiami 
il costruttore che ha in ingresso due parametri della classe padre, cosa 
che non avviene. Infatti quando creo un oggetto della classe figlia con 
2 input questa richiama il costruttore della classe madre che non riceve 
in input alcun parametro. Ho provato a fare il debug e avviene così, e 
non riesco a capirne il motivo.
Grazie mille!!!!
Ciao!!!

   }
Probabilmeni intendevi scrivere:
   TabIn(int a, int b): Tab<int>(a, b) { }
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 
No no intendevo scrivere
class TabIn : public Tab<int>{
 >>   TabIn(int a,int b){
 >>     Tab<int>(a,b);
 >>   }
devo fare l'ereditarietà pubblica così da prendermi i metodi della super 
classe.
Grazie!!!
Ciao!!!

 classe.
Questo non c'entra assolutamente nulla. Quello che certamente devi
prenderti e' un buon libro sul C++.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Cerco testi per iniziare

SE qualche volonterosa anima pia è disposta a consigliarmi  libri o
altro per entrare a far parte della banda C++(per ora da principiante)
posso contraccambiare con un _Grazie_
*****************************************************
Paolo Brambilla     Sesto San Giovanni (Mi)
*****************************************************



Ciao Paolo,
Io sono un principiante come te!
Ho iniziato studiando su un testo che ritengo ottimo:
"Chi ha paura del c++?"
di Steve Heller
McGraw Hill.
Non farti fuorviare dal titolo che sembra idiota...
in realtà e' un libro che con splendida chiarezza  affronta il
linguaggio c++ con un ottica molto approfondita. (introduce concetti
dell'assembly per arrivare a spiegare l'intero funzionamento del
processore e come il compilatore lavora!!!)
(inoltre contiene il compilatore gnu!)
costa 64.000£
Ti sconsiglio vivamente: 
"A scuola di c++ for dummies" della Apogeo
e' troppo semplice e non spiega in modo esauriente i concetti
difficili!
Costa 39.000£!!!!!!
AlessandroT

Ciao Paolo.
Sono un insegnate di informatica ed insegno il C++.
Io ti consiglio i seguenti libri :
1) Guida al linguaggio C++
    HERBERT SCHILDT - MCGraw-Hill £.44.000
2) Borldand C++ Builder - La guida ufficiale.
    Kent Reisdorph, Ken Hendersen - Apogeo £.69.000
Il secondo è una diretta conseguenza del primo.

    Kent Reisdorph, Ken Hendersen - Apogeo £.69.000
E' aggiornato alla versione 3 ?
Ciao
---------------------------------------
Email: sostituire "nospam" con "netsis"
Newsgroup: it.comp.lang.c++
Titolo: accesso "friend" a classi annidate (novizio...)

Ciao a tutti
Potreste aiutarmi a capire perché questo codice passa il compilatore
Watcom ma non il visual C++ 6.0? Quest'ultimo mi dice che non può
accedere agli elementi privati, ma teoricamente una funzione friend
dovrebbe servire apposta. Cosa non ho capito??? Nel caso, si può
rimediare in modo "portabile"?
Grazie a chi vorrà darmi una mano
Corrado
===============================
class  Couter
{
  struct Sinner
  {
    int    a  ;
    friend  int  fun (Sinner&, Sinner&) ;
  } ;
} ;
int   fun (Couter::Sinner &e1, Couter::Sinner &e2)  { return (0) ; }

 int   fun (Couter::Sinner &e1, Couter::Sinner &e2)  { return (0) ; }
La tua fun č friend di Sinner ma non di Couter... quindi (paradossalmente)
puň accedere ai membri privati di Sinner... ma *NON* a quelli di Couter :-)
Prova cosě:
class Couter
{
    struct Sinner
    {
        int a;
    };
    friend int fun(Sinner &,Sinner &);
};
int fun(Couter::Sinner &e1, Couter::Sinner &e2)
{
    return (0) ;
}
Massimo

    Sigh..... ho decisamente fatto una figuraccia. Quando la sera si
č un po' intontiti dalla giornata non si vede che la struttura
interna non puň essere accessibile da fuori in ogni caso, pena la
violazione del concetto di incapsulamento, di classe etc.; a meno di
ulteriori incomprensioni da parte mia, piuttosto adesso mi dovrei
stupire che quanto avevo scritto "passi" il Watcom senza proteste.
In effetti, nemmeno la tua idea ha passato VC++, infatti mi ha dato
errore in compilazione. Comunque grazie, l'intenzione di dare una
mano come sempre č la piů importante.
    C.


 mano come sempre è la più importante.
Per poter dichiarare una funzione friend questa deve:
1) Essere stata precedentemente dichiarata
oppure
2) Accettare un argomento della classe di cui è friend.
Per questo la soluzione propostati non compila.
Funziona, invece, una cosa del genere:
class Couter
{
    struct Sinner
    {
        int a;
    };
    friend int fun(Couter &e1, Couter &e2);
};
int fun(Couter &e1, Couter &e2)
{ 
    e1.Sinner::a = 5;
    return 0;
}
Ciao Fbf
PS
Se hai lo Stroustrup 3 è il paragrafo 11.5.1

    Ohohohoh.... GRAZIE, davvero, proprio non ci sarei andato a
pensare!!!
    Corrado

Newsgroup: it.comp.lang.c++
Titolo: Aiuto: problema con programma in C

Salve!
Ho un problema con un programma scritto da me in C.
In breve il problema è questo: il mio programma (utilizzando una delle
funzioni fornite dall'SDK di un sensore per il rilevamento i impronte
digitali) deve confrontare tra di loro di svariate coppie di immagini e
restituire il punteggio di somiglianza delle due impronte salvando i
risultati su un file txt.
Il problema è che quando dico "svariate coppie di immagini", in realtà
intendo dire che i confronti che il programma deve fare sono 1428000 (ebbene
sì, quasi un milione e mezzo).
Ovviamente (almeno credo che sia ovvio), il mio programma dopo circa 500
confronti esce e torna al prompt (senza nessun messaggio di errore) oppure
addirittura fa flippare il computer.
Ho pensato di scomporre tutti i cicli for che generano le coppie da
confrontare in modo da avere ogni volta un numero pari a 500 confronti ma
dovrei effettuare questa modifca 2856 volte, e ogni volta rilanciare il
programma modificando i parametri (in pratica dovrei fare a mano il ciclo
for incrementando ogni volta a mano il contatore)... direi che la cosa non è
fattibile.
Qualcuno sa suggerirmi un modo per affrontare la questione?
Grazie mille
-- 
Elminster

In c non so come farei (non ne conosco le librerie anzi se vuoi aiutarmi 
poco sotto ho un problemino con il caricmaneto di un eseguibile da ram), ma 
in c#, e quindi anche in c è senz'altro possibile,farei una coda di thread 
ed ad ogni singolo trhread passerei un pezzo della lista ,salverei il 
risultato di ogni pezzo della ricerca in un arraylist ed alla fine ulteriori 
confronti li farei prendendo i dati da qui.
Ti consiglio di gestire anche un log di errori in ogni singolo thread 
,debuggare i thread può diventare un bagno di sangue,se vuoi un maggiore 
aiuto di invito a specificare meglio il tuo problema,se vuoi un aiuto ancora 
maggiore fammi assumere :-))
"Elminster" <elminste...@QUESTOtin.it> ha scritto nel messaggio 
news:P%zCe.79593$h5.33...@news3.tin.it...


 aiuto di invito a specificare meglio il tuo problema
e spostarsi su gruppo di discussione adeguato.
-- 
Odio gli indifferenti, perche` mi da noia il loro 
piagnisteo di eterni innocenti. [...]
Sono Partigiano. Percio` odio chi non parteggia.
Odio gli indifferenti. (Gramsci)

Newsgroup: it.comp.lang.c++
Titolo: Esiste un Visual C clone gratis...?

....giusto per provare a capirci qualcosa...
Ciao.
Stefania


Prendi IoProgrammo di gennaio (e' uscito da poco). C'e' un simpatico
compilatore C a 32 bit per piattaforme windows. Non compila C++, ma e'
freeware. Ha il suo bel IDE, e quindi HIMO per iniziare lo trovo molto
piu' indicato del gcc della cignus. 
(Elimina il papero per le repliche)
Newsgroup: it.comp.lang.c++
Titolo: quesito facile facile

Il problema è il seguente: devo fare un vettore di dieci interi a caso e
fare scorrere gli elementi verso l'alto (cioè tipo: v[1]=v[2] ecc..).
L'implementazione che ho suggerito è la seguente:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main() {
 int v[10];
 char ch;
 for (int i=0; i<10; i++) {
  v[i]=rand()%100;
 }
 while(1) {
  for (int i=0; i<10; i++) {
   cout << v[i] << endl;
  }
  cout << endl;
  for (int j=0; j<9; j++) {
   v[j]=v[j+1];
  }
  v[10]=rand()%100;
  if (ch=='q') break;
  ch=getchar();
 }
}
Una volta inizializzato il vettore con il primo ciclo for, nel ciclo while
sposto di un indice le componenti e scelgo un altro valore a caso con
rand(). A questo punto si pongono due domande:
1) Ogni volta che avvio il programma, il vettore inizializzato ha sempre gli
stessi elementi: non dovrebbero essere random??
2) Quando viene reinizializzato il valore v[10] con rand(), anche questo è
sempre uguale.
Qualcuno sa dirmi dove sbaglio? Grazie
Cecco

  v[10]=rand()%100;
Gli indici degli array partono da 0, il decimo elemento di
int v[10] e' v[9]
Bye
Carlo

Cecco
Oltre ai commenti di Carlo ti aggiungo anche che nel tuo codice
la prima volta fai il confronto con 'q' senza prima aver mai
assegnato nulla alla variabile ch.	
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff