Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico
Motorola propone in fascia media il nuovo Moto G77 5G, uno smartphone che punta sul display AMOLED da 1.5K a 120Hz, e sulla fotocamera da 108 MP con stabilizzazione ottica per affrontare la fascia media. Il tutto insieme a una batteria da 5200mAh in soli 7,3 millimetri di spessore, con una scocca certificata con standard militari
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla
DJI ha appena ufficializzato la serie Lito, la sua nuova gamma di droni entry-level destinata a chi si avvicina per la prima volta alla fotografia aerea. Al centro dell'annuncio ci sono due modelli ben distinti per fascia di prezzo e specifiche tecniche: DJI Lito 1 e DJI Lito X1. Entrambi si collocano sotto la soglia regolamentare dei 249 grammi, che permette di volare con requisiti burocratici più semplici rispetto ai droni più pesanti.
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi
Siamo stati a Londra per la premiazione dei Sony World Photography Awards 2026, l'evento a tema fotografia più prestigioso. Fra sorprese e novità, ne approfittiamo per fare il punto sulla fotografia contemporanea, in cui la didascalia è sempre più necessaria a cogliere il senso della quasi totalità degli scatti.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2009, 11:37   #1
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
[c++]Mi aiutate a capire l'istruzione?

Ciao a tutti ragazzi
vorrei capire un' istruzione a cosa serve: vi spiego il problema: devo visulizzare gli interi da 1 a 20 usando un ciclo for con variabile contatore x intera e inizializzata ad 1.Devo visualizzare 5 interi per linea , se il valore è 0, visualizza un carattere nuova linea se no carattere di tabulazione

Codice:
for(x=1; x<=20 ; x++)
count<<x;
   if (x%5==0)                    <<<questa if non la capisco cosa significa?<<<
       cout<<endl;
   else
     cout<<"\t";
__________________
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 06-05-2009, 11:41   #2
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
E' l'operatore modulo.

Significa: se x è divisibile per 5 (o meglio: se il resto della divisione x / 5 è uguale a 0).
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2009, 11:43   #3
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Quel % è l'operatore di modulo, restituisce il resto della divisione.
Quindi: se il resto della divisione di x / 5 è uguale a 0 (ovvero, se x è divisibile per 5) stampa endl.

EDIT: doppio
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2009, 13:24   #4
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
e cosa c'entra con questa espressione "Devo visualizzare 5 interi per linea"?
__________________
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 06-05-2009, 13:43   #5
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Bandit Guarda i messaggi
e cosa c'entra con questa espressione "Devo visualizzare 5 interi per linea"?
Ogni 5 interi ce n'è uno divisibile per 5.
Quindi ogni 5 interi il programma andrà a nuova riga.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2009, 13:54   #6
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
Ogni 5 interi ce n'è uno divisibile per 5.
Quindi ogni 5 interi il programma andrà a nuova riga.
a ecco
grazie

si fanno anche questo itpo di ragionamento? mi devo abituare allora...
__________________
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 06-05-2009, 14:09   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Bandit Guarda i messaggi
si fanno anche questo itpo di ragionamento? mi devo abituare allora...
Tieni presente che programmazione, logica booleana e matematica sono praticamente amanti tra di loro.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2009, 14:19   #8
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ok, cercherò...
__________________
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, 10:36   #9
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ragazzi mi aiutate a capire le due funzioni che mi permettono di visualizzare l'orario in tempo universale-militare (18:30) e quello in tempo standard(6:30 PM)?

queste sono le funzioni
Codice:
void stampamilitare (const Tempo &t)

void stampastandard (const Tempo &t)
questo è il programma dove creo un tipo Tempo , do dei valori ai membrei della struct tipo Tempo e cerco di visualizzarli

Codice:
//Crea struttura ,imposto i membri e li visualizzo

#include <iostream>
using namespace std;

struct Tempo {
	 int ora;
	 int minuto;
	 int secondo;
};

void stampamilitare (const Tempo &);
void stampastandard (const Tempo &);

int main()
{
	Tempo cenaTempo; //variabile del nuovo tipo Tempo

	//ora inizializzo i membri con valori validi
	cenaTempo.ora=18;
	cenaTempo.minuto=30;
	cenaTempo.secondo=0;

	cout<<"cena sarà servita alle:";
	stampamilitare(cenaTempo);

	cout<<"  tempo militare,\n che è :";
	stampastandard(cenaTempo);
	cout<<"in tempo standard.\n";

	return 0;

}

//funzione stampa militare e stampa standard

