+ All Categories
Home > Documents > DATA PROCESSING

DATA PROCESSING

Date post: 04-Jan-2016
Category:
Upload: driscoll-padilla
View: 52 times
Download: 3 times
Share this document with a friend
Description:
DATA PROCESSING. Gary Sham 15/1/2011. Data Processing. Data Processing ≠ Algorithm Data Processing: Get the input so that we can use it in our program. Save the input by some method to make it easier to code. How to prevent WA. Our Goal: A general method to do Data Processing. - PowerPoint PPT Presentation
15
DATA PROCESSING Gary Sham 15/1/2011
Transcript
Page 1: DATA PROCESSING

DATA PROCESSING

Gary Sham 15/1/2011

Page 2: DATA PROCESSING

Data Processing

Data Processing ≠ Algorithm Data Processing:

Get the input so that we can use it in our program. Save the input by some method to make it easier to

code. How to prevent WA.

Our Goal: A general method to do Data Processing.

Practice makes perfect. It is always useful in all programming problems.

Input Processing Output

Page 3: DATA PROCESSING

Data Types

Category Pascal C/C++

Ordinal Integer, Char, Boolean, . . .

int, char, bool, . . .

Floating Point Real, Double, Extended, . . .

float, double, . . .

Array Array[Range] of Type Type[Range]

String PChar, String, ANSIString

char[Range], string

Packed Data Type Record struct

Others Ptr, Set, . . . *Type, enum, . . .The table is by no means complete and the correspondence is not exact.www.google.com

Page 4: DATA PROCESSING

Floating Point

Floating Point Representation leads to Precision Error 1/3 0.3333333 0.15 0.149999

Always try to use ordinal types instead, e.g. Integer. More accurate; and Operate faster generally.

Use most accurate floating type if possible.

Use some special operation to handle it.

Page 5: DATA PROCESSING

Conversion to integer How to handle floating point data? Convert them to integers if possible

Integers are easy to manipulate E.g. Given numbers to 2 decimal places

123.45 12345 0.10 10

a := round(d*100); a = (int)(d*100 + 0.5)

Scanf is useful… scanf(“%d.%d”, &a,&b);

Page 6: DATA PROCESSING

Special operations

Output : writeln((a+1e-10):0:2) printf(“%.2lf\n”,a+1e-10);

Compare: a==b

abs(a-b) < 1e-8 a < b

a < b – 1e-8 a <= b

a < b + 1e-8 ……

Page 7: DATA PROCESSING

String

Pascal: 1 byte storing length and 255 bytes storing

array of characters. Total size is 256 bytes by default.

C/C++ Null-terminating array of characters. Last

byte (Null-character) denotes the end.

Page 8: DATA PROCESSING

String processing

Pascal: normal assignment s := ’abcde’; t := s; s[2] := ’9’;

C: by char *strcpy(char *dest, const char *src); strcpy(s, "abcde"); strcpy(t, s); s[1] = ’9’;

C++: normal assignment s = "abcde"; t = s; s[1] = ’9’;

Google it……

Page 9: DATA PROCESSING

Hints

Do not use C function strlen in a loop…… e.g. for (int i=0;i<strlen(s);++i) {…}

C string is Null-terminating. Also be careful on all string

operations(strcpy, etc.)

int n = strlen(s); for (int i=0;i<n;++i) {…}

Page 10: DATA PROCESSING

Packed Data Types

Record/struct

It increase the readability. It is important when debugging.

Operator overloading(C++)

Page 11: DATA PROCESSING

Mapping

Swapping the data may be slow Records in Pascal Strings/Struct in C/C++ Arrays

Use a pointer to represent the data.

Page 12: DATA PROCESSING

Hard-coding is important technique in tackling data processing problems

2067 – Tappy Game Blocks MUST be hard-coded What should we hard-code?

Number of blocks occupied for each column of each Tappy

4 rotations of each Tappy Hard-coding is much easier than writing codes for

rotation!

Hard-coding

Page 13: DATA PROCESSING

Hard-coding

When you are doing some searching in a maze.

DFS/BFS? Yes, but HOW?

if (x+1>0) && (x+1<n) && (y>0) && (y<n){…} if (x-1>0) && (x-1<n) && (y>0) && (y<n){…} if (x>0) && (x<n) && (y+1>0) && (y+1<n){…} if (x>0) && (x<n) && (y-1>0) && (y-1<n){…} ……………………

Page 14: DATA PROCESSING

Hard-coding

How about 8 directions?! int dy[8]={1,1,-1,-1,0,0,0,0}; int dx[8]={0,0,0,0,1,1,-1,-1};

We can use for loop now! :D

Shorter code

Page 15: DATA PROCESSING

Exercise

1012 Allocating School Places 2042 Reversi 2030 Be Jewelled! 2080 Simple Calculator 2067 Tappy Game


Recommended