mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Attraversamento in inorder di un albero in modo iterativo

Com'è possibile attraversare in modo iterativo un albero in inorder?
cioè il corrispondente iterativo di questo:
Inorder(albero t)
{
if (t)
{
	Inorder(t->sin);
	printf(t->val);
	Inorder(t-des);
}
}
Grazie.

 ha scritto nel messaggio
news:3ebe237...@powernews.libero.it...


BassoLivello wrote:

Implementi tu lo stack.
L'algoritmo e' semplice: scendi a sinistra finche' possibile e ogni volta
fai una push. Appena arrivi al fondo a sinistra, pop di un elemento e lo
visiti. Dopodiche ti sposti a destra e ricominci a scendere a sinistra.
Nota che scendi a sinistra sempre fino al fondo, ma a destra avanzi solo di
un passo alla volta perche' subito devi controllare quando in profondita'
puoi scendere a sinistra.
Il codice e' qualcosa come questo (non l'ho provato, ma non dovrebbero
esserci errori troppo evidenti :P). Nota che suppongo BTREE e STACK
correttamente inizializzati (in particolare richiedo lo stack vuoto) e che
STACK fornisca push, popo, isempty per il tipo specifico di dato.
int btree_visit_inorder(BTREE *bt, STACK *s)
{
    /* gia' che ci siamo contiamo gli elementi */
    int cont = 0;
    BTREE *current = bt;
    if (!current)
        return cont;
 
    for(;;) {
        /* scendi a sinistra e inserisce gli elementi */
        while (current) {
            s->push(s, current);
            current = current->left;
        }
        /* visita */
        if (s->isempty(s))
            return cont;
        current = s->pop(s);
        visita(current->val);
        cont++;
        /* scendi a destra - 1 passo solo e ricomincia a sinistra */
        current = current->right;
        continue;
    }
}
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 Grazie.
Carrozzo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Com'č possibile attraversare in modo iterativo un albero in inorder?
Un'altra possibilita` e` quella di avere un threaded btree. Vedi qui:
http://datastructures.itgo.com/trees/tbt.htm
(in breve: i nodi che non hanno un figlio destro hanno invece un link al 
nodo successivo in inorder, per cui diventa semplice attraversarlo come 
una lista).
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

-- 
Cazzo vuoi?


Che cosa vuol dire O(n)?

> cioč il corrispondente iterativo di questo:

Ti ringrazio.


Che per un n (numero di elementi...) il tempo di esecuzione T va come 
una funzione polinomiale del primo ordine!
vul dire che T = alhpa*n+beta con alpha e beta costanti (per n grande...).
Ciao
Newsgroup: it.comp.lang.c
Titolo: Strano errore(secondo me)

Scusatemi ancora ma definendo un header in questo modo;
-------------------------------
#include <stdio.h>
#include <stdlib.h>
void OrdPerEta(tipoe[],int);
void OrdPerNum(tipoe[],int);
-------------------------------
con tipoe opportunamente definito,xkè il compilatore mi dà un'errore
alla linea 5(l'ultima ke ho scritto)descritto così: parse error before `['
io non vedo nulla di sbagliato...

 con tipoe opportunamente definito
Definito *dove*? A occhio manca (non c'è nel sorgente che posti, e 
l'errore pare indicare proprio quello).
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

Newsgroup: it.comp.lang.c
Titolo: generatore di distribuzione uniforme

Ciao, come posso fare un buon generatore di una densita' di probabilita'
uniforme  tra 0 e 1? Grazie a tutti :-)

 uniforme  tra 0 e 1? Grazie a tutti :-)
Ti rimando alla FAQ sul newsgroup, che puoi trovare su
www.programmazione.it
, cliccanco sul link C/C++ e poi FAQ. L'url
esatto dovrebbe essere:
http://www.programmazione.it/index.php?entity=earticlelist&idArea=35&t
ype=4
--
Leo-Panda
email: 
leo-...@libero.it
ICQ#: 105550412

Newsgroup: it.comp.lang.c
Titolo: Potete aiutarmi ?

Salve, se vi parlo di un problema di configurazione dell'ambiente IDE
Borland C++ 5.0 pensate di potermi aiutare?
Attendo vostre risposte.

 wrote in message news:8n1bt5$8a6$1...@nslave2.tin.it...

Newsgroup: it.comp.lang.c
Titolo: Registrare ODBC da programma

Vorrei registrare gli ODBC da programma senza passare dal programma
odbcad32.exe di Windows. Ho trovato qualche indicazione, ma il seguente
programma non fa niente e mi segnala un'errore del tipo ConfigDSN o
ConfigDriver failed.
Chi mi da una mano. Grazie
#include <windows.h>
#include <odbcinst.h>
#include <stdio.h>
#define MY_ODBC_SECTION           "ODBC 32 bit Data Sources"
#define MY_DB_ALIAS               "PROVA"
#define MY_DEFAULT_DB_ALIAS_VALUE "IBM DB2 ODBC DRIVER"
#define MY_ODBC_INI               "C:\\WINNT\\ODBC.INI"
void ODBC_Error_Msg ();
 
void main (void)
{
   short ret;
   char  szDSN[1024];
/*
   ret = ConfigDSN(NULL, ODBC_ADD_DSN, MY_DEFAULT_DB_ALIAS_VALUE,
"DSN=Prova\0UID=db2admin\0PWD=pippo\0DATABASE=PROVA\0\0");
   if (ret == 0)
      ODBC_Error_Msg();
   else
      printf("\nConfigDSN Succesfully\n");
*/
   memset(szDSN, 0, sizeof(szDSN));
   sprintf(szDSN,
"DSN=Prova%cUID=db2admin%cPWD=pippo%cDATABASE=PROVA%c%c",'\0','\0','\0','\0','\0');
   ret = SQLConfigDataSource(NULL, ODBC_ADD_DSN,
MY_DEFAULT_DB_ALIAS_VALUE, szDSN);
   if (ret == 0)
      ODBC_Error_Msg();
   else
      printf("\nSQLConfigDataSource Succesfully\n");
 
 
}
void ODBC_Error_Msg ()
{
   short ret;
   long  lError;
   char  szErrorMsg[1024];
   short sIgnore;
   ret = SQLInstallerError ( 1, &lError, szErrorMsg, sizeof(szErrorMsg),
&sIgnore );
   printf("\nError n. %ld : %s\n",lError,szErrorMsg);
}
ferro9
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "DSN=Prova
-- 


 Chi mi da una mano. Grazie
Probabilmente qualcuno su it.comp.programmare.win32.
-- 
Enrico 'Trippo' Porreca

>#include <windows.h>
Come puo' questo funzionare sotto Linux?
-- 
Enrico 'Trippo' Porreca

 Come puo' questo funzionare sotto Linux?
