LABVIEW. ÍÅÕÈÒÐÛÅ ÇÀÄÀ×ÊÈ ÏÎ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÞ. ÓÃÀÄÀÉ ×ÈÑËÎ |
Íåìíîãî ðàçáàâëþ ïðîãóëêè è íîâîñòè èç æèçíè ñòîëèöû ïðèìåð÷èêîì èç îáëàñòè ïðîãðàììèðîâàíèÿ è àëãîðèòìèçàöèè. Äàâíåíüêî òóò íå áûëî íè÷åãî êîìïüþòåðíîãî. À ÷òî? ×åì áîãàòû, òåì è äåëèìñÿ.
Âî âðåìåíà, êîãäà ÿ áûë ñòóäåíòîì, â êóðñå ó÷åáíîé ïðàêòèêè íå âûäàâàëàñü òàêàÿ çàäà÷à êàê "Óãàäàé ÷èñëî" íà LabView. Êîãäà æå ÿ ïðèø¸ë ïðåïîäàâàòü, òî ìîé ïðåïîäàâàòåëü-êóðàòîð, ñ êîòîðûì ïåðâîå âðåìÿ èìåë óäîâîëüñòâèå ðàáîòàòü â ðàìêàõ ýòîé ñàìîé äèñöèïëèíû â ïàðå, çàäàë ñòóäåíòàì òàêóþ çàäà÷êó. Îäíó íà âñåõ, îáùóþ. Çàòåì, ïðè çàùèòå, îí çàäàâàë ïî íåé êó÷ó ìàòåìàòè÷åñêèõ âîïðîñîâ òèïà: "Ñìîæåòå ýòî äîêàçàòü?", " êàêîì äèàïàçîíå ðàáîòàåò äàò÷èê ñëó÷àéíûõ ÷èñåë?", "Ýòî çà÷åì?", "Ýòî êàê?", "Ïî÷åìó òóò ïëþñ åäèíèöà?", "Ïî÷åìó ìèíóñ åäèíèöà?", "Çà÷åì îêðóãëÿåì äî áîëüøåãî öåëîãî?" è äðóãèå. ß, â îáùåì-òî, íå ëþáëþ çàäàâàòü ñòóäåíòàì îäíè è òå æå âîïðîñû íà îäíîé ïàðå, èáî êòî-òî ïîäñëóøàåò, çàòåì ñîâåðøåííî áåçäóìíî îòâåòèò, à ïîçæå è âîâñå çàáóäåò. Òàê ïàðó ëåò ÿ ïðèíèìàë ýòî çàäàíèå, êîíå÷íî, êîãäà îíî ó âñåõ áûëî îáùèì, íî íà òðåòèé ãîä äëÿ ìåíÿ ñòàëî ýòî ñêó÷íûì - ðåøèë åãî íåìíîãî óñîâåðøåíñòâîâàòü. Äàëåå ïðåäñòàâëþ ðåçóëüòàò ðåøåíèÿ îäíîé èç çàäà÷, ñôîðìóëèðîâàííûõ â ðåçóëüòàòå ìîäèôèêàöèè.
Çâó÷èò îíà òàê: "Óãàäàé ÷èñëî è âûâåäè íà ãðàôèê âñå íåïðàâèëüíûå, ïîïóòíî âñòðåòèâøèåñÿ ïðè ïîèñêå, çíà÷åíèÿ".
Ýòà ïóáëèêàöèÿ ðàññ÷èòàíà íà òåõ, êòî ìàëî-ìàëüñêè çíàêîì ñ LabView è âëàäååò áàçîâûìè íàâûêàìè ïðîãðàììèðîâàíèÿ è àëãîðèòìèçàöèè. Âûïîëíåí ïðèìåð íà äîâîëüíî ñòàðîé âåðñèè LabView 6.1, íî ìíå ïðèõîäèòñÿ íå ñëåçàòü ñ íå¸, ïîñêîëüêó íà êàôåäðå è â âû÷èñëèòåëüíîì öåíòðå ÈÒÒÑÓ èìååòñÿ ëèöåíçèÿ òîëüêî íà ýòó âåðñèþ. Ñòóäåíòû êà÷àþò ñ òîððåíòîâ è áîëåå ïðîäâèíóòûå âåðñèè ýòîãî ïàêåòà ïðèêëàäíûõ ïðîãðàìì äëÿ ðàçðàáîòêè âèðòóàëüíûõ ïðèáîðîâ.
Îñíîâíûå ìîìåíòû àëãîðèòìà:
1. ×åðåç öèôðîâîé êîíòðîëëåð "Ââîäèìîå ÷èñëî" ïîëüçîâàòåëü ââîäèò çíà÷åíèå îò 1 äî ãðàíèöû, çàäàâàåìîé êîíñòàíòîé ìàñøòàáà.
2. Ýòî çíà÷åíèå íàïðàâëÿåòñÿ â ñòðóêòóðó (òåëî) öèêëà ñ ïðåäóñëîâèåì While, ãäå ñðàâíèâàåòñÿ ïî ëîãèêå "íå ðàâíî" ñ ïðåîáðàçîâàííîé ðåàëèçàöèåé ïñåâäîñëó÷àéíîãî ÷èñëà.
3. Íà êàæäîé èòåðàöèè öèêëà âûðàáàòûâàåòñÿ ïñåâäîñëó÷àéíîå ÷èñëî, êîòîðîå ìàñøòàáèðóåòñÿ ÷èñëåííîé êîíñòàíòîé (óìíîæàåòñÿ íà ÷èñëåííóþ êîíñòàíòó) äî íóæíîãî ïðåäåëà (â ïðèìåðå äî 1000). Òàê äèàïàçîí ïñåâäîñëó÷àéíûõ ÷èñåë ðàñøèðÿåòñÿ ñ 0-1 äî 0-1000.
4. Ïîëó÷åííîå çíà÷åíèå ïðîäîëæàåò ñîäåðæàòü "äåñÿòè÷íûé õâîñò", îò êîòîðîãî ñëåäóåò èçáàâèòüñÿ ïîñðåäñòâîì îêðóãëåíèÿ.  ïðèìåðå èñïîëüçîâàíî îêðóãëåíèå äî áëèæàéøåãî áîëüøåãî öåëîãî (+áåñêîíå÷íîñòü). Ðåàëüíî ìîãóò áûòü èñïîëüçîâàíû è äðóãèå îïåðàòîðû îêðóãëåíèÿ, íî íå õî÷åòñÿ âîçèòüñÿ ñ ìàòåìàòè÷åñêèì ïîðîãîì îêðóãëåíèÿ â 0,5. Íóæíî ïîíèìàòü, ÷òî ýòà îïåðàöèÿ ñìåùàåò äèàïàçîí ñ 0-1000 ê 1-1000. Íîëü, ïîäàííûé íà âõîä, àëãîðèòìîì íèêîãäà íå áóäåò îòãàäàí - ïðîãðàììà çàöèêëèòñÿ. Ýòî îäèí èç ìîìåíòîâ, êîòîðûé ìîæíî â ïðîãðàììêå óñîâåðøåíñòâîâàòü, íî ìíå, îïÿòü æå, ëåíü.
5. Öèêë While ðàáîòàåò äî òåõ ïîð, ïîêà ÷èñëî íà öèôðîâîì êîíòðîëëåðå íå ðàâíî ïðåîáðàçîâàííîé ðåàëèçàöèè ïñåâäîñëó÷àéíîãî ÷èñëà.
6. Èòåðàòîð (èëè ïàðàìåòð öèêëà i âûïîëíÿåò ðîëü àáñöèññû ãðàôèêà) èíäåêñèðóåòñÿ è ïåðåäà¸òñÿ íà ïåðâûå ÿ÷åéêè ýëåìåíòà-ñâÿçêè. Ïðè ýòîì åãî ôèíàëüíîå ñîñòîÿíèå âûâîäèòñÿ íà öèôðîâîé èíäèêàòîð "Êîëè÷åñòâî èòåðàöèé" è ñóììèðóåòñÿ ñ êîíñòàíòîé, ðàâíîé åäèíèöå, ñ öåëüþ ñìåùåíèÿ îò íóëÿ. LabView áåç äîïîëíèòåëüíûõ ïðåäóñòàíîâîê âñ¸ ñ÷èòàåò ñ íóëÿ.
7. Íà âòîðîé öèôðîâîé èíäèêàòîð âûâîäèòñÿ ïîñëåäíÿÿ ïðåîáðàçîâàííàÿ ðåàëèçàöèÿ ïñåâäîñëó÷àéíîãî ÷èñëà.
8. Íà êàæäîé èòåðàöèè, ïîñðåäñòâîì èíäåêñàöèè, ñíèìàåòñÿ ïðåîáðàçîâàííàÿ ðåàëèçàöèÿ ïñåâäîñëó÷àéíîãî ÷èñëà è ïîäà¸òñÿ íà âòîðûå ÿ÷åéêè ýëåìåíòà-ñâÿçêè.
9. Ýëåìåíò-ñâÿçêà ôîðìèðóåò èíäåêñèðîâàííûå òî÷êè (x;y), ïî êîòîðûì ìîæåò áûòü ïîñòðîåí ãðàôèê. x - èòåðàöèÿ, y - ïðåîáðàçîâàííàÿ ðåàëèçàöèÿ ïñåâäîñëó÷àéíîãî ÷èñëà.
Èçâèíèòå, åñëè ÷òî-òî îñòàëîñü çà ãðàíüþ âàøåãî ïîíèìàíèÿ. ß ñòàðàëñÿ íå äîïóñêàòü òåðìèíîëîãè÷åñêèõ îøèáîê, îòòîãî íåêîòîðûå ïðåäëîæåíèÿ ïîëó÷èëèñü âèòèåâàòûìè. Äàëåå îñíîâíûå ïðîáëåìíûå ìîìåíòû ïîïûòàëñÿ ñíÿòü â êàðòèíêàõ è êîììåíòàðèÿõ.
P.S. Ãîâîðÿ êîíòåêñòíîå ìåíþ, ÿ èìåþ â âèäó, ÷òî íà ýëåìåíò áûëî ïðîèçâåäåíî íàæàòèå ïðàâîé êíîïêîé ìûøè (ÏÊÌ), äàáû èçáàâèòü òåêñò îò ÷àñòîãî óïîìèíàíèÿ ÏÊÌ.
Âîçìîæíàÿ ðåàëèçàöèÿ èíòåðôåéñà âèðòóàëüíîãî ïðèáîðà "Óãàäàé ÷èñëî"
Äëÿ ñîçäàíèÿ èíòåðôåéñà ïîòðåáóåòñÿ îäèí öèôðîâîé êîíòðîëëåð (ââîä äàííûõ), ...
... äâà öèôðîâûõ èíäèêàòîðà (âûâîä ðåçóëüòàòîâ), ...
... îáëàñòü äëÿ âûâîäà ãðàôèêà (XY Graph)
Âîçìîæíàÿ áëîê-äèàãðàììà ïðîãðàììû "Óãàäàé ÷èñëî"
Äëÿ ñîçäàíèÿ áëîê-äèàãðàììû ïîíàäîáèòñÿ ñòðóêòóðà öèêëà ñ ïðåäóñëîâèåì While (ëîãèêà: "Ïîêà ýòî òàê - äåëàé"),
Ïðè âûâîäå çíà÷åíèé èç öèêëà ðåàëèçóåì èíäåêñèðîâàíèå, âûáèðàåì åãî â êîíòåêñòíîì ìåíþ òî÷êè âûõîäà öèêëà While...
... ìîæíî óáåäèòüñÿ, ÷òî â ñîñòîÿíèè èíäåêñèðîâàíèÿ â êîíòåêñòíîì ìåíþ ýòîò æå ïóíêò âûêëþ÷àåò èíäåêñèðîâàíèå
Ïîíàäîáèòñÿ äâå ÷èñëåííûõ êîíñòàíòû (ïî óìîë÷àíèþ îíè öåëûå), ...
... ãåíåðàòîð ïñåâäîñëó÷àéíûõ ÷èñåë, ðàâíîìåðíî ðàñïðåäåë¸ííûõ îò íóëÿ äî åäèíèöû, ...
... îïåðàòîð îêðóãëåíèÿ â áîëüøóþ ñòîðîíó (äî +áåñêîíå÷íîñòè), ...
... ýëåìåíò-ñâÿçêó (Bundle) èç ðàçäåëà êëàñòåðèçàöèè äëÿ îáúåäèíåíèÿ çíà÷åíèé â ìàññèâ òî÷åê, êîòîðûé ìîæíî âûâîäèòü íà ãðàôèê

Äëÿ óñòðàíåíèÿ ñîåäèíåíèé ìåæäó ñîñåäíèìè òî÷êàìè â êîíòåêñòíîì ìåíþ XY Graph ìîæíî âûáðàòü ôîðìàò íåçàâèñèìûõ òî÷åê

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