Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-05-2009, 12:57   #21
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bandit Guarda i messaggi
ed in quest'ultimo codice
il "%c" viene sempre visualizzato, giusto?
visto che prima sia nell'if che nel else c'era

quindi è un modo di scrivere abbreviato
il "%c" e' la stringa di controllo (non viene stampato sullo schermo), indica alla funzione printf come devono essere interpretati i parametri che verranno stampati sullo schermo. In questo caso il "%c" indica che il valore di ritorno dell'espressione ? : va trattata come un carattere.

Forse la differenza non ti risulta chiara, ecco un altro piccolo esempio la stampa del numero piu' grande tra 2 numeri.

Codice:
int a, b ;

if (a>b) printf("%d", a); else printf("%d",b)
Senza usare l'istruzione if then else

Codice:
int a,b ;

printf("%d", (a>b) ? a : b) ;
I due frammenti di codice fanno la stessa cosa, stampano il numero piu' grande tra a e b. Solo che nel primo esempio usi una istruzione per decidere quale dei due e' piu' grande, nel secondo esempio viene valutata direttamente una espressione che puo' quindi essere impiegata direttamente nella printf.
__________________
MICROSOFT : Violating your privacy is our priority

Ultima modifica di goldorak : 12-05-2009 alle 13:02.
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:08   #22
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ora l'ho capito l'utilizzo del operatore ternario

non avevo capito che "%c"
Codice:
 indica alla funzione printf come devono essere interpretati i parametri che verranno stampati sullo schermo. In questo caso il "%c" indica che il valore di ritorno dell'espressione ? : va trattata come un carattere.
quindi tra "%c" e "%d" c'è differenza?
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:10   #23
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Bandit Guarda i messaggi
quindi tra "%c" e "%d" c'è differenza?
Si. %d indica che il parametro deve essere trattato come numero intero.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:20   #24
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
quindi
c carattere
d numero

ok
tutto chiaro ,
tutto nuovo per me , ma tutto chiaro

grazie
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:27   #25
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Bandit Guarda i messaggi
tutto nuovo per me
Se studi il c++ dimentica pure printf e i suoi argomenti.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:45   #26
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
Se studi il c++ dimentica pure printf e i suoi argomenti.
In linea di massima e' cosi', ma il c++ si basa sul c e si porta dietro molti dei suoi difetti. Quindi conoscere in linea di massima il c e' buona cosa, anche se non scrivera' mai una riga di codice c.
E poi il c e' un linguaggio semplice (forse troppo semplice ) e si impara alla svelta.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:51   #27
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da goldorak Guarda i messaggi
In linea di massima e' cosi', ma il c++ si basa sul c e si porta dietro molti dei suoi difetti. Quindi conoscere in linea di massima il c e' buona cosa, anche se non scrivera' mai una riga di codice c.
Conoscere si. Utilizzare assolutamente no (a meno di non avere una validissima ragione).
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 12:52   #28
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ragazzi alla domanda: che differenza passa tra un puntatore a pippo e un riferimento a pippo?

il puntatore contiene l'indirizzo della variabile pippo
Codice HTML:
int *ptr=&pippo;
o anche separatamente
Codice:
int *ptr;
ptr=&pippo
il riferimento?
Codice:
&rif=pippo;
rif è riferimento, e che vuol dire? che l'indirizzo di rif è.....?
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:20   #29
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Un puntatore e' una variabile, un riferimento e' soltanto un alias.

Per riprendere il tuo esempio :

Codice:
int *ptr;
ptr=&pippo

p e' un puntatore inizializzato con l'indirizzo della variable pippo.
Se poi piu' in la nel codice faccio ptr++, incremento il valore della variable ptr (non il valore di pippo).
Certo incrementando ptr lo faccio puntare da qualche parte in memoria (e se cerco di dereferenziarlo nel 99,99% dei casi ottengo il crash dell'applicazione).

Se invece usi
Codice:
&rif=pippo;
rif e' un riferimento alla variable pippo, un alias. Laddove usi il nome pippo puoi usare il nome rif. Altresi' se fai rif++ (contriamente al caso ptr dove andavi a incrementare il valore di ptr) in questo caso non fai che incrementare il valore di pippo.

Codice:
int pippo = 3 ;
int &rif = pippo ;
rif++ // a questo punto pippo vale 4
Codice:
int *ptr;
int pippo = 3
ptr=&pippo ;
ptr++; //ptr non punta piu' a pippo ma da qualche parte in memoria
         // pippo vale sempre 3
*ptr ; //ottengo sicuramente un crash
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:34   #30
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
grazie tutto molto chiaro

tranne alcuni punti
(quando si utilizza il termine deferenziare e alias vado in tilt )

Quote:
Originariamente inviato da goldorak Guarda i messaggi
Se invece usi
Codice:
&rif=pippo;
rif e' un riferimento alla variable pippo, un alias. Laddove usi il nome pippo puoi usare il nome rif. Altresi' se fai rif++ (contriamente al caso ptr dove andavi a incrementare il valore di ptr) in questo caso non fai che incrementare il valore di pippo.
rif con quel codice li, conterrà l'indirizzo di pippo, giusto? ed in questo caso rif verrà ad essere un alias
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:42   #31
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bandit Guarda i messaggi
grazie tutto molto chiaro

tranne alcuni punti
(quando si utilizza il termine deferenziare e alias vado in tilt )


rif con quel codice li, conterrà l'indirizzo di pippo, giusto? ed in questo caso rif verrà ad essere un alias

Diciamo che un riferimento non e' altro che un puntatore costante.
Quindi si, rif contiene l'indirizzo di pippo, ma ogni volta che usi rif, il sistema implicitamente deferenzia rif per darti il valore di pippo.
E siccome rif e' un puntatore costante, fare rif++ non cambia il valore di rif, ma quello della variable di cui rif e' riferimento.
Quindi rif++ va inteso (va inteso nel senso che ogni volta che fai rif++ il sistema lo trasforma in) *rif++.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 13:57   #32
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da goldorak Guarda i messaggi
Quindi si, rif contiene l'indirizzo di pippo, ma ogni volta che usi rif, il sistema implicitamente deferenzia rif per darti il valore di pippo.
se puoi mi potresti fare un esempio semplice della frase in grassetto
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 14:03   #33
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bandit Guarda i messaggi
se puoi mi potresti fare un esempio semplice della frase in grassetto

Dunque quello che devi capire e' come viene implementato il concetto di riferimento in c++.

Quando scrivi

Codice:
int pippo=4;
int &rif = pippo ;
Quello che succede dietro le quinte e' che rif e' un puntatore, ma un puntatore costante. Questo vuol dire che il suo valore (il valore di rif, quello che tecnicamente si chiama right-value) non si puo' modificare e viene inizializzato nel momento in cui esegui l'istruzione int &rif = pippo.
Il sistema fa in modo che ogni volta che tu scrivi rif, oppure rif++ oppure rif-- etc... questo viene trasformato in rispettivamente (*rif) oppure (*rif)++ oppure (*rif)--. Il che fa senso poiche' rif dal punto di vista del sistema non e' altro che un puntatore (un puntatore costante) e quindi per accedere al valore di pippo devi(1) deferenziare rif.

(1) il devi qui e' fatto dal sistema, non dall'utente.
__________________
MICROSOFT : Violating your privacy is our priority

Ultima modifica di goldorak : 14-05-2009 alle 14:07.
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 14:14   #34
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
quindi con la parola deferenziare intendiamo ciò che il c++ fa lui solo, quindi mai nessuno mi potrà dire "dererenzia questo e quello"
il problema più che altro è capire con alias (che ora ho capito) e con la parola deferenziare cosa si intende
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 14:21   #35
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bandit Guarda i messaggi
quindi con la parola deferenziare intendiamo ciò che il c++ fa lui solo, quindi mai nessuno mi potrà dire "dererenzia questo e quello"
il problema più che altro è capire con alias (che ora ho capito) e con la parola deferenziare cosa si intende

Deferenziare una variable p di tipo puntatore significa accedere al valore della variable il cui indirizzo sta in p.
Chiaramoci su un punto importante, una variable di tipo puntatore si puo' sempre deferenziare, il punto e' che con i riferimenti e' il sistema stesso che dereferenzia in automatico, mentre se tu usassi una variable puntatore normale (non un riferimento) il compito di deferenziare spetterebbe al programmatore.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2009, 14:26   #36
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da goldorak Guarda i messaggi
Deferenziare una variable p di tipo puntatore significa accedere al valore della variable il cui indirizzo sta in p.
Chiaramoci su un punto importante, una variable di tipo puntatore si puo' sempre deferenziare, il punto e' che con i riferimenti e' il sistema stesso che dereferenzia in automatico, mentre se tu usassi una variable puntatore normale (non un riferimento) il compito di deferenziare spetterebbe al programmatore.
quindi il p della prima frase è un puntatore

ok credo di aver capito
ora ci ragiono un pò su ma con questo tuo ultimo intervento chiarissimo ,si sono aperte diverse porte mentali

grazie
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 12:15   #37
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ciao a tutti ragazzi
mi dareste una mano per far girare questo programma? da quello che ho capito ci sono tanti diversi programmi che devono collegarsi insieme tra loro, ma non so come?

forse è un problema di eclipsE?

Codice:
/ricavi.h
//definizione della classe ricavi
//le funzioni membro definite in ricavi.cpp

#ifndef ricavi
#define ricavi

class ricavipersona{
  public:
	 ricavipersona();          //costruttore
	 void immettiricavi ();    //input dei ricavi mensili
	 void impostaricavi (int,double);   //input ricavi di 1 mese

void stamparicaviannuali ();

private:
	double totalericaviannuali();   //funzioni di utilità
	double ricavi[12];      //i 12 ricavi mensili

};

#endif

#include <iostream>
#include <iomanip>
#include <ricavi>
using namespace std;

//il costruttore inizializza l'array
ricavipersona::ricavipersona()
{
	for(int i=0;i<12;i++)
		ricavi[i]=0;
}
//per immettere i 12 ricavi mensili
void ricavipersona::immettiricavi()
{
	double ricavifigura;
	 for (int i =0; i<12;i++)
	 {
		 cout<<"immetti ricavo per il mese"<<i+1<<";";
		 cin>>ricavifigura;
		 impostaricavi(i,ricavifigura);
	 }
}
//funzione per impostare uno dei 12 ricavi mensili

void ricavipersona::impostaricavi (int mese, double somma)
 {

	if (mese>=0 && mese<12 && somma>0)
		ricavi[mese]=somma;
	else
		cout<<"mese o ricavifigura scorretto"<<endl;

}

//visualizzoil totale di vendita in un anno

void ricavipersona::stamparicaviannuali()
{cout<<"\n ricavi annuali totali sono: "<<totalericaviannuali()<<endl;
}


//funzione di utilità private per il calcolo del
//totale di vendita

double ricavipersona::totalericaviannuali()
{
       double totale=0;
       for (int i=0;i<12;i++)
        totale + = ricavi[i];
       return totale;
}


//mostra funzione di utilità
//da compilare con ricavi.cpp
#include <iostream>
#include "ricavi"

int main ()
{ricavipersona s;  //crea oggetto ricavi persona s


  s.immettiricavi ();
  s.stamparicaviannuali();
  return 0;
}

sul libro da cui sto studiano c'è scritto, consulatare la documentazione del vostyro compilatore per sapere come compilare ed effettuare il linking dei programmi composti da più file sorgenti....ma non so da dove cominciare ne cercare
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Per il responsabile delle Porsche 911 e ...
Ritorno di fiamma tra Apple e Intel: gal...
Horses è stato 'bannato': l'horro...
Truffe finanziarie sui social, scatta il...
Tesla inaugura a Busto Arsizio la postaz...
Barriere autostradali fotovoltaiche: Ana...
Accordo Gruppo FS-Microsoft: l'IA dell'a...
Prezzo mai visto: le Sony WH-1000XM5 Spe...
Microsoft amplierà il suo laborat...
ECOVACS DEEBOT T30C OMNI GEN2 a 349€: co...
Super offerta Amazon: HP OMEN MAX 16 con...
L'offerta nascosta di Very Mobile fa gol...
LEAP 71: completata l'accensione di un p...
Furto di segreti industriali in TSMC: pe...
IBM e Cisco collaborano per sviluppare l...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:31.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v