mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Array di dimensione indefinita: sogno o realta'?

E' possibile dichiarare in una struct un array senza doverne
specificare la dimensione ?
Oppure nella struct ci devo mettere un puntatore, che poi uso per
allocare un array ?
Cioe', una roba di questo tipo e' legale? (non mi funzionano le
graffe, scusate)
struct pippo 
    int *grossovettore;
e poi nel codice:
   grossovettore = malloc(...., 200);
non ricordo la sintassi di malloc, ma in questo modo riesco a creare
un array di 200 elementi, il primo dei quali e' puntato da
grossovettore?
Come accedo poi a questi elementi ?
   grossovettore[3] mi permette di accedere al terzo elemento ?
Se potete rispondermi anche a 
gi...@tiscalinet.it
 mi fate un grosso
favore !!

grossovettore[3] mi permette di accedere al terzo elemento ?
Si, oppure puoi usare la sintassi
*(grossovettore + 3)
che è equivalente.
Ricorda sempre di usare la free alla fine dell'uso del vettore
free(grossovettore);
Allocare un array come da te descritto è utile nel caso che non si
conosca a priori il numero di elementi, ma in qualche modo questa
informazione venga comunicata al programma durante l'esecuzione.
Per esempio può essere la prima riga del file di un database, che
contiene il numero di record del database, oppure può venire in input
da tastiera dall'utente.
L'unico problema che può sorgere è se ti occoresse ridimensionare
l'array.
In quel caso dovresti allocare memoria per un altro array usando il
puntatore, e poi ricopiare gli elementi del precedente nel nuovo.
Infine dovresti liberare (free) la memoria occupata dal vecchio array.
Un pò macchinoso, e soprattutto inefficiente.
E' per questo che si usano le liste.
Se ne vuoi sapere di più qualsiasi tutorial sul C può aiutarti, come
quelli su 
www.programmazione.it
 , penso

    grossovettore[3] mi permette di accedere al terzo elemento ?
Adesso per muoverti all'interno dell'array di 200 byte devi usare
l'aritmetica dei puntatori. Ricorda però che questo "array" non equivale a
200 variabili di tipo int, ma , se poniamo sizeof(int)=4byte, equivale a 50
variabili di tipo int.
SPERO DI NON AVER SBAGLIATO! (il che è probabile, dato che ho studiato
queste cose da poco), pertanto ritieni attendile quanto detto solo se
confermato da un guru del ng (vd. Andrea Laforgia)

confermato da un guru del ng (vd. Andrea Laforgia)
Grazie della stima verso di noi :P
-- 
Mox

 >SPERO DI NON AVER SBAGLIATO! (il che č probabile, dato che ho studiato


allora il mio codice non era poi così inesatto vero?
Gli errori te li ho detti, il resto mi pareva funzionasse :)
Pero' allocare la dimensione assumendo a priori la dimensione dei tipi
e' un grave errore, facci attenzione. La libreria limits.h e la
funzione sizeof e' stata sono state create apposta :)
-- 
Mox

confermato da un guru del ng (vd. Andrea Laforgia)
"guru" a chi ? ;P
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]
Newsgroup: it.comp.lang.c
Titolo: *&

Ho trovato questa riga di codice:
(unsigned *&)a += b * c;
Io l'avrei scritta così:
*(unsigned *)&a += b * c;
La prima forma mi è sconosciuta, però assomiglia all'uso che il C++ fa 
dell'operatore unario & nel passaggio dei parametri per indirizzo:
void func(unsigned &p);
Kiuhnm

Kiuhnm ha scritto:

La prima non funziona. Sei sicuro che non sia codice c++? In quel caso 
che di che tipo sarebbe il prodotto di quel cast?
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 che di che tipo sarebbe il prodotto di quel cast?
Allora è come supponevo.
In c++ è possibile scrivere
int f(int &a)
{
   a = 3;
}
al posto di
int f(int *a)
{
   *a = 3;
}
ma pensavo fosse una cosa limitata ai parametri delle funzioni.
(è simile al "var" usato in Pascal).
Kiuhnm

 *(unsigned *)&a += b * c;
Attenzione. La prima riga (C++) equivale a
 *(unsigned**)&a += b*c  /* !!! */
-- 
Horst

 
Ma se fai un cast a puntatore a puntatore e poi dereferenzi il risultato 
non ottieni un semplice puntatore? A cosa servirebbe aumentarlo di 
qualcosa se non ha un nome (e quindi diventa inutilizzabile dopo questa 
istruzione) e non viene dereferenziato o assegnato nella stessa istruzione?


 
Mi sfugge qualcosa.. Perche' dici che sono equivalenti? Il primo non e' 
un cast a reference a puntatore?


 Il primo non e' un cast a reference a puntatore?
Si, ma secondo te cosa e' un cast a reference?
In altre parole sai la differenza tra:
static_cast<B>(d) e static_cast<B&>(d) ?
Ho impostato il followup su it.comp.lang.c++. Se ti interessa proseguire la 
discussione riprendila pure rispondendo a questo mio messaggio e facendola 
ripartire su it.comp.lang.c++ dove non e' OT. Li potro' dilungarmi con 
spiegazioni invece limitarmi a lanciarti un quesito per non annoiare i 
membri di questo NG :-)
Tommaso

  *(unsigned**)&a += b*c  /* !!! */
Capito. Del c++ uso solo le poche cose che mi servono (overloading e 
poco altro).
Kiuhnm

 non ottieni un semplice puntatore?
Si. l'espressione "*(unsigned**)&a" e una lvalue di tipo (unsigned*).
        char c[100];
        char*p = c;
        *(unsigned**)&p += 7;
   /*  (unsigned *&)p += 7;  C++ */
Ora p punta a c[7 * sizeof (unsigned)]
-- 
Horst

 un cast a reference a puntatore?
Si. (unsigned*&)a e' una conversione della lvalue "a" in una lvalue di
tipo "reference a puntatore a unsigned".
Il tipo dell'espressione (unsigned**)&a e' una conversione del
indirizzo di "a" in un puntatore a puntatore a unsigned. Quindi
*(unsigned**)&a e una lvalue di tipo "puntatore a unsigned".
In ogni caso l'espressione incrementa la variabile "a" come se fosse
un puntatore a unsigned.
-- 
Horst
Newsgroup: it.comp.lang.c
Titolo: [REQ] Domanda sulle struct e sugli array...

