CSE115 Lecture 03 Introduction to C Programming PDF
Document Details
Tags
Summary
This document is a lecture on C programming, covering basic concepts like syntax and semantics, along with examples and explanations. It explains the use of the printf and scanf functions for input and output, and also presents a simple "Hello, World!" program in C.
Full Transcript
Lecture 03 Introduction to C Programming CSE115: Computing Concepts Semantics and Syntax Semantics – the meaning of the language within a given context Syntax - Syntax are the rules to join words together in forming a correct expression or phrase. In natural languages it is often possible...
Lecture 03 Introduction to C Programming CSE115: Computing Concepts Semantics and Syntax Semantics – the meaning of the language within a given context Syntax - Syntax are the rules to join words together in forming a correct expression or phrase. In natural languages it is often possible to assemble a sentence in more than one correct ways. C Programming Language Why 'C' ? Because based on 'B'; developed at Bell Laboratories Developed by Dennis Ritchie at Bell Laboratories in the 1960s In cooperation with Ken Thomson it was used for Unix systems The C Language was only vaguely defined, not standardized, so that almost everyone had his own perception of it, to such an extend that an urgent need for a standard code was creeping up A Simple Program in C #include #include int main() { printf("Hello world!\n"); return 0; } A Simple Program in C #include #include standard Library, input-output, header-file int main() { printf("Hello world!\n"); return 0; } A Simple Program in C #include #include Beginning of program int main() { printf("Hello world!\n"); return 0; } A Simple Program in C #include #include int main() { Start of Segment printf("Hello world!\n"); return 0; } End of Segment A Simple Program in C #include #include int main() { Function for printing text printf("Hello world!\n"); return 0; End of statement } Insert a new line Output Hello world! General Form of a C Program preprocessor directives main function heading { declarations executable statements } A Simple Program in C #include #include int main() { printf("Hello world!\n"); return 0; } A Simple Program in C #include #include standard Library, input-output, header-file Beginning of program int main() { Start of Segment Function for printing text printf("Hello world!\n"); return 0; End of statement } Insert a new line End of Segment Preprocessor Directives A C program begins with # which provides an instruction to the C preprocessor It is executed before the actual compilation is done. Two most common directives : #include #define In our example (#include) identifies the header file for standard input and output operations. Function main() Identify the start of the program Every C program has a main( ) 'main' is a C keyword. We must not use it for any other purpose. 4 common ways of main declaration int main(void) void main(void) main(void) main( ) { { { { return 0; } } } } The curly braces { } Identify a segment / body of a program The start and end of a function The start and end of the selection or repetition block. Since the opening brace indicates the start of a segment with the closing brace indicating the end of a segment, there must be just as many opening braces as closing braces (this is a common mistake of beginners) Statement Specifying an action to be taken by the computer as the program executes. Each statement in C needs to be terminated with semicolon (;) Example: #include int main() { printf(“I love programming\n”); statement printf(“You will love it too once ”); statement printf(“you know the trick\n”); statement return 0; statement } Statement Statement has two parts : Declaration The part of the program that tells the compiler the names of memory cells in a program Executable statements Program lines that are converted to machine language instructions and executed by the computer An Example #include //printf, scanf definitions #define KMS_PER_MILE 1.609 //conversion constant int main(void) { float miles, // input – distance in miles kms; // output – distance in kilometres //Get the distance in miles printf("Enter distance in miles: "); scanf("%f", &miles); //Convert the distance to kilometres kms = KMS_PER_MILE * miles; //Display the distance in kilometres printf("That equals %f km.\n", kms); return 0; } An Example standard header file preprocessor #include //printf, scanf definitions directives #define KMS_PER_MILE 1.609 //conversion constant constant int main(void) { float miles, // input – distance in miles reserved kms; // output – distance in kilometres words //Get the distance in miles variables printf("Enter distance in miles: "); comments scanf("%f", &miles); functions //Convert the distance to kilometres kms = KMS_PER_MILE * miles; special //Display the distance in kilometres symbols printf("That equals %f km.\n", kms); return 0; } punctuations An Example #include //printf, scanf definitions #define KMS_PER_MILE 1.609 //conversion constant int main(void) { float miles, // input – distance in miles declarations kms; // output – distance in kilometres //Get the distance in miles printf("Enter distance in miles: "); scanf("%f", &miles); //Convert the distance to kilometres kms = KMS_PER_MILE * miles; //Display the distance in kilometres Executable printf("That equals %f km.\n", kms); statements return 0; } An Example #include //printf, scanf definitions #define KMS_PER_MILE 1.609 //conversion constant int main(void) { float miles, // input – distance in miles kms; // output – distance in kilometres //Get the distance in miles printf("Enter distance in miles: "); scanf("%f", &miles); //Convert the distance to kilometres kms = KMS_PER_MILE * miles; //Display the distance in kilometres printf("That equals %f km.\n", kms); return 0; Sample Run } Enter distance in miles: 10.5 That equals 16.89 km. An Example ▪ What happens in the computer memory? memory memory memory MileToKm.exe MileToKm.exe MileToKm.exe miles miles miles ? 10.5 10.5 kms kms kms ? ? 16.89 At the beginning After user enters: After this line is Do not assume that uninitialised variables 10.5 to executed: contain zero! (Very common mistake.) scanf("%f", &miles); kms = KMS_PER_MILE * miles; Variables Variable → a name associated with a memory cell whose value can change Variable Declaration: specifies the type of a variable Example: int num; Variable Definition: assigning a value to the declared variable Example: num = 5; Basic Data Types There are 4 basic data types : int float double char int used to declare numeric program variables of integer type whole numbers, positive and negative keyword: int int number; number = 12; …. … number = 7; Basic Data Types float fractional parts, positive and negative keyword: float float height; height = 1.72; double used to declare floating point variable of higher precision or higher range of numbers exponential numbers, positive and negative keyword: double double valuebig; valuebig = 12E-3; (is equal to 12X10-3) Basic Data Types char A single symbol that can be typed using the keyboard Example of characters: Numeric digits: 0 - 9 Lowercase/uppercase letters: a - z and A - Z Space (blank) Special characters: ,. ; ? “ / ( ) [ ] { } * & % ^ < > etc single character keyword: char char d; The declared character must be d = 128; enclosed within a single quote! In addition, there are void, short, long, etc. Data types (summary) Type Storage Value range Precision size char 1 byte -128 to 127 or 0 to 255 n/a -2,147,483,648 to n/a int 4 bytes 2,147,483,647 unsigned 4 bytes 0 to 4,294,967,295 n/a int float 4 byte 1.2E-38 to 3.4E+38 6 decimal places double 8 byte 2.3E-308 to 1.7E+308 15 decimal places Here unsigned is a modifier; a modifier is a C keyword that can be used in front of a data type to modify the behavior of that data type A closer look at variables Memory 28 A closer look at variables int a = 139, b = -5; Memory 29 A closer look at variables int a = 139, b = -5; Memory a 139 b -5 30 A closer look at variables int a = 139, b = -5; Memory a 139 b -5 00000000000000000000000010001011 32 bits 31 A closer look at variables int a = 139, b = -5; Memory a 139 b -5 11111111111111111111111111111011 32 bits 32 ------------------------------------ 2’s complement of 5 ------------------------→ A closer look at variables char c = ‘H’; 0 1 0 0 1 0 0 0 8 bits A closer look at variables char c = ‘H’; 0 1 0 0 1 0 0 0 8 bits ? A closer look at variables char c = 0x2A;//stores (00101010)2=(2A)16 0 1 0 0 1 0 0 0 8 bits ? 10010002 = 7210 Input/Output Operations Input operation an instruction that copies data from an input device into memory Output operation an instruction that displays information stored in memory to the output devices (such as the monitor screen) Input/Output Functions A C function that performs an input or output operation A few functions that are pre-defined in the header file stdio.h such as : printf() scanf() getchar() & putchar() The printf function Used to send data to the standard output (usually the monitor) to be printed according to specific format. General format: printf(“string literal”); A sequence of any number of characters surrounded by double quotation marks. printf(“format string”, variables); Format string is a combination of text, conversion specifier and escape sequence. The printf function Example: printf(“Thank you”); printf (“Total sum is: %d\n”, sum); %d is a placeholder (conversion specifier) marks the display position for a type integer variable \n is an escape sequence moves the cursor to the new line Placeholder / Conversion Specifier No Conversion Output Type Output Example Specifier 1 %d Signed decimal integer 76 2 %i Signed decimal integer 76 3 %o Unsigned octal integer 134 4 %u Unsigned decimal integer 76 5 %x Unsigned hexadecimal (small letter) 9c 6 %X Unsigned hexadecimal (capital letter) 9C 7 %f Integer including decimal point 76.0000 8 %e Signed floating point (using e 7.6000e+01 notation) 9 %E Signed floating point (using E 7.6000E+01 notation) 10 %g The shorter between %f and %e 76 11 %G The shorter between %f and %E 76 12 %c Character ‘7’ 13 %s String ‘76' Escape Sequence Escape Sequence Effect \a Beep sound \b Backspace \n New line \t Tab \v Vertical tab \\ Backslash \” “ sign Formatting output int meters = 21, feet = 68 , inches = 11; printf("Results:%3d meters=%4d ft.%2d in.\n", meters, feet, inches); R e s u l t s : 2 1 m e t e r s = 6 8 f t. 1 1 i n. printf("Results:%03d meters=%04d ft.%02d in.\n", meters, feet, inches); R e s u l t s : 0 2 1 m e t e r s = 0 0 6 8 f t. 1 1 i n. Formatting output Formatting output Displaying x Using Format String Placeholder %6.2f The scanf function Read data from the standard input device (usually keyboard) and store it in a variable. General format: scanf(“Format string”, &variable); Notice ampersand (&) operator : C address of operator it passes the address of the variable instead of the variable itself tells the scanf() where (in the RAM) to find the variable to store the new value The scanf function Example : int age; printf(“Enter your age: “); scanf(“%d”, &age); Common Conversion specifier used in printf and scanf functions. printf scanf int %d %d float %f %f double %lf %lf char %c %c string %s %s The scanf function If you want the user to enter more than one value, you serialize the inputs. Example: float height, weight; printf(“Please enter your height and weight:”); scanf(“%f%f”, &height, &weight);