Concatenamento

Da testwiki.
Vai alla navigazione Vai alla ricerca

In linguaggio formale e programmazione software il concatenamento (o concatenazione) indica un procedimento in cui parole o numeri vengono legati insieme a formare, rispettivamente, una sola parola o numero.[1][2]

Ad esempio, concatenando "piano" e "forte" si ottiene "pianoforte", oppure concatenando i numeri 5 e 12 si ottiene il numero 512.

Quest'operazione è spesso utilizzata nei linguaggi di programmazione per l'unione di stringhe.

Definizione

Siano L1,L2 due linguaggi costruiti su un dato un alfabeto Σ. Il concatenamento L1L2 rappresenta tutte le stringhe della forma vw, dove v appartiene a L1 e w a L2. Formalmente:

L1L2={vw:vL1,wL2}

Lo stesso procedimento può essere fatto con una stringa e un linguaggio o viceversa. Il risultato del concatenamento di un linguaggio L0 e una stringa v è vL0={vw:wL0}

Per esempio, se su un alfabeto Σ={a,b} sono costruiti due linguaggi L1={abab,baba} e L2={bbbb,aaaa}, il loro concatenamento L1L2 corrisponde a {ababbbbb,bababbbb,ababaaaa,babaaaaa}

Esempio

Dati due insiemi L1={a,b,c,d,e,f,g,h} e L2={1,2,3,4,5,6,7,8} il loro concatenamento L1L2 è l'insieme che contiene tutte le coordinate di una scacchiera nella notazione algebrica. Il risultato del concatenamento di una qualsiasi lettera di L1 e L2 è l'insieme contenente tutte le coordinate della colonna corrispondente alla lettera. Per esempio, si consideri la lettera d in L1, il concatenamento dL2 indica la colonna della regina.

Nei linguaggi di programmazione

Nella maggior parte dei linguaggi di programmazione, l'operatore per il concatenamento delle stringhe è "+".

La sintassi è:

'stringa a' + 'stringa b'

Java

In Java è possibile concatenare più stringhe semplicemente in questo modo[3]:

  String a = "Ciao, ";
  String b = "Mondo!";
  
  String c = a + b;//concateno a e b

  System.out.println(c);//OUTPUT: Ciao, Mondo!

Concatenamento di numeri interi

Concatenare numeri interi è più complesso:

  int a = 46;
  int b = 128;

  int c = Integer.parseInt(Integer.toString(a) + Integer.toString(b));
  
  System.out.println(c); //OUTPUT: 46128

Qui, usufruendo della classe java.lang.Integer, i due numeri vengono prima trasformati in stringhe, poi concatenati e infine ritrasformati nel numero intero risultante assegnato alla variabile c.[4]

C++, C, Python

In C++, C e Python, come in Java, si può usare l'operatore " + ":

"Stringa 1" + "Stringa 2"

Inoltre, in C++, è possibile eseguire il concatenamento di stringhe e/o variabili nei comandi cout e cerr della libreria iostream utilizzando l'operatore " << ".

In matematica

In matematica concatenare vuol dire fondere due o più numeri per formarne uno nuovo.[2]

Per esempio:

56||21=5621

Il simbolo || è stato usato qui per indicare l'operazione concatenamento.

L'operazione NON gode della proprietà commutativa, quindi:

56||2121||56

Una semplice funzione matematica che esegue questa operazione tra due numeri m e n con n1 e m,n è:

C10(m,n)=10log10(n+1)m+n

Dove x indica la funzione parte intera superiore.

Questa formula si ricava facilmente in questa maniera: Il primo numero m, deve essere spostato di tante cifre quante sono quelle di n, per lasciargli spazio. Dunque per avere il numero di cifre di n basterebbe la parte intera superiore del logaritmo (nel caso della numerazione decimale in base 10) di n sommato al più ad 1. Adesso, possiamo spostare m delle cifre di n verso sinistra moltiplicandolo per 10nc dove nc è il numero di cifre, uguale a: log10(n+1). A questo punto, spostato m delle cifre di n, possiamo sommare n. Il risultato è la concatenazione dei due numeri.

Ovviamente è possibile generalizzare la formula per una qualsiasi base, sostituendo le basi dell'esponenziale e del logaritmo:

Cb(m,n)=blogb(n+1)m+n

Dove b è la base del nostro sistema di numerazione.

Le Costanti di Champernowne e la Costante di Copeland-Erdős sono ottenute attraverso concatenamento.

Note

Voci correlate

Collegamenti esterni

Template:Portale