Programming in C. Part 1: Introduction

Similar documents
Main Program. C Programming Notes. #include <stdio.h> main() { printf( Hello ); } Comments: /* comment */ //comment. Dr. Karne Towson University

Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4

CSE2301. Functions. Functions and Compiler Directives

Introduction to C Language

cs3157: another C lecture (mon-21-feb-2005) C pre-processor (3).

C Programs: Simple Statements and Expressions

CS3157: Advanced Programming. Outline

Fundamental Data Types. CSE 130: Introduction to Programming in C Stony Brook University

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson)

SWEN-250 Personal SE. Introduction to C

Basic C Programming. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

C Libraries. Bart Childs Complementary to the text(s)

CSCI 171 Chapter Outlines

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath

Multiple Choice Questions ( 1 mark)

Data Type Fall 2014 Jinkyu Jeong

Computer Programming 5th Week loops (do-while, for), Arrays, array operations, C libraries

Functions. Systems Programming Concepts

C Functions. 5.2 Program Modules in C

Chapter 1 Getting Started Structured Programming 1

Split up Syllabus (Session )

6-1 (Function). (Function) !*+!"#!, Function Description Example. natural logarithm of x (base e) rounds x to smallest integer not less than x

Contents. Preface. Introduction. Introduction to C Programming

C mini reference. 5 Binary numbers 12

today cs3157-fall2002-sklar-lect05 1

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CSE123. Program Design and Modular Programming Functions 1-1

AIR FORCE SCHOOL,BAMRAULI COMPUTER SCIENCE (083) CLASS XI Split up Syllabus (Session ) Contents

Language Design COMS W4115. Prof. Stephen A. Edwards Spring 2003 Columbia University Department of Computer Science

Functions. Angela Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan.

IECD Institute for Entrepreneurship and Career Development Bharathidasan University, Tiruchirappalli 23.

THE C STANDARD LIBRARY & MAKING YOUR OWN LIBRARY. ISA 563: Fundamentals of Systems Programming

Operators and Expressions:

Python. Olmo Zavala R. Python Exercises. Center of Atmospheric Sciences, UNAM. August 24, 2016

C Programming Multiple. Choice

Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language

ECET 264 C Programming Language with Applications

Appendix A Developing a C Program on the UNIX system

Lecture 3. Review. CS 141 Lecture 3 By Ziad Kobti -Control Structures Examples -Built-in functions. Conditions: Loops: if( ) / else switch

Review: Constants. Modules and Interfaces. Modules. Clients, Interfaces, Implementations. Client. Interface. Implementation


These are reserved words of the C language. For example int, float, if, else, for, while etc.

Model Viva Questions for Programming in C lab

Fundamental of C programming. - Ompal Singh

Introduction to Programming Systems

ANSI C Programming Simple Programs

UNIT- 3 Introduction to C++

INTRODUCTION TO C++ FUNCTIONS. Dept. of Electronic Engineering, NCHU. Original slides are from

Course Outline Introduction to C-Programming

Chapter 8 C Characters and Strings

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

Computers Programming Course 6. Iulian Năstac

Contents. A Review of C language. Visual C Visual C++ 6.0

Programming Fundamentals for Engineers Functions. Muntaser Abulafi Yacoub Sabatin Omar Qaraeen. Modular programming.

Computer System and programming in C

Other C materials before pointer Common library functions [Appendix of K&R] 2D array, string manipulations. <stdlib.

3. EXPRESSIONS. It is a sequence of operands and operators that reduce to a single value.

Programming. Elementary Concepts

Programming in C Quick Start! Biostatistics 615 Lecture 4

Assoc. Prof. Dr. Tansu FİLİK

Muntaser Abulafi Yacoub Sabatin Omar Qaraeen. C Data Types

Chapter 1 & 2 Introduction to C Language

Programming and Data Structure

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur

Lectures 5-6: Introduction to C

C-LANGUAGE CURRICULAM

Macro Programming Reference Guide. Copyright 2005 Scott Martinez

Preview from Notesale.co.uk Page 6 of 52

Review: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements

Topic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History

Lecture 02 C FUNDAMENTALS

Advanced C Programming Topics

A function is a named group of statements developed to solve a sub-problem and returns a value to other functions when it is called.

Computers Programming Course 5. Iulian Năstac

