380 likes | 412 Views
Week 2 Introduction to Computer Programming/ C Programming Language. Outline. Pseudo code & flowchart Sample programming question Sample C program Identifiers and reserved words Program comments Pre-processor directives Data types and type declarations Operators
E N D
Week 2Introduction to Computer Programming/C Programming Language EKT120: Computer Programming
Outline • Pseudo code & flowchart • Sample programming question • Sample C program • Identifiers and reserved words • Program comments • Pre-processor directives • Data types and type declarations • Operators • Formatted input and output • Program debugging EKT120: Computer Programming
Sample Programming Question • Write a program that calculates area of triangle. Your program should read the base length and the height length from user. Given the formula to calculate the area of triangle: 0.5 x (base) x (height). • Steps: • Analyze the problem • Use algorithm • Convert to actual codes EKT120: Computer Programming
Recall..Pseudo code and Flowchart Try develop the pseudo code and flowchart for the problem given in the previous slide. EKT120: Computer Programming
Sample C Program /*Program name : program1.c Programmer : Yasmin This program calculates the area of triangle*/ #include <stdio.h> int main(void) { double dBase, dHeight, dArea; printf(“Enter base length : “); scanf(“%f”, &dBase); printf(“Enter height length : “); scanf(“%f”, &dHeight); dArea=0.5 * dBase * dHeight; printf(“\nArea of the triangle is : %5.2f\n”, dArea); return 0; } Comments Preprocessor directives The term void indicates we receive nothing from OS and return an integer to OS begin Variables declaration EKT120: Computer Programming body return 0 (int) to OS end
Variables & Reserved Words • Identifiers/Variables • labels for program elements • case sensitive • can consist 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 • Reserved words cannot be variables/identifiers • Reserved words • already assigned to a pre-defined meaning • e.g.: delete, int, main, include, double, for, if, etc. EKT120: Computer Programming
Variables & Reserved Words • An identifier for the data in the program • Hold the data in your program • Is a location (or set of locations) in memory where a value can be stored • A quantity that can change during program execution EKT120: Computer Programming
Constants • A constant is a named or unnamed value, which does not change during the program execution. • Example: • const double dPi=3.141592 • Const int iDegrees=360; • Const char cQuit=‘q’; • Unnamed constant are often called literals • Eg: 3.141592 and 360 EKT120: Computer Programming
Program Comments • Starts with /* and terminates with */ OR • Character // starts a line comment, if several lines, each line must begin with // • Comments cannot be nested /* /* */*/ EKT120: Computer Programming
Preprocessor Directives • An instruction to pre-processor • Standard library header: <stdio.h>,<math.h> • E.g. #include <stdio.h> • for std input/output • #include <stdlib.h> • Conversion number-text vise-versa, memory allocation, random numbers • #include <string.h> • string processing EKT120: Computer Programming
Data Types • Data types determine the following: • Type of data stored • Number of bytes it occupies in memory • Range of data • Operations that can be performed on the data EKT120: Computer Programming • Modifiers alter the meaning of the base type to more precisely fit a specific need • C supports the following modifiers along with data types: • short, long, signed, unsigned
Data Types & Memory Allocation EKT120: Computer Programming
Variables Naming Conventions • Variable names should use Hungarian notation • Start with an appropriate prefix that indicates the data type • After the prefix, the name of variable should have more or more words • The first letter of each word should be in upper case • The rest of the letter should be in lower case. • The name of variable should clearly convey the purpose of the variable EKT120: Computer Programming
Naming Variables According to Standards EKT120: Computer Programming
Data Types Declaration • float fIncome; float fNet_income; • double dBase, dHeight, dArea; • int iIndex =0, iCount =0; • char cCh=‘a’, cCh2; • const float fEpf = 0.1, fTax = 0.05; float income, net_income; Declare and initialize Named constant declared and initialized
Types of Operators • Types of operators are: • Arithmetic operators (+ , - , * , / , %) • Relational operators (> , < , == , >= , <=, !=) • Logical operators (&& , ||) • Compound assignment operators (+=, -=, *=, /=, %=) • Binary operators: needs two operands • Unary operators: single operand • Bitwise operators: executes on bit level EKT120: Computer Programming
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; EKT120: Computer Programming
C Operation Arithmetic Operator Algebraic Expression C Expression Addition + f + 7 f + 7 Subtraction - p – c p - c Multipication * bm b * m Division / x / y x / y Remainder (Modulus) % r mod s r % s Arithmetic Operators EKT120: Computer Programming
Exercise on Arithmetic Operators • Given x = 20, y = 3 z = x % y = 20 % 3 = 2 (remainder) EKT120: Computer Programming
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 EKT120: Computer Programming
More on relational operators • Relational operators use mathematical comparison (operation) on two data, but give logical output e.g.1 let say b = 8, if (b > 10) e.g.2 while (b != 10) e.g.3 if (mark == 60) print (“Pass”); Reminder: DO NOT confuse == (relational operator) with = (assignment operator) EKT120: Computer Programming
More on logical operators • Logical operators are manipulation of logic. For example: i. b=8, c=10, if ((b > 10) && (c<10)) ii. while ((b==8) || (c > 10)) iii. if ((kod == 1) && (salary > 2213)) EKT120: Computer Programming
exp1 exp2 exp1 && exp2 false false false false true false true false false true true true Truth Table for &&(logical AND) Operator EKT120: Computer Programming
exp1 exp2 exp1 || exp2 false false false false true true true false true true true true Truth Table for ||(logical OR) Operator EKT120: Computer Programming
Compound Assignment Operators • To calculate value from expression and store it in variable, we use assignment operator (=) • Compound assignment operator combines 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; EKT120: Computer Programming
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 EKT120: Computer Programming
Comparison of Prefix and Postfix Increments EKT120: Computer Programming
Unary Operators (Example) • Increment/decrement { ++ , -- } • prefix:value incr/decr before used in expression • postfix:value incr/decr after used in expression EKT120: Computer Programming val=5; printf (“%d”, --val); Output: 4 val=5; printf (“%d”, ++val); Output: 6 val=5; printf (“%d”, val--); Output: 5 val=5; printf (“%d”, val++); Output: 5
Operators Precedence ! + - (unary operators) first * / % second + - (binary operators) third < <= >= > fourth == != fifth && sixth || seventh = last Operator Precedence EKT120: Computer Programming
Formatted Output with “printf” #include <stdio.h> void main (void) { int iMonth; float fExpense, fIncome; iMonth = 12; fExpense = 111.1; fIncome = 1000.0; printf (“Month=%2d, Expense=$%9.2f\n”,iMonth,fExpense); } Declaring variable (fMonth) to be integer Declaring variables (fExpense and fIncome) to be real Assignment statements store numerical values in the memory cells for the declared variables EKT120: Computer Programming ‘,’ separates string literal from variable names Correspondence between variable names and %...in string literal
Formatted Output with printf-cont EKT120: Computer Programming
Formatted input with scanf EKT120: Computer Programming
Formatted input with scanf-cont EKT120: Computer Programming
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 EKT120: Computer Programming
Program debugging-syntax error snapshot EKT120: Computer Programming
Program debugging-run time error snapshot EKT120: Computer Programming
Program debugging-logic error snapshot EKT120: Computer Programming
Q & A! End Week 2 EKT120: Computer Programming