mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: librerie in C?

quando si chiama una libreria in C si deve scrivere header file.h nel
non compilato; quello che non mi è chiaro è dove si trovano le
funzione descritte nel file.h.
In questi ultimi giorni mi è capitato di scrivere (con un qualche
aiuto) un piccolo insieme di funzioni;
come posso fare a realizzare una libreria con tali funzioni?
Il modo per realizzarle è compilatore dipendente ? (io uso il Borland
e sarei OT)
Saluti  

e sarei OT)
Su questa parte non sono molto preparato, quindi potrebbero esserci
imprecisioni o punti oscuri.
Innanzitutto terminologia: tu stai parlando di creare una libreria
linkata dinamicamente.
Realizzare una libreria linkata dinamicamente e', a livello di
implementazione, come realizzare un qualsiasi modulo del tuo progetto
(ad accezione che dovresti dichiarare i prototipi delle funzioni come
extern), quello che cambia e' che il tuo file oggetto (il classico .o)
non lo devi passare al linker, ma devi passarlo a dei programmini
apposta che lo "trasformeranno" in una libreria.
Successivamente nei tuoi programmi dovrai caricare questa libreria per
avere accesso alle funzioni e includere il file di header per avere i
prototipi delle funzioni.
Quello che non e' standard (e per cui dovresti chiedere sui ng
specifici) sono:
- il modo di creare la libreria
- il modo di caricare una specifica libreria
Per Linux per es. c'era un articolo su Linux & Co. del mese scorso, il
codice e' C++, ma per quando riguarda il modo di creazione delle
librerie non dovrebbe cambiare nulla.
Ti rimando per risposte specifiche:
news://it.comp.programmare.win32
news://it.comp.os.linux.development
-- 
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."

 compilatore dipendente ? 
Decisamente. Se   vuoi  compilare   la   libreria  una   sola  volta   e
riutilizzarla in vari progetti  allora devi cercare nella documentazione
del tuo compilatore.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Ci sono due cose che l'uomo non puo` nascondere:
essere ubriaco ed essere innamorato.

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

Avendo a disposizione un enum 
enum S = { a b c}
ed avendo a disposizione una variabile 
enum pippo.
Come dovrei fare per sapere se pippo appartiene ad S.
Ciao e grazie a tutti 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Dovresti studarti un attimo cosa è una enum e come si usa. A quel punto 
capiresti che, cosi' come l'hai formula, la domanda non ha senso.
Remo.D
Newsgroup: it.comp.lang.c
Titolo: PID

sapete se č possibile trovare delle routine per  la realizzazione di un PID
software ?
O meglio sapete da dove č possibile scaricarle ?
Grazie Davide
P.S. : vi prego di rispondere anche per via e-mail a :
lean...@tin.it

 
lean...@tin.it
Per realizzare un PID non occorrono routine particolari per cui dubito
che tu possa trovarne di già adatte al tuo scopo.
Si tratta semplicemente di acquisire un segnale (l'ingresso del PID), di
calcolarne la derivata (o una sua rappresentazione, per esempio la
differenza tra l'ultimo campione ed il penultimo) e l'integrale (o
ancora una sua rappresentazione come ad esempio la media degli ingressi)
ed applicare a questi tre valori tre coefficienti (quota proporzionale,
integrale e derivativa)e così calcolarti l'uscita del PID; tutte queste
cose dipendono fortemente dall'applicazione specifica.
Se stai realizzando un sistema di controllo per real-time puoi
utilizzare una forma semplificata ovvero: calcolare l'uscita all'istante
i a partire dall'uscita all'istante i-1, dall'ingresso all'istante i e
dall'ingresso all'istante i-1 opportunamente pesati con altri
coefficienti; si può dimostrare che questo è un "quasi" PID discreto.
Solitamente l'ingresso è rappresentato dalla differenza tra la misura di
una grandezza ed il suo valore desiderato.
Fammi sapere.
Saluti
Giovanni
Newsgroup: it.comp.lang.c
Titolo: es. su vettori

Date in input k n-uple di numeri interi , visualizzare quella la cui media è
maggiore
(1)    int main (void) {
(2)        int mat[MAX_N][MAX_M], k, m, i, riga;
(3)        float max_media, media_i;
(4)
(5)        leggi_mat(&k, &m, mat);
(6)        max_media = media(&mat[0][0], m);
(7)        riga = 0;
(8)        for (i = 1; i < k; i ++) {
(9)            media_i = media(&mat[i][0],m);
(10)            if (media_i > max_media) {
(11)                riga = i ;
(12)                max_media = media_i ;
(13)                }
(14)            }
(15)         printf("La sequenza con media massima e' la %d: ", riga+1);
(16)        stampa_array(&mat[riga][0], m);
(17)        return(1);
(18)    }
Questa è la funzione main ovviamente prima c'è la solita funz.
void leggi_mat(int *n, int *m, int X[MAX_N]{MAX_M}) ,   poi c'è
void stampa_array(int x[], int n) ,   e infine la
float media(int x[], int n)
Non capisco che cosa sta facendo alla riga (6); secondo me sta
inizializzando la variabile max_media .... ma allora non era lo stesso se
scrivevo :
max_media = 0    ????
Grazie Robby


Uè ragazzo! Questa è informatica, non matematica! Non la vedere così nera!
Che so ste cose... k n uple, vettori, numeri alle righe... magari poi ti
fanno scrivere i listati sui fogli a quadri (come all'università di messina
:). Se ce lo spieghi a modo tuo, io ti capisco lo stesso ;-) Vedila come una
cosa divertente, please :)


Quasi per certo, posso dirti che esegue il calcolo della media con il primo
valore nell'array. Scrivere b= a[0] non è lo stesso di scrivere b = 0 perchè
a[0] indica il primo valore di un array. Allo stesso modo, mat[0][0] indica
di leggere il primo valore della matrice, che non necessariamente è 0
(specie se la matrice è stata compilata tramite la procedura leggi_mat() .

 max_media = 0    ????
max_med=media-riga-0
per-ogni-riga-maggiore-di-zero  // occhio mi calcolo solo le medie 
                                // delle righe da UNO in poi
        media-tmp=media-riga-iesima
        if( media-tmp > max_media ) 
                max_media=media-tmp
E per rispondere alla tua domanda ( max_media = 0 ) la risposta è no; e se 
tutti i vettori avessereo media negativa ?

 cosa divertente, please :)
