अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

funcalc - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में funcalc चलाएं

यह कमांड funcalc है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


funcalc - फ़नटूल कैलकुलेटर (बाइनरी टेबल के लिए)

SYNOPSIS


फंकैल्क [-n] [-a argstr] [-e expr] [-f फ़ाइल] [-l लिंक] [-p ठेला] [ओनाम [कॉलम]]

विकल्प


-ए argstr # संकलित प्रोग्राम को पास करने के लिए उपयोगकर्ता तर्क
-ई एक्सप्र # funcalc अभिव्यक्ति
-f फ़ाइल # फ़ाइल जिसमें funcalc अभिव्यक्ति है
-l libs # libs लिंक कमांड में जोड़ने के लिए
-n # संकलन और निष्पादन के बजाय आउटपुट उत्पन्न कोड
-पी प्रोग # नामित प्रोग्राम उत्पन्न करें, कोई निष्पादन नहीं
-यू # मरें यदि कोई चर अघोषित है (स्वत: घोषित न करें)

वर्णन


फंकैल्क एक कैलकुलेटर प्रोग्राम है जो मनमाने भावों के निर्माण की अनुमति देता है,
एक Funtools तालिका में कॉलम पर संकलित, और निष्पादित (FITS बाइनरी टेबल या कच्ची घटना
फ़ाइल)। यह उपयोगकर्ता द्वारा आपूर्ति की गई अभिव्यक्ति को टेम्पलेट सी प्रोग्राम में एकीकृत करके काम करता है, फिर
कार्यक्रम का संकलन और निष्पादन। फंकैल्क एक्सप्रेशन सी स्टेटमेंट हैं, हालांकि कुछ
महत्वपूर्ण सरलीकरण (जैसे चरों की स्वचालित घोषणा) समर्थित हैं।

फंकैल्क अभिव्यक्तियों को तीन तरीकों से निर्दिष्ट किया जा सकता है: कमांड लाइन पर का उपयोग कर -e
[अभिव्यक्ति] का उपयोग कर फ़ाइल में स्विच करें -f [फ़ाइल] स्विच, या स्टड से (यदि न तो -e
-f निर्दिष्ट किया जाता है)। बेशक एक फ़ाइल जिसमें फंकैल्क भाव से पढ़ा जा सकता है
स्टडिन

का प्रत्येक आह्वान फंकैल्क के रूप में निर्दिष्ट करने के लिए एक इनपुट Funtools तालिका फ़ाइल की आवश्यकता है
पहली कमांड लाइन तर्क। आउटपुट Funtools तालिका फ़ाइल दूसरी वैकल्पिक है
तर्क। इसकी आवश्यकता केवल तभी होती है जब एक आउटपुट FITS फ़ाइल बनाई जा रही हो (अर्थात, ऐसे मामलों में जहाँ
la फंकैल्क अभिव्यक्ति केवल मूल्यों को प्रिंट करती है, किसी आउटपुट फ़ाइल की आवश्यकता नहीं है)। यदि इनपुट और आउटपुट
फ़ाइल दोनों निर्दिष्ट हैं, एक तीसरा वैकल्पिक तर्क कॉलम की सूची निर्दिष्ट कर सकता है
सक्रिय करें FunColumnActivate ())। ध्यान दें कि फंकैल्क निर्धारित करता है कि करना है या नहीं
आउटपुट की उपस्थिति या अनुपस्थिति के आधार पर आउटपुट फ़ाइल लिखने के लिए कोड उत्पन्न करें
फ़ाइल तर्क।

A फंकैल्क अभिव्यक्ति तालिका की प्रत्येक पंक्ति पर निष्पादित होती है और इसमें एक या अधिक C . होते हैं
कथन जो उस पंक्ति के स्तंभों पर कार्य करते हैं (संभवतः अस्थायी चरों का उपयोग करके)।
एक व्यंजक के भीतर, के एक स्तंभ का संदर्भ दिया जाता है वर्तमान सी संरचना का उपयोग कर पंक्ति
वाक्यविन्यास चालू[कॉलनाम]>, उदाहरण के लिए cur->x, cur->pha, आदि। स्थानीय अदिश चर को परिभाषित किया जा सकता है
अभिव्यक्ति की शुरुआत में सी घोषणाओं का उपयोग करना, अन्यथा उन्हें परिभाषित किया जा सकता है
स्वचालित रूप से फंकैल्क (दोहरे प्रकार का होना)। इस प्रकार, उदाहरण के लिए, कॉलम x . की अदला-बदली
और y तालिका में निम्नलिखित समकक्षों में से किसी एक का उपयोग करके किया जा सकता है फंकैल्क
भाव:

