Seo (programlingva)

En programlingvoj, la seo, aŭ se-ordono  estas malsimpla ordono ebliganta dum la rultempo kondiĉi plenumon de unu aŭ pluraj ordonoj (nomataj branĉo, alternativo) per valoro de bulea esprimo (per kondiĉo).

 Unubranĉa seo 
En la Paskala pseŭdokodo tia seo havas la formon
  se bulea_esprimo tiam ordono;
Unue estas komputata la bulea_esprimo; se ĝi veras, la ordono estas plenumata; alie la stirfluo ĝin preterpasas.

En la malaltnivelaj lingvoj la sola formo de seo estas la unubranĉa, kaj ĝia komponanta ordono estas salta ordono.

 Dubranĉa seo 
En la Paskala pseŭdokodo:
  se bulea_esprimo tiam ordono1 alie ordono2;

Unue estas komputata la bulea_esprimo; se ĝi veras, la ordono1 estas plenumata; alie la stirfluo ĝin preterpasas kaj la  ordono2 estas plenumata. En ambaŭ okazoj, post la plenumo de la elektita branĉo la stirfluo transiras al la ordono kiu sekvas la seon.

Laŭbezone oni povas aranĝi kaskadon da seoj:

  se kondiĉo1 tiam ordono1
     alie se kondiĉo2 tiam ordono2
        ...
           alie se kondiĉon tiam ordonon
              alie ordonon+1;

Ĉar en Paskalo kaj aliaj similaj lingvoj la seoj malhavas malimplican finilon (ian end if aŭ fi de kelkaj programlingvoj), tial tia kaskado povas esti ambigua (se iu el la seoj estas unubranĉa, oni povus diversmaniere rilatigi postajn alie-branĉojn). Per kroma regulo oni difinas, ke ĉiu tia alie alartenas al la plej proksima seo samnivela.

 Plurkondiĉaj seoj 
La kaskadaj seoj sufiĉe oftas en la programoj, kaj en la lingvoj pli modernaj oni ĝeneraligis seojn por ebligi notacion pli mallongan kaj pli klaran. Ekz-e en Modula-2, esperantigita per la Paskalaj ŝlosilvortoj:

  se kondiĉo1 tiam ordono11; ordono12; ...
  alie se kondiĉo2 tiam ordono21; ordono22; ... 
  ...
  alie se kondiĉon tiam ordonon1; ordonon2; ... 
  alie ordono(n+1)1; ordono(n+1)2; ... 
  fino

En ĉi tia formo ĉiuj linioj, krom la unua kaj la lasta, povas foresti. La minimuma (unubranĉa) formo estas do

   se kondiĉo tiam ordono1; ordono2; ... fino 

 Vidu ankaŭ 
 Elekta ordono

Kategorio: Programadaj konstruoj
Kategorio:Stirfluo