1 / 57

Fundamental of Programming (C)

Fundamental of Programming (C). Lecture 3 Constants, Variables, Data Types, And Operations. Outline. C Program Data types Variables Constants Operations Arithmetic Operators unary operators operators that require only one operand binary operators operators that require two operands

lane
Download Presentation

Fundamental of Programming (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. Fundamental of Programming (C) Lecture 3 Constants, Variables, Data Types, And Operations

  2. Outline • C Program • Data types • Variables • Constants • Operations • Arithmetic Operators • unary operators • operators that require only one operand • binary operators • operators that require two operands • Assignment Operators • Equality and Relational Operators • Logical Operators • Bitwise Operators • Conditional Operator • Comma Operator • sizeof

  3. C Program Constants and variables main stdout (Screen) A B C D stderr (Screen) Instructions and operating procedures stdin (Keyboard) X Y Z Operations and functions

  4. Simple Program • Examples: // int is return data type // main is entrance function int main() { statement 1; statement 1; // …. return 0; } // Simplest c program int main() { return 0; } /* Objective: print on screen */ #include <stdio.h> // preprocessor statements have not ; int main() { printf("welcome to c!!!"); return 0; // indicate that program ended successfully } welcome to c!!!

  5. #include <stdio.h> // header file (preprocessor ) // calculating sum of two user input variables int main() { /* variable definition */ int a; int b; int result = 0; // get first variables form user printf("Enter first number:\n"); scanf("%d", &a); //get scoend variables form user printf("Enter scoend number:\n"); scanf("%d", &b); // sum of input variables result = a + b; printf("%d + %d = %d\n", a, b, result); system("Pause"); return 0; } • Examples: • Header file • Main function • Variables • Input and output • Process

  6. #include <stdio.h> // (preprocessor ) #define PI 3.14 // PI constant (preprocessor ) // calculating area of circle int main() { /* variable definition */ float Radius; float Area = 0; // get radius of circle form user printf("Enter Radius :\n"); scanf("%f", &float ); // calculating area of circle Area = PI * Radius * Radius; printf(“Area = %f", Area ); system("Pause"); return 0; } • Examples: • Header file • Constant • Main function • Variables • Input and output • Process

  7. #include <stdio.h> // (preprocessor ) #define PI 3.14 // PI constant (preprocessor ) // calculating area of circle int main() { /* variable definition */ float Radius; float Area = 0; // get radius of circle form user printf("Enter Radius :\n"); scanf("%f", & Radius); // calculating area of circle Area = PI * Radius * Radius; printf(“Area = %f", Area ); system("Pause"); return 0; } • Examples: • Header file • Constant • Main function • Variables • Input and output • Process

  8. Variables • Have the same meaning as variables in algebra • Single alphabetic character • Each variable needs an identifier that distinguishes it from the others • a = 5 • x = a + b • valid identifier in C may be given representations containing multiple characters • A-Z, a-z, 0-9, and _ (underscore character) • First character must be a letter or underscore (no, _no 9no) • Usually only the first 32 characters are significant • There can be no embedded blanks (student no) • Identifiers are case sensitive (area, Area, AREA, ArEa) • Keywords cannot be used as identifiers

  9. Reserved Words (Keywords) in C

  10. Naming Conventions • C programmers generally agree on the following conventions for identifier: • Use meaningful identifiers • Separate words within identifiers with: • underscores • capitalize each word • Examples: • surfaceArea • SurfaceArea • Surface_Area

  11. Variable declaration • Before using a variable, you must declare it • Data_Type Identifier; • intwidth; // width of rectangle • float area; // result of calculating area stored in it • char separator;// word separator • Data_Type Identifier = Initial_Value; • intwidth = 10; // width of rectangle • floatarea = 255; // result of calculating area stored in it • charseperator = ‘,’; // word separator • Data_Type Identifier, Identifier, Identifier ,….; • intwidth, length, temporary; • float radius, area = 0;

  12. Variable declaration • When we declare a variable • Space is set aside in memory to hold a value of the specified data type • That space is associated with the variable name • That space is associated with a unique address • Visualization of the declaration • intwidth = 95; // get width form user • // &width is 22ff40 • // *&width is 95 • // sizeof width is 4

  13. Data types • Minimal set of basic data types • primitive data types • int • float • double • char • Void • The size and range of these data types may vary among processor types and compilers

  14. Data type qualifiers • Modify the behavior of data type to which they are applied: • Sizequalifiers: alter the size of the basic data types: • short: multiply by 0.5 • long: multiply by 2 • short can be applied to: int • long can be applied to: intand double • Signqualifiers: can hold both positive and negative numbers, or only positive numbers.: • signed: + and - • unsigned: + • they can be applied to : intand char

  15. Data type size and range

  16. Overflow and Underflow /* The # character indicate a pre-processor directive; it's an instruction to the compiler to make it do something The <> character tell C to look in the system area for the file stdio.h. If  I had given the name #include "stdio.h" instead it would tell the compiler to look in the current directory /* #include <stdio.h> /* * Function main begins program execution * Semi-colon is statement terminator, so it is as a signal to the compiler for end of line */ intmain() { /* The 2 curly brackets { }, are used to specify the limits of the program block */ char letter = 'A'; // char variable to show ASCII code short shortVariable = 32769; // short variable for test overflow // printf command display string on the monitor printf("current value of shortVariable is = %d\n", shortVariable); printf("current value of letter is = %d", letter); printf("current value of letter is = %c", letter); system("PAUSE"); // pause the execution to show press any key … return 0; // indicate that program ended successfully } current value of shortVariable is = -32767 current value of letter is = 65 current value of letter is = A

  17. Program Error • Compile-time or syntax • is caused when the compiler cannot recognize a statement • Run-time • E.g. division by zero • Logical • E.g. Overflow and Underflow

  18. #include <stdio.h> // (preprocessor ) #define PI 3.14 // PI constant (preprocessor ) // calculating area of circle int main() { /* variable definition */ float Radius; float Area = 0; // get radius of circle form user printf("Enter Radius :\n"); scanf("%f", &float ); // calculating area of circle Area = PI * Radius * Radius; printf(“Area = %f", Area ); system("Pause"); return 0; } • Examples: • Header file • Constant • Main function • Variables • Input and output • Process

  19. Integer constant value • Base 10: 1 915 +8 -90 • Base 8: 074 0123 084 • Base 16: 0x1 0X5 0x7fab • unsigned: 5000u 4U • long: 123456789l 56L • unsigned long: 536489ul • long long:5361254865LL 25lL • Example : • 0xABu 0123uL 017LL

  20. floating-point constant value • A floating-point value contains a decimal point • 33.5 0.0 -657.983 .2 6. • For example, the value 150.4582 is represented in scientific notation as • 1.504582 X 102 • and is represented in exponential notation (by the computer) as • 1.504582E+02 • This notation indicates that 1.504582 is multiplied by 10 raised to the second power (E+02) • The E stands for “exponent”

  21. Char and string constant value • Char char c; c = 'A'; // d = 65; • String printf("string is array of char!!!"); printf("example of escape sequence is \n");

  22. Constant • Constants provide a way to define a variable which cannot be modified by any other part in the code • #define: without memory consume • const: memory consume • #define Identifier constant_value • #define PI 3.14 • #define ERROR "Disk error " • #define ERROR "multiline \ message" • #define ONE 1 #define TWO ONE + ONE

  23. Constant • const [Data_Type] Identifier = constant_value; • const p = 3; // constint p = 3; • const p; p = 3.14; // compile error • const p = 3.14; // p = 3 because default is int • const float p = 3.14;

  24. #include <stdio.h> // (preprocessor ) #define PI 3.14 // PI constant (preprocessor ) // calculating area of circle int main() { /* variable definition */ float Radius; float Area = 0; // get radius of circle form user printf("Enter Radius :\n"); scanf("%f", &float ); // calculating area of circle Area = PI * Radius * Radius; printf(“Area = %f", Area ); system("Pause"); return 0; } • Examples: • Header file • Constant • Main function • Variables • Input and output • Process

  25. Operators Operator • Arithmetic Operators • unary operators • operators that require only one operand • binary operators • operators that require two operands • Assignment Operators • Equality and Relational Operators • Logical Operators • Bitwise Operators • Conditional Operator • Comma Operator • sizeof Width*High Operand

  26. Arithmetic Operators • Unary Operator

  27. PRE / POST Increment • Consider this example: • But if we have: int width = 9; printf("%d\n", width); width++; printf("%d\n", width); int width = 9; printf("%d\n", width++); printf("%d\n", width); 9 10 int width = 9; width++; printf("%d\n", width); printf("%d\n", width); int width = 9; printf("%d\n", ++width); printf("%d\n", width); 10 10

  28. PRE / POST Increment int R = 10; int count = 10;

  29. Arithmetic Operators • Binary Operators

  30. Division • The division of variables of type integer will always produce a variable of type integer as the result • Example int a = 7, b; floatz; b = a / 2; z = a / 2.0; printf("b = %d, z = %f\n", b, z); Since b is declared as an integer, the result of a/2 is 3, not 3.5 • b = 3, z = 3.500000

  31. Modulus • You could only use modulus (%) operation on integer variables (int, long, char) • z = a % 2.0; // error • z = a % 0; // error • Example int a = 7, b, c; b = a % 2; c = a / 2; printf("b = %d\n", b); printf("c = %d\n", c); Modulus will result in the remainder of a/2. - a/2 integral a%2 remainder

  32. Assignment Operators • lvalue = rvalue; int i; float f; i = 2; // *&i = 2; 2 = i; // error: invalid lvalue in assignment f = 5.6; i = f; // i = 5; i = -5.9; // i = -5;

  33. Assignment Operators • Assignment operators are used to combine the '=' operator with one of the binary arithmetic or bitwise operators • Example : • c = 9;

  34. Precedence Rules • The rules specify which of the operators will be evaluated first • For example: x = 3 * a - ++b%3; c = b = d = 5;

  35. Precedence Rules • how would this statement be evaluated? • : x = 3 * a - ++b % 3; • What is the value for X, for: a = 2, b = 4? x = 3 * a - ++b % 3; x = 3 * a - 5 % 3; x = 3 * a - 5 % 3; x = 6 - 5 % 3; x = 6 – 2; x = 4;

  36. Precedence Rules • If we intend to have a statement evaluated differently from the way specified by the precedence rules, we need to specify it using parentheses ( ) • x = 3 * a - ++b % 3; • Consider having the following statement: • x = 3 * ((a - ++b)%3); • the expression inside a parentheses will be evaluated first • The inner parentheses will be evaluated earlier compared to the outer parentheses

  37. Precedence Rules • how would this statement be evaluated? • x = 3 * ((a - ++b)%3); • What is the value for X, for: a = 2, b = 4? x = 3 * ((a - ++b) % 3); x = 3 * ((a - 5) % 3); x = 3 * ((-3) % 3); x = 3 * 0; x = 0;

  38. Precedence Rules • how would this statement be evaluated? • x = 3 * ++a – b--%3; • What is the value for X, for: a = 2, b = 4? • x = 3 * ++a – b-- % 3; • x = 3 * ++a – b-- % 3; • x = 3 * ++a – 4 % 3; • x = 3 * 3 – 4 % 3; • x = 9 – 1; • x = 8; • b = b -1 , b = 3;

  39. Equality and Relational Operators • Equality Operators: • Relational Operators:

  40. Logical Operators • Logical operators are useful when we want to test multiple conditions • AND • OR • NOT • C has not bool data type, but: • 0: evaluate to false • If(0) printf("…"); • other: evaluate to true • If(1) printf(" …"); • If(-13) printf(" …");

  41. && - Logical AND • All the conditions must be true for the whole expression to be true • Example: if (a == 1 && b == 2 && c == 3) • means that the if statement is only true when a == 1 and b == 2 and c == 3 • If (a = 5) …

  42. || - Logical OR • The truth of one condition is enough to make the whole expression true • Example: if (a == 1 || b == 2|| c == 3) • means the if statement is true when either one of a, b or c has the right value

  43. ! - Logical NOT • Reverse the meaning of a condition • Example: if (!(radius > 90)) • Means if radius not bigger than 90.

  44. Bitwise Operators • Apply to all kinds of int and char types: • signed and unsigned • char, short, int, long, long long

  45. Bitwise Operators • Applicable for low level programming, e.g.: • Port manipulation • I/O programming • Usually: • &: set OFF one bit • |: set ON one bit • ^: reverse one bit

  46. XOR

  47. Examples • A = 199; • B = 90; • c = a & b = 66; • c = a | b = 233; • c = a ^ b = 157; • c = ~a = 56 • c = a << 2 = 28; • c = a >> 3 = 24;

  48. Conditional Operator • The conditional operator (?:) is used to simplify an if/else statement • Condition ? Expression1 : Expression2; • The statement above is equivalent to: if (Condition) Expression1; else Expression2; • Which are more readable?

  49. Conditional Operator • Example: if/else statement: if (total > 12) grade = ‘P’; else grade = ‘F’; conditional statement: (total > 12) ? grade = ‘P’: grade = ‘F’; OR grade =( total > 12) ? ‘P’: ‘F’;

  50. Conditional Operator • Example: • if/else statement: • if (total > 12) • printf(“Passed!!\n”); • else • printf(“Failed!!\n”); • Conditional Statement: • printf(“%s!!\n”, total > 12 ? “Passed”: “Failed”);

More Related