

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résolution des problèmes liés à OpenQASM
<a name="braket-troubleshooting-openqasm"></a>

Cette section fournit des conseils de dépannage qui peuvent être utiles en cas d'erreur lors de l'utilisation d'OpenQASM 3.0.

**Topics**
+ [

## Inclure une erreur de déclaration
](#braket-troubleshooting-openqasm-include-statement-error)
+ [

## Erreur non contiguë qubits
](#braket-troubleshooting-openqasm-non-contiguous-qubits-error)
+ [

## Mélange d'erreur physique qubits et d'qubitserreur virtuelle
](#braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error)
+ [

## Erreur lors de la demande de types de résultats et de la mesure qubits dans le même programme
](#braket-troubleshooting-openqasm-result-types-measuring-qubits-error)
+ [

## Erreur de dépassement des limites classiques et des limites de qubit registre
](#braket-troubleshooting-openqasm-register-limits-error)
+ [

## Boîte non précédée d'une erreur de pragma textuelle
](#braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error)
+ [

## Erreur concernant les portes natives manquantes dans les boîtes Verbatim
](#braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error)
+ [

## Erreur physique manquante dans les boîtes verbatim qubits
](#braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error)
+ [

## Il manque une erreur « braket » dans le pragma textuel
](#braket-troubleshooting-openqasm-pragma-naming-error)
+ [

## Une seule qubits erreur ne peut pas être indexée
](#braket-troubleshooting-openqasm-qubit-index-error)
+ [

## L'erreur physique qubits dans une qubit porte à deux portes n'est pas connectée
](#braket-troubleshooting-openqasm-disconnected-physical-qubits-error)
+ [

## Avertissement de support du simulateur local
](#braket-troubleshooting-openqasm-local-simulator-support-warning)

## Inclure une erreur de déclaration
<a name="braket-troubleshooting-openqasm-include-statement-error"></a>

Braket n'a actuellement pas de fichier de bibliothèque de portail standard à inclure dans les programmes OpenQASM. Par exemple, l'exemple suivant génère une erreur d'analyseur.

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

Ce code génère le message d'erreur : `No terminal matches '"' in the current parser context, at line 2 col 17.` 

## Erreur non contiguë qubits
<a name="braket-troubleshooting-openqasm-non-contiguous-qubits-error"></a>

L'utilisation de la méthode non contiguë qubits sur les appareils dont la fonctionnalité est définie `requiresContiguousQubitIndices` comme telle entraîne une erreur. `true`

Lorsque vous exécutez des tâches quantiques sur des simulateursIonQ, le programme suivant déclenche l'erreur.

```
OPENQASM 3;

qubit[4] q;

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

Ce code génère le message d'erreur : `Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].` 

## Mélange d'erreur physique qubits et d'qubitserreur virtuelle
<a name="braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error"></a>

Le mélange du physique qubits et du virtuel qubits dans le même programme n'est pas autorisé et entraîne une erreur. Le code suivant génère l'erreur.

```
OPENQASM 3;

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

Ce code génère le message d'erreur : `[line 4] mixes physical qubits and qubits registers.` 

## Erreur lors de la demande de types de résultats et de la mesure qubits dans le même programme
<a name="braket-troubleshooting-openqasm-result-types-measuring-qubits-error"></a>

La demande de types de résultats qubits mesurés explicitement dans le même programme entraîne une erreur. Le code suivant génère l'erreur.

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

Ce code génère le message d'erreur : `Qubits should not be explicitly measured when result types are requested.` 

## Erreur de dépassement des limites classiques et des limites de qubit registre
<a name="braket-troubleshooting-openqasm-register-limits-error"></a>

Un seul registre classique et un seul qubit registre sont autorisés. Le code suivant génère l'erreur.

```
OPENQASM 3;

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

Ce code génère le message d'erreur : `[line 4] cannot declare a qubit register. Only 1 qubit register is supported.` 

## Boîte non précédée d'une erreur de pragma textuelle
<a name="braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error"></a>

Toutes les cases doivent être précédées d'un verbatim pragma. Le code suivant génère l'erreur.

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

Ce code génère le message d'erreur : `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Erreur concernant les portes natives manquantes dans les boîtes Verbatim
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error"></a>

Les boîtes verbatim doivent avoir des portes natives et physiques. qubits Le code suivant génère l'erreur native gates.

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

Ce code génère le message d'erreur : `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Erreur physique manquante dans les boîtes verbatim qubits
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error"></a>

Les boîtes verbatim doivent être physiques. qubits Le code suivant génère l'qubitserreur physique manquante.

```
qubit[2] q;

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

Ce code génère le message d'erreur : `Physical qubits are required in verbatim box.` 

## Il manque une erreur « braket » dans le pragma textuel
<a name="braket-troubleshooting-openqasm-pragma-naming-error"></a>

Vous devez inclure le mot « braket » dans le verbatim pragma. Le code suivant génère l'erreur.

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

Ce code génère le message d'erreur : `You must include “braket” in the verbatim pragma` 

## Une seule qubits erreur ne peut pas être indexée
<a name="braket-troubleshooting-openqasm-qubit-index-error"></a>

Le single qubits ne peut pas être indexé. Le code suivant génère l'erreur.

```
OPENQASM 3;

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

Ce code génère l'erreur suivante : `[line 4] single qubit cannot be indexed.` 

Cependant, les qubit tableaux individuels peuvent être indexés comme suit :

```
OPENQASM 3;

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

## L'erreur physique qubits dans une qubit porte à deux portes n'est pas connectée
<a name="braket-troubleshooting-openqasm-disconnected-physical-qubits-error"></a>

Pour utiliser le physiquequbits, vérifiez d'abord que le périphérique utilise le physique qubits en cochant, `device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits` puis vérifiez le graphique de connectivité en cochant `device.properties.paradigm.connectivity.connectivityGraph` ou`device.properties.paradigm.connectivity.fullyConnected`.

```
OPENQASM 3;

cnot $0, $14;
```

Ce code génère le message d'erreur : `[line 3] has disconnected qubits 0 and 14` 

## Avertissement de support du simulateur local
<a name="braket-troubleshooting-openqasm-local-simulator-support-warning"></a>

Il `LocalSimulator` prend en charge les fonctionnalités avancées d'OpenQASM qui peuvent ne pas être disponibles sur les simulateurs QPUs ou à la demande. Si votre programme contient des fonctionnalités linguistiques spécifiques uniquement à`LocalSimulator`, comme le montre l'exemple suivant, vous recevrez un avertissement.

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

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

Ce code génère l'avertissement suivant : `Ce programme utilise les fonctionnalités du langage OpenQASM uniquement prises en charge dans le. LocalSimulator Certaines de ces fonctionnalités peuvent ne pas être prises en charge sur les simulateurs QPUs ou à la demande.

Pour plus d'informations sur les fonctionnalités prises en charge par OpenQASM, consultez la page [Support des fonctionnalités avancées d'OpenQASM](braket-openqasm-supported-features.md#braket-openqasm-supported-features-advanced-feature-local-simulator) sur le simulateur local.