28-1-³ª.¿¬»êÀÚ ÇÔ¼ö

Æ÷ÀÎÅͳ¢¸® ´õÇÏ´Â °ÍÀÌ Àǹ̰¡ ¾ø´Â °Íó·³ ÇÏ·çÁßÀÇ ÇÑ ½ÃÁ¡À» °¡¸®Å°´Â ½Ã°¢À» ´õÇÏ´Â °ÍÀº »ç½Ç º° Àǹ̰¡ ¾ø´Ù. ¾ÆÄ§ÀÌ 9:00À̰í Á¡½ÉÀÌ 12:30ÀÏ ¶§ ÀÌ µÑÀ» ´õÇÑ 21:30Àº ¾î¶² Àǹ̵µ ºÎ¿©ÇÒ ¼ö ¾ø´Ù. ±×·¯³ª °æ°ú ½Ã°£³¢¸® ´õÇÏ´Â °ÍÀº ºÐ¸íÈ÷ Àǹ̰¡ Àִµ¥ ¹ä¸Ô´Âµ¥ 40ºÐ, Ä¿ÇÇ ¸¶½Ã´Âµ¥ 25ºÐÀÌ °É¸°´Ù¸é ÀÌ µÑÀ» ´õÇÑ 1:5ºÐÀº ¹ä¸Ô°í Ä¿ÇÇ ¸¶½Ã´Âµ¥ ÇÊ¿äÇÑ ½Ã°£À̶ó°í ÇÒ ¼ö ÀÖ´Ù.

½Ã°£À» Ç¥ÇöÇÏ´Â TimeÀ̶ó´Â Ŭ·¡½º¸¦ Á¤ÀÇÇß´Ù¸é ½Ã°£³¢¸® ´õÇÒ ¼ö ÀÖ´Â ¹æ¹ýµµ Á¦°øÇÒ Çʿ䰡 Àִµ¥ ½Ã°£À̶õ °ú¿¬ ¾î¶»°Ô ´õÇÒ ¼ö ÀÖÀ»±î? ½Ã°£À̶ó´Â ŸÀÔÀº ½Ã, ºÐ, ÃÊÀÇ ¼¼ °¡Áö ¿ä¼Ò·Î ±¸¼ºµÇ¸ç Àû¾îµµ int³ª double °°Àº ±âº» ŸÀÔº¸´Ù´Â ÈξÀ ´õ º¹ÀâÇÑ Ã³¸®°¡ ÇÊ¿äÇÏ´Ù. ÃÊ´Â Ãʳ¢¸® ´õÇÏ°í ºÐÀº ºÐ³¢¸® ´õÇØ¾ß ÇÏ¸ç ½Ã´Â ½Ã³¢¸® °¢°¢ ´õÇ쵂 °¢ ÀÚ¸®¿¡¼­ 60ÀÌ ³Ñ´Â °á°ú°¡ ³ª¿À¸é ÀÚ¸® ¿Ã¸² 󸮸¦ ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î 1:26:42Ãʶó´Â ½Ã°£°ú 2:38:55Ãʶó´Â ½Ã°£À» ´õÇϸé 3:64:97Ãʰ¡ µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó 4:5:37Ãʰ¡ µÇ¾î¾ß ÇÑ´Ù.

»ç¶÷Àº ½Ã°£À̶ó´Â Æ÷¸Ë¿¡ ¾ÆÁÖ Àͼ÷Çϰí ÀÏ»ó »ýȰ¿¡¼­ ´Ã»ó »ç¿ëÇϹǷΠ½±°Ô ¿¬»êÇÒ ¼ö ÀÖÁö¸¸ ÄÄÇ»ÅÍ´Â ÀÌ·± º¹ÀâÇÑ Å¸ÀÔÀÇ ¿¬»ê ¹æ¹ýÀ» ¸ð¸¥´Ù. Time Ŭ·¡½º¿¡ ´ëÇØ µ¡¼ÀÀ» ÇÏ´Â ¸â¹ö ÇÔ¼ö¸¦ Á¤ÀÇÇØ º¸ÀÚ. ´ÙÀ½ ¿¹Á¦ÀÇ AddTime ¸â¹ö ÇÔ¼ö´Â ¶Ç ´Ù¸¥ Time °´Ã¼ T¸¦ Àμö·Î Àü´Þ¹Þ¾Æ ÀÚ±â ÀڽŰú ´õÇÑ °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ½Ã°£³¢¸® µ¡¼À ¿¬»êÀ» ÇϹǷΠÀÌ µ¿ÀÛÀ» Àß ¼³¸íÇÒ ¼ö ÀÖ´Â AddTimeÀ̶ó´Â À̸§À» ÁÖ¾ú´Ù.

 

