

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas de OpenQASM
<a name="braket-troubleshooting-openqasm"></a>

En esta sección se proporcionan consejos de solución de problemas que pueden resultar útiles cuando se producen errores al utilizar OpenQASM 3.0.

**Topics**
+ [Incluir un error en la declaración](#braket-troubleshooting-openqasm-include-statement-error)
+ [Error de qubits no contiguo](#braket-troubleshooting-openqasm-non-contiguous-qubits-error)
+ [Error de combinación de qubits físico con qubits virtual](#braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error)
+ [Error de solicitud de tipos de resultados y medición de qubits en el mismo programa](#braket-troubleshooting-openqasm-result-types-measuring-qubits-error)
+ [Error de superación de límites en registro clásico y registro de qubit](#braket-troubleshooting-openqasm-register-limits-error)
+ [Error de cuadro no precedido de un pragma verbatim](#braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error)
+ [Error de falta de puertas nativas en los cuadros verbatim](#braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error)
+ [Error de falta de qubits físicos en cuadros verbatim](#braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error)
+ [Error de falta de «braket» en el pragma verbatim](#braket-troubleshooting-openqasm-pragma-naming-error)
+ [Error de que no es posible indexar un solo qubits](#braket-troubleshooting-openqasm-qubit-index-error)
+ [Error de qubits físicos en una puerta de dos qubit no conectados](#braket-troubleshooting-openqasm-disconnected-physical-qubits-error)
+ [Advertencia de compatibilidad del simulador local](#braket-troubleshooting-openqasm-local-simulator-support-warning)

## Incluir un error en la declaración
<a name="braket-troubleshooting-openqasm-include-statement-error"></a>

Actualmente, Braket no tiene un archivo de biblioteca de puerta estándar para incluirlo en los programas de OpenQASM. Por ejemplo, en el siguiente ejemplo se genera un error de analizador.

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

Este código genera el mensaje de error: `No terminal matches '"' in the current parser context, at line 2 col 17.` 

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

El uso de qubits no contiguo en dispositivos no contiguos en dispositivos que `requiresContiguousQubitIndices` establecido en `true` en la capacidad del dispositivo provoca un error.

Al ejecutar tareas cuánticas en simuladores y IonQ, el siguiente programa desencadena el error.

```
OPENQASM 3;

qubit[4] q;

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

Este código genera el mensaje de error: `Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].` 

## Error de combinación de qubits físico con qubits virtual
<a name="braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error"></a>

No se permite la combinación de qubits físico con qubits virtual en el mismo programa y se produce un error. El código siguiente genera el error.

```
OPENQASM 3;

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

Este código genera el mensaje de error: `[line 4] mixes physical qubits and qubits registers.` 

## Error de solicitud de tipos de resultados y medición de qubits en el mismo programa
<a name="braket-troubleshooting-openqasm-result-types-measuring-qubits-error"></a>

La solicitud de tipos de resultados y la medición explícita de qubits en el mismo programa, da lugar a un error. El código siguiente genera el error.

```
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])
```

Este código genera el mensaje de error: `Qubits should not be explicitly measured when result types are requested.` 

## Error de superación de límites en registro clásico y registro de qubit
<a name="braket-troubleshooting-openqasm-register-limits-error"></a>

Solo se permite un registro clásico y un registro de qubit. El código siguiente genera el error.

```
OPENQASM 3;

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

Este código genera el mensaje de error: `[line 4] cannot declare a qubit register. Only 1 qubit register is supported.` 

## Error de cuadro no precedido de un pragma verbatim
<a name="braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error"></a>

Todos los cuadros deben ir precedidos de un pragma verbatim. El código siguiente genera el error.

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

Este código genera el mensaje de error: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Error de falta de puertas nativas en los cuadros verbatim
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error"></a>

Los cuadros verbatim deben tener puertas nativas y qubits físicos. El siguiente código genera el error de puertas nativas.

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

Este código genera el mensaje de error: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Error de falta de qubits físicos en cuadros verbatim
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error"></a>

Los cuadros verbatim deben tener qubits físicos. El código siguiente genera el error de falta de qubits físicos.

```
qubit[2] q;

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

Este código genera el mensaje de error: `Physical qubits are required in verbatim box.` 

## Error de falta de «braket» en el pragma verbatim
<a name="braket-troubleshooting-openqasm-pragma-naming-error"></a>

Debe incluir «braket» en el pragma verbatim. El código siguiente genera el error.

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

Este código genera el mensaje de error: `You must include “braket” in the verbatim pragma` 

## Error de que no es posible indexar un solo qubits
<a name="braket-troubleshooting-openqasm-qubit-index-error"></a>

No se puede indexar un solo qubits. El código siguiente genera el error.

```
OPENQASM 3;

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

Este código genera el error: `[line 4] single qubit cannot be indexed.` 

Sin embargo, las matrices de qubit individuales se pueden indexar como sigue:

```
OPENQASM 3;

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

## Error de qubits físicos en una puerta de dos qubit no conectados
<a name="braket-troubleshooting-openqasm-disconnected-physical-qubits-error"></a>

Para utilizar qubits físicos, confirme primero que el dispositivo utiliza qubits físicos marcando `device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits` y, a continuación, compruebe el gráfico de conectividad marcando `device.properties.paradigm.connectivity.connectivityGraph` o `device.properties.paradigm.connectivity.fullyConnected`.

```
OPENQASM 3;

cnot $0, $14;
```

Este código genera el mensaje de error: `[line 3] has disconnected qubits 0 and 14` 

## Advertencia de compatibilidad del simulador local
<a name="braket-troubleshooting-openqasm-local-simulator-support-warning"></a>

`LocalSimulator`Es compatible con las funciones avanzadas de OpenQASM que pueden no estar disponibles en los simuladores o bajo demanda. QPUs Si su programa contiene características de lenguaje específicas únicamente para el `LocalSimulator`, como se ve en el siguiente ejemplo, recibirá una advertencia.

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

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

Este código genera la siguiente advertencia: `Este programa utiliza funciones del lenguaje OpenQASM que solo son compatibles con. LocalSimulator Es posible que algunas de estas funciones no sean compatibles con los simuladores o bajo demanda. QPUs 

Para obtener más información sobre las características compatibles con OpenQASM, consulte la página [Compatibilidad con características avanzadas para OpenQASM en el simulador local](braket-openqasm-supported-features.md#braket-openqasm-supported-features-advanced-feature-local-simulator).