mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Sono NUOVO. Come inserire la parentesi graffa in LCC-Win32 ?

Come vedete sono proprio all'inizio.
Come posso inserire la parentesi graffa, visto che sulla tastiera non ce
l'ho?
Grazie
Dhokaa

premi e tieni premuto il tasto ALT e contemporaneamente premi sul tastierino
numerico 123 { e 125 }
--
____________________________________________________
________________________________________________
Visita il mio sito: 
http://members.xoom.it/DanxVB

 ha scritto nel messaggio
news:8baj9o$nd5$1...@serv1.iunet.it...

Oppure: Alt Gr+shift+[    per la {
              Alt Gr+shift+]    per la  }

 wrote in message
8baqvp$u7t$1...@lacerta.tiscalinet.it...



Alt+126
--
Marco Coppo
University Of Sheffield
FAQ del gruppo: 
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 
c'e' una combinazione per oguno dei caratteri ascii
basta che usi:
Alt seguito dal codice ascii del carattere digitato sul tastierino
numerico ( rigorosamente li' )

Newsgroup: it.comp.lang.c
Titolo: help su parsing stiga

Devo parserizzare una stringa di char contenua in un array per ottenere
degli Int.
In pratica ho la stringa 3+(4*(4-5))) 
devo individuare le parentesi e simboli mentre i numeri li devo mettere in
un' apposita struttura dati sotto forma di int.
Sapreste darmi una mano sopratutto nell' individuare la funzione per fare
leggere la stringa e tradurla in interi, eventualmente segnalandomi un sito
internet che spieghi la libreria.
tnk
ciao

 wrote

Internet e' pieno di esempi di parser a cascata ricorsiva. Guardane uno a
caso ed impara come si fa.
Leggere i numeri e' la parte piu' banale. La precendenza degli operatori e
le parentesi invece rientrano nella parte "... a cascata ricorsiva".
Tommy

Markanoid ha scritto:

In un esercizio nella sezione 6.1 di "The C++ Programming Language" di
Stroustrup trovi un bell'esempio di un parser di espressioni aritmetiche che
supporta le quattro operazioni fondamentali e le parentesi.
In quel punto del libro non è ancora arrivato a introdurre costrutti
specifici del C++, quindi anche se sai solo il C non dovresti aver
difficoltà a capire il codice.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Voglio imparare il C

Salve a tutti , devo realizzare dei programmini semplici graficamente
ma che dialogano con dei circuiti esteri tramite la USB o ethernet .
Vorrei sfruttare questa occasione per imparare il C da dove posso
iniziare? Per ora mi basta anche solo  "Salve , mondo!""
Grazie a tutti per la pazienza

 iniziare? Per ora mi basta anche solo  "Salve , mondo!""
http://ada2.unipv.it/biblio/trickyc/trkcfrm.htm
Buona lettura :D
-- 
bunker
+++++++++++[>++++++>+++++++++++++++++++++++++++++++++>++++
++++++<<<-]>.>++++++++++.>.<----------.>---------.<+++++++.

 
http://ada2.unipv.it/biblio/trickyc/trkcfrm.htm
Il "Tricky C" è sconsigliabile per moltissime ragioni.
Molto meglio partire da un manuale più aderente allo standard del 
linguaggio.  Il K&R, benché un po' ostico, è comunque una fonte 
migliore.  Esistono altri manuali validi, basta cercare nei vecchi 
messaggi, se n'è fatto spesso riferimento.

Ok ce l'ho ma da dove comincio? il compilatore per windows ? dove lo
prendo ? Oppure da VC ci sono delle pagine dove posso scrivere gli
esmpi del libro o pei vedere il risultato?

[...]
...compilatori per ambiente windows:
www.delorie.com
www.mingw.org
altri ne esistono, ma ora nn ricordo!
Ciao

Mauro72 wrote:

Se possiedi il Visual C++, ti è già possibile scrivere applicazioni per 
Windows.  In ogni caso:
http://tinyurl.com/9xeqx

 
per uno che deve imparare da zero, non credo che windows sia una buona 
scelta. è ostico e costringe ad imparare un metodo di sviluppo non 
conforme agli standard.
una versione live di Linux sarebbe molto meglio

 conforme agli standard.
Non è vero.  A meno di non partire con lo sviluppo di interfacce 
grafiche (ma anche in questo caso c'è da fare delle riserve, perché 
esistono pacchetti x-platform), sotto Windows è possibile programmare 
seguendo lo standard del linguaggio.  Basta dotarsi del compilatore adatto.
Newsgroup: it.comp.lang.c
Titolo: Dimensioni si stringhe e puntatori: ?!?

Perchè il seguente programma:
---------programma---------
#include <stdio.h>
void main()
{
	char string1[11];
	char *string2="prova";
	char string3[]="prova";
	printf("sizeof(string1)=%d\n", sizeof(string1));
	printf("sizeof(string2)=%d\n", sizeof(string2));
	printf("sizeof(string3)=%d\n", sizeof(string3));
	printf("sizeof(char *)=%d\n", sizeof(char *));
}
---------programma---------
Da questo output?
---------output---------
sizeof(string1)=11
sizeof(string2)=4
sizeof(string3)=6
sizeof(ptr)=4
---------output---------
In particolare:
perchè nel caso di string1 mi da la dimensione dell'array e nel caso
di string2 mi da la dimensione del puntatore?
Credevo che in tutti e tre i casi la dimensione restituita da sizeof
sarebbe stata quella del puntatore!
Allora, se la cosa funziona così, quando posso usare sizeof(string) al
posto di strlen(string) ? (ovviamente sempre se la stringa è piena per
tutta la sua lunghezza, perchè capisco che nel caso di: 
char string[20]="ciao";
i due valori saranno differenti).
Solo nel caso in cui calcoli la dimensione dell'array nel corpo della
stessa funzione in cui l'ho creata?
Grazie.

 posto di strlen(string) ?
Mai, le due scritture non sono equivalenti.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 int main(), secondo lo standard.
Ehm... int main(void) secondo lo standard. :-)
C:\>iao Angelo.


 Ehm... int main(void) secondo lo standard. :-)
No.
int main() e' legale, secondo lo standard.


 int main() e' legale, secondo lo standard.
Scusa ma una funzione dichiarata come
xxx fnc()
in "C" non dovrebbe accettare un numero arbitrario di parametri?
Lo standard non prevede solo due prototipi
int main(void);
che non accetta nessun parametro, e
int main(int argc, char* argv[]);
che accetta solo due parametri?
C:\>iao Angelo.


 che accetta solo due parametri?
No, lo standard prevede:
int main()
int main(void)
int main(int argc, char **argv)
Nel rispetto di cio' che main puo' o non puo' accettare,
non e' importante cosa vi sia tra le parentesi, la cosa 
importante e' che il tipo di ritorno sia intero.


 importante e' che il tipo di ritorno sia intero.
