Section author: Danielle J. Navarro and David R. Foxcroft

சமோவியில் தருக்க வெளிப்பாடுகள்

சாமோவியில் நிறைய தரவு மாற்றங்கள் நம்பியிருக்கும் ஒரு முக்கிய கருத்து ** தருக்க மதிப்பு ** இன் சிந்தனை. ஒரு தர்க்கரீதியான மதிப்பு என்பது ஏதாவது உண்மையா அல்லது பொய்யா என்பது பற்றிய ஒரு கூற்று. இது சாமோவியில் மிகவும் நேரடியான வழியில் செயல்படுத்தப்படுகிறது. இரண்டு தர்க்கரீதியான மதிப்புகள் உள்ளன, அதாவது `` உண்மை`` மற்றும் `` தவறு`. எளிமை இருந்தபோதிலும், தர்க்கரீதியான மதிப்புகள் மிகவும் பயனுள்ள விசயங்கள். அவை எவ்வாறு செயல்படுகின்றன என்பதைப் பார்ப்போம்.

கணித உண்மைகளை மதிப்பீடு செய்தல்

சார்ச் ஆர்வெல்லின் கிளாசிக் புத்தகத்தில் * 1984 * சர்வாதிகாரக் கட்சி பயன்படுத்திய கோசங்களில் ஒன்று “இரண்டு பிளச் இரண்டு ஐந்து சமம்”. சத்தியங்களின் மிக அடிப்படையானதைக் கூட திசைதிருப்ப முடிந்தால் மனித சுதந்திரத்தின் அரசியல் ஆதிக்கம் முழுமையடையும் என்ற எண்ணம். இது ஒரு திகிலூட்டும் சிந்தனை, குறிப்பாக கதாநாயகன் வின்ச்டன் ச்மித் இறுதியாக சித்திரவதையின் கீழ் உடைந்து முன்மொழிவுக்கு ஒப்புக்கொள்கிறார். "மனிதன் எல்லையற்ற இணக்கமானவன்", நூல் கூறுகிறது. இது மனிதர்களைப் பற்றி உண்மையல்ல என்று நான் உறுதியாக நம்புகிறேன் [#] _ இது நிச்சயமாக சாமோவிக்கு உண்மையல்ல. சமோவி எல்லையற்ற இணக்கமானவர் அல்ல, இது அடிப்படை கணிதத்தைப் பொறுத்தவரை, எது உண்மை மற்றும் உண்மை இல்லை என்ற தலைப்பில் உறுதியான கருத்துக்களைக் கொண்டுள்ளது. `` 2 + 2``, [#] _ கணக்கிட நான் கேட்டால், அது எப்போதும் அதே பதிலைக் கொடுக்கும், அது இரத்தக்களரி அல்ல 5!

நிச்சயமாக, இதுவரை சாமோவி கணக்கீடுகளைச் செய்கிறார். `` 2 + 2 = 4`` ஒரு உண்மையான அறிக்கை என்று வெளிப்படையாகக் கூற நான் அதைக் கேட்கவில்லை. சமோவி வெளிப்படையான தீர்ப்பை வழங்க விரும்பினால், நான் இதுபோன்ற ஒரு கட்டளையைப் பயன்படுத்தலாம்: `` 2 + 2 == 4``

நான் இங்கே செய்திருப்பது ** சமத்துவ ஆபரேட்டரைப் பயன்படுத்துங்கள் ** .

2 + 2 == 5

உங்களுக்கு என்ன கிடைக்கும்? இது உங்கள் புதிதாக கணக்கிடப்பட்ட மாறிக்கு விரிதாள் நெடுவரிசையில் `` தவறான`` மதிப்புகளின் முழு தொகுப்பாக இருக்க வேண்டும். பூயா! அனைவருக்கும் விடுதலை மற்றும் குதிரைவண்டி! அல்லது அப்படி ஏதாவது. எப்படியிருந்தாலும், `` 2 + 2 = 5`` போன்ற ஒரு அறிக்கையை வெளியிடுவதன் மூலம் இரண்டு பிளச் இரண்டு ஐந்து என்று நம்புவதற்கு * சமோவியை கட்டாயப்படுத்த முயற்சித்தால் என்ன நடக்கும் என்பதைப் பார்ப்பது மதிப்பு. நான் இதை வேறொரு நிரலில் செய்தால், `` r`` என்று சொல்லுங்கள், அது ஒரு பிழை செய்தியை வீசுகிறது. ஆனால் காத்திருங்கள், நீங்கள் இதை சாமோவியில் செய்தால், `` தவறான`` மதிப்புகளின் முழு தொகுப்பையும் பெறுவீர்கள். எனவே என்ன நடக்கிறது? சரி, சாமோவி மிகவும் புத்திசாலித்தனமாக இருப்பதாகத் தெரிகிறது, அது `` உண்மை`` அல்லது `` பொய்` `` 2 + 2 = 5``, நீங்கள் சரியானதைப் பயன்படுத்துகிறீர்களா என்பதைப் பொருட்படுத்தாமல் நீங்கள் சோதிக்கிறீர்கள் என்பதை உணர்கிறீர்கள் ** சமத்துவ ஆபரேட்டர் **, `` == ``, அல்லது சமமான அடையாளம் `` = ``.