Ciao a tutti, ho fatto la seguente struttura dati:
struct {
       int body[10];
       int lenght;
       } spada;
l'array di interi body non l'ho inizializzato.
Ho provato ad inizializzarlo così (ovviamente
al di fuori della struttura), ma non funziona,
mi da errore:
spada.body = {1,0,0,0,0,0,0,0,0,0};
dove sbaglio?
Non ho trovato nulla a riguardo...
grazie
-- 
-- 
,Blob{..DX21..}
visitate il mio sito:
http://xoomer.virgilio.it/blob.dx21/
----
"The voice is still clear in my head;
it's the last word in monologue....
close-up, interior, night."
Peter Hammill - Incoherence [2004]

 Non ho trovato nulla a riguardo...
Quello è un assegnamento, non una inizializzazione. Quindi non funziona.
Puoi fare:
struct {
         int body[10];
         int lenght;
         } spada = { {1,0,0,0,0,0,0,0,0,0}, 0 };

Newsgroup: it.comp.lang.c
Titolo: INFORMAZIONI URGENTI

Salve, ho bisogno di un urgente aiuto per risolvere un mio problema; ho
necessità di sapere come riuscire a cambiare il registro di configurazione del
sistema; in pratica vorrei falsificare "la gestione periferiche (all'interno
del pannello di controllo e poi dentro sistema).
In pratica se un pc ha un configurazione del tipo 
CDROM NEC
SCHEDA VIDEO MATROX G550
SCHEDA DI ACQUISIZIONE VIDEO PINNACLE DC10
ETC...
Vorrei poterli cambiare come di seguente
CDROM PIOONER 50X
SCHEDA VIDEO MATROX G400
SCHEDA DI ACQUISIZIONE VIDEO PINNACLE DC2000
ETC...
So che si puo' fare di intervenire nel registro di Windows ma non ho le
conoscenze adatte e cmq vi prego di destare attenzione alla mia richiesta
perche' fra qualche giorno saro' soggetto al controllo dei miei pc nel mio
negozio ed  per questo chiedo il vostro aiuto.
Grazie mille
spy...@email.it
-- 
Posted from 
ct1-45.dialup.tiscalinet.it
 [62.10.153.45] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


della serie se uno sporvveduto compra un pc da te miiiiiii che sola
e poi a striscia parlano solo dei benzinai....
-- 
================================================================================
"...Unix, MS-DOS, and Windows NT (also known as the 
    Good, the Bad, and the Ugly)."                     (by Matt Welsh)

 wrote:
guarda, non mi frega se lo fai per disonestà o per qualche problema...
cmq la manipolazione del registro si fa con delle API, io chiederei a
un NG sul win32 magari...
quello che posso dirti è che un .reg farebbe la stessa cosa, basta
prepararselo con calma.
non so di preciso dove si trovano le voci che ti servono ma penso
siano sotto HKEY_LOCAL_MACHINE.
Newsgroup: it.comp.lang.c
Titolo: Randomizzare la posizione degli elementi di un vettore

Ciao a tutti, dovrei creare un vettore di "interi unsigned" con tale
criterio: il vettore deve contenere tutti i numeri da " 1 " a "
lunghezza vettore " e presentarli in ordine casuale; nessun numero deve 
comparire più di una volta: ogni numero DEVE comparire una e una sola 
volta. Come mi consigliate di farlo? Ovviamente il linguaggio in cui 
dovrei implementare una tale funzione è il C :)
		ciao a tutti e grazie per le risposte, rz
-- 
                                   /TIDIRYUM - Ferrara - ITALY\
                                   \ICQ#    13901251   !!bye!!/
//°Orgoglioso fondatore di free.it.hobby.freccette-darts°\\

 dovrei implementare una tale funzione è il C :)
Crei il vettore, inserisci nella posizione i-esima il valore (i + 1).
Quindi esegui un numero arbitrario di swap, generando le posizioni da
scambiare con la funzione rand(). Ricordati di inizializzare il
generatore pseudo-casuale una ed una sola volta all'inizio del
programma con srand().
La domanda che hai posto suona molto come un "compito per casa". Ora, se
hai dubbi specifici chiedi pure, magari mostrandoci il codice che hai
scritto.
Luca
-- 
Home: 
http://kronoz.cjb.net
Runtime error 6D at f000:a12f : user incompetente


		ciao e grazie, rz
-- 
                                   /TIDIRYUM - Ferrara - ITALY\
                                   \ICQ#    13901251   !!bye!!/
° °  associato #2 alla LAVPS2 ° °
Matrix - Messiah - Lisa INSTALLER

 Mi spiegheresti molto più dettegliatamente come mi consiglieresti di agire?
