Presentation is loading. Please wait.

Presentation is loading. Please wait.

From Algorithms to Programs Both are sets of instructions on how to do a task Algorithm: –talking to humans, easy to understand –in plain (English) language.

Similar presentations


Presentation on theme: "From Algorithms to Programs Both are sets of instructions on how to do a task Algorithm: –talking to humans, easy to understand –in plain (English) language."— Presentation transcript:

1 From Algorithms to Programs Both are sets of instructions on how to do a task Algorithm: –talking to humans, easy to understand –in plain (English) language Program: –talking to computer (compiler) –can be regarded as a “formal expression” of an algorithm

2 High-Level Language Compilers and linkers translate a high level program into executable machine code. #include int main() { printf(“Hello World”); return 0; } Source code Executable code 10100110 01110110 00100110 00000000 11111010 01001110 10100110 11100110 10010110 11001110 00101110 10100110 01001110 11111010 01100110 01001110 10000110 etc...

3 Why C? Flexible language: –Structured language –Low level activities possible Standard library exists, allowing portability It can produce lean and efficient code Wide availability on a variety of computers Widely used

4 History of C Developed in 1972 by Dennis Ritchie on a DEC PDP11 at Bell Systems Lab as a system development language –Derived from the language B of Ken Thompson, which itself was based on BCPL, developed by Martin Richards For many years the de-facto C standard was the version provided with Unix System V –The C ProgramminLanguage, Brian Kernigham and Dennis Ritchie, Prentice-Hall 1978 In 1983 ANSI creates a group to begin the standardization of C –ANSI C is finalized in 1989 (C89), and ISO adopts it in 1990 –ANSI updated the standard and C99 was adopted in 2000

5 Basic Structure of a C Program output “Hello World!” Algorithm: #include int main() { printf(“Hello World!”); return 0; } C Program: Example: Hello World

6 Basic Structure of a C Program (cont) #include int main() { printf(“Hello World!”); return 0; } C Program : Example: Hello world Includes declarations for the standard input/output library of procedures. Read: “Hash-include”

7 Basic Structure of a C Program #include int main() { printf(“Hello World”); return 0; } C Program: Curly braces mark the beginning and end of a block of instructions. Example: Hello World

8 Basic Structure of a C Program #include int main() { printf(“Hello World”); return 0; } C Program: Instruction (function call) to output “Hello World” Example: Hello World

9 Basic Structure of a C Program #include int main() { printf(“Hello World”); return 0; } C Program: “Statements” (lines of instructions) always end with a semi-colon ( ; ) Example: Hello World

10 int main() { return 0; } Example -- Count to 10 Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count }

11 #include int main() { return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count }

12 #include /* Print out numbers 0 to 9 */ int main() { return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count } Comment

13 #include /* Print out numbers 0 to 9 */ int main() { int count; return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count } Variable declaration

14 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count }

15 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count } Assignment of a value (right expression) to a variable (left).

16 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count } No semi- colon here!

17 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count }

18 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count } Format string

19 #include /* Print out numbers 0 to 9 */ int main() { int count; count = 0; while ( count < 10 ) { printf(“%d\n”, count); count=count+1; } return 0; } Example -- Count to 10 (cont) Print out numbers 0 to 9 set count to 0 while ( count is less than 10 ) { output count add 1 to count }

20 Find the sign of a number output “Enter a number” input num if (num is less than 0) then { output num “ is -’ve” } else { output num “ is +’ve” } #include /* Find the sign of a number */ int main() { float num; printf(“Enter a number: “); scanf(“%f”, &num); if ( num < 0 ) { printf(“%f is -’ve\n”, num); } else { printf(“%f is +’ve\n”, num); } return 0; } Example -- What’s your sign?

21 Find the sign of a number output “Enter a number” input num if (num is less than 0) then { output num “ is -’ve” } else { output num “ is +’ve” } #include /* Find the sign of a number */ int main() { float num; printf(“Enter a number: “); scanf(“%f”, &num); if ( num < 0 ) { printf(“%f is -’ve\n”, num); } else { printf(“%f is +’ve\n”, num); } return 0; } Example -- What’s your sign? (cont)

22 Find the sign of a number output “Enter a number” input num if (num is less than 0) then { output num “ is -’ve” } else { output num “ is +’ve” } #include /* Find the sign of a number */ int main() { float num; printf(“Enter a number: “); scanf(“%f”, &num); if ( number < 0 ) { printf(“%f is -’ve\n”, num); } else { printf(“%f is +’ve\n”, num); } return 0; } Example -- What’s your sign? (cont)

23 Find the sign of a number output “Enter a number” input num if (num is less than 0) then { output num “ is -’ve” } else { output num “ is +’ve” } #include /* Find the sign of a number */ int main() { float num; printf(“Enter a number: “); scanf(“%f”, &num); if ( num < 0 ) { printf(“%f is -’ve\n”, num); } else { printf(“%f is +’ve\n”, num); } return 0; } Example -- What’s your sign? (cont)

