with c
play

WITH C++ Prof. Amr Goneid AUC Part 6. Simple and User Defined - PowerPoint PPT Presentation

CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 6. Simple and User Defined Data Types Prof. amr Goneid, AUC 1 More on Simple Data Types Prof. amr Goneid, AUC 2 More on Simple Data Types #define Directive


  1. CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 6. Simple and User Defined Data Types Prof. amr Goneid, AUC 1

  2. More on Simple Data Types Prof. amr Goneid, AUC 2

  3. More on Simple Data Types  #define Directive  Promotion of Types  Type Casting  typedef Declaration  Enumerated Data Types Prof. amr Goneid, AUC 3

  4. 1. #define Directive  Used to give meaningful names to constants  Used in older C programs prior to introduction of constants #define < token> <replacement-text>  Example #define pi 3.14159 // The same as const float pi = 3.14159; Prof. amr Goneid, AUC 4

  5. #define Directive (Example) // File: try.cpp // Uses #define Directive #include <iostream> using namespace std; #define BEGIN { #define END } #define MOD % #define EQ == Prof. amr Goneid, AUC 5

  6. #define Directive (Example) int main() BEGIN // Local data ... int n , d ; cout << "Enter n : "; cin >> n ; for ( ; ; ) BEGIN d = n MOD 2; cout << d; n /= 2; if (n EQ 0) break; END cout << endl; return 0; END Prof. amr Goneid, AUC 6

  7. 2. Promotion of Types  Type promotion  promoting a lower type to a higher type, e.g. 3 + x /2  if x is float, constants would be promoted to float as well and actually be 2.0 and 3.0  Type conversions  int to float (number.0)  float to int (truncation occurs) Prof. amr Goneid, AUC 7

  8. Mixing Types  Example: float x , z ; int y; x = 3.89 ; y = x ; z = y ; // y would contain 3 and z would contain 3.0 Prof. amr Goneid, AUC 8

  9. 3. Type Casting  Avoid mixing types but if you need to you can cast a type  Type casting allows you to change a type within the program for a specific function  Form: type (variable) or (type) variable  Example: int n ; float sum , average ; average = sum / float (n); // or average = sum / (float) n ; Prof. amr Goneid, AUC 9

  10. Type Casting Example  Example: for (j = 0; j <= 25; j++) { for (k = 0; k <= j; k++) cout << char (int (‘A’) + k); cout << endl; } Prof. amr Goneid, AUC 10

  11. 4. typedef Declaration  Used to give other names to existing data types. The new name can then be used as a qualified data type. Original type remains active.  Syntax: typedef <C++ type> <other name> ; Prof. amr Goneid, AUC 11

  12. typedef Declaration  Examples: typedef int itemtype ; typedef float costType ; typedef char gradeType ; ……… itemtype item ; …… item = 7 ; costtype cost ; …… cost = 21.36 ; gradetype grade ; …grade = ‘B’ ; Prof. amr Goneid, AUC 12

  13. 5. Enumerated Data Types Prof. amr Goneid, AUC 13

  14. Enumerated Data Types  Of course C++ will give errors for the following declarations: icecream scoop ; fruit summerfruit ; color thiscolor ; …………… scoop = vanilla; summerfruit = mango; thiscolor = red ; fruit2 = fruit (int(mango) + 1); How can we make C++ accept these types? Prof. amr Goneid, AUC 14

  15. Enumerated Types  Enumerated Data Types: Create new ordinal data types by enumerating their elements in ascending rank ( 0 , 1 ,2 …).  Example: enum weekday {Sun , Mon , Tue , Wed , Thu , Fri , Sat}; ……. weekday day ; day = Mon ; Prof. amr Goneid, AUC 15

  16. Using Enumerated Types  All operations on ordinal types can be performed on enumerated types. enum classid {freshman, sophomore, junior, senior}; classid newClass; if (newClass == freshman) do something else if (newClass == sophomore) ….. Prof. amr Goneid, AUC 16

  17. Using Enumerated Types  Examples: enum color {red,green,blue,yellow}; color color1,color2, c ; color1 = red; color2 = color (int(green) +1); for(c = red; c <= yellow; c++) cout << int(c) << “ “ ; cout << endl; color1 = color (3); if(color1 > blue) cout << “yellow”; 0 1 2 3 yellow Prof. amr Goneid, AUC 17

  18. Example: color.cpp // DISPLAYS THE VALUE OF thisColor void writeColor (color thisColor) { switch (thisColor) { case red: cout << "red"; break; case green: cout << "green"; break; Prof. amr Goneid, AUC 18

  19. color.cpp case blue: cout << "blue"; break; case yellow: cout << "yellow"; break; default: status = 0; cerr << "*** ERROR: Invalid color value." << endl; } } Prof. amr Goneid, AUC 19

  20. Explicit Enumeration C++ allows to give explicit values to enumerators. For Example: enum NumberBase { Binary = 2, Octal = 8, Decimal = 10, Hexa = 16}; We can also start from a number other than zero. For example: enum German { Ein = 1, Zwei, Drei, Vier}; Prof. amr Goneid, AUC 20

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend