12th standard Computer Science notes

lecture notes computer science c++ and sql and lecture note science computer matriculation | pdf free download
Dr.AstonCole Profile Pic
Dr.AstonCole,United Kingdom,Researcher
Published Date:10-07-2017
Your Website URL(Optional)
SUBJECT :- COMPUTER SCIENCE (083) CLASS XII Unit-Wise Marks and Period Distribution Unit No. Unit Name Marks 1. PROGRAMMING IN C++ 30 2. DATA STRUCTURE 14 3. DATABASE AND SQL 8 4. BOOLEAN ALGEBRA 8 5. COMMUNICATION AND NETWORK 10 CONCEPTS Total 70 UNIT 1: PROGRAMMING IN C++ REVIEW: C++ covered In Class -XI, Defining a symbol name using typedef keyword and defining a macro using define directive; Need for User defined data type; Structures: Defining a Structure, Declaring structure variables, Accessing structure elements, Passing structure to Functions as value and reference argument/parameter, Function returning structure, Array of structures, passing an array of structure as an argument/ a parameter to a function; Object Oriented Programming: Concept of Object Oriented Programming – Data hiding, Data encapsulation, Class and Object, Abstract class and Concrete class, Polymorphism (Implementation of polymorphism using Function overloading as an example in C++); Inheritance, Advantages of Object Oriented Programming over earlier programming methodologies, Implementation of Object Oriented Programming concepts in C++: Definition of a class, Members of a class - Data Members and Member Functions (methods), Using Private and Public visibility modes, default visibility mode (private); Member function definition: inside class definition and outside class definition using scope resolution operator(::); Declaration of objects as instances of a class; accessing members from object(s), Array of type class, Objects as function arguments - pass by value and pass by reference; Constructor and Destructor: Constructor: Special Characteristics, Declaration and Definition of a constructor, Default Constructor, Overloaded Constructors, Copy Constructor, Constructor with default arguments; 4 Destructor: Special Characteristics, Declaration and definition of destructor; Inheritance (Extending Classes): Concept of Inheritance, Base Class, Derived Class, Defining derived classes, protected visibility mode; Single level inheritance, Multilevel inheritance and Multiple inheritance, Privately derived, Publicly derived and Protectedly derived class, accessibility of members from objects and within derived class (es); Data File Handling: Need for a data file, Types of data files – Text file and Binary file; Basic file operations on text file: Creating/Writing text into file, Reading and Manipulation of text from an already existing text File (accessing sequentially); Binary File: Creation of file, Writing data into file, Searching for required data from file, Appending data to a file, Insertion of data in sorted file, Deletion of data from file, Modification of data in a file; Implementation of above mentioned data file handling in C++; Components of C++ to be used with file handling: Header file: fstream.h; ifstream, ofstream, fstream classes; Opening a text file in in, out, and app modes; Using cascading operators for writing text to the file and reading text from the file; open(), get(), put(), getline() and close() functions; Detecting end-of-file (with or without using eof() function); Opening a binary file using in, out, and app modes; open(), read(), write() and close() functions; Detecting end-of-file (with or without using eof() function); tellg(), tellp(), seekg(), seekp() functions Pointers: Declaration and Initialization of Pointers; Dynamic memory allocation/deallocation operators: new, delete; Pointers and Arrays: Array of Pointers, Pointer to an array (1 dimensional array), Function returning a pointer, Reference variables and use of alias; Function call by reference. Pointer to structures: Deference operator: , -; self referencial structures; UNIT 2: DATA STRUCTURES Arrays: One and two Dimensional arrays: Sequential allocation and address calculation; One dimensional array: Traversal, Searching (Linear, Binary Search), Insertion of an element in an array, deletion of an element from an array, Sorting (Insertion, Selection, Bubble sort), concatenation of two linear arrays, merging of two sorted arrays; Two-dimensional arrays: Traversal, Finding sum/difference of two NxM arrays containing numeric values, Interchanging Row and Column elements in a two dimensional array; Stack (Array and Linked implementation of Stack): Operations on Stack (PUSH and POP) and its Implementation in C++, Converting expressions from INFIX to POSTFIX notation and evaluation of Postfix expression; Queue: (Circular Array and Linked Implementation): Operations on Queue (Insert and Delete) and its Implementation in C++. UNIT 3: DATABASES AND SQL Database Concepts: Relational data model: Concept of domain, tuple, relation, key, primary key, alternate key, Candidate key; Relational algebra: Selection, Projection, Union and Cartesian product; 5 Structured Query Language: General Concepts: Advantages of using SQL, Data Definition Language and Data Manipulation Language; Data types: NUMBER, CHARACTER, DATE; SQL commands: CREATE TABLE, DROP TABLE, ALTER TABLE, UPDATE...SET..., INSERT, DELETE; SELECT, DISTINCT, FROM, WHERE, IN, BETWEEN, GROUP BY, HAVING, ORDER BY; SQL functions: SUM, AVG, COUNT, MAX and MIN; UNIT 4: BOOLEAN ALGEBRA Binary-valued Quantities, Boolean Variable, Boolean Constant and Boolean Operators: AND, OR, NOT; Truth Tables; Closure Property, Commutative Law, Associative Law, Identity law, Inverse law, Principle of Duality, Idem potent Law, Distributive Law, Absorption Law, Involution law, DeMorgan’s Law and their applications; Obtaining Sum of Product (SOP) and Product of Sum (POS) form from the Truth Table, Reducing Boolean Expression (SOP and POS) to its minimal form, Use of Karnaugh Map for minimization of Boolean expressions (up to 4 variables); Basic Logic Gates (NOT, AND, OR, NAND, NOR) and their use in circuits. UNIT 5: COMMUNICATION AND NETWORK CONCEPTS Evolution of Networking: ARPANET, Internet, Interspace; Different ways of sending data across the network with reference to switching techniques; Data Communication terminologies: Concept of Channel, Baud, Bandwidth (Hz, KHz, MHz) and Data transfer rate (bps, kbps, Mbps, Gbps, Tbps); Transmission media: Twisted pair cable, coaxial cable, optical fiber, infrared, radio link, microwave link and satellite link. Network devices: Modem, RJ45 connector, Ethernet Card, Hub, Switch, Gateway; Different Topologies- Bus, Star, Tree; Concepts of LAN, WAN, MAN; Protocol: TCP/IP, File Transfer Protocol (FTP), PPP, Level-Remote Login (Telnet), Internet, Wireless/Mobile Communication, GSM, CDMA, WLL, 3G, SMS, Voice mail, Application Electronic Mail, Chat, Video Conferencing; Network Security Concepts: Cyber Law, Virus threats and prevention, Firewall, Cookies, Hacking; WebPages; Hyper Text Markup Language (HTML), eXtensible Markup Language (XML); Hyper Text Transfer Protocol (HTTP); Domain Names; URL; Protocol Address; Website, Web browser, Web Servers; Web Hosting. 6 Unit – I Chapter -1 PROGRAMMING IN C++ Review: C++ covered in C++ Q1. What are the limitations of Procedural Programming ? Ans. Limitation of Procedural Programming Paradigm 1. Emphasis on algorithm rather than data. 2. Change in a datatype being processed needs to be propagated to all the functions that use the same data type. This is a time consuming process. 3. The procedural programming paradigm does not model real world very well. Q2. Define Class. Ans. A Class represents a group of objects that share common properties and relationships. Exp:- Class ab statements; ab obj; Class name is ab are used to write statements with in it ; is termination symbol of the statement obj is the object of a Class to access the data members of the class Q3. What are the features of OOP ? Ans. Features of OOP 1. Data Abstraction Abstraction refers to the act of representing essential features without including the background details or explanations (i.e. Hiding of Data) 2. Encapsulation The wrapping up of data and functions (that operate on the data) into a single unit (called class) in known as Encapsulation. As a base Encapsulation is a way to implement data abstraction. 3. Modularity The act of dividing a complete program into different individual components (functions) is called modularity. It is a property of a system that has been decomposed into a set of cohesive and loosely coupled modules 4. Inheritance Inheritance is the capability of one class of things to inherit the features or data members or properties from another class. The Class whose properties of data members are inherited, is called Base Class or Super Class and the class that inherits these properties, is called Derived Class or Sub Class. Exp:- If Class A inherits the data of Class B then we can say A is Sub Class and B is Super Class. 5. Polymorphism Polymorphism is the ability for a message or data to be processed in more than one form. Polymorphism (overloading) is the property by which the same message can be 7 sent to objects of several different classes. In which the same operation is performed differently depending upon the data type it is working upon. Q5. What is the difference between keyword and identifier? Ans. Keyword is a special word that is reserved in C++ and having special meaning and purpose goto, struct, else, break etc. Identifier is the user defined name given to a part of a program (variable name) Q6. Describe different types of operators in C++. Ans. Operators ( to perform some computational operations or to perform some specific actions) In C++ operators are divided into following categories:- (Airthmatic, I/O, Increment/ Decrement, Relational & Logical Operators) (a) I / O operators (Input /Output Operators) Input Operator () is used to read a value from standard input. cin object is used for taking input from the user Example :- int a; cina; (we can input integer value) Output Operator() is used to direct a value to standard output. cout object is used for taking output on the display device. Example:- int a; cina; couta; The multiple use of input or output operators in one statement is called cascading of I/O operators like : cinab; coutab; (b) Arithmetic Operators +, - , , / and % (c) Increment/ Decrement Operators Increment Operator (++) Decrement Operator (- -) We can use both the operators in postfix and prefix mode as per the requirements in the program statement example:- postfix prefix int a=10; int a=10; a++; ++a; couta; couta; output is a=10 a=11 Note:- The postfix form of ++, , operators follows the rule use-then change. The prefix form follows the rules change then use 8 (d) Relational Operators , = , = = , , = and = (e) Logical Operators logical OR () , logical AND (&&) , logical NOT() (f) Conditional Operator ( ? , : ) C++ offers a conditional operator ( ? : ) that stores a value depending upon a condition. This operator is ternary operator. Syntax: - expression1 ? expression2 : expression3 Exp:- int result; Result = marks= 50 ? ‘P’ : ‘F’ ; (g) Some other operators (sizeof) sizeof num // (num is variable name) sizeof (type) // (c++ data type) (h) Assignment Operator (=) Example: int total , item; total = total + item; total + =item; Q7. What is the use of main function ? Ans. Use of Main function in C++ Main ( ) is used to compile and execute the program code of C++ it is used with standard library and header files of the OOPS Program Example int main ( ) // return values with its parameters void main ( ) // not return any value not return keyword is used void main (parameter) // at the end of the only return keyword is // used except parameters Q8. What are the different data types in C++ ? Ans. C++ Data types Data types are means to identify the type of data and associated operations for handling it. C++ data types are of two types (i) Fundamental Data Types (ii) Derived Data Types (i) Fundamental Data Types Fundamental Data Types are those that are not composed of other data types. There are five fundamental data types in C++: Char, int, float, double & void that represents character, integer, float. 9 (ii) Derived Data Type (a) Array: It is a set of homogeneous values under one name (similar data elements). Array can be one dimensional, two dimensional or multi dimensional Syntax:- datatype arrname size // Single dimensional The data type of array elements is known as the Base Type of the array. An ARRAY is a collection of variables on the same type that are referenced by a common name. Q9. Explain Two dimensional array with an example. Ans. Declaration of Two Dimensional Arrary Syntax : - datatype arrname size size // Two dimensional Example:- int num25 (array will execute 2 x 5 = 10 times) int main( ) int sales 55; int i,j, total ; for (i=0; i5, i++) total =0; cout “\n”; \\(escape sequence) for (j=0 ; j 5; j ++) cinsalesij; total =total + sales ij; cout “ sales is = ” total; return 0; Q10. What are functions ? Give syntax to define a function. Ans. Functions A function is a named unit of a group of program statements. This unit can be invoked from other parts of the program. A function return values and numbers and arguments as per instructions stored in a function Syntax type function-name (parameter list) body of the function if type of a function is declared then it return values 10 Q11. Define Pointer, Reference and Constant . Ans. Pointer: A pointer is a variable that holds a memory address. This address is usually the location of another variable in memory. Reference: A reference is an alternative name for an object. A reference variable provides an alias for a previously defined variable. Constant: to declare constant value Syntax :- const datatype var_name= value; const int num =10; Q12. Explain any two user defined data types. Ans. User defined derived data types Class: A class represents a group of similar objects. A class describes all the properties of a data type and an object is an entity created according to that description class cls_name statement ; Structure: A structure is a collection of variables of different data types referenced under one name. Variables defined under structure called with the help of structure object. struct keyword is used to define structure struct stru_name type varname; type varname; ; stru_name obj_name; cinobj_name.varname; coutobj_name.varname; Q13. What do you mean by variable ? i) Ans. Variables: Variables represent named storage locations whose values can be manipulated Q14. What are the different types of errors in C++. Ans. Types of errors in C++ Errors may be made during program creation even by experienced programmers. Such types of error are detected by the compiler. Debugging means removing the errors. The errors are categorized in four types:- (i) Syntax errors (ii) Linking errors (iii) Execution –time errors (Run Time errors) (iv) Logical errors 11 Q15. Write the C++ equivalent expressions for the following. 2 Volume = 3 .1459r h/3 Ans. Volume = 3.1459rrh/3; Q16. Find the syntax error (s) if if any, in the following program: includeiostream.h int main() int x; cin x; for(int y = 0; y 10; y++) cout x+y; Ans The syntax error are: 1. illegal`` operator in cin statement. 2. illegal`` operator in cout statement., return value function. Q17. differentiate between a run-time error and syntax error. Give one example of each. Ans. While execution, a compiled program may not behave properly because of some errors called run time errors. For example, divide by zero is a run time error. The following program segment will generate such an error.The following program segment will generate such an error while flag . b = b-1 ; term = a/b; . Array indicates out of bound, and range errors are other examples of run time errors. A syntax error, on the other hand, is because of misuse of a programming language. Any violation of a grammatical rule of a programming language will produce a syntax error. Such errors are caught by language compiler. The following statement is not systactically correct as far as c++ is concerned . X= y + z E; Q18. What is the difference between an object and a class? Ans. An object is an identifiable entity with some characteristics and behaviour. It represents an entity that can store data and its associated functions. A class is a group of objects that share common properties and relationships Q19. Write a program to input any number and print in reverse order Ans in this program the number is input by user includeiostream.h includeconio.h void main() clrscr(); int n,s=0; 12 cout" enter the number:- "; cinn; while(n0) s=s10+n%10; n=n/10; cout"revese="s; getch(); Q20. Write a program for decalring and calling of function inside main and defining outside the main () Ans includeiostream.h includeconio.h void main() void fact(); fact(); getch(); // for freeze the montior void fact() int i=1,n,fact=1; cout"enter the number="; cinn; while(i=n) fact=facti i++; cout"fact="fact; getch(); Q21. Swapping of two numbers using function call by value & call by reference. Ans Call by value includeiostream.h includeconio.h main() clrscr(); int a,b; cout"enter the number="; cinab; void swap(int,int); swap(a,b); cout"A="aendl; cout"B="b; 13 getch(); void swap(int a,int b) int t=a; a=b; b=t; coutab; Call by reference includeiostream.h includeconio.h void main() void swap( int &a, int &b); //prototype of a function int num1,num2; clrscr(); cout “ enter both numbers: num1 & num2:”; cinnum1; cout “\n”; cinnum2; cout “\n Before swapping numbers are \n”; cout “ num1= ”num1; cout “\n”; cout “ num2= ”num2; cout “\n”; swap(num1,num2); //calling of function cout “\n After swapping numbers are \n”; cout “ num1= ”num1; cout “\n”; cout “ num2= ”num2; cout “\n”; getch( ); //for freeze the monitor void swap(int &a, int &b) //function definition int temp=a; a=b; b=temp; Q22. Name the header files of following built in functions : Strcpy(), strcat(),log(), clrscr(),setw(),fabs(),isalnum(),isupper() Ans. Strcpy() string.h Strcat() string.h log() math.h clrscr() conio.h setw iomanip.h fabs() math.h isalpnum() ctype.h isupper() ctype.h 14 Chapter -2 OBJECT ORIENTED PROGRAMMING Q1. Give an example of polymorphism. Ans. Polymorphism (overloading) Function overloading If a function name is same and use more than one time with different parameters is called function overloading. void num( ) int a; a= 510; void num1 (int a) int b; b= aa; return; At calling time we can also overload the functions Q2. Write 4 advantages of Object oriented programming. Ans. Advantages of OOP 1. Re-use of code 2. Based on comprehensive approach 3. Program can be maintained using encapsulation and hiding of data 4. Easy to maintain , cost effective 5. Easy to redesign and easy to extend Q3. Illustrate the concept of function overloading with the help a function namely Area that return a float type value Ans. A function name having several definitions that are differentiable by the number of types of their arguments, is known as function overloading. For example, following code overloads a function area to compute areas of circle, rectangle and triangle. float area (float radius) // for computing area of a circle return 3.14 radius radius; flaot area ( float length , float breadth) // for calculation area return length breadth; 15 Chapter -3 CLASSES AND OBJECTS Q1. What is class? What is its need? Classes A class is a way to bind the data describing an entity and its associated functions together. In C++ , class makes a data type that is used to create objects of this type. Need for classes Classes are needed to represent real-world entities that not only have data type properties (Characteristics) but also have associated operations (their behaviour) Q2 . Differentiate between local and global class with help of example. Ans. 1. Global Class A class is said to be global it its declaration occurs outside the bodies of all functions in a program. 2. Local class A class is said to be local if its occurs inside the function body includeiostream.h class x //x is a global class members variable functions of class; ; x ob1; //global object int main ( ) class num // num is local class public: int a=10; void num( ) // constructor (same name of class) coutnum; ; x ob2; //local object of class x num n1; // n1is a class object n1.num( ); // closing of main () Q3. What do you mean by nested class ?Explain. Ans. Nested class Declaration of one class in to another class is called is called nested of a class. includeiostream.h 16 includeconio.h // for clrscr() class score int a; //private member variable class batesman // nested class int b; public: int c; void total( ) cinbc; int sum = b+c; batesman( ) c=10; ; // end of class batesman batesman obj2; // object of class batesman void second( void) coutscore :: second()endl; cout”A =” a score( ) a= 25; ; //end of class score; void main() score ab; batesman bc; score :: batesman cd; ab.second(); bc.total(); cd.total(); Q4. What are the advantages and disadvantages of inline functions? Ans. The main advantages of inline functions is that they save on the overheads of a function call as the function is not invoked, rather its code is replaced in the program. The major disadvantage of inline functions is that with more function calls, more memory is wasted as for every function call, the same function code is inserted in the program. Repeated occurrences of same function code waste memory space. 17 Q5. What do you understand by member function? Ans Member function have full access privilege to both the public and private members of the class. These are defined within the class scope that is they are not visible outside the scope of class. But not member functions are visible outside the class (ordinary functions) Q6. What are static class members? Ans A class can have static data members as well as static member functions The static data members are the class variables that are common for all the objects of the class. Only one copy of static data members is maintained which is shared by all the objects of the class. They are visible only with in the class Q7. Identify the errors in the following code fragment: class ab int x; static int ctr; Public: Void init(void) x=ctr=0; static void print(void) coutctrx; ; Ans In the above code fragment, a static member function is trying to access a non static member that is ‘x’ which is the error The correct code for static member function is static void print(void) coutctr; Q8. What is the significance of access specifiers in a class? Ans A class provides three access specifiers namely private, public and protected (a) A data member declared as private or protected remains hidden from outside world and it can only be accessed by the member functions of the class. (b) A data member declared as public is made available to the outside world. That is, it can be accessed by any function, any expression in the program but only by using an object of the same class type. These access labels enforce data hiding and abstraction also. Q9 . Write the output of the following code includeiostream.h class counter private: unsigned int count; public: counter() // constructor count=0; void inc_count( ) // increment in count variable 18 count ++; int get_count( ) return count; ; void main() counter c1,c2; cout “ \n value for c1 is:” c1.get_count( ); cout “ \n value for c2 is:” c2.get_count( ); c1.inc_count(); c2.inc_count(); c2.inc_count(); cout “\t c1=” c1.get_count(); cout “\t c2=” c2.get_count(); Ans The output will be c1=0 c2=0 c1=1 c2=2 Chapter – 4 CONSTRUCTOR AND DESTRUCTORS Q1. What is Constructor ? Ans. Constructors: A constructor is a special member function of a class that is automatically called, when an object is created of that class. A member function with the same name as its class is called constructor. Q2. What is destructor ? What is its need ? Ans. Destructor: A destructor is also a member function whose name is the same as the class name but is preceded by tilde (‘’) A destructor takes no arguments and no return types can be specified for it. It is called automatically by the compiler when an object is destroyed. A destructor cleans up the storage ( memory area of the object) that is no longer accessible. Need for Destructors Allocated resources (like constructor) must be de-allocated before the object is destroyed. It works as a de-allocating and releasing memory area and it perform our works as a clean up tasks. Therefore, a destructor is equally useful as a constructor is. class stud stud() //constructor cout “ welcome” 19 stud() //destructor ; stud s1; Q1. What are the characteristics of a Constructors? Ans. The constructor functions have certain special characteristics:- 1. Constructor fuctions are invoked automatically when the objects are created. 2. If a class has a constructor, each object of that class will be initialized before any use is made of the object. 3. No return type can be specified for a constructor 4. They can not be inherited through a derived class can call the base class constructor 5. A constructor may not be static. 6. It is not possible to take the address of a constructor 7. Member functions may be called from within a constructor. Q2. What do you understand by default constructor? Ans A default constructor is the one that takes no arguments. It is automatically invoked when an object is created without providing any initial values. In case, the programmer has not defined a default constructor, the compiler automatically generates it. Q3. Consider the following declaration : Class welcome public: welcome (int x, char ch); // constructor with parameter welcome(); // constructor without parameter void compute(); private: int x; char ch; ; which of the following are valid statements welcome obj (33, ‘a9’); welcome obj1(50, ‘9’); welcome obj3(); obj1= welcome (45, ‘T’); obj3= welcome; Ans. Valid and invalid statements are welcome obj (33, ‘a9’); valid welcome obj1(50, ‘9’); valid welcome obj3(); invalid obj1= welcome (45, ‘T’); valid obj3= welcome; invalid 20 Q4 . What is copy constructor? Ans Copy constructor: A copy constructor is a constructor that can be used to initialize one object with the values from another object of same class during declaration. Q5 . What is the relationship between constructor and its class? Define constructor also Ans Both carry the same name. It is a function that automatically initializes the data members of an object at the time of its creation. Constructor : It removes the memory held by an object, It is the last member function to be called. Morevoer, it carries the same name of the class with tidle () as prefix. Q6. How many time is the copy constructor called in the following code? Sample func(sample u) sample v(u); sample w=v; return w; void main() sample x; sample y = func(x); sample z = func(y); Ans . 8 times Q9. What will be output of following? includeiostream.h class play public: play() calculate(); void calculate() show(); cout”calculating”; void show() cout”welcome in C++”; ; void main() play one; Ans. Welcome in C++ calculating 21 Chapter – 5 INHERITANCE: EXTENDING CLASSES Q1. What is Inheritance ? Ans. It is a special feature of OOPS. Inheritance is capability to inherit the properties of one class in to another class. The derive new class is called derived class (sub class) and old class is called based class (super class). The Class whose properties of data members are inherited, is called Base Class or Super Class and the class that inherits these properties, is called Derived Class or Sub Class. Exp1:- If Class A inherits the data of Class B then we can say A is Sub Class and B is Super Class. Q2. What are the different types of inheritance ? Ans. Type of Inheritance 1. Single Inheritance Class automobile it is a Base class (super) it is a sub class (derived) Class car 2. Multiple Inheritance Base class vehicle automobile Car Derived class 3. Hierarchical Inheritance Ve hicle Base class (super) automobile car Sub Class( derived) 4. Multilevel Inheritance Class vehicle it is a Base class (super) of automobile it is a sub class (derived) of automobile Class automobile and base class of class car Class Car derived class(sub) of class automobile 22 5. Hybrid Inheritance It is combination of two or more forms of inheritance. Q2. What do you mean by Base and Derived Class ? Ans. A derived class (or sub class) has to identify the class from which it is derived i.e. its base class (or super class) class derived-class-name : visibility-mode base-class-name members of derived class; ; class is a key word and visibility mode is a access speicifier (i.e. public, private or protected), : (colon) is used separation colon (:) indicates derived class (sub class) is based on base class( super class) Example class car : public automobile members ; Q3. What is Multiple Inheritance ? Ans. Multiple Inheritance means deriving a class from more than one base class. Class kvschool int rollno1; void num1(); Public: float kvroll; void num2(); ; class kvstud int rollno2 void num3(); Protected: float kvroll1; void num4(); ; class kvclass : public kvschool, public kvstud int kvroll2; protected: void display(); ; // to complete the program deifine display () – in class kvclass i.e. kvclass ::display() 23

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.