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
[redakti | redakti fonton]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
[redakti | redakti fonton]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
[redakti | redakti fonton]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