Questo e` vero, ma main e` una funzione un po' particolare. In generale
le scritture:
int foo();
e
int foo(void);
hanno  un  significato  completamente  diverso. La  prima,  a  rigor  di
standard, non e` neppure un vero e proprio prototipo.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish

 La prima non e` contemplata (parlo del C99).
Allora parliamo di standard diversi.
Io sono fermo al C89.

Newsgroup: it.comp.lang.c
Titolo: Cerco algoritmi di compressione..

Cerco degli algoritmi di compressione che mi permettano di comprimere E
decomprimere file BINARI. Devono inoltre essere gratuiti ed in C): sarebbe
preferibile se lavorassero su un blocco di memoria fissato (dati offset e
dimensione contigua) ma andrebbe bene anche con operazioni su disco. Inoltre
NON devono avere interfacce grafiche: in pratica due funzioni
Comprimi(void* offset, size_t size, void* dest)
e
Decomprimi(void* offset, size_t size, void* dest)
sarebbero ottimali, o in alternativa:
ComprimiFile(FILE* fin, FILE* fout)
e
DecomprimiFile(FILE* fin, FILE* fout)
Qualcuno ne sa qualcosa? Grazie in anticipo.



decomprimere file BINARI. Devono inoltre essere gratuiti ed in C):
sarebbe
Ti servono le librerie curate e gratuitamente pubblicate dal
gruppo infozip, 
http://www.cdrom.com/pub/infozip/
.
Alex

procurati il libro
Numerical Recipes in C
lo trovi in postscript sulla rete...(almeno fino a poco tempo fa)
saluti
guglielmo alfieri

Newsgroup: it.comp.lang.c
Titolo: dichiarazione dimensione array

ciao a tutti,
sono molto arrugginito con il C visto che non lo uso dai tempi della
scuola. Ho la necessita' di dimensionare un vettore di double in base a un
calcolo che viene calcolato realizzato all'interno del codice. E'
possibile fare il conto e successivamente dimensionare il vettore?
grazie dell'attenzione
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:caua22$i5r$1...@news.newsland.it...


 >
e se usassi un compilatore c++?
ciao


 ciao
Dovresti usare new, omologo di malloc() per C++.
Sennň prova ad usare std::vector<>, cosě ad allocare la memoria ci pensa
lui.
Ciao!
-- 
Per l'e-mail rimuovere le maiuscole e gli underscore

 Dovresti usare new, omologo di malloc() per C++.
E soprattutto dovresti postare in it.comp.lang.c++.
-- 
Enrico `Trippo' Porreca

Enrico `Trippo' Porreca ha scritto:


Scusate ma mi hanno detto al lavoro che non posso usare il C++ e quindi
come non detto. Provo a vedere di usare la malloc anche se mi ricordavo
che era possibile in qualche modo dimensionare un vettore successivamente..
grazie ancora a tutti

Newsgroup: it.comp.lang.c
Titolo: problema con _inline

Ho il seguente codice diviso in 4 file:
file mio.h:
#define MAX_NUM 10000000
file mio.c:
#include "mio.h"
#include <stdio.h>
#include "scrivi.h"
void main (int argc,char** argv){
  int a;
  a=MAX_NUM;
printf("Il numero nel file header e' %d",MAX_NUM);
scrivi(a);
}
file scrivi.h:
_inline int scrivi(int a);
file scrivi.c:
#inlude <stdio.h>
#include "scrivi.h"
_inline int scrivi(int a){
printf("\nfunzione inline dice che il numero e' %d",a);
return 1;
}
Linea di compilazione(sotto AIX 4.3.3)
xlc -O -qinline -o mio mio.c
stderr:
"mio.c", line 5.33: 1506-277 (S) Syntax error: possible missing ';' or ','?
"scrivi.h", line 1.1: 1506-485 (S) Parameter declaration list is
incompatible with declarator for inline.
Cosa c'e' di sbagliato?
Grazie,
Dario

 scrivi(a);
Siccome non c'e' la numerazione delle linee
non riesco a capire cosa ci possa essere di sbagliato
alla linea 5.33 (vuol dire linea 5, carattere 33 ??).
A parte che il main andrebbe dichiarato int, ma non
sembra questo il problema.
Io personalmente non ho mai compilato sotto AIX,
pero' ci sono dei compilatori che si lamentano (a ragione!)
se le funzioni definite inline non vengono definite
nella stessa unita' che le usa.
Nel tuo esempio tu definisci la inline in scrivi.c ma poi
la invochi in mio.c.
Ora, molti i compilatori compilano ogni file *.c
separatamente, producendo (esplicitamente o implicitamente)
dei file  *.o o *.obj che poi
il linker si preoccupera' di "cucire insieme" (eventualmente
anche alle librerie) per ottenere l'eseguibile.
Tipicamente quando un pezzo di codice chiama una funzione
il compilatore in quel punto inserisce una chiamata alla funzione.
Questa istruzione puo' essere inserita anche se il corpo della funzione
non e' noto al momento (perche' e' definita dentro un altro file *.c)
purche' sia nota la dichiarazione (tipo degli argomenti e tipo 
restituito): ci pensera' il linker in un secondo momento ad inserire
il vero indirizzo di memoria del codice della funzione.
La direttiva inline tipicamente serve per suggerire al compilatore
di non mettere una chiamata alla funzione specificata, ma se possibile
di inserire in quel punto tutto il codice della funzione:
questo ha almeno due vantaggi:
1) evita la chiamata di una funzione, 2) permette di effettuare
ulteriori ottimizzazioni, per esempio se chiamo la funzione inline 
passandogli una costante il programma potrebbe gia' effettuare il 
calcolo a tempo di compilazione. E' chiaro che queste operazioni possono
essere effettuate solo se nel momento in cui il compilatore
compila il codice chiamante conosce esattamente il codice della funzione
inline chiamata. Se si trova in un altro file *.c questo potrebbe non
essere possibile. E certi compilatori segnalano questo fatto.
Scusa, la prolissita', e magari questo non e' nemmeno il tuo caso,
(ma potrebbe essere il caso di qualcunaltro...).
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: linux

ciao a tutti sono nuovo.
premetto che non so assolutamente programmare......e vi vorrei chiedere una
info:
linux č un sistema operativo fatto con C++ sarebbe stato possibile fare un
prg simile ma con visual basic 6?
quali sono le sostanziali differenze tra C++ e VB6?(pregi e difetti)
Ciao e grazie a tutti

 quali sono le sostanziali differenze tra C++ e VB6?(pregi e difetti)
