XII Computer Book - Part 1 (Turbo C)

Add to Favourites
Post to:

Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 1 ACCORDING TO NEW SYLLABUS COMPUTER STUDIES CLASS – XII Turbo C – Part 1 Written By SAIYED SHAHAB AHMED MS – IBA, BS – UoK CAREER COACHING CENTER Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 2 The History of the C Language The C programming language was devised in the early 1970s by Dennis M. Ritchie an employee from Bell Labs (AT&T). In the 1960s Ritchie worked, with several other employees of Bell Labs (AT&T), on a project called Multics. The goal of the project was to develop an operating system for a large computer that could be used by a thousand users. In 1969 AT&T (Bell Labs) withdrew from the project, because the project could not produce an economically useful system. So the employees of Bell Labs (AT&T) had to search for another project to work on (mainly Dennis M. Ritchie and Ken Thompson). Ken Thompson began to work on the development of a new file system. He wrote, a version of the new file system for the DEC PDP-7, in assembler. (The new file system was also used for the game Space Travel). Soon they began to make improvements and add expansions. (They used there knowledge from the Multics project to add improvements). After a while a complete system was born. Brian W. Kernighan called the system UNIX, a sarcastic reference to Multics. The whole system was still written in assembly code. Besides assembler and Fortran, UNIX also had an interpreter for the programming language B. ( The B language is derived directly from Martin Richards BCPL). The language B was developed in 1969-70 by Ken Thompson. In the early days computer code was written in assembly code. To perform a specific task, you had to write many pages of code. A high-level language like B made it possible to write the same task in just a few lines of code. The language B was used for further development of the UNIX system. Because of the high-level of the B language, code could be produced much faster, then in assembly. A drawback of the B language was that it did not know data-types. (Everything was expressed in machine words). Another functionality that the B language did not provide was the use of “structures”. The lag of these things formed the reason for Dennis M. Ritchie to develop the programming language C. So in 1971-73 Dennis M. Ritchie turned the B language into the C language, keeping most of the language B syntax while adding data-types and many other changes. The C language had a powerful mix of high-level functionality and the detailed features required to program an operating system. Therefore many of the UNIX components were eventually rewritten in C (the Unix kernel itself was rewritten in 1973 on a DEC PDP-11). The programming language C was written down, by Kernighan and Ritchie, in a now classic book called “The C Programming Language, 1st edition”. (Kernighan has said that he had no part in the design of the C language: “It’s entirely Dennis Ritchie’s work”. But he is the author of the famous “Hello, World” program and many other UNIX programs). For years the book “The C Programming Language, 1st edition” was the standard on the language C. In 1983 a committee was formed by the American National Standards Institute (ANSI) Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 3 to develop a modern definition for the programming language C (ANSI X3J11). In 1988 they delivered the final standard definition ANSI C. (The standard was based on the book from K&R 1st ed.). The standard ANSI C made little changes on the original design of the C language. (They had to make sure that old programs still worked with the new standard). Later on, the ANSI C standard was adopted by the International Standards Organization (ISO). The correct term should therefore be ISO C, but everybody still calls it ANSI C. Variables and constants In this C programming language tutorial we take a look at variables and constants. Variables If you declare a variable in C (later on we talk about how to do this), you ask the operating system for a piece of memory. This piece of memory you give a name and you can store something in that piece of memory (for later use). There are two basic kinds of variables in C which are numeric and character. Numeric variables Numeric variables can either be of the type integer (int) or of the type real (float). Integer (int) values are whole numbers (like 10 or -10). Real (float) values can have a decimal point in them. (Like 1.23 or -20.123). Character variables Character variables are letters of the alphabet, ASCII characters or numbers 0-9. If you declare a character variable you must always put the character between single quotes (like so ‘A’ ). So remember a number without single quotes is not the same as a character with single quotes. Variable Data type in C Type-name Type Range int Numeric – Integer -32 768 to 32 767 short Numeric – Integer -32 768 to 32 767 long Numeric – Integer -2 147 483 648 to 2 147 483 647 float Numeric – Real 1.2 X 10-38 to 3.4 X 1038 Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 4 Constants The difference between variables and constants is that variables can change their value at any time but constants can never change their value. (The constants value is locked for the duration of the program). Constants can be very useful; Pi for instance is a good example to declare as a constant. Data Types There are three types of variables: numeric – integer, numeric-real and character. A variable has a typenaame a type and a range (minimum /maximum). In the following table you can see the type-name, type and range: Declaring Now let’s declare some variables, a variable MyIntegerVariable andMyCharacterVariable: int main() { int MyIntegerVariable; int MyCharacterVariable; } It is possible to declare more than one variable at the same time: int main() { int Variable1, Variable2, Variable3; int abc, def, ghi; double Numeric – Real 2.2 X 10-308 to 1.8 X 10308 char Character All ASCII characters Only one thing makes a dream impossible: The fear of failure Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 5 } To declare a constant is not much different then declaring a variable. The only difference is that you have the word const in front of it: int main() { const float PI = 3.14; char = 'A'; } Note: As you can see, you can assign a value with the equal sign during declaration. Signed and unsigned variables The difference between signed and unsigned variables is that signed variables can be either negative or positive but unsigned variables can only be positive. By using an unsigned variable you can increase the maximum positive range. When you declare a variable in the normal way it is automatically a signed variable. To declare an unsigned variable you just put the word unsigned before your variable declaration or signed for a signed variable although there is no reason to declare a variable as signed since they already are. int main() { unsigned int MyOnlyPositiveVar; signed int MyNegativeAndPositiveVar; int MyNegativeAndPositiveVar; } The joy of life comes from the wisdom of counting your blessings,never your trouble Focus on what you have and maintain a thankful heart. Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 6 Calculations and variables There are different operators that can be used for calculations which are listed in the following table: Operator Operation + Addition -Subtraction * Multiplication /Division % Modulus(Remainder of integer division) Reading and printing Calculating something without reading input or printing something on the screen is not much fun. To read input from the keyboard we will use the command scanf. (How to print something to the screen we all ready know). So let’s make a program that can do all these things: #include int main() { int inputvalue; scanf("%d", &inputvalue); inputvalue = inputvalue * 10; I am always doing that which I cannot do, in order that I may learn how to do it...!! (Pablo Picasso). Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 7 printf("Ten times the input equals %d\n",inputvalue); } Note: The input must be a whole number (integer). The & sign will be explained in a later tutorial. The %d is for reading or printing a decimal integer value (It is also possible to use %i). In the table below you can find the commands for other types: %i or %d int %c char %f float %lf double %s string That was all for now. In the next tutorial we take a look at the “if statement” and “switch statement”. Boolean Operators Some Operators in C are called Boolean operators because they give you either true or false when you use them to test a condition. The greater than sign “>” for instance is a Boolean operator. In the table below you see all the Boolean operators: == Equal ! Not != Not equal > Greater than < Less than Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 8 >= Greater than or equal <= Less than or equal && And || Or The if statement The if statement can be used to test conditions so that we can alter the flow of a program. In other words: if a specific statement is true, execute this instruction. If not true, execute this instruction. So lets take a look at an example: #include int main() { int mynumber; scanf("%d",&mynumber); if ( mynumber == 10 ) printf("Is equal\n"); } In the example above the user can input a number. The number is stored in the variable mynumber. Now take a look at the “if statement”: if the number stored in the variable mynumber is equal to ten, then print “is equal” on the screen. Simple, isn’t it. If the number is not equal to ten, then nothing gets printed. Great spirits have always encountered violent opposition from mediocre minds." Albert Einstein Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 9 Now take another look at the “if statement”: look at the placement of the semi-colon. As you can see there is no semi-colon behind the “if statement”. If there is just one instruction (if the statement is true), you can place it after the “if statement” (with an indentation). Are multiple instructions necessary then you will have to use curly brackets, like so: if ( mynumber == 10) { printf("is equal\n"); printf("closing program\n"); } Now we like to also print something if the “if statement” is not equal. We could do this by adding another “if statement” but there is an easier /better way. Which is using the so called “else statement” with the “if statement”. #include int main() { int mynumber; scanf("%d",&mynumber); if ( mynumber == 10 ) { printf("Is equal\n"); printf("Closing program\n"); } else Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 10 { printf("Not equal\n"); printf("Closing program\n"); } } Note: Take a look at the placement of the curly brackets ‘{}’and how the indentations are placed. This is all done to make reading easier and to make less mistakes in large programs. Nested if statements If you use an “if statement” in an “if statement” it is called nesting. Nesting ”if statements” can make a program very complex, but sometimes there is no other way. So use it wisely. Take a look at a nested “if statement” example below: #include int main() { int grade; scanf("%d",&grade); if ( grade <= 10 ) { printf("YOU DID NOT STUDY.\n"); printf("YOU FAILED ! \n"); } When you're right, no one remembers. When you're wrong, no one forgets. Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 11 else { if ( grade < 60 ) { printf("You failed \n"); printf("Study harder\n"); } else { if ( grade >= 60 ) printf("YOU PASSED ! \n"); } } } Note: Again take a look at the placing of the curly brackets and the placing of the indentations. So let’s walk through the example above: If the grade is equal or below ten, you did not study. If the grade is above ten, the program will go into the “else statement”. In the “else statement” there is another “if statement” (this is called as nesting). This “if statement” checks the grade again. If the grade is below sixty, you must study harder. In the “else statement” from this “if statement” there is another “if statement”. It checks whether the grade is above or equal to sixty. If it is, you passed the test. Multiple condition testing It is possible to test two or more conditions at once in an “if statement” with the use of the AND (&&) operator. Example: if ( a > 10 && b > 20 && c < 10 ) Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 12 If a is greater then ten and b is greater than twenty and c is smaller then ten, do something. So all three conditions must be true, before something happens. With the OR ( || ) operator you can test if one of two conditions are true. Example: if ( a = 10 || b < 20 ) If a equals ten or b is smaller then twenty then do something. So if a or b is true, something happens. The switch statement The switch statement is almost the same as an “if statement”. The switch statement can have many conditions. You start the switch statement with a condition. If one of the variable equals the condition, the instructions are executed. It is also possible to add a default. If none of the variable equals the condition the default will be executed. See the example below: #include int main() { char myinput; printf("Which option will you choose:\n"); printf("a) Program 1 \n"); printf("b) Program 2 \n"); scanf("%c", &myinput); switch (myinput) { case 'a': printf("Run program 1\n"); break; case 'b': Giving up does not always mean you are weak, sometimes, it means that you are strong enough to let go. Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 13 { printf("Run program 2\n"); printf("Please Wait\n"); break; } default: printf("Invalid choice\n"); break; } } Note: break is used to exit the switch. See the next tutorial for more details. for loop, while loop, break and continue In every programming language, thus also in the C programming language, there are circumstances were you want to do the same thing many times. For instance you want to print the same words ten times. You could type ten printf functions, but it is easier to use a loop. The only thing you have to do is to setup a loop that executes the same printf function ten times. There are three basic types of loops which are: “for loop” “while loop” “do while loop” The for loop The “for loop” loops from one number to another number and increases by a specified value each time. The “for loop” uses the following structure: for (Start value; end condition; increase /decrease value) Statement; Look at the example below: Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 14 #include int main() { int i; for (i = 0; i < 10; i++) { printf ("Hello\n"); printf ("World\n"); } } Note: A single instruction can be placed behind the “for loop” without the curly brackets. Let’s look at the “for loop” from the example: We first start by setting the variable i to 0. This is where we start to count. Then we say that the for loop must run if the counter i is smaller then ten. Last we say that every cycle i must be increased by one (i++). In the example we used i++ which is the same as using i = i +1. This is called incrementing. The instruction i++ adds 1 to i. If you want to subtract 1 from i you can use i–. It is also possible to use ++i or –i. The difference is is that with ++i the one is added before the “for loop” tests if i < 10. With i++ the one is added after the test i < 10. The while loop The while loop can be used if you don’t know how many times a loop must run. Here is an example: #include int main() Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 15 { int counter, howmuch; scanf("%d", &howmuch); counter = 0; while ( counter < howmuch) { counter++; printf("%d\n", counter); } } Let’s take a look at the example: First you must always initialize the counter before the while loop starts (counter = 1). Then the while loop will run if the variable counter is smaller than the variable “how much”. If the input is ten, then 1 through 10 will be printed on the screen. A last thing you have to remember is to increment the counter inside the loop (counter++). If you forget this the loop becomes infinitive. The do while loop The “do while loop” is almost the same as the while loop. The “do while loop” has the following form: do { do something; } while (expression); Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 16 Do something first and then test if we have to continue. The result is that the loop always runs once. (Because the expression test comes afterward). Take a look at an example: #include int main() { int counter, howmuch; scanf("%d", &howmuch); counter = 0; do { counter++; printf("%d\n", counter); } while ( counter < howmuch); } Note: There is a semi-colon behind the while line. Argument is bad but Discussion is good because Argument is to find out that who is right and Discussion is to find out that what is right Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 17 Break and continue To exit a loop you can use the break statement at any time. This can be very useful if you want to stop running a loop because a condition has been met other than the loop end condition. Take a look at the following example: #include int main() { int i; i = 0; while ( i < 20 ) { i++; if ( i == 10) break; } } In the example above, the while loop will run, as long i is smaller then twenty. In the while loop there is an if statement that states that if i equals ten the while loop must stop (break). With “continue;” it is possible to skip the rest of the commands in the current loop and start from the top again. (the loop variable must still be incremented). Take a look at the example below: Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 18 #include int main() { int i; i = 0; while ( i < 20 ) { i++; continue; printf("Nothing to see\n"); } } In the example above, the printf function is never called because of the “continue;”. Void If you don’t want to return a result from a function, you can use void return type instead of the int. like Void main (Void) Global and local variables A local variable is a variable that is declared inside a function. A global variable is a variable that is declared outside all functions. A local variable can only be used in the function where it is declared. A global variable can be used in all functions. See the following example: A person who only plays on good pitch can’t b a good player till he also plays on a bad pitch..!! Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 19 #include //Global variables int A; int B; int Add() { return A + B; } int main() { int answer; //Local variable A = 5; B = 7; answer = Add(); printf("%d\n",answer); } As you can see two global variables are declared, A and B. These variables can be used in main() and Add(). The local variable answer can only be used in main(). The dark nightmare of yesterday should not be permitted to destroy the bright vision of tomorrow! Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 20 Function prototypes A function prototype declares the function name, its parameters, and its return type to the rest of the program. This is done before a function is declared. (In most cases at the beginning of a program). To understand why function prototypes are useful, try the following program: #include void main() { printf("%d\n",Add(3)); /* <-There is the error ! */} int Add(int a, int b) { return a + b; } Note: just one parameter when the function is called. (Not a typo). The example above will be compiled on many of the compilers. They just give some warning, because the function Add() needs two parameters as input, not one. The result of this program cannot be foreseen. It works because many C compilers do not check for parameters matching either in type or count. The result is that you will spend a lot of time debugging programs, because you made a mistake of passing on to many or too few parameters to a function. To solve this problem you can make use of function prototypes. If you use prototypes, C checks the types and count of the parameter list. Try the next example: #include Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 21 int Add (int,int); /* function prototype for Add */void main() { printf("%d\n",add(3)); /* <-There is the error ! */} int Add(int a, int b) { return a + b; } When you try to compile this program, the compiler will flag an error on the printf statement printf, Format Specifies, Format Conversions and Formatted Output In this C programming language tutorial we take another look at the printf function. We will look at how to use format specifiers to print formatted output onto the screen. The topics covered are; a little printf background, format specifiers and conversions, formatting of different types and format conversions of strings. printf Background The printf function is not part of the C language, because there is no input or output defined in C language itself. The printf function is just a useful function from the standard library of functions that are accessible by C programs. The behavior of printf is defined in the ANSI standard. If the compiler that you’re using conforms to this standard then all the features and properties should be available to you. Format Specifiers There are many format specifiers defined in C. Take a look at the following list: Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 22 %i or %d int %c char %f float %lf double %s string Note: %lf stands for long float. Let’s take a look at an example of printf formatted output: #include main() { int a,b; float c,d; a = 15; b = a /2; printf("%d\n",b); printf("%3d\n",b); printf("%03d\n",b); c = 15.3; d = c /3; printf("%3.2f\n",d); } Things you regret that you have done are erased by time. Things you regret that you have not done, remain with you forever. Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 23 Output of the source above: 7 7 007 5.10 As you can see in the first printf statement we print a decimal. In the second printf statement we print the same decimal, but we use a width (%3d) to say that we want three digits (positions) reserved for the output. The result is that two “space characters” are placed before printing the character. In the third printf statement we say almost the same as the previous one. Print the output with a width of three digits, but fill the space with 0. In the fourth printf statement we want to print a float. In this printf statement we want to print three position before the decimal point (called width) and two positions behind the decimal point (called precision). The \n used in the printf statements is called an escape sequence. In this case it represents a newline character. After printing something to the screen you usually want to print something on the next line. If there is no \n then a next printf command will print the string on the same line. Commonly used escape sequences are: \n (newline) \t (tab) \v (vertical tab) \f (new page) \b (backspace) \r (carriage return) \n (newline) Let’s take another look at a printf formatted output in a more application like example: Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 24 #include main() { int Fahrenheit; for (Fahrenheit = 0; Fahrenheit <= 300; Fahrenheit = Fahrenheit + 20) printf("%3d %06.3f\n", Fahrenheit, (5.0/9.0)*(Fahrenheit-32)); } Output of the source above: 0 -17.778 20 -6.667 40 04.444 60 15.556 80 26.667 100 37.778 120 48.889 140 60.000 160 71.111 180 82.222 200 93.333 220 104.444 Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 25 240 115.556 260 126.667 280 137.778 300 148.889 As you can see we print the Fahrenheit temperature with a width of 3 positions. The Celsius temperature is printed with a width of 6 positions and a precision of 3 positions after the decimal point. Let’s recap: %d (print as a decimal integer) %6d (print as a decimal integer with a width of at least 6 wide) %f (print as a floating point) %4f (print as a floating point with a width of at least 4 wide) %.4f (print as a floating point with a precision of four characters after the decimal point) %3.2f (print as a floating point at least 3 wide and a precision of 2) Formatting other Types Until now we only used integers and floats, but there are more types you can use. Take a look at the following example: #include main() { printf("The color: %s\n", "blue"); printf("First number: %d\n", 12345); printf("Second number: %04d\n", 25); printf("Third number: %i\n", 1234); Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 26 printf("Float number: %3.2f\n", 3.14159); printf("Hexadecimal: %x\n", 255); printf("Octal: %o\n", 255); printf("Unsigned value: %u\n", 150); printf("Just print the percentage sign %%\n", 10); } Output of the source example: The color: blue First number: 12345 Second number: 0025 Third number: 1234 Float number: 3.14 Hexadecimal: ff Octal: 377 Unsigned value: 150 Just print the percentage sign % Note: In the last printf statement only the percentage sign is printed. The number 10 in this statement doesn’t matter; it’s not used in the output. So if you want to print a percentage number you would use something like this: printf(“%2d%%\n”, 10); (The output will be 10%) Formatting Strings By now you have seen most of the format conversion possible, but there is one type that is a little different and that are string format conversions. Take a look at the following example: A successful person is one who can lay a firm foundation with the bricks that others throw at him or her. David Brinkley Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 27 #include main() { printf(":%s:\n", "Hello, world!"); printf(":%15s:\n", "Hello, world!"); printf(":%.10s:\n", "Hello, world!"); printf(":%-10s:\n", "Hello, world!"); printf(":%-15s:\n", "Hello, world!"); printf(":%.15s:\n", "Hello, world!"); printf(":%15.10s:\n", "Hello, world!"); printf(":%-15.10s:\n", "Hello, world!"); } The output of the example above: :Hello, world!: : Hello, world!: :Hello, wor: :Hello, world!: :Hello, world! : :Hello, world!: : Hello, wor: :Hello, wor : 2 Secrets to Keep your Life Happy and Avoid Clashes.., 1.Whenever u r Wrong Admit it! But, 2. Whenever u r Right be Silent! Career Coaching Centre Department Of Computer Science Written by | Saiyed Shahab Ahmed (MS – IBA, BS – UoK) 28 As you can see, the string format conversion reacts very different from number format conversions. The printf(“:%s:\n”, “Hello, world!”); statement prints the string (nothing special happens.) The printf(“:%15s:\n”, “Hello, world!”); statement prints the string, but print 15 characters. If the string is smaller the “empty” positions will be filled with “whitespace.” The printf(“:%.10s:\n”, “Hello, world!”); statement prints the string, but print only 10 characters of the string. The printf(“:%-10s:\n”, “Hello, world!”); statement prints the string, but prints at least 10 characters. If the string is smaller “whitespace” is added at the end. (See next example.) The printf(“:%-15s:\n”, “Hello, world!”); statement prints the string, but prints at least 15 characters. The string in this case is shorter than the defined 15 character, thus “whitespace” is added at the end (defined by the minus sign.) The printf(“:%.15s:\n”, “Hello, world!”); statement prints the string, but print only 15 characters of the string. In this case the string is shorter than 15, thus the whole string is printed. The printf(“:%15.10s:\n”, “Hello, world!”); statement prints the string, but print 15 characters. If the string is smaller the “empty” positions will be filled with “whitespace.” But it will only print a maximum of 10 characters, thus only part of new string (old string plus the whitespace positions) is printed. The printf(“:%-15.10s:\n”, “Hello, world!”); statement prints the string, but it does the exact same thing as the previous statement, accept the “whitespace” is added at the end.

Comments

Want to learn?

Sign up and browse through relevant courses.

Name:
Your Email:
Password:
Country:
Contact no:


Area code Number
Subjects you are interested in:
Word verification: (Enter the text as in image)


Sign Up Already a member? Sign In
I agree to WizIQ's User Agreement & Privacy Policy

Your Facebook Friends on WizIQ

Give live classes, create & sell online courses

Try it free Plans & Pricing

Connect