डेटा टाइप्स

प्रत्येक चर में एसपीएस स्वचालित रूप से सही डेटा प्रकार प्राप्त होता है। परिवर्तन को केवल इंटरफेस में सेट किया जाना चाहिए। इस अध्याय में Antcas Control के विभिन्न प्रकारों का वर्णन किया गया है।

बूलियन BOOL

इस प्रकार में केवल दो स्थितियाँ हो सकती हैं। सच या झूठा। अनुप्रयोग में, एक चर के बजाय, मान को TRUE (सच) या FALSE (झूठा) से परिभाषित किया जा सकता है।

इसके अलावा, विशेष प्रकार NULL का उपयोग किया जाता है। यह स्थिति एक चर के प्रारंभिककरण के दौरान, अर्थात् एक अनलिखित चर को सेट किया जाता है। इसके अतिरिक्त, NULL के साथ विशेष कार्यक्षमताएं संभव हैं। उदाहरण के लिए, जब कोई मान इंटरफेस पर संचारित नहीं किया जा सकता है।

पूर्णांक INT (Integer)

एक पूर्णांक एक पूर्ण संख्या है, जैसे कि 0 या 26. इसके अलावा, मान नकारात्मक भी हो सकता है। Antcas Control एक 64-बिट एसपीएस का उपयोग करता है, जो बहुत बड़े संख्याओं के गणना को संभव बनाता है। सबसे बड़ा संख्या INT_MAX (9223372036854775807) से परिभाषित किया गया है। सबसे छोटा संख्या INT_MIN या INT_MAX+1 में है, क्योंकि साइन एक बिट का उपयोग करता है। सभी संख्याएं जो रेंज के बाहर हैं, उन्हें एक फ्लोट के साथ एक घातांक लागू किया जाता है। गणना तो अनिश्चित होती है।

एक पूर्णांक को -0 मान प्राप्त हो सकता है, जो FALSE के बराबर नहीं होता है। हालांकि, EQ(-0,0) फंक्शन के साथ परीक्षण से TRUE परिणाम निकलता है। -0 केवल एक स्ट्रिंग के रूप में '-0' से परिभाषित किया जा सकता है।

एक हेक्स मान को सीधे परिभाषित भी किया जा सकता है। यह 0x या 0X से शुरू होता है। उदाहरण के लिए, 0xFF तो 255 हो जाता है।

फ्लोटिंग-पॉइंट नंबर REAL (Float)

एक फ्लोट या रियल मान एक डेसीमल संख्या है, जैसे कि 0.1 या 22.005 (डॉट के साथ)। घातांक भी समर्थित हैं। जैसे कि 10E2 के लिए 1'000 या 10e-2 के लिए 0.1। बड़े और छोटे अक्षरों का कोई मतलब नहीं है। संख्या को एक पूर्णांक में बदलने की कोशिश की जाती है, क्योंकि एसपीएस के लिए गणना आसान होती है। बड़ी संख्याओं के साथ गणनाएं अनिश्चित हो सकती हैं। दशमलव स्थानों की अधिकतम संख्या प्रदर्शन को बढ़ाने के लिए 14 पर स्थिर रखी गई है।

फ्लोटिंग-पॉइंट नंबरों का सीमित सटीकता होती है। हालांकि यह प्रणाली पर निर्भर करता है, Antcas Control आमतौर पर IEEE 754 डबल प्रिसिजन फॉर्मेट का उपयोग करता है, जो एक अधिकतम संबंधित राउंडिंग त्रुटि को 1.11e-16 के क्रम में देता है। गैर-प्राथमिक अंकगणितीय ऑपरेशन्स तो बड़े त्रुटियों का कारण बन सकते हैं और natürlich त्रुटि के प्रचार को ध्यान में रखना चाहिए, जब कई ऑपरेशन्स मिलाए जाते हैं।

इसके अलावा, ऐसे रेशनल नंबर होते हैं जो बेस 10 के रूप में फ्लोटिंग-पॉइंट नंबरों के रूप में सटीक रूप से प्रस्तुत किए जा सकते हैं, उदाहरण के लिए 0.1 या 0.7, जिनके लिए बेस 2 के रूप में फ्लोटिंग-पॉइंट नंबरों का कोई सटीक प्रतिनिधित्व नहीं है, जो आंतरिक रूप से मैनिसा के आकार के बावजूद उपयोग किया जाता है। इसलिए वे बिना किसी छोटी सटीकता की हानि के अपने आंतरिक द्विआधारी प्रतिनिधित्व में परिवर्तित नहीं किए जा सकते हैं। यह भ्रमित परिणामों का कारण बन सकता है: FLOOR((0.1+0.7)*10) आमतौर पर 7 देगा बजाय अपेक्षित परिणाम 8, क्योंकि आंतरिक प्रतिनिधित्व कुछ ऐसा है जैसे 7.9999999999999991118

इसलिए फ्लोटिंग-पॉइंट नंबरों पर कभी भी अंतिम दशमलव स्थान पर भरोसा नहीं करना चाहिए और फ्लोटिंग-पॉइंट नंबरों को कभी भी सीधे समानता के लिए जांचना नहीं चाहिए।

स्ट्रिंग STRING

एक स्ट्रिंग या स्ट्रिंग कहा जाता है, को एक सिंगल क्वोट ' ' या डबल क्वोट " " से परिभाषित किया जाता है। जैसे कि 'Text 1' या "Test!"। फंक्शन ब्लॉक CONCAT के साथ कई स्ट्रिंग्स को मिलाया जा सकता है।

एक लाइन फीड या नया पंक्ति CTRL+Enter से बनाई जा सकती है। यह तो एक तीर ↵ द्वारा प्रदर्शित किया जाता है।

एक एस्केप चर के लिए एक ' या " को स्ट्रिंग में स्वयं दर्शाने के लिए आवश्यक नहीं है। स्ट्रिंग को सीधे "Da ist ein " Zeichen" से दिया जा सकता है।

यह संभव है कि विशेष चर को सीधे घोषित किया जाए। इसके लिए स्ट्रिंग के भीतर डबल क्वोट्स का उपयोग करके निम्नलिखित अनुक्रम दिया जाता है:

Escape-Sequenz ASCII-Abkürzung
\\ Escaped \
\n LF
\r CR
\r\n CRLF
\0 NUL
\t TAB
\e ESC
\f FORMFEED
\x## Beliebiges Byte

उदाहरण के लिए, एक किसी भी बाइट 126 या 7E को हेक्स संख्या के रूप में घोषित करने के लिए, निम्न अभिव्यक्ति का उपयोग किया जाता है: "\x7E". यह स्ट्रिंग तो "~" के बराबर होती है।

यहाँ 7E एक प्लेसहोल्डर मान के रूप में कार्य करता है। सभी मान हेक्स मानों 00 से FF के भीतर दिए जा सकते हैं। ध्यान रखें कि UTF-8 BOM "\xEF\xBB\xBF" अधिकांश ब्राउज़र्स द्वारा स्वचालित रूप से हटा दिया जाता है। यह संभव है कि स्ट्रिंग को मास्क किया जाए। इसके लिए एक लीडिंग बैक्स्लैश का उपयोग किया जाता है: "\\x7E" तो '\x7E' के बराबर होता है।

सावधानी: UTF-8 रेंज के बाहर सभी स्ट्रिंग्स को स्थायी रूप से संग्रहीत नहीं किया जा सकता है। लाइव व्यू में इनको गहरे बैंगनी रंग में प्रदर्शित किया जाता है।

संख्याओं में स्ट्रिंग्स के रूपांतरण लेख का भी ध्यान रखें।

तिथि और समय DT (Date and Time)

DT# के साथ एक तिथि और समय को परिभाषित किया जाता है, उदाहरण के लिए DT#2016-03-25-22:12:00. समय को एक पूर्णांक में बदल दिया जाता है जो 01.01.1970 की तिथि से मिलीसेकंड में है (यह मान UTC/GMT टाइम ज़ोन में है)।

तिथि D (Date)

D# के साथ एक तिथि को मध्यरात्रि से परिभाषित किया जाता है, उदाहरण के लिए D#2016-03-25. समय को एक पूर्णांक में बदल दिया जाता है जो 01.01.1970 की तिथि से मिलीसेकंड में है (यह मान UTC/GMT टाइम ज़ोन में है)।

समय T (Time)

T# के साथ एक समय को मिलीसेकंड में परिभाषित किया जाता है, उदाहरण के लिए T#5d3h5m11s500ms. समय को एक पूर्णांक में बदल दिया जाता है जो मिलीसेकंड में है।

एरे

एक एरे को सीधे परिभाषित नहीं किया जा सकता है। हालांकि, एक चर के साथ एक बिंदु का उपयोग करके असाइनमेंट किए जा सकते हैं। देखें चर

बहुत महत्वपूर्ण: कभी भी एक एरे में नीचे की ओर कोई मान परिभाषित न करें। उदाहरण के लिए, set और set.p - एसपीएस तो यहाँ क्रैश हो जाएगा। और इसलिए चल नहीं पाएगा। इसके अलावा, यह अप्रत्याशित त्रुटियों का कारण बन सकता है।