In primo luogo sono linguaggi sviluppati secondo diverse filosofie; in
secondo luogo le differenze dal punto di vista
prettamente di programmazione sono troppe e rischierei di metterti solo una
grande confusione in testa.
Secondo la difficoltà C/C++ superano notevolmente VB.
La gamma di software che possono essere sviluppati con C supera notevolmente
quella del VB, che si limita alle sole applicazioni per sistemi Windows.
PS: per quanto VB sia notevolmente semplice non lo consiglio ad un
principiante. Potresti invece cominciare con il Pascal e rimandare
successivamente la scelta tra C/C++ o VB.
Ciao.

 prg simile ma con visual basic 6?
Innanzitutto: il kernel di Linux e` stato scritto in C e ASM.
Per rispondere  alla tua  domanda: fare  un sistema  operativo in  VB e`
*abbastanza* impossibile. Il Visual Basic  non permette un'interazione a
basso  livello con  la macchina,  caratteristica propria  di un  sistema
operativo. Secondariamente, il  VB si  appoggia pesantemente  su Windows
per far funzionare i programmi scritti in questo linguaggio.  Come terza
e ultima cosa: che te ne fai di un linguaggio di programmazione visuale,
per interfaccie grafiche, quando scrivi un sistema operativo.
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 Tutor at D.S.I. University of Milan
V_/_ 'The future will not remember, the past doesn't forget.'
I'm Linux zion 2.2.19 #7 Tue Apr 24 12:58:56 CEST 2001 i586

Newsgroup: it.comp.lang.c
Titolo: Problema #2

Ho fatto un programma che rinomina dei file con una determinata estensione
in un altra...
e fin qui tutto bene...
Il problema viene quando voglio che rinomini i file in tutto l'Hard Disk
anche nelle sotto directory.
E' possibile?
Ho sviluppato questo programma con Turbo C++ utilizzando la finzione RENAME
e funziona sotto DOS.
E' possibile fare lo stesso programma in modo che funzioni sotto Win9X???
Ho possibilita' di usare anche VC++6 e Borland C++ 5!
GRAZIE IN ANTICIPO A TUTTI COLORO CHE MI DARANNO UNA MANO!!
 Email me at 
blp...@usa.net
 !
GRAZIE

 
...con findfirst() e findnext(). Queste funzioni non sono standard ma
dovrebbero esserci sia per DOS (Turbo C++), VC++ e Borland C++.

Newsgroup: it.comp.lang.c
Titolo: Installazione CYGWIN

Pare che il suddetto compilatore sia dotato di una specie di sistema
operativo proprio.........dopo l'installazione mi si apre una finestra
testuale (come il prompt di MS dos), ma sotto c'è una specie di linux (shell
BASH)......che devo fare?????????????
--
Zio Patata
ICQ # 25304214

]

Grazie

Newsgroup: it.comp.lang.c
Titolo: Punto interno ad un poligono

C'è qualcuno che conosce un algoritmo che dato un punto (coordinate x1 y1)
verifica se tale punto è interno od esterno ad un poligono di cui si
conoscono i vertici (array x[n] e y[n] dove n è il numero dei vertici).
In pratica una funzione del tipo
int isIntern(int x1,int y1,int n, int *pt_x, int *pt_y)
che restituisce 1 se il punto di coordinate (x1, y1) è interno al poligono
di n vertici di coordinate
pt_x[0], pt_y[0]
pt_x[1], pt_y[1]
pt_x[2], pt_y[2]
...
pt_x[n-1], pt_y[n-1]
e restiuisce 0 se il punto sudetto è esterno al poligono
Grazie per la disponibilità
Davide Marino

 con
