Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
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:11.


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