Presentation is loading. Please wait.

Presentation is loading. Please wait.

UniMAP Sem1-07/08EKT120: Computer Programming1 Week2.

Similar presentations


Presentation on theme: "UniMAP Sem1-07/08EKT120: Computer Programming1 Week2."— Presentation transcript:

1 UniMAP Sem1-07/08EKT120: Computer Programming1 Week2

2 UniMAP Sem1-07/08EKT120: Computer Programming2 Outline Sample programming question Sample C program Identifiers and reserve words Program comments Preprocessor directives Data types and type declarations Operators Formatted input and output Program debugging

3 UniMAP Sem1-07/08EKT120: Computer Programming3 Sample Programming Question Write a program that calculate nett income.Your program should read income from user. Given tax rate is 10% and epf rate is 5% from income. Steps: Analyze the problem Use algorithm Convert to actual codes

4 UniMAP Sem1-07/08EKT120: Computer Programming4 Sample C Program //Program name : program1.c //Programmer : Yasmin //This program reads income and calculate nett income //after epf and tax deduction #include int main(void) { float income, net_income; const float epf=0.1, tax=0.05; printf(“Enter income : “); scanf(“%f”, &income); net_income=income-(epf*income) – (tax*income); printf(“\nNett income : %5.2f”, net_income); return 0; } The terms void indicates we receive nothing from OS and return an integer to OS Variable & constant declaration begin end Return 0(int) to OS body Comments Preprocessor directives

5 UniMAP Sem1-07/08EKT120: Computer Programming5 Identifiers & Reserve Words Identifiers labels for program elements case sensitive can consists of capital letters[A..Z], small letters[a..z], digit[0..9], and underscore character _ First character MUST be a letter or an underscore No blanks Reserve words cannot be identifiers Reserve words already assigned to a pre-defined meaning eg: delete, int, main, include, double, for, if etc.

6 UniMAP Sem1-07/08EKT120: Computer Programming6 Program comments Starts with /* and terminate with */ OR Character // start a line comment, if several lines, each line must begin with // Comments cannot be nested /* /* */*/

7 UniMAP Sem1-07/08EKT120: Computer Programming7 Preprocessor directives An instruction to pre-processor Standard library header (p154,Deitel) E.g. #include for std input/output #include Conversion number-text vise-versa, memory allocation, random numbers #include string processing

8 UniMAP Sem1-07/08EKT120: Computer Programming8 Data Types & Mem. Alloc. Data TypeDescription Size (bytes) char A single character. Internally stored as a coded integer value (refer to ASCII table ). 1 int Integer quantity. Can be represented in signed or unsigned form (with the unsigned keyword). 4 float Floating-point number. Set of real numbers.4 double A more precise version of float. Has larger dynamic range and better representation of decimal points. 8 bool Boolean representation of logic states. Can only be assigned true (1) or false (0). 1

9 UniMAP Sem1-07/08EKT120: Computer Programming9 Type declarations float income; float net_income;  int index =0, count =0;  char ch=‘a’, ch2;  const float epf = 0.1, tax = 0.05; float income, net_income; Declare and initialize Named constant declared and initialized

10 UniMAP Sem1-07/08EKT120: Computer Programming10 Types of operators Types of operators are: Arithmetic operators (+, -, *, /, %) Relational operators (>, =, <=, !=) Logical operators (&&, ||) Compound assignment operator (+=, -=, *=, /=, %=) Binary operators: needs two operands Unary operators: single operand Bitwise operators: executes on bit level

11 UniMAP Sem1-07/08EKT120: Computer Programming11 Arithmetic Operators Used to execute mathematical equations The result is usually assigned to a data storage (instance/variable) using assignment operator ( = ) E.g sum = marks1 + marks2;

12 UniMAP Sem1-07/08EKT120: Computer Programming12 Arithmetic Operators C OperationArithmetic Operator Algebraic expression C expression Addition + f + 7 Subtraction - p – c p - c Multipication * bm b * m Division / x / y Remainder (Modulus) % r mod s r % s