alcune modifiche secondarie per velocità. Restituisce rigorosamente 1 per i
punti rigorosamente interni, 0 per esterno e 0 o 1 per i punti sul contorno.
Il comportamento di contorno è complesso ma risoluto; in particolare, per un
divisorio d'una regione nei poligoni, ogni punto è " in " esattamente un
poligono. Vedere i riferimenti qui sotto per più particolare.
    int pnpoly(int npol, float *xp, float *yp, float x, float y)
    {
      int i, j, c = 0;
      for (i = 0, j = npol-1; i < npol; j = i++) {
        if ((((yp[i]<=y) && (y<yp[j])) ||
             ((yp[j]<=y) && (y<yp[i]))) &&
            (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
          c = !c;
      }
      return c;
    }
Il codice può più ulteriormente essere accelerato, ad una certa perdita
nella chiarezza, evitando il calcolo centrale quando la diseguaglianza può
essere dedotta e sostituendo la divisione da una moltiplicazione per quei
processor con lento si divide. Per il codice che distingue rigorosamente i
punti interni da quelli sul contorno, vedere [ O'Rourke (C) ] pp 239-245.
Riferimenti: :
    [Gems IV]  pp. 24-46
    [O'Rourke (C)]
    [Glassner:RayTracing]
Perhaps some of you Italians can fix the commical translation from
Babelfish.
--
C-FAQ: 
http://www.eskimo.com/~scs/C-faq/top.html
 "The C-FAQ Book" ISBN 0-201-84519-9
C.A.P. Newsgroup   
http://www.dejanews.com/~c_a_p
C.A.P. FAQ: 
ftp://38.168.214.175/pub/Chess%20Analysis%20Project%20FAQ.htm

conoscono i vertici (array x[n] e y[n] dove n č il numero dei vertici).
Credo che per un poligono concavo il problema sia piuttosto complesso.
Per quanto riguarda un poligono convesso, se P(x,y) č il punto dato e
P1(x1, y1), P2(x2, y2), P3(x3, y3), ... , Pn(xn, yn) i punti del
poligono, puoi calcolare la somma delle aree dei triangoli P-P1-P2,
P-P2-P3, P-P3-P4, .... , P-Pn-1-Pn e verificare se essa sia uguale a
quella del poligono.
In tal caso il punto č interno, altrimenti č sicuramente esterno.
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)


[...]
Newsgroup: it.comp.lang.c
Titolo: Programmazione di rete con C.

Ciao, avete per favore dei testi free, tutorial on line, che mi insegni a
programmare la rete con il linguaggio C, indipendentemente dalla
piattaforma?
Grazie mille.


wrote:

la rete con in linguaggio C ???
credo forse ti stia riferendo all'uso dei socket ... in tal caso
potresti dare un'occhiata su altavista cercando susv2 ...
troverai in questa guida tutte le funzioni posix standard x gestire
i socket e molto altro ... attenzione però ... queste specifiche sono
implementati nei s.o. unix (linux incluso) però non sono disponibili
in windows
Antonio

 ha scritto nel messaggio
news:nj4b2u86f7atf3o5f...@4ax.com...

Se non erro lo standard POSIX è compatibile anche con Win NT, o sbaglio?
Ciao,
Cecco

Cecco
x quello che ricordo io sbagli...
cmq se vuoi sfruttare windows x i socket ... hai a disposizioni
funzioni (o api... come le si vuol chiamare) che ti permettono
alcune cose che altrimenti dovresti fare tu sotto *nix ...
tipo la notifica di eventi sul socket.....
Antonio

Francesco Betti wrote:

   In parte. Lo standard POSIX e` composto da piu` livelli e Windows NT 
e` conforme a quelli piu` bassi. Tuttavia, le API POSIX delle /socket/ 
sono implementate, con una certa approssimazione, anche nel Windows SDK 
a 32 bit.
-- 
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

Nun c'ho capito niente :)
Newsgroup: it.comp.lang.c
Titolo: Stringa..

Dovrei prelevare in una stringa una parte di questa fino alla stringa
cercata. Es:
Ciao bel < bla bla bla > mondo
strina da cercare <
risultato: Ciao bel 
char *preleva_str(const char *s1, const char *s2) 
{ 
 char *newstr;
    int i = 0;
    int k = 0;
    do {
        int j = 0;
        while (s1[j] != '\0' && tolower(s1[j]) == tolower(s2[i + j])) j++;
        if (s1[j] == '\0')
           {
            newstr = (char *) malloc(i);
            for(k=0;k<i;k++) newstr[k]=s2[k];
            return (newstr);
           } 
        }   
     while  (s2[i++] != '\0');
 return NULL;                                                              
}
Il problema è che s utilizzo questa funzione una volta sola funziona ma
quando la richiamo più volte nel modo seguente si incarta e mi da dei
valori sballati:
char testo[] = " ciao <div align=\"center\"><a
HREF=\"
http://www.inter.it/cgi-bin/link/link.cgi?id=8\
"
target=\"blank\"><img src=\"it/sponsor/nike.gif\" width=\"115\"
height=\"41\" <!-- altro commento -->border=\"0\" alt=\"[NIKE]\"><!--
commento finale --> ";
char str_inizio[]="<!--";
char *str_prima;
str_prima = preleva_str(str_inizio,testo);
str_prima = preleva_str(str_inizio,str_prima);
str_prima = preleva_str(str_inizio,str_prima);
GRAZIE

Prova così: (non l'ho verificato, ma dovrebbe andare
char *preleva_str(const char *s1, const char *s2)
{
    char *szInizio = strstr(s1, s2);
    if (szInizio) {
        int iLen = szInizio - s1;
        char *szReturn = (char*)malloc((iLen + 1) * sizeof(char));
        strncpy(szReturn, s1, iLen);
        szReturn[iLen] = 0;
        return szReturn;
    }
    return NULL;
}
Occhio che, per problematiche buffe, io personalmente sconsiglio il ritorno
da parte di una funzione di un'area di memoria allocata con malloc (una
funzione "ben fatta" non dovrebbe avere side effects, cioè influenzare il
funzionamento del resto del programma. Se fa una malloc chiaramente ha un
side effect che il programma deve risolvere con una free);

 }

Newsgroup: it.comp.lang.c
Titolo: symbol definition

what does *= mean.
i.e. wage *=100
Thanks in adv.
Tim


it' s equivalent to 
wage=wage*100
b.

...

Hi Tim,
this is it.comp.lang.c
and the it = italian, so next time you can learn a little italian and post
again your request :-)
By the way:
wage *= 100;
is like if you wrote:
wage = wage * 100;
It is shorter to write and make you feel like if you are a real programmer
accepted in the C community without shame :-)
It is the same for the other operators +, -, /, %, &, ^, ~, maybe I forgot
some of them.
So i.e. you can write :
i+=10;
instead of
i = i + 10;
Maurus

 
:-))))))

Newsgroup: it.comp.lang.c
Titolo: operatore resto divisione

qual e' l'operatore che restituisce il resto di una divisione?
e' % per caso?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 e' % per caso?
Hai provato a cercare su google "operatore resto divisione c" ? 
Sicuramente ottenevi la risposta in tempo molto piu' breve! :)
ciao
Giacomo

e' % per caso?
Sì, ma non per caso.
Newsgroup: it.comp.lang.c
Titolo: Tempo di attivazione di un prog

Vorrei creare un programma che, lanciata in esecuzione un'applicazione,
rimanga attivo fino alla sua chiusura per poi restituire il tempo in cui
l'applicazione è rimasta attiva.
Ho provato con una fork in cui il figlio lancia l'applicazione con una
exec*, ma
il padre "salta" la wait e va dritto fino alla fine; presumo che la exec
abbia effetti
negativi sul pid del figlio (?). Nonostante ciò il terminale rimane in
"attesa" fino alla
chiusura dell'applicazione lanciata!
Graditi lumi e consigli  :-)
Ciao FedeX
--
¤¤¤ 
chemic...@interfree.it
 per rispondere ¤¤¤
"la fama degli eroi spetta un quarto alla loro audacia;
 due quarti alla sorte; e l'altro quarto a' loro delitti."  U.Foscolo
"... sarebbe pensier non troppo accorto
 perder duo vivi per salvare un morto ..."  L.Ariosto

l'applicazione è rimasta attiva.
Credo che system() faccia al caso tuo (non serve che crei un nuovo
processo con fork()!).
-- 
Saluti,
    Mardy
http://castellina.org/interlingua

 processo con fork()!).
Grazie, proverò.

Newsgroup: it.comp.lang.c
Titolo: [?]Chi mi spiega Kbhit

Salve , ho un problema , (uso Djgpp) devo poter uscire da cilci for
annidati tramite la pressione di un tasto , se uso getkey il loop si ferma
fintanto per aspettare la pressione di un tasto , ma non voglio che il
ciclo for
si fermi in attesa di un tasto premuto , come devo fare ?
che funzione devo usare ? kbhit o qualcosa del genere.
Grazie 
Ciao  Roberto 
-- 
rober...@inwind.it

#include <conio.h>
int main()
{
/*...*/
while(!kbhit())
{
  /* Compie questo ciclo finchč  non viene premuto un tasto qualsiasi */
}
printf("L'utente ha premuto un tasto");
return 0;
}
In pratica kbhit() č una funzione che ritorna 0 se nessun tasto č premuto al
momento della chiamata, altrimenti ritorna il codice del tasto (anche se lo
fa in modo strano, ora non ricordo bene...).
Dome

