Search Your Topic

config
Anish Sir

Anish Sir

"I am delighted once again to pen the welcome note to the Tosh!Yas Technologies ."

 Call +91 74 88 34 7779  | Email : anishsingh@live.com

Website URL: http://toshiyas.in
Wednesday, 13 September 2017 07:19

C - Operator Types

 

What is Operator? Simple answer can be given using expression 4 + 5 is equal to 9. Here 4 and 5 are called operands and + is called operator. C language supports following type of operators.

·         Arithmetic Operators
·         Logical (or Relational) Operators
·         Bitwise Operators·        
.         Assignment Operators
·         Misc Operators

Lets have a look on all operators one by one.

Arithmetic Operators:

There are following arithmetic operators supported by C language:

Assume variable A holds 10 and variable B holds 20 then:

Try following example to understand all the arithmatic operators. Copy and paste following C program in test.c file and compile and run this program.

#include<stdio.h>
#include<conio.h>
main()
{
   int a = 21;
   int b = 10;
   int c ;
   c = a + b;
   printf("Line 1 - Value of c is %d\n", c );
   c = a - b;
   printf("Line 2 - Value of c is %d\n", c )
;
   c = a * b;
   printf("Line 3 - Value of c is %d\n", c );
   c = a / b;
   printf("Line 4 - Value of c is %d\n", c );
   c = a % b;
   printf("Line 5 - Value of c is %d\n", c );
   c = a++;
   printf("Line 6 - Value of c is %d\n", c );
   c = a--;
   printf("Line 7 - Value of c is %d\n", c );
   getch();
}
This will produce following result
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 21
Line 7 - Value of c is 22
Operator
Description
Example
+
Adds two operands
A + B will give 30
-
Subtracts second operand from the first
A - B will give -10
*
Multiply both operands
A * B will give 200
/
Divide numerator by denumerator
B / A will give 2
%
Modulus Operator and remainder of after an integer division
B % A will give 0
++
Increment operator, increases integer value by one
A++ will give 11
--
Decrement operator, decreases integer value by one
A-- will give 9

Logical (or Relational) Operators:

There are following logical operators supported by C language

Assume variable A holds 10 and variable B holds 20 then:

Try following example to understand all the Logical operators. Copy and paste following C program in test.c file and compile and run this program.

#include<stdio.h>

#include<conio.h>

main()

{

   int a = 21;

   int b = 10;

   int c ;

   if( a == b )

   {

      printf("Line 1 - a is equal to b\n" );

   }

   else

   {

      printf("Line 1 - a is not equal to b\n" );

   }

   if ( a < b )

   {

      printf("Line 2 - a is less than b\n" );

   }

   else

   {

      printf("Line 2 - a is not less than b\n" );

   }

   if ( a > b )

   {

      printf("Line 3 - a is greater than b\n" );

   }

   else

   {

      printf("Line 3 - a is not greater than b\n" );

   }

   /* Lets change value of a and b */

   a = 5;

   b = 20;

   if ( a <= b )

   {

      printf("Line 4 - a is either less than or euqal to  b\n" );

   }

   if ( b >= a )

   {

      printf("Line 5 - b is either greater than  or equal to b\n" );

   }

   if ( a && b )

   {

      printf("Line 6 - Condition is true\n" );

   }

   if ( a || b )

   {

      printf("Line 7 - Condition is true\n" );

   }

   /* Again lets change the value of  a and b */

   a = 0;

   b = 10;

   if ( a && b )

   {

      printf("Line 8 - Condition is true\n" );

   }

   else

   {

      printf("Line 8 - Condition is not true\n" );

   }

   if ( !(a && b) )

   {

      printf("Line 9 - Condition is true\n" );

   }

}

This will produce following result

Line 1 - a is not equal to b

Line 2 - a is not less than b

Line 3 - a is greater than b

Line 4 - a is either less than or euqal to  b

Line 5 - b is either greater than  or equal to b

Line 6 - Condition is true

Line 7 - Condition is true

Line 8 - Condition is not true

Line 9 - Condition is true

Operator

Description

Example

==

Checks if the value of two operands is equal or not, if yes then condition becomes true.

(A == B) is not true.

!=

Checks if the value of two operands is equal or not, if values are not equal then condition becomes true.

(A != B) is true.

Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.

(A > B) is not true.

Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.

(A < B) is true.

>=

Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.

(A >= B) is not true.

<=

Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.

(A <= B) is true.

&&

Called Logical AND operator. If both the operands are non zero then then condition becomes true.

(A && B) is true.

||

Called Logical OR Operator. If any of the two operands is non zero then then condition becomes true.

(A || B) is true.

!

Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.

!(A && B) is false.

Bitwise Operators:

Bitwise operator works on bits and perform bit by bit operation.

Assume if A = 60; and B = 13; Now in binary format they will be as follows:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

 

A^B = 0011 0001

~A  = 1100 0011

Try following example to understand all the Bitwise operators. Copy and paste following C program in test.c file and compile and run this program.

#include<stdio.h>

#include<conio.h>

main()

{

   unsigned int a = 60;        /* 60 = 0011 1100 */ 

   unsigned int b = 13;        /* 13 = 0000 1101 */

   int c = 0;          

   c = a & b;       /* 12 = 0000 1100 */

   printf("Line 1 - Value of c is %d\n", c );

   c = a | b;       /* 61 = 0011 1101 */

   printf("Line 2 - Value of c is %d\n", c );

   c = a ^ b;       /* 49 = 0011 0001 */

   printf("Line 3 - Value of c is %d\n", c );

   c = ~a;          /*-61 = 1100 0011 */

   printf("Line 4 - Value of c is %d\n", c );

   c = a << 2;     /* 240 = 1111 0000 */

   printf("Line 5 - Value of c is %d\n", c );

   c = a >> 2;     /* 15 = 0000 1111 */

   printf("Line 6 - Value of c is %d\n", c );

}

This will produce following result

Line 1 - Value of c is 12

Line 2 - Value of c is 61

Line 3 - Value of c is 49

Line 4 - Value of c is -61

Line 5 - Value of c is 240

Line 6 - Value of c is 15

There are following Bitwise operators supported by C language

Operator

Description

Example

&

Binary AND Operator copies a bit to the result if it exists in both operands.

(A & B) will give 12 which is 0000 1100

|

Binary OR Operator copies a bit if it exists in eather operand.

(A | B) will give 61 which is 0011 1101

^

Binary XOR Operator copies the bit if it is set in one operand but not both.

(A ^ B) will give 49 which is 0011 0001

~

Binary Ones Complement Operator is unary and has the efect of 'flipping' bits.

(~A ) will give -60 which is 1100 0011

<< 

Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.

A << 2 will give 240 which is 1111 0000

>> 

Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.

A >> 2 will give 15 which is 0000 1111

Assignment Operators:

There are following assignment operators supported by C language:

Try following example to understand all the Assignment Operators. Copy and paste following C program in test.c file and compile and run this program.

#include<stdio.h>

#include<conio.h>

main()

{

   int a = 21;

   int c ;

   c =  a;

   printf("Line 1 - =  Operator Example, Value of c = %d\n", c );

   c +=  a;

   printf("Line 2 - += Operator Example, Value of c = %d\n", c );

   c -=  a;

   printf("Line 3 - -= Operator Example, Value of c = %d\n", c );

   c *=  a;

   printf("Line 4 - *= Operator Example, Value of c = %d\n", c );

   c /=  a;

   printf("Line 5 - /= Operator Example, Value of c = %d\n", c );

   c  = 200;

   c %=  a;

   printf("Line 6 - %= Operator Example, Value of c = %d\n", c );

   c <<=  2;

   printf("Line 7 - <<= Operator Example, Value of c = %d\n", c );

   c >>=  2;

   printf("Line 8 - >>= Operator Example, Value of c = %d\n", c );

   c &=  2;

   printf("Line 9 - &= Operator Example, Value of c = %d\n", c );

   c ^=  2;

   printf("Line 10 - ^= Operator Example, Value of c = %d\n", c );

   c |=  2;

   printf("Line 11 - |= Operator Example, Value of c = %d\n", c );

}

This will produce following result

Line 1 - =  Operator Example, Value of c = 21

Line 2 - += Operator Example, Value of c = 42

Line 3 - -= Operator Example, Value of c = 21

Line 4 - *= Operator Example, Value of c = 441

Line 5 - /= Operator Example, Value of c = 21

Line 6 - %= Operator Example, Value of c = 11

Line 7 - <<= Operator Example, Value of c = 44

Line 8 - >>= Operator Example, Value of c = 11

Line 9 - &= Operator Example, Value of c = 2

Line 10 - ^= Operator Example, Value of c = 0

Line 11 - |= Operator Example, Value of c = 2

Operator

Description

Example

=

Simple assignment operator, Assigns values from right side operands to left side operand

C = A + B will assigne value of A + B into C

+=

Add AND assignment operator, It adds right operand to the left operand and assign the result to left operand

C += A is equivalent to C = C + A

-=

Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operand

C -= A is equivalent to C = C - A

*=

Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operand

C *= A is equivalent to C = C * A

/=

Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand

C /= A is equivalent to C = C / A

%=

Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operand

C %= A is equivalent to C = C % A

<<=

Left shift AND assignment operator

C <<= 2 is same as C = C << 2

>>=

Right shift AND assignment operator

C >>= 2 is same as C = C >> 2

&=

Bitwise AND assignment operator

C &= 2 is same as C = C & 2

^=

bitwise exclusive OR and assignment operator

C ^= 2 is same as C = C ^ 2

|=

bitwise inclusive OR and assignment operator

C |= 2 is same as C = C | 2

Short Notes on L-VALUE and R-VALUE:

x = 1; takes the value on the right (e.g. 1) and puts it in the memory referenced by x. Here x and 1 are known as L-VALUES and R-VALUES respectively L-values can be on either side of the assignment operator where as R-values only appear on the right.

So x is an L-value because it can appear on the left as we've just seen, or on the right like this: y = x; However, constants like 1 are R-values because 1 could appear on the right, but 1 = x; is invalid.

Misc Operators

There are few other operators supported by C Language.

Try following example to understand all the Assignment Operators. Copy and paste following C program in test.c file and compile and run this program.

 

#include<stdio.h>

#include<conio.h>

main()

{

   int a = 21;

   int c ;

   c =  a;

   printf("Line 1 - =  Operator Example, Value of c = %d\n", c );

   c +=  a;

   printf("Line 2 - += Operator Example, Value of c = %d\n", c );

   c -=  a;

   printf("Line 3 - -= Operator Example, Value of c = %d\n", c );

   c *=  a;

   printf("Line 4 - *= Operator Example, Value of c = %d\n", c );

   c /=  a;

   printf("Line 5 - /= Operator Example, Value of c = %d\n", c );

   c  = 200;

   c %=  a;

   printf("Line 6 - %= Operator Example, Value of c = %d\n", c );

   c <<=  2;

   printf("Line 7 - <<= Operator Example, Value of c = %d\n", c );

   c >>=  2;

   printf("Line 8 - >>= Operator Example, Value of c = %d\n", c );

   c &=  2;

   printf("Line 9 - &= Operator Example, Value of c = %d\n", c );

   c ^=  2;

   printf("Line 10 - ^= Operator Example, Value of c = %d\n", c );

   c |=  2;

   printf("Line 11 - |= Operator Example, Value of c = %d\n", c );

}

This will produce following result

Line 1 - =  Operator Example, Value of c = 21

Line 2 - += Operator Example, Value of c = 42

Line 3 - -= Operator Example, Value of c = 21

Line 4 - *= Operator Example, Value of c = 441

Line 5 - /= Operator Example, Value of c = 21

Line 6 - %= Operator Example, Value of c = 11

Line 7 - <<= Operator Example, Value of c = 44

Line 8 - >>= Operator Example, Value of c = 11

Line 9 - &= Operator Example, Value of c = 2

Line 10 - ^= Operator Example, Value of c = 0

Line 11 - |= Operator Example, Value of c = 2

Operator

Description

Example

sizeof()

Returns the size of an variable.

sizeof(a), where a is interger, will return 4.

&

Returns the address of an variable.

&a; will give actaul address of the variable.

*

Pointer to a variable.

*a; will pointer to a variable.

? :

Conditional Expression

If Condition is true ? Then value X : Otherwise value Y

Operators Categories:

All the operators we have discussed above can be categorised into following categories:

·         Postfix operators, which follow a single operand.

·         Unary prefix operators, which precede a single operand.

·         Binary operators, which take two operands and perform a variety of arithmetic and logical operations.

·         The conditional operator (a ternary operator), which takes three operands and evaluates either the second or third expression, depending on the evaluation of the first expression.

·         Assignment operators, which assign a value to a variable.

·         The comma operator, which guarantees left-to-right evaluation of comma-separated expressions.

Precedence of C Operators:

Operator precedence determines the grouping of terms in an expression. This affects how an expression is evaluated. Certain operators have higher precedence than others; for example, the multiplication operator has higher precedence than the addition operator:

For example x = 7 + 3 * 2; Here x is assigned 13, not 20 because operator * has higher precedenace than + so it first get multiplied with 3*2 and then adds into 7.

Here operators with the highest precedence appear at the top of the table, those with the lowest appear at the bottom. Within an expression, higher precedenace operators will be evaluated first.

Category 

Operator 

Associativity 

Postfix 

() [] -> . ++ - -  

Left to right 

Unary 

+ - ! ~ ++ - - (type) * & sizeof 

Right to left 

Multiplicative  

* / % 

Left to right 

Additive  

+ - 

Left to right 

Shift  

<< >> 

Left to right 

Relational  

< <= > >= 

Left to right 

Equality  

== != 

Left to right 

Bitwise AND 

Left to right 

Bitwise XOR 

Left to right 

Bitwise OR 

Left to right 

Logical AND 

&& 

Left to right 

Logical OR 

|| 

Left to right 

Conditional 

?: 

Right to left 

Assignment 

= += -= *= /= %= >>= <<= &= ^= |= 

Right to left 

Comma 

Left to right 

Friday, 01 September 2017 07:50

Types of program translator

Assembler

An assembler translates assembly language into machine code. Assembly language consists of mnemonics for machine opcodes so assemblers perform a 1:1 translation from mnemonics to a direct instruction. For example:

LDA #4 converts to 0001001000100100

Conversely, one instruction in a high level language will translate to one or more instructions at machine level.

Advantages of using an Assembler:

plus pointVery fast in translating assembly language to machine code as 1 to 1 relationship
plus pointAssembly code is often very efficient (and therefore fast) because it is a low level language
plus pointAssembly code is fairly easy to understand due to the use of English-like mnemonics


Disadvantages of using Assembler:

minus point Assembly language is written for a certain instruction set and/or processor
minus point Assembly tends to be optimised for the hardware it's designed for, meaning it is often incompatible with different hardware
minus point Lots of assembly code is needed to do relatively simple tasks, and complex programs require lots of programming time

 

 

Compiler

Compiler is a computer program that translates code written in a high level language to a lower level language, object/machine code. The most common reason for translating source code is to create an executable program (converting from a high level language into machine language).

Advantages of using a compiler

plus pointSource code is not included, therefore compiled code is more secure than interpreted code
plus pointTends to produce faster code than interpreting source code
plus pointProduces an executable file, and therefore the program can be run without need of the source code


Disadvantages of using a compiler

minus point Object code needs to be produced before a final executable file, this can be a slow process

 

minus point The source code must be 100% correct for the executable file to be produced

Interpreter

An interpreter program executes other programs directly, running through program code and executing it line-by-line. As it analyses every line, an interpreter is slower than running compiled code but it can take less time to interpret program code than to compile and then run it — this is very useful when prototyping and testing code. Interpreters are written for multiple platforms, this means code written once can be run immediately on different systems without having to recompile for each. Examples of this include flash based web programs that will run on your PC, MAC, games console and Mobile phone.

Advantages of using an Interpreter

plus pointEasier to debug(check errors) than a compiler
plus pointEasier to create multi-platform code, as each different platform would have an interpreter to run the same code
plus pointUseful for prototyping software and testing basic program logic


Disadvantages of using an Interpreter

minus point Source code is required for the program to be executed, and this source code can be read making it insecure
minus point Interpreters are generally slower than compiled programs due to the per-line translation method
Friday, 01 September 2017 07:14

Generations of programming language

There are many types of programming languages out there and you might already have heard of a few of them, for example: C++, VB.NET, Java, Python, Assembly. We will now look at the history of how these languages came about and what they are still useful for. In all cases keep in mind that the only thing a computer will execute is machine code or object code when it has been converted from a language to run on a processor.

Generation First Second Third Fourth
Code example

10101010011000101
10011010100000010
11111111101000101

LDA 34
ADD #1
STO 34
x = x + 1
body.top { color : red;
           font-style : italic
}
Language (LOW) Machine Code (LOW) Assembly Code (HIGH) Visual Basic, C, python etc. (HIGH) SQL, CSS, Haskell etc.
Relation to Object Code
(generally)
-- one to one one to many one to many

First generation

 
The Colossus Mark 2 was the world's first electronic digital programmable computer. Operators had to write the machine code directly by setting switches.

The first generation program language is pure machine code, that is just ones and zeros, e.g.{\displaystyle 0010010010101111101010110}. Programmers have to design their code by hand then transfer it to a computer by using a punch card, punch tape or flicking switches. There is no need to translate the code and it will run straight away. This may sound rather archaic, but there are benefits:

plus pointCode can be fast and efficient
plus pointCode can make use of specific processor features such as special registers


And of course drawbacks

minus point Code cannot be ported to other systems and has to be rewritten

 

minus point Code is difficult to edit and update
 

Second generation programming

Second-generation programming languages are a way of describing Assembly code which you may have already met.

By using codes resembling English, programming becomes much easier. The usage of these mnemonic codes such as LDA for load and STA for store means the code is easier to read and write. To convert an assembly code program into object code to run on a computer requires an Assembler and each line of assembly can be replaced by the equivalent one line of object (machine) code:

