1 / 63

CHAPTER 4: The Basic of C

CHAPTER 4: The Basic of C. CSEB113 PRINCIPLES of PROGRAMMING CSEB134 PROGRAMMING I by Badariah Solemon. Topics. C Tokens Basic Data Types Variables Constants Reading Data from the Keyboard Arithmetic Operators and Expressions Single Character Data. Topic 1. C TOKENS.

evelia
Download Presentation

CHAPTER 4: The Basic of C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHAPTER 4: The Basic of C CSEB113 PRINCIPLES of PROGRAMMING CSEB134 PROGRAMMING I by Badariah Solemon BS (May 2012)

  2. Topics • C Tokens • Basic Data Types • Variables • Constants • Reading Data from the Keyboard • Arithmetic Operators and Expressions • Single Character Data BS (May 2012)

  3. Topic 1 C TOKENS BS (May 2012)

  4. Tokens & Types of Tokens • Token – the basic element on a C program recognized by the compiler /* Example Case: Apples Author: MdmBadariahSolemon */ #include <stdio.h> int main() { int Qty; double Cost=0.0, Total=0.0; printf ("Enter quantity of apples purchased (in Kg):"); scanf("%d", &Qty); printf ("Enter the cost per Kg of apples (in RM per Kg):"); scanf("%lf",&Cost); Total = Cost * Qty; printf("\nTotal cost of apples = %.2f\n",Total); return 0; } identifiers string literals reserved words operator punctuation BS (May 2012)

  5. 1. Reserved Words • Keywords that identify language entities such as statements, data types, language attributes, etc. • Have special meaning to the compiler, cannot be used as identifiers in our program. • Should be typed in lowercase. • Must not be used as identifiers!! • Ex: auto, double, else, void, i BS (May 2012)

  6. Task: Identify the Keywords BS (May 2012)

  7. 2. Identifiers • Words used to represent and reference certain program entities (variables, constant, functionnames, etc). • Also known as programmer-defined words. • Example: intmyName; • myNameis program variable. #define TAXRATE 26 • TAXRATEis a constant. void CalculateTotal(int value); • CalculateTotal is a function name. BS (May 2012)

  8. Identifiers: Rules BS (May 2012)

  9. Identifiers: Naming Styles • Avoid excessively short and cryptic names such as x, or wt. • Use reasonably descriptive name such as student_nameand StudentID. • Use userscores or capital letters to separate words in identifiers that consist of two or more words. • Example: StudentName, student_name, or studentname BS (May 2012)

  10. 3. String Literals • A sequence of any number of characters surrounded by double quotation marks “ ”. • Example: • Example of usage in C program: Produces output: “This is a string constant.” “Hello \”John”\.” printf(“My name is David Beckham.\n”); My name is David Beckham. BS (May 2012)

  11. 4. Operators • Tokens that result in some kind of computation or action when applied to variables or other elements in an expression. • Example of operators: * + = - / < > • Usage example: result = total1 + total2; BS (May 2012)

  12. 5. Punctuators • Symbols used to separate different parts of the C program. • These punctuators include: [ ] ( ) { } , ; “: * # • Usage example: • To be discussed when we come to the proper language feature in the coming chapters. main() { printf(“Testing.”); } BS (May 2012)

  13. Exercise • Valid/invalid – variables or constant BS (May 2012)

  14. Topic 2 Basic data types BS (May 2012)

  15. Basic Data Types int number = 12; int sum = -3678; float short = 0.000983; float income = 1234567890.12; double bigvalue = 12E-3; //equals to 12x10-3 char initial = ‘B’; BS (Feb 2012)

  16. Topic 3 variables BS (May 2012)

  17. What are Variables? • Are memory locations within the computer which allows pieces of data to be stored. • The word variable comes from the word vary, which means that whatever you place within a variable can be changed. • A variable can be viewed as a container used to store things (numbers, character, string etc ) • Types of operations: • Declaring variables names • Assigning variable values • Manipulating variable values – ex: display on the screen BS (Feb 2012)

  18. Declaring Variables • A variable is declared by specifying the DATA TYPE of the variable name • Ex: • Several variables of the same data type may be declared in the same statement. • Ex: Data Type Variable Name int Age; Variable Names Data Type int Age, Weight; Comma to separate variables BS (Feb 2012)

  19. Assigning Values to Variable • A variable is assigned with a value using an assignment operator =. • Ex: • During program execution, may be conceptually viewed as: 17 is assigned to Age 60 is assigned to Weight Age = 17; Weight = 60; BS (Feb 2012)

  20. Assigning Values to Variables During Declaration • Variables may be assigned with values even during the variables declaration. • Ex: Variable Name int Age = 17; Data Type int Age = 17, Weight = 60; Comma to separate variables BS (Feb 2012)

  21. Printing Variable Values • Use the printf() function to display the value of a variable on the computer screen. • Syntax: • FormatString is a combination of characters, placeholdersand escape sequence. • PrintList is any constants, variables, expressions, and functions calls separated by commas. • Example: printf(FormatString, PrintList); placeholder int age = 80; float cgpa = 4.00; printf(“Your age: %d\n”, age); printf(“CGPA: %f\n”, cgpa); printf(“My CGPA: %.2f\n”, cgpa); Your age: 80 CGPA: 4.000000 My CGPA: 4.00 BS (Feb 2012)

  22. Placeholders in printf() Function • Placeholders (or also known as format specifiers) always begin with the symbol % • Are used to format and display the variable/constant values on the screen • Common placeholders: Refer Table 12.2, pg 647 (Hanly & Koffman) BS (Feb 2012)

  23. More About Printing Variable Values • Recall this syntax: • FormatString can have multiple placeholders if the Printlist in printf() function has several variables. • Example: printf(FormatString, PrintList); • #include <stdio.h> • main() • { int age = 80; float cgpa = 3.512, weight = 60.4778; printf(“Age: %d and CGPA: %.2f\n”, age, cgpa); printf(“CGPA: %.2f and Age: %d\n”, cgpa, age); printf(“CGPA: %.1f\tWeight2: %.2f\n”, cgpa, weight); printf(“Weight3: %.3f\t”, weight); printf(“Weight4: %.4f\n”, weight); • } BS (Feb 2012)

  24. Exercise • Do hand-out exercise – declare & assign variables • What happen if you try to print an int with %f or a float with %d? • What is the output for the following program? • #include <stdio.h> • main() • { intyearS = 4; float cgpa = 3.88, gpa = 4.00; double printf(“How long it takes to complete ur study?\n%d\n”,yearS); printf(“GPA\t\tCGPA\n”); printf(“%.2f\t\t%.2f”,gpa, cgpa); printf(“Excellent!\n”); printf(“Now, test your skill\n”); printf(“CGPA in 1 decimal point = %.1f\n”, cgpa); printf(“CGPA = %f\n”, cgpa) } BS (May 2012)

  25. Topic 4 Constants BS (May 2012)

  26. Constants • Entities that appear in the program code as fixed values. • Types of operations: • Declaring and assigning constant values • Operating constant values • Almost similar treatment like variables but CANNOT change the values after declaration! BS (Feb 2012)

  27. Declaring Constants • As constant macro – created using a preprocessor directives using define keyword • Ex: • Within a function using the const keyword. • Ex: #include <stdio.h> #define PI 3.14159 #define DAYS_IN_YEARS 365 main() { … DATA TYPE? #include <stdio.h> main() { const double KMS_PER_MILES = 1.609 … } BS (Feb 2012)

  28. Types of Constants #define PI 3.412 const float PI = 3.412; #define VAL 0.5877e2 const double VAL = 0.5877e2; //stands for 0.5877 x 102 #define MAX 10 const int MIN = -90; enum Language { English Arabic Mandarin } #define LETTER ‘n’ const char NUMBER = ‘1’; BS (Feb 2012)

  29. Printing Constant Values • Similar to printing variable values • What is the output of the program? #include <stdio.h> #define DAYS 365 #define VAL 0.5877 void main(void) { const double PI = 3.412; printf(“pi = %.3f\n”, PI); printf(“In a year, there are %d days\n”, DAYS); printf(“Value = %.4f\n”, VAL); } BS (Feb 2012)

  30. Topic 6 Reading data from the keyboard BS (May 2012)

  31. Using scanf() Function • To read data from the standard input device (usually keyboard) and store it in a variable. • The general format is pretty much the same as printf() function. • Syntax: • InputListone or more variables addresses, each corresponding to a placeholder in the FormatString • One placeholder for each variable in InputList. • The two or more variables in InputList must be separated by commas. • Each element of InputList must be an address of a memory cell(using prefix & address operator) scanf(FormatString, InputList); BS (Feb 2012)

  32. Placeholders in scanf() Function • Are used to format and display the variable/constant values keyed-in by the user • Common placeholders in scanf() function are very similar to placeholders in printf() function: Refer Table 12.2, pg 647 (Hanly & Koffman) BS (Feb 2012)

  33. Example int Age; float income; printf(“Enter your age: “); scanf(“%d”, &Age); printf(“Enter income: “); scanf(“%f”, &income); printf(“Your age is: %d\nIncome: %.2f”, Age, income); Address operator int Age; double income; printf(“Enter your age and income“); scanf(“%d %lf”, &Age, &income); printf(“Your age: %d\n”, Age); printf(“Your income: %f\n”, income); If you want the user to enter more than one value, you serialise the inputs. BS (Feb 2012)

  34. Exercise • Write a simple C program that read two integer values and print them on the screen in one same line separated by one vertical tab. Follow this sample output: • Write another simple C program that read 3 real numbers and print them on the screen in reverse order. Follow this sample output: Enter first integer: 80 Enter second integer: 99 80 99 Enter three real numbers: 5.6 7.8 9.3 In reverse order: 9.3 7.8 5.6 BS (May 2012)

  35. Topic 5 Arithmetic operators and expressions BS (May 2012)

  36. Arithmetic Expressions • A syntactically correct and meaningful combination of operators and operands is known as anExpression. • ‘=’ is the basic assignment operator • Syntax: • Example: Variable = ArithmeticExpression; 12 is assigned to variable month operands month = 12; Expression: cityTax=CITYTAXRATE*grossIncome; arithmetic operator assignment operator BS (May 2012)

  37. Arithmetic Operators • There are 2 types of arithmetic operators in C: • Unary operators are operators that require only one operand. • Example: • Binary operators are operators that require two operands. • Example: • Note that we CANNOT write arithmetic expressions like the following: operand   second = -first; prs = -34; operands   third = first / second; sum = 30 + 76; first / second = third; 30 + 76 = sum; X X BS (May 2012)

  38. 1. Unary Operators • Initial value of a is 10 and b is 5 postfix (after a variable) prefix (before a variable) BS (May 2012)

  39. Prefix/Postfix Increment • a++ or ++a is equals to a = a + 1 but they work differently BS (May 2012)

  40. Prefix/Postfix Decrement • Similarly, --a or a-- is equals to a = a - 1 but they work differently BS (May 2012)

  41. 2. Binary Operators • If all operands in an arithmetic expression are of type double/float, the result is also of type double/float except for modulus operator. • If all operands in an arithmetic expression are of type int, the result is also of type int. • Value of a is 9 BS (May 2012)

  42. Modulus Operator (%) • You could only use modulus (%) operation on integer variables/integer division • Modulus will result in the remainder of an operation • Example: • 7 % 2 is 1 • But 2 % 7 is 2. Any idea why? 7/2 3 integral 2 7 6 - 1 7%2 remainder BS (May 2012)

  43. Example • A simple C program that find an average of two real numbers. #include <stdio.h> void main(void) { float no1, no2, sum, avg; printf(“Enter three real numbers: “); scanf(“%f %f”, &no1, &no2); sum = no1 + no2; avg = sum / 2; printf(“Average: %.2f”, avg); } BS (May 2012)

  44. Exercise • Write a simple C program that sum up 4 integer numbers and display the computed sum. • Covert the pseudocode/flowchart prepared to solve the following problems (refer slide 39 in Chapter 2) into complete C programs that: • compute and display the average of three numbers. • read the value of the height, width and length of a box from the user and print its volume. BS (May 2012)

  45. Compound Assignment Operator • Are combinations operators with the basic assignment operator = • Initial value of a is 8: BS (May 2012)

  46. Exercise • What is the output of the following program? #include <stdio.h> void main(void) { int first; printf("Enter a value: "); scanf("%d", &first); printf("\nNew value is: %d\n\n", first+=4); printf("\nNew value is: %d\n\n", first*=4); printf("\nNew value is: %d\n\n", first-=4); printf("\nNew value is: %d\n\n", first%=4); } BS (May 2012)

  47. Operations of Mixed or Same Types • Examples: • 5 + 3 is 8 • 5/3 is 1 int int WHY? int float • 5.2 + 3.1 is 8.3 • 5.0/3.0 is 1.6 float float float • 5.2 + 3 is 8.2 • 5.0/3 is 1.6 • 5/3.0 is 1.6 float int BS (May 2012)

  48. Operations of Mixed or Same Types • Assigning real values to intor float variables: • m = 5/3; • p = 5/3; • n = 5/3.0; • q = 5/3.0; m is 1 int int/int int 5/3 is 1 p is 1.0 float n is 1 int/float  float 5/3 is 1.6 int q is 1.6 float BS (May 2012)

  49. Type Casting • You can modify the way C uses types in arithmetic operations by using cast operators. The syntax: • Recall: • So what can you do to ensure that the operation produces 1.6instead of 1? • To ensure that you did not loose any data from the operation, you may apply type casting as follows: (type) expression 5/3 result in 1 • (float)5/3 • 5/(float)3 • (float)5/(float)3 • ((float)5)/((float)3) BS (May 2012)

  50. Guidelines in Writing Arithmetic Expressions • If it is division operation, make sure it does not involve two integer variables or constants (unless you want the fractional part to be cut off) • When writing your code, a float type variable is on the left side of an assignment statement. Example: • When int type variable is on the left side of an assignment statement, make sure that the statement is meant to create an integer value. int sum = 87; float avg; avg = sum / 4; BS (May 2012)

More Related