PascalÀ»
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
¹è°æÀÌ ±ÛÀÇ ¸ñÀûÀº PascalÀ» C++·Î º¯È¯ÇÏ´Â °úÁ¤À» º¸´Ù ½±°Ô ÀÍÈ÷°íÀÚ ÇÏ´Â µ¥ ÀÖ´Ù. ÀÌ Á¡¿¡ ÀÖ¾î¼ ÀÌ ±ÛÀº Pascal ¸í·É¾î¿Í C++ ¸í·É¾îÀÇ ´Ù¸¥ Á¡À» ¼³¸íÇØ ÁÙ °ÍÀÌ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¹è¿ì´Â °¡Àå ÁÁÀº ¹æ¹ýÀº Á÷Á¢ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÃÖ¼±ÀÌ´Ù. ÇÊÀÚ´Â ¿©·¯ºÐÀÌ Á÷Á¢ ¿¹Á¦¸¦ °¡Áö°í ½Ã°£À» µé¿© °øµéÀÌ´Â ¹æ¹ýÀÌ ÃÖ¼±À̶ó°í ±ÇÇÏ°í ½Í´Ù! ±×·¯ÇÑ ³ë·ÂÀÇ ½Ã°£µéÀº ÈξÀ ´õ °³³äÀ» º¸´Ù »¡¸® ÀÌÇØ½ÃŰ°í º¸´Ù ´É¼÷ÇÑ ÇÁ·Î±×·¡¸ÓÀÇ Áö¸§±æÀÌ µÉ °ÍÀ̱⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ÈξÀ µð¹ö±×µµ ½¬¿ï °ÍÀÌ´Ù! Çà¿îÀ» ºó´Ù! ÁÖ ÇÁ·Î±×·¥¸ðµç ÆÄ½ºÄ® ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ ½ÃÀÛÇÑ´Ù: Program Donothing; Begin C++ÀÇ ÁÖ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº ¹æ½ÄÀÌ´Ù: main() À§¿¡¼ ¾Æ¹«¸® ¸¹Àº ´Ù¸¥ ÇÔ¼ö°¡ Á¸ÀçÇÒÁö¶óµµ ±×°Íµé Áß¿¡¼ Çϳª´Â ¹Ýµå½Ã
mainÀ̶õ À̸§À» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÄÄÆÄÀÏ·¯´Â ¿¡·¯¸¦ ¹ß»ý½Ãų
°ÍÀÌ´Ù. main ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â ù ºÎºÐÀ» ¾Ë·Á ÁÖ´Â °÷ÀÌ´Ù. ¶óÀ̺귯¸®¿Í À¯Àú Á¤ÀÇ À¯´ÖÆÄ½ºÄ®¿¡¼, ¶óÀ̺귯¸®¿Í À¯´ÖÀ» Æ÷ÇÔ½ÃŰ´Â °ÍÀº "Uses" ¼½¼Ç¿¡¼ ÇÑ´Ù. Uses crt; Uses myunit; {À¯Àú Á¤ÀÇ À¯´Ö} C++¿¡¼´Â, #include ¸í·É¾î·Î ´ëÄ¡ÇÒ ¼ö ÀÖ´Ù. #include <iostream.h> #include "myunit.h" À¯Àú Á¤ÀÇ À¯´ÖÁÖÀ§¿¡ µû¿ÈÇ¥´Â Áß¿äÇÑ ¿ä¼ÒÀÌ´Ù. À̰ÍÀº ÄÄÆÄÀÏ·¯¿¡°Ô ÇöÀç µð·ºÅ丮¿¡¼ ±× ÆÄÀÏÀ» ãÀ¸¶ó´Â ¸í·ÉÀ» ÁØ´Ù. ÄÚµåÀÇ ºí¶ôÆÄ½ºÄ®¿¡¼: Begin C++: { ÅØ½ºÆ® ÇÁ¸°Æ®Çϰí ÀÔ·Â ¹Þ±âÇÁ¸°ÆÃ (Hello, world!)ÆÄ½ºÄ®¿¡¼ "write" ¸í·É¾î´Â C++¿¡¼´Â "cout"·Î ±³Ã¼µÉ ¼ö ÀÖ´Ù. write ('ÁÁÀº ÇÏ·ç µÇ¼¼¿ä'); writeln('From Ricky!'); writeln; C++¿¡¼´Â cout << "ÁÁÀº ÇÏ·ç µÇ¼¼¿ä"; cout << "From Ricky!" << endl; cout << endl; "endl" Àº ¶óÀÎÀÇ ³¡À» ¸»ÇÑ´Ù. ¹°·Ð ¶óÀÎÀÇ ³¡À» ¾Ë·ÁÁÖ´Â "\n"À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. Input( UNIX)"Readln" Àº "cin"À¸·Î ¹Ù²ð ¼ö ÀÖ´Ù. readln(x); to cin >> x; ÀԷ¹ޱâ À§ÇØ >>(angle brackets)À» »ç¿ëÇÑ´Ù. º¯¼ö ¼±¾ðÆÄ½ºÄ®¿¡¼, º¯¼öµÚ¿¡ ±× ŸÀÔ¸íÀ» ±â¼úÇÏ¸é µÈ´Ù. C++¿¡¼´Â, ÆÄ½ºÄ®°ú ¹Ý´ëÀÇ
¹æ¹ýÀ» ¾²¸é µÈ´Ù. ¶Ç ÇϳªÀÇ Â÷ÀÌÁ¡Àº Áß°£¿¡ colonÀÌ ¾ø´Ù:
ÆÁ°ú °æ°í
ÇÁ·Î½ÃÀú¿Í ÇÔ¼öÆÄ½ºÄ®ÀÇ ÇÁ·Î½ÃÀú´Â °ªÀ» ¹ÝȯÇÏÁö ¾Ê´Â´Ù. C++¿¡¼´Â void ÇÔ¼ö·Î À̰Ͱú ¶È°°ÀÌ ±¸ÇöÇÒ ¼ö ÀÖ´Ù:
ºñ·Ï ¾Æ¹«·± ÆÄ¶ó¹ÌÅͰ¡ ¾øÀ»Áö¶óµµ ()´Â ÇÔ¼ö¿¡¼ ¸Å¿ì Áß¿äÇÏ´Ù. ±×·¸Áö ¾ÊÀ¸¸é C++ Àº ÇÔ¼ö ´ë½Å¿¡ º¯¼ö·Î °£ÁÖÇÒ °ÍÀÌ´Ù. Parameter Àü´ÞÇϱâÆÄ¶ó¹ÌÅÍ´Â ÆÄ½ºÄ®¿¡¼Ã³·³ Àü´ÞµÈ´Ù.
ÂüÁ¶¿¡ ÀÇÇÑ Àü´Þ¸¸¾à¿¡ ÆÄ½ºÄ®¿¡¼ ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» º¯°æµÈ °ÍÀ» Àü´ÞÇϰíÀÚ ÇÒ ¶§ "var" ¶ó´Â
Ű¿öµå¸¦ »ç¿ëÇÏ¿© Àü´ÞÇÑ´Ù. ±×·¯³ª C++¿¡¼´Â, (&)±âÈ£¸¦ º¯¼ö¾Õ¿¡ »ç¿ëÇÏ¿©
¶È°°Àº ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù:
°ªÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö´ëºÎºÐÀº ¹«¾ùÀΰ¡¸¦ ¹ÝȯÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ°Ô µÈ´Ù. ÀÌ·± °æ¿ì¿¡ ´ÜÁö "void"´ë½Å ±×¿¡ ¸Â´Â ¹Ýȯ ŸÀÔÀ» Á¤ÀÇÇÏ¸é µÈ´Ù.
C++¿¡¼´Â °ªÀ» ¹ÝȯÇÒ ¶§ "return"À» »ç¿ëÇÏ¸é µÈ´Ù.
ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ¸¸¾à¿¡ ¿øÇÑ´Ù¸é ÇÑ Àå¼Ò¿¡ ¸ðµç ÇÔ¼ö¸¦ ¼±¾ðÇÏ°í ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ C++Àº °´Ã¼ ÁöÇâÇü ÇÁ·Î±×·¥À¸·Î ¼³°èµÇ¾ú´Ù. À̰ÍÀº ÇÔ¼ö ÇÁ·ÎÅäŸÀÔÀÇ ¿¹ÀÌ´Ù: int Baz (char x, int y, float z); À̰ÍÀº ÇÔ¼ö°¡ ½ÇÁ¦ÀûÀ¸·Î ±¸ÇöµÇ´Â ºÎºÐÀÌ´Ù: int Baz (char x, int y, float z) . . . } If, then, else±¸¹®ÀÌ °£´ÜÇÏ´Ù¸é
()ÀÌ ÀÖ´Â Áö "then"ÀÌ ÀÖ´Â Áö È®ÀÎÇÑ´Ù. ¸¸¾à¿¡ ±¸¹®ÀÌ ÇÑ ¸í·É¾î ÀÌ»óÀ̶ó¸é
°£´ÜÇÑ if, then, else ±¸¹®
Çϳª ÀÌ»óÀÇ ¸í·É¾î¸¦ °¡Áø If, then, else ±¸¹®
ÁßøµÈ if ±¸¹®
Assignment, equal, not equal, and, or, not
°æ°í: À§ÀÇ ±âÈ£¸¦ ÁÖÀDZí°Ô º¸½Ê½Ã¿À. ¸¸¾à µ¿µî¼º ºñ±³¿¡¼ =¸¸ »ç¿ëÇÏ¸é ¿¡·¯¸¦ ¹ÞÀ» °Í ÀÔ´Ï´Ù. Á¶½ÉÇϼ¼¿ä! Áõ°¡ ¿Í °¨¼ÒPascal ¿¡¼ C++ ·ÎÀÇ º¯È¯: inc(i); Àº i++; ++ ¿Í --µÚ¿¡ ¼¼¹ÌÄÝ·ÐÀº ÀØÁö ¸»ÀÚ. ·çÇÁ(¼øÈ¯)for ·çÇÁ
While ·çÇÁ
À§¿¡¼ C++ while{ }°ú { }whileÀÇ Â÷ÀÌÁ¡Àº { }whileÀº ÃÖ¼ÒÇÑ ÇÑ ¹øÀº ½ÇÇàÇÑ´Ù´Â °ÍÀÌ´Ù. Records ¿Í structures
¼¼¹ÌÄÝ·ÐÀ» Âï´Â °Í¿¡ ´ëÇØ ÀØÁö ¸»ÀÚ. ÁÖ¼®
C++ ÄÄÆÄÀÏ·¯´Â //ÈÄÀÇ ¹®Àå¿¡ ´ëÇØ¼´Â ¹«½ÃÇØ ¹ö¸°´Ù.(´Ü °°Àº ¶óÀο¡¼¸¸) ±×¸®°í. ¿©·¯ ÁÙÀÎ °æ¿ì /* ¿Í */¸¦ »ç¿ëÇÑ´Ù. Case ¹®°ú switch ¹®À̰ÍÀº ¿ì¸®¿¡°Ô »ó´çÇÑ ³ë·ÂÀ» °æ°¨½ÃÄÑ ÁØ´Ù.
C++ ±¸¹®¿¡¼´Â °¢ case ¹®ÀÇ ³¡¿¡ break°¡ ÀÖÀ½À» ÁÖÁöÇϱ⠹ٶõ´Ù. ¸¸¾à¿¡ break°¡ ¾ø´Ù¸é ÇÁ·Î±×·¥Àº switch ±¸¹® ¹ÛÀ¸·Î ³ª¿ÀÁú ¸øÇÑ´Ù. °á±¹ ´Ù¸¥ °æ¿ìµµ ½ÇÇàÇÏ°Ô µÈ´Ù. »ó¼öC++¿¡¼´Â »ó¼ö¸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀÌ µÎ °¡Áö°¡ ÀÖ´Ù. ù¹øÂ° ¹æ¹ýÀº Ű¿öµå "const."¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ°í µÎ¹øÂ° ¹æ¹ýÀº #define ±¸¹®À» »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.
º¯¼ö¿Í °°ÀÌ »ó¼ö ¼±¾ðÀº ÇÁ·Î±×·¥ÀÇ ÇÑ ¼½¼Ç¿¡¸¸ Á¦ÇѵÇÁö ¾Ê´Â´Ù. ÇÊ¿äÇÒ ¶§ Äڵ忡 ¾îµð´Â ³õ¿©Áú ¼ö ÀÖ´Ù. ³ª¸ÓÁöÀÌ ¿ÀÆÛ·¹ÀÌÅÍ´Â ±×´ÙÁö ¸¹ÀÌ »ç¿ëµÇÁö´Â ¾Ê´Â´Ù.
Recursion¼øÈ¯ È£Ãâ(C++ )Àº ÆÄ½ºÄ®°ú ¶È°°Àº ¹æ½ÄÀ¸·Î Á¦¾îµÈ´Ù.
Ä¿¸Çµå ¶óÀÎ ÀÎÀÚÄ¿¸Çµå ¶óÀÎ ÀÎÀÚ´Â main ÇÔ¼öÀÇ ¸Å°³º¯¼ö¸¦ ÅëÇØ Àü´ÞµÈ´Ù. Ä¿¸Çµå ¶óÀÎ ÀÎÀÚ¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½ÀÇ mainÀ» °¡Áú °ÍÀÌ´Ù. main(int argc, char* argv[]); argc ´Â UNIX Ä¿¸Çµå ÇÁ·ÒÇÁÆ®¿¡¼ ´Ù¸¥ ÀÎÀÚÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù. argv´Â actual ¸Å°³º¯¼öÀÇ ¹è¿À» À¯ÁöÇÑ´Ù. ¿¹¸¦ µé¸é:
¿°ÅÇü ŸÀÔ
µ¿Àû ÇÒ´ç
Allocating memory
Freeing memory
Classes¿Í structure¿¡¼ µ¥ÀÌÅÍ ¾×¼¼½ºÇϱâ¿ÀºêÁ÷Æ®¸¦ ÂüÁ¶ÇÏ´Â ¹æ½ÄÀº ÆÄ½ºÄ®¿¡¼¿Í ´Ù¸¥ °Ô ¾ø´Ù.
¸¸¾à¿¡ ¿ÀºêÁ÷Æ®°¡ Æ÷ÀÎÅÍ¿¡ ÀÇÇØ ÂüÁ¶µÈ´Ù¸é, Æ÷¸ËÀº Á¶±Ý ´Ù¸£´Ù.
|