Supponendo di avere un array di MAX elementi potresti decidere di
effetturare MAX * 2 swap. Quindi per ogni swap fai due chiamate a rand()
per ottenere quali elementi scambiare tra di loro.
unsigned int x;
int a, b;
for (x = 0; x < MAX * 2; x++) {
        a = (int) ((double)MAX * rand() / (RAND_MAX + 1.0));
        b = (int) ((double)MAX * rand() / (RAND_MAX + 1.0));
        swap(my_big_array, a, b);
}
Oppure, forse piu` semplice, puoi creare in modo casuale l'array:
memset(my_big_array, 0, MAX * sizeof(my_big_array[0]));
for (i = 0; i < MAX; i++) {
        pos = (int) ((double)MAX * rand() / (RAND_MAX + 1.0));
        /* Trova il primo libero */
        while(my_big_array[pos])
                if (pos == MAX - 1)
                        pos = 0;
                else
                        pos++;
 
        my_big_array[pos] = i + 1;
}
Questo peor` non e` molto simpatico visto che piu` l'array si riempie
piu` le collisioni aumentano...
Luca
-- 
Home: 
http://kronoz.cjb.net
Non capisco tutta questa eccitazione per il Multitasking: 
io sono anni che leggo in bagno.
Newsgroup: it.comp.lang.c
Titolo: Mesa : testi per iniziare

Ho postato da poco un messaggio a riguardo di info su mesa . Chiedevo
dei link a documenti da reperire in rete . Vista la scarsita` di
risposte a riguardo e inadeguatezza dei documenti che ho trovato in giro
vi ripropongo la domanda ... questa volta pero` chiedo titoli di testi
cartacei (eventualmente da prendere in prestito dalla biblioteca
dell'universita`) riguardanti la programmazione OpenGL per xwindows in
C ( il C++ non lo conosco molto bene)  accessibili a ingnoranti in
quanto a programmazione grafica....
Forse un testo solo e` una richiesta un po` grande ... va bene anche una
serie di testi ... insomma qualsiasi cosa abbiate usato per imparare ...
Grazie a chi mi rispondera` ...
                            Umberto

 Learning OpenGL.
Addison-Wesley
-- 
ciddi3d^Z
www.dronez.com

 quanto a programmazione grafica....
OpenGL(r) 1.2 Programming Guide, Third Edition: The Official Guide to 
Learning OpenGL.
-- 
ciddi3d^Z
www.dronez.com

 Addison-Wesley
Ho trovato in biblioteca :
OpenGL programming guide : the official guide to learning OpenGL, version
1.1 / OpenGL architecture review board, Mason Woo, Jackie Neider, Tom Davis
Seconda editzione
Va bene lo stesso ?

 Va bene lo stesso ?
Si', anche perche' a parte mesa, normalmente gli icd per windows sono 
compatibili con opengl 1.1, non con 1.2 (e molte "novita'" di OpenGL 1.2 
sono supportate come estensioni).
Come integrazione prendi il pdf che descrive le estensioni supportate 
dalle schede nvidia (
www.nvidia.com
, in developer support)
-- 
ciddi3d^Z
www.dronez.com

Ok grazie mille ...

1.1 / OpenGL architecture review board, Mason Woo, Jackie Neider, Tom Davis
Azz si trova roba del genere in biblioteca? Io non vado al di lą dei
Promessi Sposi... Biblioteca specializzata? Universitaria? Dove?


si visto che tra 1.1 e 1.2 cambia in poche cose mentre  le cose
fondamentali sono identici...
Se vuoi puoi anche vedere su 
www.opengl.org
 che trovi una marea di esempi
-- 
Sidewinder  
---------------------------------------------------------------------
The human race has one really effective weapon, and that is laughter.
		-- Mark Twain
---------------------------------------------------------------------

serie di testi ... insomma qualsiasi cosa abbiate usato per imparare ...
no so quanti e quali testi esistano per l'openGL
ma prova un po sul solito 
www.amazon.com

 Promessi Sposi... Biblioteca specializzata? Universitaria? Dove?
 Ho fatto una ricerca sul sito delle biblioteche dell' ateneo della mia citta`
.. L' ho trovato nella biblioteca di Ingegneria spero me lo diano lo stesso
anche se non sono iscritto a quel corso di laurea ... Se mai me lo faccio
prendere da qualche amico ingegnere ...
Ciao
Newsgroup: it.comp.lang.c
Titolo: calcolo sottrazione anomalo

salve,
ho provato ad eseguire il semplice programmino che segua, che deve eseguire
la sottrazione fra
due variabili a 64 bit (attenzione: somma64 è unsigned).
Non state a domandarvi perhè la eseguo in questa maniera (passando per i
puntatori): ho le mie
buone ragioni, che sarebbero lunghe da spiegare.
Purtroppo, qualsiasi coppia di valori io assegni alla coppia di variabili
globali:
(d_varianza64,  somma64)
la printf() mi visualizza il risultato errato.
Per esempio, se valga: (d_varianza64=0,  somma64=0) allora mi visualizza:
d_varianza64=-7.036875+013
Perchè?
Che cosa ho sbagliato?
Come posso ottenere il riultato corretto?
Ecco il codice:
**************************************************************
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
void f_sottrazione_B_64_64_64(void);
int64_t d_varianza64=0;
uint64_t somma64=0;
main()
{
f_sottrazione_B_64_64_64();
printf("d_varianza64=%e", (double)d_varianza64); getchar();
}
////////////////////////////////
void f_sottrazione_B_64_64_64(void)
{
/*
questa funzione esegue l'istruzione C:
d_varianza_64=d_varianza_64-somma64;
*/
uint64_t  *p_somma64;
int64_t *p_d_varianza64;
p_d_varianza64=(int64_t*)(&d_varianza64);
p_somma64=(uint64_t*)(&p_somma64);
(*p_d_varianza64)=(*p_d_varianza64)-(*p_somma64);
}
*************************************************************************
grazie,
adriano

 Come posso ottenere il riultato corretto?
Non so bene perché ma il proof-of-concept dava anche a me un risultato 
molto grande, dell'ordine di 1e16.
L'ho riscritto perché come prova mi sembrava un po' confusionaria e 
magicamente funziona.
andrea$ ./foouint 
varianza64=0.000000e+00
A te l'analisi dei puntatori, con un debugger dovrebbe essere un attimo:
#include <stdio.h>
#include <stdint.h>
void sottrazione(int64_t *parm1, uint64_t *parm2) {
   (*parm1) = (*parm1)-(*parm2);
 
   return;
}
int main() {
   int64_t     varianza64  = 0;
   uint64_t    somma64     = 0;
   sottrazione(&varianza64, &somma64);
   printf("varianza64=%e\n\n", (double)varianza64);
 
   return 0;
}

 la printf() mi visualizza il risultato errato.
L'errore sta qui:
p_somma64=(uint64_t*)(&p_somma64);
Stai assegnando l'indirizzo del puntatore, anziché del double. Il casting 
esplicito fa sì inoltre che il compilatore non ti segnali il problema.
-- 
  Matteo Beniamino

 p_somma64=(uint64_t*)(&p_somma64);
Non devi usare il cast, se non quando strettamente necessario. In questo 
caso il cast non è necessario e impedisce al compilatore di rilevare un 
banale errore di battitura.
E.

 Come posso ottenere il riultato corretto?
grazie a tutti per le risposte
adriano
Newsgroup: it.comp.lang.c
Titolo: Mi rispondete?

