CS1100 Introduction to Programming

Similar documents
Types, Operators and Expressions

Types, Operators and Expressions

CSC 1107: Structured Programming

File Handling in C. EECS 2031 Fall October 27, 2014

CS113: Lecture 3. Topics: Variables. Data types. Arithmetic and Bitwise Operators. Order of Evaluation

Lecture 02 C FUNDAMENTALS

C-LANGUAGE CURRICULAM

CS1100 Introduction to Programming

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

Lecture 3. More About C

Scientific Programming in C V. Strings

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

Computers Programming Course 11. Iulian Năstac

ONE DIMENSIONAL ARRAYS

THE FUNDAMENTAL DATA TYPES

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

COMPUTER SCIENCE HIGHER SECONDARY FIRST YEAR. VOLUME II - CHAPTER 10 PROBLEM SOLVING TECHNIQUES AND C PROGRAMMING 1,2,3 & 5 MARKS

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

Work relative to other classes

LESSON 4. The DATA TYPE char

Chapter 2 - Introduction to C Programming

C OVERVIEW BASIC C PROGRAM STRUCTURE. C Overview. Basic C Program Structure

C: How to Program. Week /Mar/05

Fundamentals of Programming

C OVERVIEW. C Overview. Goals speed portability allow access to features of the architecture speed

Fundamental of Programming (C)

Introduction to C Programming. Chih-Wei Tang ( 唐之瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan

Sample Basic C Programs

C Language Part 1 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

XC Specification. 1 Lexical Conventions. 1.1 Tokens. The specification given in this document describes version 1.0 of XC.

Mechatronics and Microcontrollers. Szilárd Aradi PhD Refresh of C

Basic Types and Formatted I/O

Chapter 8: Character & String. In this chapter, you ll learn about;

Gabriel Hugh Elkaim Spring CMPE 013/L: C Programming. CMPE 013/L: C Programming

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

mith College Computer Science CSC270 Spring 2016 Circuits and Systems Lecture Notes, Week 11 Dominique Thiébaut

Goals of C "" The Goals of C (cont.) "" Goals of this Lecture"" The Design of C: A Rational Reconstruction"

DECLARATIONS. Character Set, Keywords, Identifiers, Constants, Variables. Designed by Parul Khurana, LIECA.

Chapter 9 Strings. With this array declaration: char s[10];

C Programming Language (Chapter 2 of K&R) Variables and Constants

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 11, FALL 2012

PES INSTITUTE OF TECHNOLOGY (BSC) I MCA, First IA Test, November 2015 Programming Using C (13MCA11) Solution Set Faculty: Jeny Jijo

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

Computers Programming Course 5. Iulian Năstac

Engineering Computing I

ANSI C Programming Simple Programs

Data Types and Variables in C language

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

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

Fundamental of C programming. - Ompal Singh

Unit 4. Input/Output Functions

CS102: Variables and Expressions

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

Room 3P16 Telephone: extension ~irjohnson/uqc146s1.html

Multiple Choice Questions ( 1 mark)

Chapter 1 & 2 Introduction to C Language

Computer System and programming in C

EEE145 Computer Programming

BSM540 Basics of C Language

Programming in C++ 4. The lexical basis of C++

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

The Design of C: A Rational Reconstruction (cont.)

Java Basic Datatypees

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

Syntax and Variables

211: Computer Architecture Summer 2016

공학프로그래밍언어 (PROGRAMMING LANGUAGE FOR ENGINEERS) -VARIABLE AND DATA TYPES- SPRING 2015, SEON-JU AHN, CNU EE

High Performance Computing

Course organization. Course introduction ( Week 1)

C - Basic Introduction

Data Types. Data Types. Integer Types. Signed Integers

1.1 Introduction to C Language. Department of CSE

CS1100 Introduction to Programming

Java Notes. 10th ICSE. Saravanan Ganesh

Input/Output Week 5:Lesson 16.1

Programming in C and C++

Basic Elements of C. Staff Incharge: S.Sasirekha

Structure of this course. C and C++ Past Exam Questions. Text books

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI

Intermediate Programming, Spring 2017*

Chapter 6 Primitive types

VARIABLES AND CONSTANTS

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

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

JAVA Programming Fundamentals

Arrays, Strings, & Pointers

UNIT- 3 Introduction to C++

CSC 270 Survey of Programming Languages. C-String Values

Getting started with Java

Introduction to C Language

Long Questions. 7. How does union help in storing the values? How it differs from structure?

1 Lexical Considerations

Programming. Elementary Concepts

Programming in C++ 5. Integral data types

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

Questions Bank. 14) State any four advantages of using flow-chart