che funzione devo usare ? kbhit o qualcosa del genere.
Premetto che non conosco il djgpp...uso borland e m$.
La kbhit() torna nonzero se e' stato premuto un tasto (senza fermare
l'esecuzione). Questa funzione accede direttamente all'hardware, o
meglio confronta i puntatori BIOS al buffer di tastiera.
In alternativa puoi usare la bios_keybrd() o bioskey()
bioskey(0) - attende un tasto e lo legge
bioskey(1) - legge senza attesa, (NB non toglie il tasto dal buffer)
Come intuibile dal nome, queste funzioni usano le funzioni bios
(int16h) per accedere alla tastiera, il parametro e' il numero della
funzione.
Se la funzione non e' presente nelle librerie del compilatore, puoi
sempre implementarla con l'assembler inline o utilizzando la int86() o
equivalente. Esempio per m$
/* torna 0 se non e' stato premuto nessun tasto, altrimenti
torna il codice di scansione del tasto negli 8 bit piu' significativi
e il codice ascii del tasto negli 8 bit meno significativi */
unsigned Bioskey(int waitkey) {
   _asm {
      mov   ah, byte ptr waitkey     ; funzione 0/1
      int      16h           ; BIOS Keyboard
      jnz      gotkey      ; ZF=0 se tasto premuto
      xor      ax,ax        ; altrimenti 0
gotkey:
   }
}   /* e non venitemi a dire che manca il return */
/* esempio di chiamata */
main() {
   int i;
   unsigned key;
   for (i = 0; i < 9999; i++) {
      if ((key = Bioskey(1)) != 0)
         break;
      /* ... */
   }
   if (key != 0) {
      Bioskey(1);    /* solo per vuotare il buffer */
      printf("Tasto premuto (ascii code=%d, scan code=%d)\n",
         key & 0xFF, key >> 8
      );
      return 1;
   }
   return 0;
}
ciao, acc.   
a...@libero.it
Newsgroup: it.comp.lang.c
Titolo: allocazione forzata su un indirizzo pari.

Qlcn è in grado di dirmi se e' possibile allocare un vettore (i.e. 
XBUF[512]) che parta da un indirizzo PARI?
questo perchè sono necessarie operazioni di divisione ed è importante 
che non vi sia resto.
Any suggest???

 wrote in message
news:b7gkuu$n1u0$
1...@ID-175207.news.dfncis.de

Con il "C" standard non e' possibile scegliersi l'indirizzo da cui
far partire l'allocazione di un blocco di memoria (sia statico che
dinamico).
Prova a chiedere in un NG specifico per la piattaforma utilizzata.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 che non vi sia resto.
Puoi spiegare meglio il problema ?
Il vettore di che tipo e' ? E' allocato staticamente o dinamicamente ?
Tieni inoltre conto del fatto che di default i complilatori di
solito allocano gli array in modo che i dati all'interno
siano allocati in modo ragionevole.
Cioe' se allochi dinamicamente un array di int (4 byte ciascuno) di
solito l'array viene allocato su bytes che come indirizzo hanno un
multiplo di 4.
Questo puo' dipendere dalla piattaforma e nelle varie versioni
di C ci sono direttive per specificare piu' esattamente l'allineamento.
Pero' vorrei capire se e' un vero problema. In particolare:
cosa significa "sono necessarie operazioni di divisione" ?
ciao,
g.

 XBUF[512]) che parta da un indirizzo PARI?
Grazie a tutti del Consulto.
il vettore č di unsigned char; il problema č che questa soluzione (cioe' 
dell'indirizzo pari) č mutuata da una vecchia versione che girava su 
PL/M51 - iNTEL 80c51 -
P.s.
A proposito la piattaforma č Hitachi H8S2633 (microcontroller).
Con il PL/M51 si poteva agire direttamente sugli indirizzi.
Con il C dovremo far evolvere l'algoritmo (ci stiamo gia' lavorando)....
Anyway,
thanks a lot folk

 A proposito la piattaforma è Hitachi H8S2633 (microcontroller).
Non sono un esperto del settore micro (ne di altri, direi....).
Comunque un modo (bastardo!) per forzare l'allineamento del vettore
in teoria e'
1) allocare un vettore lungo 1 carattere in piu'.
2) salvare il puntatore in un int, pareggiare l'int se necessario
    aggiungendo 1 e risalvarlo come puntatore.
comunque, su tutti i compilatori ragionevoli penso che
XBUF=calloc(512/4,4) ti fornisca quello che vuoi: direi che
e' quasi impossibile che abbiano previsto di allineare su boundary
dispari quello che potrebbe essere un array di interi.
Comunque in ogni compilatore che si rispetti ci sono delle pragma
per specificare come si vuole l'allinamento. Devi verificare il tuo
specifico compilatore.
ciao (e buona fortuna!)
g.
Newsgroup: it.comp.lang.c
Titolo: aiuto su api di windows

Ciao a tutti, sono nuovo del newsgroup ed avrei bisogno di aiuto per un
problemino.
Sapete se esiste una API di Windows, o qualcosa del genere, da richiamare
da un programma C per avere il nome della label di un volume fisico tra
quelli disponibili sulla mia macchina? (a:, f:, ...).
Grazie a tutti
Luca
--
Posted from [212.17.196.2]
via Mailgate.ORG Server - 
http://www.mailgate.org

 quelli disponibili sulla mia macchina? (a:, f:, ...).
GetVolumeInformation()
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own

Newsgroup: it.comp.lang.c
Titolo: echo caratteri da tastiera su schermo

Nel seguente ( semplicissimo ) codice come faccio ad ottenere come echo dei
caratteri '*' per quanto riguarda l'immissione della password ???
Ho pensato ad un getche ( o getch ?!? ) dentro ad un ciclo che va poi a
riempire un array che comporrà la stringa ma mi sembra un metodo poco
efficente ( almeno per me che vengo da java )...
#include <stdio.h>
#include <string.h>
char login[33]="";
char password[8]="";
int com=0;
char comLog[]="pippo";
char comPw[]="pluto";
int chkString(char x[], int y);
int main (void)
{
 printf("======================\n");
 printf(" Password check V0.01\n");
 printf("======================\n\n\n");
 printf("      Login : ");
 scanf("%33s", &login);
 printf("\n   Password : ");
 scanf("%8s", &password);
 com=chkString(login,33);
 if (com!=0) return 0;
 chkString(password,8);
 if (com!=0) return 0;
 if ((strcmp(login, comLog)==0) && (strcmp(password, comPw)==0))
  printf("Login correct %s",login);
 else
  printf("\n\nAccess Denyed");
 return 0;
}
int chkString(char x[], int y)
{
 if (strlen(x)>y)
 {
  printf("\n\nAccess Denyed");
  return 1;
 }
 else
 return 0;
}
Grazie

   printf("\n\nAccess Denyed");
Si scrive "denied".
EMG

 wrote in message
news:375486D9...@flashnet.it...

Newsgroup: it.comp.lang.c
Titolo: ambiente di programmazione

Salve a tutti
sto cercando un ambiente di programmazione per scrivere piccoli prog
in C/C++ che possano girare sia sotto win che sotto linux.
Ho visto e sto provando il DJGPP e CYGWIN in quanto il compilatore
gratuito della Borland ha librerie diverse (ad es socket -> winsock e
cosě via).
qualche suggerimento?
grazie,
Matteo

 qualche suggerimento?