Per ora ho una lieve "infarinatura" di C, ma mi interessava
approfondire il linguaggio. Ci sono siti su internet che offrono corsi
di C in italiano? Se c'č molta scelta, indicatemi i migliori, i piů
chiari! Quelli con molti esempi!
Vi ringrazio infinitamente.
Paolo Perini
per...@bigfoot.com
http://users.iol.it/kaiohshin/
------------------
Italian Rendition World
http://irw.home.ml.org/


Personalmente sono abbastanza scettico sulle possibilità che potrebbe
offrire un corso "on line"..... un buon libro penso sia un'approccio di gran
lunga più efficiente !!
Ciao BR66
--
_____________________________________
Email: sostituire "NOSPAM" con "flashnet"
Email: replace "NOSPAM" with "flashnet"

Newsgroup: it.comp.lang.c
Titolo: Per gli utenti Djgpp+Rhide

Fai il comandp strip tuofile.exe per togliere le informazioni del
debugger ?

 
Oppure fai "strip tuo_programma.exe" dalla riga di comando
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

> creo l'.exe , questo eseguibile è di ben 60/70 Kb ,
la prima cosa da fare è
OPTIONS->COMPILERS->DEBUGGING-> -g(devi toglierla e risparmi circa il 2% in
spazio e molto in velocità)
OPTIONS->COMPILERS->OPTIMIZATIONS-> -O (livello 3)
poi è meglio che ti procuri un compressore di file.exe
come ad esempio MLP o DJP cha trovi in /v2misc
questo ti fa risparmiare dal 20 all'80% di spazio.

Newsgroup: it.comp.lang.c
Titolo: File binari e di testo

Salve a tutti!!
Il mio problema riguarda l'apertura di alcuni file.
Praticamente, quando mi arrivano dei file via internet, io li devo lavorare
in un certo modo..per far questo devo aprire il file di origine + il file di
destinazione (che sarà poi il file origine lavorato).
Spesso capita che aprendo i file di origine in modalità binaria, il file
lavorato viene creato correttamente, ma altre volte, visualizzandolo con un
editor, trovo solo quadratini neri o faccette..allora in questi casi aprendo
il file in modalità testo ho di nuovo risultati accettabili..
Ora come faccio a sapere in che modalità devo aprire i file per lavorarci su
ed ottenere un output leggibile?
Ovviamente uso un compilatore C e programmo sotto DOS.
Grazie!




Newsgroup: it.comp.lang.c
Titolo: Perche' printf non stampa da una DLL ?!

Ciao,
chiedo agli esperti un aiuto, forse un po' stupido (!):
Ho scritto una DLL, che nella mia totale ignoranza, dovrebbe
stampare:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
extern "C" __declspec (dllexport) int __stdcall Stampa()
{
for( int i = 0; i < 1000; ++i )
printf("TEST DI STAMPA\n");
return 0;
}
Provo a chiamare questa DLL da visual basic, ed infatti viene chiamata
ed usata, ma non ottengo nulla a video. Visto che sono un novizio, non
ho idea se mi manchi altro per aprire una finestra console e stampare
quello che voglio, e chiedo lumi sul da farsi..
Grazie di cuore!
Andrea Gatti.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Con questo codice, se utilizzi la DLL con VB non otterrai nulla perchč la
printf stampa sullo standard output (che dovrebbe essere la finestra di
DOS); ma dato che in VB non si possono costruire delle applicazione a
console, l'output di quella printf non verrą mai visualizzato.
Se vuoi provare delle DLL puoi provare a scrivere delle funzioni che ti
restituiscano qualcosa, e quindi verificare che questo "qualcosa" ti venga
effettivamente restituito con la chiamata a quella funzione in ambiente VB.
A presto
--
Rosario Marino
=================================================
Home Page: 
http://digilander.iol.it/rosarioMarino
e-mail: 
rosario...@libero.it
=================================================

 Rosario Marino
Ciao Rosario,
grazie della tua risposta. Difatti ne ho scritta una diversa, e
funziona. Grazie della tua spiegazione.
Saluti

Newsgroup: it.comp.lang.c
Titolo: Piccolo aiuto!

sto imparando le funzioni e il Deitel & Deitel ad un certo punto mi butta
davanti le gerarchie di promozione dei dati e mi fa vedere un sacco di tipi
di dato ma non me li spiega!
Alcuni non sono riusciti a trovarli da nessuna parte me li potete spiegare
gentilmente?
I tipi di dato sono:
long double
double
unsigned long int
long int
unsigned int
short
float (lo conosco anche se vorrei delle spiegazioni in + x esempio che diff.
c'č tra double e float?)
int e char questi li conosco  :)
ciao e tnk!

 short
   Sono i tipi da dato per i numeri interi. Lo standard ISO C99 
stabilisce che le dimensioni siano decrescenti da /long int/ a /short 
int/, passando per /int/. Spesso, la memorizzazione degli oggetti di 
tipo /int/ puo` coincidere con quella degli oggetti di tipo /short int/ 
oppure /long int/. Il qualificatore /unsigned/ specifica che l'oggetto 
e` memorizzato senza segno.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esercitiamo a scuola     Facciamo un gran casino
A far la faccia dura        Ma in fondo lavoriamo
Per fare piu` paura         Per capitan Uncino

e` memorizzato senza segno.
Non gli hai spiegato cosa significa solo /short/.
Questo e' un modo sintetico per indicare /short int/, cosi' come si
usa /long/ per indicare il /long int/.
Questi sono esattamente come spiegato da Capitan Uncino.
Mox

