78
CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-0-0) Teacher: Sourangshu Bha@acharya [email protected] h@p://cse.iitkgp.ac.in/~sourangshu/ Department of Computer Science and Engineering Indian InsJtute of Technology Kharagpur

CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CS11001/CS11002ProgrammingandDataStructures

(PDS)(Theory:3-0-0)

Teacher:SourangshuBha@[email protected]

h@p://cse.iitkgp.ac.in/~sourangshu/

DepartmentofComputerScienceandEngineeringIndianInsJtuteofTechnologyKharagpur

Page 2: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TentaJveSyllabusIntroducJontodigitalcomputersBasicprogrammingconstructs

VariablesandsimpledatatypesAssignmentsInput/outputCondi7onsandbranchingLoopsanditera7onItera7vesearchingandsor7ngalgorithmsProgrammingExamples:Sor7ng…etc

Advancedprogrammingconstructs

Func7onsandrecursionRecursivesor7ngalgorithmsArraysandstrings StructuresPointersanddynamicmemoryalloca7on

FileHandling

Page 3: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TentaJveSyllabus

PerformanceanalysisofprogramsDatastructures

AbstractdatatypesOrderedlistsStacksandqueues

ProgrammingLanguage:C

Page 4: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseMaterials

Donotusebookswri@enonspecificCcompilerslikeTurboC,gccUseanystandardtextbookonANSICSomeusefultextbooks:ü  BrianW.KernighanandDennisM.Ritchie

TheCProgrammingLanguage,Pren7ceHallofIndia.ü  E.Balaguruswamy

ProgramminginANSIC,TataMcGraw-Hillü  ByronGoTried

Schaum’sOutlineofProgrammingwithC,McGraw-Hillü  SeymourLipschutz,

DataStructures,Schaum’sOutlineSeries,TataMcGraw-Hillü  EllisHorowitz,SatrajSahniandSusanAnderson-Freed,

FundamentalsofDataStrcuturesinC,W.H.FreemnandCompany

Page 5: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseMaterials

Webreferences:

hWp://cse.iitkgp.ac.in/~pds/

SomeusefulsoYware:hWp://cse.iitkgp.ac.in/~pds/soYware/

Notes:

hWp://cse.iitkgp.ac.in/~pds/notes/

Courserelatedinforma7onandannouncements:hWp://cse.iitkgp.ac.in/~pds/current/

Page 6: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

A@endanceintheclassesisMANDATORY

StudentshavingpooraWendancewillbepenalizedintermsofthefinalgrade/deregistra7on.

ProxyintheaWendancewillbeheavilypenalized.Eachproxyin

theclasswillresultinthededuc7onof5marksfromtotalmarksyouobtained.

ItisyourresponsibilitytochecknosuchaWendancemarked

againstyou.

Page 7: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseFactsforsecJon1,2,3

Ø SecJons:1,2,3Ø ClassRoom:V2

Ø TimeSchedule:Monday8:00–09:55am,Wednesday12:00–12:55pm

Ø ClassTeacher:SudeshnaSarkar

Ø TeachingAssistant(TA):AbhijitMondal

AnandaDasMadhumitaMallickSaptarshiMisra

Page 8: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseFactsforsecJons4,5Ø SecJons:4,5Ø ClassRoom:NR121

Ø TimeSchedule:Wednesday12:00–12:55pm,Thursday11:00–11:55,Friday9:00–09:55

Ø ClassTeacher:DebasisSamanta

Ø TeachingAssistant(TA):CheemaBaljeetSingh

SreejaSRAnushriSahaAnoopA

Page 9: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseFactsforsecJons6,7Ø SecJons:6,7Ø ClassRoom:NR222

Ø TimeSchedule:Monday(10:00-10:55);Wednesday(9:00-9:55);Thursday(10:00-10:55)

Ø ClassTeacher:SourangshuBhaWacharya

Ø TeachingAssistant(TA):RijulaKar,

AbirDey,SangaChaki,SankarshanMridha

Page 10: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CourseFactsDistribuJonofMarks:

ClassTest1: 10MidSemesterExam: 30ClassTest2: 10EndSemesterExam: 50

ImportantDates:

ClassTest1:Thursday,February2,2017,7:00-8:00pmClassTest2: WednesdayMarch15,20177:00-8:00pmMid-Semester: February12-21,2017(asperins7tuteschedule)End-Semester: April20–April28,2017(asperins7tuteschedule)

TentaJvesyllabusoftests:

CT1syllabus: Un7lArraysandStringsMidSem: Un7lFunc7ons,includingrecursionCT2: Un7lArrays(2D)EndSem: Everything

Page 11: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Let us see

Page 12: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

WhatisaComputer?

Central Processing

Unit (CPU)‏

Input Device

Output Device

Main Memory

Storage (Hard disk)

It is a machine which can accept data, process them, and output results.

The Box

Page 13: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

CentralProcessingUnit(CPU)

– Allcomputa7onstakeplacehereinorderforthecomputertoperformadesignatedtask.

–  Ithasalargenumberofregisterswhichtemporarilystoredataandprograms(instruc7ons).

–  Ithascircuitrytocarryoutarithme7candlogicopera7ons,takedecisions,etc.

–  Itretrievesinstruc7onsfromthememory,interprets(decodes)them,andperformtherequestedopera7on.

Page 14: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

while<powerison>1.fetchtheinstruc@on <decodeit>2.executetheinstruc@on

Page 15: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

• Usessemiconductortechnology• Allowsdirectaccess• RAM–RandomAccessMemory

– Somemeasurestoberemembered• 1K=210(=1024)‏• 1M=220(=onemillionapprox.)‏• 1G=230(=onebillionapprox.)‏

MainMemory

Page 16: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

InputOutput(I/O)•  InputDevice

–  Keyboard,Mouse,Scanner,DigitalCamera•  OutputDevice

– Monitor,Printer•  StoragePeripherals

– Magne7cDisks:harddisk,floppydisk•  Allowsdirectaccess

– Op7calDisks:CDROM,CD-RW,DVD•  Allowsdirectaccess

–  FlashMemory:pendrives•  Allowsdirectaccess

– Magne7cTape:DAT•  Onlysequen7alaccess

Page 17: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TypicalConfiguraJonofaPC

•  CPU: Intel(R)Core(TM) i5-4570CPU,3.2GHz

•  MainMemory: 4GB•  HardDisk: 500GB•  FloppyDisk: Notpresent•  CDROM: DVDRWcombo-drive•  InputDevice: Keyboard,Mouse•  OutputDevice: Monitor•  Ports: USB,Firewire,Infrared

Page 18: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

NumberSystem•  Decimalnumbersystem

–  Tendigits:0,1,2,3,4,5,6,7,8,9–  Everydigitposi7onhasaweight:powerof10.

•  Example:234 =2x102+3x101+4x100

250.67=2x102+5x101+0x100 +6x10-1+7x10-2

Page 19: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Numbersystemindigitalcomputer

•  Adigitalcomputerisbuiltoutof7nyelectronicswitches.–  Fromtheviewpointofeaseofmanufacturingandreliability,suchswitchescanbeinoneoftwostates,ONorOFF.

–  Thiscanberepresentedby0(OFF)and1(ON).

•  Thissuggestsforabinarynumbersystemforadigitalcomputer.

Page 20: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ConceptofBitsandBytes•  Bit

– Asinglebinarydigit(0or1).•  Nibble

– Acollec7onoffourbits(say,0110).•  Byte

– Acollec7onofeightbits(say,01000111).•  Kilobyte(KB),MB,GB

–  ?????•  Word

– Dependsonthecomputer.–  Typically4or8bytes(thatis,32or64bits).

Page 21: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

DecimalandBinary

•  Ak-bitdecimalnumber–  Canexpressunsignedintegersintherange0to10k–1

•  Fork=3,from0to999.

•  Ak-bitbinarynumber–  Canexpressunsignedintegersintherange0to2k–1

•  Fork=8,from0to255.•  Fork=10,from0to1023.

Page 22: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ComputerLanguages

•  MachineLevelLanguage(MLL)– Expressedinbinary.– Directlyunderstoodbythecomputer.– Notportable;variesfromonemachinetypetoanother.

•  ProgramwriWenforonetypeofmachinewillnotrunonanothertypeofmachine.

– Difficulttouseinwri7ngprograms.

Page 23: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Example:MachineLevelLanguage

Binary Hexadecimal

Page 24: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ComputerLanguages•  AssemblyLevelLanguage(ALL)

– Mnemonicformofmachinelanguage.– Easiertouseascomparedtomachinelanguage.

•  Forexample,use“ADD”insteadof“10110100”.

– Notportable(likemachinelanguage).– Requiresatranslatorprogramcalledassembler.

Assembler Assembly language program

Machine language program

Page 25: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Example:AssemblyLevelLanguage

•  Assemblylanguageisalsodifficulttouseinwri7ngprograms.– Requiresmanyinstruc7onstosolveaproblem.

•  Example:Findtheaverageofthreenumbers.MOV A,X ; A = X ADD A,Y ; A = A + Y

ADD A,Z ; A = A + Z DIV A,3 ; A = A / 3

MOV RES,A ; RES = A

RES = (X + Y + Z) / 3

Page 26: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

High-LevelLanguage•  Machinelanguageandassemblylanguagearecalledlow-levellanguages.–  Theyareclosertothemachine.– Difficulttouse.

•  High-levellanguagesareeasiertouse.–  Theyareclosertotheprogrammer.–  Examples:

•  Fortran,Cobol,C,C++,Java.–  Requiresanelaborateprocessoftransla7on.

•  UsingasoYwarecalledcompiler.–  Theyareportableacrossplavorms.

Page 27: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Example:HighLevelLanguage

•  Example:Findtheaverageofthreenumbers.

RES = (X + Y + Z) / 3

Page 28: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TherelaJonship

HighLevelLanguage

AssemblyLevelLanguage

MachineLevelLanguage

Assembler

Compiler

Page 29: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ClassificaJonofSoeware

1.  Applica7onSoYware•  Usedtosolveapar7cularproblem.•  Editor,financialaccoun7ng,weatherforecas7ng,etc.

2.  SystemSoYware•  Helpsinrunningotherprograms.•  Compiler,opera7ngsystem,etc.

Page 30: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

OperaJngSystems

•  A system soYware to interface between computerhardware and soYware resources includingapplica7onprograms.

•  Categoriesofopera7ngsystems:– Singleuser– Mul7user

•  Timesharing•  Mul7tasking•  Real7me

Page 31: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

OperaJngSystems•  Popularopera7ngsystems:

– DOS: single-user– Windows: single-usermul7tasking– Unix: mul7-user– Linux: afreeversionofUnix

•  ThelaboratoryclasswillbebasedonUnix.

Page 32: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Programming in C

Page 33: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

UniversalstarJngpoint

#include <stdio.h> int main() { printf (“Hello World\n”); return 0;

}

Header file includes functions for input/output

Main function is executed when you run the program. (Later we will see how to pass its parameters)

Curly braces within which statements are executed one after another.

Statement for printing the sentence within double quotes (“..”). ‘\n’ denotes end of line.

Returnvaluetofunc7on

Page 34: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

1.   Writeaprogramandsaveit.2.   Compiletheprogramusingthecorrectcompiler.3.   Executetheprogram

Threestepstofollow

1.vihello.c#include<stdio.h>intmain(){prini("HelloWorld\n");return0;}2.$cchello.c$3.$./a.outHelloWorld

Page 35: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

IntroducJontoC•  Cisageneral-purpose,structuredprogramminglanguage.

–  Resemblesotherhigh-levelstructuredprogramminglanguages,suchasPascalandFortran-77.

–  Alsocontainsaddi7onalfeatureswhichallowittobeusedatalowerlevel.

•  Ccanbeusedforapplica7onsprogrammingaswellasforsystemsprogramming.

•  Thereareonly32keywordsanditsstrengthliesinitsbuilt-infunc7ons.

•  Cishighlyportable,sinceitrelegatedmuchcomputer-dependentfeaturestoitslibraryfunc7ons.

Page 36: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

HistoryofC•  Originallydevelopedinthe1970’sbyDennisRitchieatAT&TBellLaboratories.–  OutgrowthoftwoearlierlanguagesBCPLandB.

•  Popularitybecamewidespreadbythemid1980’s,withtheavailabilityofcompilersforvariousplavorms.

•  Standardiza7onhasbeencarriedouttomakethevariousCimplementa7onscompa7ble.–  AmericanNa7onalStandardsIns7tute(ANSI)

Page 37: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

StructureofaCprogram•  EveryCprogramconsistsofoneormorefunc7ons.

–  Oneofthefunc7onsmustbecalledmain.

–  Theprogramwillalwaysbeginbyexecu7ngthemainfunc7on.

•  Eachfunc7onmustcontain:–  Afunc7onheading,whichconsistsofthefunc@onname,followedbyanop7onallistofargumentsenclosedinparentheses.

–  Alistofargumentdeclara@ons.

–  Acompoundstatement,whichcomprisestheremainderofthefunc7on.

Page 38: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

StructureofaCprogram

•  Eachcompoundstatementisenclosedwithinapairofbraces:‘{‘and‘}’–  Thebracesmaycontaincombina7onsofelementarystatementsandothercompoundstatements.

•  Commentsmayappearanywhereinaprogram,enclosedwithindelimiters‘/*’and‘*/’.–  Example:

a=b+c;/*ADDTWONUMBERS*/

Page 39: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

#include <stdio.h> int main() {

int n; scanf(“%d”,&n); printf(“%d”,n); return 0;

}

InandOutonly#include <stdio.h> int main() {

int n; scanf(“%d”,&n); printf(“%d”,n+n); return 0;

}

#include <stdio.h> int main() {

int n,m; scanf(“%d”,&n);/* Read the value of n */ m=n+n; printf(“%d”,m); return 0;

}

Page 40: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

InandOutonly

#include <stdio.h> int main() {

int n,m; scanf(“%d”,&n);/* Read the value of n */ m=n+n; printf(“%d”,m); return 0;

}

Control character for printing value of m in decimal digits.

Integers variables declared before their usage.

Comments within /* .. */

Input statement for reading variable from the keyboard

Page 41: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

#include <stdio.h> #define PI 3.1416 double area_of_circle(float); double area_of_circle (float radius) {

return PI*radius*radius; } int main() {

int squareSide; double area; scanf(“%d”, &squareSide); area= area_of_circle(squareSide/2); printf(“Area of the circle enclosing the square of side %d

is: %f\n”, squareSide, area); return 0;

}

AcompleteCprogramIncludeheaderfiles

Declareglobalvariables,constantsandfunc7on

prototypes

Func7onbodies

Theremustbeamainfunc7oninanyCprogram.

Page 42: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

#include <stdio.h> #define PI 3.1416 double area_of_circle(float); double area_of_circle (float radius) {

return PI*radius*radius; } int main() {

int squareSide; double area; scanf(“%d”, &squareSide); area= area_of_circle(squareSide/2); printf(“Area of the circle enclosing the square of side %d

is: %f\n”, squareSide, area); return 0;

}

AcompleteCprogramPreprocessor statement. Replace PI by 3.1416 before compilation.

Function called

Example of a function called as per need from main program.

main()funcJon:startofexecuJon

Page 43: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TheCCharacterSet

•  TheClanguagealphabet:–  UppercaseleWers‘A’to‘Z’–  LowercaseleWers‘a’to‘z’–  Digits‘0’to‘9’–  Certainspecialcharacters:

! # % ^ & * ( )

-  _ + = ~ [ ] \

| ; : ‘ “ { } ,

. < > / ? blank

Page 44: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

IdenJfiers•  Iden7fiers

–  Namesgiventovariousprogramelements(variables,constants,func7ons,etc.)

– MayconsistofleIers,digitsandtheunderscore(‘_’)character,withnospacebetween.

–  FirstcharactermustbealeWer.

–  Aniden7fiercanbearbitrarylong.•  SomeCcompilersrecognizeonlythefirstfewcharactersofthename(16or31).

–  Casesensi7ve•  ‘area’,‘AREA’and‘Area’arealldifferent.

Page 45: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Keywords•  Keywords

–  Reservedwordsthathavestandard,predefinedmeaningsinC.

–  Cannotbeusedasiden7fiers.

–  OKwithincomments.

–  StandardCkeywords:

auto break case char const continue default do

double else enum extern float for goto if

int long register return short signed sizeof static

struct switch typedef union unsigned void volatile while

Page 46: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ValidandInvalidIdenJfiers•  ValididenJfiers

Xabcsimple_interesta123LISTstud_nameEmpl_1Empl_2avg_empl_salary

•  InvalididenJfiers10abc“hello”simpleinterest(area)%rate

Page 47: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

int::integerquan7tyTypicallyoccupies4bytes(32bits)inmemory.

char::singlecharacterTypicallyoccupies1byte(8bits)inmemory.

float::floa7ng-pointnumber(anumberwithadecimalpoint)Typicallyoccupies4bytes(32bits)inmemory.

double::double-precisionfloa7ng-pointnumber

BasicDataTypesinC

Precisionreferstothenumberofsignificantdigitsa6erthedecimalpoint.

Page 48: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AugmentedDataType

•  Someofthebasicdatatypescanbeaugmentedbyusingcertaindatatypequalifiers:–  short–  long–  signed–  unsigned

•  Typicalexamples:–  shortint–  longint–  unsignedint

Page 49: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Integertype

Type Storagesize(inbyte) Valuerange

char 1 -128to127or0to255unsignedchar 1 0to255signedchar 1 -128to127

int 2or4 -32,768to32,767or-2,147,483,648to2,147,483,647

unsignedint 2or4 0to65,535or0to4,294,967,295short 2 -32,768to32,767unsignedshort 2 0to65,535

long 4 -2,147,483,648to2,147,483,647unsignedlong 4 0to4,294,967,295

Page 50: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Integertype

unsignedcharè1byteè8bits è00000000to11111111è0to255

11111111è1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20

signedcharè1byteè8bits è00000000to11111111è-128to127

1111111è1×26+1×25+1×24+1×23+1×22+1×21+1×20

Page 51: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

FloaJng-pointtype

Type Storagesize(inbyte) Valuerange Precision

float 4 1.2E-38to3.4E+38 6decimalplacesdouble 8 2.3E-308to1.7E+308 15decimalplaceslongdouble 10 3.4E-4932to1.1E+4932 19decimalplaces

E or e means “10 to the power of”

Page 52: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ASCIITable

Page 53: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ExtendedASCIITable(AmericanStandardCodeforInforma7onInterchange)

Page 54: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

SomeExamplesofDataTypes

•  int0,25,-156,12345,-99820

•  char‘a’,‘A’,‘*’,‘/’,‘’

•  float23.54,-0.00345,25.02.5E12,1.234e-5

E or e means “10 to the power of”

Page 55: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Constants

Constants

Numeric Constants

Character Constants

string single character

floating-point integer

Page 56: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

IntegerConstants

•  Consistsofasequenceofdigits,withpossiblyaplusoraminussignbeforeit.–  Embeddedspaces,commasandnon-digitcharactersarenotpermiWedbetweendigits.

•  Maximumandminimumvalues(for32-bitrepresenta7ons)Maximum::2147483647Minimum::–2147483648

Page 57: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

FloaJng-pointConstants•  Cancontainfrac7onalparts.

•  Verylargeorverysmallnumberscanberepresented.23000000canberepresentedas2.3e7

•  Twodifferentnota7ons:1.  Decimalnota7on

25.0,0.0034,.84,-2.2342.  Exponen7al(scien7fic)nota7on

3.45e23,0.123e-12,123E2 e means “10 to the power of”

Page 58: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

SingleCharacterConstants

•  Containsasinglecharacterenclosedwithinapairofsinglequotemarks(‘’).–  Examples::‘2’,‘+’,‘Z’

•  Somespecialbackslashcharacters‘\n’ newline‘\t’ horizontaltab‘\’’ singlequote‘\”’ doublequote‘\\’ backslash‘\0’ null

Page 59: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

StringConstants

•  Sequenceofcharactersenclosedindoublequotes(““).–  ThecharactersmaybeleWers,numbers,specialcharactersandblankspaces.

•  Examples:“nice”,“GoodMorning”,“3+6”,“3”,“C”

•  Differencesfromcharacterconstants:–  ‘C’and“C”arenotequivalent.–  ‘C’hasanequivalentintegervaluewhile“C”doesnot.

Page 60: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Variables

•  Itisadatanamethatcanbeusedtostoreadatavalue.

•  Unlikeconstants,avariablemaytakedifferentvaluesinmemoryduringexecu7on.

•  Variablenamesfollowthenamingconven7onforiden7fiers.– Examples::temp,speed,name2,current

Page 61: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Example int a, b, c; char x; a = 3; b = 50; c = a – b; x = ‘d’; b = 20; a = a + 1; x = ‘G’;

Variables

Constants

Page 62: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

DeclaraJonofVariables

•  Therearetwopurposes:1.  Ittellsthecompilerwhatthevariablenameis.2.  Itspecifieswhattypeofdatathevariablewillhold.

•  Generalsyntax:data-typevariable-list;

•  Examples:intvelocity,distance;inta,b,c,d;floattemp;charflag,op7on;

Page 63: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AddressandContent

1349

1350

1351

1352

speed

11101010

int speed;

speed=234;

speed 234 &speed 1350

Binaryof234

Everyvariablehasanaddress(inmemory),anditscontents.

Page 64: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AddressandContent

•  InCterminology,inanexpressionspeedreferstothecontentsofthememoryloca7on.

&speedreferstotheaddressofthememoryloca7on.

•  Examples:printf (“%f %f %f”, speed, time, distance); scanf (“%f %f”, &speed, &time);

Page 65: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AnExample

#include <stdio.h> int main() { float speed, time, distance; scanf (“%f %f”, &speed, &time); distance = speed * time; printf (“\n The distance traversed is: \n”, distance); return 0; }

Address of speed

Content of speed

Page 66: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AssignmentStatement

•  Usedtoassignvaluestovariables,usingtheassignmentoperator(=).

•  Generalsyntax:variable_name = expression;

•  Examples:velocity = 20; b = 15; temp = 12.5; A = A + 10; v = u + f * t; s = u * t + 0.5 * f * t * t;

Page 67: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

AdvancedAssignmentStatement

•  Assignmentduringdeclara7onint speed = 30; char flag = ‘y’;

•  Mul7plevariableassignmenta = b = c = 5; flag1 = flag2 = ‘y’;

speed = flow = 20.0;

Page 68: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

OperatorsinExpressions

Operators

Arithmetic Operators

Relational Operators

Logical Operators

Page 69: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ArithmeJcOperators

•  Addi7on::+•  Subtrac7on::–•  Division:: /•  Mul7plica7on::*•  Modulus:: %

X + Y 48

X – Y 2

X * Y 575

X / Y ?

X % Y ??

X=25; Y=23;

Page 70: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

OperatorPrecedence

•  Indecreasingorderofpriority1.  Parentheses::()2.  Unaryminus::–53.  Mul7plica7on,Division,andModulus4.  Addi7onandSubtrac7on

•  Foroperatorsofthesamepriority,evalua7onisfromleYtorightastheyappear.

•  Parenthesismaybeusedtochangetheprecedenceofoperatorevalua7on.

Page 71: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Examples:ArithmeJcexpressions

v = u + f * t; è X = x * y / z è A = a + b – c * d / e èA = -b * c + d % e è

Page 72: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

Examples:ArithmeJcexpressions

v = u + f * t; è v=u+(f*t);X = x * y / z è X=(x*y)/zA = a + b – c * d / e èA=((a+b)-((c*d)/e))A = -b * c + d % e èA=(((-b)*c)+(d%e))

Page 73: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

IntegerArithmeJc

•  Whentheoperandsinanarithme7cexpressionareintegers,theexpressioniscalledintegerexpression,andtheopera7oniscalledintegerarithme@c.

•  Integerarithme7calwaysyieldsintegervalues.

Page 74: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

RealArithmeJc

•  Involvingonlyrealorfloa7ng-pointoperands(includingdouble,longdouble).

•  Sincefloa7ng-pointvaluesareroundedtothenumberofsignificantdigitspermissible,thefinalvalueisanapproxima7onofthefinalresult. A=22/7*7*7=(((22/7)*7)*7)=153.86 =(((22*7)/7)*7)=154

•  Themodulusoperatorcannotbeusedwithrealoperands.

Page 75: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

ArithmeJc–integer/real

•  AnexpressioncontainsonlyintegeroperandsèIntegerarithme7cwillbeperformed.

•  AnexpressioncontainsonlyrealoperandsèRealarithme7cwillbeperformed.

•  AnexpressioncontainsintegerandrealboththeoperandsèRealarithme7cwillbeperformed.

Page 76: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TypecasJng

•  Afaultyreciprocalfinder

#include <stdio.h> int main () { int n; scanf("%d",&n); printf("%d\n",1/n); return 0;

}

Thedivision1/nisofintegers(quo7ent).Theformat%disforprin7ngintegers.

Page 77: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TypecasJng

#include <stdio.h>

int main () {

int n;

scanf("%d",&n);

printf("%f\n",1.0/n);

return 0; }

#include <stdio.h>

int main () {

int n;

float x;

scanf("%d",&n);

x=(float)1/n; printf("%f\n",x);

return 0;

}

Page 78: CS11001/CS11002 Programming and Data …cse.iitkgp.ac.in/pds/semester/2017s/slides/Presentation1.pdfCentral Processing Unit (CPU) – All computaons take place here in order for the

TypecasJng

Integertorealint a=10; float b;

b=(float)a;

Realtointeger

int a; float b=3.14; a=(int)b;

Realtoreal float b; double c=3.14;

b=(float)c;

Realtoreal float b;

double c; c=22.0/7.0;

b=(float)c;