Lcc-Win32
Dev-C (con MinGW)
La portabilita' di un programma C/C++ dipende solo da come tu lo scrivi, non
da che ambiente usi per farlo :)  Finche' ti attieni al C standard, usi
librerie multipiattaforma o correggi qualche piccola differenza usando
delle #define (come per i socket) il tuo programma rimane portabile.
-- 
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."

Newsgroup: it.comp.lang.c
Titolo: Funziona??

E' un esercizio su "C Didattica e Programmazione"
Data tale definizione di DATI:
typedef struct {
   char nome[10];
   int  età;
   int  peso;
} DATI;
Scrivere una funzione crea_lista che trasformi un array di tali dati in una
lista lineare:
struct lista {
   DATI  d;
   struct lista   *next;
};
typedef struct lista lista;
typedef lista *LINK;
LINK crea_lista(char DATI.nome[])
{
   int i;
   LINK   testa;
   for(i=0;i<10;i++){
      testa=malloc(sizeof(lista));
      testa->d=DATI.nome[i];
      testa->next= testa->next->d;
      return testa;
   }
}
Sono sicuro che questa funzione è piena di errori, c'è qualcuno che me li
saprebbe indicare?
Grazie
car...@supereva.it

LINK crea_lista(char DATI.nome[])
                 ^^^^^^^^^^^^^^^^
questa sintassi non e' corretta.
Ti scrivo il programma al volo, senza averlo compilato, quindi
testalo:
#include <stdlib.h>
typedef struct _nodo { 
                  DATI dati ;
                  struct _nodo* nextp ;
        } nodo, *pnodo ;
void crea_lista( pnodo *testa, DATI d )
{
     if ( NULL == *testa ) 
     {
        *testa = malloc( sizeof **testa ) ;  
        (*testa)->dati = d ;
        (*testa)->nextp = NULL ;
     } 
     else crea_lista( &(*testa)->nextp, d ) ;
}
int main()
{
    DATI ArrayDiDati[50] ;
    pnodo testa_lista = NULL ;   
    int i ;
    /* ... inizializzazione array di dati ... */
    for ( i = 0 ; i < 50 ; i++ )
    {
        crea_lista( &testa_lista, ArrayDiDati[i] ) ;
    }
}

         *testa = malloc( sizeof **testa ) ;
Non doveva essere *testa= malloc(sizeof(nodo)); ??

Non doveva essere *testa= malloc(sizeof(nodo)); ??
Non necessariamente.
Se testa e' un pnodo* e pnodo e' un nodo*, allora testa e' un nodo**
per cui deriferire con ** un nodo** equivale a ottenere nodo.
Ma in generale, specie per la malloc, e' bene usare :
p = malloc( sizeof *p );
perche' in questo modo, cambiando il tipo a cui punta p, non devi
compiere una modifica anche nella sizeof.
--
Walkie...@Libero.It (ICQ# 8143647)
Newsgroup: it.comp.lang.c
Titolo: Ritorni multipli di una funzione...

Salve a tutto il NG,
volevo chiedere se una funzione può ritornare diversi valori in C e se si in
che modo con un piccolo esempio di codice magari.
Avevo pensato (vedi sotto) di usare una funzione che ritorna una struttura,
ma da main() come faccio poi ad accedere agli elementi? Posso fare qualcosa
tipo pippo()->i?. Grazie x la vostra attenzione.
/////////////////////////////////////////////////////
void pippo() {
  struct struttura{
    char *result;
    int i;
  } *st;
  st->i = 0;
  return st;
}
void main()
{
  /* Come accedo agli elementi? */
}
/////////////////////////////////////////////////////

 escribió en el mensaje
news:ad15pk$g1u$1...@panco.nettuno.it...

Qeul codice ti darà sicuramente degli errori perchè una funione void non può
ritornare niente.
Se dichiari la struttura all'interno della funzione nemmeno main sa che cosa
sia quella struttura!
Dovresti fare qualcosa come:
 struct struttura{
     int i;
   /* altri campi, magari */
   };
struct struttura *pippo() {
     struct strutura *st=malloc(sizeof(struct struttura));
      st->i = 0;
   return st;
 }
void main()
{
struct struttura *s;
s=pippo();
/* adesso accedi gli elementi normalmente, s->i, ecc. */
}

Una cosa carina e' anche questa:
int pippo(char result){
  int i = 0;
  //fa qualcosa...
  return i;
  }
chiamando poi tale funzione nel modo seguente:
char * result = 0;
int value = pippo(result);
//qui hai sia value sia result (perche' lo passi come puntatore)

Un altro modo per far 'restituire' ad una funzione piu valori senza usare
una struct potrebbe essere quello di passare l'indirizzo delle variabili
alla funzione
void pippo(  int *intero, char *stringa)
{
  *intero = 5+5;
 
  strcpy( stringa, "ciao");
}
int main()
{
  int intero;
  char stringa[5];
 
  pippo( &intero, stringa);
 
  ...
  // a questo punto hai in intero il valore 10 e in stringa hai "ciao"
  ..
 
  return 0;
}
 
 
Ciao Matic
Newsgroup: it.comp.lang.c
Titolo: Ricerca del minimo in albero binario

Mi serve sapere il codice di questo algoritmo.
Il nodo dell'albero è così composto:
int label
tree left,right
E deve restituire, come da oggetto, il minimo elemento presente
nell'albero binario. Mi basta lo pseudocodice. vi ringrazio..

è un'albero binario di ricerca ?
illust...@gmail.com
 ha scritto:


scuffio ha scritto:

no no albero binario normale..

illust...@gmail.com
 ha scritto:

É ordinato?
se non lo è, credo ti tocchi esplorare tutto l'albero, quindi
depth-first o altri algoritmi del genere...

Porcosauro ha scritto:

Non è ordinato, ed è più semplice di quanto si pensi..
cercaminimo (albero)
-cercaminimo(alberosinistro)
-cercaminimo(alberodestro)
Mi serve sapere come memorizzo il minimo durante la ricorsione.
la signature dovrebbe essere cercaminimo(min,albero) ??
Il mio dubbio è: se così fosse.. la prima volta che chiamo la
funzione...min quanto vale?

 funzione...min quanto vale?
il valore della radice, no?
-- 
Under construction

int minimo(int min, Tree T)
{ if (T!=null)
  { min = minimo(min,T.leftchild);
    if(min>T.element) min = T.element;
    min = minimo(min,T.rightchild);
  }
 return min;
}
Questo algoritmo è corretto?


No perche' non confronti il minimo del sottoalbero destro con il minimo
corrente.
Remo D.

 corrente.
Ops forse ho corso troppo ... Aspetta che ricontrollo

 
stai ancora ricontrollando?

 stai ancora ricontrollando?
No, me ne sono semplicemente scordato! :)
Comunque, l'algoritmo è giusto ma l'implementazione è sbagliata (tipo
"L'operazione è riuscita ma il paziente è morto!").
Passare puntatori invece della struttura potrebbe contribuire a salvare
anche il paziente!
Remo D.
Newsgroup: it.comp.lang.c
Titolo: AIUTO per programmazione seriale