13 UniMAP Sem1-07/08EKT120: Computer Programming13 Exercise on arithmetic operators Given x = 20, y = 3 z = x % y = 20 % 3 = 2 (remainder)

14 UniMAP Sem1-07/08EKT120: Computer Programming14 Relational and Logical Operators Previously, relational operator: >, =, <=, ==, != Previously, logical operator: &&, || Used to control the flow of a program Usually used as conditions in loops and branches

15 UniMAP Sem1-07/08EKT120: Computer Programming15 More on relational operators Relational operators use mathematical comparison (operation) on two data, but gives logical output e.g1 let say b = 8, if (b > 10) e.g2 while (b != 10) e.g3 if(kod == 1) print(“Pegawai”); Reminder: Don’t confuse == (relational op.) with = (assignment op.)

16 UniMAP Sem1-07/08EKT120: Computer Programming16 More on logical operators Logical operators are manipulation of logic e.g1 let say b=8, c=10, if ((b > 10) && (c<10)) e.g2 while ((b==8) ||(c > 10)) e.g3 if ((kod == 1) && (salary > 2213))

17 UniMAP Sem1-07/08EKT120: Computer Programming17 Truth table for && (logical AND) operator exp1exp2exp1 && exp2 false truefalse truefalse true

18 UniMAP Sem1-07/08EKT120: Computer Programming18 Truth table for || (logical OR) operator exp1exp2exp1 || exp2 false true falsetrue

19 UniMAP Sem1-07/08EKT120: Computer Programming19 Compund assignment operator To calculate value from expression and store it in variable, we use assignment operator (=) Compound assignment operator combine binary operator with assignment operator E.g. val +=one; is equivalent to val = val + one; E.g. count = count -1; is equivalent to count -=1; count--; --count;

20 UniMAP Sem1-07/08EKT120: Computer Programming20 Unary Operators Obviously operating on ONE operand Commonly used unary operators Increment/decrement { ++, -- } Arithmetic Negation { - } Logical Negation { ! } Usually using prefix notation Increment/decrement can be both a prefix and postfix

21 UniMAP Sem1-07/08EKT120: Computer Programming21 Unary Operators (Eg.) Increment/decrement { ++, -- } prefix:value incr/decr before used in expression postfix:value incr/decr after used in expression Logical Negation { ! } bool isDinnerTime = true; bool isLunchTime = !isDinnerTime; val=5; printf(“%d”, ++val); Output: 6 val=5; printf(“%d”, --val); Output: 4 val=5; printf(“%d”, val++); Output: 5 val=5; printf(“%d”, val--); Output: 5

22 UniMAP Sem1-07/08EKT120: Computer Programming22 Operator Precedence OperatorsPrecedence ! + -first * / %second + -third = >fourth == !=fifth &&sixth ||seventh =last

23 UniMAP Sem1-07/08EKT120: Computer Programming23 Formatted Output with printf

24 UniMAP Sem1-07/08EKT120: Computer Programming24 Formatted Output with printf- cont

25 UniMAP Sem1-07/08EKT120: Computer Programming25 Formatted input with scanf

26 UniMAP Sem1-07/08EKT120: Computer Programming26 Formatted input with scanf- cont

27 UniMAP Sem1-07/08EKT120: Computer Programming27 Program debugging Syntax error Mistakes caused by violating “grammar” of C C compiler can easily diagnose during compilation Run-time error Called semantic error or smart error Violation of rules during program execution C compiler cannot recognize during compilation Logic error Most difficult error to recognize and correct Program compiled and executed successfully but answer wrong

28 UniMAP Sem1-07/08EKT120: Computer Programming28 Program debugging-syntax error snapshot

29 UniMAP Sem1-07/08EKT120: Computer Programming29 Program debugging-run time error snapshot

30 UniMAP Sem1-07/08EKT120: Computer Programming30 Program debugging-logic error snapshot

31 UniMAP Sem1-07/08EKT120: Computer Programming31 End Week 1 – Session 2 Q & A!


Download ppt "UniMAP Sem1-07/08EKT120: Computer Programming1 Week2."

Similar presentations


Ads by Google