डबल अस्थायी;
अस्थायी = वक्र-> एक्स;
वक्र-> एक्स = वक्र-> वाई;
वक्र-> वाई = अस्थायी;

या:

अस्थायी = वक्र-> एक्स;
वक्र-> एक्स = वक्र-> वाई;
वक्र-> वाई = अस्थायी;

जब इस अभिव्यक्ति को कमांड का उपयोग करके निष्पादित किया जाता है जैसे:

funcalc -f स्वैप.एक्सपीआर itest.ev otest.ev

परिणामी फ़ाइल में x और y स्तंभों की अदला-बदली के मान होंगे।

डिफ़ॉल्ट रूप से, किसी कॉलम के लिए वेरिएबल का डेटा प्रकार डेटा प्रकार के समान होता है
फ़ाइल में संग्रहीत के रूप में कॉलम। इसे ":[dtype]" को पहले . में जोड़कर बदला जा सकता है
उस कॉलम के संदर्भ में। ऊपर के उदाहरण में, x और y को डबल्स के रूप में आउटपुट होने के लिए बाध्य करने के लिए,
स्पष्ट रूप से 'डी' प्रकार निर्दिष्ट करें:

अस्थायी = वक्र-> एक्स: डी;
वक्र-> एक्स = वक्र-> वाई: डी;
वक्र-> वाई = अस्थायी;

डेटा प्रकार विनिर्देशक TFORM का उपयोग करके स्तंभों को परिभाषित करने के लिए मानक FITS तालिका सिंटैक्स का पालन करते हैं:

· ए: ASCII वर्ण

· बी: अहस्ताक्षरित 8-बिट चार

· मैं: 16-बिट इंट . पर हस्ताक्षर किए

· यू: अहस्ताक्षरित 16-बिट इंट (मानक फिट नहीं)

· जे: 32-बिट इंट . पर हस्ताक्षर किए

· वी: अहस्ताक्षरित 32-बिट इंट (मानक फिट नहीं)

· ई: 32-बिट फ्लोट

· डी: 64-बिट फ्लोट

· एक्स: बिट्स (वर्णों की एक सरणी के रूप में माना जाता है)

ध्यान दें कि किसी स्तंभ के केवल पहले संदर्भ में स्पष्ट डेटा प्रकार होना चाहिए
विनिर्देशक

बेशक, कॉलम के डेटा प्रकार को सही ढंग से संभालना महत्वपूर्ण है। निम्न में से एक
त्रुटि का सबसे लगातार कारण फंकैल्क प्रोग्रामिंग गलत डेटा का निहित उपयोग है
अभिव्यक्ति में एक कॉलम के लिए टाइप करें। उदाहरण के लिए, गणना:

dx = (cur->x - cur->y)/(cur->x + cur->y);

आमतौर पर फ्लोटिंग पॉइंट अंकगणित का उपयोग करके प्रदर्शन करने की आवश्यकता होती है। ऐसे मामलों में जहां x और y
कॉलम पूर्णांक हैं, यह कॉलम को एक स्पष्ट का उपयोग करके डबल्स के रूप में पढ़कर किया जा सकता है
विशिष्टता टाइप करें:

dx = (cur->x:D - cur->y:D)/(cur->x + cur->y);

वैकल्पिक रूप से, यह अभिव्यक्ति में सी टाइप-कास्टिंग का उपयोग करके किया जा सकता है:

dx = ((डबल) cur->x - (डबल) cur->y)/((डबल) कर-> x + (डबल) कर-> y);

