A fine way to solve problems
xhae@STARTLINK LIVE
2016. 02. 12
Problem Solving
vs
Field Development
Solve a problem
- Think
- Code
- Goto Think while not accepted
Code a general program
- Think
- Code
- Goto Think while not qualified
Similarities
Differences
Similarities
- Procedure
Differences
Similarities
- Procedure
- Tool
Differences
Similarities
- Procedure
- Tool
- Due
Differences
Similarities
- Procedure
- Tool
- Due
- Bugs
Differences
Similarities
- Procedure
- Tool
- Due
- Bugs
- ...
Differences
Similarities
- Procedure
- Tool
- Due
- Bugs
- ...
Differences
- Scale
- Complexity
- ...
Similarities
- Procedure
- Tool
- Due
- Bugs
- ...
Differences
- Scale
- Complexity
- ...
They're both programming!
Take benefits of "programming"
Abstraction
about making a trustable blackbox
NO MORE
...but still better than making no layer at all.
void main() {
input();
process();
output();
}
Quiz
Quiz
Quiz
Quiz
Quiz
Quiz
dist
P1
P2
double dist = (P1 - P2).size();
Quiz
dist
P1
P2
double dist = (P1 - P2).size();
double theta = acos(R / dist);
theta
theta
R
Quiz
dist
P1
P2
double dist = (P1 - P2).size();
double theta = acos(R / dist);
Point base = (P1 - P2).resize(R);
theta
theta
base
R
Quiz
dist
P1
P2
double dist = (P1 - P2).size();
double theta = acos(R / dist);
Point base = (P1 - P2).resize(R);
Point ans[] = {P2 + base.rotate(theta),
P2 + base.rotate(-theta)};
theta
theta
base
base.rotate(theta)
base.rotate(-theta)
Base struct for Point
struct Point {
double x, y;
Point operator – (Point arg) { return Point{x – arg.x, y – arg.y}; }
double size() { return hypot(x, y); }
Point resize(double newSize) {
double ratio = newSize / size();
return Point{x * ratio, y * ratio};
}
Point rotate(double theta) {
return Point{x * cos(theta) – y * sin(theta),
x * sin(theta) + y * cos(theta)};
}
};
Abstraction
- is the way we think
Abstraction
- is the way we think
- makes code simpler
Abstraction
- is the way we think
- makes code simpler
- Easy to debug / review
And?
Much more similarities to go!
Thank you
A fine way to solve problems
By xhae
A fine way to solve problems
- 2,377