Operators in C. Staff Incharge: S.Sasirekha

C Programming

C programming basics T3-1 -

UNIT IV 2 MARKS. ( Word to PDF Converter - Unregistered ) FUNDAMENTALS OF COMPUTING & COMPUTER PROGRAMMING

C Overview Fall 2014 Jinkyu Jeong

C introduction: part 1

Language Design COMS W4115. Prof. Stephen A. Edwards Fall 2006 Columbia University Department of Computer Science

Review Topics. Final Exam Review Slides

CSCE 110 PROGRAMMING FUNDAMENTALS

C: How to Program. Week /Mar/05

UNIT 3 OPERATORS. [Marks- 12]

Standard C Library Functions

Work relative to other classes

Topic 6: A Quick Intro To C

Unit 1: Introduction to C Language. Saurabh Khatri Lecturer Department of Computer Technology VIT, Pune

UNIT IV INTRODUCTION TO C

C Tutorial: Part 1. Dr. Charalampos C. Tsimenidis. Newcastle University School of Electrical and Electronic Engineering.

edunepal_info

3. Types of Algorithmic and Program Instructions

Overview of C. Basic Data Types Constants Variables Identifiers Keywords Basic I/O

C - Basic Introduction

Programming in C and Data Structures [15PCD13/23] 1. PROGRAMMING IN C AND DATA STRUCTURES [As per Choice Based Credit System (CBCS) scheme]

Reserved Words and Identifiers

Fundamental of Programming (C)

Transcription:

Programming in C Part 1: Introduction Resources: 1. Stanford CS Education Library URL: http://cslibrary.stanford.edu/101/ 2. Programming in ANSI C, E Balaguruswamy, Tata McGraw-Hill

PROGRAMMING IN C A computer program is a collection of instructions for performing some specified task(s) with the computer. C is the offspring of Basic Combined Programming Language ( B ) developed in 1960s by Cambridge University B was Modified by Dennis Ritchie at Bell Laboratories in 1972, and was named C. Pros and cons: Programmers language. Gets in programmers way as little possible. You need to know exactly what you are doing!! Can be Irritating and confusing for beginners. Structure of Programs A C program is a collection of functions. Execution starts at the main() function.

General structure of a C Program Documentation Section Link Section Definition Section Globel Decleration Section Function Section Main() { DECLERATION PART EXECUTABLE PART } Subprogram Section Function 1 Function 2.... /*This is my First program*/ #include<stdio.h> /*link */ void main() { printf( This my first C prog\n ); }

General structure of a C Program Documentation Section Link Section Definition Section Globel Decleration Section Function Section Main() { DECLERATION PART EXECUTABLE PART } Subprogram Section Function 1 Function 2.... /*this is my second program*/ #include<stdio.h> /*link */ #define pi 3.14 /*definition*/ float area; /*global */ void main() { float r; /*Declaration*/ r=1.0; area=pi*r*r; printf( area is %d \n,area); }

Writing and executing a C Program in LINUX Create a c program cd to your directory of choice, and write the c-program using some text editors (eg. vi,vim) e.g. cd ~/Cprog vim firstprog.c Compiling and linking use an existing compiler (gcc, cc etc) to compile your program an make an executable e.g. cc filename gcc filename1, filename2, filename3 Common options: lm : library math -c : Compiles without linking. binaries are saved as "filename.o" -o exename: compiled binary with specified filename. (a.out default) gcc o myprog firstprog.c Execute the program./filename will execute the program. (Should have the x flag on!)

C variables and Data Types

Keywords: Keywords Serves as Basic building blocks of the programs. #include <stdio.h> #define PI 3.14 float area; void main() { double r; r=1.0; area=pi*r*r; printf( Area is %d \n,area); }

Backslash character constants: #include <stdio.h> #define PI 3.14 float area; void main() { double r; r=1.0; area=pi*r*r; printf( Area is %d \n,area); }

a variable declaration reserves and names an area in memory at run time to hold a value of particular type. C puts the type first followed by the name. Variables /*This is my second program*/ #include "stdio.h" /*link */ They begin with a letter Upto 31 characters (ANSI) Case Sensitive Must not be a keyword Should not conflict with builtin functions No while spaces #define PI 3.14 /*definition*/ float area; void main() { double r; r=1.0; area=pi*r*r; printf( Area is %d \n,area); } Retains random values unless set.