Devo realizzare una applivcazione sotto W32 (tipo filtro) che legge
una stringa da una form la converte (sotto certe regole) e poi la
scrive sulla seriale. Avrei pertanto  bisogno di un piccolo tutorial
su come scrivere dati sulla seriale. Ho cercato su parecchi siti ma
non ho trovato nulla: se qualcuno avesse informazioni in proposito
gliene sarei infinitamente grato.
		Ciao e grazie Feyd
Feyd-Rautha
feyd....@tiscalinet.it
rimuovi NOSPAM per rispondere
remove NOSPAM for reply


Non indichi se vuoi farlo sotto WinNT o Win98 e con che linguaggio!

 Non indichi se vuoi farlo sotto WinNT o Win98 e con che linguaggio!
 Secondo te MC, in che linguaggio deve programmare ... stando in questo NSG?

Non indichi se vuoi farlo sotto WinNT o Win98 e con che linguaggio!
Intendo usare CBuilder e la Win32 - (prensavo che 98/NT con questa
tecnica fossero entrambi supportati) - in ogni caso alla fine tutto
girerà su 98 - per interfacciarmi alla seriale. Su it.com.lang.c++ mi
hanno cmq. già risposto consigliandomi il msdn (non ho però ancora
trovato l'argomento suggeritomi).
Fondamentalmente volevo prendere un dato da un'area di testo e
mandarlo su seriale tutto qui!


gliene sarei infinitamente grato.
www.byondlogic.org
Ciao, Obelix

 CIAO
Ciao scusate se entro nella discussione, ma mi interessa anche me la
programmazione seriale, mi sapreste indicare un sito (anche in inglese) che
parli di
outport ed import ???
Attraverso questo volendo si può programmare anche un modem giusto ??
Newsgroup: it.comp.lang.c
Titolo: Visualizzazione BITMAP su sfondi vari in w95 .

Salve a tutti !
Sto provando a realizzare un piccolo video-gioco in ambiente Windows 95,
e ho trovato un problema nella gestione delle immagini bitmap .
Utilizzo il compilatore BORLAND C++ Ver. 4.02 .
Con la funzione BltBit, riesco a visualizzare la bitmap di
sfondo senza nessun problema; i problemi incominciano quando voglio
visualizzare un'altra bitmap (il personaggio del gioco), sullo sfondo
appena caricato.
Il problema e' che l'immagine viene caricata, ma ricopre lo sfondo
in tutta l'area rettangolare per cui e' definita la bitmap;
in pratica non e' TRASPARENTE !!!
Ora,nella funzione BltBit c'e' un parametro che dovrebbe definire il
l'operazione che viene effettuata sui vari pixel quando viene caricata
la bitmap in oggetto .
Questo parametro puo' avere diversi valori, (MERGECOPY - PATCOPY -
 PATPAINT - SRCAND - SRCCOPY ecc...), ma provando con diversi di questi
non sono riuscito ad ottenere un risultato soddisfacente .
Qualcuno mi sa' consigliare, se sto sbagliando ad utilizzare questa 
funzione ?
Oppure se puo' inviarmi un sorgente (o dirmi dove posso
reperirne qualcuno) che esegua questa sequenza di operazioni ??
		Grazie a tutti .
					Paolo
-- 
 Paolo Tenderini      Email: 
tend...@venaria.marelli.it
 Magneti Marelli D.E. Tel:+39-11-6879-158 Fax:+39011-6879-155


Per realizzare l'effetto di trasparenza utilizzando le API di Windows devi
utilizzare due bitmap per gli "sprite" (C64 is back!) del gioco. Un bitmap
che rappresenta l'oggetto da animare su sfondo nero (RGB(0,0,0)) e una
maschera con i pixel di sfondo in bianco (RGB(255,255,255)) e quelli da
disegnare in nero.
Per evitare il "flickering" devi copiare la parte di sfondo in cui dovrà
essere visualizzato lo "sprite" in una bitmap temporanea, sovrapporgli la
maschera con un SRCAND e quindi la seconda immagine con un SRCPAINT); a
questo punto puoi riportare la bitmap temporanea a video.
Come alternativa ti consiglio di dare un'occhiata a directX, sono le API
"ufficiali" per lo sviluppo di giochi sotto Windows '95. Utilizzate da sole
sono discretamente complesse (c'è da "litigare" con l'OLE), ma puoi reperire
in rete diverse librerie "wrapper" che ti permettono di utilizzarle senza
troppi problemi (ricordo una libreria chiamata CDX). Puoi cercare
all'interno della sezione "Direct X" di Yahoo (
http://www.yahoo.com
 ).
---
Valter Minute
min...@fortech.it
 (the reply address of this message is invalid)
---
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://hotfiles.zdnet.com/cgi-bin/texis/swlib/hotfiles/getit.bin?fcode=000PZ
0
if you want, I can send you the (free) C++ source code.
Newsgroup: it.comp.lang.c
Titolo: passaggio puntatore ad un file

Salve a tutti
ho provato a passare come parametro di una funzione il puntatore ad un file
nel seguente modo :
funz(FILE *fp)
{
...
}
ma non ho sortito alcun effetto se non dichiarando fp come parametro
globale, ... , sapete dirmi se in C e' vietato un simile passaggio di
parametro oppure se esiste qualcosa altro che mi sfugge?
Grazie
--
Iscriviti al gruppo yahoo Linguaggio_c  con chat vocale per i soli iscritti
http://it.groups.yahoo.com/group/Linguaggio_C

 parametro oppure se esiste qualcosa altro che mi sfugge?
