You are on page 1of 53

INTRODUCTION TO C++

HISTORY OF COMPUTER
A COMPUTER IS A GENERAL PURPOSE DEVICE THAT CAN BE PROGRAMMED TO CARRY OUT A FINITE SET OF ARITHMETIC OR LOGICAL OPERATIONS. SINCE A SEQUENCE OF OPERATIONS CAN BE READILY CHANGED, THE COMPUTER CAN SOLVE MORE THAN ONE KIND OF PROBLEM. CONVENTIONALLY, A COMPUTER CONSISTS OF AT LEAST ONE PROCESSING ELEMENT, TYPICALLY A CENTRAL PROCESSING UNIT (CPU) AND SOME FORM OF MEMORY. THE PROCESSING ELEMENT CARRIES OUT ARITHMETIC AND LOGIC OPERATIONS, AND A SEQUENCING AND CONTROL UNIT THAT CAN CHANGE THE ORDER OF OPERATIONS BASED ON STORED INFORMATION. PERIPHERAL DEVICES ALLOW INFORMATION TO BE RETRIEVED FROM AN EXTERNAL SOURCE, AND THE RESULT OF OPERATIONS SAVED AND RETRIEVED.

WHAT IS CPU?
A CENTRAL PROCESSING UNIT (CPU), ALSO REFERRED TO AS A CENTRAL PROCESSOR UNIT,[1] IS THE HARDWARE WITHIN A COMPUTER THAT CARRIES OUT THE INSTRUCTIONS OF A COMPUTER PROGRAM BY PERFORMING THE BASIC ARITHMETICAL, LOGICAL, AND INPUT/OUTPUT OPERATIONS OF THE SYSTEM. THE TERM HAS BEEN IN USE IN THE COMPUTER INDUSTRY AT LEAST SINCE THE EARLY 1960S.THE FORM, DESIGN, AND IMPLEMENTATION OF CPUS HAVE CHANGED OVER THE COURSE OF THEIR HISTORY, BUT THEIR FUNDAMENTAL OPERATION REMAINS MUCH THE SAME.

WHAT IS MEANT BY AN OPERATING SYSTEM.


AN OPERATING SYSTEM (OS) IS A COLLECTION OF SOFTWARE THAT MANAGES COMPUTER HARDWARE RESOURCES AND PROVIDES COMMON SERVICES FOR COMPUTER PROGRAMS. THE OPERATING SYSTEM IS A VITAL COMPONENT OF THE SYSTEM SOFTWARE IN A COMPUTER SYSTEM. APPLICATION PROGRAMS USUALLY REQUIRE AN OPERATING SYSTEM TO FUNCTION.

WHAT IS A PROGRAMMING LANGUAGE?


A PROGRAMMING LANGUAGE IS AN ARTIFICIAL LANGUAGE DESIGNED TO COMMUNICATE INSTRUCTIONS TO A MACHINE, PARTICULARLY A COMPUTER. PROGRAMMING LANGUAGES CAN BE USED TO CREATE PROGRAMS THAT CONTROL THE BEHAVIOUR OF A MACHINE AND/OR TO EXPRESS ALGORITHMS PRECISELY.

CONTINUED..
COMPUTER PROGRAMMING (OFTEN SHORTENED TO PROGRAMMING) IS THE COMPREHENSIVE PROCESS THAT LEADS FROM AN ORIGINAL FORMULATION OF A COMPUTING PROBLEM TO EXECUTABLE PROGRAMS. IT INVOLVES ACTIVITIES SUCH AS ANALYSIS, UNDERSTANDING, AND GENERICALLY SOLVING SUCH PROBLEMS RESULTING IN AN ALGORITHM, VERIFICATION OF REQUIREMENTS OF THE ALGORITHM INCLUDING ITS CORRECTNESS AND ITS RESOURCE CONSUMPTION, IMPLEMENTATION (OR CODING) OF THE ALGORITHM IN A TARGET PROGRAMMING LANGUAGE, TESTING, DEBUGGING, AND MAINTAINING THE SOURCE CODE, IMPLEMENTATION OF THE BUILD SYSTEM AND MANAGEMENT OF DERIVED ARTEFACTS SUCH AS MACHINE CODE OF COMPUTER PROGRAMS.

THE ALGORITHM IS OFTEN ONLY REPRESENTED IN HUMAN-PARSABLE FORM AND REASONED ABOUT USING LOGIC. SOURCE CODE IS WRITTEN IN ONE OR MORE PROGRAMMING LANGUAGES (SUCH AS C++, C#, JAVA, PYTHON, SMALLTALK, ETC.). THE PURPOSE OF PROGRAMMING IS TO FIND A SEQUENCE OF INSTRUCTIONS THAT WILL AUTOMATE PERFORMING A SPECIFIC TASK OR SOLVE A GIVEN PROBLEM. THE PROCESS OF PROGRAMMING THUS OFTEN REQUIRES EXPERTISE IN MANY DIFFERENT SUBJECTS, INCLUDING KNOWLEDGE OF THE APPLICATION DOMAIN, SPECIALIZED ALGORITHMS AND FORMAL LOGIC.

HISTORY OF PROGRAMMING LANGUAGES


THE FIRST PROGRAMMING LANGUAGES PREDATE THE MODERN COMPUTER. THE 19TH CENTURY SAW THE INVENTION OF "PROGRAMMABLE" LOOMS AND PLAYER PIANO SCROLLS, BOTH OF WHICH IMPLEMENTED EXAMPLES OF DOMAIN-SPECIFIC LANGUAGES.

WHAT IS A COMPILER?
A COMPILER IS A COMPUTER PROGRAM (OR SET OF PROGRAMS) THAT TRANSFORMS SOURCE CODE WRITTEN IN A PROGRAMMING LANGUAGE (THE SOURCE LANGUAGE) INTO ANOTHER COMPUTER LANGUAGE (THE TARGET LANGUAGE, OFTEN HAVING A BINARY FORM KNOWN AS OBJECT CODE). THE MOST COMMON REASON FOR WANTING TO TRANSFORM SOURCE CODE IS TO CREATE AN EXECUTABLE PROGRAM.

WHAT IS OBJECT FILE?


AN OBJECT FILE IS A FILE CONTAINING OBJECT CODE, MEANING RELOCATABLE FORMAT MACHINE CODE THAT IS USUALLY NOT DIRECTLY EXECUTABLE. OBJECT FILES ARE PRODUCED BY AN ASSEMBLER, COMPILER, OR OTHER LANGUAGE TRANSLATOR, AND USED AS INPUT TO THE LINKER, WHICH IN TURN TYPICALLY GENERATES AN EXECUTABLE OR LIBRARY BY COMBINING PARTS OF OBJECT FILES. THERE ARE VARIOUS FORMATS FOR OBJECT FILES, AND THE SAME OBJECT CODE CAN BE PACKAGED IN DIFFERENT OBJECT FILES.

LINKER
IN COMPUTER SCIENCE, A LINKER OR LINK EDITOR IS A COMPUTER PROGRAM THAT TAKES ONE OR MORE OBJECT FILES GENERATED BY A COMPILER AND COMBINES THEM INTO A SINGLE EXECUTABLE PROGRAM.

WHAT IS EXECUTABLE FILE?


IN COMPUTING, AN EXECUTABLE FILE CAUSES A COMPUTER "TO PERFORM INDICATED TASKS ACCORDING TO ENCODED INSTRUCTIONS,"[1] AS OPPOSED TO A DATA FILE THAT MUST BE PARSED BY A PROGRAM TO BE MEANINGFUL. THESE INSTRUCTIONS ARE TRADITIONALLY MACHINE CODE INSTRUCTIONS FOR A PHYSICAL CPU.

HIGH LEVEL LANGUAGE


IN COMPUTER SCIENCE, A HIGH-LEVEL PROGRAMMING LANGUAGE IS A PROGRAMMING LANGUAGE WITH STRONG ABSTRACTION FROM THE DETAILS OF THE COMPUTER. IN COMPARISON TO LOW-LEVEL PROGRAMMING LANGUAGES, IT MAY USE NATURAL LANGUAGE ELEMENTS, BE EASIER TO USE, OR MAY AUTOMATE (OR EVEN HIDE ENTIRELY) SIGNIFICANT AREAS OF COMPUTING SYSTEMS (E.G. MEMORY MANAGEMENT), MAKING THE PROCESS OF DEVELOPING A PROGRAM SIMPLER AND MORE UNDERSTANDABLE RELATIVE TO A LOWER-LEVEL LANGUAGE. THE AMOUNT OF ABSTRACTION PROVIDED DEFINES HOW "HIGH-LEVEL" A PROGRAMMING LANGUAGE IS.

LOW-LEVEL LANGUAGE
IN COMPUTER SCIENCE, A LOW-LEVEL PROGRAMMING LANGUAGE IS A PROGRAMMING LANGUAGE THAT PROVIDES LITTLE OR NO ABSTRACTION FROM A COMPUTER'S INSTRUCTION SET ARCHITECTURE. GENERALLY THIS REFERS TO EITHER MACHINE CODE OR ASSEMBLY LANGUAGE. THE WORD "LOW" REFERS TO THE SMALL OR NONEXISTENT AMOUNT OF ABSTRACTION BETWEEN THE LANGUAGE AND MACHINE LANGUAGE; BECAUSE OF THIS, LOWLEVEL LANGUAGES ARE SOMETIMES DESCRIBED AS BEING "CLOSE TO THE HARDWARE."

ASSEMBER
ASSEMBLERS PRODUCE OBJECT FILES WHICH MAY BE LINKED WITH OTHER OBJECT FILES OR LOADED ON THEIR OWN.

CREATOR OF C
DENNIS M. RITCHIE BELL LABS, MIT

CREATOR OF C++
BJARNE STROUSTRUP BELL LABS

C++
C++ (PRONOUNCED "SEE PLUS PLUS") IS A STATICALLY TYPED, FREE-FORM, MULTI-PARADIGM, COMPILED, GENERAL-PURPOSE PROGRAMMING LANGUAGE. IT IS REGARDED AS AN INTERMEDIATE-LEVEL LANGUAGE, AS IT COMPRISES BOTH HIGH-LEVEL AND LOW-LEVEL LANGUAGE FEATURES.DEVELOPED BY BJARNE STROUSTRUP STARTING IN 1979 AT BELL LABS, C++ WAS ORIGINALLY NAMED C WITH CLASSES, ADDING OBJECT ORIENTED FEATURES, SUCH AS CLASSES, AND OTHER ENHANCEMENTS TO THE C PROGRAMMING LANGUAGE

C V/S C++

APPLICATIONS OF C++
DO YOU KNOW IN HOW MANY APPLICATIONS C++ WAS/IS USED .??? IT HAS NO END

COMPILER
CODE BLOCKS

why the name o.o.p(object oriented programming language)?

OBJECTS OF THE PROGRAM INTERACT BY SENDING MESSAGES TO EACH OTHER

continued

MORE ABOUT O.O.P LATER

BASIC C++
INHERIT ALL C SYNTAX PRIMITIVE DATA TYPES
SUPPORTED DATA TYPES: INT, LONG, SHORT, FLOAT, DOUBLE, CHAR, BOOL, AND ENUM THE SIZE OF DATA TYPES IS PLATFORM-DEPENDENT

BASIC EXPRESSION SYNTAX


DEFINING THE USUAL ARITHMETIC AND LOGICAL OPERATIONS SUCH AS +, -, /, %, *, &&, !, AND || DEFINING BIT-WISE OPERATIONS, SUCH AS &, |, AND ~

BASIC STATEMENT SYNTAX


IF-ELSE, FOR, WHILE, AND DO-WHILE

REMEMBER
C++ IS CASE SENSITIVE THERE IS DIFFERENCE B/N TOTAL AND total, sum and Sum

MORE ABOUT C++ LATER LETS START WITH SIMPLE PROGRAM


//getting started with hello world program
//this is our first program

#include <iostream>
using namespace std; int main() { cout<<hello world\n;

return 0;
}

LETS SEE THE MEANING/USE OF EACH LINE


THERE ARE TWO POINTS TO REMEMBER
case sensitive operating system knows to look for the function main. function is a block of code that has a specific format, with an entrance point and one(or many) exit points. all activities in a c++ program are performed inside functions. all c++ programs need to have a starting point and for us it is main function.later we will see how we can build complex programs using many functions.

in our first program we write hello world to the screen. this program has one function named main

the first two lines in the example are comment lines ex: //comment. another way of writing comments is given below /* comment..COMPILER IGONORES ALL THE LINES OF COMMENTS SECTION FOR WRITING MULTILINE COMMENTS..*/

PREPROCESSOR DIRECTIVE
the next line #include<iostream> the directive gives the compiler instructions. in hello world program we need to include iostream library because it contains the necessary program tools to write text to the screen. the information is located in header file named iostream(actual file name is iostream.h)

the #include statement tells the compiler that this short program uses one or more iostream tools.
Examples for header files: <cmath>, <iomanip> ,<string>etc.

using namespace std statement


this tells the compiler that your program is using the standard(std) c++ namespace which includes c++ libraries. the namespace idea is simple but confusing. namespace is used to help organize the program and avoid problems with program components having the same name. if we dont use using namespace std then we have to write code like this

std::cout<<hello\m;
So better use using namespace std; immediately after pre-processor directive.

THE MAIN() FUNCTION


as alredy mentioned int main() { is the starting point of a c++ program. os which runs the program knows that to start with main().

FUNCTION HEADER LINE


the first line of any function is known as function header line it specifies function name and its output type in the previous case it was main and int All functions in c++ begin with { and end with }

C++ STATEMENTS
a c++ statement is part of the program that issues a command to be executed . it specifies an action that must occur. our hello world program has two such statements

cout<<hello world\n; return 0; << is called as insertion operator. >> is called as extraction operator.

WHITESPACE
c++ ignores whitespace characters.
//hello world in one line #include <iostream> using namespace std; Int main() { cout<< hello world\n; return 0; }

the compiler is very particular about the syntax but not whitespaces the format varies from compiler to compiler so be careful while using different compilers you may end up with errors!!!! ex: in code blocks no need to type <iostream.h> where as there are compilers where you need to type that .h

LANGUAGE SYNTAX AND COMPILER ERRORS


C++ IS FLEXIBLE BUT IT DOESNT MEAN YOU CAN WRITE EVEN THE SYNTAXES IN JUST ANY OLD WAY. ALL SYNTAX STATEMENTS MUST BE TYPED IN LOWER CASE LETTERS.

//getting started with hello world program //this is our first program

IDENTIFY THE MISTAKES IN THE CODE GIVEN BELOW

#Include <iostream> using namespaces standard; int Main() { Cout<<hello world \n ; return o; }

GOOD STYLE (FOR PROGRAMMING)


DEVELOP A READABLE STYLE WHEN WRITING SOURCE CODE. INCLUDE COMMENTS CHOOSE APPROPRIATE VARIABLE NAMES ALWAYS ASSUME THAT SOMEONE ELSE NEEDS TO READ YOUR CODE AND FIGURE OUT WHAT YOU ARE DOING. TIME SPENT MAKING IT PRETTY INITIALLY IS TIME SAVED WHEN TRYING TO DEBUG COMPILER ERRORS.

COMMENT ON COMMENTS
THERE IS DIFFERENCE B/N THIS #INCLUDE<IOSTREAM> // INCLUDE IOSTREAM LIBRARY BAAAAD!!! AND THIS #INCLUDE<IOSTREAM> // NEEDED FOR COUT STATEMENT.. GOOOD..!!

C++ KEYWORDS
alignas (since C++11) alignof (since C++11) and and_eq asm auto(1) bitand bitor bool break case catch char char16_t (since C++11) char32_t (since C++11) class compl const constexpr (since C++11) const_cast continue decltype (since C++11) default(1) delete(1) do double dynamic_cast else enum explicit export(1) extern false float for friend goto if inline int long mutable namespace new noexcept (since C++11) not not_eq nullptr (since C++11) operator or or_eq private protected public register reinterpret_cast

return short signed sizeof static static_assert (since C++11) static_cast struct switch template this thread_local (since C++11) throw true try typedef typeid typename union unsigned using(1) virtual void volatile wchar_t while xor xor_eq

BASIC C++ DATA TYPES AS DEFINED IN ANSI/ISO C STANDARD

NAMING RULES IN C++


NAMES MAY CONTAIN LETTERS OR NUMBERS OR UNDERSCORES THE FIRST CHARACTER MUST BE A LETTER OR AND UNDERSCORE NAMES CANNOT CONTAIN SPECIAL CHARACTERS OR SPACES KEYWORDS CANNOT BE USED AS VARIABLE NAMES

OPERATORS IN C++
ASSIGNMENT OPERATOR(=) ARITHMETIC OPERATORS RELATIONAL AND EQUALITY OPERATORS LOGICAL OPERATORS CONDITIONAL OPERATORS COMMA OPERATOR BITWISE OPERATORS ETC.,

IN A NUT SHELL

C++ OPERATOR PRECEDENCE

CONTINUED

You might also like