forse il libro non me li spiega perkè è ancora prematuro saperlo!
Ancora non faccio i vettori e non so a cosa può servirmi una variabile a 2 o
4 byte!
penso che basti usare int,char e float x ora giusto?
"Capitan Uncino" <c.uncino@l'isolachenonc'e`.org> ha scritto nel messaggio
news:a3ec0h$8e7$1...@news.flashnet.it...


penso che basti usare int,char e float x ora giusto?
Come gia' detto prima, inserisci anche il float, ovvero il numero in
virgola mobile.
Si usa come un int, solo che devi specificare sempre anche la parte
frazionaria con la sintassi <parte_intera>.<parte_frazionaria>.
Nota: la sintassi <identificatore> e' tipica delle grammatiche, sta' a
indicare un qualsiasi non terminale, nel caso specifico indica un
numero qualsiasi di cifre, fino ai massimi contenibili dal tipo in
questione.
Mox

 a 2 o 4 byte!
Le  dimensioni  si  riferiscono   alla  rappresentazione  interna  della
variabile, a te non deve interessare. Quando scrivi
int a;
riservi sizeof(int)  bytes (di solito  4 su x86) in  memoria. Quei bytes
verranno interpretati come un numero decimale con segno. Quando scrivi
float b;
riservi sizeof(float) bytes in memoria. Quei bytes verranno interpretati
come numero in virgola mobile normalizzato secondo lo standard IEEE (bit
di segno, mantissa, esponente).
Ma questo, di solito, non deve interessare al programmatore. Ti serve un
numero intero? Usi  int. Ti serve  un intero che  probabilmente sforera`
il  limite  degli int? Usi  un  long. Vuoi  un  numero con  la  virgola?
float. Vuoi una precisione superiore? double.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
You and me baby ain't nothin' but mammals
So let's do it like they do on the Discovery Channel
Newsgroup: it.comp.lang.c
Titolo: Mi serve un programmino ...

Per l'esame di Fondamenti di Informatica .

Per l'esame di Fondamenti di Informatica .
Tiriamo a indovinare ? ;)
Andrea Laforgia

 Per l'esame di Fondamenti di Informatica .
stile minimale, eh?
TX

#include <stdio.h>
main() {
   puts("Ciao mondo, mi aspetta un 30 e lode!");
}

 wrote in message news:370baf4d...@news.ctonline.it...


 void main(){printf("Hello world!\n");}
Ma cosě lo bocciano! Deve essere
#include <stdio.h>
int main()
{
    printf( "Hello world!\n" );
    return 0;
}
:-)))
EMG

 wrote in message 7eokq5$9eo$2...@nslave1.tin.it...

Newsgroup: it.comp.lang.c
Titolo: Istruzioni c per sistemi multiprocessor

Secondo voi,
	e' possibile tramite semplici istruzioni c far eseguire certe
funzioni su di un processore ed altre funzioni su di un altro.
Vorrei spaccare un problema in 4 (dato che ho una macchina con 4 processori)
in modo da ridurre i tempi di elaborazione.
Grazie Simone
________________________
Entra in 
www.omnitel.it
. Ti aspetta un mondo di servizi on line
-- 
Posted from 
ns.omnitel.it
 [194.20.65.11] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

in modo da ridurre i tempi di elaborazione.
Lo standard C non si occupa direttamente del multithreading; esistono
pero' degli standard multipiattaforma (POSIX pthread). In Win32
esistono invece chiamate specifiche (CreateThread e funzioni
connesse); in particolare per il VC++ queste sono a loro volta
incapsulate (_beginthread).
Se i diversi thread usino o meno diversi processori su una macchina
multiprocessore e' un altro problema e dovrebbe essere documentato
dal tuo sistema operativo.
Fai anche attenzione che in alcuni ambienti e' richiesto il link con
versioni speciali di librerie runtime con supporto multithreading
e che in alcuni casi questo supporto non e' presente (e quindi devi
proteggere determinate operazioni con dei mutex).
Io ad esempio ho recentemente sbattuto il muso contro l'uso di
contenitori standard C++ (std::map) e multithreading (anche in
sola lettura) con VC++6.0.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Buona domanda.
Non e' una questione di linguaggio, ma di problema (algoritmo)
intrinsecamente sequenziale o meno.
In sostanza devi essere tu, bravo a parallelizzare il tuo programma e
i tuoi dati. La principale difficolta' saranno le scritture
concorrenti. Ci sono diverse tecniche per approcciare questo problema,
ma tutte quante, ovviamente non risolvono appieno il problema
generale, e, cosa piu' importante, lasciano aperta ogni possibile idea
futura.
Se ho intuito bene, tu vorresti "partizionare" il tuo algoritmo in
tanti pezzetti indipendenti quanti sono i processori. Il paradosso e'
che piu' frammenterai , e quindi renderai indipendenti, i diversi
codici del tuo programma piu' quello che otterrai si avvicinera' a 4
differenti programmi indipendenti, per i quali non si puo' pienamente
parlare di "singolo" algoritmo parallelo.
E' un settore "aperto": i due principali approcci sono da una parte le
reti neuronali (o neurali) e dall'altra i sistemi distribuiti. In
pratica si va a tentoni, dalla vetusta "Connection Machine" , passando
per le moderne apparecchiature parallele dall'APE - dip. Fisica -
Univ. "La Sapienza" , al  CRAY.
Per esempio, su quest'ultima macchina, sappi che se TU non riuscissi a
programmare al meglio il tuo algoritmo e ad impostare correttamente i
dati, le prestazioni che otterresti sarebbero paragonabili "solamente"
ad un buon computer "casalingo".
Sincera ammirazione per l'idea e la tua motivazione, e soprattutto per
le tue apparecchiature!! :-)
Newsgroup: it.comp.lang.c
Titolo: Problemi di compilazione

 utilDebug.c:14: initializer element is not constant.
Hai provato con
FILE *utilDebugFile;
utilDebugFile = stderr;
?
EMG

Salve ,
sto cercando di compilare un pacchetto ma ho un problema . In
particolare alla linea:
FILE *utilDebugFile = stderr;
il compilatore (gcc sotto Linux Red Hat 5.2) mi  da il seguente errore:
utilDebug.c:14: initializer element is not constant.
Preciso che nel file è presente l' include a stdio.h
Sarei grato a chiunque fosse in grado di aiutarmi.
Ciao!!!!

