LABVIEW. ÈÑÏÎËÜÇÎÂÀÍÈÅ CASE-ÑÒÐÓÊÒÓÐÛ Â ËÎÃÈ×ÅÑÊÎÌ ÐÅÆÈÌÅ |
Êàê è áûëî çàÿâëåíî ðàíåå, äëÿ äåìîíñòðàöèè ðàáîòû CASE-ñòðóêòóðû îòêàæåìñÿ îò îïåðàíäîâ "Îïåðàíä 1" è "Îïåðàíä 2", ÷òîáû ñäåëàòü àêöåíò íà ëîãèêå ðàáîòû âèðòóàëüíîãî ïðèáîðà (ñì. ðèñóíîê).

Ïðèìåð çàãîòîâêè íà áëîê-äèàãðàììå ôðàãìåíòà "Óìíîãî êàëüêóëÿòîðà", íå òðåáóþùåãî ó÷àñòèÿ êàêèõ-ëèáî îïåðàíäîâ
Äëÿ âûâîäà íà ÷èñëîâîé èíäèêàòîð òîëüêî îäíîãî èç àäåêâàòíûõ îòâåòîâ ëèøü îäíà êíîïêà èç òð¸õ äîëæíà áûòü íàæàòà, à äðóãèå, ñîîòâåòñòâåííî, íå íàæàòû. Òî åñòü:
- ëèáî êíîïêà "Îäèí" íàæàòà, à êíîïêè "Äâà" è "Òðè" íå íàæàòû,
- ëèáî êíîïêà "Äâà" íàæàòà, à êíîïêè "Îäèí" è "Òðè" íå íàæàòû,
- ëèáî êíîïêà "Òðè" íàæàòà, à êíîïêè "Îäèí" è "Äâà" íå íàæàòû.
Ïîñòðîèì ñõåìó íà áëîê-äèàãðàììå â ñîîòâåòñòâèè ñî ñôîðìóëèðîâàííîé âûøå ëîãèêîé. Íà÷í¸ì ñ ïåðâîãî óñëîâèÿ: ñèãíàëû "Äâà" è "Òðè" ëîãè÷åñêè ïåðåìíîæàþòñÿ è èíâåðòèðóþòñÿ ôóíêöèåé îáúåäèí¸ííîé àðèôìåòèêè. Ïîëó÷åííûé ðåçóëüòàò ëîãè÷åñêè óìíîæàåòñÿ íà ñèãíàë "Îäèí" (ñì. ðèñóíîê).

Ñîñòàâëåíèå ëîãèêè äëÿ íàæàòîé êíîïêè "Îäèí" è íå íàæàòûõ êíîïîê "Äâà" è "Òðè"
Ïî àíàëîãèè ñòðîèòñÿ ñõåìà äëÿ âòîðîãî óñëîâèÿ: ñèãíàëû "Îäèí" è "Òðè" ëîãè÷åñêè ïåðåìíîæàþòñÿ è èíâåðòèðóþòñÿ ôóíêöèåé îáúåäèí¸ííîé àðèôìåòèêè. Ïîëó÷åííûé ðåçóëüòàò ëîãè÷åñêè óìíîæàåòñÿ íà ñèãíàë "Äâà" (ñì. ðèñóíîê).

Äîáàâëåíèå ëîãèêè äëÿ íàæàòîé êíîïêè "Äâà" è íå íàæàòûõ êíîïîê "Îäèí" è "Òðè"
Ñõåìà äîïîëíÿåòñÿ ó÷¸òîì òðåòüåãî óñëîâèÿ (ñì. ðèñóíîê).

