1 / 41

Types

Types. Chapter 2. Objectives. Observe types provided by C++ Literals of these types Explain syntax rules for identifier names Study variables and constants What they are How they differ How to declare How to use Investigate internal representations

ajeremiah
Télécharger la présentation

Types

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Types Chapter 2

  2. Objectives • Observe types provided by C++ • Literals of these types • Explain syntax rules for identifier names • Study variables and constants • What they are • How they differ • How to declare • How to use • Investigate internal representations • First look at class attribute variables C++ An Introduction to Computing, 3rd ed.

  3. Problem We are given the task of writing a program to help the payroll office. • They compute pay for university student workers • Students are all paid an hourly rate of $6.75 Consider what behavior we desire for the program. C++ An Introduction to Computing, 3rd ed.

  4. Behavior For student payroll calculation:Enter student name (last, first, initial): Smart, Osgood J.Enter ID number: 123456Enter hours worked: 9.99Student: Osgood J. Smart ID: 123456 Pay = $99.99 C++ An Introduction to Computing, 3rd ed.

  5. Objects C++ An Introduction to Computing, 3rd ed.

  6. Operations • Display string (prompts, labels, name) • Read a string (lastName, firstName) • Read a char (middleInitial) • Read an integer (idNumber) • Read a real value (hoursWorked) • Compute pay = hoursWorked * HOURLY_WAGE • Display an integer (idNumber) • Display a real value (pay) C++ An Introduction to Computing, 3rd ed.

  7. Algorithm 1. Declare the constant HOURLY_WAGE. 2. Display to cout a prompt for the student’s name (last, first, middle initial). 3. Read two strings and a character from cin into lastName, firstName, middleInitial. 4. Display to cout a prompt for the student’s id number. 5. Read an integer from cin into idNumber. 6. Display to cout a prompt for the student’s hours. 7. Read a real value from cin into hoursWorked. 8. Compute pay = hoursWorked * HOURLY_WAGE. 9. Display firstName, lastName, middleInitial, idNumber, and pay, with descriptive labels. C++ An Introduction to Computing, 3rd ed.

  8. Coding, Execution, Testing • Create a program stub • Opening documentation • Compiler directives for library includes • An empty main function • Convert each step of algorithm into code • Add declaration for each object not already declared • Declaration includes object type and name. • Observe source code, Fig 2.1 C++ An Introduction to Computing, 3rd ed.

  9. Types and Declarations Fundamental Types • Integers (whole numbers, negatives) • int • Integer variations • short, long, unsigned • Reals (fractional numbers) • float, double, long double • Characters (letters, digits, symbols, punctuation) • char • Booleans (logical values, true and false) • bool C++ An Introduction to Computing, 3rd ed.

  10. Integer • Memory used for an int depends on word size used by the hardware • Usually 16, 32, or 64 bits used • 16 Bits (2 bytes) – shortint • Range -32768 … 32767 • 32bits (4 bytes) – longint (or long) • Range -2137483648 … 2137483647 One bit used for the sign C++ An Introduction to Computing, 3rd ed.

  11. Integer • Integers can be specified as unsigned • Then the sign bit not needed • Gives larger positive range • unsigned short (16 bits) • Range 0 … 65535 • unsigned long (32 bits) • Range 0 … 4294967295 C++ An Introduction to Computing, 3rd ed.

  12. Integer Literals • Decimal integers • Sequence of digits without a decimal point • Octal integers • Sequence of digits beginning with a 0 • Base 8 • Hexadecimal integers • Sequence of digits beginning with an X • Base 16 C++ An Introduction to Computing, 3rd ed.

  13. Reals • float • Usually a 32-bit value (4 bytes) • double • A 64-bit value (8 bytes) • long double • A 96- or 128-bit value The programmer should choose which type based on degree of precision desired for the object C++ An Introduction to Computing, 3rd ed.

  14. Reals • Values are stored internally in scientific notation • A sign for the number • Significant digits of the number • The power of 10 • Sign for the power C++ An Introduction to Computing, 3rd ed.

  15. Reals • Literal values • A sequence of digits with leading sign, containing a decimal point • Scientific notation – any one of the following forms 0.12e11 1.2E10 12.0E9 12.e9 12E9 C++ An Introduction to Computing, 3rd ed.

  16. Characters • char type • Represents individual characters • See ASCII character set in Appendix A • Characters represented in memory by numeric values • Character literals • Characters enclosed in single quotes'X' '7' '>' 'e' C++ An Introduction to Computing, 3rd ed.

  17. Characters • Escape characters • A backslash \ combined with another character hold special meaning C++ An Introduction to Computing, 3rd ed.

  18. Strings • Related to characters • A sequence of characters • Enclosed in double quotes"Hi Mom" • Can include escape characters"\nThe answer is " • Warning • "A" is a string literal • 'A' is a character literal C++ An Introduction to Computing, 3rd ed.

  19. Identifiers • Names given to software objects • Rules: • Must not be C++ keywordsint, if, while, … • Must start with a letter (or the underscore _ ) • Followed by numerals, letters, underscore • Recommendation • Use meaningful identifiers • Go for longer names, rather than shorter C++ An Introduction to Computing, 3rd ed.

  20. Identifiers • C++ is case sensitive • firstName is not the same as firstname • Typical usage • Constants are all caps PI • Variables • Start with lower case • Capitalize first letter of successive wordsmonthlyElectricCharge C++ An Introduction to Computing, 3rd ed.

  21. Object Categories There are three kinds of objects: • Literals: • unnamed objects • having a value • (0, -3, 2.5, 2.998e8, ‘A’, “Hello\n”, ...) • Variables: • named objects • values can change during program execution • Constants: • named objects • values do not change during program execution C++ An Introduction to Computing, 3rd ed.

  22. Literals • int literals are whole numbers: -27, 0, 4, +4 • double literals are real numbers, and can be: • fixed-point: -0.333, 0.5, 1.414, ... • floating-point: 2.998e8, 0.2998e9, ... • There are just twobool literals: false, true • char literals are single ASCII characters: ‘A’, ‘a’, ‘9’, ‘$’, ‘?’, ... • string literals are ASCII character sequences: “Hello”, “Goodbye”, “Goodbye\n”, ... C++ An Introduction to Computing, 3rd ed.

  23. Constants • Declaration of software objects that remain constant const double HOURLY_WAGE = 6.75; • Rules • const is a keyword • Specify type • Specify the name (caps recommended) • Must be initialized with value at declaration C++ An Introduction to Computing, 3rd ed.

  24. Constants • Reasons to use constants • Improve readability of the source code • Facilitate program modification • Good programming practice • Place all constant declarations at beginning of function where used C++ An Introduction to Computing, 3rd ed.

  25. Variables • Give a name to a memory location • Compiler accesses specific memory location when program uses a given variable • Refer to objects in the program for which the value can change • Declarationtype variableName; // ortype variableName = initializer_expression; C++ An Introduction to Computing, 3rd ed.

  26. Variables • Variables Declaration • Can be either initialized or uninitialized... • If variable is uninitialized Contents must be considered "garbage value" • Examples: intage = 18; double GPA = 3.25, credits; char letterGrade = ‘A’; bool ok, done = false; C++ An Introduction to Computing, 3rd ed.

  27. int Representation • Integers are often represented in the twos-complement format, • High-order bit indicates the number’s sign: 210 = 00000000000000102 110 = 00000000000000012 010 = 00000000000000002 -110 = 11111111111111112 -210 = 11111111111111102 • We show 16 bits, but 32 or 64 are common. C++ An Introduction to Computing, 3rd ed.

  28. Twos-Complement Algorithm to find twos-complement representation of a negative number: • Select your number (e.g., -12) • Represent its absolute value in binary: (0000000000001100) • Invert the bits (1111111111110011) • Add 1 (1111111111110100) C++ An Introduction to Computing, 3rd ed.

  29. unsigned Objects • Some objects have values that are never negative, • C++ provides the unsigned type: 00000000000000002 = 010 00000000000000012 = 110 00000000000000102 = 210 ... 11111111111111102 = 6553410 11111111111111112 = 6553510 • No sign bit, numbers can be twice as big. C++ An Introduction to Computing, 3rd ed.

  30. int vs. unsigned • Using 32 bits, int values range from • -231 (-2147483648) to 231-1 (2147483647), • unsigned values range from • 0 to 232-1 (4294967295). • An int value “loses” one of its bits to the sign, • Maximum int value is about half of the maximum unsigned value. C++ An Introduction to Computing, 3rd ed.

  31. exponent (11 bits) sign (1 bit) mantissa (52 bits) double Objects • Real values are often represented in 64 bits • Use the IEEE floating point standard: C++ An Introduction to Computing, 3rd ed.

  32. double Objects • Overflow • Exponent is too large • Not enough bits to represent • Underflow • Number is so small • Not enough bits to represent negative exponent C++ An Introduction to Computing, 3rd ed.

  33. char and String Objects • Characters represented internally with binary codes • 8 bits – only 128 characters • Strings stored as a sequence of these binary codes C++ An Introduction to Computing, 3rd ed.

  34. char and String Objects • Unicode uses 16 bit codes • Possible to represent more than 65,000 characters • Can includespecialcharacters C++ An Introduction to Computing, 3rd ed.

  35. Booleans • Only two values • true and false • true stored as 1 • Anything non zero will be interpreted as true • false stored as 0 • Could be stored in a single bit • Usually stored in a word or byte C++ An Introduction to Computing, 3rd ed.

  36. OBJECTive Thinking:Attribute Variables • Represent complicated objects in a program by using a class • Must first design and build the class • Then use that class as a type to declare the object(s) C++ An Introduction to Computing, 3rd ed.

  37. Must be a valid identifier C++ Keywords Class Structure • Declaration: class className { public: // declare operations private: // declare attributes }; C++ An Introduction to Computing, 3rd ed.

  38. This declaration stored in the file "sphere.h" All three sphere attributes now wrapped in a single package – the Sphere object. Attribute Variables • Attribute variables are usually specified as private classSphere { public: ... Sphere-operation declarations go here private: double myRadius, myDensity, myWeight; }; C++ An Introduction to Computing, 3rd ed.

  39. Declaring Sphere Objects • Specify the include of the "Sphere.h" file • Declare as many sphere objects as needed. #include "Sphere.h" int main() { Sphere oneSphere, anotherSphere; . . . } C++ An Introduction to Computing, 3rd ed.

  40. Declaring Sphere Objects • Each of the sphere objects will have space within them for the three sphere attributes C++ An Introduction to Computing, 3rd ed.

  41. Declaring Sphere Objects • A class object itself can contain class objects as an attribute C++ An Introduction to Computing, 3rd ed.

More Related