Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Concatenamento

Da Wikipedia, l'enciclopedia libera.

Inlinguaggio formale eprogrammazione software ilconcatenamento (oconcatenazione) indica un procedimento in cuiparole onumeri vengono legati insieme a formare, rispettivamente, una solaparola onumero.[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 neilinguaggi di programmazione per l'unione distringhe.

Definizione

[modifica |modifica wikitesto]

SianoL1,L2{\displaystyle L_{1},L_{2}} due linguaggi costruiti su un dato unalfabetoΣ{\displaystyle \Sigma }. Il concatenamentoL1L2{\displaystyle L_{1}L_{2}} rappresenta tutte le stringhe della formavw{\displaystyle vw}, dovev{\displaystyle v} appartiene aL1{\displaystyle L_{1}} ew{\displaystyle w} aL2{\displaystyle L_{2}}. Formalmente:

L1L2={vw:vL1,wL2}{\displaystyle L_{1}L_{2}=\{vw:v\in L_{1},w\in L_{2}\}}

Lo stesso procedimento può essere fatto con una stringa e un linguaggio o viceversa. Il risultato del concatenamento di un linguaggioL0{\displaystyle L_{0}} e una stringav{\displaystyle v} èvL0={vw:wL0}{\displaystyle vL_{0}=\{vw:w\in L_{0}\}}

Per esempio, se su un alfabetoΣ={a,b}{\displaystyle \Sigma =\{a,b\}} sono costruiti due linguaggiL1={abab,baba}{\displaystyle L_{1}=\{abab,baba\}} eL2={bbbb,aaaa}{\displaystyle L_{2}=\{bbbb,aaaa\}}, il loro concatenamentoL1L2{\displaystyle L_{1}L_{2}} corrisponde a{ababbbbb,bababbbb,ababaaaa,babaaaaa}{\displaystyle \{ababbbbb,bababbbb,ababaaaa,babaaaaa\}}

Esempio

[modifica |modifica wikitesto]

Dati dueinsiemiL1={a,b,c,d,e,f,g,h}{\displaystyle L_{1}=\{a,b,c,d,e,f,g,h\}} eL2={1,2,3,4,5,6,7,8}{\displaystyle L_{2}=\{1,2,3,4,5,6,7,8\}} il loro concatenamentoL1L2{\displaystyle L_{1}L_{2}} è l'insieme che contiene tutte le coordinate di unascacchiera nellanotazione algebrica. Il risultato del concatenamento di una qualsiasi lettera diL1{\displaystyle L_{1}} eL2{\displaystyle L_{2}} è l'insieme contenente tutte le coordinate dellacolonna corrispondente alla lettera. Per esempio, si consideri la lettera d inL1{\displaystyle L_{1}}, il concatenamentodL2{\displaystyle dL_{2}} indica lacolonna dellaregina.

Nei linguaggi di programmazione

[modifica |modifica wikitesto]

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

La sintassi è:

'stringa a' + 'stringa b'

Java

[modifica |modifica wikitesto]

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

Stringa="Ciao, ";Stringb="Mondo!";Stringc=a+b;//concateno a e bSystem.out.println(c);//OUTPUT: Ciao, Mondo!

Concatenamento di numeri interi

[modifica |modifica wikitesto]

Concatenare numeri interi è più complesso:

inta=46;intb=128;intc=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 nelnumero intero risultante assegnato alla variabile c.[4]

C++, C, Python

[modifica |modifica wikitesto]

InC++,C ePython, 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 libreriaiostream utilizzando l'operatore " <<".

In matematica

[modifica |modifica wikitesto]

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

Per esempio:

56||21=5621{\displaystyle 56||21=5621}

Il simbolo||{\displaystyle ||} è stato usato qui per indicare l'operazione concatenamento.

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

56||2121||56{\displaystyle 56||21\neq 21||56}

Una semplicefunzione matematica che esegue questa operazione tra due numerim{\displaystyle m} en{\displaystyle n} conn1{\displaystyle n\geq 1} em,nN{\displaystyle m,n\in \mathbb {N} } è:

C10(m,n)=10log10(n+1)m+n{\displaystyle C_{10}(m,n)=10^{\lceil \log _{10}(n+1)\rceil }m+n}

Dovex{\displaystyle \lceil x\rceil } indica lafunzione 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 dellogaritmo (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 per10nc{\displaystyle 10^{n_{c}}} dovenc{\displaystyle n_{c}} è il numero di cifre, uguale a:log10(n+1){\displaystyle \lceil \log _{10}(n+1)\rceil }.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{\displaystyle C_{b}(m,n)=b^{\lceil \log _{b}(n+1)\rceil }m+n}

Doveb{\displaystyle b} è labase del nostro sistema di numerazione.

LeCostanti di Champernowne e laCostante di Copeland-Erdős sono ottenute attraverso concatenamento.

Note

[modifica |modifica wikitesto]
  1. ^http://www.treccani.it/vocabolario/concatenamento/
  2. ^abhttp://www.treccani.it/enciclopedia/concatenazione_%28Enciclopedia-della-Matematica%29/
  3. ^https://stackoverflow.com/questions/3753869/how-do-i-concatenate-two-strings-in-java
  4. ^https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

Voci correlate

[modifica |modifica wikitesto]

Collegamenti esterni

[modifica |modifica wikitesto]
Estratto da "https://it.wikipedia.org/w/index.php?title=Concatenamento&oldid=141388740"
Categorie:
Categoria nascosta:

[8]ページ先頭

©2009-2025 Movatter.jp