Wat ass den Ënnerscheed tëscht komplette Korrektheet a Partiell Korrektheet?


beäntweren 1:

Eng komplett Korrektheet Ausso ass och eng partiell Korrektheet Ausso. Deelweis Korrektheet ass méi schwaach well et déi zousätzlech Hëllef vu 'S terminates' brauch fir zum Schluss ze kommen: R gëllt am leschte Staat.

Fir eng partiell Korrektheet Spezifizéierung {Q} S {R} kënnt Dir déi folgend Informatioun kréien: Wann et e Startconditioun ass deen den Q entsprécht, ka S oder net ophalen. Wann S op en Enn geet, nodeems Dir S ausgefouert hutt, erreecht Dir e finalen Zoustand deen den R erfëllt. Wann net, ass R net benotzbar well et keen definitiven Zoustand ass.

Zum Beispill:

{x == 10} wärend (y! = 0): y = y - 1 x = 0 {x == 0}

Et ass eng partiell Genauegkeet Ausso. Wann y mat enger Nummer initialiséiert oder méi grouss ass wéi 0, gëtt S ofgeschloss an dann ass x 0. Wann y mat enger negativer Nummer ufänkt, gëtt S fir ëmmer widderholl, a well et net ophalen, kritt Dir net e Staat. 'no der Ausféierung vum S.'

Tatsächlech kann R alles sinn wann S en Doudeger ass. Zum Beispill fir all Q a R:

{Q} wärend (richteg): y = y - 1 {R}

ass ëmmer eng partiell Indikatioun fir d'Korrektheet.

Wann Q net staark genuch ass, kënnt Dir d'Benotzung vum S net garantéieren, loosst den Zoustand justifizéieren nodeems S duerchgefouert gouf. An dësem Fall kënnt Dir e Conditioun manuell derbäi ginn: S ofbitt. D'Argument ka mat Q weidergefouert ginn an et.

Fir déi voll Richtegkeet Spezifizéierung {Q} S {R}, Q ass staark genuch fir d'Annulatioun vun S ze garantéieren, sou datt Dir ofgeschloss ka ginn datt S ofgeschloss gëtt an de finalen Zoustand R zefridden ass.

Zum Beispill:

{x == 10} wärend (x! = 0): x = x - 1 {x == 0}

ass eng komplett Genauegkeet Ausso.

Iwwregens: Ech si net sécher ob d'Äntwert richteg ass, well d'Fro ass mat politescher Korrektheet gezeechent. Wärend déi Definitioun an der Fro d'selwecht ausgesäit wéi an der Informatik.