24 Find the sign of a number output “Enter a number” input num if (num is less than 0) then { output num “ is -’ve” } else { output num “ is +’ve” } #include /* Find the sign of a number */ int main() { float num; printf(“Enter a number: “); scanf(“%f”, &num); if ( num < 0 ) { printf(“%f is -’ve\n”, num); } else { printf(“%f is +’ve\n”, num); } return 0; } Example -- What’s your sign? (cont)

25 C Values and Variables Basic Types: –Integers –Floating point numbers –Characters –Character Strings

26 Basic Types: int and float Integers ( int ) 0 1 1000 -1 -10 666 Floating point numbers ( float ) 1.0.1 1.0e-1 1e1

27 Basic Types: char Characters ( char ) ’a’ ’z’ ’A’ ’Z’ ’?’ ’@’ ’0’ ’9’ - Special Characters: preceded by \ ’\n’ ’\t’ ’\0’ ’\’’ ’\\’ etc.

28 Basic Types: character string Character Strings (a string of char -s) Examples: –”Hi there!” –”Line 1\nLine 2\nLine 3” –”” –”\”\””

29 Arithmetic Expressions take arithmetic (numerical) values and return an arithmetic (numerical) value Are composed using the following operators: + (unary plus) - (unary minus) + (addition) - (subtraction) * (multiplication) / (division or quotient) % (modulus or remainder)

30 Precedence in Expressions Defines the order in which an expression is evaluated

31 Precedence in Expressions -- Example 1 + 2 * 3 - 4 / 5 = B stands for brackets, O for Order (exponents), D for division, M for multiplication, A for addition, and S for subtraction. B.O.D.M.A.S. 1 + (2 * 3) - (4 / 5)

32 More on precedence *, /, % are at the same level of precedence +, - are at the same level of precedence For operators at the same “level”, left-to-right ordering is applied. 2 + 3 – 1 = (2 + 3) – 1 = 4 2 – 3 + 1 = (2 – 3) + 1 = 0 2 * 3 / 4 = (2 * 3) / 4 = 6 / 4 2 / 3 * 4 = (2 / 3) * 4 = 0 * 4

33 Precedence in Expressions – Example (cont) 6.2 1 + 2 * 3 - 4 / 5 = 1 + (2 * 3) - (4 / 5)

34 Precedence in Expressions – Example (cont) 6.2 1 + 2 * 3 - 4 / 5 = 1 + (2 * 3) - (4 / 5)

35 Precedence in Expressions – Example (cont) Integer division results in integer quotient 1 + 2 * 3 - 4 / 5 = 1 + (2 * 3) - (4 / 5)

36 Precedence in Expressions – Example (cont) = 0 D’oh 1 + 2 * 3 - 4 / 5 = 1 + (2 * 3) - (4 / 5)

37 Precedence in Expressions – Example (cont) 7 1 + 2 * 3 - 4 / 5 = 1 + (2 * 3) - (4 / 5)

38 int -s and float -s float is a “communicable” type Example: 1 + 2 * 3 - 4.0 / 5 = 1 + (2 * 3) - (4.0 / 5) = 1 + 6 - 0.8 = 6.2

39 int -s and float -s – Example 2 (1 + 2) * (3 - 4) / 5 = ((1 + 2) * (3 - 4)) / 5 = (3 * -1) / 5 = -3 / 5 = 0

40 int -s and float -s – Example 2 (cont) (1 + 2.0) * (3 - 4) / 5 = ((1 + 2.0) * (3 - 4)) / 5 = (3.0 * -1) / 5 = -3.0 / 5 = -0.6

41 int -s and float -s – Example 3 (1 + 2.0) * ((3 - 4) / 5) = (1 + 2.0) * (-1 / 5) = 3.0 * 0 = 0.0

42 Unary operators Called unary because they require one operand. Example i = +1;/* + used as a unary operator */ j = -i;/* - used as a unary operator */ The unary + operator does nothing – just emphasis that a numeric constant is positive. The unary – operator produces the negative of its operand.

43 Increment and decrement operators ++ is the increment operator i++; is equivalent to i = i + 1; -- is the decrement operator j--; is equivalent to j = j - 1; (King, pp53-54)

44 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include Example -- Simple Expressions

45 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include /* Evaluate an expression */ Example -- Simple Expressions (cont)

46 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include /* Evaluate an expression */ int main() { return 0; } Example -- Simple Expressions (cont)

47 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include /* Evaluate an expression */ int main() { float result; return 0; } Example -- Simple Expressions (cont)

48 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include /* Evaluate an expression */ int main() { float result; result = 1 + 2 * 3 - 4 / 5; return 0; } Example -- Simple Expressions (cont)

49 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result #include /* Evaluate an expression */ int main() { float result; result = 1 + 2 * 3 - 4 / 5; printf(“%f\n”, result); return 0; } Example -- Simple Expressions (cont)

50 Evaluate an expression set result to 1 + 2 * 3 - 4 / 5 output result Output: 7.000000 #include /* Evaluate an expression */ int main() { float result; result = 1 + 2 * 3 - 4 / 5; printf(“%f\n”, result); return 0; } Example -- Simple Expressions (cont)


Download ppt "From Algorithms to Programs Both are sets of instructions on how to do a task Algorithm: –talking to humans, easy to understand –in plain (English) language."

Similar presentations


Ads by Google