National Digital Library of India

All book reading fans out there check this new initiative from HRD and IIT KGP. 6.5 million books are now available in one single portal, where you can read online, or download the books. There are text books, audio and video content. Just browsing them all may take years! Enjoy. National Digital Library is an initiative by HRD ministry. It is a huge collection of learning resources (68 lakh books) from primary to PG level. Students  can use it free of charge. 

To register, go to:
https://ndl.iitkgp.ac.in

This is an amazing resource . Make it a point to get yourself registered .

न्यायालय की पैन और आयकर रिटर्न दाखिल करने के लिये आधार अनिवार्य बनाने संबंधी कानून पर आंशिक रोक

उच्चतम न्यायालय ने पैन कार्ड के आबंटन और आयकर रिटर्न दाखिल करने के लिये आधार नंबर अनिवार्य करने संबंधी आयकर कानून के प्रावधानों के अमल पर आंशिक रोक लगा दी है।

हालांकि शीर्ष अदालत ने आयकर कानून की धारा 139एए की वैधता बरकरार रखते हुये कहा कि यह संविधान पीठ के समक्ष लंबित याचिकाओं के नतीजे के दायरे में आयेगा। संविधान पीठ विचार कर रहा है कि क्या आधार योजना से निजता के अधिकार का अतिक्रमण होता है और क्या इससे आंकडों के लीक होने का खतरा है।
न्यायमूर्ति ए के सिकरी और न्यायमूर्ति अशोक भूषण की पीठ ने कहा कि इस संबंध में कानून बनाने का संसद को अधिकार है। पीठ ने यह भी स्प्ष्ट किया कि उसने निजता के अधिकार और दूसरे पहलूओं पर गौर नहीं किया है कि आधार योजना मानवीय गरिमा को प्रभावित करती है। इन मुद्दों पर संविधान पीठ ही निर्णय करेगी।
न्यायालय ने सरकार को यह सुनिश्चित करने के लिये उचित कदम उठाने का निर्देश दिया कि आधार योजना के तहत एकत्र आंकडे लीक नहीं हो। न्यायालय ने कहा कि सरकार ऐसे उपाय करेगी जिससे नागरिकों को यह भरोसा हो कि इसके आंकडे लीक नहीं होंगे। पीठ ने यह भी स्पष्ट किया कि आयकर कानून के प्रावधानों और आधार कानून के बीच किसी प्रकार का टकराव नहीं है।
सरकार के कदम का विरोध करते हुए भाकपा नेता बिनॉय विश्वम समेत याचिकाकर्ताओं ने पीठ के समक्ष दावा किया था कि केंद्र शीर्ष अदालत के 2015 के उस आदेश का ‘महत्व नहीं घटा’ सकता जिसमें आधार को स्वैच्छिक बताया गया था।
गौरतलब है कि स्थाई खाता संख्या (पैन कार्ड) को आधार कार्ड नंबर से जोड़ने की एक नई सुविधा केंद्र सरकार ने मई में शुरू की थी। सरकार ने इनकम रिटर्न दाखिल करने के लिए पैन कार्ड नंबर के साथ-साथ आधार कार्ड नंबर भी अनिवार्य कर दिया है. यह एक जुलाई 2017 से प्रभावी होगा।

​टैक्स बचाने के लिए देते हैं मकान किराए की फर्जी रसीद, तो हो जाएं सावधान

क्या आप फर्जी हाउस रेंट स्लिप दिखाकर टैक्स बचाते है? यदि हां तो आपके लिए बुरी खबर है। अक्सर आप परिवार या रिश्तेदारों के जरिए फर्जी रेंट स्लिप दिखाकर एचआरए क्लेम कर लेते थे पर अब से ऐसा नहीं हो पाएगा क्योंकि इनकम टैक्स डिपार्टमेंट टैक्सपेयर से संबंधित प्रॉपर्टी के वैध किराएदार का सबूत मांग सकता है। यानी अब आयकर विभाग, आपने जहां की रेंट स्लिप दी है वहां आप वास्तव में किराए पर रहते हैं, इसका ठोस सबूत मांग सकता है।

आयकर अपीलेट ट्रिब्यूनल ने हाल ही में इसके बारे में एक नियम जारी किया है। इसके मुताबिक, असेसिंग ऑफिसर सैलरी पाने वाले कर्मचारी का क्लेम देखेगा और अगर जरूरी हुआ, तो वो इसका सबूत मांग सकता है।

इसमें किराए का एग्रीमेंट, हाउसिंग सोसाइटी का पत्र, बिजली या पानी का बिल हो सकता है। अभी तक 1 लाख से ऊपर किराया देने पर मकान मालिक का पैन नंबर रसीद में देना होता है। हाल ही में ट्रिब्यूनल मुंबई में ऐसे ही एक केस का पता चला, जिसमें एक कर्मचारी ने अपनी मां को किराया देना दिखाया था। सबूतों के अभाव में इसे सही नहीं माना गया।

एचआरए (हाउस रेंट अलाउंस) छूट के क्या हैं नियम?

दरअसल कोई भी सैलरी क्लास कर्मचारी रेंट रसीद देकर रेंट हाउस अलाउंस का 60 फीसदी तक टैक्स बचा सकता है। विस्तार में समझें तो आईटी एक्ट के सेक्शन 10(13ए) के तहत नौकरीपेशा लोग मकान किराए पर किराया भत्ते (एचआरए) या बेसिक सैलरी के 50 फीसदी (मेट्रो सिटी) या 40 फीसदी (दूसरे शहर) या फिर दिए गए किराए में बेसिक सैलरी का 10 फीसदी कम, इनमें जो भी सबसे कम हो, तक की छूट पा सकते हैं। अभी टैक्स बचाने के लिए केवल किराए की रसीद जमा करनी होती है। 1 लाख सालाना से ज्यादा अगर किराया हो तो मकान मालिक का पैन नंबर देना होता है।

ऐसे उठाते हैं फायदा

अब तक वेतनभोगी कर्मचारी, जिन्हें एचआरए मिलता है, वे किराए की रसीद देकर इससे 60 फीसद हिस्से पर टैक्स नहीं भरते। इस नियम से कई कर्मचारियों को दिक्कत हो सकती है। इस नियम के मुताबिक, अगर आप अपने माता-पिता के घर में रहने के लिए किराया देते हैं, तब भी आप एचआरए छूट का दावा कर सकते हैं। हालांकि, इसके लिए वह मकान आपके परिजनों के नाम पर ही होनी चाहिए और उन्हें इससे मिलने वाले किराए को अपनी आय में दिखाना होगा।

1.3 Operators in C++

Operators are symbols used for specific the action to be taken between the operands. C++ provides many operators for manipulating data.

Generally, there are six type of operators : Arithmetical operators, Relational operators,  Logical operators, Assignment operators, Conditional operators, Comma operator.

 

Arithmetical operators

Arithmetical operators +, -, *, /, and % are used to performs an arithmetic (numeric) operation. It is a Binary operator.

Operator Meaning
+ Addition
Subtraction
* Multiplication
/ Division
% Modulus

The operators +, -, *, and / gives both integral and floating-point type results but the Modulus or remainder % operator is gives only the integral type of result.

Relational operators

The relational operators are used to test the relation between two values. All relational operators are binary operators and therefore require two operands. A relational expression returns zero when the relation is false and a non-zero when it is true. The following table shows the relational operators. It is a Binary  Operator

Relational Operators Meaning
< Less than
<= Less than or equal to
== Equal to
> Greater than
>= Greater than or equal to
! = Not equal to

Logical operators

The logical operators are used to combine one or more relational expression. It is also a binary operator.

Operators Meaning
|| OR
&& AND
! NOT

 

Assignment operator

The assignment operator ‘=’ is used for assigning a variable to a value. This operator takes the expression on its right-hand-side and places it into the variable on its left-hand-side. For example:

m = 5;

It is also the binary operator.

 

Compound Assignment Operators

The compound assignment operators is the combination of two operators i.e. arithmetic operator and the assignment operator, thus perform these two task. It  is also the binary operator.

Operator Example Equivalent to
+ = A + = 2 A = A + 2
– = A – = 2 A = A – 2
% = A % = 2 A = A % 2
/= A/ = 2 A = A / 2
*= A * = 2 A = A * 2

Increment and Decrement Operators

C++ provides two special operators viz ‘++’ and ‘–‘ for incrementing and decrementing the value of a variable by 1. The increment/decrement operator can be used with any type of variable but it cannot be used with any constant. Increment and decrement operators each have two forms, pre and post. It is a unary operator.

The syntax of the increment operator is:
Pre-increment: ++variable
Post-increment: variable++
The syntax of the decrement operator is:
Pre-decrement: ––variable
Post-decrement: variable––

In Prefix form first variable is first incremented/decremented, then evaluated
In Postfix form first variable is first evaluated, then incremented/decremented

int x, y;
int i = 10, j = 10; 
x = ++i; //add one to i, store the result back in x
y = j++; //store the value of j to y then add one to j
cout << x; //11
cout << y; //10 

 

Conditional operator

The conditional operator ” ? : ” is called ternary operator as it requires three operands. The format of the conditional operator is:
Conditional_ expression ? expression1 : expression2;
If the value of conditional expression is true then the expression1 is evaluated, otherwise expression2 is evaluated.

int a = 5, b = 6;
big = (a > b) ? a : b;

The condition evaluates to false, therefore big gets the value from b and it becomes 6.

The comma operator

The comma operator gives left to right evaluation of expressions. When the set of expressions has to be evaluated for a value, only the rightmost expression is considered.

int a = 1, b = 2, c = 3, i; // comma acts as separator, not as an operator
i = (a, b); // stores b into i

Would first assign the value of a to i, and then assign value of b to variable i. So, at the end, variable i would contain the value 2.

The sizeof operator

As we know that different types of Variables, constant, etc. require different amounts of memory to store them The sizeof operator can be used to find how many bytes are required for an object to store in memory. For example

sizeof (char) returns 1
sizeof (float) returns 4

the sizeof operator determines the amount of memory required for an object at compile time rather than at run time.

 

The order of Precedence

The order in which the Arithmetic operators (+,-,*,/,%) are used in a. given expression is called the order of precedence. The following table shows the order of precedence.

Order Operators
First
Second
Third
()
*, /, %
+, –

The following table shows the precedence of operators.

++, –(post increment/decrement)  

Highest

To

 

Lowest

++ (Pre increment) — (Pre decrement), sizeof ( ), !(not), -(unary), +(unary)
*,/, %
+, –
<, <=, >, >=
==,!=
&&
? :
=
Comma operator

 

Unary operators

C++ provides two unary operators for which only one variable is required.

Binary operators

Operators that have two operands are called binary operators.

Ternary operators

Operators that have three operands are called ternary operators.

1.2 Basics of C++

The C++ supports a group of characters as listed below:-

  1. Digits-  0-9
  2. Alphabets-
    1.  Lower case letters a-z
    2.  Upper case letters A-Z
  3. Special characters-  +, -, *, /, !, @, #, $, %, &, ‘, <, >, ?, /, \, :, ; …
  4. White characters- blank space ,horizontal tab ,carriage return ,newline ,from feed

Tokens

A token is a group of characters that logically belong together. The programmer can write a program by using tokens. C++ uses the following types of tokens.
Keywords, Identifiers, Literals, Punctuators, Operators.

1. Keywords

There are some reserved words in C++ which have predefined meaning to compiler called keywords. These words may not be used as identifiers. Some commonly used Keywords are given below:

 

2. Identifiers

Symbolic names can be used in C++ for various data items used by a programmer in his program. A symbolic name is generally  known as an identifier. The identifier is a sequence of characters taken from C++ character set. The rule for the formation of an identifier are:

  • An identifier can consist of alphabets, digits and/or underscores.
  • It must not start with a digit
  • C++ is case sensitive that is upper case and lower case letters are considered different from each other.
  • It should not be a reserved word.

3. Literals

Literals (often referred to as constants) are data items that never change their value during the execution of the program. The following types of literals are available in C++.

  • Integer-Constants
  • Character-constants
  • Floating-constants
  • Strings-constants

Integer Constants

Integer constants are whole number without any fractional part. C++ allows three types of integer constants.
Decimal integer constants : It consists of sequence of digits and should not begin with 0 (zero). For example 124, – 179, +108.
Octal integer constants: It consists of sequence of digits starting with 0 (zero). For example. 014, 012.
Hexadecimal integer constant: It consists of sequence of digits preceded by ox or OX.

Character constants

A character constant in C++ must contain one or more characters and must be enclosed in single quotation marks. For example ‘A’, ‘9’, etc. C++ allows nongraphic characters which cannot be typed directly from keyboard, e.g., backspace, tab, carriage return etc. These characters can be represented by using an escape sequence. An escape sequence represents a single character.


Floating constants

They are also called real constants. They are numbers having fractional parts. They may be written in fractional form or exponent form. A real constant in fractional form consists of signed or unsigned digits including a decimal point between digits. For example 3.0, -17.0, -0.627 etc.

String Literals

A sequence of character enclosed within double quotes is called a string literal. String literal is by default (automatically) added with a special character ‘\0′ which denotes the end of the string. Therefore the size of the string is increased by one character. For example “COMPUTER” will re represented as “COMPUTER\0” in the memory and its size is 9 characters.

4. Punctuators

The following characters are used as punctuators in C++.

Brackets [   ] Opening and closing brackets indicate single and multidimensional array subscript.
Parentheses (   ) Opening and closing brackets indicate functions calls,; function parameters for grouping expressions etc.
Braces {   } Opening and closing braces indicate the start and end of a compound statement.
Comma , It is used as a separator in a function argument list.
Semicolon ; It is used as a statement terminator.
Colon : It indicates a labeled statement or conditional operator symbol.
Asterisk * It is used in pointer declaration or as multiplication operator.
Equal sign = It is used as an assignment operator.
Pound sign # It is used as pre-processor directive.

 

5. Operators

Operators are special symbols used for specific purposes. C++ provides six types of operators. Arithmetical operators, Relational operators,  Logical operators, Unary operators, Assignment operators, Conditional operators, Comma operator

1.1-Programming Languages

A programming language is a special language programmers use to develop software programs, scripts, or other sets of instructions for computers to execute.

Broadly the programming languages are classified into two ways

  1. Low level languages
  2. High Level Languages

1. Low Level Languages– A low-level language is a programming language that provides little or no abstraction of programming concepts, and is very close to writing actual machine instructions. Two examples of low-level languages are machine language and assembly language.

Machine Language: The machine language is the internal language of the computer system. It is a difficult programming language to handle by any humans. It is usually made up of a binary string of 0s and 1s that is understood by the machine to follow any instructions. In fact, we can say that the machine can only recognize these 0s and 1s and nothing else. So, it is a language of the lowest degree made for machines only. Programmers therefore prefers to use either a high-level programming language or an assembly language to deliver various instructions by translating it to machine understandable codes known as machine codes.

Assembly Language: Assembly language is a second generation programming language used in the computer systems. In assembly language, a programmer uses symbolic instructions instead of machine language instructions and descriptive names for data items and memory location. An assembly language program is written according to strict rules and then translated by an assembler into machine code. It is machine dependant language hence it is not portable. It has very less restrictions and also features high interaction between the operating system and the hardware thus enabling to write easy hardware dependent programs. The various symbolic notations used in the assembly language is called mnemonics.

2. High Level Languages– High-level programming languages allow the specification of a problem solution in terms closer to those used by human beings. They are English type of language which are easy to understand. These languages are not processed directly as they are not machine language by the system, needs translators to convert into machine language.

There are two types of translators compiler and interpreter which is used to convert high level language to machine language.

No Compiler Interpreter
1 Compiler Takes Entire program as input Interpreter Takes Single instruction as input .
2 Intermediate Object Code is Generated No Intermediate Object Code is Generated
3 Conditional Control Statements are Executes faster Conditional Control Statements are Executes slower
4 Memory Requirement : More (Since Object Code is Generated) Memory Requirement is Less
5 Program need not be compiled every time Every time higher level program is converted into lower level program
6 Errors are displayed after entire program is checked Errors are displayed for every instruction interpreted (if any)
7 Example : C Compiler Example : BASIC

Many high level languages have appeared and many have also disappeared!, among the most widely used have been:

COBOL Business applications
FORTRAN Engineering & Scientific Applications
PASCAL General use and as a teaching tool
C & C++ General Purpose – currently most popular
PROLOG Artificial Intelligence
JAVA General Purpose – gaining popularity rapidly