Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-10-2009, 22:14   #1
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
[C++] Dare vincoli alle variabili

Salve,
mi affaccio ora ora sul c++ e mi serve una cosa che credo sia banale.. ma non sono riuscito a trovare da nessuna parte:

se io voglio creare una variabile intera matricola e voglio darle questi vincoli:

il numero di matricola è un numero a sei cifre, che varia fra 255312 e 499999


come faccio?

Grazie mille
Andrea
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2009, 22:42   #2
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8376
Il numero viene inserito da tastiera giusto?

#include <iostream>
using namespace std;


int main()
{
int matricola;
cout << "Dammi la matricola:\t";
cin >> matricola;

//Se la matricola è minore di... OR || maggiore di...
if(matricola < 255312 || matricola > 499999)
cout << "Matricola non valida";
else
cout << "OK"<<endl;

//system("pause");
return 0;
}
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2009, 22:50   #3
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
Ah ecco...
quindi l'unica è agire sull'implementazione.. credevo ci fossero delle statement (che nel C non ho trovato) e invece niente anche qui... tutti d'accordo?
Eppure il professore mi sembra che parlò di un'allocazione con subrange in modo da limitare anche l'uso della memoria.. non ne sapete nulla ?

Cmq grazie mille
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2009, 23:34   #4
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8376
In C++ puoi crearti dei tipi personali di dati, i predefiniti sono gli int, float, double e via dicendo. Forse la soluzione "automatica" è costruirti un tipo di dato concreto\astratto ed implementare i vincoli nella dichiarazione.

Ad esempio un altro modo per fissare dei limiti sup e inf ad una variabile che viene modificata a tempo di esecuzione senza intervento umano, è usare il mod % per scaricarci il resto della divisione, tipo

...
offset = 20;
while(...)
int temp = offsett + variabile_y % 50;
...

Così facendo temp può assumere valori da 20 a 70. Xò non è che la puoi usare così a caso.

Fortunatamente in altri linguaggi ad alto livello esiste la clausola CHECK che permette di fare quello che dici te:

CHECK variabile BEETWEN x AND y

Non credo che esista qualcosa di equivalente in c++ in modo diretto, ma te lo devi creare da solo in maniera "derivata"
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2009, 00:16   #5
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Esiste sempre la possibilità di crearsi una classe NumeroDiMatricola utilizzabile come un intero nelle espressioni (tramite operator int() ), che implementi i controlli sulla validità del numero al momento del set e che sollevi un'eccezione se questo non è valido.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2009, 11:23   #6
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8376
Esattamente
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
TSMC investe 1 miliardo di dollari in Op...
Niente più risposte IA nelle ricerche: M...
Allarmi bomba nelle scuole, il Viminale:...
OpenAI incassa 10 miliardi in tre mesi, ...
Continua il Black Friday Engwe: sconto e...
OnePlus 12 riceve Android 17 con una set...
Troppe patch generate dall'IA: anche chi...
Comprata e spenta il giorno dopo: cos'er...
Google lancia Tabletop, l'IA che trasfor...
SpaceX e Tesla verso la fusione del seco...
One UI 9.5 arriva anche su Galaxy S25: S...
Kimi K3 gira in casa senza GPU, sulla me...
Il futuro di GeForce dopo Huang: NVIDIA ...
Windows, un bug lascia aperte le conness...
HONOR conquista il mercato cinese: la se...
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: 17:02.


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