தருக்க செயல்பாடுகள்

எனவே இப்போது தர்க்கரீதியான செயல்பாடுகளை வேலையில் கண்டோம். ஆனால் இதுவரை நாம் எளிமையான உதாரணத்தை மட்டுமே பார்த்தோம். தர்க்கரீதியான செயல்பாடுகளை மற்ற செயல்பாடுகள் மற்றும் செயல்பாடுகளுடன் இது போன்ற சிக்கலான வழியில் இணைக்க முடியும் என்பதைக் கண்டு நீங்கள் ஆச்சரியப்பட மாட்டீர்கள்:

3 * 3 + 4 * 4 == 5 * 5

அல்லது இது

SQRT(25) == 5

அது மட்டுமல்லாமல், அச்: எண்ரெஃப்: தாவல்-வதந்திகள் விளக்குகிறது, சில அடிப்படை கணிதக் கருத்துக்களுடன் நீங்கள் பயன்படுத்தக்கூடிய பல தர்க்கரீதியான ஆபரேட்டர்கள் உள்ளனர். இவை அனைத்தும் அழகான தன்வய விளக்கமளிக்கும் என்று நம்புகிறோம். எடுத்துக்காட்டாக, ** ஆபரேட்டரை விடக் குறைவானது `` <`` இடதுபுறத்தில் உள்ள எண் வலதுபுறத்தில் உள்ள எண்ணை விடக் குறைவாக இருக்கிறதா என்று சரிபார்க்கிறது. அது குறைவாக இருந்தால், சாமோவி `` உண்மை`` என்ற பதிலைத் தருகிறார், ஆனால் இரண்டு எண்களும் சமமாக இருந்தால், அல்லது வலதுபுறத்தில் ஒன்று பெரியதாக இருந்தால், சமோவி `` பொய்`` இன் பதிலைத் தருகிறார்.

Table 3 சில தருக்க ஆபரேட்டர்கள். தொழில்நுட்ப ரீதியாக நான் இந்த "பைனரி தொடர்புடைய ஆபரேட்டர்கள்" என்று அழைக்க வேண்டும், ஆனால் மிகவும் வெளிப்படையாக நான் விரும்பவில்லை. இது எனது நூல், எனவே யாரும் என்னை உருவாக்க முடியாது.

செயல்பாடு

ஆபரேட்டர்

எடுத்துக்காட்டு உள்ளீடு

பதில்

குறைவாக

`` <``

`` 2 <3``

`` உண்மை``

குறைவாக அல்லது சமமான

`` <= ``

`` 2 <= 2``

`` உண்மை``

விட பெரியது

``> ``

`` 2> 3``

`` தவறு``

விட பெரியது அல்லது சமம்

``> = ``

`` 2> = 2``

`` உண்மை``

சமமான

`` == ``

`` 2 == 3``

`` தவறு``

சமமாக இல்லை

``! = ``

`` 2! = 3``

`` உண்மை``

இதற்கு நேர்மாறாக, ** ஆபரேட்டர் `` <= `` ஐ விட குறைவாகவோ அல்லது சமமாகவோ அது சொல்வதைச் சரியாகச் செய்யும். இடது புறத்தின் எண்ணிக்கை வலது புறத்தில் உள்ள எண்ணை விட குறைவாகவோ அல்லது சமமாகவோ இருந்தால் அது `` உண்மை`` மதிப்பை வழங்குகிறது. இந்த கட்டத்தில் ** ஆபரேட்டரை விட பெரியது ``> `` மற்றும் ** ஆபரேட்டரை விட அதிகமாகவோ அல்லது சமமாகவோ என்ன இருக்கிறது என்பது தெளிவாகத் தெரிகிறது ``> = `` செய்யுங்கள்!

தர்க்கரீதியான ஆபரேட்டர்களின் பட்டியலில் அடுத்தது ** ** ஆபரேட்டருக்கு சமமானதல்ல ! = `` இது மற்றவர்களைப் போலவே, அது சொல்வதைச் செய்கிறது. இருபுறமும் உள்ள விசயங்கள் ஒருவருக்கொருவர் ஒத்ததாக இல்லாதபோது இது `` உண்மை மதிப்பை வழங்குகிறது. ஆகையால், `` 2 + 2`` * 5 * க்கு சமமானதல்ல என்பதால், புதிதாக கணக்கிடப்பட்ட மாறியின் மதிப்பாக `` உண்மை`` பெறுவோம். முயற்சி செய்து பாருங்கள்:

2 + 2 != 5

நாங்கள் இன்னும் முடிக்கவில்லை. மேலும் மூன்று தர்க்கரீதியான செயல்பாடுகள் உள்ளன, அவற்றைப் பற்றி பட்டியலிடப்பட்டுள்ளன: NUMREF: TAB-LOGICALS2. இவை ** அல்ல ** ஆபரேட்டர் ! ``, ** மற்றும் **-ஆபரேட்டர் `` மற்றும், மற்றும் ** அல்லது **-ஆபரேட்டர் `` அல்லது``. மற்ற தர்க்கரீதியான ஆபரேட்டர்களைப் போலவே, அவர்களின் நடத்தை அவர்களின் பெயர்களைக் கொடுக்கும் என்று நீங்கள் எதிர்பார்ப்பது அதிகமாகவோ அல்லது குறைவாகவோ உள்ளது. உதாரணமாக, “` 2 + 2 = 4 * அல்லது *` 2 + 2 = 5`” என்ற கூற்றை மதிப்பிடுமாறு நான் உங்களிடம் கேட்டால், அது உண்மை என்று நீங்கள் கூறுவீர்கள். இது ஒரு “ஒன்று-அல்லது” அறிக்கை என்பதால், நமக்குத் தேவையானது இரண்டு பகுதிகளில் ஒன்று உண்மையாக இருக்க வேண்டும். அதைத்தான் `` அல்லது` ஆபரேட்டர்: [#] _

(2 + 2 == 4) or (2 + 2 == 5)
Table 4 இன்னும் சில தருக்க ஆபரேட்டர்கள்.

செயல்பாடு

ஆபரேட்டர்

எடுத்துக்காட்டு உள்ளீடு

பதில்

இல்லை

NOT

NOT(1==1)

`` தவறு``

அல்லது

or

(1==1) or (2==3)

`` உண்மை``

மற்றும்

and

(1==1) and (2==3)

`` தவறு``

மறுபுறம், “2 + 2 = 4 * மற்றும் * 2 + 2 = 5” என்ற கூற்றை மதிப்பிடுமாறு நான் உங்களிடம் கேட்டால், அது தவறானது என்று நீங்கள் கூறுவீர்கள். இது ஒரு * மற்றும் * அறிக்கை என்பதால் இரண்டு பகுதிகளும் உண்மையாக இருக்க வேண்டும். அதைத்தான் `` மற்றும்`` ஆபரேட்டர் செய்கிறார்:

(2 + 2 == 4) and (2 + 2 == 5)

இறுதியாக, * அல்ல * ஆபரேட்டர் உள்ளது, இது ஆங்கிலத்தில் விவரிக்க எளிமையானது ஆனால் எரிச்சலூட்டும். “` 2 + 2 = 5`” என்ற எனது கூற்றை மதிப்பிடுவதற்கு நான் உங்களிடம் கேட்டால், எனது கூற்று உண்மை என்று நீங்கள் கூறுவீர்கள், ஏனென்றால் உண்மையில் எனது கூற்று “` 2 + 2 = 5 `தவறானது”. நான் சொல்வது சரிதான். இதை நாம் சாமோவியில் எழுதினால் இதைப் பயன்படுத்துகிறோம்:

NOT(2 + 2 == 5)

வேறு வார்த்தைகளில் கூறுவதானால், `` 2 + 2 == 5`` ஒரு `` தவறான`` அறிக்கை என்பதால், `` இல்லை (2 + 2 == 5) `` என்பது ஒரு `` உண்மை`` ஒன்று. அடிப்படையில், நாங்கள் உண்மையிலேயே செய்திருப்பது “பொய் அல்ல” என்பது “உண்மை” போன்றது என்று கூறுவது. வெளிப்படையாக, இது நிச வாழ்க்கையில் உண்மையில் சரியானதல்ல. ஆனால் சாமோவி மிகவும் கருப்பு அல்லது வெள்ளை உலகில் வாழ்கிறார். சாமோவிக்கு எல்லாம் `` உண்மை`` அல்லது `` பொய்``. சாம்பல் நிற நிழல்கள் அனுமதிக்கப்படவில்லை.

நிச்சயமாக, எங்கள் `` 2 + 2 = 5`` எடுத்துக்காட்டில், நாங்கள் உண்மையில் “இல்லை” ஆபரேட்டரைப் பயன்படுத்தத் தேவையில்லை `` இல்லை`` மற்றும் “சமம்” ஆபரேட்டர் `` == `` இரண்டு தனித்தனியாக ஆபரேட்டர்கள். ஆபரேட்டர் ``! = `` இதைப் போன்ற “சமமாக இல்லை” என்று நாம் இப்போது பயன்படுத்தலாம்:

2 + 2 != 5

உரைக்கு தருக்க செயல்பாட்டைப் பயன்படுத்துதல்

இந்த தர்க்கரீதியான ஆபரேட்டர்களை நீங்கள் உரைக்காகவும் தர்க்கரீதியான தரவுகளுக்கும் பயன்படுத்தலாம் என்பதையும் நான் சுருக்கமாக சுட்டிக்காட்ட விரும்புகிறேன். வெவ்வேறு செயல்பாடுகளை சமோவி எவ்வாறு விளக்குகிறார் என்பதைப் புரிந்துகொள்வதில் நாம் சற்று கவனமாக இருக்க வேண்டும். இந்த பிரிவில் ஆபரேட்டருக்கு சமமான `` == `` உரைக்கு எவ்வாறு பொருந்தும் என்பதைப் பற்றி பேசுவேன், ஏனெனில் இது மிக முக்கியமான ஒன்றாகும். வெளிப்படையாக, ஆபரேட்டருக்கு சமமானதல்ல `! = `` `` == `` என்பதற்கு சரியான எதிர் பதில்களைத் தருகிறது, எனவே நான் அதைப் பற்றி மறைமுகமாகப் பேசுகிறேன், ஆனால் `` இன் பயன்பாட்டைக் காட்டும் குறிப்பிட்ட கட்டளைகளை நான் கொடுக்க மாட்டேன் ! = ``.

சரி, அது எவ்வாறு செயல்படுகிறது என்பதைப் பார்ப்போம். ஒரு வகையில், இது மிகவும் எளிது. உதாரணமாக, `` பூனை`` என்ற சொல் `` நாய்`` என்ற வார்த்தையைப் போலவே இருந்தால் நான் சமோவியிடம் கேட்கலாம்:

"cat" == "dog"

இது மிகவும் வெளிப்படையானது, மேலும் சாமோவி கூட அதைக் கண்டுபிடிக்க முடியும் என்பதை அறிவது நல்லது. இதேபோல், ஒரு `` பூனை`` என்பது ஒரு `` பூனை`` என்பதை சமோவி அங்கீகரிக்கிறார்:

"cat" == "cat"

மீண்டும், அதுதான் நாங்கள் எதிர்பார்க்கிறோம். இருப்பினும், நீங்கள் நினைவில் கொள்ள வேண்டியது என்னவென்றால், இலக்கணம் மற்றும் இடைவெளி வரும்போது சமோவி சகிப்புத்தன்மையற்றவர் அல்ல. இரண்டு சரங்கள் எந்த வகையிலும் வேறுபடுகின்றன என்றால், பின்வருவனவற்றைப் போலவே அவை ஒருவருக்கொருவர் சமமாக இல்லை என்று சாமோவி கூறுவார்:

" cat" == "cat"
"cat" == "CAT"
"cat" == "c a t"

நீங்கள் மற்ற தருக்க ஆபரேட்டர்களையும் பயன்படுத்தலாம். உதாரணமாக, சாமோவி `` <`` மற்றும் ``> `` `` `` `` `` `` `` `` `` `` `` `` `` `ஆகியவற்றைப் பயன்படுத்த அனுமதிக்கிறார். வரிசைப்படுத்து. உண்மையில், இது அதை விட சற்று சிக்கலானது, ஆனால் ஒரு எளிய எடுத்துக்காட்டுடன் தொடங்குவோம்:

"cat" < "dog"

சாமோவியில், இந்த எடுத்துக்காட்டு `` உண்மை`` என்பதை மதிப்பீடு செய்கிறது. ஏனென்றால், `` பூனை`` அகர வரிசைப்படி `` நாய்`` க்கு முன்பே வந்துள்ளது, எனவே சமோவி அந்த அறிக்கையை உண்மை என்று தீர்ப்பளிக்கிறார். எவ்வாறாயினும், `` பூனை` `` ஆன்டீட்டர்`` க்கு முன் வந்ததா என்று எங்களிடம் சொல்ல சமோவியிடம் கேட்டால், அது வெளிப்பாட்டை `` பொய்`` என மதிப்பிடும். இதுவரை, மிகவும் நல்லது. ஆனால் அகராதி குறிப்பிடுவதை விட உரை தரவு சற்று சிக்கலானது. `` பூனை`` மற்றும் கேட்` பற்றி என்ன? இவற்றில் எது முதலில் வருகிறது? அதை முயற்சி செய்து கண்டுபிடிக்கவும்:

"CAT" < "cat"

இது உண்மையில் `` உண்மை`` மதிப்பிடுகிறது. வேறு வார்த்தைகளில் கூறுவதானால், பெரிய எழுத்துக்கள் சிறிய எழுத்துக்களுக்கு முன்பாக வருவதாக சமோவி கருதுகிறார். நியாயமானது. யாரும் அதைக் கண்டு ஆச்சரியப்பட வாய்ப்பில்லை. நீங்கள் ஆச்சரியப்படுவது என்னவென்றால், * அனைத்து * பெரிய எழுத்துக்களுக்கும் முன் * அனைத்து * பெரிய எழுத்துக்களுக்கும் முன்பே வருவதாக சமோவி கருதுகிறார். அதாவது, `` "ஆன்டீட்டர்" <"சீப்ரா" `` `` ஒரு உண்மையான அறிக்கை, மற்றும் பெரிய சமமான `` "ஆன்டீட்டர்" <"சீப்ரா" `` உண்மை, `` `` "ஆன்டீட்டர்" <"சீப்ரா" ``, பின்வரும் சாறு விளக்குகிறது. இதை முயற்சிக்கவும்:

"anteater" < "ZEBRA"

இது `` தவறு`` என மதிப்பிடுகிறது, இது சற்று எதிர்மறையானதாகத் தோன்றலாம். இதைக் கருத்தில் கொண்டு, சாமோவி செயலாக்கும் வரிசையில் உள்ள பல்வேறு உரை எழுத்துக்களை விரைவாகப் பார்க்க இது உதவக்கூடும்:

! " # $ % & ' ( ) * + , - . /  0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]  ^ _ `
a b c d e f g h i j k l m n o p q r s t u v w x y z } | {