Computers Programming Course 5. Iulian Năstac

Similar documents
Computers Programming Course 6. Iulian Năstac

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

Preview from Notesale.co.uk Page 6 of 52

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

Fundamental of C programming. - Ompal Singh

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

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

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

6.096 Introduction to C++ January (IAP) 2009

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

UNIT- 3 Introduction to C++

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

PART I. Part II Answer to all the questions 1. What is meant by a token? Name the token available in C++.

DEPARTMENT OF MATHS, MJ COLLEGE

THE FUNDAMENTAL DATA TYPES

Introduction to C Language

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

Work relative to other classes

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

Unit 4. Input/Output Functions

C Programming Multiple. Choice

I BCA[ ] SEMESTER I CORE: C PROGRAMMING - 106A Multiple Choice Questions.

A Fast Review of C Essentials Part I

Fundamental of Programming (C)

Computers Programming Course 7. Iulian Năstac

Basics of Programming

Introduction to C programming. By Avani M. Sakhapara Asst Professor, IT Dept, KJSCE

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:

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

CSCI 171 Chapter Outlines

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

C: How to Program. Week /Mar/05

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

UNIT 3 OPERATORS. [Marks- 12]

Fundamentals of Programming

Programming and Data Structures

Presented By : Gaurav Juneja

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

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

C Language, Token, Keywords, Constant, variable

Differentiate Between Keywords and Identifiers

OBJECT ORIENTED PROGRAMMING

Department of Computer Applications


Chapter 7. Basic Types

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

Chapter 2: Basic Elements of C++

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

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

Data Type Fall 2014 Jinkyu Jeong

Chapter 2 - Introduction to C Programming

INTRODUCTION 1 AND REVIEW

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

Basic Types and Formatted I/O

Number Systems, Scalar Types, and Input and Output

VARIABLES AND CONSTANTS

KARMAYOGI ENGINEERING COLLEGE, Shelve Pandharpur

Chapter 1 & 2 Introduction to C Language

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

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

Unit 4 Preprocessor Directives

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

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

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

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

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

Reserved Words and Identifiers

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

Data Types. Data Types. Integer Types. Signed Integers

Multiple Choice Questions ( 1 mark)

2.1. Chapter 2: Parts of a C++ Program. Parts of a C++ Program. Introduction to C++ Parts of a C++ Program

LESSON 4. The DATA TYPE char

from Appendix B: Some C Essentials

A flow chart is a graphical or symbolic representation of a process.

P.E.S. INSTITUTE OF TECHNOLOGY BANGALORE SOUTH CAMPUS 1 ST INTERNAL ASSESMENT TEST (SCEME AND SOLUTIONS)

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

Short Notes of CS201

Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

LESSON 5 FUNDAMENTAL DATA TYPES. char short int long unsigned char unsigned short unsigned unsigned long

PERIYAR CENTENARY POLYTECHNIC COLLEGE Periyar Nagar- Vallam Thanjavur

Muntaser Abulafi Yacoub Sabatin Omar Qaraeen. C Data Types

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

CS201 - Introduction to Programming Glossary By

C Language Programming

C Programming Class I

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

Standard 11. Lesson 9. Introduction to C++( Up to Operators) 2. List any two benefits of learning C++?(Any two points)

.. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar..

Programming. Elementary Concepts

C-LANGUAGE CURRICULAM

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

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

edunepal_info

QUIZ. 1. Explain the meaning of the angle brackets in the declaration of v below:

Q1. Multiple Choice Questions

DETAILED SYLLABUS INTRODUCTION TO C LANGUAGE

ANSI C Programming Simple Programs

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS

Visual C# Instructor s Manual Table of Contents

Computer System and programming in C

Transcription:

Computers Programming Course 5 Iulian Năstac

Recap from previous course Classification of the programming languages High level (Ada, Pascal, Fortran, etc.) programming languages with strong abstraction from the details of particular computer Medium level (C, C++, FORTH, etc.) Low level (assembly languages) programming languages that provide little or no abstraction from a computer's instruction set architecture 2