Äîáàâëåíèå ëîãèêè äëÿ íàæàòîé êíîïêè "Òðè" è íå íàæàòûõ êíîïîê "Îäèí" è "Äâà"
Ðåøåíèå çàäà÷è êîíòðîëÿ íàæàòèÿ îäíîé åäèíñòâåííîé êíîïêè èç òð¸õ ïðè ñîñòàâëåíèè äàííîé ëîãè÷åñêîé öåïî÷êè - ýòî òîò ðåäêèé ñëó÷àé, êîãäà óìåñòíî ïðèìåíåíèå îïåðàöèè èñêëþ÷àþùåãî ÈËÈ ("XOR"). Ýòî òðóäíî ïðèíÿòü ñ ïåðâîãî ïðî÷òåíèÿ, ïîñêîëüêó ñàìî ïî ñåáå â ðàññóæäåíèÿõ íàïðàøèâàåòñÿ îáûêíîâåííîå ëîãè÷åñêîå ñëîæåíèå, íî ýòî íå òàê. Äëÿ äîêàçàòåëüñòâà ñîñòàâèì òàáëèöó èñòèííîñòè ïî ëîãè÷åñêîìó ñëîæåíèþ (Òàáëèöà 1) è òàáëèöó èñòèííîñòè äëÿ èñêëþ÷àþùåãî ÈËÈ (Òàáëèöà 2).
Òàáëèöà 1 – Èñòèííîñòü îáúåäèíåíèÿ òð¸õ îïåðàíäîâ ïî ëîãèêå ÈËÈ
| "Îäèí" | "Äâà" | "Òðè" | "OR" |
| false | false | false | false |
| false | false | true | true |
| false | true | false | true |
| false | true | true | true |
| true | false | false | true |
| true | false | true | true |
| true | true | false | true |
| true | true | true | true |
Òàáëèöà 2 – Èñòèííîñòü îáúåäèíåíèÿ òð¸õ îïåðàíäîâ ïî ëîãèêå èñêëþ÷àþùåãî ÈËÈ
| "Îäèí" | "Äâà" | "Òðè" | "XOR" |
| false | false | false | false |
| false | false | true | true |
| false | true | false | true |
| false | true | true | false |
| true | false | false | true |
| true | false | true | false |
| true | true | false | false |
| true | true | true | false |
Õîðîøî âèäíî, ÷òî îáúåäèíåíèå ïî ÈËÈ – ýòî íàëè÷èå èñòèíû â ÕÎÒß ÁÛ ÎÄÍÎÌ èç òð¸õ ñèãíàëîâ. Èíà÷å: åñëè õîòÿ áû îäèí ýëåìåíò èç ìíîæåñòâà îòâå÷àåò èñòèíîé, òî âñ¸ ëîãè÷åñêîå âûðàæåíèå îòâå÷àåò èñòèíîé. Òàêàÿ ëîãèêà äëÿ ðàáîòû ñ îäíîé åäèíñòâåííîé íàæàòîé êíîïêîé íå ïîäõîäèò. Ëîãèêà èñêëþ÷àþùåãî ÈËÈ óòâåðæäàåò ñëåäóþùåå: ÒÎËÜÊÎ ÎÄÈÍ èç ýëåìåíòîâ ìíîæåñòâà äîëæåí îòâåòèòü èñòèíîé, òîãäà è âñ¸ âûðàæåíèå îòâåòèò èñòèíîé.
Îáúåäèíåíèå ðàíåå ñôîðìóëèðîâàííûõ óñëîâèé ïî èñêëþ÷àþùåìó ÈËÈ ïîñðåäñòâîì èñïîëüçîâàíèÿ áëîêà îáúåäèí¸ííîé àðèôìåòèêè National Insruments LabView ïðåäñòàâëåíî íà ñëåäóþùåì ðèñóíêå. Âìåñòå ñ òåì äëÿ òåñòèðîâàíèÿ âèðòóàëüíîãî ïðèáîðà â áëîê èñòèííîãî ðåçóëüòàòà CASE-ñòðóêòóðû ïî èòîãàì ñîñòàâëåíèÿ ðàñ÷¸òíîé ñõåìû äëÿ âñåãî ëîãè÷åñêîãî âûðàæåíèÿ óñòàíàâëèâàåòñÿ êîíñòàíòà "ïëþñ áåñêîíå÷íîñòü".