magia !!! ai confini della relata' !!!
Newsgroup: it.comp.lang.c
Titolo: gestione errore

mi potete dire le funzioni con cui si gestiscono gli errori in visual
c?
cercavo(se esiste) qualcosa di simile all 'On Error' di visual basic.
grazie

 cercavo(se esiste) qualcosa di simile all 'On Error' di visual basic.
Il C standard non ha (quasi) nessun supporto per la gestione degli
errori. Pertanto passa al C++ oppure dai un'occhiata alla structured
exception handling (SEH).
Quest'ultima e' roba MS che funziona solo su Windows e solo con VC++,
pertanto it.comp.programmare.win32 forse e' piu' appropriato.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 cercavo(se esiste) qualcosa di simile all 'On Error' di visual basic.
Non esiste. Quello che cerchi è stato implementato nei linguaggi come il C++
con le eccezioni (che hanno pure i loro lati negativi). In C la tecnica
normalmente adottata è quella di far restituire un valore di ritorno alle
funzioni (in realtà si potrebbero usare setjmp e longjmp ma è sconsigliato).
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

e in visual c++ quali sono queste funzioni?

 e in visual c++ quali sono queste funzioni?
rivolgiti al gruppo di c++ ovvero
it.comp.lang.c++
o meglio ancora, visto che programmi sotto windows
it.comp.programmare.win32
qui sei OT.
ciao,
g.

 e in visual c++ quali sono queste funzioni?
Non si tratta di funzioni, ma di costrutti specifici.
Il C++ possiede il costrutto try...catch che consente di "trappare" le
eccezioni.
In ogni caso, come ti č stato suggerito, se vuoi approfondimenti su questo
argomento rivolgiti a it.comp.lang.c++ o, se piů specificamente interessato
a Windows, a it.comp.programmare.win32.


 errori. ...
Una piccola precisazione sul quasi: Quello che il C standard prevede 
sono dei meccanismi di gestione degli errori nelle operazioni su files e 
anche il file
errno.h che contiene la definizione dell'  identificatore errno e alcune 
macro (sistema dipendenti) che identificano le condizioni di errore. Il 
valore della macro viene attribuito alla variabile errno in caso si 
verifichi quel tipo di errore. Messaggi di errore corrispondenti possono 
essere visualizzati con le function perror e strerror.
Giorgio
Newsgroup: it.comp.lang.c
Titolo: Testi "Ufficiali"

>1) Linguaggio C   (Barnigan.... ??)
Edizione italiana della bibbia del C:
Kerninghan & Ritchie, Linguaggio C - Seconda Edizione, Jackson Libri, ISBN
88-7056-443-6
Lanugo

Salve a tutti,
dovendo metterli nella bibliografia della tesi, qualcuno puo' dirmi 
quali sono i "testi ufficiali" (mica posso scivere che ho imparato
smanettando da solo o con corsi in rete) di:
1) Linguaggio C   (Barnigan.... ??)
2) Linguaggio C++  
3) Programmazione Windows (Microsoft Press...??)
4) Programmazione Windows con le MFC  (Microsoft Press... ??)
5) ANSI C e C++
Per il punto 5 mi spiego meglio: vorrei poter citare qualcosa di
ufficiale avendo detto che, per certe parti di codice (quelle non
legate alla GUI Windows), ho rispettato l'ANSI C/C++.
Grazie.
P.S. Accetto consigli vari anche da chi ha già fatto, come tesi di
laurea, qualche software...