Recap C programming language 1966 Martin Richards (University of Cambridge) developed BCPL (Basic Combined Programming Language) 1969 Ken Thomson with contributions from Dennis Ritchie B programming language 1969-1973 Dennis Ritchie C programming language 1978 Dennis Ritchie and Brian Kernighan had elaborated a famous book, "The C Programming Language". 3

Recap The main properties of C programming language 1. Portability 2. Data types 3. Errors control 4. Work at assembler level 5. Few keywords 6. Structured language 7. Programmers' language 4

Recap The structure of a C program global statements: inclusions of header files statements of constants and global variables declarations of local functions function main() other functions 5

Recap C preprocessor The preprocessor provides the ability for: inclusion of header files macro expansions conditional compilation 6

Constants in C Language Constants can be very useful in C programming whenever you need a value that is repeated during the program Ex: #define PI 3.14159 Declaring a constant allows you to quickly and easily change a value that is used throughout the program simply by changing the initial declaration. 7

Data types four basic arithmetic type specifiers: char int float double optional specifiers: signed, unsigned short long 8

char Type signed char unsigned char short short int signed short signed short int unsigned short unsigned short int int signed int unsigned unsigned int Explanation Smallest addressable unit (8 bits) that can contain basic character set. It is an integer type. Actual type can be either signed or unsigned depending on the implementation. Same size as char, but guaranteed to be signed Same size as char, but guaranteed to be unsigned short signed integer type. At least 16 bits in size Same as short, but unsigned Basic signed integer type. At least 16 bits in size Same as int, but unsigned 9

Type long long int signed long signed long int unsigned long unsigned long int long long long long int signed long long signed long long int unsigned long long unsigned long long int Explanation long signed integer type. At least 32 bits in size Same as long, but unsigned long long signed integer type. At least 64 bits in size (specified since the C99 version of the standard). Same as long long, but unsigned (specified since the C99 version of the standard). 10

Type float double long double Explanation Single-precision floating-point format is a computer number format that occupies 4 bytes (32 bits) in computer memory and represents a wide dynamic range of values by using a floating point. Double-precision floating-point format is a computer number format that occupies 8 bytes (64 bits) in computer memory and represents a wide dynamic range of values by using floating point. Extended precision floating-point type. Unlike types float and double, it can be either 80-bit floating point format, or IEEE 754 quadrupleprecision floating-point format if a higher precision format is provided. 11

long double The 80-bit floating point format was widely available by 1984 after the development of C and similar computer languages, which initially offered only the common 32- and 64-bit floating point sizes. 12

Some C versions Approximate Type Option Operating range size in bytes char char 8-127 127 unsigned char 8 0 255 signed char 8-127 127 int int (signed int, short int, signed short int) unsigned int (unsigned short int) 16-32767 32767 16 0 65535 long int (signed long int) 32-2.147.483.647 2.147.483.647 unsigned long int 32 0 4.294.967.295 float float 32 ~ +/-3.4 10-38 +/-3.4 10 38 double double 64 ~ +/-1.7 10-308 +/-1.7 10 308 long double 80 128 ~ +/-3.4 10-4932 +/-3.4 10 4932 13

Notes: The actual size of integer types varies by implementation. The standard only requires size relations between the data types and minimum sizes for each data type. the long long is not smaller than long, which is not smaller than int, which is not smaller than short. 14

Notes: char size is always the minimum supported data type, all other data types can't be smaller. The minimum size for char is 8 bit, the minimum size for short and int is 16 bit, for long it is 32 bit and long long must contain at least 64 bit. Many conversions are possible in C. 15

Conversions in C Implicit conversion If there are several types of data, then all of them will be converted to the larger one By assignation when "equal" operator is involved, then the type of right side result is converted to the type of the left side. Logic conversion when logic operators are involved 16

Explicit type conversion float a = 1.3; double b = 2.5; long c = 3.4; int x; x = (int)a + (int)b + (int)c; (cast conversion) Note: the result is x == 9 if implicit conversion would be used (as with x = a + b + c"), result would be equal to 7 17

Variables Variables are simply names used to refer to some location in memory. Types of variables: Local variables Global variables 18

A more comprehensive classification Automatic variables variables which are allocated and deallocated automatically when program flow enters and leaves the variable's context an automatic variable is a variable defined inside a function block External variables variable defined outside any function block Static local variables variables that have been allocated statically whose lifetime extends across the entire run of the program Register variables register allocation is the process of assigning a large number of target program variables onto a small number of CPU registers 19

Automatic variable The term local variable is usually synonymous with automatic variable, since these are the same thing in many programming languages, but local is more general. Most local variables are automatic local variables, but static local variables also exist, notably in C. Automatic variables may be allocated in the stack frame of the procedure in which they are declared; this has the useful effect of allowing recursion and re-entrancy. The specific keyword is auto (not compulsory). 20

External variables As an alternative to automatic variables, it is possible to define variables that are external to all functions (variables that can be accessed by name by any function). An external variable may also be declared inside a function. In this case the extern keyword must be used, otherwise the compiler will consider it as a definition of a local variable, which has a different scope, lifetime and initial value. This declaration will only be visible inside the function instead of throughout the function's module. An external variable can be accessed by all the functions in all the modules of a program. It is a global variable. 21

Static local variables static variable is a variable that has been allocated statically whose lifetime extends across the entire run of the program. This is in contrast to the more ephemeral automatic variables (local variables are generally automatic), whose storage is allocated and deallocated on the call stack. Static variables are declared as such with a special storage class keyword (static). 22

Register variables For efficiency, the optimizer will try to allocate some of local variables in processor registers. In most register allocators, each variable is either in a register or in memory. If a variable can not be assigned a register then all of the variable's usage, including its definition, is preceded by a load from memory. The specific keyword is register (not compulsory). The register must be big enough to host that variable. 23

Conversion format specifiers A conversion format specifier consist of both % (percent character) and a terminating conversion character that indicate the type of variable that is used. 24

Conversion Type of associate variable format specifier %c single character %s string %d integer %u unsigned decimal integer %p pointer %f float %lf %Lf double long double 25

Note: %5d is associated with an integer that get maximum 5 character positions with right alignment %-5d is associated with an integer that get maximum 5 character positions with left alignment 26

Escape (backslash \) character C programming language specifies the doublequote character (") as a delimiter for a string literal. An escape character is a character which invokes an alternative interpretation on subsequent characters in a character sequence. The backslash (\) escape character typically provides special ways to treat the following part of a string or introduce a new character. 27

Note: \" becomes " inside a string Escape (backslash \) Effect in a string character \n new line \t tab \b backspace \v vertical tabulation \\ backslash character \/ slash 28

ASCII code The American Standard Code for Information Interchange (ASCII) is a character-encoding scheme originally based on the English alphabet that encodes 128 specified characters (the numbers 0-9, the letters a-z and A-Z, basic punctuation symbols, control codes, and a blank space) into the 7-bit binary integers. 29

ASCII includes definitions for 128 characters: 33 are non-printing control characters (many now obsolete) 95 printable characters, including the space (which is considered an invisible graphic) 30

31

Example ESC 1 2 : 9 Hex Code 1B 31 32 : 39 0 30 A B : a b : 41 42 : 61 62 : 32

Standard I/O routines are substitute for missing of I/O instructions C programming language provides many standard library functions for input and output. These functions make up the bulk of the C standard library header <stdio.h> (also in <conio.h> and <stdlib.h>) 33

A. General output routines 1. printf function int printf ( const char * format,... ); Writes the C string pointed by format to the standard output. If format includes format specifiers (subsequences beginning with %), the additional arguments following format are formatted and inserted in the resulting string replacing their respective specifiers. Ex.: printf( \n Result %d \n, x); 34

2. puts function int puts ( const char * str ); Writes the C string pointed by str and appends a newline character ('\n'). Ex.: printf( Message \n ); puts( Message ); 35

3. putchar function int putchar ( int character); Writes a character to the output Ex.: #include <stdio.h> int main() { char c; for (c = 'A' ; c <= 'Z' ; c++) putchar(c); return 0; } 36

4. putch function int putch ( int character); putch displays any alphanumeric characters to the standard output device. It displays only one character at a time. 37

B. General input routines 1. scanf function int scanf ( const char * format,... ); Reads data and stores them according to the parameter format into the locations pointed by the additional arguments. Ex.: scanf( %d %d, &x, &y); scanf( %d, %d, &x, &y); 38

2. gets function char * gets ( char *str ); gets() accepts any line of string including spaces from the standard input device (keyboard). gets() stops reading character from keyboard only when the enter key is pressed. 39

#include<stdio.h> #include<conio.h> int main() { char a[20]; gets(a); puts(a); getch(); } 40

3. getchar function int getchar ( void ); getchar() accepts one character type data from the keyboard. Ex variable_name = getchar(); 41

#include <stdio.h> int main () { char c; printf("enter character: "); c = getchar(); } printf("character entered: "); putchar(c); return(0); 42

4. getch function int getch ( void ); getch() accepts only single character from keyboard. The character entered through getch() is not displayed in the screen (monitor). 43

5. getche function int getche ( void ); Like getch(), getche() also accepts only single character, but unlike getch(), getche() displays the entered character in the screen. 44

synthesis Output functions printf puts putchar putch Input functions scanf gets getchar getch getche 45

Expressions An expression in a programming language is a combination of explicit values, constants, variables, operators, and functions that are interpreted according to the particular rules of precedence and of association for a particular programming language, which computes and then produces another value. This process, like for mathematical expressions, is called evaluation. The value can be of various types, such as numerical, string, and logical. 46

primary expressions list of expressions 47

Order of operations In computer programming, the order of operations (operator precedence) is a rule used to clarify which procedures should be performed first in a given mathematical expression. The operators in C have a strict precedence level. 48

1 () [] ->. :: Grouping, scope, array / member access 2! ~ - + * & sizeof type cast ++x - -x (most) unary operations, sizeof and type casts 3 * / % Multiplication, division, modulo 4 + - Addition and subtraction 5 << >> Bitwise shift left and right 6 < <= > >= Comparisons: less-than,... 7 ==!= Comparisons: equal and not equal 8 & Bitwise AND 9 ^ Bitwise exclusive OR 10 Bitwise inclusive (normal) OR 11 && Logical AND 12 Logical OR 13?: = += - = *= /= %= &= = ^= <<= >>= Conditional expression (ternary) and assignment operators 14, Comma operator 49

Automated conversion inside expressions Usually, the implicit conversion is involved (see a previous slide) Rule of implicit conversion in C 50

The Rule of Implicit conversion It works when a binary operator is applied to two operands. The steps of the rule : First convert the operands of type char and enum to the type int; If the current operator is applied to operands of the same type then the result will be the same type. If the result is a value outside the limits of the type, then the result is wrong (exceedances occur). If the binary operator is applied to operands of different types, then a conversion is necessary, as in the following cases: 51

If one operand is long double, therefore the other one is converted to long double and long double is the result type. Otherwise, if one operand is double, therefore the other one is converted to double and double is the result type. Otherwise, if one operand is float, therefore the other one is converted to float and float is the result type. Otherwise, if one operand is unsigned long, therefore the other one is converted to unsigned long and unsigned long is the result type. Otherwise, if one operand is long, therefore the other one is converted to long and long is the result type. Otherwise, if one operand is unsigned, therefore the other one is converted to unsigned and unsigned is the result type. 52

Example: float x; double y; char c; int i;... 53

Operators in C Programming languages typically support a set of operators, which differ in the calling of syntax and/or the argument passing mode from the language's functions. C programming language contains a fixed number of built-in operators. 54

1 () [] ->. :: Grouping, scope, array / member access 2! ~ - + * & sizeof type cast ++x - -x (most) unary operations, sizeof and type casts 3 * / % Multiplication, division, modulo 4 + - Addition and subtraction 5 << >> Bitwise shift left and right 6 < <= > >= Comparisons: less-than,... 7 ==!= Comparisons: equal and not equal 8 & Bitwise AND 9 ^ Bitwise exclusive OR 10 Bitwise inclusive (normal) OR 11 && Logical AND 12 Logical OR 13?: = += - = *= /= %= &= = ^= <<= >>= Conditional expression (ternary) and assignment operators 14, Comma operator 55