Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## ||

|| — Opérateur OU logique.

## Description

Les opérateurs arithmétiques réalisent les opérations de changement de signe (négation), de signe inchangé, ET logique, OU logique, addition, soustraction, multiplication et division. Notez qu'une valeur ou une expression peut être placée entre deux de ces opérateurs, lesquels peuvent la prendre comme opérande de gauche ou de droite, comme dans

a + b * c.

Trois règles s'appliquent dans de tels cas :

1. * et / s'appliquent à leurs voisins plus fortement que + et −. Ainsi l'expression ci-dessus s'interprète comme

a + (b * c)

avec * prenant b et c puis + prenant a et b * c.

2. + et − sont prioritaires sur &&, qui devance lui-même || :

a && b - c || d

est interprété comme

(a && (b - c)) || d

3. Quand deux opérateurs sont d'égale importance, les opérations ont lieu de gauche à droite :

a - b - c

est interprété comme

(a - b) - c

On peut utiliser des parenthèses pour forcer un groupement particulier.

## Syntaxe

    a || b  (OU logique ; pas de taux audio)

où les arguments a et b peuvent être des expressions.

## Exemples

Voici un exemple de l'opérateur |. Il utilise le fichier logicOR.csd.

Exemple 31. Exemple de l'opérateur |.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac -+rtmidi=virtual -M0   ;;;realtime audio out and virtual midi keyboard
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    </CsOptions>
    <CsInstruments>
    ;after a UDO from Rory Walsh
    sr = 44100
    ksmps = 32
    nchnls = 2

    instr 1	;displays notes, midi channel and control number information

    kstatus, kchan, kdata1, kdata2 midiin
    k1 changed kstatus
    k2 changed kchan
    k3 changed kdata1
    k4 changed kdata2
    if((k1==1)||(k2==1)||(k3==1)||(k4==1)) then
    printks "Value:%d ChanNo:%d CtrlNo:%d\n" , 0, kdata2, kchan, kdata1
    endif

    endin
    </CsInstruments>
    <CsScore>

    i1  0  60	;print values for 60 seconds

    e
    </CsScore>
    </CsoundSynthesizer>

Sa sortie contiendra des lignes comme celles-ci :

    Value:127 ChanNo:11 CtrlNo:62
    Value:127 ChanNo:11 CtrlNo:60
    Value:127 ChanNo:11 CtrlNo:60
    Value:127 ChanNo:11 CtrlNo:60
    Value:127 ChanNo:11 CtrlNo:60
    ....
    Value:0 ChanNo:11 CtrlNo:62
    Value:0 ChanNo:11 CtrlNo:62
    Value:0 ChanNo:11 CtrlNo:62
    Value:0 ChanNo:11 CtrlNo:62
    ....
    Value:77 ChanNo:11 CtrlNo:23
    Value:77 ChanNo:11 CtrlNo:23
    Value:76 ChanNo:11 CtrlNo:23
    Value:76 ChanNo:11 CtrlNo:23
    ....

## Voir aussi

-, +, &&, *, /, ^, %

Précédent | Niveau supérieur | Suivant
^ | Sommaire | !