Data Types Integers All behave like integers and can be mixed with one another.: e.g. int, short, long, char Floating Point: float(~6 digit precision), double(~15 digit precision), long double 8 bit = 1 byte (Note: Actual byte/ datatype may vary from machine to machine)

Declaration syntax data-type v1,v2,..vn; Variables are separated by commas. Statement ends with a semicolon(;). Example: int count; int a=5, b=2, c; double ratio; /*This is my second program*/ #include "stdio.h" /*link */ #define PI 3.14 /*definition*/ float area; void main() { double r; r=1.0; area=pi*r*r; printf( Area is %d \n,area); }

Format Specifies %i, %d %u %6d %f %6f %.2f %6.2f %o Octal %x Hexadecimal Integer(decimal, hexa or octa decimal) Decimal integer. Unsigned decimal integer. decimal integer, at least 6 characters wide. print as floating point floating point, at least 6 characters wide floating point, 2 characters after decimal point floating point, at least 6 wide and 2 after decimal point %c or %s Character / String %% For printing % %e,%e printf( Area is %d \n,area); Exponential notation

The integral types may be mixed together in arithmetic expressions since they are all basically just integers with variation in their width. For example, char and int can be combined in arithmetic expressions such as ('b' + 5). In such a case, the compiler "promotes" the smaller type (char) to be the same size as the larger type (int) before combining the values. Promotions are determined at compile time based purely on the types of the values in the expressions. Promotions do not lose information -- they always convert from a type to compatible, larger type to avoid losing information. Overflow: TYPE COMBINATION AND PROMOTION

TRUNCATION The opposite of promotion, truncation moves a value from a type to a smaller type. The compiler just drops the extra bits. (May or may not generate a compile time warning of the loss of information). Assigning from an integer to a smaller integer (e.g.. long to int, or int to char) drops the most significant bits. char ch; int i; i = 321; ch = i; //int char (ch is now 65) Assigning from a floating point type to an integer drops the fractional part of the number. double pi; int i; pi = 3.14159; i = pi; // float int (i is now 3)

MORE EXAMPLES scale the unit test marks in the range 0-20 to the range 0-100. Divide the marks by 20, and then multiply by 100 to get the scaled marks. #include<stdio.h> main() { int score; scanf( enter the marks: %d &score); score = (score / 20) * 100; printf( revised marks= %d,score); } score = ((double)score / 20) * 100;

Operators and Expressions

THE ASSIGNMENT OPERATORS = Assignment operator (copies the value from its right hand side to the variable on its left hand side) i = i +3; (means i i +3) The assignment also acts as an expression which returns the newly assigned value y = (x = 2 * x); Other Assignment operators besides the = operator are as follows: +=, -= Increment or decrement by RHS i+=3 *=, /= Multiplication or division by RHS i/=3 is equivalent to i=i/3 >>=, <<= Bitwise Right/Left Shift by RHS (divide/multiply by 2 n ) &=, =,^= Bitwise AND,OR,XOR by RHS.

MATHEMATICAL OPERATORS C supports the following operation + Addition - Subtraction / Division * Multiplication % Remainder (mod) use parenthesis to avoid any bugs due to a misunderstanding of precedence. For example, A division (/) with two integer arguments will do integer division. If either argument is a float, it does floating point division. So (10/4) evaluates to 2 while (10/4.0) evaluates to 2.5.

(1) y = mx 2 SIMPLE CONVERSIONS (2) y = 10 4 e sin( x) 2 /5 (3) y = a + bx 2 xsin( x ) 2 x y 1+ (4) = σ x 1 (1)y = m*x*x; log 10 (1 + p 2 ) + 6 x (2)y = 1.0E-4*exp(-pow(sin(x),2)/5.0); (3)y = (a+b*x)/(x*sin(x*x)); (4)y = sqrt(sigma(1+x*x)/fabs(1-x)*sqrt(log10(1+p*p))+6)-x; or a = sqrt(log10(1+p*p); b = sigma(1+x*x)/fabs(1-x); y = sqrt(a*b+6)-x;

UNARY OPERATORS Increment (++) and decrement(--) operators The increment (decrement) operator increases (decreases) the value of the variable by 1. int i=42, j; Operation Example Equivalent to var++ (post increment) ++var (pre increment) Var-- (post decrement) --var (pre decrement) j=(i++ + 10); j = i+10; i= i+1; j= (++i +10); i= i+1; j= i+10; j=(i-- + 10); j = i+10; i = i-1; j=(--i + 10); i= i-1; j= i+10; j is52 j is53 j is52 j is51

RELATIONAL OPERATORS These operate on integer or floating point values and return a 0 or 1 boolean value. Operator Meaning == Equal!= Not equal > Greater Than < Less Than >= Greater or Equal <= Less or Equal = ASSIGNMENT operator (does not belong to this class)

LOGICAL OPERATORS Logical operators take 0 as false and anything else to be true BOOLEAN operators Op Meaning! Boolean NOT && Boolean AND Boolean OR Bitwise operators have higher precedence over Boolean operators. BITWISE OPERATORS (Manipulates data at BIT level) Op Meaning ~ Bitwise Negation & Bitwise AND Bitwise OR ^ Bitwise XOR >> Right shift (divide by power of 2) << Left shift (divide by power of 2)

STANDARD LIBRARY FUNCTIONS basic housekeeping functions are available to a C program in form of standard library functions. To call these, a program must #include the appropriate.h file stdio.h math.h conio.h/ cursers.h time.h ctype.h string.h stdlib.h assert.h stdarg.h setjmp.h signal.h limits.h, float.h file input and output mathematical functions such as sin() and cos() date and time character tests string operations utility functions such as malloc() and rand() the assert() debugging macro support for functions with variable numbers of arguments support for non-local flow control jumps support for exceptional condition signals constants which define type range values such as INT_MAX

http://www.cplusplus.com/reference/cmath/ (only important contents shown, for all contents search the web) math.h contents Trigonamitric/ hyperbolic: cos, sin, tan, acos, asin, atan, cosh, sinh, tanh Exponential and logarithmic functions: exp,log, log10 Power functions: pow, sqrt Rounding and remainder etc: ceil, floor, fmod, fabs stdio.h contents Formatted input/output: fprintf, fscanf, printf, scanf, sprintf, sscanf. File access: fclose, fopen, fread, fwrite. Character i/o: fgetc, getc, getchar, gets, putc, putchar, puts.

http://www.cplusplus.com/reference/cmath/ (only important contents shown, for all contents search the web) Stdlib.h contents Pseudo-random sequence generation: rand, srand Dynamic memory management (DMA): calloc, free, malloc, realloc Environment: abort, exit, getenv, system string.h contents strcpy, strcat, strcmp, strchr, strlen Clock, difftime, time time.h contents ctype.h contents isalnum, isalpha, isblank, iscntrl, isdigit, islower, isupper

THE C PREPROCESSOR The Preprocessor is a program that processes the C code before it is processed by the compiler. Preprocessor Directives are placed before the main() Common Directives: #define, #include, #undef, #ifdef, #endif, #ifndef, # if, # else #define Sets up symbolic textual replacements in the source. #define PI 3.14 #define Test if(x>y) #define cube(x) x*x*x #include Brings in texts from different files during compilation. #include<file1.h> // System #include file1.h //user

ASSIGNMENT I TO BE SUBMITTED BY 19-08-2013. THIS IS A PART OF CONTINUOUS ASSESSMENT, AND WILL CARRY MARKS SUBMIT THEM IN A SHEET BY 19-08-2013. WRITE: YOUR NAME, LEVEL (MSC / NANO/ IMSC ETC) AND ROLL NO 1. Convert to equivalent C statement (a) x y z (b) ax + b c ax bc (c) a bc + d f (d) 1+ σ 1 x x 1 y + 6 x (e) α 1 2σ ( x m) kt 2πkT e

ASSIGNMENT I (CONTD..) (2) Write Programs to, a. Display your name. b. add two given nos (c=a+b) and display the results c. Read two integers and display the result of their division(c=a/b). d. Calculate radius of a circle, given its area. Display your result only upto 3 decimal places. e. write a program to display various numbers associated with the ASCII characters. PRACTICE THEM DURING LAB ON TUESDAY (AND OTHER DAYS AS WELL) TO ENSURE THE CORRECTNESS OF THE PROGRAM SUBMITTED.