Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cs1123 11 pointers

195 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Cs1123 11 pointers

  1. 1. Introduction to C++ (CS1123) By Dr. Muhammad Aleem, Department of Computer Science, Mohammad Ali Jinnah University, Islamabad Fall 2013
  2. 2. History • C evolved from two languages (BCPL and B) • 1980: “C with Classes” • 1985: C++ 1.0 • 1995: Draft standard • Developed by Bjarne Stroustrup at Bell Labs • Based on C, added Object-Oriented Programming concepts (OOP) in C • Similar program performance (compared to C)
  3. 3. C vs C++ • Advantages: – 1. Faster development time (code reuse) – 2. Creating / using new data types is easier – 3. Easier memory management – 4. Stricter syntax & type checking => less bugs – 5. Easier to implement Data hiding – 6. Object Oriented concepts
  4. 4. C++ Program Structure //My first program in C++ First.cpp #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } Preprocessor Directive (no ;)
  5. 5. IDE and Compilation Steps C++ Preprocessor First.cpp C++ Compiler Linker First.exe C++ Header Files Object code for library function
  6. 6. Integrated Development Environments (IDEs) • An IDE is a software application which provides a comprehensive facility to programmers to Write /Edit /Debug /Compile the code • Main components: –Source code editor –Debugger –Complier –…
  7. 7. IDEs on Windows platform • Turbo C++ • Microsoft Visual C++ • Dev C++
  8. 8. Input / Output Example #include <iostream> #include <string> using namespace std; int main ( ) { string name; //Name of student cout<< “Enter you name"; cin>>name; /* Now print hello , and students name */ cout<< “Hello “ << name; return 0; }
  9. 9. Comments • Two types of comments 1. Single line comment //…. 2. Multi-line (paragraph) comment /* */ • When compiler sees // it ignores all text after this on same line • When it sees /*, it scans for the text */ and ignores any text between /* and */
  10. 10. Preprocessor Directives • #include<iostream> • # is a preprocessor directive. • The preprocessor runs before the actual compiler and prepares your program for compilation. • Lines starting with # are directives to preprocessor to perform certain tasks, e.g., “include” command instructs the preprocessor to add the iostream library in this program
  11. 11. Header files (functionality declarations) (Turbo C++) (Visual C++) • #include<iostream.h> or #include <iostream> • #include<stdlib.h> or #include<stdlib> • …
  12. 12. std:: Prefix • std::cout<“Hello World”; • std::cout<<Marks; • std::cout<<“Hello ”<<name; • Scope Resolution Operator :: • std is a namespace, Namespaces ? using namespace std; cout<<“Hello World”; cout<<Marks; cout<<“Hello ”<<name;
  13. 13. Namespaces • Namespace pollution – Occurs when building large systems from pieces – Identical globally-visible names clash – How many programs have a “print” function? – Very difficult to fix
  14. 14. Namespaces namespace Mine { const float pi = 3.1415925635; } void main(){ float x = 6 + Mine::pi; cout<<x; }
  15. 15. Multiple Namespaces • Example…
  16. 16. Omitting std:: prefix - using directive brings namespaces or its sub-items into current scope #include<iostream> using namespace std; int main() { cout<<“Hello World!”<<endl; cout<<“Bye!”; return 0; }
  17. 17. main( ) function • Every C++ program start executing from main ( ) • A function is a construct that contains/encapsulates statements in a block. • Block starts from “{“ and ends with “}” brace • Every statement in the block must end with a semicolon ( ; ) • Examples…
  18. 18. cout and endl • cout (console output) and the operator • << referred to as the stream insertion operator • << “Inserts values of data-items or string to screen.” • >> referred as stream extraction operator, extracts value from stream and puts into “Variables” • A string must be enclosed in quotation marks. • endl stands for end line, sending ‘endl’ to the console outputs a new line
  19. 19. Input and type –cin>>name; reads characters until a whitespace character is seen –Whitespace characters: • space, • tab, • newline {enter key}
  20. 20. Variables - Variables are identifiers which represent some unknown, or variable-value. - A variable is named storage (some memory address’s contents) x = a + b; Speed_Limit = 90;
  21. 21. Variable declaration TYPE <Variable Name> ; Examples: int marks; double Pi; int suM; char grade; - NOTE: Variable names are case sensitive in C++ ??
  22. 22. Variable declaration • C++ is case sensitive –Example: area Area AREA ArEa are all seen as different variables
  23. 23. Names Valid Names • Start with a letter • Contains letters • Contains digits • Contains underscores • Do not start names with underscores: _age • Don’t use C++ Reserve Words
  24. 24. C++ Reserve Words • 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
  25. 25. Names • Choose meaningful names – Don’t use abbreviations and acronyms: mtbf, TLA, myw, nbv • Don't use overly long names • Ok: partial_sum element_count staple_partition • Too long (valid but not good practice): remaining_free_slots_in_the_symbol_table
  26. 26. Which are Legal Identifiers? AREA 2D Last Chance x_yt3 Num-2 Grade*** area_under_the_curve _Marks #values areaoFCirCLe %done return Ifstatement
  27. 27. String input (Variables) // Read first and second name #include<iostream> #include<string> int main() { string first; string second; cout << “Enter your first and second names:"; cin >> first >> second; cout << "Hello “ << first << “ “ << second; return 0; }
  28. 28. Declaring Variables • Before using you must declare the variables
  29. 29. Declaring Variables… • When we declare a variable, what happens ? – Memory allocation • How much memory (data type) – Memory associated with a name (variable name) – The allocated space has a unique address Marks FE07 %$^%$%$*^%int Marks;
  30. 30. Using Variables: Initialization • Variables may be given initial values, or initialized, when declared. Examples: int length = 7 ; float diameter = 5.9 ; char initial = ‘A’ ; 7 5.9 ‘A’ length diameter initial
  31. 31. • Are the two occurrences of “a” in this expression the same? a = a + 1; One on the left of the assignment refers to the location of the variable (whose name is a, or address); One on the right of the assignment refers to the value of the variable (whose name is a); • Two attributes of variables lvalue and rvalue • The lvalue of a variable is its address • The rvalue of a variable is its value rvalue and lvalue
  32. 32. • Rule: On the left side of an assignment there must be a lvalue or a variable (address of memory location) int i, j; i = 7; 7 = i; j * 4 = 7; rvalue and lvalue
  33. 33. Data Types Three basic PRE-DEFINED data types: 1. To store whole numbers – int, long int, short int, unsigned int 2. To store real numbers – float, double 3. Characters – char
  34. 34. Types and literals • Built-in types – Boolean type • bool – Character types • char – Integer types • int –and short and long – Floating-point types • double –and float • Standard-library types – string Literals • Boolean: true, false • Character literals – 'a', 'x', '4', 'n', '$' • Integer literals – 0, 1, 123, -6, • Floating point literals – 1.2, 13.345, 0.3, -0.54, • String literals – "asdf”, “Helllo”, Pakistan”
  35. 35. Types • C++ provides a set of types – E.g. bool, char, int, double called “built-in types” • C++ programmers can define new types – Called “user-defined types” • The C++ standard library provides a set of types – E.g. string, vector, .. – (for vector type  #include<vector> )
  36. 36. Declaration and initialization int a = 7; int b = 9; char c = 'a'; double x = 1.2; string s1 = "Hello, world"; string s2 = "1.2"; 7 9 a 1.2 Hello, world 1.2
  37. 37. char type • Reserves 8 bits or 1 byte of memory • A char variable may represent: – ASCII character 'A‘, 'a‘, '1‘, '4‘, '*‘ – signed integers 127 to -128 (Default) – unsigned integer in range 255 to 0 Examples: –char grade; –unsigned char WeekNumber= 200; –char cGradeA = 65; –char cGradeAA = ‘A';
  38. 38. char type • Example program…
  39. 39. Special characters • Text string special characters (Escape Sequences) – n = newline – r = carriage return – t = tab – " = double quote – ? = question – = backslash – ' = single quote • Examples: cout << "Hellot" << "I’m Bobn"; cout << "123nabc “;
  40. 40. Escape Sequence • Example Program:
  41. 41. int type • 16 bits (2 bytes) on Windows 16-bits – int -32,768 to 32,767 – unsigned int 0 to 65,535 – Also on Turbo C++, 2 bytes for int • 32 bits (4 bytes) on Win32 (Visual C++) – int -2,147,483,648 to 2,147,483,647 – unsigned int 0 to 4,294,967,295
  42. 42. int type • Examples: int earth_diameter; int seconds_in_week= 604800; unsigned int Height = 100; unsigned int Width = 50000;
  43. 43. int type (long and short) • long int –reserves 32 bits (4 bytes) of memory –signed long -2,147,483,648 to 2,147,483,647 –unsigned long int 0 to 4,294,967,295 • short int –reserves 16 bits (2 bytes) of memory –signed short int -32,768 to 32,767 –unsigned short int 0 to 65,535
  44. 44. int (long and short) • Examples: long int light_speed=186000; unsigned long int seconds= 604800; short int Height = 30432; unsigned short int Width = 50000;
  45. 45. Home Work-1 • Use Visual C++ on Windows and get information for following data types: – int – short – long int – short int – char • Use ( cout << sizeof( intVar ); ) operator to get this information, Example:…
  46. 46. Real Values • float – Reserves 32 bits (4 bytes) of memory – + 1.180000x10 +38 , 7-digit precision – Example: float radius= 33.4221; • double – Reserves 64 bits (8 bytes) of memory – + 1.79000000000000x10 +308 , 15-digit precision – Example: double Distance = 257.5434342; • long double – Reserves 80 bits (10 bytes) of memory , 18-digit precision – Example: long double EarthMass = 25343427.53434233;
  47. 47. Home Work-2 • Use Visual C++ on Windows and get information for following data types: – float – double – long double • Use ( cout << sizeof(floatVar); ) operator to get this information, Example:…
  48. 48. bool Type • Only 1 bit of memory required – Generally, 1 byte because is reserved • Literal values: – true – false • Can be used in logical conditions: – Examples: bool RainToday=false; bool passed; passed = GetResult(80);
  49. 49. string type • Special data type supports working with “strings” #include <string> string <variable_name> = “string literal”; • string type variables in programs: string firstName, lastName; • Using with assignment operator: firstName = “Mohammad"; lastName = “Ali"; • Display using cout cout << firstName << " " << lastName;
  50. 50. Getting input in string with Spaces string s1; cin>> s1; //Spaces will not be input in s1 //Following statements read spaces in “string” string s1; getline(cin, s1); //Spaces will be input in s1
  51. 51. string type • Find Errors in the example program…

×