¿¹ Á¦ : TimeAdd

#include <Turboc.h>

 

class Time

{

private:

     int hour,min,sec;

 

public:

     Time() { }

     Time(int h, int m, int s) { hour=h; min=m; sec=s; }

     void OutTime() {

          printf("%d:%d:%d\n",hour,min,sec);

     }

     const Time AddTime(const Time &T) const {

          Time R;

         

          R.sec=sec + T.sec;

          R.min=min + T.min;

          R.hour=hour + T.hour;

         

          R.min += R.sec/60;

          R.sec %= 60;

          R.hour += R.min/60;

          R.min %= 60;

          return R;

     }

};

 

void main()

{

     Time A(1,1,1);

     Time B(2,2,2);

     Time C;

    

     A.OutTime();

     B.OutTime();

     C=A.AddTime(B);

     C.OutTime();

}

 

´õÇÏ´Â ¹æ¹ýÀº ºñ±³Àû °£´ÜÇѵ¥ Àӽà °´Ã¼ RÀ» ¼±¾ðÇÑ ÈÄ ÀÚ±â ÀڽŰú TÀÇ ½Ã, ºÐ, Ãʸ¦ °¢°¢ ´õÇØ RÀÇ ´ëÀÀµÇ´Â ¸â¹ö¿¡ ´ëÀÔÇϰí ÀÚ¸® ¿Ã¸²À» ÇÑ´Ù. ÀÚ¸® ¿Ã¸²Àº ³ª´©±â ¿¬»êÀÚ¿Í ³ª¸ÓÁö ¿¬»êÀÚ¸¦ ÀûÀýÈ÷ Ȱ¿ëÇÏ¸é °£´ÜÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Ù. main ÇÔ¼öÀÇ Å×½ºÆ® ÄÚµå´Â A¿Í B¸¦ ´õÇØ C¿¡ ´ëÀÔÇÑ ÈÄ C¸¦ Ãâ·ÂÇØ º»´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

1:1:1

2:2:2

3:3:3

 

¾ÆÁÖ °£´ÜÇÑ ¿¬»êÀ» ÇØ º¸¾Ò´Âµ¥ 1:36:42¿Í 5:42:29ó·³ Á¶±Ý º¹ÀâÇØ º¸ÀÌ´Â ½Ã°£³¢¸® ´õÇØµµ ÀÚ¸® ¿Ã¸²±îÁö °í·ÁÇÏ¿© 7:19:11¶ó´Â Á¤È®ÇÑ ¿¬»êÀ» ÇÑ´Ù. Time Ŭ·¡½º°¡ ½Ã°£ Æ÷¸Ë¿¡ ´ëÇØ ĸ½¶È­¸¦ Àß Çϰí ÀÖÀ¸¸ç AddTimeÀ̶ó´Â À̸§ÀÇ ¸â¹ö ÇÔ¼ö¸¦ Á¤ÀÇÇÔÀ¸·Î½á ½Ã°£ °´Ã¼³¢¸® ´õÇÏ´Â ¹æ¹ýÀ» ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë·Á ÁÖ¾úÀ¸¹Ç·Î main¿¡¼­´Â AddTime ÇÔ¼ö¸¦ È£ÃâÇÏ¿© A¿Í B¸¦ ´õÇϱ⸸ ÇÏ¸é µÈ´Ù. µ¿ÀÛ»óÀÇ ¹®Á¦´Â ÀüÇô ¾øÁö¸¸ ¿¬»êÀ» À§ÇØ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ½ÄÀÌ ¿¬»êÀÚ¸¦ ¾²´Â ¹æ¹ý¿¡ ºñÇØ Á÷°üÀûÀÌÁö ¸øÇÏ¸ç ±âº»ÇüÀÇ ¿¬»ê¹®°ú ¸ð¾çÀÌ ´Ù¸£´Ù´Â °Íµµ ºÒ¸¸ÀÌ´Ù. ±×·¡¼­ ÀÌ·± µ¿ÀÛÀ» ÇÏ´Â ¿¬»êÀÚ ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

»ç½Ç ¿¬»êÀÚ´Â ¸ð¾çÀÌ Á» ƯÀÌÇÑ ÇÔ¼ö¶ó°í º¼ ¼ö Àִµ¥ Àμö¸¦ ÃëÇÑ´Ù´Â °Í°ú ¿¬»ê °á°ú¸¦ ¸®ÅÏÇÑ´Ù´Â Á¡¿¡¼­ ÇÔ¼ö¿Í °øÅëÀûÀÌ´Ù. ¿¬»êÀÚ ÇÔ¼öÀÇ À̸§Àº Ű¿öµå operator ´ÙÀ½¿¡ ¿¬»êÀÚ ±âÈ£¸¦ ½á¼­ ÀÛ¼ºÇϴµ¥ ¿¬»êÀÚ ±âÈ£¸¦ ¸íĪÀ¸·Î ¾µ ¼ö ¾øÀ¸¹Ç·Î operator¶ó´Â Ű¿öµå¸¦ ¾Õ¿¡ µÎ´Â °ÍÀÌ´Ù. µ¡¼À ¿¬»êÀÚ ÇÔ¼öÀÇ À̸§Àº operator +°¡ µÇ´Âµ¥ Áß°£ÀÇ °ø¹éÀº ¹«½ÃµÇ¹Ç·Î operator+¶ó°í ºÙ¿© ½áµµ »ó°ü¾ø´Ù. ÇÔ¼ö¸íÀº ¸íĪÀ̹ǷΠ¿µ¹®ÀÚ, ¼ýÀÚ, _¸¸ ¾µ ¼ö ÀÖÁö¸¸ ¿¬»êÀÚ ÇÔ¼öÀÇ À̸§Àº ¿¹¿ÜÀûÀ¸·Î ±âÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¬»êÀÚ ÀÚü°¡ ±âÈ£·Î µÇ¾î ÀÖÀ¸¹Ç·Î ¿©±â¿¡´Â ¿¹¿Ü¸¦ Àû¿ëÇÒ ¼ö¹Û¿¡ ¾ø´Ù. À§ ¿¹Á¦¿¡¼­ AddTimeÀ̶ó´Â ÇÔ¼öÀÇ À̸§À» operator +·Î ¹Ù²ã º¸ÀÚ.

 

class Time

{

     ....

    const Time operator +(const Time &T) const {

          ....

     }

};

 

¸®Åϰª, Àμö, º»Ã¼´Â ±×´ë·Î µÎ°í AddTimeÀ̶ó´Â À̸§¸¸ operator +·Î ¹Ù²Û °Í »ÓÀÌ´Ù. ÀÌ·¸°Ô ¿¬»êÀÚ ÇÔ¼ö¸¦ Á¤ÀÇÇϸé ÀÌ Å¬·¡½º ŸÀÔÀÇ °´Ã¼¸¦ Áº¯À¸·Î °¡Áö´Â + ¿¬»êÀÚ¸¦ ¾µ ¼ö ÀÖ´Ù. main ÇÔ¼öÀÇ AddTime È£Ãâ¹®µµ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.

 

void main()

{

     Time A(1,1,1);

     Time B(2,2,2);

     Time C;

    

     A.OutTime();

     B.OutTime();

    C=A+B;

     C.OutTime();

}

 

C=A.AddTime(B)°¡ C=A+B·Î ¹Ù²î¾ú´Âµ¥ ÇÔ¼öÀÇ º»Ã¼ Äڵ尡 ¶È°°À¸¹Ç·Î µ¿ÀÛµµ ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. AddTimeÀ̶ó´Â ÇÔ¼öÀÇ À̸§ÀÌ operator +·Î ¹Ù²î¾ú°í ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀÌ ¿¬»ê¹®À¸·Î ¹Ù²î¾úÀ» »ÓÀÌ´Ù. C=A+B¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇصµ ¶È°°ÀÌ µ¿ÀÛÇÑ´Ù.

 

C=A.operator +(B);            // C=A+B; ¿Í °°´Ù.

 

C=A+B´Â ¿¬»ê¹®À̰í C=A.operator +(B)´Â ÇÔ¼ö È£Ãâ¹®ÀÇ ÇüŸ¦ ¶ì°í ÀÖÀ» »Ó ½ÇÇàµÇ´Â ÄÚµå´Â µÑ ´Ù µ¿ÀÏÇÏ´Ù. Ç¥Çö¸¸ ´Ù¸¥ °°Àº ±¸¹®ÀÌ´Ù. A+B ¿¬»ê¹®¿¡ Áß´ÜÁ¡À» ¼³Á¤ÇÏ°í µð¹ö°Å·Î ½ÇÇàÇÏ¿© ÇÔ¼ö ¾ÈÂÊÀ¸·Î ÆÄ°í µé¾î°¡ º¸¸é ÀÌ ¿¬»ê¹®¿¡ ÀÇÇØ operator + ÇÔ¼ö°¡ È£ÃâµÈ´Ù´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ±×·¸´Ù¸é AddTime ÀÏ¹Ý ÇÔ¼ö¿Í operator +¿¬»êÀÚ ÇÔ¼ö´Â °ú¿¬ ¾î¶² Â÷ÀÌÁ¡ÀÌ ÀÖÀ»±î ºñ±³ÇØ º¸ÀÚ.

ù ¹øÂ°·Î ¿¬»êÀÚ ÇüÅÂÀÇ È£Ãâ ¹æ½ÄÀÌ ±æÀ̰¡ ª¾Æ ŸÀÌÇÎÇÏ±â Æí¸®ÇÏ¸ç ¿ÀŸ°¡ ¹ß»ýÇÒ °¡´É¼ºµµ ±ØÈ÷ ³·´Ù. ¸î ÀÚ µÇÁö´Â ¾ÊÁö¸¸ ÀÚÁÖ »ç¿ëÇÏ´Â ¿¬»êÀ̶ó¸é ÀÌ Â÷À̵µ °áÄÚ ¹«½ÃÇÒ ¼ö ¾ø´Ù.

µÎ ¹øÂ°·Î ¿¬»êÀÚ ÇÔ¼ö´Â È£Ãâ Çü½ÄÀÌ ¿¬»ê¹® ÇüÅ·ΠÀÛ¼ºµÇ±â ¶§¹®¿¡ ÈξÀ ´õ Á÷°üÀûÀÌ°í ±âº»ÇüÀÇ ¿¬»ê ¹æ¹ý°ú ÀÏÄ¡ÇϹǷΠ»ç¿ëÇϱ⠽±´Ù. A+B¶ó´Â Ç¥Çö½Ä ÀÚü°¡ A¿Í B¸¦ ´õÇÑ´Ù´Â °ÍÀ» Àß Ç¥ÇöÇÑ´Ù. ¹°·Ð Add¶ó´Â ¿µ¾î ´Ü¾îµµ ¹º°¡¸¦ ´õÇÑ´Ù´Â °ÍÀ» ÀǹÌÇϱâ´Â ÇÏÁö¸¸ + ¿¬»êÀÚº¸´Ù ½±Áö´Â ¾Ê´Ù. Add´Â ¿µ¾îÁö¸¸ +´Â ÃʵîÇлýµéµµ ¾Æ´Â ±âÈ£°¡ ¾Æ´Ñ°¡?

¼¼ ¹øÂ°·Î ¿¬»êÀÚ´Â ÇÔ¼ö¿Í´Â ´Þ¸® ¿ì¼± ¼øÀ§¿Í °áÇÕ ¹æÇâÀÇ °³³äÀÌ ÀÖ¾î °ýÈ£¸¦ ¾²Áö ¾Ê¾Æµµ ¿¬»ê ¼ø¼­°¡ ÀÚµ¿À¸·Î Àû¿ëµÇ¾î Æí¸®ÇÏ´Ù. ¾î¶² °´Ã¼ A¿Í BÀÇ °ö°ú C¿Í DÀÇ °öÀ» ´õÇØ E¿¡ ´ëÀÔÇÑ´Ù°í ÇØ º¸ÀÚ.

 

ÀÏ¹Ý ÇÔ¼ö : E=(A.Multi(B)).Add(C.Multi(D));

¿¬»êÀÚ ÇÔ¼ö : E=A*B+C*D;

 

¾î´ÀÂÊÀÌ ´õ º¸±â ÁÁ°í Àбâ ÁÁÀºÁö´Â ±»ÀÌ °­Á¶ÇÏÁö ¾Ê´õ¶óµµ ½±°Ô ÆÇ´ÜµÉ °ÍÀÌ´Ù. ÀÏ¹Ý ÇÔ¼ö´Â È£Ãâ ¼ø¼­¸¦ °ýÈ£·Î ºÐ¸íÈ÷ ¸í½ÃÇØ¾ß ÇϹǷΠ½ÄÀ» ÀÛ¼ºÇÏ´Â ÇÁ·Î±×·¡¸Óµµ °ñÄ¡ ¾ÆÇÁ°í ÀÌ ½ÄÀ» Àд »ç¶÷Àº ´õ °ñÄ¡ ¾ÆÇÁ´Ù. ÀÚ¿¬¾î·Î Ç¥ÇöÇϸé "A¿Í B¸¦ °öÇϰí C¿Í D¸¦ °öÇÏ°í µÎ °ö¼À °á°ú¸¦ ´õÇØ E¿¡ ´ëÀÔÇÑ´Ù"°¡ µÇ¾î ÈξÀ ´õ º¹ÀâÇØÁø´Ù. ÀÌ·± º¹ÀâÇÑ µ¿ÀÛÀ» E=A*B+C*D·Î °£·«ÇÏ°Ô Ç¥±âÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÇѸ¶µð·Î °¡µ¶¼ºÀÇ Â÷À̰¡ ¾öû³ª¸ç ÀÌ Â÷ÀÌ·Î ÀÎÇØ À¯Áö º¸¼ö ºñ¿ëÀÇ ±Ô¸ð°¡ ´Þ¶óÁø´Ù. ±×·¡¼­ C++Àº ¹®¹ýÀÌ º¹ÀâÇØÁö´Â ´ë°¡¸¦ Ä¡¸£´õ¶óµµ °´Ã¼¿¡ ´ëÇÑ ¿¬»êÀÚ ¿À¹ö·ÎµùÀ» Áö¿øÇÏ´Â °ÍÀÌ¸ç ¿ì¸®´Â À̰ÍÀ» ¾Ö½á ¹è¿ì°í Àû±ØÀûÀ¸·Î Ȱ¿ëÇØ¾ß ÇÑ´Ù.

¹°·Ð ÀÌ·± ¿¬»êÀÚ ÇÔ¼ö¸¦ ÀÏÀÏÀÌ Á¤ÀÇÇÑ´Ù´Â °ÍÀº »ó´çÈ÷ ¹ø°Å·Î¿î ÀÏÀÌ¸ç ¶Ç Á¤È®ÇÏ°Ô ÀÛ¼ºÇϱâ À§ÇØ ¾Ë¾Æ¾ß ÇÒ °Íµµ ¸¹´Ù. ÇÏÁö¸¸ OOPÀÇ Ã¶ÇÐÀº ¼Ò¼öÀÇ °´Ã¼ ÀÛ¼ºÀÚ¿¡°Ô Æí¸®ÇÔÀ» ÁÖ´Â °Íº¸´Ù ¹«¼öÈ÷ ¸¹Àº »ç¿ëÀÚµéÀ» ÆíÇÏ°Ô ÇÏ´Â ÂÊ¿¡ Ä¡ÁߵǾî ÀÖÀ½À» »ý°¢ÇØ º»´Ù¸é ¿¬»êÀÚ ¿À¹ö·ÎµùÀº ÁøÁ¤À¸·Î »ç¿ëÀÚ¸¦ À§ÇÑ ±â´ÉÀÓÀÌ ºÐ¸íÇÏ´Ù.