cpp4.dvi

Similar documents
cpp1.dvi

untitled

cpp2.dvi

double 2 std::cin, std::cout 1.2 C fopen() fclose() C++ std::fstream 1-3 #include <fstream> std::fstream fout; int a = 123; fout.open( "data.t

1-4 int a; std::cin >> a; std::cout << "a = " << a << std::endl; C++( 1-4 ) stdio.h iostream iostream.h C++ include.h 1-4 scanf() std::cin >>

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10;

design_pattern.key

Java学習教材

text_08.dvi

Condition DAQ condition condition 2 3 XML key value

(300, 150) 120 getchar() HgBox(x, y, w, h) (x, y), w, h #include <stdio.h> #include <handy.h> int main(void) { int i; double w, h; } HgO

untitled


10K

exec.dvi

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

3.1 stdio.h iostream List.2 using namespace std C printf ( ) %d %f %s %d C++ cout cout List.2 Hello World! cout << float a = 1.2f; int b = 3; cout <<


やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

oop1

: : : TSTank 2

Javaプログラムの実行手順

1.3 ( ) ( ) C

VALUESTAR Gシリーズをご購入いただいたお客様へ

解きながら学ぶC++入門編

10K pdf

Java演習(4) -- 変数と型 --

2008 DS T050049

6-1

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

2017_08_ICN研究会_印刷用

C# ++ MASA C# ( ) XNA 1.1 C# ( ) VisualStuio XNA 4.0 VisualStuio XNA 3.1 * * *3 2.1 VisualStuio Windows ( TextGam

r02.dvi

ohp02.dvi

Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

解きながら学ぶC++入門編

I java A

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

Java演習(9) -- クラスとメソッド --

yacc.dvi

2 T 1 N n T n α = T 1 nt n (1) α = 1 100% OpenMP MPI OpenMP OpenMP MPI (Message Passing Interface) MPI MPICH OpenMPI 1 OpenMP MPI MPI (trivial p

使いこなす本 ハード編

SystemC言語概論

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

新版 明解C++入門編

ohp03.dvi

新版明解C言語 実践編


Microsoft PowerPoint - lec06 [互換モード]

課題

r07.dvi

ohp07.dvi

Taro-twokansu3.jtd

r03.dvi

Microsoft PowerPoint pptx

RHEA key

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

2 : 2008/12/ /01/ G :

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

( ) ( ) 30 ( ) 27 [1] p LIFO(last in first out, ) (push) (pup) 1

Microsoft PowerPoint ppt

r08.dvi

新・明解C言語 実践編

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

PowerPoint Presentation

Microsoft Word - C言語研修 C++編 3.doc

ALG2012-A.ppt

programmingII2019-v01

ohp08.dvi

I. java.awt.rectangle java.lang.math random Java TM API java.awt Rectangle Rectangle (x,y)... public int x Rectangle X public int y Rectangle Y public

JavaプログラミングⅠ

K227 Java 2

2 T ax 2 + 2bxy + cy 2 + dx + ey + f = 0 a + b + c > 0 a, b, c A xy ( ) ( ) ( ) ( ) u = u 0 + a cos θ, v = v 0 + b sin θ 0 θ 2π u = u 0 ± a

1) OOP 2) ( ) 3.2) printf Number3-2.cpp #include <stdio.h> class Number Number(); // ~Number(); // void setnumber(float n); float getnumber();


Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

joho07-1.ppt

SystemC 2.0を用いた簡易CPUバスモデルの設計

橡Pro PDF

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

DiMP Users Manual Yuichi Tazaki

P05.ppt

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

アルゴリズムとデータ構造1

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

2

Python C/C++ IPMU IRAF

課題

C言語によるアルゴリズムとデータ構造

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

An Introduction to OSL

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

Q&A集

1

PowerPoint Presentation

Slide 1

新・明解C言語 ポインタ完全攻略