void stampamilitare (const Tempo &t)
{
//da qui 
	cout<<(t.ora<10 ? "0" : "")<<t.ora<< ":"
	<<(t.minuto<10 ? "0" : "")<<t.minuto;

//a qui 

}

void stampastandard (const Tempo &t)
{

//da qui
	cout<<((t.ora==0 ||t.ora==12)?
			12 : t.ora %12)
			<<":"<<(t.minuto<10 ? "0":"")<<t.minuto
			<<":"<<(t.secondo<10 ? "0":"")<<t.secondo
			<<(t.ora<12?" AM ":" PM ");

//a qui 
}
perchè per visualizzare il il tempo scrivo in questo modo i due corpi della funzione, che cosa vuol dire?
__________________
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.

Ultima modifica di Bandit : 12-05-2009 alle 11:03.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 10:58   #10
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Bandit Guarda i messaggi
perchè per visualizzare il il tempo scrivo in questo modo i due corpi della funzione che cosa vuol dire?
Non ho capito bene che cosa non ti è chiaro...
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:03   #11
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ho messo i commenti in rosso dove non ho capito
__________________
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, 11:08   #12
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Codice:
void stampamilitare (const Tempo &t)
{
//da qui 
	cout<<(t.ora<10 ? "0" : "")<<t.ora<< ":"
	<<(t.minuto<10 ? "0" : "")<<t.minuto;

//a qui 

}
In questa funzione fa uso dell'operatore ternario.
(condizione ? #true : #false)
Praticamente se la condizione è vera viene eseguito il codice #true, se la condizione è falsa quello #false.
In questo caso se l'ora e i minuti sono inferiori a 10 (e quindi hanno una singola cifra) ci aggiunge uno 0 davanti. Se i numeri sono a due cifre invece ci aggiunge una stringa vuota, non cambiando niente.

Quote:
Codice:
void stampastandard (const Tempo &t)
{

//da qui
	cout<<((t.ora==0 ||t.ora==12)?
			12 : t.ora %12)
			<<":"<<(t.minuto<10 ? "0":"")<<t.minuto
			<<":"<<(t.secondo<10 ? "0":"")<<t.secondo
			<<(t.ora<12?" AM ":" PM ");

//a qui 
}
((t.ora==0 ||t.ora==12) ? 12 : t.ora %12)
controlla se l'ora è 0 o 12 e in quel caso ritorna 12, altrimenti ritorna ora % 12 (praticamente trasforma le ore 13-23 in 1-11).
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:10   #13
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Cosa non ti e' chiaro ? Il modo in cui l'ora viene stampata ?

Se usi lo standard militare, devi mettere uno 0 davanti ogni cifra (sia per l'ora che per i minuti) se questi non hanno gia' una prima prima cifra diversa da 0.
Quindi 1 viene scritto 01, 2 viene scritto 02, 13 viene scritto 13 e non 013 perche' ce' gia' un 1 che precede il 3. Idem se scrivi 23:56, se scrivi 7:6 allora
verra' trasformato in 07:06.

Se usi lo standard civile invece l'ora va scritta in formato xx:yy:AM/PM con xx compreso tra 0 e 12 (ore), yy sono i minuti e AM o PM distinguono se le ore si riferiscono al mattino o al pomeriggio.
Quindi le 2:05 AM non sono uguali alle 2:05 PM.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:17   #14
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
grazie della spiegazione
però è possibile scendere in dettaglio?

Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
In questa funzione fa uso dell'operatore ternario.
(condizione ? #true : #false)
Praticamente se la condizione è vera viene eseguito il codice #true, se la condizione è falsa quello #false.
In questo caso se l'ora e i minuti sono inferiori a 10 (e quindi hanno una singola cifra) ci aggiunge uno 0 davanti. Se i numeri sono a due cifre invece ci aggiunge una stringa vuota, non cambiando niente.
Codice:
t.ora<10 ? "0" : ""
se l'ora è <10, allora aggiungi un o 0 davanti, il "?" cosa indica?aggiungi?


Andando oltre
se qui consideriamo altrimenti
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi

((t.ora==0 ||t.ora==12) ? 12 : t.ora %12)
controlla se l'ora è 0 o 12 e in quel caso ritorna 12, altrimenti ritorna ora % 12 (praticamente trasforma le ore 13-23 in 1-11).
Codice:
((t.ora==0 ||t.ora==12) ? 12 : t.ora %12)
perchè invece del : non c'è ||?
__________________
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, 11:23   #15
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Bandit Guarda i messaggi
grazie della spiegazione
però è possibile scendere in dettaglio?



Codice:
t.ora<10 ? "0" : ""
se l'ora è <10, allora aggiungi un o 0 davanti, il "?" cosa indica?aggiungi?


Andando oltre
se qui consideriamo altrimenti


Codice:
((t.ora==0 ||t.ora==12) ? 12 : t.ora %12)
perchè invece del : non c'è ||?
La risposta ad entrambe le domande è nel mio post sopra: si tratta dell'operatore ternario.
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
(condizione ? #true : #false)
Praticamente se la condizione è vera viene eseguito il codice #true, se la condizione è falsa quello #false.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:24   #16
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
L'operatore ternario "? :" funziona cosi'

espressione1 ? espressione2 : espressione3.

Viene valutata l'espressione1, se e' vera viene restituito il valore dell'espressione 2, se invece espressione1 e' falsa viene restituito il valore dell'espressione3.

E un modo alternativo di scrivere una istruzione if then else. Ad ogni modo non sono totalmente equivalenti, perche' l'if-then-else e' una istruzione mentre ? : e' un espressione e puo' essere utilizzata in posti dove non potrebbe essere usata l'istruzione if-then-else.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:26   #17
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
quindi ? e :
così scritti possono poter essere covisti come una specie di if (?) e else (
__________________
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, 11:27   #18
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da goldorak Guarda i messaggi
L'operatore ternario "? :" funziona cosi'

espressione1 ? espressione2 : espressione3.

Viene valutata l'espressione1, se e' vera viene restituito il valore dell'espressione 2, se invece espressione1 e' falsa viene restituito il valore dell'espressione3.

E un modo alternativo di scrivere una istruzione if then else. Ad ogni modo non sono totalmente equivalenti, perche' l'if-then-else e' una istruzione mentre ? : e' un espressione e puo' essere utilizzata in posti dove non potrebbe essere usata l'istruzione if-then-else.
ok grazie mille chiarissimo
abbiam orisposto in contemporanea


p.s. grazie a tutti, ma mi sto ambientando piano piano a questo c++
__________________
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, 11:38   #19
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bandit Guarda i messaggi
ok grazie mille chiarissimo
abbiam orisposto in contemporanea


p.s. grazie a tutti, ma mi sto ambientando piano piano a questo c++
Ti faccio un esempio veloce veloce in c (ma si puo' applicare anche a c++)


Codice:
char cin ;

cin = getchar() // leggi un carattere dallo standard input

if (cin=='a') printf("%c", 'A'); else printf("%c", '\n') ;

....
con l'operatore ? : scriveresti una cosa del genere :

Codice:
char cin ;

printf ("%c", ( (cin=getchar()) == 'a') ? 'A' : '\n') ;
Come vedi nel secondo esempio si fa a meno dell'istruzione if then else perche' non potresti inserirla nella printf.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 11:53   #20
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da goldorak Guarda i messaggi
Codice:
char cin ;

printf ("%c", ( (cin=getchar()) == 'a') ? 'A' : '\n') ;
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
__________________
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


Recensione Moto G77: display AMOLED e buona autonomia per il midrange economico Recensione Moto G77: display AMOLED e buona auto...
DJI Lito 1 e Lito X1 recensione: i nuovi droni per principianti che non si fanno mancare nulla DJI Lito 1 e Lito X1 recensione: i nuovi droni p...
Sony World Photography Awards 2026: i premiati, anche italiani, il punto sulla fotografia di oggi Sony World Photography Awards 2026: i premiati, ...
Una settimana con Hyundai Ioniq 5 N-Line: diverte e convince Una settimana con Hyundai Ioniq 5 N-Line: divert...
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Panasonic presenta il nuovo obiettivo Lu...
Panasonic Lumix S9 Black Titanium Editio...
Thales Alenia Space risponde alle critic...
Intel aggiorna i driver Arc Pro: fino al...
La Cina blocca l'acquisizione di Manus d...
Le batterie al sodio di CATL raggiungono...
Samsung rischia 36 giorni di stop totale...
Huawei annuncia l'arrivo della serie Wat...
L'auto elettrica più veloce del m...
ASUS ha rilasciato il cavo salva-GPU: 50...
TeamViewer Intelligent Agent si rinnova ...
Il conflitto in Iran fa salire i prezzi ...
B05 di Leapmotor in Italia: hatchback el...
Addio app? OpenAI prepara lo smartphone ...
MacBook Air 13" con chip M5 in offerta 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: 21:37.


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