Dipende da quale effetto intendevi... sortire. Gli oggetti di tipo FILE 
sono strutture come tutte le altre ed il loro passaggio per puntatore 
come parametro di funzione e` del tutto lecito (come, d'altronde, 
dimostrano ampiamente le funzioni definite in <stdio.h>).
-- 
Baci,
Mony

 > parametro oppure se esiste qualcosa altro che mi sfugge?
Se volevi passare il puntatore dovevi scrivere:
    funz(&fp); in chiamata
    valore-di-ritorno funz (FILE *); nel prototipo
    valore-di-ritorno funz (FILE * nome-del-puntatore-nella-funzione>) nella
dichiarazione
Se volevi passare il valore del puntatore dovevi scrivere:
    funz(*fp); in chiamata
    valore-di-ritorno funz (FILE *); nel prototipo
    valore-di-ritorno funz (FILE * nome-del-puntatore-nella-funzione>) nella
dichiarazione
Ovviamente correggetemi se sbaglio...
Ciao ciao!


ho provato a correggerti
ciao

 definizione della funzione e nel prototipo.
Sono d'accordo anche su questo, perň forse, ad essere proprio pignoli, si
dovrebbe dire
"tipo del valore di ritorno"
Ciao ciao!
Newsgroup: it.comp.lang.c
Titolo: Esercizio matrici

Salve, sto imparando il C e stavo facendo un'esercizio sulle matrici.
L'esercizio consiste nel creare una matrice 4x5 e sommare i prodotti
della prima colonna con i prodotti di una colonna scelta dall'utente.
Ho scritto il programma, niente errori segnalati dal compilatore, ma
il programma ritorna sempre delle cifre strabilianti che ovviamente
son sbagliate:
$ ./matrice
4  3  2  4  2
4  3  1  2  2
3  4  3  4  4
3  1  3  1  1
Numero colonna da sommare: 2
Somma totale: 692046849
Non riesco a capire dove sia l'errore... ecco il source: 
http://sprunge.us/BJKd
Grazie in anticipo.



[code]
int sum_col(int matrice[ROWS][COLUMNS], int col)
{
	int m1 = 1, m2 = 1;
	int i;
 
	for (i = 0; i < ROWS; i++) {
		m1 *= matrice[i][0];
		m2 *= matrice[i][col-1];
	}
	return m1 + m2;
}
[/code]
-- 
www.iuz-lab.info

Non che cambi molto :-/
Ora, oltre al problema dei numeri giganteschi, non da neanche
risultati esatti. Inoltre la matrice, ad ogni avvio del programma, è
sempre la stessa.
$ ./matrice
4  3  2  4  2
4  3  1  2  2
3  4  3  4  4
3  1  3  1  1
Numero colonna da sommare: 2
Somma totale: 148
:-/


ciao, per quanto riguarda i numeri gigantesci forse vai a stampare non
il valore in se, ma l'indirizzo di memoria, per la matrice vale lo
stesso forse perché ad ogni avvio dovresti deallocare la memori
allocata per poi metterci nuove cose dentro, comunque ho riscritto un
pò il tutto senza usare le funzione, almeno a me funziona non da
nessun errore:
#include <stdio.h>
#include <stdlib.h>
#define ROWS 4
#define COLUMNS 5
int main(int argc, char *argv[])
{
	int i,a,j,somma,c,s,sum=0;
	int sum2=0;
	int array[ROWS][COLUMNS];
	for (i=0; i<ROWS; i++) {
		printf("\n");
		for (j=0; j<COLUMNS; j++) {
			array[i][j] = (rand() % 10 + 1);
			printf("%d ", array[i][j]);
		}
	}
	printf("\n++++INSERISCI LA COLONNA DA SOMMARE++++\n");
	scanf("%d", &a);
	printf("LA COLONNA %d SI SOMMERA' CON:\n", a);
	for (c=0; c<ROWS; c++) {
		printf("%d ", array[c][0]);
	}
	for (s=0; s<ROWS; s++) {
		 sum += array[s][0];
		 sum2 += array[s][a];
	}
	somma = sum+sum2;
	printf("\nRISULTATO DELLA SOLLA: %d\n", somma);
}
Ciao...
Newsgroup: it.comp.lang.c
Titolo: Scomporre un Esadecimale in cifre

Salve.
Ho un problema che mi sta dando un pò di noie...
Secondo voi come posso "scomporre" un esadecimale in modo da ottenerene due 
il cui valore è la rappresentazione caratteriale ( chr ) dello stesso ?
(credo che un esempio sià molto esplicativo)
es.
Dato 0x25 (HEX)   vorrei ottenere 0x32 (2) e 0x35 (5)dove  2 è il Chr 0x32 
e 5 è il Chr 0x35.
Avevo penato di usare il volore 0x25 come stringa e poi separare 2 e 5 e 
riconvertirli in Hex ... ma nn riesco a trovare il modo di farlo...
Qualcuno ha qualche idea?
Grazie


non ho capito bene.
Comunque se
x=0x25;
allora
a = x >> 4  vale 2
b=  x & 15  vale 5.
e  a+'0' vale '2'
e  b+'0' vale '5'
dove i caratteri tra apici sono caratteri.

"vanvera" <vanve...@CUTgmail.com> ha scritto nel messaggio
news:44c798d3$0$47966$4faf...@reader3.news.tin.it...

No. Questa tecnica non funziona per le cifre 'a',...,'f'/'A',...,'F'
Occorre qualcosa del genere per fare quello che hai in mente:
#include <stdio.h>
#include <stdlib.h>
static char *Hdigits = "0123456789ABCDEF";
static char *Ldigits = "0123456789abcdef";
int main(int argc,char *argv[])
{
        int x = 0xFF;
        int hi,low;
        hi = x >> 4;
        low = x & 15;
        printf("%c %c\n",Hdigits[hi],Hdigits[low]);
        printf("%c %c\n",Ldigits[hi],Ldigits[low]);
        return EXIT_SUCCESS;
}
--
Giorgio Silvestri

 Occorre qualcosa del genere per fare quello che hai in mente:
In effetti sono un pirla... se penso che queste conversioni
le ho fatte 1000 volte. Sara' il caldo (spero!)
g.

"vanvera" <vanve...@CUTgmail.com> ha scritto nel messaggio
news:44c7c59c$0$15874$4faf...@reader2.news.tin.it...

Succede a tutti :-)
--
Giorgio Silvestri

Grazie... mi siete stati di aiuto.

Ciao, ma cosě non č piů comodo?
int main(void);
int main(void)
{
 char str[10];
 unsigned char valA = 0xab, valB = 0x25;
 sprintf(str, "%02X %02X", valA, valB);
 puts(str);
 printf("\nPremi un tasto...");
 getch();
 return 0;
}
In "str" sono scritti come li volevi.
Un saluto.
Maxime

Newsgroup: it.comp.lang.c
Titolo: Sorgenti per imparare il C...

Salve a tutti.
Si trovano in rete delle sorgenti in C semplici semplici da analizzare a
scopo didattico? (intendo dire NON programmi che leggano e scrivano nelle
locazioni di memoria più assurde per compiere operazioni al limite della
stregoneria o chissà cos'altro ;) )
Sarebbero utili anche degli esercizi, cioè dei problemi pratici, magari
semplici, da risolvere con un programma.
Saluti a tutti,
            un esordiente totale!!!

stregoneria o chissà cos'altro ;) )
Su 
http://www.snippets.org/
 trovi una famosa raccolta di programmini
scritti in C/C++. Volendo puoi sia scaricare la raccolta completa
(circa 1MB) che i singoli programmi/sorgenti.
ciao

 ha scritto nel messaggio
news:m8ncvs45lb688llvc...@4ax.com...