E' un po difficile vederla come una cosa divertente .... soprattutto quando
il secondo esonero è alle porte (5 giugno !!) ... tra l'altro è anche il mio
compleanno !!!!
:-(((((((((((((((((((((((((
Ciao !

 ha scritto nel messaggio
news:AkWN6.2544$5_6....@news2.tin.it...

Newsgroup: it.comp.lang.c
Titolo: Lunghezza vettore

Esiste una funzione che mi permette di sapere il numero di vettori sia di
interi che stringa ?
Se io dichiaro :
int vett[n];
e poi inserisco n-1 vettori vorrei sapere quanti ne rimangono.

 ha scritto:

Non ho mica capito la domanda...
Per sapere la dimensione in bytes dell'array: sizeof(vett)
Per sapere il numero di elementi dell'array: sizeof(vett) / sizeof(*vett)
Ovviamente  la cosa  non  funziona con  array  allocati dinamicamente  o
passati come parametro di una funzione.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se alla sera, dopo una strepitosa vittoria, guardandoti allo
specchio dovessi notare un secondo paio di palle, che il tuo 
cuore non si riempia d'orgoglio, perche` vuol dire che ti 
stanno inculando -- Saggio Cinese

Newsgroup: it.comp.lang.c
Titolo: AIUTO!!!!

Qualcuno mi puň spiegare brevemente che cosa vuol dire questa funzione:
void uso (int argc, char **argv)
{
   char * mess ="uso: %s [-h[elp]] <nome-file> [<nome file>]\n";
 
   if  (argc == 1) {
       fprintf (stderr, mess, *argv);
       exit(3);
   }
 
   if (argv [1][0] == '-' && argv [1][1] == 'h' ) {
      fprintf (stderr, mess, *argv);
      exit(0);
   }
}
GRAZIE
P.S. solitamente č quasi sempre cosě l'uso di parametri sulla riga di
comando ????

comando ????
Non direi, nel tuo caso anche se uno scrive -hotel ottiene la sintassi
del programma ! ;)
Comunque, generalmente i parametri della linea di comando vengono
interpretati mediante funzioni gia' scritte che si possano reperire da
qualche parte.
Personalmente, io adotto sempre delle macchine a stati finiti, quando
la struttura dei parametri e' complicata.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Aiuto socket!!!





Ho un grave problema!!! Non riesco a far funzionare 
i socket nei miei programmi!!!


Proteste inviarmi qualche listato scarno giusto per 
capire qualcosa??? Ancora


meglio se utilizzate Visual C++ senza 
MFC!!!


Grazie mille in anticipo...


Vi sarò debitore per tutta la vita!!!


Ciao...



meglio se utilizzate Visual C++ senza MFC!!!
spiacente io programmo sotto Linux/Unix...
Se ti serve lo stesso x vedere la struttura ho il sorgente di semplici
client e server...
pero' non sono a oggetti


"...the night was heavy and the air was alive..."
http://www.poli.studenti.to.it/~s93146/

Newsgroup: it.comp.lang.c
Titolo: Puntatori Const

Salve a tutto NG
vorrei capire che differenza c'e' nel dichiarare queste due funzioni:
int f1 (const char *a);
int f1 (char *a);
grazie anticipatamente

   ------------------------------------------------------------------------

int f1 (const char *a):    Funzione che ha come argomento un puntatore a (char
di tipo const) = puntatore a (l-value non modificabile in quanto dichiarato
costante )
NB: Il dato di tipo const non e' il puntatore,ma il dato da esso referenziato.
Ivan Molella
--
Posted from 
mta09-acc.tin.it
 [212.216.176.40]
via Mailgate.ORG Server - 
http://www.mailgate.org

 int f1 (char *a);
Con la prima, la funzione si impegna a non modicare l'oggetto puntato da
a.
EMG

int f1 (char *a);
Nel primo caso si sta comunicando al compilatore che la funzione
accetta un puntatore a caratteri costanti, nel senso che non e'
possibile modificarli, nel secondo caso, invece, si puo' compiere su
di essi qualsiasi operazione. Generalmente il primo caso e' quello in
cui la stringa che viene passata non deve essere modificata dalla
funzione che la accetta, il secondo, invece, il caso contrario.
--
Andrea Laforgia
andrea_...@bigfoot.com

grazie anticipatamente
Prego :-)
Saluti,
    Mardy

Newsgroup: it.comp.lang.c
Titolo: [HELP] Cosa succede dopo una "system(...)"

Sto scrivendo una routine che, ad istanti determinati, esegue una
chiamata ad un file batch
system("c:\nomefile.bat");
Le operazioni di questo fil batch impiegano un certo tempo per essere
eseguite. La domanda e' questa: l'istruzione successiva alla system
viene eseguita al termine dell'esecuzione del file .bat oppure no?
Grazie.
-- 
Ciao,
the_speck

 ha scritto nel messaggio
news:3b3b1e31...@News.CIS.DFN.DE...



se pero' sei su winzozz e con system esegui un programma windows, il tuo
prog DOS e quello che esegui prendono strade separate, e system ritorna
quasi subito.
ciao
donCiccio

quasi subito.
'azz! Proprio qui sta il busillis. Io programmo con il vecchio borland
turbo c dell'epoca in cui forse non c'era neanche W31, faccio le prove
su W98 e poi devo installare il tutto su WNT. Non ridete, please...
sono costretto ;-))
-- 
Ciao,
the_speck


Su NT non so, ma su W98 puoi usare START /W per esguire da DOS un prog
windows ed attendere la sua chiusura per continuare. Tipo:
system( "start /w notepad.exe" );
o all'interno del file batch, come nel tuo caso.
ciao
donCiccio

 system("c:\nomefile.bat");
piccolo errore:
system("c:\\nomefile.bat");
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: gcc per win

Salve a tutti,
vorrei tanto sapere se qualcuno di voi sa se esiste un compilatore gcc free
per windows, e in caso affermativo il link da cui scaricarlo. Ho fatto una
piccola ricerca su google ma non ho trovato grankč....
Grazie in anticipo
--
    (@ @)
-o00-(_)-00o--->Stefano
...gli uomini con talento trovano delle soluzioni...
      ...i geni invece, scoprono dei problemi...
__________________________________________________________

 
Come non trova nulla? ma che hai cercato?
1)
google.it
2)cerca "gcc for windows"
a me il terzo risultato dice:
MinGW -- Minimalist GNU For Windows 
Descrizione: GCC Win32 port. GCC, GDB and binutils ports for building native 
Win32 programs that do not rely on... 

 Win32 programs that do not rely on...
...hai ragione... mea culpa...
grazie 1000 per l'info...


> Win32 programs that do not rely on...
Cerca anche il DEV-C++: ti fornisce il MinGW gia' compilato e
perfettamente funzionante e una buona IDE.
-- 
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 tante... provvedo subito a scaricarlo....
Cià...

Newsgroup: it.comp.lang.c
Titolo: BACKGROUND

C'e qualcuno che smi sa dirmi come posso far rimanere una finestra attiva
insieme ad un'altra???
Grazie.
--------------------------------
Inviato via 
http://usenet.iol.it


Ma vatte a fa da'n tel culo
Ma vatte
a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel
culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a
fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa
da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma
vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n
tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma
vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n
tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma
vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n
tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma
vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n
tel culo
Ma vatte a fa da'n tel culo
Ma vatte a fa da'n tel culo
Ma
vatte a fa da'n tel culo



Be, se proprio doveva essere una battuta potevi almeno cambiare qualche
frase. Messa così è un po' noiosa. :-))

frase. Messa cosě č un po' noiosa. :-))
e tu potevi evitare di riportare il suo messaggio nel tuo reply :)
--
Rhymes
rhy...@myself.com
" ride or die "


From: 
stefa...@libero.it
 (find)
X-Mailer: 
usenet.iol.it
 - NetNews WebGateway
X-Author: PostedFrom 80.205.49.170
NNTP-Posting-Host: 195.210.93.206
From: 
dhee...@hotmail.com
X-Mailer: 
usenet.iol.it
 - NetNews WebGateway
X-Author: PostedFrom 80.205.49.170
NNTP-Posting-Host: 195.210.93.206
Sembra un Troll che fa un autofeed...

 Grazie.
a parte risposte "spiritose" purtroppo sei OT.
Perche' il C non ha "primitive standard" che riguardino
le interfacce grafiche.
Se vuoi risposte per windows posta su:
it.comp.programmare.win32
o per linux
it.comp.os.linux.development
Se ho ben capito il tuo problema cioe'
avere il focus contemporanemente su
due diverse finestre, mi sa che e' contrario
alla filosofia con cui sono pensate le
interfacce grafiche. E che quindi non
sia possibile.
                            Andrea Z.

 ha scritto nel
messaggio news:C5ML8.12479$K4.2...@twister2.libero.it...

Se vuoi dire che si risponde da solo perché l'host è lo stesso, mi sembra
che sia lo stesso perché è lo stesso il server. Se vuoi dire qualcos'altro,
illuminami. Se sono cretino, idem. Se... (inserisci a piacere quel che
vuoi)idem.
Ciao
--
Paolo Giarrusso
Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.
Newsgroup: it.comp.lang.c
Titolo: Inviare E-mail all'interno di codice c

Devo inviare mail dall'interno di una mia applicazione scritta in C, cosa
posso usare?
Lavoro sotto Sun Solaris.
Grazie.

Il sistema piu' semplice e' quello di utilizzare direttamente SMTP, tempo
fa' sul Windows Developer Journal avevano fatto un semplicissimo client di
posta che usava questo per spedire un messaggio di posta (niente
attachments). Praticamente il tutto era fatto con 50 righe di codice. Se
vuoi posso recuperarti l'articolo ed il sorgente.
Davide

 wrote:
: Devo inviare mail dall'interno di una mia applicazione scritta in C, cosa
: posso usare?
: Lavoro sotto Sun Solaris.
guarda i sorgenti di fetchmail, e' opensource.
Lo trovi facendo una ricerca su 
www.freshmeat.net
antirez

 wrote in message
874at9$3bduo$1...@fu-berlin.de...


Newsgroup: it.comp.lang.c
Titolo: Utilizzare std:vector in C

E' possibile ?
-- 
Colossus
Cpsed, a Linux OpenGL 3D scene editor
http://cpsed.sourceforge.net/

 E' possibile ?
si', questo e' un esempio si funzione che usa la classe string e che
ritorna un char*. Importante e' l'extern "C". Tutti i file .c vengono
compilati con gcc, il file in questione col g++ e il linking finale
viene fatto col g++.
#include <string>
#include <string.h>
using namespace std;
extern "C" char *
strsubst (char *origstring, const char *from, const char *to)
{
  char *toReturn;
  string original = origstring;
  toReturn = NULL;
  while (original.find (from) != string::npos)
    {
      original.replace (original.find (from), strlen (from), to);
    }
  toReturn = strdup (original.c_str ());
  return toReturn;
}

 viene fatto col g++.
Ehm, un esempio con vector ?


 Ehm, un esempio con vector ?
immagina di usarlo dentro la funzione strsubst normalmente come se fossi
nel c++
Newsgroup: it.comp.lang.c
Titolo: Terminazione anomala.

Il codice elimina da una stringa tutte le ripetizioni di un determinato
carattere ottimizzando al massimo l'utilizzo della memoria.
Per stringhe in input abbastanza grandi, non va e non capisco perche'.
Non so se sia un problema di piattaforma.
Ecco il codice.
#include <stdio.h>
#define SIZE 100
char *filtra_str (const char strV[], char c);
int main()
  {
    char x;
    char V[SIZE];
    printf ("\n Stringa:\n ? ");
    fgets (V, SIZE, stdin);
    printf ("\n Carattere da eliminare:\n ? ");
    x = fgetc (stdin);
    if (filtra_str(V, x))
        printf ("\n Stringa '%s' priva di '%c': %s",
        V, x, filtra_str(V, x));
    else
        printf("\n ERRORE nella funzione 'filtra_str'!");
    fflush (stdin);
    getchar();
    return 0;
  }
/* La seguente funzione riceve in input un' array ed un carattere,
elimina tutte le ripetizioni del carattere dalla stringa, e restituisce
un puntatore alla stringa stessa.
E' richiesto espressamente che la funzione ottimizzi al massimo la
gestione della memoria. */
char *filtra_str (const char strV[], char c)
  {
    int i=0;
    int j=0;
    char *strPtr = NULL;
    char *strTmpPtr = NULL;
    if ((strTmpPtr = malloc(sizeof(strlen(strV)+1)))!= NULL)
      {
        while (strV[i] != '\0')
          {
            if (strV[i] == c)
                i++;
            else
                strTmpPtr[j++] = strV[i++];
          }
        strTmpPtr[j] = '\0';
      }
    else
        return 0;
    if ((strPtr = malloc(sizeof(strlen(strTmpPtr)+1)))== NULL)
        return 0;
    else
      {
        strcpy (strPtr, strTmpPtr);
        free (strTmpPtr);
        return strPtr;
      }
  }

Ciao Marcello.
L'errore e' nella tua chiamata a malloc
..
   malloc(sizeof(strlen(strV)+1))
..
strlen ritorna un int.. e sizeof int da' 4
in pratica allochi sempre una stringa lunga 4 caratteri compresto
lo 0 finale e quindi vai a scrivere fuori dall'array.
soluzione:
malloc( strlen( strV ) + 1 )
Buon lavoro.

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 100,000 Newsgroups - 19 Different Servers! =-----

> Il codice elimina da una stringa tutte le ripetizioni di un determinato
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----


 Prima che Andrea mi corregga... mi correggo da solo ;)
:)
Marcello

 malloc( strlen( strV ) + 1 )
Ok, ora. Grazie.
Buon lavoro anche a te.
Marcello

>     fflush (stdin);
La funzione fflush(), come ripetuto miliardi di volte, NON ha un
comportamento definito per gli stream di input, ma solo per quelli di
output.
Newsgroup: it.comp.lang.c
Titolo: Problemi 2.0

Ho un ulteriore problema in linux, se includo come librerie dei miei file 
nel seguente modo #include "miofile.h" dove in miofile.h vi sono i prototipi 
di funzione in più è presente #include "miofile.c" contenente il codice 
della funzione, ora il problema è che se includo queste librerie ho un sacco 
di errori nella compilazione, se includo sorgenti e prototipi nello stesso 
file principale non mi visualizza nessun errore. da cosa può dipendere? 

> da cosa puň dipendere?


 
Stai facendo confusione fra librerie ed header files.
Un header file (p.e. miofile.h) viene incluso per avere visibilita` di 
elementi definiti in altre unita` di compilazione e non deve includere 
delle definizioni (tantomeno a sua volta includere un file compilabile).
Una libreria e` una collezione di oggetti (generati da unita` 
compilabili) e ha un nome formato da lib<nome>.a o lib<nome>.so e deve 
essere richiamata dal compilatore con l'opzione -l<nome>
Gli oggetti della libreria sono descritti, ma non definiti negli header 
files.
Prova a togliere #include "miofile.c" da miofile.h e a compilare 
miofile.c come unita` separata.


> inserisco in un unico file ossia dove vi č anche il main() nessun errore.


 
Mandamelo pure purche` non sia troppo grosso. Eventualmente crea uno zip 
o meglio se lavori con Linux un .tar.gz
Ti ho risposto in privato. Non hai ricevuto il messaggio?


Newsgroup: it.comp.lang.c
Titolo: Newby: come è questo libro?

Ho 'Programmare in C' edito dalla Apogeo, autori Peter Aitken e Bradley L.
Jones. Com'è secondo voi?
Grazie per le risposte :-)

Grazie per le risposte :-)
beh di solito i manuali apogeo sono fatti in modo da spiegare ai +
duri di capa :) le cose in modo semplice...
apparte la battuta... ne ho 2 in casa e li trovo interessanti...
anche se perň a volte incompleti, nei libri manca sempre
quell'approfondimento che serve sull'argomento che ti interessa....
cod

Io l'ho usato, e l'ho trovato molto bello e completo...per iniziare il
massimo! Quando poi inizi a destreggiarti, allora passa al buon vecchio
Kernighan.
Ciiips
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Io pure l'ho usato ed è scritto molto bene, specialmente per chi è agli
inizi. Per quanto riguarda la programmazione avanzata in C è un pò carente,
ma sempre un buon libro.
DUFF

Newsgroup: it.comp.lang.c
Titolo: problema di tempi

Sto sviluppando un client che dopo 3 min si sconette e cambia server.Come 
faccio a dirgli di chiamarmi una fun dopo 3 min . Ho gia usato i Fds per 
la gestione del time out delle connessioni???
GRAZIE
	<SAX>

 wrote in message
news:MPG.1717ae21e...@powernews.libero.it...

C'è un thread identico 5 righe più sotto.
Credo che uno di noi due non abbia capito il funzionamento dei newsgroup
^^
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: printf colorata?!?

Esiste un comando che faccia stampare su shell delle stringhe di diverso
colore?
Mi serve per fare il debug di un programmino che utilizza thread, per cui
vorrei fare stampare di un colore al processo principale e di un altro i
thread.
Grazie, David.

colore?
Non in modo standard.  Alcune implementazioni (v. DJGPP/Borland) hanno
un header "conio.h" che contiene il prototipo di funzioni come
"cprintf()", in cui la "c", appunto, indica la capacità di stampare
colorato.
-- 
Andrea Laforgia
#exclude <windows.h>

 colorato.
Io ho trovato, per la shell di Linux, qualcosa del genere:
"\330\[32;1m CIAO \330\[0m"
Si puo' usare? va bene per tutte le distribuzioni di linux?
Su mandrake9 funziona!
Grazie, David.

 Si puo' usare? va bene per tutte le distribuzioni di linux?
Credo che sia una questione di librerie per console a caratteri...
..suppongo che sia roba per ncurses...quindi dovrebbe funzionare ma non
essedo standard non garantisco..
-- 
Rhymes
rhy...@NOSPAMmyself.com

..suppongo che sia roba per ncurses...
Sono le sequenze ANSI e sono portabili su qualunque terminale le
supporti (sotto il vecchio DOS, per es., bisognava installare
ANSI.SYS).  


 ANSI.SYS).
grazie Andrea per la delucidazione.
-- 
Rhymes
rhy...@NOSPAMmyself.com

Newsgroup: it.comp.lang.c
Titolo: EOF in getchar()

Ciao, sono nuovo del C e sto leggendo "La Bibbia" di Kernighan e Ritchie.
Arrivato a pagina 15 però mi sono impiantato, riporto di seguito il codice
dell'esempio che mi crea problemi (anche se non si potrebbe ...):
#include <stdio.h>
main()
{
    int c;
    c = getchar();
    while(c != EOF)
        {
        putchar(c);
        c = getchar();
        }
}
Succo del discorso, il ciclo while dovrebbe uscire con End Of File .. ma
come avviene l'end of file ??? Io continuo a premere invio o spazio o
qualsiasi altro carattere ma non succede nulla =( Il programma non termina
più !! Come faccio a uscire dal Ciclo (se queste erano le intenzioni degli
autori!) ??
Grazie mille, Francis the Newbie


Hai provato con la combinazione di tasti <CTRL> + <Z> ?
Mauro

 Tutor at D.S.I. University of Milan
V_/_ 'The future will not remember, the past doesn't forget.'
I'm Linux zion 2.4.2 #4 lun mar 12 16:50:36 CET 2001 i586

come avviene l'end of file ???
Per un file da disco, l'EOF arriva alla fine del file quando provi a leggere
un carattere dopo l'ultimo: l'indicatore di fine del file viene settato e
getchar ti torna EOR.
Per uno stream da tastiera, dipende dal sistema operativo che usi.
Sotto DOS/Windows, digita la combinazione <ctrl> + <z>, ed eventualmente
premi invio (l'input da tastiera può essere bufferizzato, ovvero, anche se
scrivi il tutto non viene letto finché non premi invio). Dovrebbe andare
bene anche il tasto F6.
Sotto Linux/Unix in generale (credo), digita <ctrl> + <d>.
Lanugo

>EndOfFile = Ctrl + D
Sotto Unix/Linux.
Invece sotto DOS :
Ctrl + Z
--
Andrea Laforgia (ICQ 87230455)
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."
Newsgroup: it.comp.lang.c
Titolo: Manipolazione array di stringhe

Definisco un array di stringhe inizializzato nel seguente modo:
  char *array[] = {
    "Stringa",
    "Stringa",
    "Stringa",
    "Stringa",
    "Stringa",
  };
Penso che vengano allocati 5 puntatori a char, array[0], array[1] ...
array[4].
Ora voglio sostituire la prima stringa e faccio:
  sprintf( array[0], "Carote" );
Perché non mi funziona? L'eseguibile viene creato ma l'esecuzione si
interrompe
con un errore di violazione memoria o qualcosa del genere. Ho provato
anche con
una strcpy() ma l'errore non scompare.



Inizializza l'array in un momento successivo alla dichiarazione,
altrimenti la stringa viene memorizzata come costante. ciao

 
I letterali stringa sono array di caratteri *non* scrivibili, anche se (per   
motivi "storici") il loro indirizzo può essere assegnato a un
'char*' (anziché 'const char*'). 
E' buona abitudine usare sempre 'const char*' per memorizzare l'indirizzo di
un letterale stringa.
Nel tuo caso, se vuoi modificare il contenuto delle stringhe non devi usare
letterali stringa, ma devi allocare individualmente i singoli array di
caratteri tramite, ad es., malloc.
Max

 ha scritto nel messaggio
news:eassq8$n72$1...@newsreader.mailgate.org...

bastava:
array[0] = "Carote";
--
Giorgio Silvestri
DSP/Embedded/Real Time OS (RTOS) Software Engineer
Newsgroup: it.comp.lang.c
Titolo: simulazione esseri

Leggendo un post di Cingar di qualche giorno fa, in cui parlava di un 
programma che aveva realizzato per ricreare una popolazione di pixel che 
cresce e vive da sola, ho pensato che mi piacerebbe realizzare qualcosa 
di simile. Avete qualche consiglio da darmi? Per esempio come devo 
memorizzare la popolazione? Io avevo pensato a due liste, una per i 
pixel maschio e una per i pixel femmina, dove aggiungo nuovi elementi a 
ogni nascita e li rimuovo a ogni morte. Mentre per non ho nessuna idea 
riguardo al clock. Non posso utilizzare un normale ciclo while perchè se 
tutto il programma funzionasse alla velocita' del processore non 
riuscirei a capire niente. Per quanto riguarda la grafica cosa mi 
consigliate di fare?
Qui ci saranno i sorgenti per chi volesse guardarli e magari farmi delle 
correzioni.
http://www.devaraja.cjb.net/

 
http://www.devaraja.cjb.net/
Maledizione! Sento la tossicodipendenza da "sex.exe" (così si chiamava)
che sta nuovamente crescendo. :-)
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

DevarajA wrote:

Mi spiegate che cosa farebbe questo programma??
e il suo intento?

 e il suo intento?
Il dubbio piacere di sprecare cicli di CPU. :-)



Ok grazie :-)

 Ok grazie :-)
Be', e anche favorire riflessioni sulla caducità della vita...
Debuggando il programma per ottimizzare la lunghezza della vita degli
esserini mi sono chiesto: ma io a quale ciclo di while sono?
Dopo pochi mesi avevo dimenticato il programmino e contemplavo i calcetti
che provenivano dall'interno di un pancione. :-)
--
Cingar
P.S. Siamo per caso un tantinello OT?



eheheheh
auguri allora!! :-)

 auguri allora!! :-)
Be', ormai ha sei anni, e m'ha spaccato le scatole tutto il week-end
perché voleva vedere il programma dei puntini di cui avevo parlato a cena
venerdì.
Ah, ecco l'utimo consiglio a DevarajA poi chiudo: conservare
scrupolosamente i sorgenti, perché prima o poi qualcuno ti chiederà come
ti è venuta l'idea di metterlo al mondo. :-)
--
Cingar


 
Grazie dell'aiuto e scusa se sono domande stupide, ma questo è il primo 
programma quasi serio che faccio in C

 programma quasi serio che faccio in C
Intendi "serio" come impegno che ci vuole: spero non come utilità. :-)

Newsgroup: it.comp.lang.c
Titolo: Cancellare file ricorsivamente

Ciao a tutti.
Ho bisogno di cancellare il contenuto di una directory in maniera
ricorsiva; ho bisogno cioč di una funzione che mi legga il contenuto di
una directory e che cancelli tutti i file e directory in essa contenuti.
Quali funzioni posso utilizzare in C per risolvere questo problema?
Premetto che come ambiente utilizzo Visual C++ della Microsoft, ma che
se possibile vorrei rimanere il piů standarizzato possibile in maniera
che una volta finito il programma sia compilabile anche tramite Boland o
gcc.
Ciao e grazie in anticipo
Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 gcc.
Il listing delle direcroty e la cancellazione dei file non e' roba
standardizzata dal C.
FindFirstFile(), FindNext() e DeleteFile() e' quello che ti serve
sotto Windows. Usando le funzioni del S.O. compili usando qualsiasi
compilatore funzioni sotto quel S.O.
HTH
C:\>iao Angelo


 trovare la funzione readdir().
Dubito che qualcosa con readdir() venga compilata da VC++.
C:\>iao Angelo


 
Dubito allora che qualsiasi cosa compilabile con VC++ sia allora 
compilabile con qualsiasi altro compilatore.
In quale altra libreria puoi trovare FindFirstFile(), FindNext() e 
DeleteFile() come hai consigliato in un altro post?


 DeleteFile() come hai consigliato in un altro post?
kernel32.lib
Quelle sono chiamate di sistema di Windows. Se un _QUALSIASI_
compilatore per Windows non le risolve forse e' meglio che si
butti.
C:\>iao Angelo
P.S. La chiamata corretta e FindNextFile() e non FindNext() come ho
erroneamente indicato.


 kernel32.lib
Ovviamente nel caso di VC++. Non ho installato MingW, quindi
non so dirti dove puoi trovarle in quel caso... Ma alla brutta
basta fare LoadLibrary di kernel32.dll
Il prototipo delle funzioni lo trovi su 
msdn.microsoft.com/library
HTH
C:\>iao Angelo


 butti.
Meglio buttare Windows ;-)
Sarebbe come consigliare di usare con un :
_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);


 Giovanni


> butti.
Se poi quelle sono le funzioni di una libreria stai facendo un po` di 
confusione fra funzioni di libreria e chiamate di sistema.


 confusione fra funzioni di libreria e chiamate di sistema.
Chiamale come ti pare. La sostanza non cambia.
C:\>iao Angelo

Newsgroup: it.comp.lang.c
Titolo: Dove sta l'errore?

Salve,
ho scritto due routine per leggere e scrivere su disco dei file in formato
wave con finestre di FINESTRA campioni. Tralasciando la parte descrittiva
del formato, i dati che mi interessano sono regsitrati in modo "raw" a 16
bit.
Ecco le due routine che ho preparato. In entrambi i casi passo un puntatore
ad un array di double dove ho i dati (che vanno convertiti in short prima
di essere messi su file) e il dile pointer, oltre che alla dimensione della
finestra.
Inoltre la procedura di caricamento restituisce TRUE se e' andato tutto a
buon fine o FALSE se si e' raggiunta la fine del file.
void window_save(double *s, FILE *fp, int FINESTRA)
{
    int i;
    signed short int *x;
    x=(signed short int*)malloc(FINESTRA*2);
    for (i=0; i<FINESTRA; i++)
        x[i]=(signed short int)(s[i]*32768.);
    fwrite(x,2,FINESTRA,fp);
}
int window_load(double *s, FILE *fp, int FINESTRA)
{
    int i,k;
    signed short int *x;
    x=(signed short int*)malloc(FINESTRA*2);
    k=fread(x,2,FINESTRA,fp);
    if (k<FINESTRA)
        return(FALSE);
    for (i=0; i<FINESTRA; i++)
        s[i]=x[i]/32768.;
    return(TRUE);
}
Per verificare che fossero corrette, ho provato a leggere e poi a
riscrivere lo stesso file, ma ho ottenuto due file diversi. Inoltre alla
seconda finestra la window_load mi restituisce FALSE, anche se la fine del
file e' ben lontana.
Dove sbaglio?
Grazie a tutti,
Michele
beri...@targheitaliane.it

     x=(signed short int*)malloc(FINESTRA*2);
sei sicuro che un "signed short int" sia lungo 2 byte sulla tua
macchina?
perche' non usare sizeof( signed short int ) invece della costante 2?
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: nateius_sei_una_spia

zozzo infame
plonkati questo

 plonkati questo
Vediamo cosa risponde ab...@inwind.it...
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


 * Cut "DO NOT DISTURB" to reply */

Newsgroup: it.comp.lang.c
Titolo: reverse lista ricorsiva (invertendo puntatori)

Ciao a tutto il NG !
Ho una lista costruita così :
typedef int elem;
typedef struct cell *list;
struct cell{
  elem el;
  list next;
};
e fin qua nulla di strano...
Devo farne il reverse "girando" i puntatori .
Qui c'è la soluzione ricorsiva :
void reverse(list *l){
  list new_head;
  /* casi base: lunghezza 0 e 1 ==> non si fa niente */
  if(*l!=NULL && (*l)->next!=NULL){ /* passo induttivo: lunghezza maggiore
di 1 */
    new_head=(*l)->next;
    reverse(&new_head);
    (*l)->next->next=*l;
    (*l)->next=NULL;
    (*l)=new_head;
  }
}
Il problema è che non riesco a capire l'idea che ci sta dietro ... non si
rifà ad un caso base ...
Qualcuno mi potrebbe gentilmente "illuminare" ?!?
Grazie per l'attenzione e scusate il disturbo .
aLe
------------------------------------------------------------------------
A volte vorrei vivere nell'aria e rimanere sospeso senza più ostacoli
giocare coi mostri delle mie insicurezze
e trasformarli in canzoni come un miracolo ...
 LITFIBA - 1994 -

"Eric Arthur Blair" <aLe...@NOSPAMlibero.it> ha scritto nel messaggio
news:Wpddc.29984$hc5.1...@news3.tin.it...

Tranquilli ho fatto da solo ...

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

Vorrei porre un quesito al newsgroup:
premesso che il compilatore è gcc version 3.3.5 (Debian 1:3.3.5-13)
se eseguo 
typedef struct {
  char ch[14];
} Tmio;
sizeof(Tmio) = 14 come è giusto che sia
se faccio 
typedef struct {
  float pz;
} Tmio; 
sizeof(Tmio) = 4 come è giusto che sia
se però faccio
 
typedef struct {
  char ch[14];
  float pz;
} Tmio;
allora sizeof(Tmio) = 20 e non 18, qualcuno sa dirmi il perchè?
Grazie Enrico

 Giovanni
Supponevo questo comportamento...il problema è che devo
creare un file di elementi di tipo miodato come sopra in ambiente
linux e poi leggere quel file su un dispositivo embedded con dos
installato
dove non viene fatto quest'allineamento, secondo te esiste un
modo per standardizzare la cosa in modo che i due sistemi si possano
capire?
Ciao Enrico

 capire?
Dipende molto dai compilatori.  I vecchi compilatori Microsoft avevano 
la direttiva #pragma pack(n) per forzare l'allineamento.  Con n uguale a 
1, 2, 4 per allineare a 8, 16, 32 bit.
Nei compilatori intel la direttiva era #pragma align(n) o noalign con n 
uguale a 1, 2, 4.
Nel gcc occorre usare __attribute__((packed)) direttamente nella 
dichiarazione della struttura.  Vecchie versioni (gcc 2.7.x) accettavano 
anche le direttive pragma ma non ho mai trovato una documentazione 
chiara. Forse i manuali su 
http://www.gnu.org/
 sono piu` completi delle 
pagine in linea (man gcc).


 Giovanni
Grazie mille
ora proverò a vedere
Enrico
Newsgroup: it.comp.lang.c
Titolo: problema...

 Dato un file prova.txt cosě composto
1011111001111110110111100
1101010101110110101010011
0000011100111110111111111
1110010111111011000111100
0101101110111011101010111
1011011010111011010011010
1110111111001101111101011
0101111100101011111101111
1001111110010001100111101
 caricarlo in uma matrice int mat[9][25]
 e verificare se esistono combinazioni di 3 righe
 in cui ogni colonna abbia valore >=2.
 Esempio combinazione (0 4 6)
               1011111001111110110111100
               0101101110111011101010111
               1110111111001101111101011
Cordiali saluti
ca...@tin.it

Dato un file pippo.txt
1011111001111110110111100
1101010101110110101010011
0000011100111110111111111
1110010111111011000111100
0101101110111011101010111
1011011010111011010011010
1110111111001101111101011
0101111100101011111101111
1001111110010001100111101
 caricarlo in uma matrice int mat[9][25]
 e verificare se esistono combinazioni di 3 righe
 in cui ogni colonna abbia valore >=2.
 Esempio combinazione (0 4 6) da pippo.txt


Newsgroup: it.comp.lang.c
Titolo: Dubbio su strutture

Mi aasale un dubbio sulle strutture, è corretta una assegnazione del genere
?
MiaStruct str1, str2;
str2=str1;
oppure è necessario effettuare una operazione del genere...
memcpy(&str2,&str1,sizeof(MiaStruct);
il dubbio mi assale soprattutto se consicero un astruttura contenete dei
vettori tipo
char nome[20];
essi nel primo caso verrebbero copiati ? Considerando che per copiare una
stringa in una altra è necessario usare strcpy non credo...
Ciao e grazie a tutti.

 stringa in una altra è necessario usare strcpy non credo...
tutto ok. attento se hai dei puntatori all'interno delle strutture: i 
puntatori vengono copiati ma i dati puntati no.
ciao.

Dave <nomail!@nomail!.nomail!> wrote in message
444f4a24$0$18282$4faf...@reader1.news.tin.it...

Ho riletto ora il mio primo post... mazza che italiano... non fateci troppo
caso ero di super fretta e le dita volavano malamente sulla tastiera...
grazie 1000 per le informazioni
Ciao a Tutti.

Newsgroup: it.comp.lang.c
Titolo: int e floor

ciao a tutti. se ho una variabile definita come int e a questa
variabile gli assegno una funzione il cui risultato sarà un numero con
la virgola, cosa succede. devo usare la funzione floor?
compilando senza floor non ho errori invececon floor sì. grazie

 compilando senza floor non ho errori invececon floor sì.
Che errore? Hai dimenticato math.h?
Luca
-- 
Home: 
http://kronoz.cjb.net
E' bene ricordare che l'intero Universo è formato,
con un'unica trascurabile eccezione, dagli "altri".
John Andrew Holmes
Newsgroup: it.comp.lang.c
Titolo: da vettore a int

Salve,
se inizializzo un vettore con un ciclo for:
for(i=0; i<3; i++)
vett[i]=i;
come faccio ad assegnare ad una variabile il valore 012?
con quella variabile dovrei fare delle operazioni, poi creare un nuovo
vettore ad elementi shiftati a destra vett2=[2,0,1], assegnarla ad
un'altra variabile e fare ancora operazioni.
Per lo shift mi sono arrabattato, ma per l'assegnazione degli elementi a
intero?
Spero di essere stato chiaro...
Grazie in anticipo,
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Spero di essere stato chiaro...
Assolutamente no!
ciao,
g.

 mirko
CiauCia`
M?
Newsgroup: it.comp.lang.c
Titolo: Ordinamento

salve ragazzi volevo sapere se qualcuno di voi puo fornirmi il codice per
qualke algoritmo di ordinamento piu veloce del bubble sort..tempo fa li
avevo ma nn trovo piu i listati -.-
tnx 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Spero di scrivere giusto:
Quicksort:
void quicksort(int *, int , int );
es di chiamata: quicksort(myArray, 0, count-1);
void quicksort(int *array, int left, int right){
	int i = left, j = right, x = *(array+((left+right)/2)), y;
	do{
		while((*(array+i) < x) && (i < right)) i++;
		while((x < *(array+j)) && (j > left)) j--;
		if(i <= j){
			y = *(array+i);
			*(array+i) = *(array+j);
			*(array+j) = y;
			i++; j--;
			}
		}
	while(i <= j);
	if(left < j) quicksort(array, left, j);
	if(i < right) quicksort(array, i, right);
}
Shellsort:
void Shellsort(int *, int);
Shellsort(myArray, nr);
void Shellsort(int *array, int nr){
	int i, j, k, dist, distArray[3], temp;
	*(distArray)=3; *(distArray+1)=2; *(distArray+2)=1;
	for(k=0; k < 3; k++){
		dist = *(distArray+k);
		for(i = dist; i < nr; i++){
			temp = *(array+i);
			for(j = i - dist; (temp < *(array+j)) && (j >= 0); j = j - dist)
				*(array+(j+dist)) = *(array+j);
			*(array+(j+dist)) = temp;
			}
		}
	for(i = 0; i < nr; i++)
		printf("%d ", *(array+i));
}
Shakesort:
void shakesort(int *, int);		//Parametri: Array, nr elementi array
void shakesort(int *array, int nr){
	int i, temp, exchange;
	do{
		exchange = 0;
		for(i = nr - 1; i > 0; --i){
			if(*(array+(i -1)) > *(array+i)){
				temp = *(array+(i -1));
				*(array+(i -1)) = *(array+i);
				*(array+i) = temp;
				exchange = 1;
				}
			}
		for(i = 1; i < nr; ++i){
			if(*(array+(i -1)) > *(array+i)){
				temp = *(array+(i -1));
				*(array+(i -1)) = *(array+i);
				*(array+i) = temp;
				exchange = 1;
				}
			}
		}
	while(exchange);
	for(i = 0; i < nr; i++)
		printf("%d ", *(array+i));
}
Selectionsort
void selection_sort(int *, int);		//Array, nr elementi array
void selection_sort(int *array, int nr){
	int a, b, c, exchange, temp;
	for(a = 0; a < nr -1; ++a){
		exchange = 0;
		c = a;
		temp = *(array+a);
			for(b = a+1; b < nr; ++b){
				if(*(array+b) < temp){
					c = b;
					temp = *(array+b);
					exchange = 1;
					}
				}
			if(exchange){
				*(array+c) = *(array+a);
				*(array+a) = temp;
				}
		}
}
Beh provali prima
Che devi fare Algoritmi e struct di dati? :)

 	int i, temp, exchange;








tnx...no me li so persi alla spiegazione e me rompevo di farmeli da solo ^
ah 1 cosa...nel quick sort..left e right sarebbero?


gli estremi dell'array, come noti quicksort è ricorsivo e ogni volta 'sega'
in due l'array.
quindi se l'array è lungo 50 elementi, left = 0, right = 49

 quindi se l'array è lungo 50 elementi, left = 0, right = 49
tnx ;)


 
Cmq, per la serie... google, questo sconosciuto, eh? :P
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */
Newsgroup: it.comp.lang.c
Titolo: Ultra newbie: %?

come faccio a fare il simbolo percentuale nel printf visto che % serve ad
altro?
grazie

 altro?
printf("%%");
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 grazie
Devi scriverlo 2 volte
printf("%%");
stampa --> %
--
________________________________
Togliete NoSpaM per rispondermi
bye Brain

Newsgroup: it.comp.lang.c
Titolo: double e printf

Perchè se scrivo:
int main() {
   double i=0.1;
   printf ("%.30f\n", i);
}
ottengo come output un numero tipo 0.100000000000000005554212345984 ?
Non capisco se è un problema dovuto al fatto che printf non è in grado di
stampare correttamente i double/float (lo stesso problema si ha con i
float), oppure perchè i numeri reali sono approssimati ad un numero finito
di cifre (?!?)
Ciao,
Marco

di cifre (?!?)
Il tuo computer memorizza i valori in binario e il
numero 0.1 che appare cosi' "normale" in base 10
e' un numero periodico se lo scrivi in binario.
Per farti un paragone 0.1 per un computer e' un
po' come 1/3=0.333333333333333333333... per chi
come noi ragiona in base 10.
Quindi la differenza che vedi e' dovuta al fatto
che il computer ha dovuto approssimare ad un
numero finito di bit: se non ricordo male per un
double in rappresentazione standard IEEE da 8
byte le cifre binarie disponibili sono 52.
Un computer che faccia i conti in binario e' in
grado di rappresentare esattamente solo numeri
del tipo 1, 0.5, 0.25, 0.125, ... 1/(2^n) e
multipli interi di questi valori.
HTH
Andrea

Newsgroup: it.comp.lang.c
Titolo: Sorgente algoritmo MD5

Qualcuno sa dove posso trovarlo?
Ciao e grazie.

 Qualcuno sa dove posso trovarlo?
Su Google?
http://www.ietf.org/rfc/rfc1321.txt
C:\>iao Angelo
P.S. Nella RFC c'e' anche il codice
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

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

Ciao
Vorrei sapere cortesemente tutto ciň che mi occorre per iniziare a
programmare in c
(manuali, compilatori ecc..)
Grazie Anticipate!

 programmare in c (manuali, compilatori ecc..)
Come libro ti consiglio il Kernighan & Ritchie, Il linguaggio C, Seconda
edizione. Come compilatore il DJGPP che trovi gratis all'indirizzo
http://www.delorie.com/djgpp/
.
EMG

Enrico Maria Giordano ha scritto:

Ringrazio.
Newsgroup: it.comp.lang.c
Titolo: Ecco fatto!!!

#include<stdio.h>
#define max 100
void horner(int A[], int *sum, int *x, int *i, int *grado);
main()
{
    int A[max];
    int sum,x,i,grado;
    printf("**** BENVENUTO!****\n");
 
    printf("\n");
    printf("\n");
    printf("DETERMINAZIONE DEL VALORE DI UN POLINOMIO\n");
    printf(" CON IL METODO DI HORNER \n");
    printf("\n");
    printf(" **** DAMMI IL POLINOMIO : An X^n + ....... +A1 X + A0 ****
\n");
    printf("\n");
    printf("DAMMI IL GRADO DEL POLINOMIO : ");
    scanf("%d",&grado);
    for (i=grado;i>=0;i--)
    {
        printf("DAMMI IL VALORE DEL COEFFICIENTE DELLA X DI GRADO %d
%s",i," : ");
        scanf("%d",&A[i]);
     }
     printf("DAMMI IL VALORE DI X : ");
     scanf("%d",&x);
 
     horner( A, &sum, &x, &i, &grado);
}
void horner(int A[], int *sum, int *x, int *i, int *grado)
{        
    sum =A[grado];                  封封  ERRORE!!! PERCHE???
    for (i=grado-1;i>=0;i--)
        sum=sum*x+A[i];             封封  ERRORE!!! PERCHE???
    printf("IL VALORE DEL POLINOMIO E' : %d",sum);
}
Ecco dove leggete Errore non riesco a capire il perche...MI DATE UN
CONSIGLIO???
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

void horner(int A[], int *sum, int *x, int *i, int *grado);
perke passi tutto coi puntatori? I quattro valori interi passali per valore.
E l'array invece passalo come int *A
#define max 100
max credo gia esista come macro del linguaggio, usa MAX maiuscolo
inizializza sum... se no che senso ha passare un valore di una variabile se
la variabile nn ha valore? ;)


Se passi una variabile non inizializzata, probabilmente č inutile passarla,
basta dichiararla all'interno della ruotine...
ciao ciao
iceman81
P.S. Sono nuovo!!! Ciao a tutti!!! :D

Newsgroup: it.comp.lang.c
Titolo: HELP!!! CGI-BIN e C HELP!!!

Dove trovo della documentazzione, degli esempi ecc..... su come scriverer
cgi-bin in c
e mettrli in pagine html
ringrazzio anche tutti coloro che avendo esperienza in questo campo si
ofriranno di mandarni note e esempi al seguento indirizzo mail
trun...@libero.it
Rigrazzio anticipatamente tutti coloro che mi aiuteranno

 ha scritto nel messaggio
news:xBa46.222793$hk4.8...@news.infostrada.it...
