Presentation is loading. Please wait.

Presentation is loading. Please wait.

B. Ramamurthy University at Buffalo

Similar presentations


Presentation on theme: "B. Ramamurthy University at Buffalo"— Presentation transcript:

1 B. Ramamurthy University at Buffalo bina@buffalo.edu
The C Language B. Ramamurthy University at Buffalo Amrita-UB-MSES-CSE 5/10/2013

2 Introduction About C language: “.. features economy of expression..”; written for Unix Operating system (1978) The C Language since then has taken a life of it own and has become the foundation for many modern languages. It has also become a language of choice for RTOS. Reference: The C Programming Language by Kernighan & Ritchie (available online) We will learn C by repeated spiral mode hands-on exposure to various elements of the language We will also try to work on the Linux system and another system called Nexos (Next generation embedded operating system) at the CSE department at UB. Amrita-UB-MSES-CSE 5/10/2013

3 Program Structure A C program is a collection of functions with at least one function called “main” Here is the classical example that has become a metaphor for a first program in any language. Hello World: lets compile it and see what happens. #include <stdio.h> int main () { printf(“Hello World \n”); return 0; } Amrita-UB-MSES-CSE 5/10/2013

4 Processing the C program
Save the program in a file called “hello.c” Compile it using an appropriate compiler CC or cc or gcc or g++ (where G/g stands for “gnu” organization) Compiler parses the input, checks for syntax correctness and if syntax is correct generates code; This code is further linked and loaded to genenerate the executable. Source code  Compile  loader/linker  executable code Object code Amrita-UB-MSES-CSE 5/10/2013

5 C program structure Program Directives (#include libraries) functions
statements Variables/constants Different types of statements Sequential, assignment, selection, iterative, input/output Amrita-UB-MSES-CSE 5/10/2013

6 Variables and arithmetic expressions
#include <stdio.h> /* print Fahrenheit-Celsius table for fahr = 0, 20, ..., 300 */ main() { int fahr, celsius; int lower, upper, step; lower = 0; /* lower limit of temperature scale */ upper = 300; /* upper limit */ step = 20; /* step size */ fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } Amrita-UB-MSES-CSE 5/10/2013

7 Lets analyze the program
#include directive Comment // single line comment /* multiple line comment */ 3. Main function 4. Variable declarations {variable type, variable name} int step; 5. Initialization: step= 20; 6. Statements: computations; arithmetic operations {+, -, *, /, %} 7. Repeat computation using a “while loop” 8. Condition for repetition 9. Output results using “printf” 10. Semicolon (;) as a terminator for statements Amrita-UB-MSES-CSE 5/10/2013

8 Variable types int: integer; for representing whole numbers
float : floating point or real numbers; for representing fractional numbers, vary large and very small numbers (32 bits) double: double precision real number; double the size of float (64 bits) char: single ASCII (American Standard Code of Information Interchange) character long: longer integer Amrita-UB-MSES-CSE 5/10/2013

9 Variable names A sequence of characters used for identifying an entity/item used in the program Example: partNum voltage portNum myName ECUNum Amrita-UB-MSES-CSE 5/10/2013

10 Assignment statement Assignment operator = Syntax
Variable = expresion; partNum = 84560; double temp = 89.5; int age = 78; pay = salary + bonus; Amrita-UB-MSES-CSE 5/10/2013

11 Arithmetic operators Addition + Subtraction – Multiplication *
Division / Modulus % Precedence of operators: *, /, % + - Left to right associavity Override precedence using ( ) Amrita-UB-MSES-CSE 5/10/2013

12 Arithmetic expression
celsius = 5 * (fahr-32) / 9; 3 + 5 – 10 * 2 / 3 % 4 = /3 % 4 = – 6% 4 = 3+5 – 2 = 8 – 2 = 6 Amrita-UB-MSES-CSE 5/10/2013

13 Iteration/repetition
While loop Syntax: Initialize condition; while (condition) { statements; update condition; } Execution semantics Amrita-UB-MSES-CSE 5/10/2013

14 If..else: selection Often we need to make choices in the execution path. If ..else statement if (sensedTemp > refTemp) //cool the room else if (sensedTemp < refTemp) // heat the room Amrita-UB-MSES-CSE 5/10/2013

15 Multi-way selection Case or switch statement: switch (grade) {
case ‘A’ : printf (“Very good \n”); break; case ‘B’ : printf (“Good\n”); break; case ‘C’ : printf(“not bad\n”); break; case ‘F’: printf(“Bad\n”); default: printf(“Grade out of range \n”); } Amrita-UB-MSES-CSE 5/10/2013

16 Putting it all together
Lets solve the problem below using C. Consider the number game shown in the next few slides. Amrita-UB-MSES-CSE 5/10/2013

17 The Number Game (1) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 1/17/2019

18 The Number Game (2) 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 1/17/2019

19 The Number Game (4) 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 1/17/2019

20 The Number Game (8) 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 1/17/2019

21 The Number Game (16) 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1/17/2019

22 Analysis What is theory /concept behind this game?
How did I arrive at the number you guessed? How can I automate this process? What is the data and what is the algorithm? How can we convey these to a computing machine? While a computer talks binary, we humans write programs in languages such as Java, C#, C++, Basic etc. Binary numbers (1’s and 0’s) is the number system used by the computer systems. We humans use decimal number system that has 10 distinct symbols (0,1,2,3,4,5,6,7,8,9) Your task: Write a C program to computerize this game. 1/17/2019

23 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 1/17/2019


Download ppt "B. Ramamurthy University at Buffalo"

Similar presentations


Ads by Google