Îáúåäèíåíèå óñëîâèé ïî èñêëþ÷àþùåìó ÈËÈ ("XOR"). Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ñõåìû: åñëè óñëîâèå âûïîëíÿåòñÿ – âûâîäèòñÿ "áåñêîíå÷íîñòü" ("Inf")
 áëîêå ëîæíîãî ðåçóëüòàòà CASE-ñòðóêòóðû (ñì. ñëåäóþùèé ðèñóíîê) äëÿ âñåãî ëîãè÷åñêîãî âûðàæåíèÿ âûñòàâëÿåòñÿ êîíñòàíòà "íå ÷èñëîâîãî çíà÷åíèÿ" ("NaN"). Äëÿ ñîçäàíèÿ êîíñòàíòû íå ÷èñëîâîãî çíà÷åíèÿ íà áëîê-äèàãðàììå ðàçìåùàåòñÿ îáûêíîâåííàÿ öåëî÷èñëåííàÿ êîíñòàíòà è â íåé âðó÷íóþ çàïèñûâàåòñÿ ñ êëàâèàòóðû "NaN" ïðè ñòðîãîì ó÷¸òå âåðõíåãî è íèæíåãî ðåãèñòðà ñèìâîëîâ (äâå çàãëàâíûõ "N" îáúåäèíÿþòñÿ ìåæäó ñîáîé ñòðî÷íîé "a").

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ñõåìû: åñëè óñëîâèå íå âûïîëíÿåòñÿ – âûâîäèòñÿ "íå ÷èñëîâîå çíà÷åíèå" ("NaN")
Ïîñëå íàñòðîéêè ñîäåðæèìîãî âñåõ áëîêîâ CASE-ñòðóêòóðû íà çàáóäüòå ñîåäèíèòü å¸ îáúåäèí¸ííûé âûõîä ñ ÷èñëåííûì èíäèêàòîðîì "Îòâåò", êàê ýòî ïîêàçàíî íà íèæåñëåäóþùåì ðèñóíêå. Ýòî äîâîëüíî ÷àñòàÿ îøèáêà, êîòîðàÿ ïðåïÿòñòâóåò çàïóñêó âèðòóàëüíîãî ïðèáîðà íà èñïîëíåíèå.

Ïåðåäà÷à ñôîðìèðîâàííîãî CASE-ñòðóêòóðîé ðåçóëüòàòà íà èíòåðôåéñíûé ýëåìåíò, âûâîäÿùèé îòâåò
Çàïóñê âèðòóàëüíîãî ïðèáîðà ïðè âñåõ íå íàæàòûõ êíîïêàõ äà¸ò â ðåçóëüòàòå íå ÷èñëîâîå çíà÷åíèå – ïðîèçîøëî ïîïàäàíèå â áëîê ëîæíîãî ðåçóëüòàòà. Ñîãëàñíî ñîñòàâëåííîé ðàíåå òàáëèöå èñòèííîñòè òàê è äîëæíî áûòü.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ëîãèêè: íè÷åãî íå íàæàòî – ðåçóëüòàò îòðèöàòåëüíûé
Çàïóñê âèðòóàëüíîãî ïðèáîðà ïðè âñåõ íàæàòûõ êíîïêàõ òîæå äà¸ò â ðåçóëüòàòå íå ÷èñëîâîå çíà÷åíèå â ñâÿçè ñ ïîïàäàíèåì â áëîê ëîæíîãî ðåçóëüòàòà CASE-ñòðóêòóðû ïî ðåçóëüòàòó âûïîëíåíèÿ îáúåäèí¸ííûõ ëîãè÷åñêèõ îïåðàöèé. Ñîãëàñíî ñîñòàâëåííîé ðàíåå òàáëèöå èñòèííîñòè, îïÿòü æå, òàê è äîëæíî áûòü.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ëîãèêè: íàæàòû âñå òðè êíîïêè ñðàçó – ðåçóëüòàò îòðèöàòåëüíûé
Çàïóñê ñ íàæàòûìè êíîïêàìè "Îäèí" è "Òðè" – øåñòàÿ ñòðî÷êà òàáëèöû èñòèííîñòè (íå ñ÷èòàÿ çàãîëîâêà).  îòâåòå ëîæíûé ðåçóëüòàò, íî òàê è äîëæíî áûòü.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ëîãèêè: íàæàòû ñðàçó äâå êíîïêè – ðåçóëüòàò îòðèöàòåëüíûé
Çàïóñê ñ íàæàòûìè êíîïêàìè "Îäèí" è "Äâà" – ñåäüìàÿ ñòðî÷êà òàáëèöû èñòèííîñòè (íå ñ÷èòàÿ çàãîëîâêà).  îòâåòå ëîæíûé ðåçóëüòàò. Àäåêâàòíî.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ëîãèêè: íàæàòû ñðàçó äâå äðóãèå êíîïêè – ðåçóëüòàò îòðèöàòåëüíûé
Íàêîíåö, âñòðå÷àåòñÿ òîëüêî "Îäèí" – ýòî ïÿòàÿ ñòðî÷êà òàáëèöû.  îòâåòå "ïëþñ áåñêîíå÷íîñòü" âìåñòî "íå ÷èñëîâîãî çíà÷åíèÿ" – ïîïàëè â áëîê èñòèííîãî ðåçóëüòàòà. Òîæå àäåêâàòíî.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ñîñòàâëåííîé ëîãèêè: íàæàòà òîëüêî îäíà êíîïêà – ðåçóëüòàò ïîëîæèòåëüíûé
Ïîñëå íåõèòðîãî òåñòèðîâàíèÿ ïðîäîëæèì ðàçâèòèå êîäà çàãîòîâêè âèðòóàëüíîãî ïðèáîðà "Óìíûé êàëüêóëÿòîð" â íàïðàâëåíèè æåëàåìîãî ðåçóëüòàòà.  áëîêå ëîæíîãî ðåçóëüòàòà êîíòðîëüíîé (âíåøíåé) CASE-ñòðóêòóðû îñòàâëÿåì êîíñòàíòó íå ÷èñëîâîãî çíà÷åíèÿ, à â áëîêå èñòèííîãî ðåçóëüòàòà ðàçìåùàåì åù¸ îäíó, âëîæåííóþ CASE-ñòðóêòóðó. Íà ëîãè÷åñêèé âõîä âëîæåííîé CASE-ñòðóêòóðû ïîäà¸ì âåòâü ëîãèêè, îòâå÷àþùåé çà íàæàòèå íà êíîïêó "Îäèí" è íå íàæàòèå íà êíîïêè "Äâà" è "Òðè". Èòîãî, åñëè íàæàòà êíîïêà "Îäèí", òî â áëîêå èñòèííîãî ðåçóëüòàòà äîëæíà çàðîæäàòüñÿ ÷èñëåííàÿ êîíñòàíòà, ðàâíàÿ "1". Íî åñëè "Îäèí" íå íàæàòà, òî îñòà¸òñÿ åù¸ äâà âîçìîæíûõ âàðèàíòà, êîòîðûå íåîáõîäèìî ïðîâåðèòü (ëèáî íàæàòà êíîïêà "Äâà", ëèáî íàæàòà êíîïêà "Òðè"). Ýòî åù¸ îäíà âëîæåííàÿ CASE-ñòðóêòóðà.

Ðàçâèòèå ñòðóêòóðû ïðîãðàììû: â ñëó÷àå, åñëè íàæàòà òîëüêî îäíà êíîïêà, è ýòà êíîïêà – "Îäèí", òî äîëæíî âûâîäèòüñÿ â êà÷åñòâå îòâåòà öåëî÷èñëåííîå çíà÷åíèå, ðàâíîå "1"
Íà ëîãè÷åñêèé âõîä íîâîé CASE-ñòðóêòóðû ïîäà¸ì ïðîâåðêó óñëîâèÿ íàæàòèÿ íà êíîïêó "Äâà". Åñëè, äåéñòâèòåëüíî, íàæàòà êíîïêà "Äâà", òî äîëæíà ãåíåðèðîâàòüñÿ êîíñòàíòà, ðàâíàÿ "2".

Ðàçâèòèå ñòðóêòóðû ïðîãðàììû: â ñëó÷àå, åñëè íàæàòà òîëüêî îäíà êíîïêà, è ýòà êíîïêà íå "Îäèí", à "Äâà" – äîëæíî âûâîäèòüñÿ â êà÷åñòâå îòâåòà öåëî÷èñëåííîå çíà÷åíèå, ðàâíîå "2"
Íî åñëè íå "Äâà", òî îñòà¸òñÿ îäèí åäèíñòâåííûé âàðèàíò, ÷òî íàæàòà êíîïêà "Òðè", ïîòîìó åãî äîïîëíèòåëüíîé CASE-ñòðóêòóðîé êîíòðîëèðîâàòü íå íóæíî, êîíñòàíòó ñî çíà÷åíèåì "3" ãåíåðèðóåò îñòàâøèéñÿ íåçàïîëíåííûì áëîê ëîæíîãî ðåçóëüòàòà. Íåîïûòíûå ïðîãðàììèñòû ìîãóò çàõîòåòü íàäñòðîèòü åù¸ îäíó CASE-ñòðóêòóðó ñ öåëüþ ïðîâåðêè óñëîâèÿ äëÿ âåòêè "Òðè" ïî àíàëîãèè. Ýòî íå áóäåò îøèáêîé, íî â ýòîì ñëó÷àå îñòàíåòñÿ ïóñòîé áëîê ëîæíîãî ðåçóëüòàòà, â êîòîðûé íèêîãäà, íè ïðè êàêèõ óñëîâèÿõ êóðñîð âèðòóàëüíîãî ïðèáîðà íå ïîïàä¸ò. Ýòî ñëó÷àé òàê íàçûâàåìîé êîäîâîé èçáûòî÷íîñòè, ñ êîòîðîé íåîáõîäèìî áîðîòüñÿ.

