Newsgroup: it.comp.lang.c++
Titolo: Ordinale di un numero

Ragazzi con quale funzione è possibile ricavare l'ordinale di un numer, ad
esempio in delphi scrivo Ord(x)
in c++?


Nella maggir parte dei casi un casting a int dovrebbe bastare ...

 esempio in delphi scrivo Ord(x)
Per curiosità, Ord(3) cosa restituisce esattamente?
SiMoStro


function Ord(X): Longint;
Description
X is an ordinal-type or character-type expression. The result is of type
Longint, and its value is the ordinal position of X.
Ord cannot operate on Int64 values.

 Ord cannot operate on Int64 values.
Abbi pazienza, sono vecchio (e un pure po' rincoglionito) e ci metto
un po' a capire le cose.
Alle elementari mi avevano insegnato che ci sono i numeri ordinali
e cardinali;
i numeri *cardinali* sono quelli "con cui si conta",
1, 2, 3, 4, ...
si, insomma, i numeri Naturali (N).
mentre gli *ordinali* sono quelli con cui "si ordina" (un insieme finito):
primo/a, secondo/a, terzo/a, ...
Ora, se si richiede "l'ordinale di un numero" non ci si puņ accontentare
di un "long" in risposta, a mio modo di vedere le cose non significa nulla,
se si chiede "l'ordinale" si parte dal "relativo numero cardinale"
- oppure - 
se vuoi l'ordinale "di qualcosa" che appartiene ad un "insieme limitato" di
oggetti specifica meglio la domanda.
:-?
SiMoStro

 oggetti specifica meglio la domanda.
E' questo che si intende per "tipo ordinale" nel linguaggio Pascal (e
quindi anche in Delphi).

Andrea Laforgia ha scritto:

Il cui corrispettivo "senso" in C++ č...?
Vada per la definizione Pascal - per quanto possa vaaaagamente
ricordarmi di Pascal (quasi nulla...) - ma la cosa non chiarisce la
domanda: "ordinale di un numero".
:-)
SiMoStro

"SiMoStro" <simostro@I_do_not_exixt.com> ha scritto nel messaggio
news:dcUGc.4926$tj3.2...@news3.tin.it...

come mi hanno risposto :


> Il cui corrispettivo "senso" in C++ č...?
...non č.  Nel senso che non credo che ci sia un corrispettivo, in
C++, del "tipo ordinale" del Pascal.
In Pascal tu definisci un insieme (o ce l'hai di default, vedi i
numeri interi o i caratteri ASCII) e poi applichi la funzione Ord al
singolo elemento dell'insieme, ottenendone la posizione ordinale.
Se hai per esempio un tipo:
type
  Colors = (RED, BLUE, GREEN);
...
e poi ci applichi, ad esempio: Ord(BLUE)

 Il cui corrispettivo "senso" in C++ č...?
Ad esempio un tipo enum. In C++ Ord non esiste perche' da una parte
esiste una conversione implicita da char a int, dall'altra gli
elementi di un enum hanno gia' un valore associato e non e' necessario
chiamare una funzione per trovarlo.
Ciao,
Nicola

 e poi ci applichi, ad esempio: Ord(BLUE)
Ecco, č questo che mi "sfuggiva" :-) (ripeto, i miei ricordi di
Pascal si perdono nel nulla del mio cranio...)
Comunque il mio era una specie di tentativo di "provocazione"
(non malevola eh, diciamo "costruttiva"...) sul fatto che Ord(),
se non ricordo male, č una sorta di "funzione nativa" del Pascal
(e quindi - credo - di Delphi) e chiederne il corrispettivo C++ mi
pareva avesse poco senso; il tutto sfumato dal fatto che
"matematicamente parlando", invece, chiedere (c.d.o) "l'ordinale di
un numero" ha un senso sul quale si potrebbe anche dibattere.
SiMoStro

 chiamare una funzione per trovarlo.
Come ho detto ad Andrea, tentavo una sorta di "pacifica provocazione"
per discutere sul fatto che Ord() è una cosa nativa Pascal, che il
subject era interpretabile in contesto "matematico" e che non

SiMoStro ha scritto:

Pardon, mi è scappato INVIO...
dicevo: e che non esiste un "corrispettivo immediato" sui tipi,
sul significante e sul significato di Ord() in C++.
SiMoStro

 pareva avesse poco senso;
Sì, Ord() è una "magic function", ma se avevi capito da subito dove si
andava a parare, potevi anche rispondere spiegando ciò che hai detto
adesso, senza necessariamente "provocare" ;-)

Andrea Laforgia ha scritto:

Sissì, d'accordo, ma come ho già detto la provocazione non
era di quelle "maligne" :-)
Il fatto è che a suon di usare il C++, ormai, mi sono abituato
a lavorare con "oggetti" che hanno un corrispettivo nel mondo umano.
O meglio, il C++ ci permette di "creare" (...) oggetti che si possono
"usare" come gli oggetti veri;
Essendo un "ng" a tema pensavo che potesse aprirsi una discussione sul
fatto che, dato il concetto di "insieme" generico, in C++ una ipotetica
funzione Ord() potrebbe operare come "l'ordinale" matematico :-)
In verità, la questione era banalissima (se si sa "dove si lavora"
probabilmente non serve neppure casting...), ma vabbè, ci ho provato
D'ora in poi solo risposte lampo! (se le so, ovviamente...)
:-D
SiMoStro