Arithmetical Instruction
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsuT4_5j7nrvoq7HZxrRDV9P1d6V2OMTMpQLQqs1ksa1f5uc2DTcWzV2j0D1h9NT2C_CXVGAJdMEobphzCG0aqIEuoVIAGsnD_Y14PMmui6UFX6MdYPh4-DrG6uD-0NzKzOw7lXkGmIU/w640-h480/Arithmetical+Instruction.jpg)
Arithmetical
Instruction
एक Arithmetical
Instruction में हमेंशा एक Assignment Operator का प्रयोग करके किसी Calculation से प्राप्त परिणाम
को किसी Variable में Store करना होता
है | Assignment Operator के Left Side में हमेंशा एक Variable ही हो सकता है , जबकि इसको Right Side में Calculation
में भाग लेने वाले Variable व Constants
का पूरा एक समूह हो सकता है |
किसी Assignment
Operator के Left Side में हम कभी भी किसी Constant
Identifier को Place नहीं कर सकते है |
यदि
हम ऐसा करते है , तो Compiler हमें “L
Value Required “ नाम का एक Error प्रदान करता
है | यानी
int x , y =10;
x = y+2;
यदि हम उपरोक्त Instruction
लिखते हैं , तो Program में किसी तरह का कोई Error
Generate नहीं होगा और y+z Expression से Generate
होने वाला Resultant मान यदि हम इसी Instruction
के मानों की Position को निम्नानुसार Exchange
कर दे , तो हमें “L Value Required “ का Error
Message प्राप्त होता है |
int x , y =10;
y+2 = x; //Error : LValue required
ये Error
हमें इसलिए प्राप्त होता है , क्योंकि Assignment Operator
(=) हमेंशा Right To Left Direction में Execute
होता है और बाद पुरे Expression के Execute
होने के बाद अपना काम अंतिम Operation के रूप
में करता है |
यानी जिस Expression
में Assignment Operator का , प्रयोग किया
जाता है , उस Expression में सबसे पहले Assignment
Operator के Right Side के सभी Operations
Perform होते है और इन Operations से जो Resultant
मान Generate होता है , Assignment
Operator उस मान को Expression के सबसे अंतिम Operation
के रूप में अपने Left Side में Place किए गए Variable में Store कर
देता है |
अब यदि किसी Expression
में Assignment Operator के Left Side में किसी Variable के स्थान पर कोई Constant हो तो Assignment Operator कभी भी किसी मान को
किसी Constant में Store
नहीं हो सकता है , जबकि Assignment Operator अपने
Left side Variable का मान Change करने
का ही काम करता है |
जब हम “C”
Program में Division की प्रक्रिया को Perform
करते है , तब प्राप्त होने वाले Result का
चिन्ह निम्नानुसार होता है |
-20 / 4 = - 5
20 / -4 = +5
यानी यदि हम किसी
Negative
Sign वाली संख्या में किसी Positive Sign वाली
संख्या का भाग देते है , तो Resultant
मान भी Negative ही प्राप्त होता है |
जबकि
यदि , हम किसी Positive Sign वाली संख्या में Negative
Sign की संख्या का भाग देते हैं , तो प्राप्त होने वाला मान भी Positive
Sign का होता है | सारांश
ये है कि किसी “C” Program में भाग की प्रक्रिया करने
पर Resultant मान का Sign Numerator या
अंश के Sign के समान होता है |
हम हमारी जरुरत
के आधार पर विभन्न Character
को Computer की Memory में
Store करते हैं |
लेकिन
Computer
में कोई भी मान Character के रूप में Store
नहीं होता है | हम
जितने भी Character किसी भी Character
Variable में Store करते हैं , वे सभी Character
Computer की Memory में Integers के रूप में ही Store होते है |
Computer में
विभन्न Character को Represent करने के
लिए एक Standard Code System Develop किया गया है |
इस
Code
System में हर Character को एक Integer
मान Assign किया गया है |
हम
जब भी किसी Character Identifier में किसी Character को Store
करते है , वह Character उस Integer मान से Replace हो जाता है , और Computer की Memory में उस Character को
Represent करने वाला Integer मान Store
हो जाता है |
ठीक इसी तरह से
जब उस Identifier में Stored Character को Display करना चाहते है , तब उस Character Identifier की Memory
Location पर Stored Integer Code फिर से Character
में Convert हो जाता है और हमें उस Character
से Associated Code के स्थान पर वही Character
दिखाई देता है | हर
Character
के साथ Associated Code को उस Character
का ASCII Code कहते है |
उदाहरण के लिए
यदि हम किसी Character प्रकार के Identifier में एक Character A Store करते हैं , तो वास्तव में Character
A Computer की Memory में Store नहीं होता है , बल्कि ये Character A इसकी ASCII
Code Value 65 से Replace हो जाता है और Identifier
की Memory Location पर ये ASCII मान 65 Store हो जाता है |
जब हम फिर से उस Character
को Access करना चाहते है , तब Computer इस ASCII Code 65 को Character A से Replace कर देता है और हमें Screen पर Character A दिखाई देता है ना कि ASCII
Code 65.
वास्तव में एक Character
प्रकार का Identifier एक छोटे Size के Integer मान को ही Computer की Memory में Store करता है |
इसलिए
यदि हम किसी Character Type के Identifier के मान को %c Control String
का प्रयोग करके Display करते है , तो
हमें उस Identifier में Stored हम %d
Control String का प्रयोग करके उस Identifier के
मान को Display करते है , तो हमें उस Character का ASCII – Code Screen पर Display होता है | इस
प्रक्रिया को हम निम्न Program द्वारा समझ सकते है
|
Program
#include <stdio.h>
#include <conio.h>
main()
{
char x = 'A';
printf("\n Character in the Identifier x is = %c ", x);
printf("\n ASCII Code of the Character %c is = %d ", x, x);
getch();
}
Output
Character in the Identifier x is = A
ASCII Code of the Character A is = 65
हालांकि हम Integer
व Float प्रकार के Identifier के साथ विभन्न प्रकार की Calculations करते है , लेकिन
हम किसी Character प्रकार के Identifier के साथ भी विभन्न प्रकार की प्रक्रियाएं कर सकते है |
अंतर
केवल इतना है , कि जब हम किसी किसी Character प्रकार के Identifier में किसी Character को Store करके उस पर किसी प्रकार की Calculation
को Apply करते है , तो वह Calculation
Character पर Perform नहीं होती है , बल्कि उस
Character प्रकार के Identifier में Stored
Character होती है | इस
पूरी प्रक्रिया को हम निम्न Program द्वारा समझ
सकते है :
Program
#include <stdio.h>
main()
{
char x = 'A', y = 'p';
printf("\n x - y = %c ", y - x);
printf("\n x += 37 = %c ", x += 37);
printf("\n (++y + 53)-(x += 12) = %c", (++y + 53)-(x += 12));
printf("\n x * 2 - 60 = %c", x * 2 - 60);
printf("\n y / 2 + 20 = %c", y / 2 + 20);
}
Output
x - y = /
x += 37 = f
(++y + 53)-(x += 12) = 4
x * 2 - 60 = ¿
y / 2 + 20 = L
हालांकि हम
विभन्न प्रकार के Mathematical Calculations को
एक Computer Program द्वारा Perform करते
हैं , लेकिन जिस तरह से हम Real Life के Mathematical
Expressions को लिखते है “C” Language में उस
तरह से लिए गए Expression Run नहीं होते हैं |
उदाहरण
के लिए Real
World Situation में निम्न Statement एक Valid
Statement है |
x=(p,n,y.3-2)
(1.3/m+33)
यदि इसी Expression
को हमें “C” Program में लिखना हो ,तो हमें हर
Symbol को Specify करना जरुरी होगा और
इस Statement को निम्नानुसार लिखना पडेगा
x = (p*n*y*3-2) *
(1*3/m+33)
No comments