Page 1 :
1, Programming for Problem Solving (KCS-201), Module – 1, What is Computer?, ➢ The term computer is derived from the word “compute” which means “to calculate”., ➢ A computer is an electronic machine that accepts input, processes it and produces output according to, the specified rules., ➢ Computer is an electronic data processing device which accepts and stores data input, processes the data, input and generates the output in a required format., ➢ It is a device that can perform counting, comparison, and manipulation operations at a very high speed., INTRODUCTION TO DIGITAL COMPUTER, A computer which understands only binary digits i.e. ‘1’ for high volts and ‘0’ for low volts is called digital, computer. The analog to digital convertor (ADC) converts electrical signals to binary digits whereas the digital, to analog converter (DAC) converts binary digits to their equivalent electrical signals as shown below., , Wave signal shown below digit 1, for 5V & digit 0 for 0V all digit has, same time duration pulse, , Binary digits, 101101, , High volt +5, , Low volt 0, , Digital to analog, converter, , 1, , 1, , 0, , 1, , 1, , 0, , ➢ Digital computers are the devices capable of solving problems by processing information in discrete, form only., ➢ It operates on data, including magnitudes, letters, and symbols, that are expressed in binary form—i.e.,, using only the two digits 0 and 1., , Characteristics of Digital Computer:, All the digital computers have certain common characteristics irrespective of their types & sizes. Computers, can be programmed to perform complex tasks due to following characteristics:
Page 2 :
2, 1. Speed: A digital computer is an extremely fast machine due to rapid processing as compared to human, processing. The computer based processing goes far beyond that of seconds i.e. milliseconds (10-3, seconds), microseconds (10-6 seconds), nanoseconds (10-9 seconds) and picoseconds (10-12 seconds)., 2. Accuracy: Digital computers are highly accurate machines and they never make mistakes., 3. Reliability: Digital computers can be constructed and programmed in such a manner that they would, always yield guaranteed results., 4. Memory Capability: The capability of storage makes computer very useful. It saves the effort of inputs, every time. The facilities of the storage of data are on the temporary basis as well as on the long term, basis., 5. Versatility: Digital computers are highly useful everywhere in different respects such as in, business/banking/industries, for personal use at home, in schools/colleges for education purpose, in, scientific/engineering research, for satellite control and many more applications., , Basic Anatomy of a Computer System:, A computer system comprises of hardware & software components. Hardware refers to the physical parts of, computer system and software is the set of instructions (programs) that are necessary for the functioning of a, computer to perform certain tasks., , Functional Components (Hardware) of Digital Computer:, The digital computer consists of following four major components as shown in the block diagram., 1. Input Unit →It consists of input devices to accept data on which operations are to be performed. (e.g., Keyboard, Mouse, Scanner, Light pen, Joystick etc.), 2. Processing Unit → It is also known as C. P. U. (Central Processing Unit), it is used to perform calculations, & other data processing tasks. (Major components are A. L. U. & C. U.), 3. Output Unit → It consists of output devices to providing the output of a program that is obtained after, performing operations (e.g. Monitor, Printer, Speaker, Plotter etc.), 4. Memory Unit → This unit is used for storing the input data as well as output of a program. Memories can, be either primary (RAM) or secondary (ROM)., BLOCK DIAGRAM OF DIGITAL COMPUTER, , CENTRAL PROCESSING UNIT, , INPUT, DEVICES, , ARITHMETIC & LOGIC UNIT, (ALU), , OUTPUT, DEVICES, , CONTROL UNIT, (CU), , MEMORY UNIT, , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~, Basic Operations of Digital Computer:
Page 3 :
3, A digital computer is a programmable machine which reads the binary instructions and processes them, according to certain requirements of users. For proper operation, a typical digital computer system requires, specific functional components as shown in the above block diagram & described below., ❖ CPU Operations: The central processing unit is the “brain” of a digital computer where all kinds of, processing is done. This unit takes data from the input devices and processes it according to the set of, instructions called “program”. After processing it gives result to the output devices., Some example processors are: IBM/370 series, CDC 7600, PDP 11 (16 bit), CYBER-175 etc., CPU has following two major parts:, ➢ (1) Arithmetic & Logic Unit (ALU): ALU is responsible to carry out following tasks:, ▪ Performs arithmetic operations such as:, • Addition, (+), • Subtraction, (-), • Multiplication, (*), • Division, (/), • Modulus, (%), • Increment, (++), • Decrements, (--), ▪, , Performs logical operations such as:, •, •, •, , Boolean AND, Boolean OR, Boolean NOT, , (&&), (||), (!), , ➢ (2) Control Unit (CU): CU is responsible to carry out following tasks:, ▪ Generates electronic control signals for the synchronization of various operations., ▪ Acts as an interface between main memory and ALU., ▪ Transfers data and instructions to the ALU., ❖ Memory Operations: The memory is also known as storage device, where data and programs reside., The information stored in the memory may be used immediately or it can be kept for later use for, processing by CPU. The memory can be classified in following categories:, ➢ Primary Memory (Main Memory or RAM): Primary storage of a computer is also known as its main, memory. It is made up of ‘semiconductors’. Primary storage can hold information only while computer, system is ON. The information is erased as the system turned off. Hence it is also called Volatile Memory., It is called Random Access Memory (RAM) because C.P.U. can access any location of memory, at any time. Its access time is 10 nano seconds (n.s.) per cycle., It has limited storage capacity because it is very expensive. Primary storage of modern computers, is made up of semi-conductor devices., Main memory is responsible for:, ▪ Holding pieces of program (i.e. instructions), immediate results, recently produced results on which, the CPU is currently working., ▪ Providing access of current data & programs directly to CPU at a very high speed.
Page 4 :
4, ➢ Secondary Memory (Auxiliary Memory or ROM): Secondary storage of a computer is also known, as auxiliary memory. Secondary storage can hold information permanently i.e. information persists even, after the computer system is turned OFF. Hence it is also called Non-Volatile Memory., It is called Read Only Memory (ROM) because the contents of ROMs is decided (i.e. pre-written), by programmers to store various programs/software or manufacturers of ROMs to store software for, assemblers, compilers, debugging packages, function tables such as sine, cosine, logarithm, square root,, etc., NOTE: It has large storage capacity because it is relatively cheaper than primary storage., Secondary memory is responsible for:, ▪ Holding large data and information for later use when it is not currently required for processing., ▪ Providing access to main memory when required for CPU processing at relatively slower speed., Categories of ROMs are:, • Magnetic storage devices (such as hard disks, magnetic tapes etc.)., • Optical storage devices (such as CD ROM, CD RW, DVD ROM etc.)., • Magneto-optical storage devices (such as pen drive etc.)., ❖ Input & output (I/O) Operations:, I/O devices commonly referred to as peripheral devices and consist of:, ▪ Input unit (such as keyboards, scanners etc.) for feeding instructions and data into the computer., Keyboard: Keyboard allows inputting data by the user. A standard keyboard includes alphanumeric, keys (alphabets & special symbols), function keys (F1 to F12), modifier keys (Shift, Ctrl etc.), cursor, movement keys (arrows), spacebar, escape key, numeric keypad and some special keys (such as Page, Up, Page Down, Home, Insert, Delete, End)., Mouse: The mouse is also known as pointing device as it allows the user to select elements on the, screen by pointing & clicking them as well as to draw & paint on the screen. A mouse normally, consists of two buttons (left button for selection & right button for special options), a wheel at the top, to scroll page and a ball at the bottom to move the cursor on the screen., Scanner: A scanner is an input device that converts documents and images in digitized form, understandable by computer system. Digitized images (i.e. collection of dots) may be black & white,, gray or colored images. In case of colored images, each dot represents a combination of red, green &, blue (RGB) colors, varying in proportions (to generate other colors). the proportions of RGB colors, assigned to a dot are together called as color description., There are following types of scanners such as flatbed scanner, drum scanner, slide scanner, handheld, scanner etc., ▪, , Output unit (such as printers, monitors, plotters etc.) for displaying results., Monitor: It is the most commonly used output device to produce visual displays generated by the, computer. Monitors (computer screens) can be classified according to manufacturing type such as, CRT (Cathode Ray Tube), LCD (Liquid Crystal Display), etc., The quality of a good monitor can be judged by its resolution (i.e. the number of picture elements, called pixels). It means higher the resolution, clearer the image., Printer: It is an output device that transfers the text or images displayed on the screen, onto paper, sheets that can be used by the end users. Various types of printers can be categorized as dot matrix, printers, inkjet printers, laser printers etc.
Page 5 :
5, The performance of a printer is measured in terms of dots per inch (DPI) i.e. greater the DPI,, better the quality of output & pages per minute (PPM) i.e. higher PPM represents higher, efficiency of printer., Plotter: A plotter is another commonly used output device to print large documents such as, engineering or constructional drawings. Plotters use multiple ink pens or inkjets with color cartridges, for printing. A computer transmits binary signals to all the print heads of the plotter. Each binary signal, contains the coordinates of where a print head needs to be positioned for printing. Plotters are classified, as drum plotter, flatbed plotter, inkjet plotter, electrostatic plotter etc., ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~, , Software: Software is defined as a collection of computer programs, which include logical instructions used, for performing a particular task on computer system using hardware components., Following are the two major categories of software under which different types of computer programs can be, classified:, 1. System Software, 2. Application Software, ❖ System Software: System software refers to the set of computer programs that manages and controls, functioning of hardware components of a computer system. It is also responsible for proper functioning, of the application software. System software provides an environment for developing new application, software using programming languages. It includes software packages such as operating system & utility, programs. Following are the functions of system software:, ▪, ▪, ▪, , Process management, Memory management, I/O system management, , ❖ Application Software: Application software is a computer program that is executed on the system, software. It is designed & developed for performing specific tasks by the end users, hence also called end, user program. Application software is unable to run without the system software. Application software, includes several applications such as word processing, spreadsheet, music player, database applications, and many more. Examples are: MS Word, MS Excel, MS PowerPoint, SQL etc., , Computer Languages: The operations of a computer are controlled by a set of instructions (called a, computer program). These instructions are written to tell the computer:, a. What operation is to be performed?, b. Source & destination of input & output data, c. When to make decisions?, The communication between two parties (human or machines) always need a common language. The language, used in the communication between computer instructions is known as the programming language., Three levels of programming languages are available:
Page 6 :
6, 1. Machine Language (Low Level Language), 2. Assembly Language (Middle Level Language), 3. Procedure Oriented Language (High Level Language), , Machine Language: As computers are made up of two-state electronic devices so they can understand only, pulse and no-pulse (i.e. 1 and 0) conditions. Therefore, all instructions & data should be written using binary, codes. It is also known as ‘low level language’., It is also known as 1st generation language. Machine language is basic language of computer representing, data in the form of 1s and 0s. They are machine (hardware) dependent. This language is not easy to understand, by the user i.e. less user friendly., , Assembly Language: It is a 2nd generation language, also known as ‘middle level language’. This language, uses mnemonics that correspond to a stream of executable instructions. The mnemonic code is also called, operation code or opcode. Assembly language is also machine dependent. E.g. LDA X means Load X, SUB Y, means Subtract Y, INC A means Increment A etc., A computer can execute program only in machine language hence assembly language requires a translator, called ‘assembler’. An assembler is used to convert assembly language into machine language and vice-versa., , ASSEMBLY CODE, MNEMONICS, , MACHINE CODE 0 AND, 1 FORM, ASSEMBLER, , HIGH LEVEL LANGUAGE, , MACHINE CODE 0 AND, 1 FORM, COMPILER, , High level Language: 3rd & higher generation languages are referred as High Level Languages. These are, English-like languages which are required to write programs by the user. These languages have predefined rules, for writing programs. Examples of high level languages are: C, C++, JAVA, C# etc., Since a computer cannot understand high level language hence high level languages also require a, translator called ‘compiler’ or ‘interpreter’., Compiler & interpreter both can convert high-level language in to machine language (& vice versa) but, with little difference such as:, •, •, •, , Compiler compiles the whole program at a time while interpreter compiles a program line-by-line and, then executes., Compiler takes less time for compilation of source code whereas interpreter takes more time for, compilation of same code., In compiler, object code can be saved after execution for latter use but object code cannot be saved in the, interpreter.
Page 7 :
7, INTRODUCTION TO ‘C’, What is C?, C is a programming language developed at AT & T’s Bell Laboratories of USA in 1972. It was designed and, written by Dennis Ritchie. In the late seventies C began to replace the more familiar languages of that time like, ALGOL, BCPL, B etc., , Features of C:, ➢ C is a high level language having lesser number of keywords than Java or Pascal., ➢ C is a native language of UNIX, Linux & many of the Windows packages, database programs, graphics, libraries are written using C programs., ➢ C is portable since it provides standard set of libraries that work on the same way with all machines., ➢ C is modular, as it supports functions to divide the program into sub-programs., , Getting Started with C:, There is a close analogy between learning English language and learning C language. Following figure, shows this:, , English, Language, , Alphabets ➔, , Words ➔, , Sentences ➔, , Paragraphs, , C Programming, Language, , Alphabets /, Digits / Special, symbols ➔, , Constants /, Variables /, Keywords ➔, , Instructions ➔, , Programs, , Character Sets in C:, A character denotes any alphabet, digit or special symbol used to represent information. Following, figure shows the valid alphabets, numbers and special symbols allowed in C., Alphabets, , A, B, ….., Y, Z and, a, b, ……, y, z, , Digits, , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , Special symbols, , ~‘!@#%^&*()_-+, =|\{}[]:;"'<>,.?/, , ➢ The alphabets, numbers and special symbols when properly combined; form constants, variables and, keywords.
Page 8 :
8, Structure of a C program:, •, , Comments (optional): The comments are usually ignored by the compiler so this part is used only to, inform about the necessary descriptions of the program., Comments are of two types:, (i), (ii), , // Single line comment, /* —– Multi line comments ….*/, , 1. Preprocessor Directives, •, •, •, , Before the compiler runs, the preprocessing takes place., The preprocessors are prefix with a symbol #, Some examples are: #include, #define, #ifdef, #pragma, etc., , 2. Function Prototypes*, •, •, •, , It is used to inform the compiler that the following functions are defined in this program., It specifies the name of the function, arguments or parameters and return type and it ends with a, semicolon., Example: int sum(int, int);, , 3. Global Variables*, •, •, , Global variables are declared above all the functions, As the name says, they are available to all the functions of that program, , 4. Main Function, •, •, •, , main() is the name of the function which is main (important) to the entire program, Every C program must have a main() function, *When the main program returns nothing, i.e. void, syntax used is: void main() { }, , 5. User-defined Functions*, •, •, , User defined functions are defined after the main() function as per the function prototype declared in the, program., These functions may also be defined above (before) the main function. In that case, there is no need for, function prototype. For example:, int sum(int a, int b), {, int x;, x=a+b;, return x;, }, , NOTE: The points marked with * will be discussed in detail under the topic “FUNCTIONS in C”.
Page 9 :
9, Basic structure of a C Program:, /* Program to display your name*/, #include <stdio.h>, // including the standard IO functions like printf(), scanf(), void main(), // main() function, {, // start of main() function, printf(“name”);, // body of main() function, }, // end of main() function, , Basic Data Types in C: There are five atomic data types in C: character, integer, floating-point, double, floating-point and valueless i.e. char, int, float, double, and void respectively., All other data types in C are based upon one of these types. The size and range of these data types may, vary between processor types and compilers. However, in all cases a character is 1 byte. The size of an integer is, usually the same as the word length of the execution environment of the program. For most 16-bit environments,, such as DOS or Windows 3.1, an integer is 16 bits. For most 32-bit environments, such as Windows NT, an, integer is 32 bits., Following table shows all data types defined by the ANSI/ISO C Standard:, Type, , Typical Size in Bits, , Range, −128 to +127 (i.e. -27 to +27-1), , char, , 8, , unsigned char, , 8, , 0 to 255 (i.e. 0 to 28-1), , signed char, , 8, , −128 to +127, , int, , 16, , unsigned int, , 16, , signed int, , 16, , short int, , 16, , unsigned short int, , 16, , signed short int, , 16, , same as short int, , long int, , 32, , −2,147,483,648 to +2,147,483,647, , signed long int, , 32, , same as long int, , unsigned long int, , 32, , 0 to 4,294,967,295, , float, , 32, , 3.4e-38 to 3.4e+38, , double, , 64, , 1.7e-308 to 1.7e+308, , −32,768 to +32,767 (i.e. -215 to +215-1), 0 to 65,535 (i.e. 0 to 216-1), same as int, −32,768 to +32,767, 0 to 65,535
Page 10 :
10, Tokens in C: Tokens are classified as:, ➢, ➢, ➢, ➢, ➢, , Keywords, Identifiers (Variables), Constants, Special Symbols, Operators, , ❖ Keywords in C:, ➢ Keywords are the words whose meaning has already been explained to the C compiler. The keywords cannot, be used as variable names because if we do so we are trying to assign a new meaning to the keyword, which, is not allowed by the computer., , ➢ The keywords are also called ‘Reserved words’. There are only 32 keywords available in C. following table, lists all the keywords used in C:, auto, break, case, char, const, continue, default, do, , double, else, enum, extern, float, for, goto, if, , int, long, register, return, short, signed, sizeof, static, , struct, switch, typedef, union, unsigned, void, volatile, while, , ❖ Identifiers: Identifiers are the variable names declared inside the program., Definition: A variable is an entity that may change whereas a constant is an entity that doesn’t change., , Variables in C: An entity that may vary during program execution is called a variable. Variable names are, names given to locations in memory. These locations can contain integer, real or character constants. In any, language, the types of variables that it can support depend on the types of constants that it can handle. This is, because a particular type of variable can hold only the same type of constant., For example, an integer variable can hold only an integer constant, a real variable can hold only a real, constant and a character variable can hold only a character constant., NOTE:, 1. The rules for constructing different types of constants are different. However, for constructing, variable names of all types the same set of rules apply., 2. These rules remain same for all the types of primary and secondary variables. The ‘type’, preceding the ‘variable names’ distinguishes them from each other., , ➢ Rules for Constructing Variable Names, ➢ A variable name is any combination of 1 to 31 alphabets, digits or underscores i.e. _. Some compilers, allow variable names whose length could be up to 247 characters., ➢ Do not create unnecessarily long variable names as it adds to your typing effort., ➢ The first character in the variable name must be an alphabet or underscore., ➢ No commas or blanks are allowed within a variable name., ➢ No special symbol other than an underscore (e.g. gross_salary) can be used in a variable name.
Page 11 :
11, ➢, , They are case sensitive i.e Var_name is different from var_name, , Some valid identifiers are:, avg, x2, , Value, Chennai, , area_of_circle, Sum1, , x1, abcd, , Some invalid identifiers are:, 123, 1st, , %, ab-d, , (value), Sum of total, , 27th, x&y, , ❖ Constants in C: C constants can be divided into two major categories:, 1. Primary Constants:, ➢ Integer Constant, ➢ Real Constant, ➢ Character Constant, 2. Secondary Constants:, ➢, ➢, ➢, ➢, ➢, , Array, Pointer, Structure, Union, Enum, etc., , For constructing these different types of constants certain rules have been laid down. These rules are as under:, , ➢ Rules for Constructing Integer Constants, •, •, •, •, •, •, , An integer constant must have at least one digit., It must not have a decimal point., It can be either positive or negative., If no sign precedes an integer constant it is assumed to be positive., No commas or blanks are allowed within an integer constant., The allowable range for integer constants is -32768 to +32767., , Truly speaking, the range of an Integer constant depends upon the compiler. For a 16-bit compiler like Turbo C or, Turbo C++, this range is –32768 to +32767., , Examples of integer constants: 426, +782, -8000, -7605 etc., , ➢ Rules for Constructing Real Constants, Real constants are often called Floating Point constants. The real constants could be written in two forms—, Fractional form and Exponential form., Following rules must be observed while constructing real constants expressed in fractional form:, • A real constant must have at least one digit., • It must have a decimal point., • It could be either positive or negative., • Default sign is positive., • No commas or blanks are allowed within a real constant.
Page 12 :
12, Examples of valid real constants (in fractional form): +325.34, 426.0, -32.76, -48.5792 etc., The exponential form of representation of real constants is usually used if the value of the constant is either, too small or too large. In exponential form of representation, the real constant is represented in two parts. The part, appearing before ‘e’ is called mantissa, whereas the part following ‘e’ is called exponent., Following rules must be observed while constructing real constants expressed in exponential form:, •, •, •, •, •, , The mantissa part and the exponential part should be separated by a letter e., The mantissa part may have a positive or negative sign., Default sign of mantissa part is positive., The exponent must have at least one digit, which must be a positive or negative integer. Default sign is positive., Range of real constants expressed in exponential form is -3.4e38 to 3.4e38., , Examples of valid real constants (in exponential form): +3.2e-5, 4.1e8, -0.2e+3, -3.2e-5 etc., , ➢ Rules for Constructing Character Constants, •, •, , A character constant is a single alphabet, a single digit or a single special symbol enclosed within single, inverted commas., The maximum length of a character constant can be 1 character., , Examples of valid character constants: 'A', 'I', '5' '=', '+' etc., , ❖ Special Symbols: Special symbols are the characters used other than alphabets & digits such as:, ~ ‘ ! @ # % ^ & * ( ) _ - + = | \ { } [ ] : ; " ' < > , . ? / etc., , ❖ Operators in C: To perform various operations, a large verity of operators is available in C., Arithmetic Operator, −, +, *, /, %, , Logical Operator, &&, ||, !, , Action, Subtraction, Addition, Multiplication, Division, Modulus, , Action, Logical AND, Logical OR, Logical NOT, , Relational Operator, ==, !=, >, <, >=, <=, Bitwise Operator, &, |, ^, ~, <<, >>, , Action, Equal to, Not equal to, Greater than, Less than, Greater than or equal to, Less than or equal to, Action, Bitwise AND, Bitwise OR, Bitwise XOR, One’s complement, Shift left, Shift right
Page 13 :
13, Unary Operator, , Action, , ++, ––, , Unary minus, Increment, Decrement, , Assignment Operator, =, Conditional operator, ?:, e. g. x = (a>b)? a : b;, , Action, “Assignment” of value on the right side of it to the variable on the left side., Action, Condition test? True : false, means if the condition a> b is true then a is assigned to x, if false then b is, assigned to x., , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Page 14 :
14, The First C Program: Armed with the knowledge about the types of variables, constants, keywords, & operators, the next logical step is to combine them to form instructions., Before we begin with our first C program, do remember the following rules that are applicable to all C programs:, ➢ Each instruction in a C program is written as a separate statement. Therefore a complete C program would, comprise of a series of statements., ➢ The statements in a program must appear in the same order in which we wish them to be executed; unless of, course the logic of the problem demands a deliberate ‘jump’ or transfer of control to a statement, which is, out of sequence., ➢ Blank spaces may be inserted between two words to improve the readability of the statement. However, no, blank spaces are allowed within a variable, constant or keyword., ➢ All statements should be entered in small case letters since C is a case sensitive language.., ➢ C has no specific rules for the position at which a statement is to be written. That’s why it is often called a, “free-form language”., ➢ Every C statement must end with a semicolon (;). Thus ; acts as a statement terminator., Let us now write down our first C program. It would simply calculate simple interest for a set of values, representing principle, number of years and rate of interest., /* Calculation of simple interest */, main( ), {, int p, n ;, float r, si ;, p = 1000 ;, n=3;, r = 8.5 ;, /* formula for simple interest */, si = p * n * r / 100 ;, printf ( "%f" , si ) ;, }, Now a few useful tips about the program..., 1. Comment about the program should be enclosed within /* */. For example, the first statement in our, program is comment., 2. Though comments are not necessary, it is a good practice to begin a program with a comment indicating, the purpose of the program., 3. Any number of comments can be written at any place in the program. For example, a comment can be, written before the statement, after the statement or within the statement as shown below:, /* formula */ si = p * n * r / 100 ;, si = p * n * r / 100 ; /* formula */, si = p * n * r / /* formula */ 100 ;, 4. Sometimes it is worthwhile mentioning the purpose of the statement (or a set of statements) using a, comment. e.g., /* formula for simple interest */
Page 15 :
15, si = p * n * r / 100 ;, 5. main( ) is a collective name given to a set of statements. Technically speaking main( ) is a function. Every, C program must start with this function. Every function has a pair of parentheses ( ) associated with it., All statements that belonging to a function are enclosed within a pair of braces { } as shown below., main( ), {, statement 1 ;, statement 2 ;, statement 3 ;, }, 6. Any variable used in the program must be declared before using it. e.g.,, int p, n ;, float r, si ;, 7. Any C statement always ends with a ; For example,, float r, si;, r = 8.5;, 8. In the statement,, si = p * n * r / 100 ;, * and / are the arithmetic operators. (The arithmetic operators available in C are +, -, *, / and %)., 9. Once the value of si is calculated it needs to be displayed on the screen. Unlike other languages, C does, not contain any instruction to display output on the screen. All output to screen is achieved using, readymade library functions such as printf( )., , ➢ The general form of printf( ) function is:, printf ( "format strings", list of variables ) ;, Where format strings can contain format specifiers and/or other strings., , Format Specifiers:, ➢ Format specifiers are used to input & output data types., ➢ The scanf() & printf() functions accepts a wide variety of format specifiers, some of them are shown in, the following table:, , Data type, , Format Specifier
Page 16 :
16, short signed int, short unsigned int, long singed int, long unsigned int, unsigned hexadecimal int, unsigned octal int, float, double, signed character, unsigned character, string, , %d, %u, %ld, %lu, %x, %o, %f, %lf, %c, %c, %s, , Operator precedence & associativity: C provides various operators for smooth operations. These, operators having their own order of execution in mixed operators., The order of execution is known as precedence. In same precedence order, the direction of execution is called, associativity. The associativity may be left to right or right to left., In left to right association the evaluation start from left and in right to left association evaluation start from right., Various operators and their precedence are given below:, Operator name, , Symbol, , Associativity, , Precedence, , Special, Unary, Arithmetic, Arithmetic, Bitwise shift, Relational, Equality, Bitwise AND, Bitwise EX-OR, Bitwise OR, Logical AND, Logical OR, Conditional, Assignment, Comma, , ( ) [ ] ->, ! ~ ++ -- - & * sizeof type cast, * / %, + << >>, < > <= >=, == !=, &, ^, |, &&, ||, ?:, = += -= *= /=, ,, , Left to right, Right to left, Left to right, Left to right, Left to right, Left to right, Left to right, Left to right, Left to right, Left to right, Left to right, Left to right, Right to left, Right to left, Left to right, , 1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, 11th, 12th, 13th, 14th, 15th, , Mixed operators & type conversions: C permits use of mixed type of operands together. It permits, mixing of constant and variable of different types in expressions. The conversion result will be one of the, following:, ➢ Implicit conversion (i.e. automatic), ➢ Explicit conversion (i.e. user can convert it explicitly), In implicit or automatic (by default) conversion method, lower priority-order data type gets converted into, higher priority-order data type and result will be higher data type as following conversion sequence., The arrow shows order of conversions in mixed type of operators.
Page 17 :
17, , long double, double, float, long int, int, character short, Integer and Float Conversions: In order to effectively develop C programs, it will be necessary to, understand the rules that are used for the implicit conversion of floating point and integer values in C as mentioned, below., •, •, •, , An arithmetic operation between an integer and integer always yields an integer result., An operation between a real and real always yields a real result., An operation between an integer and real always yields a real result. In this operation the integer is first, promoted to a real and then the operation is performed. Hence the result is real., , Following table illustrates this:, Operation, , Result, , Operation, , Result, , 5/2, , 2, , 2/5, , 0, , 5.0 / 2, , 2.5, , 2.0 / 5, , 0.4, , 5 / 2.0, , 2.5, , 2 / 5.0, , 0.4, , 5.0 / 2.0, , 2.5, , 2.0 / 5.0, , 0.4, , Type Conversion in Assignments: It may so happen that the type of the expression and the type of the, variable on the left-hand side of the assignment operator may not be same. In such a case the value of the, expression is promoted or demoted depending on the type of the variable on left-hand side of =., For example, consider the following assignment statements:, int i;, float b;, i = 3.5;, b = 30;, Here in the first assignment statement though the expression’s value is a float (3.5) it cannot be stored in, i since it is an int. In such a case the float is demoted to an int and then its value is stored. Hence what gets stored
Page 18 :
18, in i is 3. Exactly opposite happens in the next statement. Here, 30 is promoted to 30.000000 and then stored, in b, since b being a float variable cannot hold anything except a float value., Instead of a simple expression used in the above examples if a complex expression occurs, still the same, rules apply. For example, consider the following program fragment., float a, b, c;, int s;, s = a * b * c / 100 + 32 / 4 - 3 * 1.1;, Here, in the assignment statement some operands are ints whereas others are floats. As we know, during, evaluation of the expression; the ints would be promoted to floats and the result of the expression would be a, float. But when this float value is assigned to s it is again demoted to an int and then stored in s., Observe the results of the arithmetic statements shown in following figure. It has been assumed that k is, an int variable and a is a float variable., , Arithmetic, Instruction, k=2/9, k = 2.0 / 9, k = 2 / 9.0, k = 2.0 / 9.0, k=9/2, k = 9.0 / 2, k = 9 / 2.0, k = 9.0 / 2.0, , Result, 0, 0, 0, 0, 4, 4, 4, 4, , Arithmetic, Instruction, a=2/9, a = 2.0 / 9, a = 2 / 9.0, a = 2.0 / 9.0, a=9/2, a = 9.0 / 2, a = 9 / 2.0, a = 9.0 / 2.0, , Result, 0.0, 0.2222, 0.2222, 0.2222, 4.0, 4.5, 4.5, 4.5