C++ & Bitcoin Core 注意点 Lab - Karl-Johan Alm 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without w

untitled

Transcription:

2017 c 4 C++ (4) C++, 41, 42, 1, 43,, 44 45, 41 (inheritance),, C++,, 100, 50, PCMCIA,,,,,,,,, 42 1 421 ( ), car 1 [List 41] 1: class car { 2: private: 3: std::string m model; // 4: std::string m maker; // 5: int m displacement; // 6: int m ps; // 7: int m weight; // 8: public: 9: [List 42] 10: }; 4 1

[List 41], m g, ++,,!? 2, [List 42] 1: car() {} 2: 3: car(const std::string& md, const std::string& mk, int dp, int p, int w): 4: m model(md), m maker(mk), m displacement(dp), m ps(p), m weight(w) {} 5: 6: car() {} 7: 8: std::string model() const {return m model;} // 9: 10: int no() const { // 3 5 11: if (m displacement<2000) return 5; 12: else return 3; 13: } 14: 15: double pwratio() const { // 16: return (double) m weight/(double) m ps; 17: } 18: 19: int tax() const { // 20: if (m displacement<=1000) return 29500; 21: else if (m displacement<=1500) return 34500; 22: else if (m displacement<=2000) return 39500; 23: else if (m displacement<=2500) return 45000; 24: else if (m displacement<=3000) return 51000; 25: else if (m displacement<=3500) return 58000; 26: else if (m displacement<=4000) return 66500; 27: else if (m displacement<=4500) return 76500; 28: else if (m displacement<=6000) return 88000; 29: else return 110000; 30: } 3 4 2

[List 43] 1: int main(void) { 2: 3: car a = car("skyline", "Nissan", 3498, 272, 1500); 4: car b = car("civic", "Honda", 1998, 215, 1190); 5: 6: std::cout << amodel() << " " 7: << ano() << " " 8: << apwratio() << " " 9: << atax() << std::endl; 10: 11: std::cout << bmodel() << " " 12: << bno() << " " 13: << bpwratio() << " " 14: << btax() << std::endl; 15: 16: return 0; 17: }, Skyline 3 551471 58000 Civic 5 553488 39500 422 ( ) car, hybrid car car, 1 int m motor ps 2 pwratio() ( ) 3 tax() ( ) 3, car, 1, car class hybrid car class hybrid car : car, hybrid car car, (base class), (derived class), car hybrid car, (superclass), (subclass) [List 44] 1: class hybrid car : public car { // public 2: private: 3: int m motor ps; 4: public: 5: [List 45] 6: }; 4 3

2, [List 44], m motor ps, car 5 m motor ps 1 public, car public, private, 3,, ( overwrite ( ) ) [List 45] 1: hybrid car() {} 2: 3: hybrid car(const std::string& md, const std::string& mk, 4: int dp, int p, int w, int mps): 5: car(md,mk,dp,p,w), m motor ps(mps) {} 6: 7: hybrid car() {} 8: 9: double pwratio() const { // 10: return (double) m weight/(double)(m ps+m motor ps); 11: } 12: 13: int tax() const {return 0;} // ( ) 4 car 1 ( ), private, ( public ), (, ), private protected [List 46] 1: class car { 2: protected: 3: std::string m model; // 4: std::string m maker; // 5: int m displacement; // 6: int m ps; // 7: int m weight; // 8: public: 9: [List 42] 10: } 5 [List 43] 4 4

[List 47] 1: int main(void) { 2: 3: car a = car("skyline", "Nissan", 3498, 272, 1500); 4: car b = car("civic", "Honda", 1998, 215, 1190); 5: hybrid car h = hybrid car("prius", "Toyota", 1496, 77, 1290, 68); 6: 7: std::cout << amodel() << " " 8: << ano() << " " 9: << apwratio() << " " 10: << atax() << std::endl; 11: 12: std::cout << bmodel() << " " 13: << bno() << " " 14: << bpwratio() << " " 15: << btax() << std::endl; 16: 17: std::cout << hmodel() << " " 18: << hno() << " " 19: << hpwratio() << " " 20: << htax() << std::endl; 21: 22: return 0; 23: }, Skyline 3 551471 58000 Civic 5 553488 39500 Prius 5 889655 0 41 [List 44] [List 47], [List 41] [List 43] 423, hybrid car tax(),, int tax() const {return car tax() /2;}, car tax(), C++ car::tax() 42 hybrid car tax(), 424 /,, 4 5

[List 45] 1 hybrid car,, hybrid car [List 45] 2,,, 43 car, hybrid car,, [List 47],, [List 47] hybrid car, 43 2 C++, stack ( ) stack 3 ( ) stack ac, int n push(), void push() int n pop(), void pop() stack ac stack, push int count (, pop count ),, private void push(int), stack void push(int), push count 1 int n push(), push count void pop(),,sp push count (, sp stack sp private protected, sp, size(), ),, / 44 stack ac, stack, main(void) stack ac stack, stack 1,, stack,, STL, vector, [] 7 ( 1 C++ [ 3 ] p 86;, template ) 4 6

44 3,,,,,,, 441 4 (canvas), (point), (rectangle), (diamond) (main) [List 48] 1: #include <iostream> 2: inline int abs(int x) {return 0<=x? x : -x;} 3: // 4: 5: [canvas ] 6: [point ] 7: [rectangle ] 8: [diamond ] 9: 10: [main ] g++, abs(int), include, abs(int), 2 canvas 2 (, X ) [List 49] 1: class canvas { 2: public: 3: canvas(int sx, int sy); // sx sy 4: canvas(); // 5: void clear(); // 6: void set(int x, int y); // (x,y) 7: void print(std::ostream &os); // 8: private: 9: int size x; // ( ) 10: int size y; // ( ) 11: char **p; // 2 12: canvas(const canvas&); // 13: canvas& operator=(const canvas&); // 14: }; 4 7

<<, 15: std::ostream& operator<<(std::ostream& os, canvas& c) {cprint(os);} canvas(int, int) size x, size y, new [List 410] 1: canvas::canvas(int sx, int sy): size x(sx), size y(sy) { 2: p = new char*[size x]; 3: for (int x=0; x<size x; x++) p[x] = new char[size y]; 4: this->clear(); // canvas::clear() 5: } canvas(), [List 411] 1: canvas:: canvas() { 2: for (int x=0; x<size x; x++) delete [] p[x]; 3: delete [] p; 4: } canvas::clear() [List 412] 1: void canvas::clear() { 2: for (int x=0; x<size x; x++) { 3: for (int y=0; y<size y; y++) { 4: p[x][y] = ; 5: } 6: } 7: } canvas::set(int, int) X, [List 413] 1: void canvas::set(int x, int y) { 2: if (0<=x && x<size x && 0<=y && y<size y) p[x][y] = X ; 3: } canvas::print(std::ostream&) (0,0) 4 8

[List 414] 1: void canvas::print(std::ostream& os) { 2: os << + ; 3: for (int x=0; x<size x; x++) {os << - ;} 4: os << + << std::endl; 5: for (int y=size y-1; 0<=y; y--) { 6: os << ; 7: for (int x=0; x<size x; x++) { 8: os << p[x][y]; 9: } 10: os << << std::endl; 11: } 12: os << + ; 13: for (int x=0; x<size x; x++) {os << - ;} 14: os << + << std::endl; 15: } point 1 [List 415] 1: class point { 2: private: 3: int px, py; // 4: public: 5: point(int x, int y); // (x,y) 6: point(); 7: void move(int ix, int iy); // x ix, y iy 8: void draw(canvas &c); // c 9: }; [List 416] 1: point::point(int x, int y) : px(x), py(y) {} 2: point:: point() {} 3: void point::move(int ix, int iy) {px += ix; py += iy;} 4: void point::draw(canvas &c) {cset(px,py);} rectangle 4 9

[List 417] 1: class rectangle { 2: private: 3: int px, py; 4: int width, height; // 5: public: 6: rectangle(int x, int y, int w, int h); 7: // (x,y), w, h 8: rectangle(); 9: void move(int ix, int iy); // x ix, y iy 10: void draw(canvas &c); // c 11: }; 45 diamond [List 418] 1: class diamond { 2: private: 3: int px, py; 4: int radius; // ( ) 5: public: 6: diamond(int x, int y, int r); 7: diamond(); 8: void move(int ix, int iy); 9: void draw(canvas &c); 10: }; [List 419] 1: diamond::diamond(int x, int y, int r) : px(x), py(y), radius(r) {} 2: diamond:: diamond() {} 3: void diamond::move(int ix, int iy) {px += ix; py += iy;} 4: void diamond::draw(canvas &c) { 5: if (0<=radius) { 6: for (int r=-radius; r<=radius; r++) { 7: int h = radius - abs(r); 8: for (int s=-h; s<=h; s++) { 9: cset(px+r,py+s); 10: } 11: } 12: } 13: } 4 10

1 3 2 2 (3 9 ) 2 c, (11 19 ) 3,, (4,2) (21 27 ) 4 c,,, (29 37 ) [List 420] 1: int main(void) { 2: 3: point p1(0,0); 4: point p2(17,9); 5: point p3(19,2); 6: rectangle r1(2,1,3,2); 7: rectangle r2(7,7,6,2); 8: diamond d1(2,7,2); 9: diamond d2(15,3,4); 10: 11: canvas c(20,10); 12: p1draw(c); 13: p2draw(c); 14: p3draw(c); 15: r1draw(c); 16: r2draw(c); 17: d1draw(c); 18: d2draw(c); 19: std::cout << c; 20: 21: p1move(4,2); 22: p2move(4,2); 23: p3move(4,2); 24: r1move(4,2); 25: r2move(4,2); 26: d1move(4,2); 27: d2move(4,2); 28: 29: cclear(); 30: p1draw(c); 31: p2draw(c); 32: p3draw(c); 33: r1draw(c); 34: r2draw(c); 35: d1draw(c); 36: d2draw(c); 37: std::cout << c; 38: 39: return 0; 40: }, 4 11

+--------------------+ X X XXX XXXXXX XXXXX XXXXXX X XXX XXX X XXXXX XXXXXXX XXXXXXXXX XXX XXXXXXXX XXX XXXXX X XXX +--------------------+ +--------------------+ XXXXX XXXXXX X XXX XX X XXX XXXX XXXXX XXX XXXX XXX XXX X XX X +--------------------+ 45 [List 48] [List 420] rectangle point diamond 442, (1) (, ), draw(canvas &c),move(int,int), (2) move,?, px, py,,,,,, int a[7] a, a[0]=3;, a[1] = "Nagisa"; ( ), C++, rectangle *a[7], a[1] = new diamond(2,7,2); cast ( ),,, 443, obj 4 12

1 point, rectangle, diamond obj, 3, 2 point, rectangle, diamond obj 3 (a),,, (, ), point, rectangle, diamond, obj, 3 (b), move obj,, point, rectangle, diamond, obj, obj obj, px, py,, type, "point", "rectangle", "diamond", obj, move(int,int), draw(canvas&) obj [List 421] 1: class obj { 2: public: 3: obj(int x, int y, const std::string& t); // 4: obj(); // 5: void move(int ix, int iy); 6: void draw(canvas &c); 7: public: 8: int px, py; 9: std::string type; // "point", "rectangle", "diamond" 10: }; obj [List 422] 1: obj::obj(int x, int y, const std::string& t) : px(x), py(y), type(t) {} 2: obj:: obj() {} 3: void obj::move(int ix, int iy) {px += ix; py += iy;} draw(canvas&), obj 4 13

point, rectangle, diamond point obj obj, [List 423] 1: class point : public obj { //obj 2: public: 3: point(int x, int y); // 4: point(); // 5: void draw(canvas &c); // 6: }; point [List 424] 1: point::point(int x, int y) : obj(x, y, "point") {} 2: point:: point() {} 3: void point::draw(canvas &c) {cset(px,py);} 46 rectangle, diamond, 444, main, vector [List 425] 1: int main(void) { 2: std::vector<obj*> vec; 3: 4: // 5: vecpush back(new point(0,0)); 6: vecpush back(new point(17,9)); 7: vecpush back(new point(19,2)); 8: vecpush back(new rectangle(2,1,3,2)); 9: vecpush back(new rectangle(7,7,6,2)); 10: vecpush back(new diamond(2,7,2)); 11: vecpush back(new diamond(15,3,4)); 12: 13: canvas c(20,10); 14: // 15: for (int i=0; i<vecsize(); i++) vec[i]->draw(c); 16: std::cout << c; 17: 18: // 19: for (int i=0; i<vecsize(); i++) vec[i]->move(4,2); 20: 4 14

21: cclear(); 22: // 23: for (int i=0; i<vecsize(); i++) vec[i]->draw(c); 24: std::cout << c; 25: 26: // delete 27: for (int i=0; i<vecsize(); i++) delete vec[i]; 28: return 0; 29: }, main! 15 23 draw, vec[i] point point::draw(canvas&)), rectangle rectangle::draw(canvas&),, vec[i]->draw(c) obj::draw(canvas&)!, draw, ( ) (, vec[i] point rectangle, ), vec[i] obj, vec[i]->draw(c) obj::draw(canvas&) 47 [List 420] [List 425],, vec[i] draw main 15 23, [List 426] 1: for (int i=0; i<vecsize(); i++) { 2: if (vec[i]->type == "point") ((point*) vec[i])->draw(c); 3: else if (vec[i]->type == "rectangle") ((rectangle*) vec[i])->draw(c); 4: else if (vec[i]->type == "diamond") ((diamond*) vec[i])->draw(c); 5: } vec[i] obj, point,, vec[i]->idraw point::draw vec[i] point, (pont*) vec[i], string, 48 main 15 23, 4 15

45 451 draw(canvas&),, vec[i] vec[i]->draw(c), [List 425] C++ obj::draw(canvas&), [List 427] 1: point p(1,3); 2: rectangle r(2,1,3,2); 3: diamond d(7,7,6,2); 4: 5: obj* x; 6: canvas c(20,10); 7: 8: x = &p; x->draw(c); 9: x = &r; x->draw(c); 10: x = &d; x->draw(c);, x obj, x->draw(c), 8 point::draw(canvas&) 9 rectanble::draw(canvas&) 10 diamond::draw(canvas&) obj::draw, obj draw(canvas&) virtual (9 ) [List 428] 1: class obj { 2: public: 3: obj(int x, int y, const std::string& t); 4: obj(); 5: void move(int ix, int iy); 6: virtual void draw(canvas &c) = 0; 7: public: 8: int px, py; 9: std::string type; 10: }; obj draw(canvas&), = 0 draw(canvas&), obj ( ) 452, 4 16

[List 429] 1: class obj { 2: public: 3: obj(int x, int y, const std::string& t); 4: virtual obj(); 5: void move(int ix, int iy); 6: virtual void draw(canvas &c) = 0; 7: public: 8: int px, py; 9: std::string type; 10: }; [List 425] delete vec[i], vec[i] vec[i] point point, obj(), obj() obj(),, point(), obj() point(), (chaining), point() obj() 49 obj::draw(canvas&) obj:: obj(), [List 425] main, ( ) dynamic dispatch, ( ) dynamic dispatch, C++,, dynamic dispatch C C++,, Nagisa ISHIURA 4 17