

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Risoluzione dei problemi relativi a OpenQASM
<a name="braket-troubleshooting-openqasm"></a>

Questa sezione fornisce suggerimenti per la risoluzione dei problemi che potrebbero essere utili in caso di errori utilizzando OpenQASM 3.0.

**Topics**
+ [Errore di inclusione dell'istruzione](#braket-troubleshooting-openqasm-include-statement-error)
+ [Errore non contiguo qubits](#braket-troubleshooting-openqasm-non-contiguous-qubits-error)
+ [Combinazione di errori fisici qubits con qubits errori virtuali](#braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error)
+ [Richiesta dei tipi di risultati e misurazione qubits nello stesso errore di programma](#braket-troubleshooting-openqasm-result-types-measuring-qubits-error)
+ [I limiti classici e di qubit registro hanno superato l'errore](#braket-troubleshooting-openqasm-register-limits-error)
+ [Casella non preceduta da un errore pragmatico letterale](#braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error)
+ [Errore con porte native mancanti nelle caselle Verbatim](#braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error)
+ [Errore fisico mancante nelle caselle Verbatim qubits](#braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error)
+ [Nel pragma letterale manca l'errore «braket»](#braket-troubleshooting-openqasm-pragma-naming-error)
+ [L'errore Single qubits non può essere indicizzato](#braket-troubleshooting-openqasm-qubit-index-error)
+ [Errore fisico qubits in una connessione a due qubit porte](#braket-troubleshooting-openqasm-disconnected-physical-qubits-error)
+ [Avviso di supporto al simulatore locale](#braket-troubleshooting-openqasm-local-simulator-support-warning)

## Errore di inclusione dell'istruzione
<a name="braket-troubleshooting-openqasm-include-statement-error"></a>

Braket attualmente non dispone di un file di libreria gate standard da includere nei programmi OpenQASM. Ad esempio, l'esempio seguente genera un errore del parser.

```
OPENQASM 3;
include "standardlib.inc";
```

Questo codice genera il messaggio di errore: `No terminal matches '"' in the current parser context, at line 2 col 17.` 

## Errore non contiguo qubits
<a name="braket-troubleshooting-openqasm-non-contiguous-qubits-error"></a>

L'utilizzo della funzionalità non contigua qubits su dispositivi `requiresContiguousQubitIndices` impostati sulla funzionalità del dispositivo `true` genera un errore.

Quando si eseguono attività quantistiche su simulatori eIonQ, il seguente programma attiva l'errore.

```
OPENQASM 3;

qubit[4] q;

h q[0];
cnot q[0], q[2];
cnot q[0], q[3];
```

Questo codice genera il messaggio di errore: `Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].` 

## Combinazione di errori fisici qubits con qubits errori virtuali
<a name="braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error"></a>

La combinazione qubits di elementi fisici e virtuali qubits nello stesso programma non è consentita e genera un errore. Il codice seguente genera l'errore.

```
OPENQASM 3;

qubit[2] q;
cnot q[0], $1;
```

Questo codice genera il messaggio di errore: `[line 4] mixes physical qubits and qubits registers.` 

## Richiesta dei tipi di risultati e misurazione qubits nello stesso errore di programma
<a name="braket-troubleshooting-openqasm-result-types-measuring-qubits-error"></a>

La richiesta di tipi di risultati qubits misurati esplicitamente nello stesso programma genera un errore. Il codice seguente genera l'errore.

```
OPENQASM 3;

qubit[2] q;

h q[0];
cnot q[0], q[1];
measure q;

#pragma braket result expectation x(q[0]) @ z(q[1])
```

Questo codice genera il messaggio di errore: `Qubits should not be explicitly measured when result types are requested.` 

## I limiti classici e di qubit registro hanno superato l'errore
<a name="braket-troubleshooting-openqasm-register-limits-error"></a>

Sono ammessi solo un qubit registro classico e un registro. Il codice seguente genera l'errore.

```
OPENQASM 3;

qubit[2] q0;
qubit[2] q1;
```

Questo codice genera il messaggio di errore: `[line 4] cannot declare a qubit register. Only 1 qubit register is supported.` 

## Casella non preceduta da un errore pragmatico letterale
<a name="braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error"></a>

Tutte le caselle devono essere precedute da un pragma letterale. Il codice seguente genera l'errore.

```
box{
rx(0.5) $0;
}
```

Questo codice genera il messaggio di errore: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Errore con porte native mancanti nelle caselle Verbatim
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error"></a>

Le scatole Verbatim devono avere porte native e fisiche. qubits Il codice seguente genera l'errore native gates.

```
#pragma braket verbatim
box{
x $0;
}
```

Questo codice genera il messaggio di errore: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Errore fisico mancante nelle caselle Verbatim qubits
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error"></a>

Le scatole Verbatim devono essere fisiche. qubits Il codice seguente genera l'errore fisico qubits mancante.

```
qubit[2] q;

#pragma braket verbatim
box{
rx(0.1) q[0];
}
```

Questo codice genera il messaggio di errore: `Physical qubits are required in verbatim box.` 

## Nel pragma letterale manca l'errore «braket»
<a name="braket-troubleshooting-openqasm-pragma-naming-error"></a>

Devi includere «parentesi» nel pragma letterale. Il codice seguente genera l'errore.

```
#pragma braket verbatim           // Correct
#pragma verbatim                  // wrong
```

Questo codice genera il messaggio di errore: `You must include “braket” in the verbatim pragma` 

## L'errore Single qubits non può essere indicizzato
<a name="braket-troubleshooting-openqasm-qubit-index-error"></a>

Il singolo qubits non può essere indicizzato. Il codice seguente genera l'errore.

```
OPENQASM 3;

qubit q;
h q[0];
```

Questo codice genera l'errore: `[line 4] single qubit cannot be indexed.` 

Tuttavia, i singoli qubit array possono essere indicizzati come segue:

```
OPENQASM 3;

qubit[1] q;
h q[0];   // This is valid
```

## Errore fisico qubits in una connessione a due qubit porte
<a name="braket-troubleshooting-openqasm-disconnected-physical-qubits-error"></a>

Per utilizzare dispositivi fisiciqubits, verifica innanzitutto che il dispositivo utilizzi dispositivi fisici qubits controllando `device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits` e quindi verifica il grafico di connettività selezionando `device.properties.paradigm.connectivity.connectivityGraph` o`device.properties.paradigm.connectivity.fullyConnected`.

```
OPENQASM 3;

cnot $0, $14;
```

Questo codice genera il messaggio di errore: `[line 3] has disconnected qubits 0 and 14` 

## Avviso di supporto al simulatore locale
<a name="braket-troubleshooting-openqasm-local-simulator-support-warning"></a>

`LocalSimulator`Supporta funzionalità avanzate in OpenQASM che potrebbero non essere disponibili nei simulatori QPUs o su richiesta. Se il programma contiene funzionalità linguistiche specifiche solo per`LocalSimulator`, come illustrato nell'esempio seguente, riceverai un avviso.

```
qasm_string = """
qubit[2] q;

h q[0];
ctrl @ x q[0], q[1];
"""
qasm_program = Program(source=qasm_string)
```

Questo codice genera l'avviso: `Questo programma utilizza le funzionalità del linguaggio OpenQASM supportate solo in. LocalSimulator Alcune di queste funzionalità potrebbero non essere supportate nei simulatori QPUs o su richiesta.

Per ulteriori informazioni sulle funzionalità OpenQASM supportate, esplora la pagina [Supporto delle funzionalità avanzate per OpenQASM](braket-openqasm-supported-features.md#braket-openqasm-supported-features-advanced-feature-local-simulator) su Local Simulator.