SEQUENTIAL STRUCTURE. Erkut ERDEM Hacettepe University October 2010

Similar documents
Chapter 2 - Introduction to C Programming

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

Chapter 1 & 2 Introduction to C Language

C: How to Program. Week /Mar/05

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3. Aykut Erdem, Erkut Erdem, Fuat Akal

Chapter 2: Overview of C. Problem Solving & Program Design in C

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

Fundamental of Programming (C)

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

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

2/29/2016. Definition: Computer Program. A simple model of the computer. Example: Computer Program. Data types, variables, constants

Data types, variables, constants

Chapter 1 Introduction to Computers and C++ Programming

Fundamentals of Programming

6.096 Introduction to C++ January (IAP) 2009

Data Types and Variables in C language

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

Programming. C++ Basics

ANSI C Programming Simple Programs

The component base of C language. Nguyễn Dũng Faculty of IT Hue College of Science

Fundamentals of Programming. Lecture 3: Introduction to C Programming

Work relative to other classes

A Fast Review of C Essentials Part I

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

Introduction to Programming

UNIT- 3 Introduction to C++

ET156 Introduction to C Programming

Preview from Notesale.co.uk Page 6 of 52

Programming for Engineers Introduction to C

Introduction to C# Applications

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

Programming and Data Structures

Introduction to C++ Programming. Adhi Harmoko S, M.Komp

Lecture 3. More About C

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information

Full file at C How to Program, 6/e Multiple Choice Test Bank

Basic Elements of C. Staff Incharge: S.Sasirekha

Introduction to the C Programming Language

Fundamentals of Programming Session 4

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

Course Outline Introduction to C-Programming

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

DEPARTMENT OF MATHS, MJ COLLEGE

Fundamental of C programming. - Ompal Singh

Presented By : Gaurav Juneja

BLM2031 Structured Programming. Zeyneb KURT

C - Basic Introduction

Computers Programming Course 5. Iulian Năstac

C Language, Token, Keywords, Constant, variable

Computer Science & Information Technology (CS) Rank under AIR 100. Examination Oriented Theory, Practice Set Key concepts, Analysis & Summary

IS 0020 Program Design and Software Tools

!"#$% &'($) *+!$ 0!'" 0+'&"$.&0-2$ 10.+3&2),&/3+, %&&/3+, C,-"!.&/+"*0.&('1 :2 %*10% *%7)/ 30'&. 0% /4%./


C Fundamentals & Formatted Input/Output. adopted from KNK C Programming : A Modern Approach

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

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

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

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

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

Fundamentals of C. Structure of a C Program

9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C

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

Program Fundamentals

The C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science)

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

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

Chapter 2: Basic Elements of C++

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Basics of Programming

BASIC ELEMENTS OF A COMPUTER PROGRAM

Chapter 2. Lexical Elements & Operators

>B<82. 2Soft ware. C Language manual. Copyright COSMIC Software 1999, 2001 All rights reserved.

Character Set. The character set of C represents alphabet, digit or any symbol used to represent information. Digits 0, 1, 2, 3, 9

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

EC 413 Computer Organization

1 EEE1008 C Programming

Basic Types and Formatted I/O

Variables in C. Variables in C. What Are Variables in C? CMSC 104, Fall 2012 John Y. Park

Lecture 2: C Programming Basic

Basics of Java Programming

Lesson 3 Introduction to Programming in C

Creating a C++ Program

UEE1302 (1102) F10: Introduction to Computers and Programming

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

ET156 Introduction to C Programming

C Programming a Q & A Approach

Fundamentals of C Programming CS Introduction to Programming

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Binghamton University. CS-211 Fall Syntax. What the Compiler needs to understand your program

BITG 1233: Introduction to C++

Introduction to C Language

CSC 1107: Structured Programming

Introduction to C++ Programming Pearson Education, Inc. All rights reserved.

Reserved Words and Identifiers

Introduction to Computing Lecture 01: Introduction to C

Lecture 02 C FUNDAMENTALS

EL2310 Scientific Programming

Università degli Studi di Bologna Facoltà di Ingegneria. Principles, Models, and Applications for Distributed Systems M

Computer System and programming in C

Transcription:

SEQUENTIAL STRUCTURE Erkut ERDEM Hacettepe University October 2010

History of C C Developed by by Denis M. Ritchie at AT&T Bell Labs from two previous programming languages, BCPL and B Used to develop UNIX Used to write modern operating systems Hardware independent (portable) Standardization Many slight variations of C existed, and were incompatible Committee formed to create a "unambiguous, machine-independent" definition Standard created in 1989, updated in 1999

The C Standard Library C programs consist of pieces/modules called functions A programmer can create his own functions Advantage: the programmer knows exactly how it works Disadvantage: time consuming Programmers will often use the C library functions Use these as building blocks Avoid re-inventing the wheel If a pre-made function exists, generally best to use it rather than write your own Library functions carefully written, efficient, and portable

Basics of a Typical C Program Development Environment Editor Disk Phases of C Programs: 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Preprocessor Compiler Linker Loader Disk Disk Disk Disk Primary Memory...... Program is created in the editor and stored on disk. Preprocessor program processes the code. Compiler creates object code and stores it on disk. Linker links the object code with the libraries Loader puts program in memory. CPU Primary Memory...... CPU takes each instruction and executes it, possibly storing new data values as the program executes.

General Form of a C Program Preprocessor directives Declarations variables (değişkenler) (bildirimler) functions (işlevler) main function { declarations } statements

A Simple C Program /* Hello world! Example */ #include <stdio.h> int main(void) { } printf( Hello world!\n ); return 0; Hello world!

A Simple C Program (Cont.) Comment Line (açıklama satırı) Text surrounded by /* and */ is ignored by computer Used to describe program /* Hello world! Example */ #include <stdio.h> int main(void) { printf( Hello world!\n ); return 0; } #include <stdio.h> Preprocessor directive (ön işleyici komutu) Tells computer to load contents of a certain file <stdio.h> allows standard input/output operations Standart başlık kütüğü (header file)

A Simple C Program (Cont.) int main(void) C programs contain one or more functions, exactly one of which must be main Parenthesis used to indicate a function int means that main "returns" an integer value /* Hello World! Example */ #include <stdio.h> int main(void) { printf( Hello world!\n ); return 0; } void indicates that the function takes no arguments Braces ({ and }) indicate a block The bodies of all functions must be contained in braces

A Simple C Program (Cont.) printf("hello world!\n" ); Instructs computer to perform an action Specifically, prints the string of characters within quotes ( ) Entire line called a statement All statements must end with a semicolon (;) Escape character (\) Indicates that printf should do something out of the ordinary \n is the newline character /* Hello World! Example */ #include <stdio.h> int main(void) { printf( Hello world!\n ); return 0; }

A Simple C Program (Cont.) return 0; A way to exit a function return 0, in this case, means that the program terminated normally Right brace } Indicates end of main has been reached /* Hello World! Example */ #include <stdio.h> int main(void) { printf( Hello world!\n ); return 0; }

Lexical Elements Token: the smallest element of a program that is meaningful to the compiler Kinds of tokens in C: Keywords (Anahtar Kelimeler) Identifiers (Tanımlayıcılar) Constants/Literals (Sabitler) Operators (İşleçler) Punctuators (Noktalama İşaretleri)

Keywords 32 words defined as keywords in C have predefined uses and cannot be used for any other purpose in a C program auto double int struct break else long switch case enum register typedef char extern return union Const float short unsigned continue for signed void default goto sizeof volatile do if static while

Identifiers (Tanımlayıcılar) A sequence of letters, digits, and the special character _ satisfying: identifier = α {α + #}* with α = {A,,Z,a,,z,_ }, #={0,,9}, and * means 0 or more Case-sensitive e.g. Ali and ali are two different identifiers. Identifiers are used for: Variable names (değişken isimleri) Function names (işlev isimleri) Macro names (makro isimleri)

Identifiers (Cont.) Sample valid identifiers x a1 _xyz_33 integer1 Double Sample invalid identifiers xyz.1 gx^2 114West int pi*r*r

Variable Declarations Variables: locations in memory where a value is stored Variable declarations must appear before executable statements. Variables must be declared before use. a syntax (compile-time) error if these are violated Every variable has a name, a type, a size and a value

Basic Datatypes in C Integer Character Floating Point int char float Double precision double floating point Datatype modifiers signed / unsigned (for int and char) short / long

Basic Datatypes in C (Cont.) Type Typical Range of Values signed char (8 bits) -127 to +127 unsigned char 0 to 255 short int (16 bits) -32,767 to +32,767 unsigned short int 0 to 65,535 int (32 bits) -2,147,483,647 to +2,147,483,64 unsigned int 0 to 4,294,967,295 long int (32-64 bits) -2,147,483,647 to +2,147,483,647 unsigned long int 0 to 4,294,967,295 float ~10-37 to ~10 38 double ~10-307 to ~10 308 long double ~10-4931 to ~10 4932

Variable Declarations (Cont.) A declaration consists of a data type name followed by a list of (one or more) variables of that type: char c; int ali, bora; float rate; double trouble; A variable may be initialized in its declaration. char c = a ; int a = 220, b = 448; float x = 1.23e-6; /*0.00000123*/ double y = 27e3; /*27,000*/ Variables that are not initialized may have garbage values. Whenever a new value is placed into a variable, it replaces the previous value Reading variables from memory does not change them

Constants C manipulates various kinds of values. integer constants: 0, 37, 2001 floating-point constants: 0.8, 199.33, 1.0 character constants: a, 5, + string constants: a, Monday Common Escape Sequences \a audible alarm \b backspace \n newline \r carriage return \t horizontal tab \f form-feed \\ backslash \ double quote

Operators Arithmetic operators Assignment operator Logical operators (later on; in the lecture on selective structure)

Arithmetic Operators For arithmetic calculations Use + for addition, - for substraction, * for multiplication and / for division Integer division truncates remainder 7 / 5 evaluates to 1 Modulus operator(%) returns the remainder 7 % 5 evaluates to 2 Arithmetic operators associate left to right. Operator precedence Example: Find the average of three variables a, b and c Do not use: a + b + c / 3 Use: (a + b + c ) / 3

Arithmetic Operators (Cont.) C operation Arithmetic operator Algebraic expression C expression Addition + f + 7 f + 7 Subtraction - p c p - c Multiplication * bm b * m Division / x / y x / y Modulus % r mod s r % s Operator(s) Operation(s) Order of evaluation (precedence) () Parentheses Evaluated first. If the parentheses are nested, the expression in the innermost pair is evaluated first. If there are several pairs of parentheses on the same level (i.e., not nested), they are evaluated left to right. *, /, or % Multiplication,Division, Modulus + or - Addition Subtraction Evaluated second. If there are several, they are evaluated left to right. Evaluated last. If there are several, they are evaluated left to right.

Arithmetic Operators (Cont.) Step 1. y = 2 * 5 * 5 + 3 * 5 + 7; 2 * 5 is 10 (Leftm ost multip lic ation) Step 2. y = 10 * 5 + 3 * 5 + 7; 10 * 5 is 50 (Leftm ost multip lic ation) Step 3. y = 50 + 3 * 5 + 7; 3 * 5 is 15 (Multip lic ation before ad dition) Step 4. y = 50 + 15 + 7; 50 + 15 is 65 (Leftm ost ad dition) Step 5. y = 65 + 7; 65 + 7 is 72 (Last a dd ition) Step 6. y = 72; (Last op era tio n p la ce 72 in y )

Assignment Operator int x,y; /* variable declarations */ int int x y variable = expression ; expressions: operations variables constants function calls x = 5*y + (y-1)*44 ; expression statement Precedence of the assignment operator is lower than the arithmetic operators

l-value vs. r-value x = 5; y = 10; 5 x l-value usage of y r-value usage of x 10 y y = x ; There is a memory location named y. This location will receive a value. There is a memory location named x, in there is a value sitting, go and get me that value.

l-value vs. r-value (Cont.) x+1 = 3; invalid l-value expression expressions (r-value) x+1 l-value all variable names l-value usages MUST refer to a fixed position in the MEMORY.

Addition of two numbers /* This programs adds the two integers that it reads */ #include <stdio.h> int main (void) { int num1, num2; /* declarations */ printf( Enter first integer.\n ); /* prompt */ scanf( %d, &num1); /* read an integer*/ printf( Enter second integer.\n ); /* prompt */ scanf( %d, &num2); /* read an integer */ num1 = num1 + num2; /* assignment of sum */ printf( Sum is %d.\n, num1); /* print sum */ return 0; /* program ended } successfully */

Addition of two numbers Sample Runs Enter first integer. 45 Enter second integer. 72 Sum is 117. Enter first integer. 30 Enter second integer. 12 Sum is 42.

Addition of two numbers - Analysis int num1, num2; Variable declarations int means these variables can hold integers scanf( "%d", &num1); Obtains a value from the user scanf uses standard input (usually keyboard) This scanf statement has two arguments %d - indicates data should be a decimal integer & refers to the address to store the value &num1 - location in memory where the variable num1 is stored When executing the program the user responds to the scanf statement by typing in a number, then pressing the enter (return) key

Addition of two numbers - Analysis num1 = num1 + num2; performs the arithmetic operation and then assigns the resulting value to the variable num1 Printf("Sum is %d\n", num1); similar to scanf %d means decimal integer will be printed num1 specifies what integer will be printed Calculations can be performed inside printf statements printf( "Sum is %d\n", num1+ num2);

Increment and Decrement Operators i = i + 1 ; = ± 1 can further be abbreviated pre-incrementation pre-decrementation ++ -- i = i + 1 OR ++i ++(i-3) invalid ++(++i) invalid

Increment and Decrement Operators Post-incrementation/decrementation exists! ++ -- i=5; j=(++i)*2; (i=i+1)*2 5 6 12 i i j i=5; j=2*i++ - i; - ambiguous - compiler-dependent i=5; j=(i++)*2; 5 6 i i 10 j

Increment and Decrement Operators /*** increment and decrement expressions ***/ #include <stdio.h> int main(void) { int a =0, b = 0, c = 0; } a = ++b + ++c; printf( \n%d %d %d, a,b,c); a = b++ + c++; printf( \n%d %d %d, a,b,c); a = ++b + c++; printf( \n%d %d %d, a,b,c); a = b-- + --c; printf( \n%d %d %d, a,b,c); return 0; 2 1 1 2 2 2 5 3 3 5 2 2

Compound Assignment Operator sum = sum + x ; l-value = arithmetic operator sum += x; can be abbreviated =

Nested Assignments Multiple assignments in one statement. Assignment operators are right-associative. x = y = z = 0; x = (y = (z = 0)); x -= y = z; x -= (y = z); x = y += z; x = (y += z);

Input and Output printf(format string, arg1, arg2, ); The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream e.g. printf( Hello World!\n ); conversion specifications, each of which results in fetching zero or more subsequent arguments. %c: the argument is taken to be a single character %d: the argument is taken to be an integer %f: the argument is taken to be a floating point (float or double) %s: the argument is taken to be a string

Input and Output Examples: int i = 2; printf( %d \n, i); printf( %d \n, 20*i); float c = 20; printf( %f centigrade = %f %s\n, c, 1.8*c+32, Fahrenheit );

Input and Output scanf (format string, arg1, arg2, ); The format string consists of a sequence of directives which describe how to process the sequence of input characters. A directive is one of the following: A sequence of white-space characters An ordinary character (i.e., one other than white space or '%') A conversion specification, which commences with a '%' (percent) character %c: a single character is expected in the input %d: an integer is expected in the input %f: a floating point is expected in the input.. Each argument must point to the variable where the results of input are to be stored.

Input and Output Example: #include<stdio.h> int main(void) { float principal, rate, interest; int years; printf( principal, rate, and years? ); scanf( %f %f %d, &principal, &rate, &years); } rate /= 100; interest = principal * rate * years; printf( interest = %f\n, interest); return 0;

Type Conversion and Casting In an operation, if operands are of mixed data types, the compiler will convert one operand to agree with the other using the following hierarchy structure: long double (highest) double float long int char/short (lowest) char short int long float double long double

Type Conversion and Casting (Cont.) implicit (automatic) type conversion done automatically by the compiler whenever data from different types is intermixed. int i; double x = 17.7; i = x; i=17 float x; int i = 17; x = i; x=17.0

Type Conversion and Casting (Cont.) Casting: explicit type conversion (type) any r-value #include <stdio.h> int main(void) { int total_score, num_students; float average; Enter sum of scores: 333 Enter number of students: 4 Average score (no type casting) is 83.00 Average score (with type casting) is 83.25 printf("enter sum of scores: "); scanf("%d",&total_score); printf("enter number of students: "); scanf("%d",&num_students); average=total_score/num_students; printf("average score (no type casting) is %.2f\n", average); } average=(float)total_score/(float)num_students; printf("average score (with type casting) is %.2f\n", average); return 0;

Simple Macros C provides a #define directive to define symbolic names for constants: #include<stdio.h> #define PI 3.14 int main(void) { float radius; scanf( %f, &radius); printf( area = %f\n, PI * radius * radius); printf( circumference = %f\n, 2 * PI * radius); return 0; }

Exercises Given int x=4, y=5, z=6; Evaluate the following: x -= y = z; y *= z/x; z += -++x - y++; Given int a=12, b=8, c=2; Evaluate the following: b %= (a %= b) * c * c-b;

Exercises Given int x=3; What is the result of the following? x = x*5/2.0 + 3/2; Given double x = 3; What is the value of x after the following statements are executed? x = x*5/2; x = x*5/(int)2; x = (int)x*5/2;

Exercises Write a program that reads 3-digit 2 positive integer number. Firstly, you will find the sum of individual digits of the first number. After that, you will find the multiplication of individual digits of the second number. Finally, you will sum of these two results as an output. For example: inputs: 157 218 output: 13+16=29 157 1+5+7=13 218 2*1*8=16