वर्तमान पंक्ति में स्तंभों तक पहुँचने के अलावा, इसका संदर्भ भी दिया जा सकता है
पिछला पंक्ति का उपयोग पिछला-[उपनाम]>, और को अगला पंक्ति का उपयोग अगला-[उपनाम]>. ध्यान दें कि
if पिछला-[colname]> में निर्दिष्ट है फंकैल्क अभिव्यक्ति, पहली पंक्ति नहीं है
संसाधित। अगर अगला-[colname]> में निर्दिष्ट है फंकैल्क अभिव्यक्ति, अंतिम पंक्ति
संसाधित नहीं है। इस तरह, पिछला और अगला हमेशा मान्य पंक्तियों को इंगित करने की गारंटी दी जाती है।
उदाहरण के लिए, वर्तमान x कॉलम और पिछले y कॉलम के मानों का प्रिंट आउट लेने के लिए,
c fprintf फ़ंक्शन का उपयोग a . में करें फंकैल्क अभिव्यक्ति:

fprintf(stdout, "%d%d\n", cur->x, prev->y);

उसी का उपयोग करके नए कॉलम निर्दिष्ट किए जा सकते हैं चालू[कॉलनाम]> कॉलम जोड़कर सिंटैक्स
प्रकार (और वैकल्पिक tlmin/tlmax/binsiz विनिर्देशक), कोलन द्वारा अलग किया गया। उदाहरण के लिए,
cur->avg:D डबल प्रकार के एक नए कॉलम को परिभाषित करेगा। प्रकार विनिर्देशक वही हैं
मौजूदा कॉलम के लिए नए डेटा प्रकार निर्दिष्ट करने के लिए ऊपर उपयोग किया गया।

उदाहरण के लिए, एक नया कॉलम बनाने और आउटपुट करने के लिए जो x और y का औसत मान है
कॉलम, एक नया "औसत" कॉलम परिभाषित किया जा सकता है:

वक्र->औसत:D = (cur->x + cur->y)/2.0

ध्यान दें कि अंतिम ';' एकल-पंक्ति अभिव्यक्तियों के लिए आवश्यक नहीं है।

जैसा कि FITS TFORM डेटा प्रकार विनिर्देश के साथ होता है, स्तंभ डेटा प्रकार विनिर्देशक को पहले किया जा सकता है
एक सरणी को परिभाषित करने के लिए एक संख्यात्मक गणना द्वारा, उदाहरण के लिए, "10I" का अर्थ है 10 छोटे इनट्स का वेक्टर, "2E"
का अर्थ है दो एकल सटीक फ़्लोट्स, आदि। एक नए कॉलम को केवल एक बार परिभाषित करने की आवश्यकता है a
फंकैल्क अभिव्यक्ति, जिसके बाद इसका उपयोग प्रकार को फिर से निर्दिष्ट किए बिना किया जा सकता है। इस
कॉलम सरणी के तत्वों का संदर्भ शामिल है:

cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;

'X' (बिट्स) डेटा प्रकार को आयाम के चार सरणी (numeric_count/8) के रूप में माना जाता है, अर्थात,
16X को 2-बाइट चार सरणी के रूप में संसाधित किया जाता है। प्रत्येक 8-बिट सरणी तत्व को अलग से एक्सेस किया जाता है:

वक्र-> स्टेट [0]: 16X = 1;
वक्र-> स्टेट [1] = 2;

यहां, एक 16-बिट कॉलम बनाया गया है जिसमें MSB को 1 पर सेट किया गया है और LSB को 2 पर सेट किया गया है।

डिफ़ॉल्ट रूप से, सभी संसाधित पंक्तियां निर्दिष्ट आउटपुट फ़ाइल में लिखी जाती हैं। यदि आप चाहते हैं
कुछ पंक्तियों को लिखना छोड़ें, बस अंत में C "जारी रखें" कथन निष्पादित करें
फंकैल्क अभिव्यक्ति, चूंकि पंक्ति का लेखन तुरंत बाद किया जाता है
अभिव्यक्ति निष्पादित की जाती है। उदाहरण के लिए, उन पंक्तियों को लिखना छोड़ना जिनका औसत समान है
वर्तमान एक्स मान:

cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;
अगर (वक्र-> औसत [0] == वक्र-> x)
जारी रखने के लिए;

यदि कोई आउटपुट फ़ाइल तर्क निर्दिष्ट नहीं है फंकैल्क कमांड लाइन, कोई आउटपुट फाइल नहीं है
खोला गया है और कोई पंक्तियाँ नहीं लिखी गई हैं। यह उन भावों में उपयोगी है जो केवल आउटपुट प्रिंट करते हैं
एक नई फ़ाइल बनाने के बजाय परिणाम:

