Cs1123 11 pointers

124 views
77 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
124
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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…

×