C mini reference. 5 Binary numbers 12

6.096 Introduction to C++ January (IAP) 2009

Programming and Data Structures

Guide for The C Programming Language Chapter 1. Q1. Explain the structure of a C program Answer: Structure of the C program is shown below:

Transcription:

CS1100 Introduction to Programming Arrays Madhu Mutyam Department of Computer Science and Engineering Indian Institute of Technology Madras Course Material SD, SB, PSK, NSN, DK, TAG CS&E, IIT M 1 An Array A data structure containing items of same data type Declaration: array name, storage reservation int marks[7] = {22,15,75,56,10,33,45; a contiguous group of memory locations named marks for holding 7 integer items 22 15 0 1 elements/components - variables 75 2 marks[0], marks[1],, marks[6] marks[i], where i is a position/subscript (0 i 6) the value of marks[2] is 75 new values can be assigned to elements marks[3] = 36; 56 10 33 45 3 4 5 6 2 Example using Arrays Read ten numbers into an array and compute their average int int numbers[10], sum = 0, i; float average; for ( i = 0; i < 10; i++) scanf( %d, &numbers[i]); for ( i = 0; i < 10; i++) sum = sum + numbers[i]; average = (float) sum/10; printf( The average of numbers is: %f, average); return 0; /* should be there in all programs */ 3 Counting Digits in Text (Kenighan & Ritchie, pp. 59) #include<stdio.h> int int c, i, nwhite, nother, ndigit[10]; nwhite = nother = 0; for(i=0;i<10;i++) ndigit[i]=0; while((c = getchar( ))! = EOF){ switch(c){ case 0 :case 1 :case 2 :case 3 :case 4 :case 5 : case 6 :case 7 :case 8 :case 9 : ndigit[c- 0 ]++; break; An array of ten integers 4 Counting digits case : case \n : case \t : nwhite++; break; default : nother++; break; printf( Digits: \n ) for(i=0;i<10;i++) printf( %d occurred %d times \n, i, ndigit[i]); printf( White spaces: %d, other: %d\n, nwhite, nother); 5 Polynomial Evaluation Evaluate p(x) = a n x n + a n-1 x n-1 + a n-2 x n-2 + a 1 x + a 0 at a given x value. Computing each term and summing up n + (n-1) + (n-2) + + 1 + 0 = n(n+1)/2 multiplications and n additions Improved Method: p(x) = a 0 + x(a 1 + x(a 2 + x(a 3 + + x(a n-2 + x(a n-1 + xa n )) ))) for instance, p(x) = 10x 3 + 4x 2 + 5x + 2 = 2 + x(5 + x(4 + 10x)) n multiplications and n additions will run faster! 6 1

Polynomial Evaluation int coeff[20], n, x, value, i; /*max. no. of coeff s is 20*/ scanf( %d%d, &n, &x); /*read degree and evaluation point*/ for(i = 0; i <= n; i++) scanf( %d, &coeff[i]); /* read in the coefficients */ /* a 0, a 1,, a n */ value = coeff[n]; /* a n */ for(i = (n-1); i >= 0; i--) /* evaluate p(x) */ value = x*value + coeff[i]; printf( The value of p(x) at x = %d is %d\n, x, value); More Exercises Sort an array of numbers into ascending order. Write the output into another array Assuming that arrays are expensive, use only one array: read in the values into an array, sort in place, and print out the array. Matrix Sorting The input is a matrix. Identify a sequence of column interchanges such that in the resulting matrix the rows are all sorted in ascending order. Can every matrix be sorted? 7 8 Data, Types, Sizes, Values int, char, float, double char one byte, capable of holding one character int an integer, different kinds exist! Integer Qualifiers short and long short int 16 bits, long int 32 bits (Typical) Size is compiler dependant based on the underlying hardware int is at least 16 bits, short is at least 16 bits, long is at least 32 bits int is no larger than long and at least as long as short The Char, Signed and Unsigned Types Qualifier signed or unsigned can be applied to int or char Unsigned numbers are non-negative Signed char holds numbers between 128 and 127 Whether char is signed or unsigned depends on the system. Find out on your system. Print integers between 0 to 255 as characters, (and also integers between 128 to 127) on your system. 9 10 Number Systems Decimal (base 10 uses 10 symbols {0..9) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 Unary (base 1) 0, 00, 000, 0000, 00000 Binary (base 2) uses 2 symbols {0,1) 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010 Octal (base 8 start with a 0 in C) 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13 00, 01, 02, 03, 04, 05, 06 C treats them as octal Hexadecimal (base 16 start with 0x) 0, 1,, 9, A, B, C, D, E, F, 10, 11, 19, 1A, 1B, 11 Binary, Octal and Hexadecimal The internal representation of binary, octal, and hexadecimal numbers is similar Octal - 2 7 3 2 5 6 0 6 Binary - 010111011010101110000110 5 13 10 11 8 6 Hexadecimal - 5 D A B 8 6 12 2

A Funny Infinite Loop - Arithmetic This program of mine, ran into an infinite loop. I only wanted to find which numbers corresponded to which characters, the significance of signed and unsigned characters, basically relationship between which integers can be printed as characters we recognize. Why did the infinite loop happen, how to avoid it? #include<stdio.h> char c; for(c=-128; c <= 127; c++) printf( %d -- %c \n, c, c); Print it as a decimal number Print it as a character Try omitting one parameter 13 Float and Double Two types, one for single-precision arithmetic, and the other for double precision arithmetic Long double is used for extended-precision arithmetic The size of floating pointing objects are implementation defined 14 Variable Initialization Variables may be initialized either at the time of declaration Example: #define MAXLINE 200 char esc = \\ ; int i = 0; int limit = MAXLINE + 1; float eps = 1.0e-5 Or they may be assigned values by assignment statements in the program Otherwise they contain some random values 15 Constants At run time, each variable holds a value, which changes from time to time Constant has a value that does not change 1234 is of type int 123456789L is a long constant 123456789ul is an unsigned long constant 123.4 is a floating point constant, so is 1e-2 which denotes.01. Their type is double. If suffixed by an f, or by l, the type is float or long double, respectively 16 Character Constants are integers, written as one character within single quotes. Example a, x, 1, 2 etc. Value of a character constant is the numeric value of the character in the machine s character set. For example, 1 has the value 49 in the ASCII character set Character constants can participate in arithmetic What does 1 + 2 hold? (not 3!) Understand this distinction Character arithmetic is used mainly for comparisons 17 Characters escape sequences \a alert (bell) \\ backslash \b backspace \? question mark \f formfeed \ single quote \n newline \ double quote \r carriage return \0oo octal number \t horizontal tab \xhh hexadecimal \v vertical tab Non-printable characters 18 3

Constants Expressions Expressions all of whose operands are constants These can be evaluated at compile time Examples: #define NUM_ROWS 100 #define NUM_COLS 100 #define NUM_ELTS NUM_ROWS*NUM_COLS #define is preprocessor directive (recall #include) Enumerated Constants enum boolean {No, Yes; defines two constants No = 0, and Yes = 1. By default enum values begin with 0 enum months {jan = 1, feb, march, april, may, jun, jul, aug, sep, oct, nov, dec; when a value is explicitly specified (jan=1) then it starts counting from there enum escapes {BELL = \a, BACKSPACE = \b, TAB = \t, NEWLINE = \n ; more than one value can be specified 19 20 enum and #define Better than #define, the constant values are generated for us Values from 0 onwards unless specified Not all values need to be specified If some values are not specified, they are obtained by increments from the last specified value Variables of enum type may be declared but the compilers need not check that what you store is a valid value for enumeration Declaring Constants The qualifier const applied to a declaration specifies that the value will not be changed. Example: const int J = 25; /* J is a constant through out the program */ Response to modifying J depends on the system. Typically, a warning message is issued while compilation. Example: const char MESG[] = how are you? ; The character array MESG is declared as a constant which will store how are you? 21 22 Strings A string is a array of characters terminated by the null character, \0 A string is written in double quotes Example: This is a string empty string Anything within single quotes gets a number associated with it This is rejected by the C Compiler Exercise: understand the difference between x and x 23 Functions to Handle Strings Strings a non basic data type, a constructed data type we require functions to handle them Typical functions are: Length of a string; string comparison; string concatenation, etc. Standard functions are provided with string.h strlen( ); strcmp( ); strcpy( ); strncpy( ); strcat( ); strncat( ); 24 4

32-bit Numbers Internally: 4,294,967,296 (2 32 ) different permutations that 32 bits can represent Signed 32 bit integers vary from -2,147,483,648 to 2,147,483,647-2 31 to 2 31-1 Unsigned 32 bit integers vary from 0 to 4,294,967,295 0 to 2 32-1 Overflow in Integers main( ) { int i = 2147483647; unsigned int j = 4294967295; printf("%d %d %d\n", i, i+1, i+2); printf("%u %u %u\n", j, j+1, j+2); Here is the result for some system: 2147483647-2147483648 -2147483647 4294967295 0 1 2 31-1 2 32-1 25 26 Printing Directives unsigned int un = 3000000000; /* system with 32-bit int */ printf("un = %u and not %d\n", un, un); return 0; un = 3000000000 and not -1294967296 Printing Directives short end = 200; /* and 16-bit short */ printf("end = %hd and %d\n", end, end); return 0; short decimal end = 200 and 200 Both have the same internal SD, PSK, NSN, DK, TAG CS&E, IIT representation M 27 Printing a short decimal as a normal int is okay 28 Printing Directives long big = 65537; printf("big = %ld and not %hd\n", big, big); return 0; big = 65537 and not 1 Assignment and Arithmetic Rules Basic data types, numbers, and characters can be assigned to their corresponding variables Example: char c = a ; char no = 1 ; int j = 25; Arrays can be initialised when declared: char mesg[] = hello ; //is a valid declaration int numbers[5] = {0,1,2,3,4; //is a valid declaration But an assignment to an array in the program is a syntax error When the value 65537 (2 16 + 1) is written in binary format as a 32-bit number, it looks like 00000000000000010000000000000001. Using the %hd specifier persuaded printf() to look at just the last 16 bits; SD, PSK, NSN, DK, TAG CS&E, therefore, IIT M it displayed the value as 1. 29 30 5

Recap Variables Assignments Relational operators (comparisons) Selection and repetition constructs: control structures Data types and their limitations Arrays : arrayname[n], single dimensional array arrayname[m][n] 2D array arrayname[i][j] gives the element in the i-th row and j-th column 31 Logical Operators Recall relational operators {<=, <, >, >= to compare values Boolean AND ( && ) and Boolean OR ( ) Expressions involving these as operations take Boolean values, and their operands also take Boolean values Called truth values also E1&&E2 is true if and only if both E1 and E2 are true E1 E2 is true if and only if either E1 or E2 or both are Precedence of && is higher than, and both are lower than relational or equality operators 32 How to use these in a program They are used when composite conditions are to be tested in decision statements for(i=0;i < lim 1&&(c=getchar())!= \n &&c!=eof;i++) s[i] = c; The loop is executed as long as all the test conditions are true The loop is exited when any test condition becomes false For example when an <Enter> is read from keyboard Operators Increment operator: effect is to increment value of a variable x = j++ //x gets the value of j, and then j is incremented x = ++j //j is incremented first, then assigned to x Decrement operators decrements values x = j-- //x gets the value of j, then j is decremented by 1 x = --j //j is first decremented, and then assigned to x Assignment operator short cut E 1 op= E 2 is equivalent to the assignment E 1 = E 1 op E 2 x -= 5; same as: x = x 5; 33 34 Exercise Write a program which will exit when a certain number of occurrences of any keystroke is read. You need arrays Loops Loops with logical operations and so on. 35 6