Similar presentations:
Primitive data types
1.
PRIMITIVE DATA TYPES-Integer
-Floating Point
-Decimal
-Boolean
-Character
STRINGS
-Character Array
-Class
-String Length
-Static
-Limited Dynamic
-Dynamic
ENUMERATION TYPES
- C++
- Fortran
- Java
SUBRANGE TYPES
ARRAYS
-Indexing
-Flavors
-Static
-Fixed Stack Dynamic
-Stack Dynamic
-Fixed Heap-Dynamic
-Heap Dynamic
-Initalization
-Operations (APL)
-Rectangular/Jagged
-Implementation
-Single Dimensional
-Multi Dimensional
ASSOCIATIVE ARRAYS
RECORD TYPES
UNION TYPES
POINTER/REFERENCE TYPES
-Fundamental Operations
-Problems
-Memory Leak
-Dangling Pointer
-C++
-Java
-Solutions to Pointer Problems
-Tombstone
-Heap Management
-Reference Counter
-Garbage Collection
LECTURE OUTLINE FOR:
CHAPTER 6
DATA TYPES
2. C++ Weak Typing to Display Integer
int main(void){
int
theInt
= 42;
char* theBytes = &theInt;
}
cout
<< “int is: “ << theInt << endl;
cout
<< “byte values: “
<< ((int) (unsigned char)) theBytes[0] << “ “
<< ((int) (unsigned char)) theBytes[1] << “ “
<< ((int) (unsigned char)) theBytes[2] << “ “
<< ((int) (unsigned char)) theBytes[3] << “ “
<< endl;
3. C++ Weak Typing to Display Integer Hexadecimal
int main(void){
int
theInt
= 42;
char* theBytes = &theInt;
}
cout
<< “int is: “ << theInt << endl;
cout
<< “byte values: “
<< hex << ((int) (unsigned char)) theBytes[0] << “ “
<< hex << ((int) (unsigned char)) theBytes[1] << “ “
<< hex << ((int) (unsigned char)) theBytes[2] << “ “
<< hex << ((int) (unsigned char)) theBytes[3] << “ “
<< endl;
4. C++ Program to Write/Read Integer Using Text Files
int main(void){
int
theInt = 12345678;
ofstream out;
int main(void)
{
int
theInt;
ifstream in;
out.open(“temp.txt”);
out << theInt << endl;
out.close();
in.open(“temp.txt”);
in >> theInt;
in.close();
.
.
.
}
}
5. C++ Program to Write/Read Integer Using Binary Files
int main(void){
int
theInt = 12345678;
ofstream out;
int main(void)
{
int
theInt;
ifstream in;
out.open(“temp.bin”, ios::binary);
out << theInt << endl;
out.close();
in.open(“temp.bin”, ios::binary);
in >> theInt;
in.close();
.
.
.
}
}
6. Interest Calculation Using Floating Point Data Type
#include <iostream>using namespace std;
int main(void)
{
// Credit card balance
double balance = 10.10;
double interest = 0.1;
// Formatting
cout.precision(30);
cout << showpoint;
// Output
cout << "Balance is:\t "
<< balance << endl;
cout << "Interest is:\t "
<< interest << endl;
cout << "New balance is:\t " << (balance * (1 + interest)) << endl;
}
7. Interest Calculation Using Decimal Data Type VC++ .NET
#include "stdafx.h"#using <mscorlib.dll>
using namespace System;
int _tmain()
{
// Credit card balance
Decimal balance = 10.10;
Decimal interest = 0.1;
// Output
Console::WriteLine("Balance is:\t {0}",balance.ToString("F30"));
Console::WriteLine("Interest is:\t {0}",interest.ToString("F30"));
Console::WriteLine("New Balance is:\t {0}",(balance * (1 + interest)).ToString("F30"));
return 0;
}
8.
9.
String Concatenation ProblemString* s = new String();
s = s.Concat(s,new String(
s = s.Concat(s,new String(
s = s.Concat(s,new String(
s = s.Concat(s,new String(
s = s.Concat(s,new String(
...
s = s.Concat(s,new String(
s = s.Concat(s,new String(
s = s.Concat(s,new String(
“<html>”));
“<body>”));
“<ul>”));
“<li> Item One”));
“<li> Item Two”));
“</ul>”));
“</body>”));
“</html>”));
10. ASCII Code Page
11. Latin-1 1252 Code Page
12.
13.
14. UNICODE LAYOUT Basic Plane
Figure 1: Figure 1: Unicode encoding layout for the BMP (Plane 0)15. Enumeration Types (C++ Example
enum day {Mon, Tue, Wed, Thu, Fri, Sat, Sun};// Set day of week
day d = Mon;
switch (d)
{
case Mon: cout << “More sleep!” << endl;
case Tue: cout << “Close to the hump!” << endl;
case Wed: cout << “Hump day!” << endl;
case Thu: cout << “Over the hump!” << endl;
case Fri: cout << “Yipee! “ << endl;
case Sat: cout << “Sweet weekend.” << endl;
case Sun: cout << “Rats, almost Monday.” << endl;
}
break;
break;
break;
break;
break;
break;
break;
// Set day of week
int d = 0;
switch (d)
{
case 0: cout << “More sleep!” << endl;
case 1: cout << “Close to the hump!” << endl;
case 2: cout << “Hump day!” << endl;
case 3: cout << “Over the hump!” << endl;
case 4: cout << “Yipee! “ << endl;
case 5: cout << “Sweet weekend.” << endl;
case 6: cout << “Rats, almost Monday.” << endl;
}
break;
break;
break;
break;
break;
break;
break;
16. Enumeration Types (Java Example)
public final class Day {public static final Day MON = new Day();
public static final Day TUE = new Day();
public static final Day WED = new Day();
public static final Day THU = new Day();
public static final Day FRI = new Day();
public static final Day SAT = new Day();
public static final Day SUN = new Day();
private Day() {
// Empty private constructor ensures the only objects of
// this type are the enumerated elements declared above.
}
}
17.
Programin
Disk
Virtual Memory
18.
Computing Address of Element InMultidimensional Array
19. #!/usr/bin/env perl # # Welcome to Perl! # # To run this program type: # # perl AssociativeArrayExample.pl # # If the program
works... then you've installed# perl correctly!
#
print "Initializing associative array...\n";
%salaries = ("Gary" => 75000, "Perry" => 57000,
"Mary" => 55750, "Cedric" => 47850);
print "Perry's salary is: $salaries{'Perry'}\n";
# Iterate and print the key - value pairs
print "Dumping the associative array: \n";
foreach my $key (keys %salaries) {
print "
value of $key is $salaries{$key}\n";
}
print "Deleting Gary from associative array: \n";
delete $salaries{"Gary"};
print "Checking for the existance of Gary in array: ";
if (exists $salaries{"Gary"})
{
print "EXISTS!\n";
}
else
{
print "DOES NOT EXIST!\n";
}
print "Dumping the associative array again: \n";
foreach my $key (keys %salaries) {
print "
value of $key is $salaries{$key}\n";
}
print "Emptying array: \n";
%salaries = ();
print "Dumping the associative array again: \n";
foreach my $key (keys %salaries) {
print "
value of $key is $salaries{$key}\n";
}
Perl Program Demonstrating
Associative Arrays
20.
COBOL RECORD EXAMPLES01 EMPLOYEE-RECORD.
02
EMPLOYEE-NAME.
05
FIRST
PICTURE IS X(20).
05
MIDDLE
PICTURE IS X(20).
05
LAST
PICTURE IS X(20).
02 HOURLY-RATE
PICTURE IS 99V99.
02 EMPLOYEE-NUMBER PICTURE IS 9(10).
o Numerals 01, 02, 05 indicate hierarchical structure of
record
o PICTURE – indicates formatting for output
o X(20) – 20 alphanumeric characters
o 99V99 – 4 decimal digits with “.” in middle
o 9(10) – 10 decimal digits
01 OUTPUT-RECORD.
02
EMPLOYEE-NAME.
05
FIRST
PICTURE IS X(20).
05
MIDDLE
PICTURE IS X(20).
05
LAST
PICTURE IS X(20).
02 EMPLOYEE-NUMBER PICTURE IS 9(10).
02 GROSS-PAY
PICTURE IS 999V999.
02 NET-PAY
PICTURE IS 999V999.
21.
Ada RECORD EXAMPLEStype Employee_Name_Type is record
First : String (1..20);
Middle: String (1..20);
Last: String (1..20);
end record;
type Employee_Record_Type is record
Employee_Name: Employee_Name_Type;
Hourly_Rate: Float;
end record;
Employee_Record: Employee_Record_Type;
22.
C++ UNION TYPES#include <iostream>
using namespace std;
//introduces namespace std
int main( void )
{
typedef union _GenericInput
{
bool
theBool;
char
theChar;
int
theInt;
double theDouble;
} GenericInput;
GenericInput input0;
GenericInput input1;
cout << "Enter a character: ";
cin >> input0.theChar;
cout << "Enter a double: ";
cin >> input1.theDouble;
// You should not be able to assign these two variables
// because they hold different types (char and double)
// but the “free union” capability in C,C++ allows this
// DANGEROUS!!!
input0 = input1;
char *byteArray = (char *) &input1;
cout << hex << ((int) ((unsigned char) byteArray[0])) << " "
<< ((int) ((unsigned char) byteArray[1])) << " "
<< ((int) ((unsigned char) byteArray[2])) << " "
<< ((int) ((unsigned char) byteArray[3])) << " "
<< ((int) ((unsigned char) byteArray[4])) << " "
<< ((int) ((unsigned char) byteArray[5])) << " "
<< ((int) ((unsigned char) byteArray[6])) << " "
<< ((int) ((unsigned char) byteArray[7])) << endl;
cout << "As boolean
x[" << input0.theBool
<< "]" << endl;
cout << "As character [" << input0.theChar
<< "]" << endl;
cout << "As integer
x[" << input0.theInt
<< "]" << endl;
cout << "As double
[" << input0.theDouble << "]" << endl;
return 0;
}
OUTPUT:
Enter a character: a
Enter a double: 10.2
66 66 66 66 66 66 24 40
As boolean x[66]
As character [f]
As integer x[66666666]
As double [10.2]
Press any key to continue
23.
Ada UNION TYPEStype Shape is (Circle, Triangle, Rectangle);
type Colors is (Red, Green, Blue);
type Figure (Form : Shape) is
record
Filled : Boolean;
Color : Colors;
case Form is
when Circle =>
Diameter : Float;
when Triangle =>
Left_Side : Integer;
Right_Side : Integer;
Angle : Float;
when Rectangle =>
Side_1 : Integer;
Side_2 : Integer;
end case;
end record;