विजुअल बेसिक में DIM का क्या अर्थ है?
विजुअल बेसिक में DIM का क्या अर्थ है?
जवाबों:
डिम मूल रूप से (बुनियादी रूप से) आयाम के लिए खड़ा था, क्योंकि इसका उपयोग एक सरणी के आयामों को परिभाषित करने के लिए किया गया था।
(BASIC का मूल कार्यान्वयन डार्टमाउथ BASIC था, जो FORTRAN से उतरा, जहाँ DIMENSION का जादू चला।)
आजकल, डिम का उपयोग किसी भी चर को परिभाषित करने के लिए किया जाता है, न कि केवल सरणियों के लिए, इसलिए इसका अर्थ अब सहज नहीं है।
Dim
इसके लिए विभिन्न अर्थों को जिम्मेदार ठहराया गया है।
मैंने "डिक्लेयर इन मेमोरी"Dim
अर्थ के बारे में संदर्भ पाया है , अधिक प्रासंगिक संदर्भ डिम स्टेटमेंट पर एक दस्तावेज़ है जो सीरेबेल वीबी भाषा संदर्भ के भाग के रूप में ओरेकल प्रकाशित किया गया है। बेशक, आप यह तर्क दे सकते हैं कि यदि आप चर को स्मृति में घोषित नहीं करते हैं तो आप कहां करते हैं? हो सकता है कि "मॉड्यूल में घोषणा" एक अच्छा विकल्प है जिसका उपयोग करने पर विचार किया जाता है।Dim
मेरी राय में, "डिक्लेयर इन मेमोरी" वास्तव में एक महामारी है , जिसका उपयोग करना सीखना आसान बनाने के लिए बनाया गया है Dim
। मैं "डिक्लेयर इन मेमोरी" को बेहतर अर्थ के रूप में देखता हूं क्योंकि यह वर्णन करता है कि यह भाषा के वर्तमान संस्करणों में क्या करता है, लेकिन यह उचित अर्थ नहीं है।
वास्तव में, बेसिक के मूल Dim
में केवल ऐरे को घोषित करने के लिए उपयोग किया जाता था। नियमित चर के लिए किसी भी प्रकार के कीवर्ड का उपयोग नहीं किया गया था, इसके बजाय उनके प्रकार को उनके नाम से अनुमान लगाया गया था। उदाहरण के लिए, यदि चर का नाम $
इसके साथ समाप्त होता है, तो यह एक स्ट्रिंग है (यह कुछ ऐसा है जिसे आप VB6 तक विधि नामों में भी देख सकते हैं, उदाहरण के लिए Mid$
)। और इसलिए, आपने Dim
केवल सरणियों को आयाम देने के लिए उपयोग किया था (नोटिस जो ReDim
सरणियों का आकार देता है)।
वास्तव में, क्या यह बात है ? मेरा मतलब है, यह एक ऐसा कीवर्ड है जिसका कृत्रिम भाषा के अंदर अर्थ है। यह अंग्रेजी या किसी अन्य प्राकृतिक भाषा में एक शब्द नहीं है। तो इसका मतलब यह हो सकता है कि आप जो चाहते हैं, वह सब मायने रखता है कि यह काम करता है।
किसी भी तरह, यह पूरी तरह से सच नहीं है। जैसा कि BASIC हमारी संस्कृति का हिस्सा है, और यह समझना कि ऐसा क्यों हुआ जैसा कि यह है - मुझे आशा है कि - दुनिया की हमारी दृष्टि को बेहतर बनाने में मदद करेगा।
मैं अपने कंप्यूटर से अपनी संस्कृति के इस छोटे से टुकड़े को संरक्षित करने में मदद करने की इच्छा के साथ बैठा हूं जो खो गया लगता है, हमारे अनुमान के द्वारा प्रतिस्थापित किया गया था कि क्या था। और इसलिए, मैंने 1998 संस्करण से वर्तमान और पुरानी सीडी दोनों को एमएसडीएन खोद लिया है। मैंने पुराने QBasic [DOSBox का उपयोग करने के लिए] डॉक्यूमेंटेशन को भी खोजा है और कुछ डार्थमाउथ मैनुअल प्राप्त करने में कामयाब रहा है, सभी यह पता लगाने के लिए कि वे कैसे बात करते हैं Dim
। मेरी निराशा के लिए, वे यह नहीं कहते कि क्या करना है Dim
, और केवल यह कहें कि इसका उपयोग कैसे किया जाता है।
लेकिन इससे पहले कि मेरी आशा मंद हो, मैं इस बीबीसी माइक्रो कंप्यूटर सिस्टम यूज्ड गाइड (जो 1984 से होने का दावा करता हूं, और मैं इस पर संदेह नहीं करना चाहता) को खोजने में कामयाब रहा । बीबीसी माइक्रो कंप्यूटर ने बेसिक के एक संस्करण का उपयोग किया जिसे बीबीसी बेसिक कहा जाता है और यह दस्तावेज़ में वर्णित है। हालांकि, यह नहीं कहता कि यह किस Dim
लिए खड़ा है, यह कहता है (पृष्ठ 104 पर):
... आप जितनी चाहे उतनी प्रविष्टियाँ करने के लिए N $ को आयाम दे सकते हैं। उदाहरण के लिए, डीआईएम एन $ (1000) 1000 विभिन्न नामों के लिए अंतरिक्ष के साथ एक स्ट्रिंग सरणी बनाएगा।
जैसा कि मैंने कहा, यह कहना है कि करता है Dim
आयाम के लिए खड़ा है, लेकिन पता चलता है कि जोड़ सबूत के रूप में कार्य करता है Dim
के साथ Dimension
है कि दस्तावेज़ लिखने के समय एक आम बात थी।
अब, मुझे बाद में (पृष्ठ 208 पर) एक पुरस्कृत आश्चर्य मिला, उस अनुभाग का शीर्षक जो डीआईएम कीवर्ड का वर्णन करता है (ध्यान दें: जो सामग्री में सूचीबद्ध नहीं है) कहते हैं:
किसी सरणी का DIM आयाम
इसलिए, मुझे "डिम स्टैंड्स फॉर ..." का उद्धरण नहीं मिला, लेकिन मुझे लगता है कि यह स्पष्ट है कि कोई भी सभ्य इंसान जो उन दस्तावेज़ों को पढ़ने में सक्षम है, वे उस Dim
आयाम का विचार करेंगे ।
नए सिरे से आशा के साथ, मैंने यह चुनने का फैसला किया कि कैसे Dim
चुना गया। फिर से, मुझे इस विषय पर एक खाता नहीं मिला, फिर भी मैं एक निश्चित उद्धरण खोजने में सक्षम था:
इससे पहले कि आप एक सरणी का उपयोग कर सकें, आपको इसे डीआईएम (आयाम) विवरण में परिभाषित करना होगा।
आप इसे बेसिक के सह-लेखक थॉमस यूजीन कुर्तज़ द्वारा स्थापित ट्रू बेसिक इंक के वेब पेज पर ट्रू बेसिक ऑनलाइन यूजर गाइड्स के हिस्से के रूप में पा सकते हैं ।
तो, वास्तव में, के Dim
लिए एक आशुलिपि है DIMENSION
, और हाँ। यह पहले से फोरट्रान में मौजूद था, इसलिए यह संभावना है कि इसे फोरट्रान के प्रभाव से उठाया गया था क्योंकि पैट्रिक मैकडॉनल्ड ने अपने जवाब में कहा था ।
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Dim
वास्तव में खड़ा है
यह आयाम के लिए छोटा है, क्योंकि मूल रूप से इसका उपयोग सरणियों के आकार को निर्दिष्ट करने के लिए BASIC में किया गया था।
डीआईएम - (आयाम के लिए छोटा) सरणियों के आकार को परिभाषित करता है
Ref: http://en.wikipedia.org/wiki/Dartmouth_BASIC
मूल BASIC संकलक स्रोत कोड का एक हिस्सा, जहां यह DIM
कमांड ढूंढते समय कूदता है , जिसमें आप कीवर्ड के लिए मूल इरादे को स्पष्ट रूप से देख सकते हैं:
DIM LDA XR01 BACK OFF OBJECT POINTER
SUB N3
STA RX01
LDA L 2 GET VARIABLE TO BE DIMENSIONED
STA 3
LDA S 3
CAB N36 CHECK FOR $ ARRAY
BRU *+7 NOT $
...
रेफरी: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf
बाद में इसे सभी प्रकार के चर घोषित करने के लिए इस्तेमाल किया जाने लगा, जब चर के प्रकार को निर्दिष्ट करने की संभावना को और अधिक कार्यान्वयन में जोड़ा गया।
यह आयाम के लिए खड़ा है, लेकिन आम तौर पर इसे "वैरिएबल बनाएं" या "इसके लिए आवंटित स्थान" के रूप में पढ़ा जाता है।
परिवर्तनीय घोषणा। प्रारंभ में, यह "आयाम" के लिए छोटा था, जो कि किसी भी महत्वपूर्ण डिग्री के लिए प्रोग्रामिंग (इस विशिष्ट कीवर्ड के बाहर) में उपयोग किया जाने वाला शब्द नहीं है।
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
दिन में वापस डीआईएम ने सरणी के लिए मेमोरी आरक्षित की और जब मेमोरी सीमित हो गई तो आपको सावधान रहना पड़ा कि आपने इसका उपयोग कैसे किया। मैंने एक बार (1981 में) 48Kb RAM के साथ TRS-80 मॉडल III पर एक बुनियादी कार्यक्रम लिखा था। यह 16Kb RAM के साथ एक समान मशीन पर नहीं चलेगा जब तक कि मैं DIM स्टेटमेंट को बदलकर सरणी का आकार कम नहीं कर देता
आयाम के लिए लघु। यह एक प्रकार का परिवर्तनशील है। आप घोषित करते हैं (या "बताओ" विज़ुअल बेसिक) कि आप इस शब्द के साथ एक चर सेट कर रहे हैं।
डिम कीवर्ड वैकल्पिक है, जब हम इसे संशोधक के साथ उपयोग कर रहे हैं- सार्वजनिक, संरक्षित, मित्र, संरक्षित मित्र, निजी, साझा, छाया, स्टेटिक, ReadOnly आदि जैसे - Static nTotal As Integer
संदर्भ प्रकार के लिए, हमें कक्षा या संरचना के नए उदाहरण बनाने के लिए नए कीवर्ड का उपयोग करना होगा। उदा Dim lblTop As New System.Windows.Forms.Label
।
जब आप ऑप्शन ऑन पर सेट करते हैं तो डायट स्टेटमेंट के साथ डिम स्टेटमेंट का उपयोग किया जा सकता है । उस स्थिति में कंपाइलर अपनी इनिशियलाइज़ेशन एक्सप्रेशन के प्रकार से एक वैरिएबल के डेटा टाइप को संक्रमित करता है। उदाहरण :
Option Infer On
Module SampleMod
Sub Main()
Dim nExpVar = 5
उपरोक्त कथन इसके समकक्ष है- Dim nExpVar As Integer