Ðàçâèòèå ñòðóêòóðû ïðîãðàììû: â ñëó÷àå, åñëè íàæàòà òîëüêî îäíà êíîïêà, è ýòà êíîïêà íå "Îäèí" è íå "Äâà", à çàêëþ÷èòåëüíûé âàðèàíò – íàæàòà êíîïêà "Òðè" è, ñîîòâåòñòâåííî, äîëæíî âûâîäèòüñÿ â êà÷åñòâå îòâåòà öåëî÷èñëåííîå çíà÷åíèå, ðàâíîå "3"
Íèæåñëåäóþùèå èëëþñòðàöèè äåìîíñòðèðóþò àäåêâàòíîñòü ðàáîòû ñîçäàííîãî ôðàãìåíòà âèðòóàëüíîãî ïðèáîðà "Óìíûé êàëüêóëÿòîð" ñ ó÷¸òîì ðàíåå ïðîâåäåííûõ òåñòîâ ïî çàùèòå îò îäíîâðåìåííîãî âûáîðà íåñêîëüêèõ îïåðàöèé.

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ïðîãðàììíîãî îáåñïå÷åíèÿ: íàæàòà êíîïêà "Îäèí" è â êà÷åñòâå îòâåòà âûäà¸òñÿ çíà÷åíèå, ðàâíîå "1"

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ïðîãðàììíîãî îáåñïå÷åíèÿ: íàæàòà êíîïêà "Äâà" è â êà÷åñòâå îòâåòà âûäà¸òñÿ çíà÷åíèå, ðàâíîå "2"

Ïðîâåðêà ðàáîòîñïîñîáíîñòè ïðîãðàììíîãî îáåñïå÷åíèÿ: íàæàòà êíîïêà "Òðè" è â êà÷åñòâå îòâåòà âûäà¸òñÿ çíà÷åíèå, ðàâíîå "3"
Ñåðèÿ ñîîáùåíèé "LabView":
×àñòü 1 - LABVIEW. ÍÅÕÈÒÐÛÅ ÇÀÄÀ×ÊÈ ÏÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÞ. ÓÃÀÄÀÉ ×ÈÑËÎ
×àñòü 2 - LABVIEW. ÎÇÍÀÊÎÌËÅÍÈÅ Ñ ÏÎËÜÇÎÂÀÒÅËÜÑÊÈÌ ÈÍÒÅÐÔÅÉÑÎÌ
...
×àñòü 11 - LABVIEW. ÈÑÏÎËÜÇÎÂÀÍÈÅ ÁËÎÊÀ ÎÁÚÅÄÈͨÍÍÎÉ ÀÐÈÔÌÅÒÈÊÈ
×àñòü 12 - LABVIEW. ÇÀÃÎÒÎÂÊÀ GUI È ÊÎÄÀ ÂÏ -ÓÌÍÛÉ ÊÀËÜÊÓËßÒÎÐ-
×àñòü 13 - LABVIEW. ÈÑÏÎËÜÇÎÂÀÍÈÅ CASE-ÑÒÐÓÊÒÓÐÛ Â ËÎÃÈ×ÅÑÊÎÌ ÐÅÆÈÌÅ
| Ðóáðèêè: | Ñîáûòèÿ Ïðîñüáû, ïðåäëîæåíèÿ è âîïðîñû ê Ï× Êîìïüòåðíîå ÀÓÈøíîå |
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |