C++ Programming Ch.6 Exercise 3 Solution

Problem: ํ•จ์ˆ˜ big()์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1 2 3 4 5 6 int main() { int x = big(3, 5); // 3๊ณผ 5์ค‘ ํฐ ๊ฐ’์€ 5๋Š” ์ตœ๋Œ€๊ฐ’ 100๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ, 5 ๋ฆฌํ„ด int y = big(300, 60); // 300๊ณผ 60 ์ค‘ ํฐ ๊ฐ’ 300์ด ์ตœ๋Œ€๊ฐ’ 100๋ณด๋‹ค ํฌ๋ฏ€๋กœ, 100๋ฆฌํ„ด int z = big(30, 60, 50); // 30๊ณผ 60 ์ค‘ ํฐ ๊ฐ’ 60์ด ์ตœ๋Œ€๊ฐ’ 50๋ณด๋‹ค ํฌ๋ฏ€๋กœ, 50๋ฆฌํ„ด cout << x << ' ' << y << ' ' << z << endl; } (1) big() ํ•จ์ˆ˜๋ฅผ 2๊ฐœ ์ค‘๋ณตํ•˜์—ฌ ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. ...

March 5, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.6 Exercise 2 Solution

Problem: Person ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” main() ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Person { int id; double weight; string name; public: void show() { cout << id << ' ' << weight << ' ' << name << endl; } }; int main() { Person grace, ashley(2, "Ashley"), helen(3, "Helen", 32.5); grace.show(); ashley.show(); helen.show(); } (1) ์ƒ์„ฑ์ž๋ฅผ ์ค‘๋ณต ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. ...

March 5, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.6 Exercise 1 Solution

Problem: add() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” main() ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1 2 3 4 5 6 7 8 int main() { int a[] = {1,2,3,4,5}; int b[] = {6,7,8,9,10}; int c = add(a, 5); // ๋ฐฐ์—ด a์˜ ์ •์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’ ๋ฆฌํ„ด int d = add(a, 5, b); // ๋ฐฐ์—ด a์™€ b์˜ ์ •์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’ ๋ฆฌํ„ด cout << c << endl; // 15 ์ถœ๋ ฅ cout << d << endl; // 55 ์ถœ๋ ฅ } (1) add() ํ•จ์ˆ˜๋ฅผ ์ค‘๋ณต ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. ...

March 5, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.5 Exercise 12 Solution

Problem: ๋‹ค์Œ์€ ํ•™๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Dept ํด๋ž˜์Šค์™€ ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” main()์„ ๋ณด์—ฌ ์ค€๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Dept { int size; // scores ๋ฐฐ์—ด์˜ ํฌ๊ธฐ int* scores; // ๋™์  ํ• ๋‹น ๋ฐ›์„ ์ •์ˆ˜ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ public: Dept(int size) { // ์ƒ์„ฑ์ž this->size = size; scores = new int[size]; } Dept(const Dept& dept); // ๋ณต์‚ฌ ์ƒ์„ฑ์ž ~Dept(); // ์†Œ๋ฉธ์ž int getSize() { return size; } void read(); // size ๋งŒํผ ํ‚ค๋ณด๋“œ์—์„œ ์ •์ˆ˜๋ฅผ ์ฝ์–ด scores ๋ฐฐ์—ด์— ์ €์žฅ bool isOver60(int index); // index์˜ ํ•™์ƒ์˜ ์„ฑ์ ์ด 60๋ณด๋‹ค ํฌ๋ฉด true ๋ฆฌํ„ด }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int countPass(Dept dept) { // dept ํ•™๊ณผ์— 60์  ์ด์ƒ์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” ํ•™์ƒ์˜ ์ˆ˜ ๋ฆฌํ„ด int count = 0; for (int i = 0; i < dept.getSize(); i++) { if (dept.isOver60(i)) count++; } return count; } int main() { Dept com(10); // ์ด 10๋ช…์ด ์žˆ๋Š” ํ•™๊ณผ com com.read(); // ์ด 10๋ช…์˜ ํ•™์ƒ๋“ค์˜ ์„ฑ์ ์„ ํ‚ค๋ณด๋“œ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด scores ๋ฐฐ์—ด์— ์ €์žฅ int n = countPass(com); // com ํ•™๊ณผ์— 60์  ์ด์ƒ์œผ๋กœ ํ†ต๊ณผํ•œ ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ๋ฆฌํ„ด cout << "60์  ์ด์ƒ์€ " << n << "๋ช…"; } (1) main()์˜ Execution Result๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋˜๋„๋ก Dept ํด๋ž˜์Šค์— ๋ฉค๋ฒ„๋“ค์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๊ณ , ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. ...

March 5, 2020 ยท 5 min ยท Sobamemil

C++ Programming Ch.5 Exercise 11 Solution

Problem: ์ฑ…์˜ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ์„ ์ €์žฅํ•˜๋Š” ๋‹ค์Œ Book ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋ฌผ์Œ์— ๋‹ตํ•˜์—ฌ๋ผ. 1 2 3 4 5 6 7 8 9 class Book { char *title; // ์ œ๋ชฉ ๋ฌธ์ž์—ด int price; // ๊ฐ€๊ฒฉ public: Book(const char* title, int price); ~Book(); void set(char* title, int price); void show() { cout << title << ' ' << price << "์›" << endl; } }; (1) Book ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž, ์†Œ๋ฉธ์ž, set() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. set() ํ•จ์ˆ˜๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ title์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด ๋จผ์ € ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๊ณ  ์ด๊ณณ์— ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ฑ…์ด๋ฆ„์„ ์ €์žฅํ•œ๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.5 Exercise 10 Solution

Problem: ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. ๋‹ค์Œ ์ฝ”๋“œ์™€ Execution Result๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ append() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. append()๋Š” Buffer ๊ฐ์ฒด์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  Buffer ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Buffer{ string text; public: Buffer(string text) { this->text = text; } void add(string next) { text += next; } // text์— next ๋ฌธ์ž์—ด ๋ง๋ถ™์ด๊ธฐ void print() { cout << text << endl; } }; int main() { Buffer buf("Hello"); Buffer& temp = append(buf, "Guys"); // buf์˜ ๋ฌธ์ž์—ด์— "Guys" ๋ง๋ถ™์ž„ temp.print(); // "HelloGuys" ์ถœ๋ ฅ buf.print(); // "HelloGuys" ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.5 Exercise 9 Solution

Problem: ํด๋ž˜์Šค Accumulator๋Š” add() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ณ„์† ๊ฐ’์„ ๋ˆ„์ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ๋‹ค. Accumulator ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ. 1 2 3 4 5 6 7 class Accumulator{ int value; public: Accumulator(int value); // ๋งค๊ฐœ ๋ณ€์ˆ˜ value๋กœ ๋ฉค๋ฒ„ value๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. Accumulator& add(int n); // value์— n์„ ๋”ํ•ด ๊ฐ’์„ ๋ˆ„์ ํ•œ๋‹ค. int get(); // ๋ˆ„์ ๋œ ๊ฐ’ value๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. }; Accumulator๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด main() ํ•จ์ˆ˜์— ์˜ํ•ด ํ™œ์šฉ๋œ๋‹ค. 1 2 3 4 5 int main() { Accumulator acc(10); acc.add(5).add(6).add(7); // acc์˜ value ๋ฉค๋ฒ„๊ฐ€ 28์ด ๋œ๋‹ค. cout << acc.get(); // 28 ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.5 Exercise 8 Solution

Problem: ๋ฌธ์ œ 7๋ฒˆ์˜ MyIntStack์„ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•˜์˜€๋‹ค. ์Šคํƒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” ์ƒ์„ฑ์ž์—์„œ ์ฃผ์–ด์ง€๊ณ  size ๋ฉค๋ฒ„์— ์œ ์ง€ํ•œ๋‹ค. MyIntStack ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MyIntStack{ int *p; // ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ํฌ์ธํ„ฐ int size; // ์Šคํƒ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ int tos; // ์Šคํƒ์˜ ํƒ‘์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค public: MyIntStack(); MyIntStack(int size); MyIntStack(const MyIntStack& s); // ๋ณต์‚ฌ ์ƒ์„ฑ์ž ~MyIntStack(); bool push(int n); // ์ •์ˆ˜ n์„ ์Šคํƒ์— ํ‘ธ์‹œํ•œ๋‹ค. // ์Šคํƒ์ด ๊ฝ‰ ์ฐจ ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด bool pop(int &n); // ์Šคํƒ์˜ ํƒ‘์— ์žˆ๋Š” ๊ฐ’์„ n์— ํŒํ•œ๋‹ค. // ๋งŒ์ผ ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด }; MyIntStack ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.5 Exercise 7 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ ํด๋ž˜์Šค MyIntStack์„ ๊ตฌํ˜„ํ•˜๋ผ. MyIntStack ์Šคํƒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” 10์ด๋‹ค. 1 2 3 4 5 6 7 8 class MyIntStack{ int p[10]; // ์ตœ๋Œ€ 10๊ฐœ์˜ ์ •์ˆ˜ ์ €์žฅ int tos; // ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค public: MyIntStack(); bool push(int n); // ์ •์ˆ˜ n ํ‘ธ์‹œ. ๊ฝ‰ ์ฐจ ์žˆ์œผ๋ฉด false, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด bool pop(int &n); // ํŒํ•˜์—ฌ n์— ์ €์žฅ. ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด false, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด }; MyIntStack ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.5 Exercise 6 Solution

Problem: find() ํ•จ์ˆ˜์˜ ์›ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฌธ์ž์—ด a์—์„œ ๋ฌธ์ž c๋ฅผ ์ฐพ์•„, ๋ฌธ์ž c๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋งŒ์ผ ๋ฌธ์ž c๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด success ์ฐธ์กฐ ๋งค๊ฐœ ๋ณ€์ˆ˜์— false๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๋ฌผ๋ก  ์ฐพ๊ฒŒ ๋˜๋ฉด success์— true๋ฅผ ์„ค์ •ํ•œ๋‹ค. 1 char& find(char a[], char c, bool& success); ๋‹ค์Œ main()์ด ์ž˜ ์‹คํ–‰๋˜๋„๋ก find()๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 int main() { char s[] = "Mike"; bool b = false; char& loc = find(s, 'M', b); if(b == false) { cout << "M์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋‹ค" << endl; return 0; } loc = 'm'; // 'M' ์œ„์น˜์— 'm' ๊ธฐ๋ก cout << s << endl; // "mike"๊ฐ€ ์ถœ๋ ฅ๋จ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil