Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2006, 15:52   #1
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
[C++] Aiutatemi ad accorciare questo if-else

oggi pomeriggio scrivendo un codice mi sono accorto di aver scritto un if-else spropositato e vorrei sapere come è possibile accorciare una struttura di questo tipo.
questo è il codice
Codice:
	if(data>1582)
	{
		if(data%4==0&&(!(data%100==0)))
		{
		cout << "E' bisestile.\n";
		}
		if(data%100==0)
		{
			if (data%400==0)
			{
			cout << "E' bisestile.\n";
			}
			else
			{
			cout << "Non e' bisestile.\n";
			}
		}
	}
	else
	{
	cout << "Non e' bisestile.\n";
	}
grazie in anticipo
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2006, 16:11   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
bool bisestile = (data>1582) && ((!(data % 4) && (data%100)) || (!data%400))
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2006, 16:21   #3
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
lho ridotto usando una variabile e uno switch ma è ancora grande :\
Codice:
int a;
if(data%1582==0)
{
  if(data%400==0)
  {
  a=1;
  }
  else
  {
    if(data%4==0)
    {
    a = 1;
    }
  }
}
switch(a)
{
case "1":
cout << "E' bisestile.\n";break;
default:
cout << "Non e' bisestile.\n;break;
}
edit: sottovento scusa non avevo visto la risposta (cho messo 20 minuti a scrivere il secondo post
grazie 1000
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2006, 16:46   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
non sono sicuro che funzioni, ma se ho capito bene dovrebbe essere equivalente a:
Codice:
if(data>1582)
{
	if(!((data % 4 == 0) ^ (data % 100 == 0)))
	{
		cout << "E' bisestile";
	}
	else
	{
		cout << "Non e' bisestile.\n";
	}
}
else
{
	cout << "Non e' bisestile.\n";
}

Ultima modifica di 71104 : 26-06-2006 alle 16:54.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2006, 16:56   #5
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
^ che significa? (elevato a?)
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2006, 17:25   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
no, è lo XOR:

false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 08:19   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Io l'avevo fatta cosí:

Codice:
bool IsLeap( int Y )
{
   bool Leap = false;

   if ( (Y % 4  ) == 0 ) Leap = true;
   if ( (Y % 100) == 0 ) Leap = false;
   if ( (Y % 400) == 0 ) Leap = true;

   return Leap;
}
inglese obbligatorio deciso dall'azienda, codice e commenti.
Ma i bresciani stanno avanti
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 08:29   #8
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
il codice + corto lha fatto sottovento, 1 riga
io non sarei mai riuscito a fare una cosa del genere
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 08:39   #9
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da AngeL)
il codice + corto lha fatto sottovento, 1 riga
io non sarei mai riuscito a fare una cosa del genere
non per screditare l'intervento di sottovento
ma la bravura non é inversamente proporzionale
al numero di righe
Io quelle le chiamo "mandrakate" ... interventi geniali, sicuramente,
ma poi ti fanno stare 2 ore a capirli quando riprendi
il programma 1 mese dopo
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 08:42   #10
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
vabbe basta un commentuccio
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 08:45   #11
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
[domandascema]ma -?-:- si puo concatenare? tipo -?-: (-?-:-) (- sono le parti di codice^^)[/domandascema]
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 09:15   #12
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da AngeL)
vabbe basta un commentuccio
si se ben commentata passi ma rimane sempre 'na mandrakata

Quote:
Originariamente inviato da AngeL)
[domandascema]ma -?-:- si puo concatenare? tipo -?-: (-?-:-) (- sono le parti di codice^^)[/domandascema]
eh ?
un esempio ?
perché fai 'ste domande ar cane ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 09:31   #13
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
intendevo:
anzike fare
Codice:
if(x)
{y}
else
if(z)
{a}
si puo fare
Codice:
(x)? //if(x)
(y)  //{y}
:     //else
(
(z)? //if(z)
(a)  //{a}
:()  //null
)
?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 09:50   #14
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
l'operatore ternario é una if con ritorno di valore quindi si.
esempio

Codice:
z = (x == 1) ? x : (y == 2) ? y : 0;
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 09:56   #15
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
una dritta
puoi anche scegliere di fare un qualcosa o no con il ternario:
Codice:
(++x) >= MAX_LEN ? PrintHeader() : (void)NULL
se x > MAX_LEN stampa header altrimenti non fa niente
Peró devi castare il NULL a void perché PrintHeader é void
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 10:08   #16
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da AngeL)
intendevo:
anzike fare
Codice:
if(x)
{y}
else
if(z)
{a}
si puo fare
Codice:
(x)? //if(x)
(y)  //{y}
:     //else
(
(z)? //if(z)
(a)  //{a}
:()  //null
)
?
si, se ti vuoi del male, puoi farlo
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 10:13   #17
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da thebol
si, se ti vuoi del male, puoi farlo
deve imparare a farle le cose per saper scegliere la meno dolorosa
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:16   #18
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da trallallero
non per screditare l'intervento di sottovento
ma la bravura non é inversamente proporzionale
al numero di righe
Io quelle le chiamo "mandrakate" ... interventi geniali, sicuramente,
ma poi ti fanno stare 2 ore a capirli quando riprendi
il programma 1 mese dopo
Non screditi nessuno, ed hai perfettamente ragione (a patto che togli il "geniali", che non si addice ne' a me ne' al mio intervento )

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 15:26   #19
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da sottovento
Non screditi nessuno, ed hai perfettamente ragione (a patto che togli il "geniali", che non si addice ne' a me ne' al mio intervento )

High Flying
Sottovento
beh riuscire a "comprimere" svariate condizioni di piú righe
in una riga é "geniale". Non ho detto che sei Einstein dai
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2006, 18:02   #20
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
non ho capito quella cosa con ++x max_num ...
AngeL) è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
XBOX: la nuova CEO non ha ancora le idee...
Intel non ha intenzione di abbandonare i...
La AI Mode sarà attiva di default...
Marvel's Wolverine non sarà un op...
Star Wars Zero Company esce ad agosto: n...
Bonus Decoder: fino al 70% di sconto con...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
LG presenta in Italia le gamme TV Micro ...
Sette anni dopo l'annuncio, The Wolf Amo...
'Non avrete aumenti': la decisione shock...
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: 11:43.


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