fpv = (cur->av3:D-cur->av1:D)/(cur->av1+cur->av2:D+cur->av3);
fbv = cur->av2/(cur->av1+cur->av2+cur->av3);
fpu = ((double)cur->au3-cur->au1)/((double)cur->au1+cur->au2+cur->au3);
fbu = cur->au2/(double)(cur->au1+cur->au2+cur->au3);
fprintf(stdout, "%f\t%f\t%f\t%f\n", fpv, fbv, fpu, fbu);

उपरोक्त उदाहरण में, हम दोनों स्पष्ट प्रकार विनिर्देश ("एवी" कॉलम के लिए) और टाइप . दोनों का उपयोग करते हैं
कास्टिंग ("au" कॉलम के लिए) यह सुनिश्चित करने के लिए कि सभी ऑपरेशन डबल में किए जाते हैं
परिशुद्धता।

जब कोई आउटपुट फ़ाइल निर्दिष्ट की जाती है, तो चयनित इनपुट तालिका संसाधित होती है और आउटपुट पंक्तियाँ होती हैं
आउटपुट फ़ाइल में कॉपी किया जाता है। ध्यान दें कि आउटपुट फ़ाइल को "stdout" के रूप में निर्दिष्ट किया जा सकता है
आउटपुट पंक्तियों को मानक आउटपुट में लिखने का क्रम। यदि आउटपुट फ़ाइल तर्क है
पारित होने के बाद, एक वैकल्पिक तीसरा तर्क भी पारित किया जा सकता है ताकि निर्दिष्ट किया जा सके कि कौन से कॉलम को संसाधित करना है।

FITS बाइनरी तालिका में, कभी-कभी अन्य सभी FITS एक्सटेंशन की प्रतिलिपि बनाना वांछनीय होता है
आउटपुट फ़ाइल में भी। यह के नाम के आगे '+' चिन्ह लगाकर किया जा सकता है
इनपुट फ़ाइल नाम में एक्सटेंशन। देखो मजेदार संबंधित उदाहरण के लिए।

फंकैल्क टेम्पलेट सी प्रोग्राम में उपयोगकर्ता द्वारा निर्दिष्ट अभिव्यक्ति को एकीकृत करके काम करता है
tabcalc.c कहा जाता है। पूरा कार्यक्रम तब संकलित और निष्पादित किया जाता है। चर
घोषणाएं जो शुरू होती हैं फंकैल्क अभिव्यक्ति को स्थानीय घोषणा अनुभाग में रखा गया है
टेम्पलेट मुख्य कार्यक्रम का। अन्य सभी पंक्तियों को मुख्य कार्यक्रम के टेम्पलेट में रखा गया है
आंतरिक प्रसंस्करण पाश। प्रोग्राम जनरेशन के अन्य विवरण स्वचालित रूप से नियंत्रित किए जाते हैं। के लिये
उदाहरण के लिए, कॉलम स्पेसिफायर का विश्लेषण पंक्तियों को संसाधित करने के लिए C संरचना बनाने के लिए किया जाता है, जो है
पास किया FunColumnSelect () और में इस्तेमाल किया फ़नटेबलरोगेट (). यदि एक अज्ञात चर का उपयोग किया जाता है
अभिव्यक्ति में, जिसके परिणामस्वरूप एक संकलन त्रुटि होती है, प्रोग्राम निर्माण के बाद पुन: प्रयास किया जाता है
अज्ञात चर को डबल प्रकार के रूप में परिभाषित करना।

सामान्य रूप से, फंकैल्क अभिव्यक्ति कोड जोड़ा जाता है फंकैल्क पंक्ति प्रसंस्करण लूप। हो सकता
इस कोड को विशेष निर्देशों के अंदर रखकर प्रोग्राम के अन्य भागों में कोड जोड़ने के लिए
फार्म का:

[निर्देशक नाम]
... कोड यहाँ जाता है ...
समाप्त

निर्देश हैं:

· वैश्विक मुख्य दिनचर्या से पहले वैश्विक अंतरिक्ष में कोड और घोषणाएं जोड़ें।

· स्थानीय मुख्य में स्थानीय घोषणाओं के ठीक बाद घोषणाएँ (और कोड) जोड़ें