Preciso che nel file è presente l' include a stdio.h
Se quella dichiarazione compare a livello di file (non si
trova cioe' in una funzione) allora il linguaggio richiede
che il valore di inizializzazione sia una costante.
'stderr' e' una variabile globale (non una costante) e come
tale non puo' quindi essere utilizzata in quel contesto.
Una soluzione e' definire semplicemente:
    FILE *utilDebugFile;
e poi assegnare
    utilDebugFile=stderr;
all'inizio di main(). Alternativamente (se utilDebugFile
e' *sempre* identico a stderr) si puo' anche sostituire
la tua definizione con
#define utilDebugFile stderr
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 
stderr e' un file descriptor, quindi e' di tipo int, non e' un FILE*;
anzi, se non sbaglio vale 2
--
 Ciao, Bianco.
 Reply to 
luca....@tiscalinet.it

 anzi, se non sbaglio vale 2
AAAUUUUUGGGGGGGGGHHHHHHHHHHHHHHHHHHH!
$ man 3 stderr
STDIN(3)                  System Programmer's Manual                  STDIN(3)
NAME
     stdin, stdout, stderr - standard I/O streams
SYNOPSIS
     #include <stdio.h>
     extern FILE *stdin;
     extern FILE *stdout;
     extern FILE *stderr;
<snip>
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

      extern FILE *stderr;
Si', lo so, ho detto una ca##ata. Me ne sono accorto in ritardo, il
danno era fatto... chiedo venia per eventuali danni arrecati con
questa mia affermazione "non proprio esatta".

Newsgroup: it.comp.lang.c
Titolo: File aperto

Ciao a tutti, volevo sapere come faccio ad individuare se un file è
aperto usando la funzione access(). Il mio prof mi ha scritto che un
file aperto ha lo stesso nome ma con estensione ".$$$". Ho provato in
tutte le salse ma non va. Suggerimenti ?

 Suggerimenti ?
Non so quali salse hai provato, ma questo non č un problema che puň essere 
risolto con gli strumenti del C standard. Sposta la discussione in un 
newsgroup in cui si parli dell'ambiente/piattaforma/SO che ti interessa.
Max

il sitema operativo è linux/unix

 
eh ehm... GNU/Linux.
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

Devo rivelare che un file sia aperto usando la funzione access().
Qualcuno di voi l'ha già usata per questo scopo  ?

 
Allora il tuo prof. e` un po` fuori di testa.


 
Semplicemente, non puoi usare access(). Non fa quello che vuoi tu.
$ man 2 access
NAME
       access - check user's permissions for a file
SYNOPSIS
       #include <unistd.h>
       int access(const char *pathname, int mode);
DESCRIPTION
       access()  checks  whether  the  process  would  be  allowed to
       read, write or test for existence of the file (or other file
       system object) whose name is pathname.  If pathname is a symbolic
       link permissions of the file referred to  by  this  symbolic link
       are tested.
       mode is a mask consisting of one or more of R_OK, W_OK, X_OK and
       F_OK.
       R_OK, W_OK and X_OK request checking whether the file exists
and 	       has read, write and execute permissions, respectively.  F_OK
just
       requests checking for the existence of the file.
Quindi access() controlla i permessi di un file, non se è aperto.
David


 Allora il tuo prof. e` un po` fuori di testa.
A meno che non faccia riferimento ad un programma *specifico" che ha 
l'abitudine di creare un file .$$$ per ogni file che apre.
In questo caso la domanda non è: "come faccio a verificare se un file è 
aperto" ma "come faccio a verificare se un file è aperto da quel programma".
Se è così si torna alla domanda: "come faccio a verificare l'esistenza 
di un file".
Remo D.

Ti irporto le testuali parole della documentazione del mio compito :Il
modo di verificare se un file è aperto è verificare se esite un file
che ha lo stesso nome ma ha estensione ".$$$"
Ora, l'esistenza io la verifico con access, ma se gli passo
nomefile.$$$ non me lo trova anche se aperto. Non so cosa fare !

novità?

scuffio ha scritto:

Ti rimando a questo post:
e0625f$2mse$
1...@newsreader2.mclink.it
La domanda diventa "come fare a verificare se un file è aperto da tale
programma?".
Normalmente non vengono creati file .$$$.
Chiedi al tuo prof di che programma si tratta.


 nomefile.$$$ non me lo trova anche se aperto.  
Potrebbe darsi che non stai costruendo il nome del secondo file nel modo 
corretto. Forse (faccio ipotesi alla cieca) gli *aggiungi* un'estensione, 
mentre dovresti invece *sostituire* con "$$$" il suffisso che segue il 
punto nel nome originale.
Max

Grazie a tutti per i chiarimenti ! Siete grandi !
Newsgroup: it.comp.lang.c
Titolo: compilatore

Sto cercando un compilatore veloce e snello di poche pretese per win
per compilare programmini veramente elementari.
Non mi serve quindi nessun ambiente di sviluppo come Borland e anche
lcc è fin troppo per le mie esigenze.
Avete qualcosa da consigliarmi?
 ------------------------------------
 Il peccato di Caino
 La seduzione del male
 
www.vampiripavia.com
-------------------------------------
                *IcarusDream*
  -Dove un sogno è ancora libero-

 Avete qualcosa da consigliarmi?
dev-c++ 7 mb (ambiente di sviluppo come bonus incluso)
www.bloodshed.net

Newsgroup: it.comp.lang.c
Titolo: Materiale su liste e allocazione dinamica della memoria: dove?

Ciao a tutti,
sono uno studente universitario di ingegneria informatica (1° anno). Mi 
trovo per la prima volta nella mia vita a che fare con la programmazione 
in C, e non va male, anzi, solo che un piccolo particolare mi sta 
rendendo la vita un po' difficile: le liste. Qualcuno sa darmi un buon 
indirizzo su dove trovare (in rete, s'intende) materiale utile per 
imparare?
Grazie per la disponibilità.
Bye bye

 ha scritto nel messaggio
news:MPG.16d7000e2...@powernews.libero.it...


 
http://www.cprogramming.com/tutorial.html.
..
Grazie, non avresti per caso anche qualcosa in italiano? =)
Ciao!

 ha scritto nel messaggio
news:MPG.16d707783...@powernews.libero.it...


Newsgroup: it.comp.lang.c
Titolo: fork()

Buongiorno a tutti!
Qualcuno mi saprebbe indicare gentilmente che libreria includere per usare
la funzione fork()???
E sopratutto funziona anche sotto windows o solo sotto linux?
Nel caso funzionasse solo sotto linux quale sarebbe la funzione analoga in
windows?
Grazie a tutti e buona giornata!!!

 la funzione analoga in windows?
Non esiste, studiati i threads e vedrai che sarai piu' contento che con
fork. Ma studiali bene, la programmazione concorrente all'inizio sembra
banale ma non la e'.
Ancora una volta la programmazione concorrente e' OT visto che il C non la
prevede (al contrario di Java ad esempio).
Tommy

 banale ma non la e'.
beh, potrebbe scriversi delle funzioni che facciano da wrapper alle
semantiche posix per unix e a quelle microsoft per i vari windows. E
comunque non direi che con i thread si viva piů felici che con i task.
Entrambe le soluzioni hanno i loro pro e i loro contro.
PS: followup su it.comp.os.linux.development, visto che per la parte unix
č il ng piů adatto.
Newsgroup: it.comp.lang.c
Titolo: Tipi in virgola fissa

Ciao a tutti,
sto lavorando con un processore dedicato per l'elaborazione di segnali 
audio. Tale DSP opera in virgola fissa...questo mi limita nella definizione 
dei tipi di variabile? Dove posso trovare una documentazione valida sulle 
operazioni in virgola fissa?
Grazie a tutti 

SDV ha scritto:

hum... cercare con google "fixed point arithmetic" sembra un buon punto 
di partenza. Per quanto riguarda i tipi, penso che tu debba fare 
riferimento alla documentazione del DSP/compilatore.
Ciao.

 ha scritto nel messaggio 
news:447ac325$0$18295$4faf...@reader1.news.tin.it...


Newsgroup: it.comp.lang.c
Titolo: Linux seriali

Hello All!
Volevo chiedervi un aiuto sulla programmazione delle porte seriali sotto
linux. Non ho idea da dove partire o dove reperire esempi e/o documentazione
in merito.
Se avete gia' affrontato questo problema e mi potete mandare un sorgente su
come inizializzare una porta seriale su Linux e come scrivere/leggervi dei
dati mi dareste un grosso aiuto. Grazie!
Bye,
  Aldo

 in merito.
Serial port programming HOWTO. E' contenuto in tutte le distribuzioni e
viene messo in /usr/doc/HOWTO. Ci sono puntatori ad altre fonti di
informazione.
Cordialmente.

in merito.


Newsgroup: it.comp.lang.c
Titolo: Problemi FLOAT

Quando chiedo di moltiplicare due FLOAT mi escono numeri icomprensibili.
Perchč?
Quale altro comando posso usare per moltiplicare numeri con la virgola o
numeri interi con quelli frazionari?
GRAZIE

 Perchè?
Come dichiari?  Con che formato stampi?  Cosa e' sbagliato, per caso la
settima decimale?  Puoi scrivere esattamente cosa succede, magari con
un esempio minimo del tipo di:
MLO@cmssun2 5 $ cat foo.c
#include <stdio.h>
 
int main()
{ float x=10.0, y=3.1, z;
  z = x * y;
  printf("%f * %f = %f\n", x, y, z);
  return 0;
}
MLO@cmssun2 6 $ gcc foo.c
MLO@cmssun2 7 $ ./a.out
10.000000 * 3.100000 = 31.000000
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Newsgroup: it.comp.lang.c
Titolo: Problema con passaggio di argomenti al main

Salve, sto studiando il c e, per fare qualche esercizio, ho deciso di
implementare un piccolo prgramma che cripti una stringa secondo il
cifrario di cesare. Questo è il source: 
http://sprunge.us/IaDL?c
I problemi sono 2: il primo è che se eseguo il programma dando come
parametro "Cripta", mi printa il blocco dell'else, mentre se passo
come parametro "Decripta", mi avvia la funzione per criptare, che
dovrebbe partire dando "Cripta".
Essendo alle prime armi con questo linguaggio avro' fatto sicuramente
qualche errore stupido :D
Grazie in anticipo.

Ok, tutto risolto, grazie =)

   11:03:01 up 4 days, 14:00,  1 user,  load average: 2.58, 1.52, 1.40
Ok, è che l'avevo dato per scontato che ritornasse 1 :D
Starò più attento la prossima volta ;-)
Newsgroup: it.comp.lang.c
Titolo: realizzare uno screensaver

ciao ! ho appena saputo che MTV.it sponsorizza un contest per realizza un
screensaver
a parte il premio che consiste in soggiorno ad Ibiza questa estate
i migliori lavori saranno esposti in una gallery
guardate alla url
http://www.webb.it/mtv
aiutatemi a realizzare il mio sogno di webdesigner di lavorare per mtv
ci sono dei tool di programmazione semplici per realizzare screensaver

 ci sono dei tool di programmazione semplici per realizzare screensaver
Con tutto cio' che centra il C?

Newsgroup: it.comp.lang.c
Titolo: problema cin e distruttore

buongiorno, ho questo esempio di classe.
MAXDIMNOME=50;
class cliente{
  private:
    int codice;
    char nome[MAXDIMNOME];
  public:
    cliente();
    ~cliente();
    void insDati();
};
cliente::cliente()
{
  codice     = 0;
  nome[0]    = '\0';
}
void cliente::insDati()
{
  //che istruzione devo inserire alla cin per 
  //far si che il carattere spazio sia interpretato come carattere?
  //Del Piero, mi da problemi...
  cout << endl << "codice: ";   cin >> codice;
  cout << endl << "nome: ";     cin >> nome;
}
int main()
{
  int fine;
  cliente cli;
  cout << endl << endl << "ESEMPIO CLASSI";
  cli.insDati();
  delete cli;
  cin >> fine;
  return 0;
}
il problema è il distruttore, è correto come lo utilizzo? commetto qlc 
errore di sintassi?
Grazie.
Inviato da 
www.mynewsgate.net

> buongiorno, ho questo esempio di classe.
Mmmm ... forse mi sfugge qualcosa ...
Ciao Max
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

Newsgroup: it.comp.lang.c
Titolo: Array di stringhe con malloc

Salve,
Per definire un vettore monodimensionale di stringhe, invece di
utilizzare la dichiarazione:
char a[1000000];
uso la seguente dichiarazione di allocazione dinamica:
char *a = (char *) malloc(sizeof(char)*1000000);
Ora, se invece di utilizzare la dichiarazione
char a[100000][40];
volessi allocare dinamicamente con malloc la matrice, come dovrei
dichiarare?
Grazie,
Camelot

 dichiarare?
char **a = malloc(100000*sizeof(char*));
for (i=0; i<100000; i++) {
   a[i] = malloc(40);
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
Grazie! ;-)
Newsgroup: it.comp.lang.c
Titolo: char ed unsigned char

salve,
ho scritto questo semplice programmino:
************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <math.h>
#include <stdint.h>
main()
{
 int i="valore";
 char j;
 unsigned char k;
 j=i;
 k=i;
 printf("%i\n" "%u\n" "%c\n" "%c\n" ,  i, i,j,k);
 getchar();
}
************************************************************************
ecco che cosa mi visualizza la finestra MS dos in corrispondenza di alcuni
"valore".
si osservi che ogni valore è stampato a video su una riga diversa:
1) se valore=0 allora
i(%i)=0
i(%u)=0
j(%c)=non scrive niente (la riga viene lasciata vuota)
k(%c)=non scrive niente (la riga viene lasciata vuota)
2)se valore=1 allora
i(%i)=1
i(%u)=1
j(%c)=disegno faccina
k(%c)=disegno faccina
3)se valore=-1 allora
i(%i)=-1
i(%u)=4294967295
j(%c)=non scrive niente (la riga viene lasciata vuota)
k(%c)=non scrive niente (la riga viene lasciata vuota)
4)se valore=216 allora
i(%i)=216
i(%u)=216
j(%c)=i con due puntini sopra
k(%c)=i con due puntini sopra
5)se valore=-216 allora
i(%i)=-216
i(%u)=4294967080
j(%c)=(
k(%c)=(
ebbene questi risultati a me sorprendono.
Ora io chiedo:
1)perchè le certe volte (se i=1 e se i=-1) nelle righe j(%c) e k(%c) non mi
stampa niente?
2)esiste almeno un caso in cui "char" ed "unsigned char" visualizzino il
simbolo diverso in
 questo programmino? Io non l'ho trovato. Ma se le cose stannao così, allora
che bisogno c'è di
distinguere "char" da "unsigned char"?
3)nell'impiego della printf() esiste il simbolo da porre accanto a "%"
specifico per gli
 "unsigned char" e cioè diverso da "%c" che è specifico per i char?
grazie,
adriano

  "unsigned char" e cioè diverso da "%c" che è specifico per i char?
Quoto dalla man page: ( "
http://linux.die.net/man/3/sprintf
 )
The conversion specifier 
...
c     If no l modifier is present, the int argument is converted to an
 -->> unsigned  char, and the resulting character is written.  If an l
      modifier is present, the wint_t  (wide  character)  argument  is
      converted  to  a  multibyte  sequence by a call to the wcrtomb()
      function, with a conversion state starting in the initial state,
      and the resulting multibyte string is written.
Ciao
- g

  "unsigned char" e cioè diverso da "%c" che è specifico per i char?
No. Osserva che quando metti un "%c" non stai specificando che il 
parametro deve essere un char. In effetti il parametro è sempre intero 
(come ti dicevo i char vengono convertiti ad interi quando li passi alla 
printf). Quello che stai specificando è come deve essere interpretato 
tale intero.
Prova ad esempio:
int x=53;
printf(" %c %d %x \n",x,x,x);
E.
Newsgroup: it.comp.lang.c
Titolo: Grosso problema con "fopen"

Salve a tutti,
Ho il seguente problema con un
programma C funzionanate su
IBM AIX 4.2.1 (non conosco
con che compilatore è stato
creato il programma): quando
tento di aprire un file testo
più grande di 2 GByte, il programma
si pianta. Ritengo che sia un limite
della "fopen".
Qualcuno sa dirmi  qualcosa in proposito?
Al limite, c'è un altro modo per leggere/scivere
file così grandi in C?
Per cortesia, mandatemi le eventuali
risposte anche via e-mail a: mailto:
marco...@mail.datasys.it
Scusate il disturbo e grazie a tutti per la cortese attenzione.
   Marco

 della "fopen".
Sinceramente non penso sia un problema di fopen;
Hai i sorgenti da postare?
Ivan Molella

 wrote in message 38C6B660...@tin.it...


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

Come faccio a dichiarare un prototype con una struttura
struct elelista {
...
}
struct elelista * aggEleTesta( struct elelista * lista, int r, int c, char
tipo, char * nome ) {
...
}
ed infine la funzione
double selez(struct elelista *tmp, int riga, int col) {
...
}

 wrote in message
news:5Awcc.129$
VY7.93...@news.nnrp.ca

Il prototipo di quelle funzioni e':
struct elelista* aggEleTesta(struct elelista*, int, int, char, char*);
double selez(struct elelista*, int, int);
cosa non ho capito della richiesta?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:73d35d762853a3c3a65...@mygate.mailgate.org...


 wrote in message
news:c4u6nd$2mpm0s$1...@ID-180051.news.uni-berlin.de...


Qualcuno sa come implementare un algoritmo per calcolare il determinante di
una matrice nxn?
Oppure ha qualche esempio?


Semplicissimo:
implementi la fattorizzazione LU con pivot parziale.
(Naturalmente rispetto all'implementazione standard
ci saranno delle cose che puoi anche evitare di memorizzare).
Il determinante sara' il prodotto dei pivot,
cambiato di segno ogni volta che fai uno scambio
di riga per effetto del pivotaggio.
Se cerchi in rete trovi sicuramente qualcosa,
con parole chiave come LU o gaussian elimination  e determinant.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: [neofita]Consiglio

Ciao a tutti,
non so programmare in C ma vorrei cominciare
a vedere se capisco qualcosa..... visto che mi sto avvicinando
a Linux, mi sembra un buon motivo per cominciare.
Vorrei qualche consiglio su come cominciare
io ho recuperato un libro sul C : "informatica arte e mestiere"
di Ceri; Mandrioli e Sbattella  Edizione McGraw-Hill
cosa me dite?? lo conoscete?
Vorrei un parere anche su quanto tempo ci si mette
a imparare almeno le basi ; lo so che č una domanda
che non ha molto senso perň, cosě a grandi linee.
Tenete conto che io lo farei a tempo perso perchč lavoro.
                                                Ciao e grazie MAVir

 
se lo faresti a tempo perso e "tanto per fare", lascia perdere, dedicati a
linguaggi di piu` alto livello che ti possono dare piu` soddisfazione in meno
tempo. Ad esempio python.
Se invece sei convinto delle tue intenzioni, per imparare le basi del C il tempo
e` variabile da 1 a 2 mesi, dipende da quanto gia` ne sai "di computer" (Linux
ti aiutera`).
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG