Saturday 12 April 2014

Programming - Numbers

Every programming language provides support for manipulating different types of numbers like simple whole integer, floating point number. The programming languages like C, Java and Python categorize these numbers in several categories based on their nature.

Let's go back and check data types chapter, where we listed down core data types related to numbers:


Type
Keyword
Value range which can be represented by this data type
Number
int
-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
Small Number
short
-32,768 to 32,767
Long Number
long
-2,147,483,648 to 2,147,483,647
Decimal Number
float
1.2E-38 to 3.4E+38 till 6 decimal places

These data types are called primitive data types and you can use these data types to build more data types, which are called user-defined data type.
We have seen various mathematical and logical operations on numbers during a discussion on operators. So we know how to add numbers, subtract numbers, divide numbers, etc.
First let's see how to print various types of numbers available in C programming language:

#include <stdio.h>

main()
{
   short  s;
   int    i;
   long   l;
   float  f;
   double d;
  
   s = 10;     
   i = 1000;   
   l = 1000000;
   f = 230.47; 
   d = 30949.374;
  
   printf( "s: %d\n", s);
   printf( "i: %d\n", i);
   printf( "l: %ld\n", l);
   printf( "f: %.3f\n", f);
   printf( "d: %.3f\n", d);
}

Rest of the coding is very obvious but we used %.3f to print float and double, which indicates number of digits after decimal to be printed. When above program is executed, it produces the following result:

s: 10
i: 1000
l: 1000000
f: 230.470
d: 30949.374

Math Operations on Numbers

Following table lists down various useful built-in mathematical functions available in C programming language which can be used for various important mathematical calculations.
For example, if you want to calculate square root of a number for example, 2304, then you have built-in function available to calculate square root for this number.

S.N.
Function & Purpose
1
double cos(double);
This function takes an angle (as a double) and returns the cosine.
2
double sin(double);
This function takes an angle (as a double) and returns the sine.
3
double tan(double);
This function takes an angle (as a double) and returns the tangent.
4
double log(double);
This function takes a number and returns the natural log of that number.
5
double pow(double, double);
The first is a number you wish to raise and the second is the power you wish to raise it to.
6
double hypot(double, double);
If you pass this function the length of two sides of a right triangle, it will return you the length of the hypotenuse.
7
double sqrt(double);
You pass this function a number and it gives you this square root.
8
int abs(int);
This function returns the absolute value of an integer that is passed to it.
9
double fabs(double);
This function returns the absolute value of any decimal number passed to it.
10
double floor(double);
Finds the integer which is less than or equal to the argument passed to it.

Following a simple example to show few of the mathematical operations. To utilize these functions, you need to include the math header file <math.h> header file in your program in similar way you have included stdio.h:

#include <stdio.h>
#include <math.h>

main()
{
   short  s;
   int    i;
   long   l;
   float  f;
   double d;
  
   s = 10;     
   i = 1000;   
   l = 1000000;
   f = 230.47; 
   d = 2.374;
  
   printf( "sin(s): %f\n", sin(s));
   printf( "abs(i): %f\n", abs(i));
   printf( "floor(f): %f\n", floor(f));
   printf( "sqrt(f): %f\n", sqrt(f));
   printf( "pow(d, 2): %f\n", pow(d, 2));

}

When above program is executed, it produces the following result:

sin(s): -0.544021
abs(i): -0.544021
floor(f): 230.000000
sqrt(f): 15.181238
pow(d, 2): 5.635876

Other than above usage, you will use numbers in loop counting, flag representation, true or false values in C programming.

Numbers in Java
Following is the equivalent program written in Java programming language. Java programming language also provides almost all numeric data types available in C programming.
You can try to execute the following program to see the output, which is identical to the result generated by the above C example.

public class DemoJava
{   
   public static void main(String []args)
   {
  
      short  s;
      int    i;
      long   l;
      float  f;
      double d;

      s = 10;     
      i = 1000;   
      l = 1000000L;
      f = 230.47f; 
      d = 30949.374;

      System.out.format( "s: %d\n", s);
      System.out.format( "i: %d\n", i);
      System.out.format( "l: %d\n", l);
      System.out.format( "f: %f\n", f);
      System.out.format( "d: %f\n", d);
   
   }
}
When above program is executed, it produces the following result:
s: 10
i: 1000
l: 1000000
f: 230.470001
d: 30949.374000

Java also provides a full range of built-in functions for mathematical calculation and you can use them in very similar way you have used them in C programming.

Numbers in Python

Python is little different from C and Java and categorize numbers in int, long, float and complex. Here are some examples of numbers in Python:
int
long
float
complex
10
51924361L
0.0
3.14j
100
-0x19323L
15.20
45.j
-786
0122L
-21.9
9.322e-36j
080
0xDEFABCECBDAECBFBAEl
32.3+e18
.876j
-0490
535633629843L
-90.
-.6545+0J
-0x260
-052318172735L
-32.54e100
3e+26J
0x69
-4721885298529L
70.2-E12
4.53e-7j





Following is the equivalent program written in Python:
s = 10     
i = 1000   
l = 1000000
f = 230.47 
d = 30949.374

print "s: ", s
print "i: ", i
print "l: ", l
print "f: ", f
print "d: ", d

When above program is executed, it produces the following result:

s:  10
i:  1000
l:  1000000
f:  230.47
d:  30949.374

Python also provides a full range of built-in functions for mathematical calculation and you can use them in very similar way you have used them in C programming.

No comments:

Post a Comment