· से पहले मुख्य पंक्ति प्रसंस्करण लूप में प्रवेश करने से ठीक पहले कोड जोड़ें

· बाद मुख्य पंक्ति प्रसंस्करण लूप से बाहर निकलने के ठीक बाद कोड जोड़ें

इस प्रकार, निम्नलिखित फंकैल्क अभिव्यक्ति वैश्विक चर घोषित करेगी और सबरूटीन बनाएगी
मुख्य प्रसंस्करण लूप के ठीक पहले और बाद में कॉल करता है:

वैश्विक
डबल वी1, वी2;
डबल इनिट (शून्य);
डबल फिनिश (डबल वी);
समाप्त
से पहले
v1 = init ();
समाप्त
... प्रक्रिया पंक्तियों, v1 का उपयोग कर गणना के साथ ...
बाद
v2 = समाप्त करें (v1);
अगर (v2 <0.0) {
fprintf (stderr, "प्रसंस्करण विफल %g ->%g\n", v1, v2);
निकास; (1)
}
समाप्त

दिनचर्या जैसे इस में() और खत्म हो() उपरोक्त लिंकिंग के लिए जेनरेट किए गए प्रोग्राम को पास कर दिया गया है
का उपयोग -l [संपर्क निर्देशों ...] स्विच। इस स्विच द्वारा निर्दिष्ट स्ट्रिंग होगी
प्रोग्राम बनाने के लिए उपयोग की जाने वाली लिंक लाइन में जोड़ा गया (फनटूल लाइब्रेरी से पहले)। के लिये
उदाहरण, यह मानते हुए कि इस में() और खत्म हो() पुस्तकालय libmysubs.a में हैं
/opt/विशेष/lib निर्देशिका, उपयोग करें:

funcalc -l "-L/opt/special/lib -lmysubs" ...

उपयोगकर्ता तर्कों को एक स्ट्रिंग तर्क का उपयोग करके संकलित funcalc प्रोग्राम में पारित किया जा सकता है
"-एक स्विच। स्ट्रिंग में सभी उपयोगकर्ता तर्क शामिल होने चाहिए। उदाहरण के लिए, पास करने के लिए
पूर्णांक 1 और 2, उपयोग करें:

funcalc -a "1 2" ...

तर्कों को आंतरिक सरणी में संग्रहीत किया जाता है और एआरजीवी (एन) के माध्यम से स्ट्रिंग के रूप में उपयोग किया जाता है
मैक्रो। उदाहरण के लिए, निम्नलिखित अभिव्यक्ति पर विचार करें:

स्थानीय
इंट पीमिन, पीएमएक्स;
समाप्त

से पहले
पीमिन = अतोई (एआरजीवी(0));
पीएमएक्स = एटोई (एआरजीवी(1));
समाप्त

if((cur->pha>= pmin) && (cur->pha <= pmax))
fprintf(stderr, "%d %d %d\n", cur->x, cur->y, cur->pha);

यह व्यंजक उन सभी पंक्तियों के लिए x, y, और pha मानों को प्रिंट करेगा जिनमें pha मान है
दो उपयोगकर्ता-इनपुट मानों के बीच:

funcalc -a '1 12' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 8
512 512 5
512 512 5
512 512 8

funcalc -a '5 6' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 5
512 512 5

ध्यान दें कि यह सुनिश्चित करना उपयोगकर्ता की ज़िम्मेदारी है कि तर्कों की सही संख्या
पारित कर रहे हैं। यदि अनुरोधित तर्क सीमा से बाहर है तो ARGV(n) मैक्रो एक NULL लौटाता है
args की वास्तविक संख्या, आमतौर पर एक SEGV में परिणामित होती है यदि आँख बंद करके संसाधित किया जाता है। जाँच करने के लिए
तर्क गणना, एआरजीसी मैक्रो का उपयोग करें:

स्थानीय
लंबे अंतर बीज = 1;
दोहरी सीमा = 0.8;
समाप्त

से पहले
अगर (एआरजीसी> = 1) बीज = एटोल (एआरजीवी(0));
अगर (एआरजीसी> = 2) सीमा = परोक्ष (एआरजीवी(1));
srand48 (बीज);
समाप्त

अगर ( drand48() > सीमा ) जारी रखें;

मैक्रो WRITE_ROW का विस्तार होता है फ़नटेबलरोपुट () कॉल जो वर्तमान पंक्ति लिखता है। यह
पंक्ति को एक से अधिक बार लिखने के लिए उपयोग किया जा सकता है। इसके अलावा, मैक्रो एनआरओडब्ल्यू का विस्तार होता है
पंक्ति संख्या वर्तमान में संसाधित की जा रही है। इन दो मैक्रो का उपयोग निम्नलिखित में दिखाया गया है
उदाहरण:

if(cur->pha:I == cur->pi:I) जारी रखें;
ए = वक्र-> फा;
वक्र-> फा = वक्र-> पीआई;
वक्र-> पीआई = ए;
cur->AVG:E = (cur->pha+cur->pi)/2.0;
cur->NR:I = NROW;
अगर (एनआरओ <10) WRITE_ROW;

अगर -p [प्रोग] स्विच निर्दिष्ट है, अभिव्यक्ति निष्पादित नहीं है। बल्कि,
जनरेट किए गए निष्पादन योग्य को बाद में उपयोग के लिए निर्दिष्ट प्रोग्राम नाम के साथ सहेजा जाता है।

अगर -n स्विच निर्दिष्ट है, अभिव्यक्ति निष्पादित नहीं है। बल्कि, उत्पन्न कोड
स्टडआउट को लिखा गया है। यदि आप एक कंकाल फ़ाइल उत्पन्न करना चाहते हैं तो यह विशेष रूप से उपयोगी है
और अपना कोड जोड़ें, या यदि आपको संकलन त्रुटियों की जांच करने की आवश्यकता है। ध्यान दें कि टिप्पणी
आउटपुट की शुरुआत में उस पर प्रोग्राम बनाने के लिए आवश्यक कंपाइलर कमांड देता है
मंच। (कमांड के उपयोग के कारण एक प्लेटफॉर्म से दूसरे प्लेटफॉर्म पर बदल सकता है)
विभिन्न पुस्तकालय, संकलक स्विच, आदि)

जैसा कि पहले उल्लेख किया गया है, फंकैल्क एक अदिश चर को स्वचालित रूप से घोषित करेगा (जैसा कि a
डबल) यदि उस चर का उपयोग किया गया है लेकिन घोषित नहीं किया गया है। यह सुविधा लागू है
funcalc.sed नामक एक sed स्क्रिप्ट का उपयोग करते हुए, जो संकलक आउटपुट को संसाधित करता है an
अघोषित चर त्रुटि। इस स्क्रिप्ट को उपयुक्त त्रुटि के साथ सीड किया गया है
Solaris, DecAlpha, और SGI प्लेटफॉर्म पर gcc, और cc के लिए जानकारी। यदि आप पाते हैं कि
स्केलर्स की स्वचालित घोषणा आपके प्लेटफॉर्म पर काम नहीं कर रही है, इस सेड स्क्रिप्ट की जांच करें;
इसमें कुछ त्रुटि संदेशों को जोड़ना या संपादित करना आवश्यक हो सकता है जो इसे महसूस करते हैं।

का शाब्दिक विश्लेषण रखने के लिए फंकैल्क भाव (यथोचित) सरल, हमने चुना
सी टिप्पणियों, रिक्त स्थान और नई-पंक्तियों को कितनी सटीक रूप से रखा गया है, इस पर कुछ सीमाओं को स्वीकार करने के लिए
उत्पन्न कार्यक्रम में। विशेष रूप से, स्थानीय चर से संबंधित टिप्पणियों की घोषणा की गई
किसी व्यंजक के आरंभ में (अर्थात, a . में नहीं) स्थानीय...end ब्लॉक) आमतौर पर खत्म हो जाएगा
आंतरिक लूप में, स्थानीय घोषणाओं के साथ नहीं:

/* यह टिप्पणी गलत जगह पर समाप्त हो जाएगी (यानी, आंतरिक लूप) */
डबल एक; /* भी गलत जगह पर */
/* यह सही जगह पर होगा (इनर लूप) */
अगर (cur->x:D == cur->y:D) जारी रखें; /* भी सही जगह पर */
ए = वक्र-> एक्स;
वक्र-> एक्स = वक्र-> वाई;
वक्र-> वाई = ए;
cur->avg:E = (cur->x+cur->y)/2.0;

इसी तरह, रिक्त स्थान और नई-पंक्तियां कभी-कभी छोड़ी जाती हैं या प्रतीत होता है कि मनमाने ढंग से जोड़ दी जाती हैं
तौर - तरीका। बेशक, इनमें से कोई भी शैलीगत दोष इसकी शुद्धता को प्रभावित नहीं करता है
उत्पन्न कोड।

क्योंकि फंकैल्क पर पारित डेटा फ़ाइल (फ़ाइलों) का उपयोग करके उपयोगकर्ता अभिव्यक्ति का विश्लेषण करना चाहिए
कमांड लाइन, इनपुट फ़ाइल को दो बार खोला और पढ़ा जाना चाहिए: एक बार प्रोग्राम के दौरान
पीढ़ी और एक बार निष्पादन के दौरान। परिणामस्वरूप, के लिए स्टडिन का उपयोग करना संभव नहीं है
इनपुट फ़ाइल: फंकैल्क फिल्टर के रूप में इस्तेमाल नहीं किया जा सकता है। हम इस प्रतिबंध को हटाने पर विचार करेंगे
बाद में।

सी टिप्पणियों के साथ, फंकैल्क भावों में एक-पंक्ति की आंतरिक टिप्पणियाँ हो सकती हैं जो हैं
उत्पन्न सी कार्यक्रम को पारित नहीं किया गया। ये आंतरिक टिप्पणी से शुरू होती है #
चरित्र और नई-पंक्ति तक जारी रखें:

डबल एक; # यह जेनरेट की गई सी फाइल को पास नहीं किया जाता है
#न ही ये
ए = वक्र-> एक्स;
वक्र-> एक्स = वक्र-> वाई;
वक्र-> वाई = ए;
/* यह टिप्पणी सी फाइल को पास की जाती है */
cur->avg:E = (cur->x+cur->y)/2.0;

जैसा कि पहले उल्लेख किया गया है, इनपुट कॉलम सामान्य रूप से उनके द्वारा उपयोग किए जाने के द्वारा पहचाने जाते हैं
आंतरिक घटना पाश। ऐसे दुर्लभ मामले हैं जहां आप एक कॉलम पढ़ना चाहेंगे और
इसे मुख्य लूप के बाहर संसाधित करें। उदाहरण के लिए, qsort अपने क्रम में एक कॉलम का उपयोग कर सकता है
तुलना दिनचर्या जो आंतरिक लूप के अंदर संसाधित नहीं होती है (और इसलिए नहीं
पढ़ने के लिए कॉलम के रूप में स्पष्ट रूप से निर्दिष्ट)। यह सुनिश्चित करने के लिए कि इस तरह के एक कॉलम को पढ़ा जाता है
इवेंट लूप, का उपयोग करें स्पष्ट खोजशब्द। इस कीवर्ड के तर्क उन स्तंभों को निर्दिष्ट करते हैं जो
इनपुट रिकॉर्ड संरचना में पढ़ा जाना चाहिए, भले ही उनका उल्लेख नहीं किया गया हो
आंतरिक फंदे। उदाहरण के लिए:

स्पष्ट पाई pha

यह सुनिश्चित करेगा कि प्रत्येक पंक्ति के लिए pi और pha कॉलम पढ़े जाते हैं, भले ही वे न हों
आंतरिक घटना पाश में संसाधित। NS स्पष्ट बयान कहीं भी रखा जा सकता है।

अंत में, ध्यान दें कि फंकैल्क वर्तमान में FITS बाइनरी टेबल से जुड़े भावों पर काम करता है और
कच्ची घटना फ़ाइलें। हम बाद में छवि अभिव्यक्तियों के लिए समर्थन जोड़ने पर विचार करेंगे,
अगर समुदाय से इस तरह के समर्थन की मांग है।

onworks.net सेवाओं का उपयोग करके funcalc का ऑनलाइन उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

  • 1
    बड़ा घूँट
    बड़ा घूँट
    SWIG एक सॉफ्टवेयर डेवलपमेंट टूल है
    जो C और में लिखे गए प्रोग्राम को जोड़ता है
    सी ++ उच्च स्तर की एक किस्म के साथ
    प्रोग्रामिंग भाषा। एसडब्ल्यूआईजी के साथ प्रयोग किया जाता है
    को अलग...
    एसडब्ल्यूआईजी डाउनलोड करें
  • 2
    WooCommerce Nextjs रिएक्ट थीम
    WooCommerce Nextjs रिएक्ट थीम
    रिएक्ट WooCommerce थीम, के साथ बनाया गया
    अगला जेएस, वेबपैक, बैबेल, नोड, और
    एक्सप्रेस, ग्राफक्यूएल और अपोलो का उपयोग कर
    ग्राहक। प्रतिक्रिया में WooCommerce स्टोर (
    इसमें शामिल हैं: उत्पाद...
    WooCommerce Nextjs रिएक्ट थीम डाउनलोड करें
  • 3
    Archlabs_repo
    Archlabs_repo
    आर्कलैब्स के लिए पैकेज रेपो यह एक है
    आवेदन जो प्राप्त भी किया जा सकता है
    से
    https://sourceforge.net/projects/archlabs-repo/.
    इसे OnWorks में होस्ट किया गया है ...
    डाउनलोड करें
  • 4
    जेफिर परियोजना
    जेफिर परियोजना
    हलकी हवा परियोजना एक नई पीढ़ी है
    रीयल-टाइम ऑपरेटिंग सिस्टम (आरटीओएस)।
    कई हार्डवेयर का समर्थन करता है
    आर्किटेक्चर। यह एक पर आधारित है
    छोटे-पदचिह्न कर्नेल...
    ज़ेफायर प्रोजेक्ट डाउनलोड करें
  • 5
    स्कैन
    स्कैन
    स्कैन एक सॉफ्टवेयर निर्माण उपकरण है
    का बेहतर विकल्प है
    क्लासिक "मेक" बिल्ड टूल जो
    हम सब जानते हैं और प्यार करते हैं। स्कैन है
    एक लागू किया ...
    स्कैन डाउनलोड करें
  • 6
    पीएसईइंट
    पीएसईइंट
    PSeInt एक छद्म कोड दुभाषिया है
    स्पैनिश भाषी प्रोग्रामिंग छात्र।
    इसका मुख्य उद्देश्य एक उपकरण बनना है
    बुनियादी सीखना और समझना
    अवधारणा...
    पीएसईइंट डाउनलोड करें
  • अधिक "

लिनक्स कमांड

  • 1
    7z
    7z
    7z - उच्चतम फ़ाइल संग्रहकर्ता
    संक्षिप्तीकरण अनुपात ...
    7z चलाएं
  • 2
    7za
    7za
    7za - उच्चतम फ़ाइल संग्रहकर्ता
    संक्षिप्तीकरण अनुपात ...
    7za चलाएं
  • 3
    डरावना
    डरावना
    क्रीपी - एक भौगोलिक स्थान की जानकारी
    एग्रीगेटर विवरण: खौफनाक एक है
    आवेदन जो आपको इकट्ठा करने की अनुमति देता है
    जियोलोकेशन से संबंधित जानकारी
    उपयोगकर्ताओं से ...
    खौफनाक दौड़ो
  • 4
    क्रिकेट-संकलन
    क्रिकेट-संकलन
    क्रिकेट - प्रबंधन के लिए एक कार्यक्रम
    समय-श्रृंखला का संग्रह और प्रदर्शन
    आंकड़े ...
    क्रिकेट-संकलन चलाएँ
  • 5
    जी-रैप-कॉन्फ़िगरेशन
    जी-रैप-कॉन्फ़िगरेशन
    जी-रैप-विन्यास - प्राप्त करने के लिए स्क्रिप्ट
    स्थापित संस्करण के बारे में जानकारी
    जी-रैप की...
    जी-रैप-कॉन्फ़िगरेशन चलाएँ
  • 6
    g.accessघास
    g.accessघास
    g.access - तक पहुँच को नियंत्रित करता है
    अन्य उपयोगकर्ताओं के लिए वर्तमान मानचित्रसेट
    प्रणाली। यदि कोई विकल्प नहीं दिया गया है, तो प्रिंट करता है
    वर्तमान स्थिति। कीवर्ड: सामान्य, मानचित्र
    प्रबंधन, पी...
    जी.एक्सेसग्रास चलाएं
  • अधिक "

Ad