laurea, qualche software...
ehmm... onestamente e' abbastanza avvilente che chi fa una tesi usando
un linguaggio come il C o il C++ non abbia neanche letto i testi
"sacri" su di essi :(
--
Andrea Laforgia (ICQ 87230455)
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

"sacri" su di essi :(
Mah... Sicuramente il K&R sara' una "Bibbia", ma io ho fatto tre esami
di Programmazione sul C/C++ studiandolo da Testi Universitari e non
credo di non saperne nulla ne' mi sento avvilito. Oltretutto, pur
citandolo,  mai un professore mi ha detto: "va a leggerti il K&R".
A mio avviso quello che dici sarebbe vero qualora facessi una tesi
"sul linguaggio C" oppure mi laureassi in una disciplina informatica,
cosa che non e'.
Se ti fai un giro per i dipartimenti di qualsiasi facoltà di
Ingegneria, scoprirai che si utilizzano validissimi software scritti
dai docenti stessi che pero' poco sanno di cosa sia il "Kernighan &
Ritchie".
Troverai il dipartimento di ing. edile che utilizza un software per il
calcolo delle strutture in cemento armato scritto dal professor X che
sicuramente non sa nulla di K&R;
Troverai il dipartimento di ing. meccanica che utilizza un software
per il calcolo dei gas di scarico emessi da un motore a scoppio
scritto dal professor Y che sicuramente non sa nulla di K&R;
ecc...
Eppure molti di questi software vengono usati anche dalle aziende....
Secondo me il fatto e' che per determinati tipi di software non e'
necessario essere dei "puristi" del linguaggio (certo, se lo si fosse
sarebbe meglio, ma questo lo lasciamo ai programmatori
professionisti).
In fin dei conti buona parte di questi software devono fare "solo" una
marea di calcoli; e l'importante e' che li facciano bene, utilizzando
le formule esatte e gli algoritmi opportuni. E la sintassi del C per
fare questo, non la insegna solo il K&R.
No, sinceramente non ci trovo nulla di avvilente...
Ciao e... grazie ancora.
Newsgroup: it.comp.lang.c
Titolo: strutture e byte

Ho una struttura complessa a piacere e vorrei scandirla con un puntatore 
a carattere c'è qualcuno che può darmi una mano ?

 
Ti basta dichiarare un puntatore a carattere e gli assegni l'indirizzo
della struttura forzandolo con un cast.
Es.:
struct tipo_struttura mia_struttura;
char *p;
p = (char *) &mia_struttura;
e poi te la scandisci con un ciclo o con quello che vuoi.


Ancora meglio: usa un unsigned char *, in modo da evitare i cosiddetti 
problemi di "trap representations" (particolari pattern di bit che non 
costituiscono un valore valido per un char -- invece ogni combinazione 
di bit e` un valido unsigned char) che si possono incontrare su macchine 
"strane".
-- 
Enrico `Trippo' Porreca

Newsgroup: it.comp.lang.c
Titolo: Header e funzioni INLINE.

Volendo nascondere il codice di una libreria... si può dividere questo in
due file...
uno .h e uno cpp che poi viene compilato e fornito come obj assieme al .h
Giusto?
se voglio dichiarare alcune funzioni INLINE.. ma le voglio nascondere ...
mettendole nel file .cpp e non nel file .h come faccio?
io ce le ho messe nel .cpp ma il compilatore mi da errore.
se le lascio nel .h compilo e linko... e quindi tutto funziona
ma l'utente vede il corpo della funzione.
Come faccio allora a nasconderle?
Grazie
Massi

 mettendole nel file .cpp e non nel file .h come faccio?
Mi sa tanto che non si può fare.
EMG


ICQ #34602650

Newsgroup: it.comp.lang.c
Titolo: File header?

Come faccio a sapere le funzionalità offerte da un file header in C?
Ci sono dei manuali in rete?
Qualcosa come l'SDK per le API?

 .....Nel senso che vorresti conoscere la sintassi delle funzioni e quello
che fanno?....Beh se usi il DJGPP puoi andare qui:
http://www.moniut.univ-bpclermont.fr/bibli/info/c/djgpp/libc-1.12/
io ci vado spesso!

Newsgroup: it.comp.lang.c
Titolo: [newbie] C e ordimento vettori

non riesco ad ordinare vettori e matrici in C
in fortran ci riuscivo e qua no,
so che č quasi inutile come esercizio ma  mi piacerebbe sapere come si fa
so che č diverso dal fortran ma non so in cosa
grazie in anticipo e scusate il disturbo
eugenio

non riesco ad ordinare vettori e matrici in C
Guarda sull'help del tuo manuale la funzione "qsort".
Newsgroup: it.comp.lang.c
Titolo: Tricky C

Che ne pensate della tricky C?? A mio parere è ottima... anche se non segue
sempre lo standard....
--
Ciao by JSMR

ci sono un po di errori ma nn è male.
L'unica cosa che nn mi piace è che si sofferma molto poco su cose tipo le
liste e molto su altro

 sempre lo standard....
Mon dieu... Oltre a seguire davvero poco lo standard quel tutorial e` 
veramente pieno zeppo di errori... L'unico motivo di interesse che 
poteva avere era relativo alla programmazione di TSR et similia sotto 
DOS; ora che finalmente il DOS e` morto, non rimane a mio parere alcun 
motivo per farne uso.
Se vuoi un consiglio eliminalo seduta stante dal tuo disco e procurati 
un buon libro (K&R 2nd edition), oppure uno degli unici due tutorial 
veramente buoni presenti sul web:
 
http://www.eskimo.com/~scs/cclass/notes/top.html
 
http://www.geocities.com/tom_torfs/c.html
Il primo dei due ha anche una seconda parte che tratta argomenti piu` 
avanzati, e lo stesso autore ha scritto un buon commento da leggere 
insieme al K&R. Questi sono gli indirizzi:
 
http://www.eskimo.com/~scs/cclass/int/top.html
 
http://www.eskimo.com/~scs/cclass/krnotes/top.html
Poi, le FAQ di comp.lang.c, che affrontano anche argomenti che 
difficilmente trovano posto nei libri:
 
http://www.eskimo.com/~scs/C-faq/top.html
Infine per i piu` coraggiosi ci sono le bozze pubbliche degli standard 
ANSI C (detto anche C89) e il piu` recente C99:
 
http://members.optushome.com.au/sbiber/stuff/ansic89.txt.bz2
 
http://www.lysator.liu.se/c/
Buona lettura.
PS: tutti questi documenti fanno parte delle letture consigliate dai
     frequentatori di comp.lang.c
-- 
Enrico `Trippo' Porreca


Grazie per i consigli.... e di "didattica e programmazione" di al kelley e
ira pohl... che ne dite.............. per me è favoloso. forse anche meglio
del K&R...
--
Ciao by JSMR
Newsgroup: it.comp.lang.c
Titolo: Il Cygnus GNU e' una presa per il culo ??????

#include <stdio.h>
#include <time.h>
main ()
{
int x;
time_t current_t, final_t ;
time(&current_t);
for (x=0; x < 5000; x++) printf("%i\n", x);
time(&final_t);
printf("timer iniziale %i\n", current_t);
printf("timer finale %i\n", final_t);
printf("tempo trascorso %i\n", final_t - current_t);
}
Secondo voi e' concepibile che questo semplice esempio, provato sulla
stessa macchina, cioe' un 486 DX4 120 e 64M di ram, con sistema
operativo
Win95 impiega 61 secondi, con WinNT 4.0, 6 secondi ed infine con Linux
2.0.30
0 secondi.
A questo punto mi chiedo se il Cygnus GNU e' una presa per il culo,
considerando
che lo stesso programma scritto in Perl sotto Win95 impiega 10
secondi...
Per favore, se avete una soluzione a questo dite pure.
Premetto che ho provato lo stesso programma su un Pentium Pro 200 con
256 Mbyte
di ram, e il risultato e' stato di 56 secondi sotto Win95.
Grazie per le vostre risposte
Pasquale Patti
--
Automatic posted from 
dns.mediatel.it
 [194.184.250.2]
via Mailgate Server - 
http://www.mailgate.org

operativo
ma secondo te e' concepibile che un programma "vero" faccia uno scroll
di 5000 righe su una console ?
Non conosco il Cygnus ma un test del genere non e' significativo
neppure per il basic, prima di criticare compila e prova un programma
che abbia un senso. ;)
Gianpaolo Bottin
- Live Long and Prosper -

256 Mbyte di ram, e il risultato e' stato di 56 secondi sotto Win95.
Ovvero il minimo per fare un server con NT :)
---
BugBarbeq - IRC nicks: root, bofh
Kawasaki ZZ-R 1100 (col musetto che trema)

 0 secondi.
Lo stesso test con un programmino scritto in delphi ci ha messo qualche
secondo 
( cyrix-166 - 32 Mb ram - w95 ) : la differenza è troppa !
Prova a scrivere qualche altro test ( che non testi solo output ) e
farci ( farmi )
sapere i risulatati ...
-- 
... qualche volta al tramonto mi prende la malinconia, e poi
all'improvviso arriva questo vento fresco che se la porta lontano, è un
vento strano che non ho mai sentito da nessun'altra parte, è un vento
leggero che mi vuole bene ...
da IL BAGNO TURCO

Newsgroup: it.comp.lang.c
Titolo: esponenziale

Ciao a tutti, vorrei sapere come posso fare ad implementare un
esponenziale.Grazie
Andrea

 esponenziale.Grazie
Esponenziale di cosa?
All'indirizzo 
http://digilander.iol.it/nfragale/metodi/espon.html
 e` 
descritto un semplice algoritmo utlizzante lo sviluppo in serie di Mac 
Laurin, con un esempio in Fortran, per il calcolo dell'esponenziale di 
un numero reale dato.
-- 
Baci,
Mony
Newsgroup: it.comp.lang.c
Titolo: pow

La funzione pow(x, y) che eleva x alla y mi da problemi in alcuni casi. Se ad esempio faccio pow(8, -10) quello che mi ritrovo non è più 8 alla -10, ma un'altro valore, perchè?
grazie e ciao

 La funzione pow(x, y) che eleva x alla y mi da problemi in alcuni casi. Se
ad esempio faccio pow(8, -10) quello che mi ritrovo non è più 8 alla -10, ma
un'altro valore, perchè?
Forse perche' non usi per visualizzare %g o %e
dovrebbe andare:
  printf("%g\n", pow(8.0,-10.0));
con %f forse non ti va


ha scritto: 



no, no anche il debugger mi da un valore diverso, infatti anche i
calcoli vengono sbagliati
ciao
--------------------------------
Inviato via 
http://usenet.iol.it
 

 calcoli vengono sbagliati
Un po' di codice? Quale sistema, librerie?

 
float mod;
mod = pow(8, -10);
il codice è essenzialmente qui, se vada a leggere il valore di mod è sballato, uso linux è la libreria è la libm
grazie e ciao

 ? sballato, uso linux ? la libreria ? la libm
anche io uso il gcc e la libm:
(gdb) print mod
$1 = 9.31322575e-10
che e' il risultato corretto. che ti aspettavi?
-- 
Onofrio Panzarino, Ancona, Italy
"In his house at R'lyeh dead Cthulhu waits dreaming."

 wrote in message
news:20020526163136...@libero.it...

Sei avaro con l'informazione!!!
Quale allora il tuo risultato?
Su gcc (e non solo) dovrebbe dare 9.313226e-10.
#include <stdio.h>
#include <math.h>
int main(void)
{
    float p;
    p=pow(8,-10);
    printf("%e\n",p);
    printf("%e\n",pow(2.0,-30.0)); // stesso risultato
    return 0;
}

 
sia a te che onofrio viene giusto, ma compilando queste linee di codice ottengo 1.078961e-11
boh!
grazie e ciao

 wrote in message
news:20020527144634...@libero.it...

Strano e'. Che versioni usi? Al limite direi di installare l'ultima versione
della libm.
Newsgroup: it.comp.lang.c
Titolo: Creazione di una DLL [Urgentissimo][HEEEELPPP!!!!]

Situazione abbastanza caotica: ho un'api che non riesco a chiamare dal VB,
cosi' devo creare all'uopo una DLL che contiene la chiamata all'Api. La dll
la richiamo da Vb e il gioco e' fatto.
Problema, non riesco ad esportare la mia funzione...
Mi spiego meglio:
Ho creato una DLL (non MFC) in C con il Visual Studio 5.00 seguendo le
istruzioni e l'help. Ho messo i dllexport dove dovevano essere, ma quando
vado a richiamare la funzione da VB non trova l'entry point della funzione
richiesta.
Inoltre, se faccio l'anteprima della DLL non mi da' una export table.
Questa e' la funzione che dovrei esportare:
HWND __declspec(dllexport) WINAPI VBMCIWndCreate(HWND hwndParent, HINSTANCE
hInstance, DWORD dwStyle)
Ah, tra l'altro pero' ho verificato che la funzione DllMain viene chiamata
correttamente...
Dai, raga, mi date una mano? Pleeeeaaaaaseeeeee...
Poi restituisco il favore, ok??
Byez!
--
Posted from [195.120.240.66]
via Mailgate.ORG Server - 
http://www.mailgate.org

il 5 Jan 2000 11:36:17 +0100, 
dt...@telcen.it
 ("Drizzt") scrivette:
--->Situazione abbastanza caotica: ho un'api che non riesco a chiamare --->dal
VB,
Il problema è che VB passa alcuni parametri in modo "strano": ad esempio le
stringhe sono SEMPRE UNICODE, e così i CHAR, la cosa è commentata in vari
articoli del msdn, che puoi trovare sul sito di Billy "the glass" Gates.
____ __         __,_      __  _____  
\  _\_ \  ___ _/ / /\  /\/  \/ / _/ It is better to reign in Hell 
 \  _ \ \/ _ '/ , |\ VV / / / / _/ Than serve in Heaven.- MILTON 
  \_,_/\_\_,_/_/|_| \__/\__/_/_/  
      -- the one and only --     e-mail : 
blak...@tiscalinet.it
 
                                ICQ    : 59394345  
The UNIX Guru's View of Sex:   
$unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep
Newsgroup: it.comp.lang.c
Titolo: Domanda su generatore di numeri casuali rand().

Salve a tutti.
Sto utilizzando il generatore di numeri casuali rand() per alcuni 
programmi, ma mi sembra che i numeri non escano tutti con la stessa 
probabilità. Voglio dire che vi sono numeri che escono molto spesso ed 
altri che, al contrario, escono raramente.
Ad esempio sto utilizzando l'espressione rand() % 37 per gestire i 
numeri usciti nel gioco della roulette, ma vi sono numeri, come il 16 e 
il 25, che escono molto spesso, mentre altri, tipo lo 0, non escono 
pressoché mai. Da cosa può dipendere?
Aggiungo che, per inizializzare rand(), utilizzo la chiamata srand(time
(NULL)), avendo precedentemente incluso <stdlib.h> e <time.h>.
Un saluto e grazie a tutti.
Bizio.

 pressoché mai. Da cosa può dipendere?
http://www.lysator.liu.se/c/c-faq/c-12.html#12-8
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
http://www.lysator.liu.se/c/c-faq/c-12.html#12-8
Salve a tutti e scusate il ritardo.
Nella sezione di FAQ segnalataci da Andrea (ma probabilmente ero l'unico 
a non conoscerla:-)), si dice che i bit meno significativi dei numeri 
generati tramite rand() non sono casuali. Per questo è preferibile 
utilizzare i bit più significativi, mediante espressioni del tipo:
        (int)((double)rand() / ((double)RAND_MAX + 1) * N)
Potreste spiegarmi esattamente cosa significa questa frase? 
Per chiarezza, ne riporto la versione originale.
***
Poor pseudorandom number generators (such as the ones unfortunately 
supplied with some systems) are not very random in the low-order bits. 
[e fin qui ci siamo...]
(In fact,
for a pure linear congruential random number generator with period 2**e, 
and this tends to be how random number generators for e-bit machines are 
written,
the low-order n bits repeat with period 2**n.) 
[Questa frase non sono riuscito a tradurla, se non nell'ultima parte. ]
For this reason, it's preferable to use the higher-order bits: see 
question 
13.16. 
[Questa l'ho tradota, ma non capisco perché un'espressione come quella 
scritta sopra utilizzi i bit più significativi.
Un saluto a tutti e perdonate la lunghezza.
Bizio.

 maggiori di quello che ottieni per 0. E' così? Io non credo.
In effetti credo tu abbia ragione. La differenza è minore di quanto mi 
aspettassi. 
Posto il risultato di un'esecuzione del programma.
***
0	250
1	241
2	269
3	256
4	255
5	256
6	279
7	286
8	282
9	258
10	261
11	250
12	252
13	281
14	283
15	247
16	276
17	298
18	300
19	254
20	293
21	271
22	268
23	269
24	261
25	283
26	291
27	297
28	280
29	256
30	287
31	261
32	290
33	244
34	258
35	270
36	287
Ciao 
Bizio.
Newsgroup: it.comp.lang.c
Titolo: [OT] Progettazione del software

Buon giorno,
secondo voi dove posso trovare del buon materiale per imparare bene la
progettazione del software?
La progettazione scadente è per me un grosso handicap che vorrei
colmare.
Suggerimenti? Io sto cercando su google nel frattempo.

 progettazione del software?
Ti posso consigliare questo testo:
http://www.amazon.co.uk/Software-Engineering-Practitioners-Roger-Pressman/dp/0071267824/ref=sr_1_1?ie=UTF8&s=books&qid=1258209525&sr=8-1
che personalmente trovo molto buono. Poi bisogna vedere esattamente che
cosa ti piacerebbe studiare.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Essenzialmente sto cercando di cambiare metodo, a schematizzare meglio
il pensiero e
trasformarlo così più facilmente in software. Io vedo che i miei amici
informatici sono molto bravi in questo, io invece commetto errori
grossolani e spesso mi caccio in vicoli ciechi. Questo è quanto, da
programmatore-della-domenica vorrei diventare non dico un ottimo
programmatore ma quanto meno uno standard, insomma... in grado di
scrivere codice più ordinato, più modulare e magari imparare meglio la
programmazione ad oggetti. Tutto qui :-)

 grossolani e spesso mi caccio in vicoli ciechi.
Be', quando non si ha esperienza � normale. Comunque molto dipende da come
sei abituato a ragionare nella vita di tutti i giorni. Molti programmatori
sono pessimi programmatori proprio perch� ragionano male e il loro codice
riflette il processo dei loro pensieri. Fondamentalmente devi lavorare
sulla tua capacit� di astrazione. Se � vero che molto ce l'hai gi� di tuo,
molto altro lo puoi sicuramente imparare. Astrarre � sicuramente
l'attivit� pi� frequente in programmazione e bisogna anche imparare a non
esagerare con essa, finendo nel produrre cattedrali per svolgere compiti
semplici (cose che ho visto fare innumerevoli volte). Essere buoni
programmatori non � affatto facile e per questo ti conviene studiare
qualche libro sul design di un sistema. I libri di Bertrand Meyer [1]
possono essere un valido aiuto cos� come quelli su pattern e antipattern
[2]. C'� la famosa trilogia di Knuth [3], ci sono i testi di Kernighan e
Pike [4]. C'� tanto poi da studiare anche riguardo le tecnologie
specifiche che vuoi utilizzare.
[1]
http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554
[2]
http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Dstripbooks&field-keywords=design+pattern&x=0&y=0
[3]
http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Dstripbooks&field-keywords=knuth&x=0&y=0
[4]
http://www.amazon.com/Practice-Programming-Brian-W-Kernighan/dp/020161586X/ref=sr_1_1?ie=UTF8&s=books&qid=1258283345&sr=1-1


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
OK, Grazie mille per i consigli :)
Newsgroup: it.comp.lang.c
Titolo: Una volta per tutte o di volta in volta?

Dal punto di vista del rendimento in termini di velocità e memoria è
meglio assegnare il risultato di un calcolo matematico ad una variabile
e, in fase di output (es. nella printf) usare la variabile o invece
calcolare al momento stesso di impostare l'output?
esempio:
#include <stdio.h>
int main()
{
int xyz;
xyz=3*4;
//così
printf("%d\n",xyz);
//o così ?
printf("%d\n",3*4);
return 0;
}
-- 
Qui si usa Linux
http://www.puppylinux.org

 printf("%d\n",3*4);
Se il risultato del calcolo è usato solo una volta IMO non fa molta 
differenza.  Un compilatore con un'ottimizzazione aggressiva potrebbe 
produrre lo stesso codice nei due casi.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 produrre lo stesso codice nei due casi.
in effetti gcc lo fa gia' dall'ottimizzazione O1, e in genere negli
IDE e' impostata di default a O2.
Newsgroup: it.comp.lang.c
Titolo: Problema di immagini

Il mio problema è che ho una matrice NxN di float nella quale devo caricare
un'immagine. Se l'immagine è un file bitmap di dimensione NxN come faccio a
caricarla e poi a salvarla nella matrice???
Ciao

 wrote in message
news:9ulsfo$ea$1...@nreadb.inwind.it...


Newsgroup: it.comp.lang.c
Titolo: Mergesort e funzione merge

Riguardo la funzione mergesort....
void mergesort(int x[], int i, int j)
{
int middle = (i+j) /2;
if (i <= j)
{
	mergesort(x,i,middle);
	mergesort(x,middle+1,j);
	merge(x,i,middle, j);
}
}
La funzione merge come dovrebbe essere realizzata?
Ho trovato delle difficoltà a realizzarla.
Sapete darmi una dritta?
Vi ringrazio.

 Vi ringrazio.
Con il tuo prototipo di funzione:
La funzione merge usa un array di appoggio per fondere insieme le due
sequenze ordinate.
Prendiamo per esempio le due sequenze ordinate da fondere.
5689 e 2347
hai un array di appoggio di 8 elementi:
[ ]  [ ]  [ ]  [ ]  [ ]  [ ]  [ ]  [ ]
 Hai due indici i,j. i punta a 5, j a 2.
Quale e' il minore dei due? -> 2
Metti due nell'array e incrementi j di uno, j ora punta a 3.
[2]  [ ]  [ ]  [ ]  [ ]  [ ]  [ ]  [ ]
Quale e' il minore di 5 e 3? -> 3
Metti 3 ed incrementi j, ora j punta a 4
[2]  [3]  [ ]  [ ]  [ ]  [ ]  [ ]  [ ]
Quale e' il minore di 5 e 4? -> 4
Metti 4, ++j, ora j punta a 7.
[2]  [3]  [4]  [ ]  [ ]  [ ]  [ ]  [ ]
Quale e' il minore di 5 e 7? - > 5
Metti 5, incrementi i, ora i punta a 6
[2]  [3]  [4]  [5]  [ ]  [ ]  [ ]  [ ]
Il processo termina quando hai copiato tutti gli elementi di entrambe le
sequenze ordinate.
Quando hai finito il tutto:
[2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]
Copi questo array all'interno delle 4+4=8 posizioni delle due sottosequenze.
Putroppo devi usare un array di appoggio, altrimenti se non lo usi (fai in
situ), la complessita computazionale si alza in quanto invece di "fondere"
ti metti ad "ordinare" (se fondi in situ fai un casino invece!)
Un metodo migliore, invece di allocare un array di appoggio ogni volta che
chiami merge(), consiste nel averne uno della stessa dimensione dell'array
originale, sempre presente. Poi, nel caso di ora, usi solo otto elementi.
Ammetto che e' parecchio tempo che non ripasso il mergesort, questo e'
quello che mi ricordo a memoria. Spero possa essere servito. Se hai qualche
altra domanda provero' a rispondere, al massimo dovro' riaprire qualche
pagina impolverata e ripassare un pochino.
Tommy

nos...@libero.it
 (BassoLivello) scrisse:

Bene ora funziona.
Newsgroup: it.comp.lang.c
Titolo: Matrici senza matrici

Ciao a tutti...
Sono alle prese con il classico progettino universitario... purtroppo come
studente lavoratore non sono riuscito a frequentare il laboratorio quindi mi
ritrovo con qualche intoppo pratico...
Devo rappresentare un suolo fatto da x righe e e y colonne e dei rilevamenti
che in pratica sono delle sottomatrici dello spazio.
Banalmente verrebbe da pensare di usare una megamatrice per il suolo e delle
minimatrici per i rilevamenti.
Ma da specifica si dice chiaramente che una megamatrice enorme per contenere
pochi rilevamenti non è efficiente.
Io pensavo in qualche modo di usare hash...
Poi le specifiche richiedono nessun limite, se non il limite del tipo dato
intero, sia per la grandezza e il numero di rilevamenti che per il suolo.
Come fare?
Con le matrici sono capace ma queste non possono essere inizializzate da una
variabile...
Chi mi da qualche suggerimento (poi per carità implemento da solo)
Grazie
Mirko

Ciao Mirko,
non ho ben chiaro quali siano i limiti imposti dal professore.
Immagino che almeno la matrice per le coordinate ti serve!
Se almeno quella la puoi sviluppare, scrivi qualcosina di più inerente
al problema.
Ciao

 rilevamenti che in pratica sono delle sottomatrici dello spazio.
Il 10 gennaio su questo newsgroup già un'altro ha chiesto la stessa cosa. 
Guarda la risposta che ho dato a quel post. Chi ha fatto la domanda, come al 
solito non ha dato nessun tipo di feedback, quindi non so se poi gli sia 
piaciuta. Per me è una soluzione valida. Per la cronaca, hai 8 giorni per 
consegnarlo, quindi sbrigati!
-- 
Costantino Grana 

 Per la cronaca, hai 8 giorni per consegnarlo, quindi sbrigati!
:-))))
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 :-))))
Ho ricontrollato, va consegnato entro il 28. Solo 6 giorni. :-)
-- 
Costantino Grana 

 per qualcosa o se il tizio non si č neppure mai piů collegato!
Probabile che quando ha letto la parola kd-tree si sia
spaventato...
ciao,
g.

 spaventato...
Impossibile, l'esame si chiamava "Laboratorio di Algoritmi e Strutture 
Dati". Quindi immagino abbiano fatto un sacco di tecniche per 
l'indicizzazione! [dopo un controllo sul sito del corso] Ops... no, non ne 
avevano fatte... :-) Beh, mettiamola cosě, se avesse usato un kd-tree faceva 
un figurone! Poi c'č il codice su Wikipedia...
Ciao.
-- 
Costantino Grana
Newsgroup: it.comp.lang.c
Titolo: Help with "getenv"

Help! need to finish my program.. but I need to get brief info on
"getenv".. how it is used...
Any help would be greatly appreciated.
Gloria

From MSDN library:
char *getenv(const char *varname);
Get a value from the current environment.
Return Value:
Each of these functions returns a pointer to the environment table entry
containing varname. It is not safe to modify the value of the
environment variable using the returned pointer. Use the _putenv
function to modify the value of an environment variable. The return
value is NULL if varname is not found in the environment table.
Parameter:
varname
Environment variable name
Remarks
The getenv function searches the list of environment variables for
varname. getenv is not case sensitive in Windows NT and Windows 95.
getenv and _putenv use the copy of the environment pointed to by the
global variable _environ to access the environment. getenv operates only
on the data structures accessible to the run-time library and not on the
environment “segment” created for the process by the operating system.
Therefore, programs that use the envp argument to main or wmain may
retrieve invalid information.

--
ENG: To reply my message remove "NOSPAM" from the address.
ITA: Per rispondere al mio messaggio togliere "NOSPAM" dall'indirizzo.

Newsgroup: it.comp.lang.c
Titolo: execl

scusate sono alle prese con il laboratorio di informatica II, un aiuto...
secondo voi č giusto fare in questo modo
int ret;
...
...
pid=fork();
if (pid==0) [
ret=execl(path, path, string1, NULL);
exit(ret);
]
wait(&stato);
supponendo che execl fa partire un comando che ritorna un valore (presumo
intero) e questo deve essere restituito dal padre, a me sembra giusto fatto
sta che dava errori, č possibile che la execl non restituisca valori?
--
<< m @ c y >>
aErOsMiTh   FoReVeR

No,guarda che execl non RESTITUISCE un comando, ma sostituisce il processo
che chiama execl con un processo associato al programma passato come
parametro alla funzione...
Ciao!


La execl ritorna solo se c'e' stato un errore, e in tal caso ritorna
l'intero -1.
Altrimenti non ritorna nel senso che sostituisce l'esecuzione del processo
corrente con quello che gli viene detto di eseguire.
Una cosa sicuramente da modificare sono le parentesi quadre [], che
ovviamente devono essere graffe {}.
Occhio al prototipo della funzione:
int execl(const char *path, const char *arg, ...);
bisogna passargli:
1) il path del comando da eseguire
2) 1° argomento
3) 2° argomento
4) ...
Dalla tua chiamata sembra che tu gli passi
1) il path
2) il path
3) 1° arg
4) 2° arg
se fai un "man execl" scopri tutto anche da te.
Ciao,
Ema
Newsgroup: it.comp.lang.c
Titolo: problemi con signal & socket

Salve!
Lavorando ad una mini applicazione client-server (sotto linux)
e utilizzando socket in modo asincrono mi sono trovato davanti il seguente
problema:
Con sigaction(SIGPOLL, &act, NULL) gestisco il verificarsi di una SIGPOLL
utilizzando il flag SA_SIGINFO.
In questo modo per sapere quale file descriptor ha generato la signal vado
a controllare il valore si_fd che in base a quanto dice man dovrebbe
dirmi qual'e' il fd al quale e' associata l'operazione di IO.
(Cioe' in pratica definisco il il mio handler(int signo, siginfo_t *info,
NULL)  e nel suo interno stampo su schermo info->si_fd)
In realta' si_fd vale qualcosa del tipo -1024983040 in un pc in assenza
di rete ed in genere vale sempre 0 in presenza di rete (non certo il
valore da me atteso).
Ammetto di non essere un esperto di c e di socket ma i settaggi
(fcntl e sigaction) credo siano corretti (a meno che lo Stevens non sia
attendibile).
Qualcuno potrebbe darmi qualche spiegazione?

problema:
it.comp.os.linux.development
Newsgroup: it.comp.lang.c
Titolo: dichiarare array di puntatori a char

Ciao,
č giusto scrivere cosě per dichiarare un'array di puntatori a char?
char *(parola[256]);
Grazie
Ciao

> char *(parola[256]);
va bene anche solo char *parola[256];

Newsgroup: it.comp.lang.c
Titolo: Gestione stringa

Ancora ciao, non riesco a capire un altro strano comportamento.
Devo aprire un file con fopen(), allora acquisisco il nome da
terminale in questo modo:
char buff[40];
g_print("Immetti il nome del file (massimo 40 caratteri):");
fgets (buff, sizeof(buff), stdin);
Se passo a fopen() questa stringa non mi apre il file, e ho provato
che l'array di char deve essere allocato delle stesse dimensioni della
stringa contenuta per funzionare.
Allora ho risolto così:
char* filename; // sopra
filename = (char*)malloc ((strlen(buff))*sizeof(char)); // dopo la
fgets
for (i=0;i < strlen(buff);i++) filename[i] = buff[i];
filename[strlen(buff)] = '\0';
FILE* file = fopen (filename, "r");
strlen(buff) mi restituisce effettivamente la lungheza giusta, ma
passando filename a fopen() non mi apre il file.
Invece, in questo caso, immettendo una stringa di 40 caratteri e
passando buff a fopen() apre il file.
Perchè mai?
CIao e vi ringrazio


Hai provato a rimuovere il '\n' che viene memorizzato nel buffer?
$ man fgets
......
fgets() reads in at most one less than size characters from stream and 
stores them into the buffer pointed to by s.  Reading stops after an 
EOF or a newline.  If a newline is read, it is stored into the 
buffer.   A '\0' is stored after the last character in the buffer.
......
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >


Hai perfettamente ragione, funziona tutto correttamente cambiando in
filename[strlen(buff) - 1] = '\0';
perchè l'ultimo carattere era un \n.
Pensavo di evitarlo ciclando per i<strlen(buff) ma aveva fatto male i
conti :)
Grazie ancora e ciao

 filename[strlen(buff) - 1] = '\0';
Attenzione che l'ultima riga del file potrebbe non avere il '\n' in fondo.
E.

 char buff[40];
a parte il #define MAXLEN, c'è qualcun altro che dichiara le stringhe come 
<const> + 1? Il vantaggio in termini di chiarezza è che <const> è la 
lunghezza effettiva in caratteri. Solo una mia curiosità... è quello che ci 
fa fare il mio prof all'università. Sebbene spieghi molto bene, a volte 
credo che certe sue soluzioni siano troppo "didattiche" e molto poco 
pratiche: ad esempio, spinge perché usiamo il TURBO-C al posto di tools imho 
più "produttivi" come Dev o C::B :).
-- 
We've all heard that a million monkeys banging on a million typewriters
will eventually reproduce the entire works of Shakespeare. Now, thanks
to the internet, we know this is not true.      -- Robert Silensky
~> 
http://scriverefantascienza.blogspot.com/
Newsgroup: it.comp.lang.c
Titolo: cursore

Ho questo problema:
ho fatto un programma per gestire numeri nome , numeri di telefono e
indirizzi
per scorrere la lista ho fatto un menu tipo telefono cellulare dove ogni
volta che scorro su o giu' il cursore si posiziona su un nuovo nome,
vorrei sapere se e' possibile nascondere il cursore lampeggiante

"Giovanni Casu" <qgio...@tin.itq> ha scritto nel messaggio
news:3ACDA711...@tin.itq...

Se usi il DJGPP puoi usare:
_setcursortype(_NOCURSOR);
(credo definita in conio.h)
Se non mi ricordo male vale lo stesso per Turbo C (ma non ci metto la mano
sul fuoco).

 sul fuoco).
Si c'e' anche nel borland e funziona grazie
Newsgroup: it.comp.lang.c
Titolo: *****funz ma che è?

 potreste farmi un esempio pratico?
Esempio classico è quello dell'allocazione dinamica di una matrice.
Comunque oltre il puntatore a puntatore è molto difficile che si usi.
EMG

Comunque oltre il puntatore a puntatore è molto difficile che si usi.
Be', non direi, ci sono diversi casi in cui risulta molto utile (non
sono cosi' infrequenti)...
Certo, piu' "a puntatore" aggiungi, meno utilita' ne deriva ;)
--
Andrea Laforgia (ICQ 87230455)

Newsgroup: it.comp.lang.c
Titolo: Socket UDP

Qualcuno ha sotto mano dei sorgenti e della documentazione per scrivere una
coppia Client e Server che comunicano via UDP ( No TCP ) ?
AGrazie.
Yellow

coppia Client e Server che comunicano via UDP ( No TCP ) ?
Cerca i tutorial in rete di Dennis Cox.
Ha scritto routine sia per l'UDP che il TCP.
I sorgenti sono per Borland C++ Builder.
Andrea Laforgia
Newsgroup: it.comp.lang.c
Titolo: Funzioni grafiche

Avendo molto apprezzato le numerose risposte gią ricevute in questo
newsgroup in merito a mie precedenti domande,
vorrei sottoporre alla vostra cortese attenzione questo mio problema,
conscio che forse rappresenta un argomento un po' OT.
Avendo cominciato ad usare il DJGPP per compilare un mio progetto d'esame
(questo compilatore mi permette di accedere a tutta la memoria con malloc e
calloc) avendo poco tempo a disposizione per imparare tutto ciņ che si puņ
su esso, vorrei sapere quale header includere per poter accedere alle
seguenti funzioni grafiche:
inizializzazione grafica
disegno di linea
disegno di rettangolo
chiusura ambiente grafico
Tutto ciņ in ambiente DOS.
Vi sarei inoltre grato se potreste anche scrivermi un minimo codice driver
che sfrutti queste funzioni.
Grazie anticipatamente,
giovann...@libero.it

Grazie anticipatamente,
Il DJGPP non prevede normalmente il supporto per questo genere di
funzioni, quindi dovrai scaricare una libreria specifica per poterle
utilizzare. La libreria Allegro ad esempio, scritta per DJGPP, é fatta
apposta per la gestione della grafica e del sonoro. La potrai trovare
su: 
http://www.multiplayer.it/sos/rowmat/rowmat.htm#sound
Ciao!!
Il Ghenio
-----
Proteggeremo il mondo della devastazione!
Uniremo tutti i popoli nella nostra nazione!
Denunceremo i mali della verità e dell'amore,
Estenderemo il nostro potere fino alle stelle.
Jesse!
James!
Team Rocket pronto a partire alla velocità della luce.
Arrendetevi subito oppure preparatevi a combattere.
Miaaaoooo, proprio cosi'!
(Team Rocket)
-----

> Tutto ciň in ambiente DOS.
Potrei spedirti del vecchio codice che compilava su Turbo C++3.0.
Se smanetti un po' dovresti riuscire ad usarlo con poca (!) fatica.
Scrivimi in e-mail se lo vuoi.
--
Alessandro Monti

Vi ringrazio per le risposte però purtroppo...
...non avendo il tempo per capire come funzionano le librerie allegro o
grx20 ho scritto quelle tre quattro righe di assembler che facevano al caso
mio (tanto più di 640*480 a 16 colori non ho bisogno). Il problema che è
nato è che mi accetta tutti
i modi grafici tranne il 12H.
Non capisco perché, ma il 12H mi risulta uguale all'11H.
Cioè a partire da A000H ho a disposizione solo 160*240 bytes (totale 640*480
bit (2 colori) anche con la 12H.
Avendo purtroppo bisogno di almeno 4 colori sono costretto ad usare la 13H
che però ha una risoluzione di 320*200.
Non capisco... eppure con altri compilatori riuscivo perfettamente a usare
correttamente la 12H...
Qualcuno mi può aiutare?

Davvero, scarica Allegro. E' mooolto semplice e ti consente anche di ricompilare
il tutto
per DirectX senza cambiare una riga!!

Newsgroup: it.comp.lang.c
Titolo: segmentation fault


http://www.poli.studenti.to.it/~s93146/
UNIX is alive, and is back!

while(fscanf(fp,"%s%s%d", nome, cognome, &ritardo)!=EOF) {
fscanf restituisce il numero di elementi convertiti
correttamente. Dovresti cambiare la condizione di
uscita dal loop:
  while(fscanf(fp,"%s%s%d", nome, cognome, &ritardo)==3)
  {
    ...
  }
Il motivo del segmentation fault non e' determinabile
senza poter vedere cosa fai prima e all'interno del ciclo.
Sei sicuro di aver allocato correttamente lo spazio per
cognome e nome ? Dici che si tratta di char * ma non
dici come e' stato allocato lo spazio puntato.
Se ci si dimentica di allocare lo spazio per memorizzare
una stringa gli effetti (di solito disastrosi) possono
rendersi evidenti anche molto tempo dopo l'uso delle
variabili che non sono state correttamente inizializzate.
Contrariamente a quanto a volte si sente dire sconfinare
da un array o usare un puntatore inizializzato *NON*
garantisce che si generi un segmentation fault. 
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

garantisce che si generi un segmentation fault. 
Difatti.
In realta' lo standard credo che affermi che l'aritmetica dei
puntatori ha comportamento definito sino a che si rimanga nello spazio
allocato.  Sconfinare puo' produrre risultati indefiniti.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 dici come e' stato allocato lo spazio puntato.
ok, grazie.
Cmq ho risolto, e infatti il problema era che non avevo allocato in
modo giusto lo spazio per nome e cognome.
Grazie
Saluti

Newsgroup: it.comp.lang.c
Titolo: Qualcuno mi spiega come pilotare il mouse in C (non C++).

Salve, 
come da Subject,
come posso pilotare il mouse in C (non in C++) ?
Ad esempio come controllare se e' stato premuto il tasto di destra o di
sinistra? 
Qualsiasi aiuto e' piu' che gradito.
 Un saluto.
CordialeMente.
 Thomas Cocco

sinistra? 
con quale sistema operativo ? Immaginando che tu stia usando l'ms-dos
dopo aver installato il driver del mouse c'e' disponibile l'INT 33 con
tutta una serie di funzioni per la gestione del mouse. Per maggiori
info sull'uso dell'INT 33 puoi consultare l'ottima "x86/MS-DOS
Interrupt List" di Ralf Brown, la puoi trovare su VolFTP:
ftp://volftp.tin.it/pub/pc/msdos/programming/inter57a.zip
Gianpaolo Bottin
- The truth is out there -

Newsgroup: it.comp.lang.c
Titolo: Directory

Saluti a tutto il newsgroup!!!
(domanda x l' OS Winzozz)
Ho una domandina da fare riguardo l'eventuale capacità di gestire le
directory in C.
E' possibile creare un programma che x es. cerchi un determinato file
in una directory (per esempio "c:\programmi\pinco_pallino\qualcosa\")
e tutte le sue sotto-directory? O che magari si limiti semplicemente a
riportare i nomi dei file contenuti (il buon vecchio comando "dir" del
DOS...)
Che comandi devo utilizzare?
Uso il Borland C 3.0
E' anche possibile poi inviare uno o + file allegati in una email? 
Devo creare delle socket come si fa nella programmazione in Linux??
Thanks!!
Mauro

(domanda x l' OS Winzozz)
non credi quindi di doverla postare da qualche altra parte?
antonio

"Mauro" <mauroarnoldi@ODIO_LO_SPAMinwind.it> wrote in message
news:3d75b97...@powernews.inwind.it...

Vedi le funzioni findfirst e findnest  (estensioni Borland)
HTH

 
ti consiglio di guardare la guida di Borland,
mi sono scritto un semplice programma che va a leggere tutti i file
*.htm esistenti nella cartella dei file temporanei di Windows
superiori ad un limite e me li salva dentro un archivio ben
organizzato.
questo significa che ricerco tutti i file e le sottodirectory nascoste
e non.
prima di leggere la guida non sapevo niente sulla gestione dei file,
delle directory,
meno di zero sugli attributi e le strutture che DOS gestisce per
organizzare questi file...
dai un'occhio alla guida, c'è molto più di quello che cerchi... ;)
bye duido

Newsgroup: it.comp.lang.c
Titolo: [HELP] Dinuovo DEV C++

Ecco un altro problema. C è qualche anima pia che mi manda anche il file
stdio.h
Non capisco come mai ma non riesco a far funzionare il suddetto ambiente
Qualche utilizzatore me la potrebbe mandare in posta a 
trun...@libero.it
Grazie di tutto

 Non capisco come mai ma non riesco a far funzionare il suddetto ambiente
it.comp.programmare.win32?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:%sHE9.24006$2B1.6...@twister2.libero.it...