Assembly Code   Object Code
LDA A
ADD #5
STA A
JMP #3

-> Assembler ->

000100110100
001000000101
001100110100
010000000011

Assembly code has similar benefits to writing in machine code, it is a one to one relationship after all. This means that assembly code is often used when writing low level fast code for specific hardware. Until recently machine code was used to program things such as mobile phones, but with the speed and performance of languages such as C being very close to Assembly, and with C's ability to talk to processor registers, Assembly's use is declining.

As you can hopefully see there are benefits to using Second-Generation Languages over First-Generation, plus a few other things that makes Assembly great:

plus pointCode can be fast and efficient
plus pointCode can make use of specific processor features such as special registers
plus pointAs it is closer to plain English, it is easier to read and write when compared to machine code


And of course drawbacks

 

minus point Code cannot be ported to other systems and has to be rewritten
 

Third generation (High Level Languages)

Even though Assembly code is easier to read than machine code, it is still not straight forward to perform loops and conditionals and writing large programs can be a slow process creating a mish-mash of goto statements and jumps. Third-generation programming languages brought many programmer-friendly features to code such as loops, conditionals, classes etc. This means that one line of third generation code can produce many lines of object (machine) code, saving a lot of time when writing programs.

Imperative languages - code is executed line by line, in a programmer defined sequence


Third generation (High Level Languages) codes are imperative. Imperative means that code is executed line by line, in sequence. For example:

1 dim x as integer
2 x = 3
3 dim y as integer
4 y = 5
5 x = x + y
6 console.writeline(x)

Would output: 8

Third generation languages can be platform independent, meaning that code written for one system will work on another. To convert a 3rd generation program into object code requires a Compiler or an Interpreter.

To summarise:

plus pointHardware independence, can be easily ported to other systems and processors
plus pointTime saving programmer friendly, one line of 3rd gen is the equivalent of many lines of 1st and 2nd gen


However

minus point Code produced might not make the best use of processor specific features unlike 1st and 2nd gen

 

Extension: Programming Paradigms

There are several types of Third-generation languages that you will cover in more detail at A2. They include:

  • Object Orientated
  • Event driven

Fourth generation

Fourth-generation languages are designed to reduce programming effort and the time it takes to develop software, resulting in a reduction in the cost of software development. They are not always successful in this task, sometimes resulting in inelegant and hard to maintain code. Languages have been designed with a specific purpose in mind and this might include languages to query databases (SQL), languages to make reports (Oracle Reports) and languages to construct user interface (XUL). An example of 4th generation programming type is the declarative language.

--an example of a Structured Query Language (SQL) to select criminal details from a database
SELECT name, height, DoB FROM criminals WHERE numScars = 7;

Declarative languages - describe what computation should be performed and not how to perform it. Not imperative!

 

An example of a declarative language is CSS which you might learn more about when completing any web design unit

 

/*code to change the headings on a page to green and the paragraphs to red and italic*/
h1 { color : #00FF00; }
p { color : #FF0000; font-style : italic }
Tuesday, 29 August 2017 12:30

Statutory & Taxation

  • From Gateway of Tally, go to Features by pressing F11 and you will see a menu as in the picture below.
Company Features Menu in Tally

Company Features Menu in Tally

  • Now, go to Statutory & Taxation and you will see a screen which is called Company Operations Alteration.
    Company Operations Alteration Screen in Tally

    Company Operations Alteration Screen in Tally

    Do you notice the name of the screen – Company Operations Alteration on the top left hand corner of the picture.

    Sometimes small things matter the most and that name is indeed in a small size.

    This is the level of detail and effort I put into to create each and every post and video on TallySchool.

    I just want to make sure, you understand Tally in detail and in a better way.

  • Now, you see two options.
    • Enable Goods and Services Tax (GST)
    • Set/alter GST details
  • First, we will enable GST in Tally and then we will Set the GST Details.
  • Well, enabling is pretty easy.
  • Press Y in the option Enable Goods and Services Tax (GST) and press Enter.
  • Congratulations! You have enabled Goods and Services Tax in Tally.

I know this was just a simple step but it is required in order to go ahead and set the GST details in Tally.

Enabling the GST in Tally will open up all the functions of GST in Tally. This includes GST functions in ledgers, reports, returns and so on.

You may think it is just a small step, but trust me it is a big step which affects the whole functioning of Tally.

Now, you will see GST option in almost every place in Tally which previously was not available.

Moving forward, let me show you how to set and alter GST details in Tally.

How to Set GST Details in Tally

You will need the following to set GST Details in Tally.

  • a valid GSTIN – Goods and Services Tax Identification Number,
  • Rate of GST – for example – 28% IGST divided into 14% CGST and 14% SGST and
  • HSN Code – Harmonized System Nomenclature which is different according to the product or service you sell.

You will have all the details if you have registered for GST on the GST Portal.

If you do not have any of the above details, it is perfectly okay. You can simply go through this post to know the method to set GST details in Tally.

In fact, I will be using fake GSTIN and fake HSN for the explanation of this post.

So, hop on with me. Let’s start. ?

I am assuming you are already at the Company Operations Alteration screen where you enabled GST.

  • Press Y against the Set/alter GST details option and press Enter.
  • You will see the Company GST Details screen as shown in the picture below.
Set GST Details in Tally

Set GST Details in Tally

  • First option is State – Select your State or the state in which the business is located. Mine is Gujarat.
  • Second option is Registration type – Regular
  • GSTIN/UIN – Enter the GSTIN or UIN. It will be printed on the invoices later when you create ledgers related to GST in Tally.
  • Applicable from – This is date from which GST is applicable to you. Most probably it will be 1st July, 2017.
  • Set/alter GST rate details – This is where you will enter the rates of GST according to the product you sell.
    • Press Y and press Enter to enter the rates and HSN details as in the picture below.
GST Tax Rate Details in Tally

GST Tax Rate Details in Tally

    • Write the Description about the goods or services you sell on the basis of your HSN Number.
    • Enter the HSN Number.
    • In Tax Details, there are 3 options.
      • Exempt
      • Nil Rated
      • Taxable
    • Most probably, you will have to select Taxable option because your goods or services will be taxable under the GST.
    • Next option is Integrated Tax under Tax Type. Tally calculates both the Central and State Taxes exactly half for each of them.So when you enter 28% Integrated Tax, it will be divided into 14% for CGST and 14% for SGST automatically.You can also enable Central and State Tax option if you want to see columns for both of them instead of one integrated tax column. Here is how you can do it.
Tuesday, 29 August 2017 12:19

General Printing Configuration

The printing configuration available in Tally.ERP 9 helps you customise your reports. You can enable or disable options in the General Printing Configuration screen, as required. The configurations set here are applicable to all reports and vouchers in Tally.ERP 9.

To view the general printing configuration screen

1.    Go to Gateway of Tally > click F12: Configure > Printing > General. The General Printing Configuration screen appears as shown below:

2.    Enable the option Print data and time of report? to print the data and time in the reports.

3.    Enable the option Print data and time of voucher printing? to print the data and time in the vouchers.

4.    Enable the option Print country, state and Pincode with address?, if required.

5.    Disable the option Stop printing vertical lines and borders? to print vertical lines and borders in the reports and vouchers.

6.    Enter the required margin space in the print report in the field Page margin on top (in inches).

7.    Enable the option Print using Greyscale on Black & White printers?, if required.

8.    Enable the option Split long names into multiple lines? for better readability.

9.    Enable the option Split long amounts/numbers into multiple lines? for better readability.

10.  Enable the option Print party name and address from left margin in invoice?, if required.

11.  Press Ctrl+A to save the configuration.

Tuesday, 29 August 2017 12:17

Printing Configuration

You can use the printing feature in Tally.ERP 9 to print your vouchers, invoices, sales and purchase orders, and various others statements. Additionally, you can customise your print by enabling the required options in the printing configuration.

Tuesday, 29 August 2017 12:15

Banking Configuration

You can configure your BRS report and alter the reconciled vouchers in Tally.ERP 9 by enabling the required options in the Banking Configuration screen.

To view the Banking Configuration screen

1.    Go to Gateway of Tally > F12: Configure > Banking Configuration. The  Banking Configuration screen appears as shown below:

2.    Enable the option Show all unreconciled transactions in BRS till date to view all the unreconciled transactions till the given date, irrespective of the From date set in the Bank Reconciliation Statement.

3.    Enable the option Remove bank date on altering reconciled voucher to remove the bank date (reconciled date) of a reconciled voucher on changing the bank ledger/amount or bank transaction amount.

4.    Alter the location of the statements or files specified, if required.

5.    Enable the option Show details before export? to view details of the transactions for which the payment instruction is being exported.

6.    Press Ctrl+A to save.

Tuesday, 29 August 2017 12:12

Configuring Payroll

You can use the Payroll Configuration screen to configure some basic aspects of Payroll.

To configure Payroll

1.    Go to Gateway of Tally > F12: Configure > Payroll Configuration.

2.    Set the option Add notes for employees to Yes to enter any additional information about the employee in the Employee Creation/Alteration screen.

3.    Set the option Show statutory details (for India/ SAARC companies only) to Yes to enter the PF, ESI, NPS and Employee PAN details in the Employee Creation screen, and print the same information in the employee pay slip.

Note: For International Companies, the option Show Statutory Details will allow to capture only the Employee’s Income Tax Number in the Employee Creation screen.

4.    Set the options Provide passport and visa details and Provide contract details to Yes to capture and display the following information in the Expat Reports:

     The employee's Passport Number, Passport Expiry date, Visa Number, and Visa Expiry date,

     The employee's Contract Start and Expiry dates in the Employee Master..

5.    Set the option Show resigned/retired employees to No, to avoid displaying the names of resigned employees in the attendance and payroll vouchers.

6.    Set the option Show employee display name to Yes, if the payroll reports need to include a different name for the employee, while printing.

Note: This option is useful when the company has multiple employees who have the same name.

Configuring Print Options for Payroll

You can use the Payroll Print Configuration screen to configure the message to be included while printing the Payment Advice and the Pay Slip.

1.    Go to Gateway of Tally > F12: Configure > Printing > Payroll.

The Payroll Print Configuration screen appears as shown below:


2.    Alter the pre-filled content in the Information in Payment Advice field, if required. It will be printed in the Payment Advice sheet.

3.    Enter required information in the Pay Slip Note field, to be displayed instead of the Authorised Signatory details in the Pay Slip.

4.    Enter the required Pay Slip Message to be included in all printed payslips. For example, in the month of January you may include the message Happy New Year!

5.    Press Enter to accept.

Note: The Payroll Print Configurations are not company specific, and the changes made will be applicable to all the companies loaded.

You can customise your invoice, delivery notes, and other order vouchers using the options available in the Invoice Configuration screen.

To change the invoice configuration

1.    Go to Gateway of Tally F12: Configure > Invoice / Orders Entry. The Invoice Configuration screen appears as shown below:

2.    Enable the required options.

3.    Press Ctrl+A to accept.

Note: Depending on the options enabled in the Company Features screen, options are added in Invoice Configuration screen.

General Options

Option

Functionality

Enable supplementary details?

Enable this option to view the Party Details screen, when a party ledger is selected during invoice entry. Despatch details, order details, and buyer's details can be recorded.

 

Allow separate buyer and consignee names?

 

Enable this option to enter buyer and consignee details separately in the Party Details screen.

Allow modification of all fields during entry?

Default order/delivery note entries appearing in the invoice can be changed during invoice entry. Enable this option to permit modification of all fields.

Use common Ledger A/c for item allocation?

Enable this option to allocate all the items selected in the invoice to a common sales or purchase account. If each item in the invoice has to be allocated to different ledger accounts, then this option should be set to No.

Use defaults for bill allocations?

Enable this option to automatically display the invoice number as the bill reference name. The credit period specified in the party ledger master will be automatically captured by default in the bill wise details screen.

Provide additional descriptions for item name?

Enable this option to specify description for each item selected in the invoice.

Provide additional descriptions for ledger name?

Enable this option to specify the description for each Ledger selected in the Accounting invoice entries.

Consolidate stock items with same rates?

Enable this option to consolidate the stock items having same rates in Invoice/Challans.

Show compound unit of item based on rate?

Enable this option to show the compound unit of item based on the unit provided in the Rate Per column.

Show full details of compound unit?

Enable this option to display full details of compound unit in the Quantity field. If Kgs is typed in Rate Per field, the Quantity field will display as 12 Kgs.250 grms.

Show turnover achieved with customer?

Enable this option to view the turnover achieved till date with a particular customer.

Exporter’s Options

Option

Functionality

Provide export shipping details?

 

Enable this option to enter export details for the invoice in the Supplementary details screen.

You can enter the following details:

     Place of Receipt

     Vessel / Flight No. (the transport used to send the goods)

     Port of Loading (from where the goods are despatched)

     Port of Discharge (where the goods will be finally offloaded)

     Country To (to which country the goods are being sent)

 

Provide marks and numbers./container no.?

 

Enable this option to specify Marks for every item selected in the invoice.

Provide number and kind of packages?

Enable this option to specify Num. Packages for every item selected in the invoice.

Inventory

Option

Functionality

Warn on negative stock balance?

Enable this option to warn if the item selected reaches a negative balance.

Warn on duplicate order number?

Enable this option to display a warning message to notify when an order number is repeated.

Use expired batches for all stock items?

By default, this option is set to Yes. Disable this option to not include expired batches in the list of batches displayed at the time of entry.

Provide complete accounting allocations in order/delivery note?

Enable this option for faster data entry at the time of entering sales/purchase invoices against the deliver or receipt notes.

Statutory

Option

Functionality

Calculate tax on current sub-total?

Enable this option to calculate tax on the current subtotal value and not on inventory total value.

Allow modification of tax details for VAT?

Enable this option to modify tax details for VAT.

Tuesday, 29 August 2017 12:05

Voucher Entry Configuration

You can customise the voucher entries in Tally.ERP 9, both the accounting and inventory vouchers, by enabling required options in the Voucher Configuration screen.

To change the voucher entry configuration

1.    Go to Gateway of Tally > F12: Configure > Voucher Entry. The Voucher Configuration screen appears as shown below:

2.    Enable the required options.

3.    Press Ctrl+A to accept.

Accounts

Option

Functionality

Skip Date field during creation for faster entry?

 

By default, the cursor skips the Date field during Voucher creation. If you do not want to skip the date field then set this option to No.

 

Use single entry mode for payment/receipt/contra vouchers?

 

By default, Tally.ERP 9 displays single entry mode for payment/receipt/contra entry. If you want to display it in double entry mode, then set this option to No.

Use payment/receipt as contra voucher?

 

Enable this option to use payment and receipt voucher as contra voucher.

Use Cr/Dr instead of To/By during entry?

Enable this option to change To/By to Cr/Dr in the vouchers.

Use cheque printing for contra voucher?

Enable this option to print the cheques from contra voucher while making the inter bank transfers and cash withdrawals.

Warn on negative cash balance?

By Default, Tally.ERP 9 displays a Negative Cash balance warning Message. If you set it to No, the error message will not be displayed.

Preallocate bills for payment/receipt/journal voucher?

Enable this option to preallocate the bills before specifying the ledger amount.

Allow cash accounts in journal vouchers?

Enable this option to select cash and also bank account in Journal voucher.

Allow expenses/fixed assets in purchase vouchers?

Enable this option to select the expenses and also fixed asset ledger in purchase voucher.

Show inventory details?

By default, Tally.ERP 9 displays inventory details in the voucher entry screen. If you set it to No, the inventory details will not be displayed.

Show table of bills for selection?

By default, pending bills list of a ledger account are displayed in the voucher entry screen. If you set it to No, the pending bills list will not be displayed.

Show bill-wise details?

By default, Bill-wise details of a ledger account are displayed in the Voucher entry screen. If you set it to No, Bill wise details will not be displayed

Show current balances of ledgers?

By default, the ledger current balance up to last voucher entry date are displayed. If you set it to No, the ledger current balance will not be displayed

Show balance as on voucher date?

By default, the ledger current balance up to last voucher entry date are displayed. If you set it to Yes, it will display the ledger balance up to current voucher entry date

Show forex gain/loss as on voucher date?

By default, the Forex Gain/Loss balance up to the last voucher entry date are displayed. If you set it to Yes, it will display the Forex Gain/Loss balance up to current voucher entry date

Inventory

Option

Functionality

Provide reference number in stock journal?

Enable this option to add the voucher reference field in Stock Journal also.

Show compound unit of item based on rate?

 

Enable this option to show the compound unit of item based on the unit provided in the Rate Per column.

Show full details of compound unit?

Enable this option to display full details of compound unit in the Quantity field. If Kgs is typed in Rate Per field, the Quantity field will display as 12 Kgs.250 grms.

Warn on negative stock balance?

By default, a warning message is displayed for negative stock balance. If you set it to No, the error message will not be displayed.

Allow use of expiry batches for all stock items?

By default, the expiry batches in the list of active batches during voucher entry are displayed. If you set it to No, expiry batches will not be displayed in the List of Active batches.

Show balances as on voucher date?

By default, the stock item balance up to the last voucher entry date are displayed. If you set it to Yes, it will display the Stock Item balance up to current voucher entry date.

Show Godown-wise details?

By default, the Godown details in rejection in/out vouchers are displayed. If you set it to No, the godown details will not be displayed in the rejection in/out vouchers.

Show batch-wise details?

 

Enable this option to display batch information of stock items during voucher entry. If you set it to No, the Batch-Wise details will not be displayed.

Payroll

Option

Functionality

Allow cost centre allocation in payroll vouchers?

 

Enable this option to allow cost centre allocation in the payroll vouchers.

Statutory

Option

Functionality

Allow modification of tax details for VAT?

 

Enable this option to modify tax details for VAT.

Page 5 of 34