É. Å. Ê.
ËÁÌÉÁÓ
ÃËÙÓÓÁ ÐÑÏÃÑÁÌÌÁÔÉÓÌÏÕ
PASCAL
É
ÁÈÁÍÁÓÉÏÓ Å. ÊÏÕÔÓÏÍÉÊÏËÁÓ
Ëáìßá, ÍïÝìâñéïò 1993
ÐÑÏËÏÃÏÓ Ïé ðáñïýóåò óçìåéþóåéò ãñÜöôçêáí ãéá íá ÷ñçóéìïðïéçèïýí ùò äéäáêôéêü âïÞèçìá óôï ìÜèçìá "ÃËÙÓÓÁ ÐÑÏÃÑÁÌÌÁÔÉÓÌÏÕ PASCAL I" ôçò åéäéêüôçôáò "Ðñïãñáììáôéóôþí - Âïçèþí Áíáëõôþí", ôïõ É . Å . Ê . Ëáìßáò. Óêïðüò ôïõò åßíáé íá åéóÜãïõí ôïí åêðáéäåõüìåíï óôéò áñ÷Ýò, ôéò Ýííïéåò êáé ôéò ôå÷íéêÝò ôïõ ÄïìçìÝíïõ Ðñïãñáììáôéóìïý, ìÝóá áðü ôçí ÷ñÞóç ôçò ãëþóóáò Pascal. ÖõóéêÜ äåí ðñïûðïèÝôïõí ôçí ãíþóç ïðïéáóäÞðïôå Üëëçò ãëþóóáò ðñïãñáììáôéóìïý. Oóïí áöïñÜ ôï ðåñéå÷üìåíï ôùí óçìåéþóåùí, êáëýðôåé Ýíá ìåãÜëï ìÝñïò ôçò èåùñßáò ôçò ãëþóóáò, áñ÷ßæïíôáò áðü ôï ÁëöÜâçôï êáé ôéò ÂáóéêÝò Åííïéåò êáé öôÜíïíôáò ìÝ÷ñé ôéò Äéáäéêáóßåò êáé ôéò ÓõíáñôÞóåéò, êáëýðôïíôáò ôïõò Âáóéêïýò Ôýðïõò ÄåäïìÝíùí, ôéò åíôïëÝò Åéóüäïõ/Åîüäïõ (Read, Write), ôéò åíôïëÝò ÅëÝã÷ïõ êáé ÅðáíÜëçøçò (If, For, While, Repeat) êáé áñêåôïýò Óýíèåôïõò Ôýðïõò ÄåäïìÝíùí (Array, Record, Set). Ç óõããñáöÞ ôùí óçìåéþóåùí Ýãéíå ôáõôü÷ñïíá ìå ôçí äéäáóêáëßá ôïõ áíôßóôïé÷ïõ ìáèÞìáôïò. Åßíáé ó÷åäüí óßãïõñï üôé Ý÷ïõí ëÜèç (ðéóôåýù êáé åëðßæù ìüíïí ïñèïãñáöéêÜ) êáé áôÝëåéåò. Äéïñèþóåéò ëáèþí êáé ðñïôÜóåéò âåëôßùóçò åßíáé ðÜíôá åõðñüóäåêôåò. Ëáìßá, ÍïÝìâñéïò 1993
Áè. Å. Êïõôóïíéêüëáò
Algorithms + Data Structures = Programs
Niklaus Wirth
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-1-
1. ȈȊȃȉȅȂǾ ǼǿȈǹīȍīǾ Ȉȉȅȃ ȆȇȅīȇǹȂȂǹȉǿȈȂȅ 1.1 ȆȇȅīȇǹȂȂǹȉǹ ǼȞĮ ʌȡȩȖȡĮµµĮ İȓȞĮȚ µȚĮ ĮțȠȜȠȣșȓĮ İȞIJȠȜȫȞ. ȂȚĮ ıȣȞIJĮȖȒ µĮȖİȚȡȚțȒȢ, µȚĮ ʌĮȡIJȚIJȠȪȡĮ µȠȣıȚțȒȢ țĮȚ ȑȞĮ ıȤȑįȚȠ ʌȜİȟȓµĮIJȠȢ, İȓȞĮȚ ȩȜĮ IJȠȣȢ ʌȡȠȖȡȐµµĮIJĮ. ȆȡȠȖȡȐµµĮIJĮ µİ ĮȣIJȒ IJȘȞ ȑȞȞȠȚĮ, ȣʌȒȡȤĮȞ ʌȠȜȪ ʌȡȚȞ İʌȚȞȠȘșȠȪȞ ȠȚ ǾȜİțIJȡȠȞȚțȠȓ ȊʌȠȜȠȖȚıIJȑȢ (Ǿ/Ȋ). ȆȡȚȞ ȜȠȚʌȩȞ ĮıȤȠȜȘșȠȪµİ ĮʌȠțȜİȚıIJȚțȐ µİ ʌȡȠȖȡȐµµĮIJĮ Ǿ/Ȋ, șĮ ȠȡȓıȠȣµİ µİȡȚțȠȪȢ ȖİȞȚțȠȪȢ ȩȡȠȣȢ țĮȚ șĮ µİȜİIJȒıȠȣµİ µİȡȚțȑȢ țȠȚȞȑȢ ȚįȚȩIJȘIJİȢ ʌȠȣ ȑȤȠȣȞ IJĮ ıȣıIJȒµĮIJĮ ʌȡȠȖȡĮµµĮIJȚıµȠȪ. ǼȞĮ ʌȡȩȖȡĮµµĮ ĮʌĮȚIJİȓ ȑȞĮ ıȣȖȖȡĮijȑĮ ȖȚĮ ȞĮ IJȠ ȖȡȐȥİȚ țĮȚ ȑȞĮȞ İʌİȟİȡȖĮıIJȒ ȖȚĮ ȞĮ ijȑȡİȚ İȚȢ ʌȑȡĮȢ IJȚȢ İȞIJȠȜȑȢ ʌȠȣ ʌİȡȚȑȤİȚ. Ǿ įȚĮįȚțĮıȓĮ țĮIJȐ IJȘȞ ȠʌȠȓĮ Ƞ İʌİȟİȡȖĮıIJȒȢ ijȑȡİȚ İȚȢ ʌȑȡĮȢ IJȚȢ İȞIJȠȜȑȢ, țĮȜİȓIJĮȚ İțIJȑȜİıȘ Ȓ IJȡȑȟȚµȠ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, İʌȓıȘȢ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ İțIJİȜİȓIJĮȚ țĮȜİȓIJĮȚ įȚİȡȖĮıȓĮ. ȂȚĮ ʌĮȡIJȚIJȠȪȡĮ µȠȣıȚțȒȢ İȓȞĮȚ ȑȞĮ ıȪȞȠȜȠ İȞIJȠȜȫȞ ȖȚĮ IJȘȞ İțIJȑȜİıȘ İȞȩȢ µȠȣıȚțȠȪ țȠµµĮIJȚȠȪ țĮȚ Ƞ µȠȣıȚțȩȢ ʌȠȣ İțIJİȜİȓ ĮȣIJȑȢ IJȚȢ İȞIJȠȜȑȢ, İȓȞĮȚ Ƞ İʌİȟİȡȖĮıIJȒȢ. Ǿ İțIJȑȜİıȘ µȚĮȢ ıȣȞIJĮȖȒȢ µĮȖİȚȡȚțȒȢ ȠȞȠµȐȗİIJĮȚ µĮȖİȓȡݵĮ țĮȚ Ƞ µȐȖİȚȡĮȢ İȓȞĮȚ Ƞ İʌİȟİȡȖĮıIJȒȢ. ȅȜĮ IJĮ ʌȡȠȖȡȐµµĮIJĮ ȑȤȠȣȞ µİȡȚțȐ țȠȚȞȐ ȤĮȡĮțIJȘȡȚıIJȚțȐ:
ȅȚ İȞIJȠȜȑȢ İțIJİȜȠȪȞIJĮȚ ıİȚȡȚĮțȐ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ įİȞ ȠȡȓıȠȣµİ ıĮijȫȢ țȐIJȚ ȐȜȜȠ, ĮȡȤȓȗȠȣµİ Įʌȩ IJȘȞ ʌȡȫIJȘ İȞIJȠȜȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ țĮȚ İțIJİȜȠȪµİ, țȐșİ İȞIJȠȜȒ µİ IJȘ ıİȚȡȐ ʌȠȣ ȣʌȐȡȤİȚ ıIJȠ ʌȡȩȖȡĮµµĮ, µȑȤȡȚ IJȘȞ IJİȜİȣIJĮȓĮ. ǹȣIJȩȢ Ƞ ȖİȞȚțȩȢ ıİȚȡȚĮțȩȢ IJȡȩʌȠȢ İțIJȑȜİıȘȢ µʌȠȡİȓ, ıİ ȠȡȚıµȑȞİȢ ʌİȡȚʌIJȫıİȚȢ, ȞĮ µȘȞ ȚıȤȪİȚ. īȚĮ ʌĮȡȐįİȚȖµĮ, ȩIJĮȞ ȑȞĮ IJȡĮȖȠȪįȚ ĮʌĮȚIJİȓ IJȘȞ İʌĮȞȐȜȘȥȘ µȚĮȢ ıIJȡȠijȒȢ ıİ ʌȠȜȜȐ ıȘµİȓĮ IJȠȣ, IJȩIJİ Ș ıIJȡȠijȒ ĮȣIJȒ įİȞ ȟĮȞĮȖȡȐijİIJĮȚ ĮȜȜȐ ıIJĮ ıȘµİȓĮ ʌȠȣ ʌȡȑʌİȚ ȞĮ İʌĮȞĮȜȘijșİȓ ȣʌȐȡȤİȚ µȚĮ ıȘµİȓȦıȘ ʌȠȣ ʌĮȡĮʌȑµʌİȚ IJȠȞ IJȡĮȖȠȣįȚıIJȒ ıIJȠ ıȘµİȓȠ ʌȠȣ İȓȞĮȚ ȖȡĮµµȑȞȘ țĮȚ ȩIJĮȞ IJİȜİȚȫıİȚ IJȘȞ İʌĮȞȐȜȘȥȒ IJȘȢ ıȣȞİȤȓȗİȚ IJȠ IJȡĮȖȠȪįȚ Įʌȩ İțİȓ ʌȠȣ ȣʌȒȡȤİ Ș ʌĮȡĮʌȠµʌȒ țĮȚ țȐIJȦ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-2-
Ǿ įȚİȡȖĮıȓĮ ȑȤİȚ ȑȞĮ ĮʌȠIJȑȜİıµĮ. ǹȣIJȩ µʌȠȡİȓ ȞĮ İȓȞĮȚ ȑȞĮ ijĮȖȘIJȩ Ȓ ȒȤȠȚ µȠȣıȚțȒȢ. ǹȞ IJȠ ʌȡȩȖȡĮµµĮ İȓȞĮȚ ȑȞĮ ʌȡȩȖȡĮµµĮ ȖȚĮ Ǿ/Ȋ, IJȩIJİ IJȠ ĮʌȠIJȑȜİıµĮ µʌȠȡİȓ ȞĮ İȓȞĮȚ ʌ.Ȥ. µȚĮ İțIJȪʌȦıȘ Įʌȩ ȑȞĮȞ İțIJȣʌȦIJȒ Ȓ µȚĮ ĮʌİȚțȩȞȚıȘ ıȣµȕȩȜȦȞ ıIJȘȞ ȠșȩȞȘ.
ȉȠ ʌȡȩȖȡĮµµĮ İʌİȞİȡȖİȓ ʌȐȞȦ ıİ ıȣȖțİțȡȚµȑȞĮ ĮȞIJȚțİȓµİȞĮ, ʌȠȣ ȠȞȠµȐȗȠȞIJĮȚ įİįȠµȑȞĮ (data). Ǿ İȞIJȠȜȒ "ıIJȪȥİ IJȠ ȜݵȩȞȚ" ȣʌȠșȑIJİȚ ȩIJȚ įȚĮșȑIJȠȣµİ ȜݵȩȞȚĮ ȖȚĮ ıIJȪȥȚµȠ.
ȂİȡȚțȑȢ ijȠȡȑȢ ȠȚ İȞIJȠȜȑȢ ʌȡȠȘȖȠȪȞIJĮȚ Įʌȩ µȚĮ įȒȜȦıȘ IJȦȞ ĮȞIJȚțİȚµȑȞȦȞ ʌȐȞȦ ıIJĮ ȠʌȠȓĮ șĮ İʌİȞİȡȖȒıȠȣȞ. ǹȣIJȩ ĮȜȘșİȪİȚ ȖȚĮ IJȚȢ ıȣȞIJĮȖȑȢ µĮȖİȚȡȚțȒȢ, ȠȚ ȠʌȠȓİȢ ıȣȞȒșȦȢ ʌȡȠȘȖȠȪȞIJĮȚ Įʌȩ IJȠȞ țĮIJȐȜȠȖȠ IJȦȞ ĮʌĮȡĮȓIJȘIJȦȞ ıȣıIJĮIJȚțȫȞ. Ȉİ ʌȠȜȜȑȢ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ, Ƞ ʌȡȠȖȡĮµµĮIJȚıIJȒȢ ʌȡȑʌİȚ ȞĮ įȘȜȫıİȚ IJĮ ȤĮȡĮțIJȘȡȚıIJȚțȐ IJȦȞ įİįȠµȑȞȦȞ ʌȡȚȞ ȖȡȐȥİȚ IJȚȢ İȞIJȠȜȑȢ ʌȠȣ ʌȡȩțİȚIJĮȚ ȞĮ İʌİȞİȡȖȒıȠȣȞ ʌȐȞȦ ı' ĮȣIJȐ.
ȂİȡȚțȑȢ ijȠȡȑȢ ȠȚ İȞIJȠȜȑȢ ĮʌĮȚIJȠȪȞ ȞĮ ʌĮȡșİȓ µȚĮ ĮʌȩijĮıȘ Įʌȩ IJȠȞ İʌİȟİȡȖĮıIJȒ ʌ.Ȥ. "ĮȞ ȤȡȘıȚµȠʌȠȚİȓIJİ ijȡȑıțȚİȢ ȞIJȠµȐIJİȢ, ȟİijȜȠȣįȓıIJİ IJȚȢ țĮȚ ʌȡȠıșȑıIJİ IJȚȢ ʌȡȚȞ Įʌȩ IJĮ țȡݵµȪįȚĮ, ĮȞ ȩµȦȢ ȤȡȘıȚµȠʌȠȚİȓIJİ ȞIJȠµȐIJĮ țȠȞıȑȡȕĮȢ, ʌȡȠıșȑıIJİ IJȘȞ IJİȜİȣIJĮȓĮ". ȈIJȘȞ ʌİȡȓʌIJȦıȘ ĮȣIJȒ, Ƞ ıȣȖȖȡĮijȑĮȢ IJȦȞ İȞIJȠȜȫȞ įİȞ Ȓȟİȡİ IJȚ İȓįȠȢ ȞIJȠµȐIJĮȢ șĮ ȑȤİȚ įȚĮșȑıȚµȠ Ƞ İʌİȟİȡȖĮıIJȒȢ, ȑIJıȚ șȑıʌȚıİ ȑȞĮ țȡȚIJȒȡȚȠ ʌȠȣ İʌȚIJȡȑʌİȚ ıIJȠȞ İʌİȟİȡȖĮıIJȒ ȞĮ țȐȞİȚ țȐʌȠȚĮ İȞȑȡȖİȚĮ ĮȞȐȜȠȖĮ µİ IJȠ İȓįȠȢ IJȘȢ ȞIJȠµȐIJĮȢ.
ȂʌȠȡİȓ ȞĮ İȓȞĮȚ ĮʌĮȡĮȓIJȘIJȠ, µȚĮ İȞIJȠȜȒ Ȓ µȚĮ ȠµȐįĮ İȞIJȠȜȫȞ, ȞĮ İțIJİȜİıșȠȪȞ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȚĮ ijȠȡȑȢ. ǹȣIJȩ ıȣµȕĮȓȞİȚ ıȣȤȞȐ ıIJȠ ʌȜȑȟȚµȠ țĮȚ ıIJȠ țȑȞIJȘµĮ ʌȠȣ İȓȞĮȚ Įʌȩ IJȘ ijȪıȘ IJȠȣȢ İʌĮȞĮȜȘʌIJȚțȑȢ įȚİȡȖĮıȓİȢ. ȅIJĮȞ µȚĮ İȞIJȠȜȒ ʌȡȩțİȚIJĮȚ ȞĮ İʌĮȞĮȜȘijșİȓ, ʌȡȑʌİȚ ȞĮ țĮșȠȡȚıșİȓ Ƞ ĮȡȚșµȩȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ. ǹȣIJȩ µʌȠȡİȓ ȞĮ ȖȓȞİȚ İȓIJİ ȐµİıĮ įȓȞȠȞIJĮȢ IJȠȞ ĮʌĮȚIJȠȪµİȞȠ ĮȡȚșµȩ IJȦȞ İʌĮȞĮȜȒȥİȦȞ ("ʌȜȑȟIJİ įȑțĮ ıİȚȡȑȢ"), İȓIJİ țĮșȠȡȓȗȠȞIJĮȢ ȑȞĮ țȡȚIJȒȡȚȠ ʌȠȣ İȟĮȡIJȐIJĮȚ Įʌȩ țĮIJȐıIJĮıȘ IJȘȢ įȚİȡȖĮıȓĮȢ ("ʌȜȑȟIJİ µȑȤȡȚ IJȠ IJȑȜȠȢ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
IJȘȞ IJȘȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-3-
ıİȚȡȐȢ"). ȀĮȚ ȠȚ įȣȠ IJȪʌȠȚ İʌĮȞȐȜȘȥȘȢ ıȣȞĮȞIJȚȠȪȞIJĮȚ ıȣȤȞȐ ıİ ʌȡȠȖȡȐµµĮIJĮ Ǿ/Ȋ. ȀĮșȫȢ ȠȚ ıȪȖȤȡȠȞȠȚ Ǿ/Ȋ µʌȠȡȠȪȞ ȞĮ İțIJİȜȑıȠȣȞ țȐµʌȠıĮ İțĮIJȠµµȪȡȚĮ İȞIJȠȜȑȢ ĮȞȐ įİȣIJİȡȩȜİʌIJȠ, ȑȞĮ ʌȡȩȖȡĮµµĮ ĮțȩµĮ țĮȚ ĮȞ ʌİȡȚȑȤİȚ İʌĮȞĮȜȒȥİȚȢ, įİ șĮ ȤȡİȚĮıșİȓ ȖȚĮ ȞĮ IJȡȑȟİȚ ʌĮȡĮʌȐȞȦ Įʌȩ ȑȞĮ țȜȐıµĮ IJȠȣ įİȣIJİȡȠȜȑʌIJȠȣ.
ȉȠ ʌȡȩȖȡĮµµĮ țĮșĮȣIJȩ İȓȞĮȚ µȚĮ ıIJĮIJȚțȒ ȠȞIJȩIJȘIJĮ ĮȜȜȐ Ș įȚİȡȖĮıȓĮ İțIJȑȜİıȘȢ IJȦȞ İȞIJȠȜȫȞ İȓȞĮȚ įȣȞĮµȚțȒ. ȅʌȦȢ įİ ıȣȖȤȑȠȣµİ IJȠ µȐȖİȚȡĮ µİ IJȘ ıȣȞIJĮȖȒ µĮȖİȚȡȚțȒȢ Ȓ IJȠȞ ʌȚĮȞȓıIJĮ µİ IJȘȞ ʌĮȡIJȚIJȠȪȡĮ, İȓȞĮȚ İȟȓıȠȣ ıȘµĮȞIJȚțȩ ȞĮ µȘ µʌİȡįİȪȠȣµİ ȑȞĮȞ İʌİȟİȡȖĮıIJȒ µİ ȑȞĮ ʌȡȩȖȡĮµµĮ.
ȉĮ ʌĮȡĮʌȐȞȦ ȤĮȡĮțIJȘȡȚıIJȚțȐ İȓȞĮȚ țȠȚȞȐ ıİ ȩȜĮ IJĮ ʌȡȠȖȡȐµµĮIJĮ, ıȣµʌİȡȚȜĮµȕĮȞȠµȑȞȦȞ țĮȚ IJȦȞ ʌȡȠȖȡĮµµȐIJȦȞ ȖȚĮ Ǿ/Ȋ. ǺȜȑʌȠȣµİ ȩIJȚ ȑȞĮ ʌȡȩȖȡĮµµĮ İȓȞĮȚ ȠȣıȚĮıIJȚțȐ ȑȞĮ µȑıȠ µİ IJȠ ȠʌȠȓȠ Ƞ ıȣȞIJȐțIJȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ İʌȚțȠȚȞȦȞİȓ µİ IJȠȞ İʌİȟİȡȖĮıIJȒ. Ǿ İʌȚțȠȚȞȦȞȓĮ ĮʌĮȚIJİȓ µȚĮ ȖȜȫııĮ İʌȚțȠȚȞȦȞȓĮȢ, ȩµȦȢ ĮȞ țĮȚ ȤȡȘıȚµȠʌȠȚȠȪµİ µȚĮ ijȣıȚțȒ ȖȜȫııĮ ȖȚĮ ȞĮ įȓȞȠȣµİ ĮȞİʌȓıȘµĮ IJȚȢ İȞIJȠȜȑȢ, ĮȡțİIJȐ ʌȡȠȖȡĮµµĮIJȚıIJȚțȐ ȑȡȖĮ ĮʌĮȚIJȠȪȞ µȚĮ İȚįȚțȒ ȖȜȫııĮ. ǼIJıȚ ȠȚ ıȣȞIJĮȖȑȢ µĮȖİȚȡȚțȒȢ ȤȡȘıȚµȠʌȠȚȠȪȞ µȚĮ İȚįȚțȒ įȚȐȜİțIJȠ IJȘȢ ijȣıȚțȒȢ ȖȜȫııĮȢ, İʌȓıȘȢ µȠȣıȚțȠȓ, ȖİȦȖȡȐijȠȚ țĮȚ ʌȜȑțIJȡȚİȢ ȑȤȠȣȞ İʌȚȞȠȒıİȚ İȞIJİȜȫȢ ʌȡȦIJȩIJȣʌİȢ ȖȜȫııİȢ ıIJȚȢ ȠʌȠȓİȢ İʌȚțȠȚȞȦȞȠȪȞ.
1.2 ȆȇȅīȇǹȂȂǹȉǿȈȂȅȈ ȊʌȐȡȤȠȣȞ ȐȞșȡȦʌȠȚ ĮțȩµĮ țĮȚ ıȒµİȡĮ ʌȠȣ ıIJȠ ȐțȠȣıµĮ IJȘȢ ȜȑȟȘȢ ǾȜİțIJȡȠȞȚțȩȢ ȊʌȠȜȠȖȚıIJȒȢ (Ǿ/Ȋ), ijĮȞIJȐȗȠȞIJĮȚ µȚĮ µȘȤĮȞȒ µİ țĮȜȫįȚĮ țĮȚ įȚȐijȠȡĮ ȘȜİțIJȡȠȞȚțȐ İȟĮȡIJȒµĮIJĮ, Ș ȠʌȠȓĮ µʌȠȡİȓ ȞĮ țȐȞİȚ ȑȞĮ ıȦȡȩ ĮʌȓıIJİȣIJĮ ʌȡȐȖµĮIJĮ țĮȚ IJȘȞ ȠʌȠȓĮ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȠȪȞ µȩȞȠȞ ȠȚ µȣȘµȑȞȠȚ țĮȚ ijȣıȚțȐ ʌȠȜȪȢ țȩıµȠȢ ȑȤİȚ ıȣȞįȣȐıİȚ IJȠȞ Ǿ/Ȋ µİ IJĮ ȘȜİțIJȡȠȞȚțȐ ʌĮȚȤȞȓįȚĮ. ȈȒµİȡĮ µİ IJȠȞ ȩȡȠ Ǿ/Ȋ, İȞȞȠȠȪµİ µȚĮ ȘȜİțIJȡȠȞȚțȒ ıȣıțİȣȒ Ș ȠʌȠȓĮ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ıİ ȑȞĮ İȣȡȪ ijȐıµĮ İijĮȡµȠȖȫȞ, įȘȜĮįȒ Įʌȩ IJȠ ʌĮȓȟȚµȠ ʌĮȚȤȞȚįȚȫȞ µȑȤȡȚ IJȘȞ ʌĮȡĮțȠȜȠȪșȘıȘ İȞȩȢ ĮȡȡȫıIJȠȣ ıİ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-4-
µȚĮ µȠȞȐįĮ İȞIJĮIJȚțȒȢ șİȡĮʌİȓĮȢ țĮȚ IJȠȞ ȑȜİȖȤȠ ʌIJȒıȘȢ İȞȩȢ įȚĮıIJȘµȠʌȜȠȓȠȣ. ȉȠ İȡȫIJȘµĮ ȩµȦȢ İȓȞĮȚ, ʌȫȢ İȓȞĮȚ įȣȞĮIJȩȞ ĮȣIJȩ IJȠ ıȣȞȠșȪȜİȣµĮ ʌȜĮıIJȚțȠȪ, µİIJȐȜȜȠȣ țĮȚ ȖȣĮȜȚȠȪ ȞĮ İțIJİȜİȓ ʌȡȐȟİȚȢ, ȞĮ țȐȞİȚ ıȣȖțȡȓıİȚȢ, ȞĮ ʌȡĮȖµĮIJȠʌȠȚİȓ İȜȑȖȤȠȣȢ țĮȚ ȞĮ İțIJİȜİȓ µİ ȣʌȠįİȚȖµĮIJȚțȒ ȣʌĮțȠȒ țĮȚ ĮțȡȓȕİȚĮ IJȚȢ įȚĮIJĮȖȑȢ µĮȢ. Ǿ ĮʌȐȞIJȘıȘ İȓȞĮȚ ʌȡȠȖȡĮµµĮIJȚıµȩ.
ȩIJȚ
ĮȣIJȩ
µʌȠȡİȓ
ȞĮ
ȖȓȞİȚ
µİ
IJȠȞ
ȉȚ ıȘµĮȓȞİȚ ȩµȦȢ ĮȣIJȒ Ș ȜȑȟȘ; ȂİȡȚțȠȓ ȓıȦȢ ʌȚıIJİȪȠȣȞ ȩIJȚ Ƞ ʌȡȠȖȡĮµµĮIJȚıµȩȢ İȓȞĮȚ µȚĮ ıȪȞșİIJȘ, µȣıIJȘȡȚȫįȘȢ țĮȚ įĮȚįĮȜȫįȘȢ įȚĮįȚțĮıȓĮ, IJȘȞ ȠʌȠȓĮ µȩȞȠ µİȡȚțȠȓ İȚįȚțȠȓ Ȓ ȚįȚȠijȣİȓȢ ȐȞșȡȦʌȠȚ µʌȠȡȠȪȞ ȞĮ İʌȚIJİȜȑıȠȣȞ. ȈIJȘȞ ʌȡĮȖµĮIJȚțȩIJȘIJĮ Ƞ ʌȡȠȖȡĮµµĮIJȚıµȩȢ İȓȞĮȚ µȚĮ įȚĮįȚțĮıȓĮ ʌȠȣ ĮʌȠIJİȜİȓIJĮȚ Įʌȩ țĮșȠȡȚıµȑȞĮ ıIJȐįȚĮ, ʌȠȣ IJİȜȚțȩ ıțȠʌȩ ȑȤȠȣȞ IJȠ µİIJĮıȤȘµĮIJȚıµȩ İȞȩȢ ʌȡȠȕȜȒµĮIJȠȢ țĮȚ IJȘȢ µİșȩįȠȣ ȜȪıȘȢ IJȠȣ, ıİ µȚĮ IJȑIJȠȚĮ µȠȡijȒ ʌȠȣ ȞĮ İȓȞĮȚ ȐµİıĮ țĮIJĮȞȠȘIJȒ țĮȚ ĮʌȠįİțIJȒ Įʌȩ IJȠȞ Ǿ/Ȋ. ȉȠ țȐșİ ıIJȐįȚȠ IJȠȣ ʌȡȠȖȡĮµµĮIJȚıµȠȪ İȓȞĮȚ İȟȓıȠȣ ȗȦIJȚțȩ µİ ȩȜĮ IJĮ ȣʌȩȜȠȚʌĮ țĮȚ ʌȡȑʌİȚ ȞĮ ȠȜȠțȜȘȡȫȞİIJĮȚ µİ İʌȚIJȣȤȓĮ, ʌȡȚȞ ĮȡȤȓıİȚ IJȠ İʌȩµİȞȩ IJȠȣ. ǹijȠȪ ȜȠȚʌȩȞ ȣʌȐȡȤİȚ țȐʌȠȚĮ µİșȠįȠȜȠȖȓĮ ʌȡȠȖȡĮµµĮIJȚıµȠȪ țĮȚ įİ ıIJȘȡȚȗȩµĮıIJİ µȩȞȠ ıIJȚȢ ݵʌȞİȪıİȚȢ IJȘȢ ıIJȚȖµȒȢ, µʌȠȡȠȪµİ ȞĮ ʌȠȪµİ ȩIJȚ Ƞ ʌȡȠȖȡĮµµĮIJȚıµȩȢ İȓȞĮȚ ʌİȡȚııȩIJİȡȠ İʌȚıIJȒµȘ ʌĮȡȐ IJȑȤȞȘ. ȉĮ țȣȡȚȩIJİȡĮ ıIJȐįȚĮ ʌİȡȚȜȘʌIJȚțȐ IJĮ ʌĮȡĮțȐIJȦ:
IJȠȣ
ʌȡȠȖȡĮµµĮIJȚıµȠȪ
İȓȞĮȚ,
ʌȠȜȪ
1. Ǿ ĮȞĮȖȞȫȡȚıȘ, Ƞ ȠȡȚıµȩȢ țĮȚ Ƞ țĮșȠȡȚıµȩȢ IJȦȞ ʌȡȠįȚĮȖȡĮijȫȞ IJȠȣ ʌȡȠȕȜȒµĮIJȠȢ. 2. ȅ İȞIJȠʌȚıµȩȢ IJȦȞ ȤȡȒıȚµȦȞ ȠȡȚıµȑȞȦȞ ıIJȠȚȤİȓȦȞ. 3. Ǿ ıțȚĮȖȡȐijȘıȘ IJȘȢ ȜȪıȘȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
İȞȞȠȚȫȞ
țĮȚ
Ș
ĮʌȜȠʌȠȓȘıȘ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-5-
4. Ǿ İʌȚȜȠȖȒ țĮȚ ʌİȡȚȖȡĮijȒ IJȠȣ ĮȜȖȠȡȓșµȠȣ. (ǹȜȖȩȡȚșµȠȢ ȜȑȖİIJĮȚ Ș ĮʌȜȒ țĮȚ ʌİʌİȡĮıµȑȞȘ ıİȚȡȐ įȚĮįȠȤȚțȫȞ ȕȘµȐIJȦȞ ʌȠȣ ĮʌĮȚIJȠȪȞIJĮȚ ȖȚĮ IJȘ ȜȪıȘ İȞȩȢ ʌȡȠȕȜȒµĮIJȠȢ). 5. Ǿ İʌȚȜȠȖȒ IJȘȢ ȖȜȫııĮȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ țĮȚ Ș țȦįȚțȠʌȠȓȘıȘ IJȠȣ ĮȜȖȠȡȓșµȠȣ ıİ ʌȡȩȖȡĮµµĮ. 6. ȅ ȑȜİȖȤȠȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ĮȞȓȤȞİȣıȘ IJȦȞ ȜĮșȫȞ.
țĮȚ
IJȦȞ
ĮʌȠIJİȜİıµȐIJȦȞ,
Ș
7. Ǿ IJİțµȘȡȓȦıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ.
1.3 ȂǼȉǹĭȇǹȈǾ Ȁǹǿ ǼȀȉǼȁǼȈǾ ȆȇȅīȇǹȂȂǹȉȅȈ ȉĮ ʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȖȡȐijȠȞIJĮȚ ıİ µȚĮ ȖȜȫııĮ ʌȡȠȖȡĮµµĮIJȚıµȠȪ İȓȞĮȚ µȚĮ ıİȚȡȐ Įʌȩ İȞIJȠȜȑȢ, IJĮ ȠȞȩµĮIJĮ IJȦȞ ȠʌȠȓȦȞ İȓȞĮȚ ȑIJıȚ įȚĮȜİȖµȑȞĮ ȫıIJİ ȞĮ ijĮȞİȡȫȞȠȣȞ IJȘȞ İȞȑȡȖİȚĮ IJȘȢ İȞIJȠȜȒȢ, ʌ.Ȥ. ıIJȘȞ Pascal Ș İȞIJȠȜȒ ʌȠȣ ȖȡȐijİȚ IJȘȞ IJȚµȒ µȚĮȢ µİIJĮȕȜȘIJȒȢ X ıIJȘȞ ȠșȩȞȘ İȓȞĮȚ Ș Write(X), İȞȫ ĮȣIJȒ ʌȠȣ įȚĮȕȐȗİȚ Įʌȩ IJȘȞ ȠșȩȞȘ IJȘȞ IJȚµȒ ȖȚĮ țȐʌȠȚĮ µİIJĮȕȜȘIJȒ Ȋ, İȓȞĮȚ Ș Read(Y). ǹȣIJȑȢ ȠȚ ȖȜȫııİȢ ȠȞȠµȐȗȠȞIJĮȚ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ ȣȥȘȜȠȪ İʌȚʌȑįȠȣ (High level programming languages) țĮȚ µĮȢ įȓȞȠȣȞ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ ȖȡȐȥȠȣµİ IJȠȣȢ ĮȜȖȠȡȓșµȠȣȢ µĮȢ µİ IJȡȩʌȠ ʌȚȠ "ijȚȜȚțȩ", ʌȚȠ ȠȚțİȓȠ ıIJȠȞ ȐȞșȡȦʌȠ. ȂȠȚȐȗȠȣȞ, ȜȚȖȩIJİȡȠ Ȓ ʌİȡȚııȩIJİȡȠ, µİ IJȚȢ ĮȞșȡȫʌȚȞİȢ ȖȜȫııİȢ (ıȣȞȒșȦȢ IJĮ ĮȖȖȜȚțȐ) țĮȚ ȑȤȠȣȞ ıȤȑıȘ µİ IJĮ ĮȞșȡȫʌȚȞĮ ʌȡȠȕȜȒµĮIJĮ țĮȚ IJȚȢ µİșȩįȠȣȢ ʌȠȣ ȑȤȠȣµİ ȖȚĮ ȞĮ ȜȪȞȠȣµİ. ĭȣıȚțȐ Ƞ Ǿ/Ȋ įİȞ "țĮIJĮȜĮȕĮȓȞİȚ" ĮȖȖȜȚțȐ, IJȩIJİ ʌȫȢ İțIJİȜİȓ IJȚȢ İȞIJȠȜȑȢ µĮȢ ʌȠȣ İȓȞĮȚ ȖȡĮµµȑȞİȢ ı'ĮȣIJȒ IJȘ ȖȜȫııĮ; ȀȐʌȠȚȠȢ șĮ ʌȡȑʌİȚ ȞĮ IJȠȣ IJȚȢ µİIJĮijȡȐȗİȚ ıIJȘ µȩȞȘ ȖȜȫııĮ ʌȠȣ țĮIJĮȜĮȕĮȓȞİȚ Ƞ Ǿ/Ȋ, ıIJȘ ȖȜȫııĮ µȘȤĮȞȒȢ. ȉȘȞ İȡȖĮıȓĮ ĮȣIJȒ țȐȞȠȣȞ țĮIJȐȜȜȘȜĮ µİIJĮijȡĮıIJȚțȐ ʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȜȑȖȠȞIJĮȚ µİIJĮijȡĮıIJȑȢ (Compilers). O compiler ȜȠȚʌȩȞ İȓȞĮȚ ȑȞĮ µİIJĮijȡĮıIJȚțȩ ʌȡȩȖȡĮµµĮ ʌȠȣ įȚĮȕȐȗİȚ ȑȞĮ ʌȡȩȖȡĮµµĮ ȖȡĮµµȑȞȠ ıİ µȚĮ ȖȜȫııĮ ȣȥȘȜȠȪ İʌȚʌȑįȠȣ (ʌȘȖĮȓȠ ʌȡȩȖȡĮµµĮ,- source program) ȩʌȦȢ İȓȞĮȚ Ș Pascal Ș
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-6-
Cobol ț.Į, țĮȚ IJȠ µİIJĮijȡȐȗİȚ ıİ ȖȜȫııĮ µȘȤĮȞȒȢ. ȉȠ µİIJĮijȡĮıµȑȞȠ ıİ ȖȜȫııĮ µȘȤĮȞȒȢ ʌȡȩȖȡĮµµĮ ȜȑȖİIJĮȚ İțIJİȜȑıȚµȠ Ȓ ĮȞIJȚțİȓµİȞȠ ʌȡȩȖȡĮµµĮ (object program). ȉȠ ĮȞIJȚțİȓµİȞȠ ʌȡȩȖȡĮµµĮ İȓȞĮȚ ʌȜȑȠȞ ıİ IJȑIJȠȚĮ µȠȡijȒ ʌȠȣ µʌȠȡİȓ ȞĮ İțIJİȜİıșİȓ Įʌȩ IJȠȞ Ǿ/Ȋ. ĭȣıȚțȐ
ȩʌȦȢ
ıİ
țȐșİ
ijȣıȚțȒ
ȖȜȫııĮ
ȣʌȐȡȤȠȣȞ
țĮȞȩȞİȢ (ȠȡșȠȖȡĮijȚțȠȓ, ıȣȞIJĮțIJȚțȠȓ ț.Į.) ʌȠȣ IJȘȡȠȪȞIJĮȚ, ĮȞIJȓıIJȠȚȤȠȚ țĮȞȩȞİȢ ȣʌȐȡȤȠȣȞ țĮȚ ıİ ʌȡȠȖȡĮµµĮIJȚıµȠȪ.
ȠȡȚıµȑȞȠȚ ʌȡȑʌİȚ ȞĮ µȚĮ ȖȜȫııĮ
Ǿ ʌĮȡĮȖȦȖȒ ĮȞIJȚțİȚµȑȞȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȖȓȞİIJĮȚ µȩȞȠ ıIJȘ ʌİȡȓʌIJȦıȘ ʌȠȣ IJȠ ʌȘȖĮȓȠ ʌȡȩȖȡĮµµĮ įİȞ ʌİȡȚȑȤİȚ ĮıȐijİȚİȢ, ȖȚĮ IJȠ µİIJĮijȡĮıIJȒ, ĮıȣȞIJĮȟȓİȢ țĮȚ ȖİȞȚțȐ IJȘȡİȓ ȩȜȠȣȢ IJȠȣȢ țĮȞȩȞİȢ IJȘȢ ȖȜȫııĮȢ ıIJȘȞ ȠʌȠȓĮ ȖȡȐijIJȘțİ. ǹȞ ȩµȦȢ ȣʌȐȡȤȠȣȞ IJȑIJȠȚĮ ȜȐșȘ, ʌȡȐȖµĮ ʌȠȣ ıȣµȕĮȓȞİȚ ĮȡțİIJȐ ıȣȤȞȐ, Ƞ µİIJĮijȡĮıIJȒȢ IJĮ İʌȚıȘµĮȓȞİȚ, įȓȞȠȞIJĮȢ IJĮȣIJȩȤȡȠȞĮ țĮIJȐȜȜȘȜĮ įȚĮȖȞȦıIJȚțȐ µȘȞȪµĮIJĮ țĮȚ ȑIJıȚ µĮȢ ȕȠȘșȐİȚ ȞĮ IJĮ įȚȠȡșȫıȠȣµİ. ȊʌȐȡȤȠȣȞ IJȡȓĮ ıȘµĮȞIJȚțȐ İȓįȘ ȜĮșȫȞ ʌȡȠȖȡĮµµĮIJȚıµȠȪ: ȁȐșȘ IJĮ ȠʌȠȓĮ ĮȞȚȤȞİȪȠȞIJĮȚ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ µİIJȐijȡĮıȘȢ. ǹȣIJȐ İȓȞĮȚ ıȣȞIJĮțIJȚțȐ ȜȐșȘ, ʌĮȡĮȕȚȐıİȚȢ IJȠȣ ıȣȞIJĮțIJȚțȠȪ IJȘȢ ȖȜȫııĮȢ țĮȚ ȜȑȖȠȞIJĮȚ ȜȐșȘ țĮIJȐ IJȠ ȤȡȩȞȠ IJȘȢ µİIJȐijȡĮıȘȢ (compile-time errors). ȁȐșȘ IJĮ ȠʌȠȓĮ ĮȞȚȤȞİȪȠȞIJĮȚ țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ (IJȡİȟȓµĮIJȠȢ) IJȠȣ ĮȞIJȚțİȚµȑȞȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. Ȇ.Ȥ. ĮȞ İțIJİȜȑıȠȣµİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȕȡȓıțİȚ IJȘȞ IJİIJȡĮȖȦȞȚțȒ ȡȓȗĮ İȞȩȢ ĮȡȚșµȠȪ ȋ țĮȚ įȫıȠȣµİ ȦȢ IJȚµȒ ıIJȠ ȋ ȑȞĮȞ ĮȡȞȘIJȚțȩ ĮȡȚșµȩ, IJȩIJİ IJȠ ʌȡȩȖȡĮµµĮ șĮ ĮʌȠIJȪȤİȚ. ǹȣIJȐ IJĮ ȜȐșȘ ȜȑȖȠȞIJĮȚ ȜȐșȘ țĮIJȐ IJȠ ȤȡȩȞȠ IJȠȣ IJȡİȟȓµĮIJȠȢ (run-time errors). ȊʌȐȡȤȠȣȞ İʌȓıȘȢ ȜȐșȘ IJĮ ȠʌȠȓĮ įİȞ ĮȞȚȤȞİȪȠȞIJĮȚ Įʌȩ IJȠȞ Ǿ/Ȋ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ µİIJȐijȡĮıȘȢ Ȓ IJȠȣ IJȡİȟȓµĮIJȠȢ. ȅʌȦȢ șĮ įȠȪµİ ıİ ʌĮȡĮțȐIJȦ țİijȐȜĮȚȠ Ș ıȣȞȐȡIJȘıȘ Sqr(X) IJȘȢ Pascal įȓȞİȚ IJȠ IJİIJȡȐȖȦȞȠ IJȠȣ ȋ, İȞȫ Ș Sqrt(X) įȓȞİȚ IJȘȞ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-7-
IJİIJȡĮȖȦȞȚțȒ ȡȓȗĮ IJȠȣ ȋ. ǹȞ ı'ȑȞĮ ʌȡȩȖȡĮµµĮ IJȠ ȠʌȠȓȠ șȑȜȠȣµİ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȠ IJİIJȡȐȖȦȞȠ İȞȩȢ ĮȡȚșµȠȪ, ȖȡȐȥȠȣµİ Sqrt(X) ĮȞIJȓ ȖȚĮ Sqr(X), IJȩIJİ IJȠ ʌȡȩȖȡĮµµĮ șĮ µİIJĮijȡĮıIJİȓ țĮȚ șĮ IJȡȑȟİȚ İʌȚIJȣȤȫȢ, ĮȜȜȐ șĮ IJȣʌȫıİȚ IJȠ ȋ țȚ ȩȤȚ IJȠ ȋ2 ǹȞ Ș µİIJȐijȡĮıȘ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ IJİȜİȚȫıİȚ µİ İʌȚIJȣȤȓĮ, µʌȠȡİȓ ȞĮ ȑȤȠȣµİ ȜȐșȠȢ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȘȢ țĮȚ IJȩIJİ șĮ ʌȐȡȠȣµİ ȑȞĮ įȚĮijȠȡİIJȚțȩ İȓįȠȢ įȚĮȖȞȦıIJȚțȠȪ µȘȞȪµĮIJȠȢ. ǹȞ Ș µİIJȐijȡĮıȘ IJİȜİȚȫıİȚ µİ İʌȚIJȣȤȓĮ țĮȚ IJȠ ʌȡȩȖȡĮµµĮ IJȡȑȟİȚ µİ İʌȚIJȣȤȓĮ, șĮ ʌȐȡȠȣµİ IJĮ ĮȞĮµİȞȩµİȞĮ ĮʌȠIJİȜȑıµĮIJĮ, İțIJȩȢ ĮȞ IJȠ ʌȡȩȖȡĮµµĮ ʌİȡȚȑȤİȚ ȜȐșȘ IJȘȢ IJȡȓIJȘȢ ʌİȡȓʌIJȦıȘȢ. ȉĮ ȜȐșȘ įİȞ İȓȞĮȚ ĮʌĮȡĮȓIJȘIJȠ ȞĮ ıȣµȕĮȓȞȠȣȞ ıIJȠ ʌȡȩȖȡĮµµĮ, µʌȠȡİȓ ȞĮ ıȣµȕĮȓȞȠȣȞ țĮȚ ıIJĮ įİįȠµȑȞĮ. ǹȞ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ IJȠ ʌȡȩȖȡĮµµĮ ʌȠȣ ȣʌȠȜȠȖȓȗİȚ IJİIJȡĮȖȦȞȚțȑȢ ȡȓȗİȢ ȖȚĮ ȞĮ 5 țĮȚ țĮIJȐ ȜȐșȠȢ ʌȜȘțIJȡȠȜȠȖȒıȠȣµİ ȦȢ IJȚµȒ ȣʌȠȜȠȖȓıȠȣµİ IJȘȞ ıIJȠ ȋ IJȠȞ ĮȡȚșµȩ 6 IJȩIJİ ijȣıȚțȐ, șĮ ʌȐȡȠȣµİ µȚĮ ȜȐșȠȢ (µȘ ĮȞĮµİȞȩµİȞȘ) ĮʌȐȞIJȘıȘ. ǹȣIJȒ İȓȞĮȚ µȚĮ ʌİȡȓʌIJȦıȘ ȜȐșȠȣȢ IJȦȞ įİįȠµȑȞȦȞ İȚıȩįȠȣ țĮȚ İȓȞĮȚ ijĮȞİȡȩ ȩIJȚ įİȞ ȣʌȐȡȤİȚ IJȡȩʌȠȢ İȞIJȠʌȚıµȠȪ ĮȣIJȠȪ IJȠȣ ȜȐșȠȣȢ Įʌȩ IJȠ µİIJĮijȡĮıIJȚțȩ ʌȡȩȖȡĮµµĮ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-8-
2. ǼǿȈǹīȍīǾ ȈȉǾȃ PASCAL 2.1 īǼȃǿȀǹ Ǿ ȖȜȫııĮ Pascal ıȤİįȚȐıIJȘțİ Įʌȩ IJȠȞ Niklaus Wirth, ĮȡȤȚțȐ ıĮȞ İȡȖĮȜİȓȠ ȖȚĮ IJȘ įȚįĮıțĮȜȓĮ IJȠȣ ʌȡȠȖȡĮµµĮIJȚıµȠȪ. ǼȓȞĮȚ "ʌĮȚįȓ" IJȘȢ ȖȜȫııĮȢ ALGOL țĮȚ ijȚȜȠįȩȟȘıİ ȞĮ IJȘȞ ĮȞIJȚțĮIJĮıIJȒıİȚ țĮȚ İʌȓıȘµĮ. ǼȤİȚ įȣȞĮIJȩIJȘIJİȢ ʌȠȣ įȚİȣțȠȜȪȞȠȣȞ IJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ, ĮʌȠIJİȜȑıµĮIJĮ IJȘȢ įȠȣȜİȚȐȢ IJȦȞ Wirth țĮȚ Hoare. H Pascal ʌĮȡȠȣıȚȐıIJȘțİ Įʌȩ IJȠȞ Wirth IJȠ 1971, Ƞ ȠʌȠȓȠȢ IJȘȢ ȑįȦıİ țĮȚ IJȠ ȩȞȠµĮ IJȠȣ īȐȜȜȠȣ ȂĮșȘµĮIJȚțȠȪ IJȠȣ 17Ƞȣ ĮȚȫȞĮ Blaise Pascal. ȉȠ 1975 İțįȩșȘțİ Ș ĮȞĮșİȦȡȘµȑȞȘ ʌİȡȚȖȡĮijȒ IJȘȢ ȖȜȫııĮȢ. ȉȠ 1973 įȩșȘțİ Ƞ ĮȟȚȦµĮIJȚțȩȢ ȠȡȚıµȩȢ IJȘȢ ȖȜȫııĮȢ. ȀȐIJȚ IJȑIJȠȚȠ įİȞ ȣʌȐȡȤİȚ ȖȚĮ ʌȠȜȜȑȢ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ. ȈIJĮ IJȑȜȘ IJȘȢ įİțĮİIJȓĮȢ IJȠȣ '70 ݵijĮȞȓıIJȘțĮȞ ȠȚ ʌȡȫIJİȢ ȣȜȠʌȠȚȒıİȚȢ IJȘȢ Pascal ıİ µȚțȡȠȨʌȠȜȠȖȚıIJȑȢ, µİ ıʌȠȣįĮȚȩIJİȡȘ IJȘȞ UCSD Pascal. ǼȞĮ ȐȜȜȠ ʌȡȠȧȩȞ ʌȠȣ ȕȠȒșȘıİ ıIJȘ įȚȐįȠıȘ IJȘȢ Pascal ȒIJĮȞ Ș Turbo Pascal (T.P). H Turbo Pascal İȓȞĮȚ ȑȞĮ ʌȡȠȧȩȞ (țĮȚ ıȒµĮ țĮIJĮIJİșȑȞ) IJȘȢ İIJĮȚȡİȓĮȢ Borland International Inc. ǼȓȞĮȚ ȑȞĮ ȠȜȠțȜȘȡȦµȑȞȠ ʌİȡȚȕȐȜȜȠȞ ȖȚĮ IJȘȞ ĮȞȐʌIJȣȟȘ ʌȡȠȖȡĮµµȐIJȦȞ ıİ Pascal, ȑȞĮ ʌİȡȚȕȐȜȜȠȞ ʌĮȡĮȖȦȖȒȢ ʌȡȠȖȡĮµµȐIJȦȞ ȣȥȘȜȒȢ ʌȠȚȩIJȘIJĮȢ. ȈIJȚȢ ĮȡȤȑȢ IJȘȢ įİțĮİIJȓĮȢ IJȠȣ '80, µİ IJȘȞ ȣȥȘȜȒ ʌȠȚȩIJȘIJȐ IJȘȢ țĮȚ IJȘ ȤĮµȘȜȒ IJȚµȒ IJȘȢ, İʌȚȕȜȒșȘțİ ıIJȘȞ ĮȖȠȡȐ țĮȚ ȑȖȚȞİ ȑȞĮ de facto ʌȡȩIJȣʌȠ IJȘȢ ȖȜȫııĮȢ. Ǿ ʌȡȩIJȣʌȘ Pascal (Standard Pascal) țĮȚ IJĮ ȕȚȕȜȓĮ ʌȠȣ IJȘȞ ʌİȡȚȖȡȐijȠȣȞ, țĮșȡİijIJȓȗȠȣȞ IJȘȞ IJİȤȞȠȜȠȖȓĮ ʌȠȣ ȖȑȞȞȘıİ IJȘȞ Pascal. Ǿ ȖȜȫııĮ ĮȞĮʌIJȪȤșȘțİ ıIJȠȞ țȩıµȠ IJȦȞ ȆĮȞİʌȚıIJȘµȓȦȞ, ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪıİ µİȖȐȜȠȣȢ, țȠȚȞȩȤȡȘıIJȠȣȢ Ǿ/Ȋ, ʌȡȠıĮȞĮIJȠȜȚıµȑȞȠȣȢ ıIJȘ µĮȗȚțȒ (batch) İʌİȟİȡȖĮıȓĮ. H ĮʌĮȡȐµȚȜȜȘ ȚıȤȪȢ țĮȚ Ș IJİȡȐıIJȚĮ įȚȐįȠıȘ IJȦȞ ʌȡȠıȦʌȚțȫȞ ȘȜİțIJȡȠȞȚțȫȞ ȣʌȠȜȠȖȚıIJȫȞ (Personal Computers - PC), șȡȣµµȐIJȚıİ ʌȠȜȜȠȪȢ Įʌȩ IJȠȣȢ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-9-
ʌİȡȚȠȡȚıµȠȪȢ IJȦȞ ʌȡȠȘȖȠȣµȑȞȦȞ Pascal țĮȚ İʌȑIJȡİȥİ IJȚȢ ȤȦȡȓȢ ʌȡȠȘȖȠȪµİȞȠ țĮȚȞȠIJȠµȓİȢ IJȘȢ Turbo. ǼȞȫ Ș ʌȡȩIJȣʌȘ Pascal İȓȤİ ʌȠȜȜȐ įȣȞĮµȚțȐ ȤĮȡĮțIJȘȡȚıIJȚțȐ, ʌȠIJȑ įİȞ ĮȞĮʌIJȪȤșȘțİ ĮȡțİIJȐ ȖȚĮ ȤȡȒıȘ ıİ İµʌȠȡȚțȑȢ İijĮȡµȠȖȑȢ. ǻİ įȚȑșİIJİ ȤȡȒıȚµİȢ ıȣȞĮȡIJȒıİȚȢ İȚıȩįȠȣ țĮȚ İȟȩįȠȣ țĮȚ İȓȤİ µİȖȐȜȘ ĮȞȐȖțȘ Įʌȩ ĮȜijĮȡȚșµȘIJȚțȠȪȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ. ȆĮȡȩȜĮ ĮȣIJȐ, Ș ȑțįȠıȘ ĮȣIJȒ IJȘȢ Pascal șİȦȡȒșȘțİ IJȠ ʌȡȩIJȣʌȠ ȖȚĮ ȩȜȠȞ IJȠȞ țȩıµȠ. Ǿ Borland ĮȞĮȖȞȫȡȚıİ IJȩıȠ IJĮ ʌȡȠIJİȡȒµĮIJĮ ȩıȠ țĮȚ IJȚȢ ĮįȣȞĮµȓİȢ IJȘȢ ʌȡȩIJȣʌȘȢ Pascal țĮȚ ȕİȜIJȓȦıİ IJȘ ȖȜȫııĮ ıİ ıȘµĮȞIJȚțȩ ȕĮșµȩ. ȉȠ ĮʌȠIJȑȜİıµĮ İȓȞĮȚ µȚĮ ʌȜȠȪıȚĮ ȖȜȫııĮ ʌȠȣ ʌĮȡȑȤİȚ ıIJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ IJȘ ȜȠȖȚțȒ įȠµȒ IJȘȢ ʌȡȩIJȣʌȘȢ Pascal țĮȚ İʌȚʌȜȑȠȞ ȑȞĮ İțIJİIJĮµȑȞȠ ıȪȞȠȜȠ İȡȖĮȜİȓȦȞ.
2.2 ȅ ǻȅȂǾȂǼȃȅȈ ȆȇȅīȇǹȂȂǹȉǿȈȂȅȈ Ȁǹǿ Ǿ PASCAL ǼıIJȦ ȩIJȚ șȑȜȠȣµİ ȞĮ ĮȞĮʌIJȪȟȠȣµİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ İʌȚȜȪİȚ ȑȞĮ ıȤİIJȚțȐ įȪıțȠȜȠ ʌȡȩȕȜȘµĮ. Ǿ ĮȞȐʌIJȣȟȒ µĮȢ µʌȠȡİȓ ȞĮ ȕĮıȚıIJİȓ ıIJȘȞ ĮȡȤȒ "įȚĮȓȡİȚ țĮȚ ȕĮıȓȜİȣİ" (divide and conquer). ǻȘȜĮįȒ, İȞȫ IJȠ ĮȡȤȚțȩ ʌȡȩȕȜȘµĮ µȠȚȐȗİȚ țȐʌȦȢ įȪıțȠȜȠ, IJȠ įȚĮıʌȐµİ ıİ µȚțȡȩIJİȡĮ țĮȚ µȚțȡȩIJİȡĮ, µȑȤȡȚ ʌȠȣ ijIJȐȞȠȣµİ ıİ ʌȡȠȕȜȒµĮIJĮ µİ ıȤİIJȚțȐ ĮʌȜȒ ȜȪıȘ. ǹȣIJȒ Ș įȚĮįȚțĮıȓĮ ȜȑȖİIJĮȚ țĮȚ ȕȒµĮ ʌȡȠȢ ȕȒµĮ ĮȞȐȜȣıȘ (step by step refinement). ȄİțȚȞȐµİ Įʌȩ IJȠ ĮȡȤȚțȩ ʌȡȩȕȜȘµĮ țĮȚ ʌȘȖĮȓȞȠȣµİ ʌȡȠȢ IJȚȢ ȜİʌIJȠµȑȡİȚİȢ, Įʌȩ ʌȐȞȦ ʌȡȠȢ IJĮ țȐIJȦ (top down). ĭIJȚȐȤȞȠȣµİ įȘȜĮįȒ, ȣʌȠʌȡȠȖȡȐµµĮIJĮ IJĮ ȠʌȠȓĮ IJİȜȚțȐ ıȣȞșȑIJȠȞIJĮȚ țĮȚ ĮʌȠIJİȜȠȪȞ IJȠ țȪȡȚȠ ʌȡȩȖȡĮµµȐ µĮȢ. ǹȣIJȩ µʌȠȡİȓ ȞĮ ijĮȞİȓ ʌĮȡĮıIJĮIJȚțȐ Įʌȩ ȑȞĮ ȚİȡĮȡȤȚțȩ įȚȐȖȡĮµµĮ ȩʌȦȢ ĮȣIJȩ IJȠȣ ȈȤȒµĮIJȠȢ 2.1. Ȉ'ĮȣIJȩ ȕȜȑʌȠȣµİ IJĮ įȚĮįȠȤȚțȐ İʌȓʌİįĮ ĮȞȐȜȣıȘȢ İȞȫ IJĮ ȣʌȠʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȣʌȐȡȤȠȣȞ ȖȚĮ țȐșİ įȚĮįȚțĮıȓĮ ijĮȓȞȠȞIJĮȚ ıĮȞ țȜĮįȚȐ IJȘȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-10-
ÐÑÏÃÑÁÌÌÁ
Åðßðåäï 0
ÕÐÏÐÑÏÃÑÁÌÌÁ 1
ÕÐÏÐÑÏÃÑÁÌÌÁ 2
ÕÐÏÐÑÏÃÑÁÌÌÁ 3
Åðßðåäï 1
ÕÐÏÐÑÏÃÑÁÌÌÁ 4
ÕÐÏÐÑÏÃÑÁÌÌÁ 5
ÕÐÏÐÑÏÃÑÁÌÌÁ 6
Åðßðåäï 2
Åðßðåäï 3
ÕÐÏÐÑÏÃÑÁÌÌÁ 7
ÕÐÏÐÑÏÃÑÁÌÌÁ 8
ȈȤȒµĮ 2.1 Ǿ ʌĮȡĮʌȐȞȦ µȑșȠįȠȢ ȜȑȖİIJĮȚ µȑșȠįȠȢ IJȠȣ ʌȡȠȖȡĮµµĮIJȚıµȠȪ. țĮȚ ȑȤİȚ ȠȡȚıµȑȞĮ ʌȜİȠȞİțIJȒµĮIJĮ:
įȠµȘµȑȞȠȣ
ǺİȜIJȓȦıȘ IJȘȢ ʌĮȡĮȖȦȖȚțȩIJȘIJĮȢ, ȖȚĮIJȓ ȠȚ ʌȡȠȖȡĮµµĮIJȚıIJȑȢ ĮțȠȜȠȣșȠȪȞ ʌȜȑȠȞ țĮșȠȡȚıµȑȞİȢ IJİȤȞȚțȑȢ ȖȚĮ IJȠ ıȤİįȚĮıµȩ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ țĮȚ ıİ ıȣȞįȣĮıµȩ µİ IJȘ ȤȡȘıȚµȠʌȠȓȘıȘ ȠȡȚıµȑȞȦȞ ʌȡȠIJȪʌȦȞ İʌȚIJȣȖȤȐȞİIJĮȚ IJĮȤȪIJİȡȘ țĮȚ ȠȡșȠȜȠȖȚțȩIJİȡȘ ĮȞȐʌIJȣȟȘ ʌȡȠȖȡĮµµȐIJȦȞ. ǼȪțȠȜȘ ıȣȞIJȒȡȘıȘ, ȖȚĮIJȓ µİ IJȘȞ țĮșȚȑȡȦıȘ țȠȚȞȒȢ ĮȞIJȚµİIJȫʌȚıȘȢ ȖȚĮ IJȠ ıȤİįȚĮıµȩ țĮȚ IJȘȞ țȦįȚțȠʌȠȓȘıȘ ʌȡȠȖȡĮµµȐIJȦȞ, Ș țĮIJĮȞȩȘıȘ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ ȖȓȞİIJĮȚ İȣțȠȜȩIJİȡĮ IJȩıȠ ȖȚĮ IJȠȞ ȓįȚȠ IJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ ʌȠȣ IJȠ ȑȖȡĮȥİ ȩıȠ țĮȚ ȖȚĮ ȑȞĮȞ ȐȜȜȠ ıȣȞȐįİȜijȩ IJȠȣ. ȂİȖȐȜȠ µȑȡȠȢ ĮȣIJȒȢ IJȘȢ İȣțȠȜȓĮȢ ʌȡȠȑȡȤİIJĮȚ Įʌȩ IJȘ ȤȡȘıȚµȠʌȠȓȘıȘ IJȘȢ ȚİȡĮȡȤȚțȒȢ ıȤİįȓĮıȘȢ. ǹʌȠįȠIJȚțȩIJİȡȠȚ ȑȜİȖȤȠȚ, ȖȚĮIJȓ ȜȩȖȦ IJȘȢ ȚİȡĮȡȤȚțȒȢ ıȤİįȓĮıȘȢ İȓȞĮȚ įȣȞĮIJȩȞ ȞĮ ȖȓȞİȚ Ƞ ȑȜİȖȤȠȢ ȠȡșȩIJȘIJĮȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ țĮIJȐ İʌȓʌİįĮ. ǼIJıȚ ʌȡȠıʌĮșȠȪµİ ȞĮ İȞIJȠʌȓıȠȣµİ IJĮ ȜȐșȘ ıIJĮ ĮȞİȟȐȡIJȘIJĮ IJµȒµĮIJĮ ȟİțȚȞȫȞIJĮȢ Įʌȩ IJĮ ĮȞȫIJİȡĮ. ǹʌȠțȜİȓȠȞIJĮȢ IJȘȞ ʌȚșĮȞȩIJȘIJĮ ȜȐșȠȣȢ ı'ȑȞĮ IJµȒµĮ Ȓ İʌȓʌİįȠ, ȕİȕĮȚȦȞȩµĮıIJİ ȩIJȚ IJȠ ȜȐșȠȢ șĮ ȕȡȓıțİIJĮȚ Įʌ'ĮȣIJȩ IJȠ ıȘµİȓȠ țĮȚ țȐIJȦ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-11-
ȀĮȜȪIJİȡȘ IJİțµȘȡȓȦıȘ, ȖȚĮIJȓ ȤȡȘıȚµȠʌȠȚȠȪµİ ʌȡȩIJȣʌĮ IJİȤȞȚțȑȢ ȖȞȦıIJȑȢ țĮȚ ıİ ȐȜȜȠȣȢ ʌȡȠȖȡĮµµĮIJȚıIJȑȢ.
țĮȚ
ȆĮȜĮȚȩIJİȡĮ ıIJȠ ȤȫȡȠ IJȦȞ ʌȡȠȖȡĮµµĮIJȚıIJȫȞ ȒIJĮȞ ʌȠȜȪ įȚĮįİįȠµȑȞȘ Ȓ ȤȡȒıȘ IJȘȢ İȞIJȠȜȒȢ Goto (µİIJĮijȠȡȐ IJȘȢ ȡȠȒȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ) țĮȚ ıİ țȐʌȠȚȠ ȕĮșµȩ İȟĮțȠȜȠȣșİȓ ȞĮ İȓȞĮȚ țĮȚ ıȒµİȡĮ. ǹȣIJȒ Ș İȞIJȠȜȒ µĮȢ İʌȚIJȡȑʌİȚ ȞĮ µİIJĮijȑȡȠȣµİ IJȘ ȡȠȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȠʌȠȣįȒʌȠIJİ µȑıĮ ı'ȑȞĮ ʌȡȩȖȡĮµµĮ ȤȦȡȓȢ ȞĮ įȓȞȠȣµİ ıȘµĮıȓĮ ıIJȘ ıȣȞȠȤȒ IJȠȣ. Ǿ ĮʌȠıijĮȜµȐIJȦıȘ țĮȚ Ș ıȣȞIJȒȡȘıȘ ʌȡȠȖȡĮµµȐIJȦȞ ʌȠȣ İȓȞĮȚ ȖݵȐIJĮ µİ İȞIJȠȜȑȢ Goto İȓȞĮȚ ʌȠȜȪ įȪıțȠȜȘ. ǹȣIJȩ ijȣıȚțȐ İȓȞĮȚ ĮȞIJȓșİIJȠ µİ IJȚȢ ĮȡȤȑȢ IJȠȣ įȠµȘµȑȞȠȣ ʌȡȠȖȡĮµµĮIJȚıµȠȪ. ȅ įȠµȘµȑȞȠȢ ʌȡȠȖȡĮµµĮIJȚıµȩȢ, ʌȠȣ µİȡȚțȑȢ ijȠȡȑȢ İȓȞĮȚ ȖȞȦıIJȩȢ țĮȚ ȦȢ "ʌȡȠȖȡĮµµĮIJȚıµȩȢ µİ ȜȚȖȩIJİȡĮ Goto", İȓȤİ ıĮ ıIJȩȤȠ țĮȚ IJȘȞ İȟȐȜİȚȥȘ IJȘȢ İȞIJȠȜȒȢ Goto µİ IJȘȞ ʌĮȡȠȤȒ İȞȩȢ ʌȜȠȪıȚȠȣ ıȣȞȩȜȠȣ Įʌȩ įȠµȑȢ İȜȑȖȤȠȣ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. Ǿ Pascal, ȑȞĮ ȐµİıȠ įȘµȚȠȪȡȖȘµĮ IJȘȢ ijȚȜȠıȠijȓĮȢ IJȠȣ įȠµȘµȑȞȠȣ ʌȡȠȖȡĮµµĮIJȚıµȠȪ, įȚĮșȑIJİȚ ĮȣIJȑȢ IJȚȢ įȠµȑȢ İȜȑȖȤȠȣ ʌȠȣ țȐȞȠȣȞ IJĮ ʌȡȠȖȡȐµµĮIJĮ ʌȚȠ İȣĮȞȐȖȞȦıIJĮ țĮȚ ȕȠȘșȠȪȞ ıIJȘȞ İȟȐȜİȚȥȘ ĮʌȡȩȕȜİʌIJȦȞ ȜĮșȫȞ, IJĮ ȠʌȠȓĮ ʌȠȜȜȑȢ ijȠȡȑȢ ȠijİȓȜȠȞIJĮȚ ıIJȘȞ ĮįȩµȘIJȘ ȡȠȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ.
2.3 ȈȉȅǿȋǼǿǹ ȉǾȈ īȁȍȈȈǹȈ ȉȠ ʌȚȠ ȕĮıȚțȩ ıIJȘȞ İțµȐșȘıȘ IJȘȢ Turbo Pascal (T.P) İȓȞĮȚ ʌȡȫIJĮ ȞĮ µȐșȠȣµİ IJȠ ȕĮıȚțȩ ȜİȟȚȜȩȖȚȠ țĮȚ ȪıIJİȡĮ ʌȫȢ ȞĮ ıȣȞįȣȐȗȠȣµİ IJȚȢ ȜȑȟİȚȢ ıİ İȞȩIJȘIJİȢ ʌȠȣ ȞĮ ȑȤȠȣȞ ȞȩȘµĮ (İȞIJȠȜȑȢ, ʌȡȠIJȐıİȚȢ ț.Ȝ.ʌ.). ȉȠ ȜİȟȚȜȩȖȚȠ IJȘȢ ȉ.ȇ İȓȞĮȚ ĮȡțİIJȐ ʌȡȠıȚIJȩ. ǼȓȞĮȚ İȚįȚțȐ İʌȚȜİȖµȑȞȠ ȫıIJİ ȞĮ µĮșĮȓȞİIJĮȚ İȪțȠȜĮ, İȞȫ IJĮȣIJȩȤȡȠȞĮ µʌȠȡİȓ ȞĮ įȫıİȚ ıĮijİȓȢ İȞIJȠȜȑȢ ıIJȠȞ Ǿ/Ȋ. ȈȓȖȠȣȡĮ, ȩIJĮȞ ȖȪȡȦ Įʌȩ µİȡȚțȑȢ ȖȡĮµµȑȢ İȞIJȠȜȫȞ ȣʌȐȡȤȠȣȞ ȠȚ ȜȑȟİȚȢ Begin țĮȚ End, µʌȠȡȠȪµİ µİ µȚĮ ʌȡȫIJȘ µĮIJȚȐ ȞĮ ʌȐȡȠȣµİ µȚĮ ıĮijȒ ȖİȞȚțȒ ȚįȑĮ, ĮȜȜȐ țĮȚ Ƞ µİIJĮijȡĮıIJȒȢ ʌĮȓȡȞİȚ ĮțȡȚȕİȓȢ İȞIJȠȜȑȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-12-
ȉĮ ʌȡȠȖȡȐµµĮIJĮ IJȘȢ ȉ.ȇ ȖȡȐijȠȞIJĮȚ µİ ȑȞĮ ıȣȞįȣĮıµȩ įİıµİȣµȑȞȦȞ ȜȑȟİȦȞ țĮȚ ʌȡȩIJȣʌȦȞ ĮȞĮȖȞȦȡȚıIJȚțȫȞ, IJȦȞ ȠʌȠȓȦȞ Ș ıȘµĮıȓĮ İȓȞĮȚ ȒįȘ ȖȞȦıIJȒ ıIJȠ µİIJĮijȡĮıIJȒ, µĮȗȓ µİ IJĮ İʌȚʌȜȑȠȞ ĮȞĮȖȞȦȡȚıIJȚțȐ ʌȠȣ įȘµȚȠȣȡȖİȓ țĮIJȐ ȕȠȪȜȘıȘ Ƞ ȓįȚȠȢ Ƞ ʌȡȠȖȡĮµµĮIJȚıIJȒȢ. ȅʌȦȢ ıİ țȐșİ ijȣıȚțȒ ȖȜȫııĮ ȣʌȐȡȤȠȣȞ țĮȞȩȞİȢ ȖȡĮµµĮIJȚțȒȢ țĮȚ ıIJȓȟȘȢ, ȠȚ ȠʌȠȓȠȚ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ ȞĮ İȜȑȖȤȠȣȞ IJȠ ıȣȞįȣĮıµȩ ĮȣIJȫȞ IJȦȞ ıIJȠȚȤİȓȦȞ. ȍıIJȩıȠ Ș Pascal ȖİȞȚțȐ țĮȚ Ș ȉ.ȇ İȚįȚțȐ, ʌȡȠıijȑȡȠȣȞ ĮıȣȞȒșȚıIJȘ İȣİȜȚȟȓĮ ıIJȠ ȤȡȒıIJȘ ȖȚĮ IJȘȞ İțȜȠȖȒ IJȠȣ ȜİȟȚȜȠȖȓȠȣ IJȠȣ. ǻİıµİȣµȑȞİȢ ȁȑȟİȚȢ ǻİıµİȣµȑȞİȢ ȜȑȟİȚȢ (reserved words) İȓȞĮȚ ĮʌȜȫȢ İțİȓȞİȢ ȠȚ ȜȑȟİȚȢ ʌȠȣ Ș ıȘµĮıȓĮ IJȠȣȢ ȖȚĮ IJȠ µİIJĮijȡĮıIJȒ İȓȞĮȚ İȚįȚțȒ țĮȚ ĮµİIJȐȕȜȘIJȘ. ǹȣIJȑȢ İȓȞĮȚ ȠȚ ȜȑȟİȚȢ țȜİȚįȚȐ ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ ȞĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ IJȘȢ ȉ.ȇ. ȅȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ ȞĮ İȜȑȖȤȠȣȞ IJȩıȠ IJȘ ȜȠȖȚțȒ ȡȠȒ ȩıȠ țĮȚ IJȘ ȜİȚIJȠȣȡȖȓĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȆİȡȚȜĮµȕȐȞȠȣȞ IJȠȣȢ ȩȡȠȣȢ ʌȠȣ İȓȞĮȚ ĮʌĮȡĮȓIJȘIJȠȚ ȖȚĮ IJȘȞ İțIJȑȜİıȘ İȜȑȖȤȦȞ țĮȚ ȕȡȩȤȦȞ, ȩʌȦȢ țĮȚ ȖȚĮ IJȘȞ ʌȡĮȖµĮIJȠʌȠȓȘıȘ ȣʌȠȜȠȖȚıµȫȞ țĮȚ ıȣȖțȡȓıİȦȞ. ȆȡȑʌİȚ ȞĮ ʌȡȠıȑȤȠȣµİ, ȜȠȚʌȩȞ ȞĮ µȘȞ ȠȞȠµȐȗȠȣµİ µȚĮ įȚțȒ µĮȢ µİIJĮȕȜȘIJȒ Ȓ ȑȞĮ ʌȡȩȖȡĮµµȐ µĮȢ µİ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ. ȈIJȠȞ ȆȓȞĮțĮ 2.1, µʌȠȡȠȪµİ ȞĮ įȠȪµİ ȩȜİȢ IJȚȢ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ IJȘȢ ȉ.ȇ țĮIJȐ ĮȜijĮȕȘIJȚțȒ ıİȚȡȐ. ǻİȞ İȓȞĮȚ ʌȠȜȪ įȪıțȠȜȠ ȞĮ IJȚȢ µȐșȠȣµİ Ȓ IJȠȣȜȐȤȚıIJȠȞ ȞĮ țĮIJĮȞȠȒıȠȣµİ IJȘ ȤȡȒıȘ IJȠȣȢ, µȚĮ țĮȚ ıIJȚȢ ʌİȡȚııȩIJİȡİȢ ʌİȡȚʌIJȫıİȚȢ, Ș ıȘµĮıȓĮ IJȘȢ țȐșİ ȜȑȟȘȢ ȖȚĮ IJȠ µİIJĮijȡĮıIJȒ, İȓȞĮȚ ȑȞĮ ȣʌȠıȪȞȠȜȠ IJȘȢ țĮșȘµİȡȚȞȒȢ IJȘȢ ıȘµĮıȓĮȢ ıIJĮ ĮʌȜȐ țĮșȘµİȡȚȞȐ ĮȖȖȜȚțȐ. ǹȜȜİȢ Pascal ȑȤȠȣȞ ȣȚȠșİIJȒıİȚ įȚțȑȢ IJȠȣȢ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ ʌȠȣ įİȞ ȑȤȠȣȞ ȞȩȘµĮ ȠȪIJİ ıIJȘȞ ʌȡȩIJȣʌȘ Pascal ȠȪIJİ ıIJȘȞ ȉ.ȇ. ǹțȩµĮ țĮȚ Ș ȓįȚĮ Ș ȑȞȞȠȚĮ IJȘȢ įİıµİȣµȑȞȘȢ ȜȑȟȘȢ įȚĮijȑȡİȚ Įʌȩ ȑțįȠıȘ ıİ ȑțįȠıȘ, țȚ ȑIJıȚ ıİ µİȡȚțȑȢ Pascal Ș įȚĮȤȦȡȚıIJȚțȒ ȖȡĮµµȒ ĮȞȐµİıĮ ıIJȚȢ ȜȑȟİȚȢ ʌȠȣ µʌȠȡİȓ ȞĮ İʌĮȞĮțĮșȠȡȓıİȚ Ƞ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-13-
ȤȡȒıIJȘȢ țĮȚ ı'İțİȓȞİȢ ʌȠȣ įİ µʌȠȡİȓ, İȓȞĮȚ µȐȜȜȠȞ ĮıĮijȒȢ. īȚĮ IJȘȞ ȉ.ȇ IJĮ ʌȡȐȖµĮIJĮ ıIJȠ ıȘµİȓȠ ĮȣIJȩ İȓȞĮȚ ʌȠȜȪ ıĮijȒ. ȅȚ ȩȡȠȚ, IJȦȞ ȠʌȠȓȦȞ IJȘȞ İȞȑȡȖİȚĮ µʌȠȡİȓ ȞĮ İʌĮȞĮțĮșȠȡȓıİȚ Ƞ ȤȡȒıIJȘȢ, ıȪµijȦȞĮ µİ IJȚȢ ĮȞȐȖțİȢ IJȠȣ, ȜȑȖȠȞIJĮȚ ʌȡȩIJȣʌĮ ĮȞĮȖȞȦȡȚıIJȚțȐ. ǹȣIJȐ șĮ IJĮ įȠȪµİ ıIJȘȞ İʌȩµİȞȘ ʌĮȡȐȖȡĮijȠ. Absolute, And, Array, Asm Begin Case, Const, Constructor Destructor, Div, Do, Downto Else, End, External File, For, Forward, Function Goto If, Implementation, In, Inline, Interface, Interrupt Label Mod Nil, Not Object, Of, Or Packed, Procedure, Program Record, Repeat Set, Shl, Shr, String Then, To, Type Unit, Until, Uses Virtual, Var While, With Xor
ȆȓȞĮțĮȢ 2.1
ȆȡȩIJȣʌĮ ǹȞĮȖȞȦȡȚıIJȚțȐ ȉĮ ʌȡȩIJȣʌĮ ĮȞĮȖȞȦȡȚıIJȚțȐ (predifined idintifires) ĮʌȠIJİȜȠȪȞ IJȠ ȣʌȩȜȠȚʌȠ IJȠȣ ȜİȟȚȜȠȖȓȠȣ µİ ʌȡȠțĮșȠȡȚıµȑȞȠ ȩȞȠµĮ ıIJȘȞ ȉ.ȇ. ǻȚĮijȑȡȠȣȞ Įʌȩ IJȚȢ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ ıIJȠ ȩIJȚ µʌȠȡȠȪµİ ȞĮ İʌĮȞĮțĮșȠȡȓıȠȣµİ (ȞĮ ĮȜȜȐȟȠȣµİ) IJȘ ȜİȚIJȠȣȡȖȓĮ ʌȠȣ İțIJİȜȠȪȞ, ȫıIJİ ȞĮ IJĮȚȡȚȐȗȠȣȞ ıIJȚȢ ȚįȚĮȓIJİȡİȢ ĮȞȐȖțİȢ µĮȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-14-
ȅ țȓȞįȣȞȠȢ Įʌȩ IJȠȞ İʌĮȞĮțĮșȠȡȚıµȩ IJȦȞ ʌȡȠIJȪʌȦȞ ĮȞĮȖȞȦȡȚıIJȚțȫȞ İȓȞĮȚ ȩIJȚ țȐȞİȚ IJĮ ʌȡȠȖȡȐµµĮIJȐ µĮȢ ȞĮ ĮʌȠțȜȓȞȠȣȞ ʌİȡȚııȩIJİȡȠ Įʌȩ IJȠ ʌȡȩIJȣʌȠ. ǹʌȩ IJȘȞ ȐȜȜȘ ȩµȦȢ ʌȠȜȜȑȢ ijȠȡȑȢ įİ µʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ įȚĮijȠȡİIJȚțȐ. ȉĮ ʌȡȩIJȣʌĮ ǹȞĮijȑȡȠȞIJĮȚ ıİ
ĮȞĮȖȞȦȡȚıIJȚțȐ țĮȜȪʌIJȠȣȞ ʌȠȜȜȠȪȢ IJȠµİȓȢ. ıIJĮșİȡȑȢ, µİIJĮȕȜȘIJȑȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ,
įȚĮįȚțĮıȓİȢ țĮȚ ıȣȞĮȡIJȒıİȚȢ. ȅȚ įȚȐijȠȡİȢ İțįȩıİȚȢ IJȘȢ Pascal ʌĮȡȠȣıȚȐȗȠȣȞ IJİȡȐıIJȚİȢ įȚĮijȠȡȑȢ, ȦȢ ʌȡȠȢ IJĮ ĮȞĮȖȞȦȡȚıIJȚțȐ IJȠȣȢ. ȆĮȡĮțȐIJȦ ıIJȠȞ ȆȓȞĮțĮ 2.2 įȓȞȠȞIJĮȚ IJĮ ʌȡȩIJȣʌĮ ĮȞĮȖȞȦȡȚıIJȚțȐ ʌȠȣ ĮȞĮijȑȡȠȞIJĮȚ ıIJȚȢ ıȣȞĮȡIJȒıİȚȢ IJȘȢ ȉ.ȇ 6.0, ıIJȠȞ ȆȓȞĮțĮ 2.3 ĮȣIJȐ ʌȠȣ ĮȞĮijȑȡȠȞIJĮȚ ıIJȚȢ įȚĮįȚțĮıȓİȢ țĮȚ ıIJȠȞ ȆȓȞĮțĮ 2.4 ĮȣIJȐ ʌȠȣ ĮȞĮijȑȡȠȞIJĮȚ ıIJȠȣȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ, țĮȚ ıIJȚȢ IJȚµȑȢ IJȠȣȢ.
Abs, Addr, ArcTan Chr, Concat, Copy, Cos, CSeg DiskFree, DiskSize, DosExitCode, DosVersion, DSeg EnvCount, EnvStr, Eof, Eoln, Exp FExpand, FilePos, FileSize, Frac, FSearch GetBkColor, GetColor, GetDriverName, GetEnv, GetGraphMode, GetMaxColor, GetMaxMode, GetMaxX, GetMaxY, GetModeName, GetPaletteSize, GetPixel, GetX, GetY, GraphErrorMsg, GraphResult Hi ImageSize, InstallUserDriver, InstallUserFont, Int, IOResult KeyPressed Length, Ln, Lo MaxAvail, MemAvail Odd, Ofs, Ord, OvrGetBuf ParamCount, ParamStr, Pi, Pos, Pred, Ptr Random, Randomize, ReadKey, RegisterBJIdriver, RegisterBJIfont, Round SeekEof, SeekEoln, Seg, Sin, SizeOf, SPtr, Sqr, Sqrt, SSeg, Succ, Swap TextHeight, TextWidth, Trunc, TypeOf UpCase WhereX, WhereY
ȆȓȞĮțĮȢ 2.2
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-15-
Append, Arc, Assign, AssignCrt Bar, Bar3D, BlockRead, BlockWrite ChDir, Circle, ClearDevice, ClearViewPort, Close, CloseGraph, ClrEol, ClrScr Dec, Delay, Delete, DelLine, DetectGraph, Dispose, DrawPoly Ellipse, Erase, Exec, Exit FillChar, FillEllipse, FillPoly, FindFirst, FindNext, FloodFill, Flush, FreeMem, FSplit GetArcCoords, GetAspectRatio, GetCBreak, GetDate, GetDefaultPalette, GetDir, GetFAttr, GetFillPattern, GetFillSettings, GetFTime, GetImage, GetIntVec, GetLineSettings, GetMem, GetModeRange, GetPalette, GetTextSettings, GetTime, GetVerify, GetViewSettings, GotoXY, GraphDefaults Halt, HighVideo Inc, InitGraph, Insert, InsLine, Intr Keep Line, LineRel, LineTo, LowVideo Mark, MkDir, Move, MoveRel, MoveTo, MsDos New, NormVideo, NoSound OutText, OutTextXY, OvrClearBuf, OvrInit, OvrInitEMS, OvrSetBuf PackTime, PieSlice, PutImage, PutPixel Read, Readln, Rectangle, Release, Rename, Reset, RestoreCrtMode, Rewrite, RmDir, RunError Sector, Seek, SetActivePage, SetAllPalette, SetAspectRatio, SetBkColor, SetCBreak, SetColor, SetDate, SetFAttr, SetFillPattern, SetFillStyle, SetFTime, SetGraphBufSize, SetGraphMode, SetIntVec, SetLineStyle, SetPalette, SetRBGPalette, SetTextBuf, SetTextJustify, SetTextStyle, SetTime, SetUserCharSize, SetVerify, SetViewPort, SetVisualPage, SetWriteMode, Sound, Str, SwapVectors TextBackground, TextColor, TextMode, Truncate UnpackTime Val Window, Write
ȆȓȞĮțĮȢ 2.3 Boolean, Byte Char False Integer MaxInt, MaxLongInt Real Text, True
ȆȓȞĮțĮȢ 2.4
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-16-
ǹȞĮȖȞȦȡȚıIJȚțȐ ǹȞĮȖȞȦȡȚıIJȚțȐ (identifiers) İȓȞĮȚ, ʌȚȠ ĮʌȜȐ IJĮ ȠȞȩµĮIJĮ ʌȠȣ įȓȞȠȣµİ ıIJȚȢ µİIJĮȕȜȘIJȑȢ, IJȚȢ ıIJĮșİȡȑȢ țĮȚ ıIJĮ ȣʌȩȜȠȚʌĮ ıIJȠȚȤİȓĮ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ, ȩʌȦȢ İʌȓıȘȢ țĮȚ ıIJȠ ȓįȚȠ IJȠ ʌȡȩȖȡĮµµĮ. ǼȤȠȣµİ IJİȡȐıIJȚĮ İȜİȣșİȡȓĮ ıIJȘȞ İʌȚȜȠȖȒ İȣȞȩȘIJȦȞ, ʌİȡȚȖȡĮijȚțȫȞ ĮȞĮȖȞȦȡȚıIJȚțȫȞ (ʌȐȞIJĮ ȩµȦȢ µİ ȜĮIJȚȞȚțȠȪȢ ȤĮȡĮțIJȒȡİȢ). Ǿ ȉ.ȇ įȑȤİIJĮȚ ĮȞĮȖȞȦȡȚıIJȚțȐ µȒțȠȣȢ µȑȤȡȚ 127 ȤĮȡĮțIJȒȡȦȞ țĮȚ ijȣıȚțȐ ȩȜȠȚ ȠȚ ȤĮȡĮțIJȒȡİȢ ʌȠȣ ĮʌȠIJİȜȠȪȞ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ İȓȞĮȚ ıȘµĮȞIJȚțȠȓ ȖȚĮ IJȠ µİIJĮijȡĮıIJȒ IJȘȢ ȉ.ȇ. ǼIJıȚ țĮȜȩȞ İȓȞĮȚ ȞĮ įȚĮȜȑȖȠȣµİ IJĮ ȠȞȩµĮIJĮ IJȦȞ µİIJĮȕȜȘIJȫȞ, ıIJĮșİȡȫȞ ț.Ȝ.ʌ ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪµİ ı'ȑȞĮ ʌȡȩȖȡĮµµĮ, ȫıIJİ ȞĮ µĮȢ șȣµȓȗȠȣȞ țȐIJȚ. ȀĮȜȐ İʌȚȜİȖµȑȞİȢ ȠȞȠµĮıȓİȢ ĮȞĮȖȞȦȡȚıIJȚțȫȞ, ȩȤȚ µȩȞȠ țȐȞȠȣȞ IJĮ ʌȡȠȖȡȐµµĮIJĮ İȣțȠȜȩIJİȡĮ ıIJȠ įȚȐȕĮıµȐ IJȠȣȢ țĮȚ IJȘȞ țĮIJĮȞȩȘıȒ IJȠȣȢ Įʌȩ IJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ, ĮȜȜȐ İȜĮIJIJȫȞȠȣȞ țĮȚ IJȠȞ ĮȡȚșµȩ IJȦȞ ȜĮșȫȞ ʌȠȣ ȖȓȞȠȞIJĮȚ Įʌȩ ĮʌȡȠıİȟȓĮ. ǼʌȓıȘȢ ʌȡȑʌİȚ ȞĮ șȣµȩµĮıIJİ ȩIJȚ įİȞ ȑȤİȚ ıȘµĮıȓĮ ĮȞ įȫıȠȣµİ ıİ µȚĮ µİIJĮȕȜȘIJȒ ȑȞĮ ʌȠȜȪ µİȖȐȜȠ ȩȞȠµĮ ıĮȞ ʌ.Ȥ. NumberOfTreasuresInTheCave Ȓ ĮȞ șĮ IJȠ ıȣȞIJȠµİȪıȠȣµİ NumTtreas Ȓ țĮȚ ıİ ıțȑIJȠ ȃ: Ƞ µİIJĮijȡĮıIJȒȢ IJȘȢ ȉ.ȇ µİIJĮIJȡȑȥİȚ IJȠ ȩȞȠµĮ ĮȣIJȩ ıİ µȚĮ țĮȚ µȠȞĮįȚțȒ șȑıȘ µȞȒµȘȢ. İʌȚʌȜȑȠȞ ȤĮȡĮțIJȒȡİȢ ȣʌȐȡȤȠȣȞ ĮʌȜȫȢ ȖȚĮ ȞĮ țȐȞȠȣȞ ʌȚȠ İȪțȠȜȘ ȗȦȒ µĮȢ, Ȓ İțİȓȞȦȞ ʌȠȣ șĮ ȒșİȜĮȞ ȞĮ įȚĮȕȐıȠȣȞ țĮȚ țĮIJĮȜȐȕȠȣȞ IJȠ ʌȡȩȖȡĮµµȐ µĮȢ.
șĮ IJȠ ıİ șĮ ȅȚ IJȘ ȞĮ
ȊʌȐȡȤȠȣȞ ȠȡȚıµȑȞȠȚ țĮȞȩȞİȢ ıȤİIJȚțȐ µİ IJȘ įȘµȚȠȣȡȖȓĮ IJȦȞ ĮȞĮȖȞȦȡȚıIJȚțȫȞ. ǼȞĮȞ Įʌ'ĮȣIJȠȪȢ ʌȠȣ ĮijȠȡȐ IJȠ µȑȖȚıIJȠ µȒțȠȢ IJȠȣȢ IJȠȞ ȑȤȠȣµİ ȒįȘ įİȚ. ǼȞĮ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ Pascal ȤĮȡĮțIJȒȡİȢ IJȘȢ ȖȜȫııĮȢ ȦȢ İȟȒȢ:
ıȤȘµĮIJȓȗİIJĮȚ
Įʌȩ
IJȠȣȢ
ȉȠ µȒțȠȢ IJȠȣ įİȞ ʌȡȑʌİȚ ȞĮ ȟİʌİȡȞȐ IJȠȣȢ 127 ȤĮȡĮțIJȒȡİȢ. ȅ ʌȡȫIJȠȢ ȤĮȡĮțIJȒȡĮȢ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ȖȡȐµµĮ IJȠȣ ȜĮIJȚȞȚțȠȪ ĮȜijĮȕȒIJȠȣ Ȓ Ƞ ȤĮȡĮțIJȒȡĮȢ IJȘȢ ȣʌȠȖȡȐµµȚıȘȢ "B".
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-17-
ȅȚ ȣʌȩȜȠȚʌȠȚ ȤĮȡĮțIJȒȡİȢ µʌȠȡȠȪȞ ȞĮ İȓȞĮȚ ȖȡȐµµĮIJĮ ȜĮIJȚȞȚțȠȪ ĮȜijĮȕȒIJȠȣ Ȓ ĮȡȚșµȘIJȚțȠȓ ȤĮȡĮțIJȒȡİȢ.
IJȠȣ
ȂȑıĮ ı'ȑȞĮ ĮȞĮȖȞȦȡȚıIJȚțȩ įİȞ İʌȚIJȡȑʌȠȞIJĮȚ țİȞȐ Ȓ ĮȜȜĮȖȒ ȖȡĮµµȒȢ. ǻİȞ İʌȚIJȡȑʌȠȞIJĮȚ ȦȢ ĮȞĮȖȞȦȡȚıIJȚțȐ ȠȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ, (ǺȜȑʌİ ȆȓȞĮțĮ 2.1). ȆȡȑʌİȚ ĮțȩµĮ ȞĮ ȑȤȠȣµİ ȣʌȩȥȘ ȩIJȚ Ƞ µİIJĮijȡĮıIJȒȢ IJȘȢ ȉ.ȇ įİȞ țȐȞİȚ įȚȐțȡȚıȘ µİIJĮȟȪ ʌİȗȫȞ țĮȚ țİijĮȜĮȓȦȞ ȖȡĮµµȐIJȦȞ, ȑIJıȚ µʌȠȡȠȪµİ ȞĮ ijIJȚȐȟȠȣµİ ĮȞĮȖȞȦȡȚıIJȚțȐ ʌȠȣ ȞĮ ĮʌȠIJİȜȠȪȞIJĮȚ Įʌȩ ʌȠȜȜȑȢ ȜȑȟİȚȢ țȠȜȜȘIJȐ Ș µȚĮ µİ IJȘȞ ȐȜȜȘ, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ țĮȚ țİijĮȜĮȓĮ ȖȡȐµµĮIJĮ ȖȚĮ ȞĮ ijĮȓȞİIJĮȚ țĮȜȪIJİȡĮ Ș ıȘµĮıȓĮ IJȠȣȢ ʌ.Ȥ DayOfWeek. ĬĮ µʌȠȡȠȪıĮµİ İʌȓıȘȢ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ IJȠ ȤĮȡĮțIJȒȡĮ IJȘȢ ȣʌȠȖȡȐµµȚıȘȢ ȖȚĮ ȞĮ įȘȜȫıȠȣµİ IJĮ țİȞȐ ĮȞȐµİıĮ ıIJȚȢ ȜȑȟİȚȢ: DayBOfBWeek. Ȃİ ȕȐıȘ IJȠȣȢ ʌĮȡĮʌȐȞȦ țĮȞȩȞİȢ IJĮ ʌĮȡĮțȐIJȦ ĮȞĮȖȞȦȡȚıIJȚțȐ İȓȞĮȚ įİțIJȐ: ALFA FirstBTime ProtoProgramma aKjhgjhTHUhg program1 ǼȞȫ IJĮ ʌĮȡĮțȐIJȦ İȓȞĮȚ ȜȐșȠȢ: 1stProgram Begin Program one VeryLong Ident
: ĮȡȤȓȗİȚ µİ ĮȡȚșµȘIJȚțȩ ȤĮȡĮțIJȒȡĮ. : İȓȞĮȚ įİıµİȣµȑȞȘ ȜȑȟȘ. : ʌİȡȚȑȤİȚ țİȞȩ. : ȆİȡȚȑȤİȚ ĮȜȜĮȖȒ ȖȡĮµµȒȢ.
ȈȪµȕȠȜĮ ȅȚ ijȣıȚțȑȢ ȖȜȫııİȢ ȤȡȘıȚµȠʌȠȚȠȪȞ țȐʌȦȢ įȚĮijȠȡİIJȚțȐ ıȪȞȠȜĮ ȤĮȡĮțIJȒȡȦȞ. ȉĮ ȖİȡµĮȞȚțȐ įİ ȤȡȘıȚµȠʌȠȚȠȪȞ IJȘȞ "ʌİȡȚıʌȦµȑȞȘ" (~) IJȦȞ ȚıʌĮȞȚțȫȞ, IJĮ ȚıʌĮȞȚțȐ įİ ȤȡȘıȚµȠʌȠȚȠȪȞ IJĮ "umlaut" (..) IJȦȞ ȖİȡµĮȞȚțȫȞ, țĮȚ IJĮ ĮȖȖȜȚțȐ įİ ȤȡȘıȚµȠʌȠȚȠȪȞ țĮȞȑȞĮȞ Įʌȩ IJȠȣȢ įȪȠ ĮȣIJȠȪȢ ȤĮȡĮțIJȒȡİȢ. Ǿ ȉ.ȇ ȑȤİȚ IJȠ įȚțȩ IJȘȢ ıȪȞȠȜȠ ȤĮȡĮțIJȒȡȦȞ ʌȠȣ ijĮȓȞİIJĮȚ ıIJȠȞ ȆȓȞĮțĮ 2.5.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-18-
Ǿ ȉ.ȇ ĮȞĮȖȞȦȡȓȗİȚ ȩȜĮ IJĮ ȕĮıȚțȐ ȖȡȐµµĮIJĮ IJȠȣ ȜĮIJȚȞȚțȠȪ ĮȜijĮȕȒIJȠȣ: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ ǹȞĮȖȞȦȡȓȗİȚ İʌȓıȘȢ ȩȜĮ IJĮ ȥȘijȓĮ: 0123456789 ǹȞĮȖȞȦȡȓȗİȚ µȚĮ ıȣȜȜȠȖȒ İȚįȚțȫȞ ȤĮȡĮțIJȒȡȦȞ: .,:;'#$*/+ =<>^[](){} ǹȣIJȐ IJĮ ıȪµȕȠȜĮ, µȩȞĮ IJȠȣȢ Ȓ ıİ ıȣȞįȣĮıµȩ, ȑȤȠȣȞ IJȚȢ ʌĮȡĮțȐIJȦ ıȘµĮıȓİȢ: īȚĮ µĮșȘµĮIJȚțȑȢ ʌȡȐȟİȚȢ: * ʌȠȜȜĮʌȜĮıȚĮıµȩȢ / įȚĮȓȡİıȘ + ʌȡȩıșİıȘ ĮijĮȓȡİıȘ () ıİȚȡȐ İȜȑȖȤȠȣ ıIJȚȢ ʌȡȐȟİȚȢ īȚĮ IJȘȞ țĮIJȐıIJȡȦıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ: := ĮʌȩįȠıȘ IJȚµȒȢ . ȠȡȚȠșȑIJȘȢ IJȑȜȠȣȢ ʌȡȠȖȡȐµµĮIJȠȢ ; ȠȡȚȠșȑIJȘȢ IJȑȜȠȣȢ ʌȡȩIJĮıȘȢ # įȘȜȫȞİȚ ȩIJȚ ȠȚ ȤĮȡĮțIJȒȡİȢ ʌȠȣ ĮțȠȜȠȣșȠȪȞ İȓȞĮȚ țȦįȚțȠȓ ASCII $ įȘȜȫȞİȚ ȩIJȚ ȠȚ ȤĮȡĮțIJȒȡİȢ ʌȠȣ ĮțȠȜȠȣșȠȪȞ İȓȞĮȚ įİțĮİȟĮįȚțȑȢ IJȚµȑȢ (* *) ıȤȩȜȚȠ Ȓ ȠįȘȖȓĮ ʌȡȠȢ IJȠ µİIJĮijȡĮıIJȒ { } ıȤȩȜȚȠ Ȓ ȠįȘȖȓĮ ʌȡȠȢ IJȠ µİIJĮijȡĮıIJȒ + İȞİȡȖȠʌȠȚİȓ ȠįȘȖȓĮ ʌȡȠȢ IJȠ µİIJĮijȡĮıIJȒ ĮʌİȞİȡȖȠʌȠȚİȓ ȠįȘȖȓĮ ʌȡȠȢ IJȠ µİIJĮijȡĮıIJȒ ' ĮȡȤȒ țĮȚ IJȑȜȠȢ ȤĮȡĮțIJȒȡĮ Ȓ ĮȜijĮȡȚșµȘIJȚțȠȪ īȚĮ ıȣȖțȡȓıİȚȢ țĮȚ İȜȑȖȤȠȣȢ: = ȚıȩIJȘIJĮ < µȚțȡȩIJİȡȠ Įʌȩ > µİȖĮȜȪIJİȡȠ Įʌȩ <= µȚțȡȩIJİȡȠ Ȓ ȓıȠ Įʌȩ >= µİȖĮȜȪIJİȡȠ Ȓ ȓıȠ Įʌȩ < > įȚȐijȠȡȠ Įʌȩ īȚĮ įȠµȑȢ įİįȠµȑȞȦȞ: ^ įİȓțIJȘȢ @ įİȓȤȞİȚ ıIJȘȞ įȚİȪșȣȞıȘ ıIJȘ µȞȒµȘ, µȚĮȢ µİIJĮȕȜȘIJȒȢ, ıIJĮșİȡȐȢ Ȓ įȚĮįȚțĮıȓĮȢ ʌ.Ȥ. ǿ:=@ǹ; [] ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ıIJȠȣȢ ʌȓȞĮțİȢ țĮȚ ıIJȘȞ ĮʌĮȡȓșµȘıȘ ıȣȞȩȜȦȞ (..) ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ĮȞIJȓ IJȦȞ [] , ȜȓıIJİȢ ʌĮȡĮµȑIJȡȦȞ ıİ įȚĮįȚțĮıȓİȢ Ȓ ıȣȞĮȡIJȒıİȚȢ . ȠȡȚȠșȑIJȘȢ ʌİįȓȦȞ İȖȖȡĮijȒȢ, İʌȓıȘȢ ȤȦȡȓȗİȚ IJȠ ȩȞȠµĮ ĮȡȤİȓȠȣ Įʌȩ IJȘȞ ʌȡȠȑțIJĮıȘ .. įȘȜȫȞİȚ İȪȡȠȢ Ǿ ȉ.ȇ ȤȡȘıȚµȠʌȠȚİȓ IJȚȢ ʌĮȡĮțȐIJȦ ȜȑȟİȚȢ ıĮȞ ȤĮȡĮțIJȒȡİȢ: īȚĮ ȜȠȖȚțȑȢ ʌȡȐȟİȚȢ țĮȚ ȤİȚȡȚıµȩ bit: NOT ȜȠȖȚțȩ "ȅȋǿ" Ȓ ĮȞIJȚıIJȡȠijȒ AND ȜȠȖȚțȩ "Ȁǹǿ" Ȓ ıȪȗİȣȟȘ OR ȜȠȖȚțȩ "Ǿ" Ȓ įȚȐȗİȣȟȘ XOR ȜȠȖȚțȩ "ȅȋǿ Ǿ", ĮʌȠțȜİȚıIJȚțȩ Ǿ SHL ĮȡȚıIJİȡȒ µİIJĮIJȩʌȚıȘ SHR įİȟȚȐ µİIJĮIJȩʌȚıȘ ǿȃ įȘȜȫȞİȚ ıȣµʌİȡȓȜȘȥȘ ıİ ıȪȞȠȜȠ īȚĮ µĮșȘµĮIJȚțȐ µİIJĮȟȪ ĮțĮȚȡȑȦȞ: DIV ĮțȑȡĮȚĮ įȚĮȓȡİıȘ, İʌȚıIJȡȑijİȚ IJȠ ĮțȑȡĮȚȠ ʌȘȜȓțȠ MOD ĮțȑȡĮȚĮ įȚĮȓȡİıȘ, İʌȚıIJȡȑijİȚ IJȠ ĮțȑȡĮȚȠ ȣʌȩȜȠȚʌȠ
ȆȓȞĮțĮȢ 2.5
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-19-
ȂȒțȠȢ īȡĮµµȫȞ țĮȚ ȠȡȚȠșȑIJİȢ ȅȚ ȖȡĮµµȑȢ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ IJȘȢ ȉ.ȇ įİ ıȣȞİȤȓȗȠȞIJĮȚ ıIJȘȞ ĮʌȠțȐIJȦ ıİȚȡȐ (įİȞ ĮȞĮįȚʌȜȫȞȠȞIJĮȚ). ǻȘȜĮįȒ țĮµȓĮ ȖȡĮµµȒ ʌȡȠȖȡȐµµĮIJȠȢ įİ µʌȠȡİȓ ȞĮ ȑȤİȚ ʌİȡȚııȩIJİȡȠȣȢ Įʌȩ 127 ȤĮȡĮțIJȒȡİȢ. ǻȪȠ ȠʌȠȚĮįȒʌȠIJİ ȟİȤȦȡȚıIJȐ ıIJȠȚȤİȓĮ IJȘȢ ȖȜȫııĮȢ ʌȡȑʌİȚ ȞĮ ȤȦȡȓȗȠȞIJĮȚ IJȠ ȑȞĮ Įʌȩ IJȠ ȐȜȜȠ µİ ȑȞĮ țİȞȩ įȚȐıIJȘµĮ (ȖȚ'ĮȣIJȩ ĮʌĮȖȠȡİȪȠȞIJĮȚ IJĮ țİȞȐ ĮȞȐµİıĮ ıIJĮ ĮȞĮȖȞȦȡȚıIJȚțȐ). īȚĮ IJȠ įȚĮȤȦȡȚıµȩ IJȦȞ ıIJȠȚȤİȓȦȞ ȤȡȘıȚµİȪİȚ țĮȚ IJȠ ʌȐIJȘµĮ IJȠȣ Enter ıIJȠ IJȑȜȠȢ IJȘȢ ȖȡĮµµȒȢ, ȩʌȦȢ țĮȚ Ș ʌĮȡȐșİıȘ İȞȩȢ ıȤȠȜȓȠȣ. ǼʌȓıȘȢ Ș įȣȞĮIJȩIJȘIJĮ ĮȣIJȩµĮIJȘȢ İıȠȤȒȢ ʌȠȣ įȚĮșȑIJİȚ Ƞ įȚȠȡșȦIJȒȢ (editor) IJȘȢ ȉ.ȇ, Įȡțİȓ ȖȚĮ IJȠ µİȖĮȜȪIJİȡȠ µȑȡȠȢ IJȦȞ ʌĮȡĮȖȡĮijȠʌȠȚȒıİȦȞ ʌȠȣ țȐȞȠȣȞ ȠʌIJȚțȐ țĮȜȪIJİȡȘ IJȘȞ İȚțȩȞĮ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ.
2.4 ǻȅȂǾ ȆȇȅīȇǹȂȂǹȉȅȈ ȉǾȈ ȉ.ȇ ǼȞĮ ʌȡȩȖȡĮµµĮ IJȘȢ ȉ.ȇ ĮʌȠIJİȜİȓIJĮȚ ȕĮıȚțȐ Įʌȩ IJȡȓĮ µȑȡȘ: IJȘȞ ǼʌȚțİijĮȜȓįĮ (Heading), IJȠ ȉµȒµĮ ǻȘȜȫıİȦȞ (Declaration Section) țĮȚ IJȠ ǼțIJİȜȑıȚµȠ ȉµȒµĮ (Executable Section). H İʌȚțİijĮȜȓįĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ĮȡȤȓȗİȚ µİ IJȘ ȜȑȟȘ Program țĮȚ ıȣȞİȤȓȗİȚ µĮ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȈIJȘȞ ȉ.ȇ Ș İʌȚțİijĮȜȓįĮ İȓȞĮȚ IJİȜİȓȦȢ ʌȡȠĮȚȡİIJȚțȒ İȞȫ ıİ ȐȜȜİȢ İțįȩıİȚȢ IJȘȢ Pascal İȓȞĮȚ ȣʌȠȤȡİȦIJȚțȒ. ȀĮȜȩȞ ȩµȦȢ İȓȞĮȚ ȞĮ ȕȐȗȠȣµİ ʌȐȞIJĮ ȠȞȩµĮIJĮ ıIJĮ ʌȡȠȖȡȐµµĮIJȐ µĮȢ, ȑȞĮ țĮȜȠįȚĮȜİȖµȑȞȠ ȩȞȠµĮ µĮȢ șȣµȓȗİȚ ĮµȑıȦȢ ʌȠȚȠ İȓȞĮȚ IJȠ șȑµĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȉȠ IJµȒµĮ įȘȜȫıİȦȞ ʌİȡȚȑȤİȚ ȩȜİȢ IJȚȢ įȘȜȫıİȚȢ țĮȚ IJȠȣȢ ȠȡȚıµȠȪȢ ȖȚĮ IJĮ ĮȞĮȖȞȦȡȚıIJȚțȐ ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ıIJȠ İțIJİȜȑıȚµȠ IJµȒµĮ. Ǿ įȒȜȦıȘ IJȦȞ įİįȠµȑȞȦȞ ıȘµĮȓȞİȚ ĮʌȜȐ ȩIJȚ țȐȞȠȣµİ ȖȞȦıIJȩ ıIJȠ µİIJĮijȡĮıIJȒ ʌȠȚĮ įİįȠµȑȞĮ ʌȡȑʌİȚ ȞĮ ĮʌȠįİȤșİȓ ȩIJĮȞ İʌİȟİȡȖĮıIJİȓ IJȠ ʌȡȩȖȡĮµµĮ. ȅ µİIJĮijȡĮıIJȒȢ ȤȡİȚȐȗİIJĮȚ ȞĮ ȖȞȦȡȓȗİȚ ȩȤȚ µȩȞȠ ʌȠȚĮ įİįȠµȑȞĮ șĮ ʌĮȡȠȣıȚĮıIJȠȪȞ ĮȜȜȐ țĮȚ IJȚ IJȪʌȠȣ İȓȞĮȚ, ȖȚĮ ȞĮ țĮIJĮȞİȓµİȚ IJȘ µȞȒµȘ ĮȞȐȜȠȖĮ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-20-
țĮȚ ȖȚĮ ȞĮ İțIJİȜȑıİȚ țĮIJȐȜȜȘȜĮ IJȚȢ ʌȚșĮȞȑȢ µĮșȘµĮIJȚțȑȢ ʌȡȐȟİȚȢ µİIJĮȟȪ țȐʌȠȚȦȞ įİįȠµȑȞȦȞ. ȉȠ İțIJİȜȑıȚµȠ IJµȒµĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ĮȡȤȓȗİȚ ʌȐȞIJȠIJİ µİ IJȘ įİıµİȣµȑȞȘ ȜȑȟȘ Begin țĮȚ IJİȜİȚȫȞİȚ µİ IJȘ įİıµİȣµȑȞȘ ȜȑȟȘ End ĮțȠȜȠȣșȠȪµİȞȘ Įʌȩ µȓĮ IJİȜİȓĮ "." ȂİIJĮȟȪ Begin țĮȚ End ȖȡȐijȠȞIJĮȚ ȠȚ İȞIJȠȜȑȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȆȚȠ ıȣȖțİțȡȚµȑȞĮ Ș ȖİȞȚțȒ µȠȡijȒ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ Pascal ijĮȓȞİIJĮȚ ıIJȠ ȈȤȒµĮ 2.2. ǼʌȚțİijĮȜȓįĮ ȆȡȠȖȡȐµµĮIJȠȢ; ǻȘȜȫıİȚȢ ǼIJȚțİIJȫȞ; ǻȘȜȫıİȚȢ ȈIJĮșİȡȫȞ;
ȉµȒµĮ ǻȘȜȫıİȦȞ
ǻȘȜȫıİȚȢ ȉȪʌȦȞ; ǻȘȜȫıİȚȢ ȂİIJĮȕȜȘIJȫȞ; ǻȘȜȫıİȚȢ ȊʌȠʌȡȠȖȡĮµµȐIJȦȞ; Begin ǼȞIJȠȜȒB1; ....
ȀȪȡȚȠ ȆȡȩȖȡĮµµĮ
....
ǼțIJİȜȑıȚµȠ ȉµȒµĮ
ǼȞIJȠȜȒBn; End.
ȈȤȒµĮ 2.2 ȅȜİȢ ȠȚ įȘȜȫıİȚȢ įİȞ İȓȞĮȚ ȣʌȠȤȡİȦIJȚțȑȢ ĮȞ įİȞ İȓȞĮȚ ĮȞĮȖțĮȓİȢ, ĮȜȜȐ ıİ ʌİȡȓʌIJȦıȘ ʌȠȣ ȣʌȐȡȤȠȣȞ IJȩIJİ ȩıȠȞ ĮijȠȡȐ IJȘȞ ʌȡȩIJȣʌȘ Pascal șĮ ʌȡȑʌİȚ ȞĮ IJȠʌȠșİIJȘșȠȪȞ ıIJȘ ıȤİIJȚțȒ șȑıȘ ʌȠȣ ʌĮȡȠȣıȚȐȗȠȞIJĮȚ ıIJȠ ȈȤȒµĮ 2.2, İȞȫ ıIJȘȞ ȉ.ȇ ȑȤȠȣµİ țȐʌȠȚĮ İȜİȣșİȡȓĮ IJȠʌȠșȑIJȘıȘȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-21-
3. ȉȅ ȆǼȇǿǺǹȁȁȅȃ ȉǾȈ ȉ.ȇ 3.1 Ǿ ǼȀȀǿȃǾȈǾ - ȉǹ ȂǼȃȅȊ Ǿ ȉ.ȇ įİȞ İȓȞĮȚ ĮʌȜȫȢ ȑȞĮȢ µİIJĮȖȜȦIJIJȚıIJȒȢ, ĮȜȜȐ ȑȞĮ ʌȜȒȡȦȢ ȠȜȠțȜȘȡȦµȑȞȠ ʌİȡȚȕȐȜȜȠȞ ĮȞȐʌIJȣȟȘȢ ʌȡȠȖȡĮµµȐIJȦȞ - țȐIJȚ ʌȠȣ įİ ıȣµȕĮȓȞİȚ µİ IJȚȢ ȐȜȜİȢ İțįȩıİȚȢ IJȘȢ Pascal. ȅȚ ȐȜȜİȢ Pascal, ıĮȞ ȩȜİȢ IJȚȢ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ ȣȥȘȜȠȪ İʌȚʌȑįȠȣ, ĮʌĮȚIJȠȪȞ Įʌȩ IJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ ȞĮ ʌȘȖĮȚȞȠȑȡȤİIJĮȚ ĮȞȐµİıĮ ıIJȠ ȜİȚIJȠȣȡȖȚțȩ ıȪıIJȘµĮ IJȠȣ Ǿ/Ȋ, ı'ȑȞĮ ıȣȞIJȐțIJȘ țİȚµȑȞȠȣ, ȑȞĮ µİIJĮȖȜȦIJIJȚıIJȒ (compiler) țĮȚ ıİ ȑȞĮ ʌȡȩȖȡĮµµĮ țĮIJĮıțİȣȒȢ İȡȖĮıȚȫȞ. ǼIJıȚ µȚĮ ʌȠȜȪ ĮʌȜȒ ĮȜȜĮȖȒ ı'ȑȞĮ ʌȡȩȖȡĮµµĮ ȩȤȚ µȩȞȠ ʌĮȓȡȞİȚ ȤȡȩȞȠ, ĮȜȜȐ İȖțȣµȠȞİȓ țĮȚ țȚȞįȪȞȠȣȢ ȖȚĮ ȞȑĮ ȜȐșȘ. ȈIJȘȞ ȉ.ȇ, ĮʌȜȫȢ țĮȜȠȪµİ (ijȠȡIJȫȞȠȣµİ) IJȠ ĮȡȤİȓȠ TURBO țĮȚ ȑIJıȚ ĮʌȠțIJȐµİ ʌȡȩıȕĮıȘ ı'ȑȞĮ µİȞȠȪ, µİ IJȘ ȕȠȒșİȚĮ IJȠȣ ȠʌȠȓȠȣ µʌȠȡȠȪµİ ȞĮ įȘµȚȠȣȡȖȠȪµİ, ȞĮ ĮʌȠșȘțİȪȠȣµİ (ıȫȗȠȣµİ), ȞĮ µİIJĮȖȜȦIJIJȓȗȠȣµİ, ȞĮ ıȣȞįȑȠȣµİ, ȞĮ ĮʌȠıijĮȜµĮIJȫȞȠȣµİ, ȞĮ IJȡȑȤȠȣµİ IJĮ ʌȡȠȖȡȐµµĮIJȐ µĮȢ țĮȚ ȞĮ įȘµȚȠȣȡȖȠȪµİ ĮȣIJȠIJİȜȒ ĮȡȤİȓĮ ʌȡȠȖȡĮµµȐIJȦȞ IJĮ ȠʌȠȓĮ ȞĮ µʌȠȡȠȪȞ ȞĮ İțIJİȜİıșȠȪȞ ȑȟȦ Įʌȩ IJȠ ʌİȡȚȕȐȜȜȠȞ IJȘȢ ȉ.ȇ. ǼȣȡȚıțȩµİȞȠȚ ȜȠȚʌȩȞ ıİ ʌİȡȚȕȐȜȜȠȞ DOS țĮȚ ʌȡȠțİȚµȑȞȠȣ ȞĮ ȟİțȚȞȒıȠȣµİ IJȠ ıȪıIJȘµĮ TURBO, ʌȜȘțIJȡȠȜȠȖȠȪµİ ĮʌȜȫȢ TURBO țĮȚ ʌĮIJȐµİ IJȠ ʌȜȒțIJȡȠ ENTER. ȈȤİįȩȞ ĮµȑıȦȢ ݵijĮȞȓȗİIJĮȚ ıIJȘȞ ȠșȩȞȘ IJȠ ʌİȡȚȕȐȜȜȠȞ İʌİȟİȡȖĮıȓĮȢ ʌȡȠȖȡĮµµȐIJȦȞ IJȘȢ ȉ.ȇ. ȈIJȘȞ țȠȡȣijȒ IJȘȢ ȠșȩȞȘȢ ݵijĮȞȓȗİIJĮȚ ȑȞĮ ȕĮıȚțȩ µİȞȠȪ İʌȚȜȠȖȫȞ. ȅȚ İʌȚȜȠȖȑȢ ĮȣIJȠȪ IJȠȣ µİȞȠȪ įȚĮijȑȡȠȣȞ Įʌȩ ȑțįȠıȘ ıİ ȑțįȠıȘ IJȘȢ ȉ.ȇ. Ȇ.Ȥ ȖȚĮ IJȘȞ ȑțįȠıȘ ȉ.ȇ 6, ĮȣIJȑȢ ȠȚ İʌȚȜȠȖȑȢ İȓȞĮȚ ȠȚ File, Edit, Search, Run, Compile, Options, Window țĮȚ Help. ȅȚ ʌİȡȚııȩIJİȡİȢ Įʌȩ ĮȣIJȑȢ IJȚȢ İʌȚȜȠȖȑȢ ȣʌȐȡȤȠȣȞ țĮȚ ıİ ʌĮȜĮȚȩIJİȡİȢ İțįȩıİȚȢ IJȘȢ ȉ.ȇ. ǼµİȓȢ İįȫ șĮ ʌȠȪµİ įȣȠ ȜȩȖȚĮ ȖȚĮ IJȚȢ ʌİȡȚııȩIJİȡȠ ȤȡȘıȚµȠʌȠȚȠȪµİȞİȢ Įʌ'ĮȣIJȑȢ. ǹʌȩ IJȠ ıȣȞIJȐțIJȘ țİȚµȑȞȠȣ µʌȠȡȠȪµİ ȞĮ ȑȤȠȣµİ ʌȡȩıȕĮıȘ ıIJȠ ȕĮıȚțȩ µİȞȠȪ ʌȚȑȗȠȞIJĮȢ IJȠ ʌȜȒțIJȡȠ F10, IJȩIJİ "ijȦIJȓȗİIJĮȚ" (İʌȚȜȑȖİIJĮȚ) țȐʌȠȚĮ Įʌȩ IJȚȢ İʌȚȜȠȖȑȢ IJȠȣ µİȞȠȪ, ıIJȘ ıȣȞȑȤİȚĮ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-22-
µʌȠȡȠȪµİ ȞĮ İʌȚȜȑȟȠȣµİ ȩʌȠȚĮ İʌȚȜȠȖȒ șȑȜȠȣµİ µİIJĮțȚȞȫȞIJĮȢ IJȘ ijȦIJİȚȞȒ ȜȦȡȓįĮ µİ IJĮ ʌȜȒțIJȡĮ "ĮȡȚıIJİȡȩ ȕȑȜȠȢ" țĮȚ "įİȟȚȩ ȕȑȜȠȢ". ȂȚĮ ȐȜȜȘ µȑșȠįȠȢ İʌȚȜȠȖȒȢ İȓȞĮȚ ȞĮ ʌĮIJȒıȠȣµİ ĮʌȜȐ IJȠ F10 țĮȚ µİIJȐ IJȠ ĮȡȤȚțȩ ȖȡȐµµĮ IJȘȢ İʌȚȜȠȖȒȢ (ȖȚĮ ʌĮȡȐįİȚȖµĮ, F ȖȚĮ IJȘȞ İʌȚȜȠȖȒ File, E ȖȚĮ IJȘȞ İʌȚȜȠȖȒ Edit. ȂȚĮ IJȡȓIJȘ µȑșȠįȠȢ İʌȚȜȠȖȒȢ İȓȞĮȚ, ȞĮ ʌĮIJȒıȠȣµİ IJĮȣIJȩȤȡȠȞĮ IJȠ ʌȜȒțIJȡȠ Alt țĮȚ IJȠ ʌȡȫIJȠ ȖȡȐµµĮ IJȘȢ İȞIJȠȜȒȢ IJȠȣ ȕĮıȚțȠȪ µİȞȠȪ ʌȠȣ İʌȚșȣµȠȪµİ. Ǽįȫ ȞĮ ıȘµİȚȫıȠȣµİ ȩIJȚ, ĮȞ įȚĮșȑIJȠȣµİ IJȘȞ T.P 6 țĮȚ ʌȠȞIJȓțȚ (mouse) µʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ ĮµȑıȦȢ IJȚȢ İʌȚȜȠȖȑȢ µİ IJȠ ʌȠȞIJȓțȚ. ȉȠ ıȪıIJȘµĮ IJȦȞ µİȞȠȪ IJȘȢ ȉ.ȇ, İȓȞĮȚ ȑȞĮ ıȪıIJȘµĮ ʌIJȣııȩµİȞȦȞ µİȞȠȪ (pull-down menus). ǻȘȜĮįȒ ȩIJĮȞ İʌȚȜȑȟȠȣµİ µȚĮ İʌȚȜȠȖȒ Įʌȩ IJȠ ȕĮıȚțȩ µİȞȠȪ țĮȚ ʌĮIJȒıȠȣµİ ENTER, ĮȞȠȓȖİȚ ȑȞĮ ȣʌȠµİȞȠȪ µİ IJȚȢ įȚĮșȑıȚµİȢ ȣʌȠİʌȚȜȠȖȑȢ ʌȠȣ µʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ. Ǿ
İʌȚȜȠȖȒ
Edit
IJȠȣ
ȕĮıȚțȠȪ
µİȞȠȪ
µĮȢ
µİIJĮijȑȡİȚ
ıİ
ʌİȡȚȕȐȜȜȠȞ ıȪȞIJĮȟȘȢ țİȚµȑȞȠȣ. ȈIJȘȞ ȑțįȠıȘ 6 ĮȣIJȒ Ș İʌȚȜȠȖȒ ȑȤİȚ țĮȚ ȣʌȠİʌȚȜȠȖȑȢ IJȚȢ ȠʌȠȓİȢ įİ șĮ ĮȞĮȜȪıȠȣµİ İįȫ. Ǿ
İʌȚȜȠȖȒ
File,
ȩʌȦȢ
ijĮȓȞİIJĮȚ
țĮȚ
Įʌȩ
IJȠ
ȩȞȠµȐ
IJȘȢ,
ʌİȡȚȜĮµȕȐȞİȚ IJȚȢ ȜİȚIJȠȣȡȖȓİȢ ȖȚĮ IJȠ ȐȞȠȚȖµĮ țĮȚ IJȘȞ ĮʌȠșȒțİȣıȘ ĮȡȤİȓȦȞ ʌȘȖĮȓȠȣ țȫįȚțĮ. ǼʌȚʌȜȑȠȞ, µʌȠȡȠȪµİ ȞĮ ĮȜȜȐȟȠȣµİ IJȠȞ IJȡȑȤȠȞIJĮ țĮIJȐȜȠȖȠ, ȞĮ ȕȖȠȪµİ ʌȡȠıȦȡȚȞȐ ıIJȠ DOS, ȞĮ İȖțĮIJĮȜİȓȥȠȣµİ ȠȡȚıIJȚțȐ IJȘȞ T.P ț.Ȝ.ʌ. ȉȠ µİȞȠȪ File İȓȞĮȚ ʌIJȣııȩµİȞȠ țĮȚ ȠȚ İʌȚȜȠȖȑȢ IJȠȣ ݵijĮȞȓȗȠȞIJĮȚ țĮIJĮțȩȡȣijĮ. īȚĮ ȞĮ įȚĮȜȑȟȠȣµİ µȚĮ İʌȚȜȠȖȒ, ȤȡȘıȚµȠʌȠȚȠȪµİ IJĮ ʌȜȒțIJȡĮ "ʌȐȞȦ ȕȑȜȠȢ" țĮȚ "țȐIJȦ ȕȑȜȠȢ" ȖȚĮ ȞĮ ijȦIJȓıȠȣµİ IJȘȞ İʌȚȜȠȖȒ ʌȠȣ șȑȜȠȣµİ țĮȚ ıIJȘ ıȣȞȑȤİȚĮ ʌĮIJȐµİ ENTER. Ȉİ µİȡȚțȑȢ Įʌȩ IJȚȢ İʌȚȜȠȖȑȢ IJȠȣ µİȞȠȪ File µʌȠȡȠȪµİ ȞĮ ȑȤȠȣµİ ȐµİıȘ ʌȡȩıȕĮıȘ Įʌȩ ȩʌȠȣ țȚ ĮȞ ȕȡȚıțȩµĮıIJİ, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJĮ ȜİȖȩµİȞĮ "ȚıȤȣȡȐ ʌȜȒțIJȡĮ" (hot-keys), ȖİȖȠȞȩȢ ʌȠȣ İʌȚIJĮȤȪȞİȚ țȐʌȦȢ IJĮ ʌȡȐȖµĮIJĮ. Ȇ.Ȥ Ș İʌȚȜȠȖȒ Open (țĮȚ ıİ ȐȜȜİȢ İțįȩıİȚȢ Load) ĮȞIJȚıIJȠȚȤİȓ ıIJȠ ȚıȤȣȡȩ ʌȜȒțIJȡȠ F3, Ș İʌȚȜȠȖȒ Save ıIJȠ F2 țĮȚ Ș İʌȚȜȠȖȒ Exit (Ȓ Quit) ıIJȠ ıȣȞįȣĮıµȩ ʌȜȒțIJȡȦȞ Alt-X.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
H
İʌȚȜȠȖȒ
Compile
IJȠȣ
-23-
ȕĮıȚțȠȪ
µİȞȠȪ,
µĮȢ
įȓȞİȚ
IJȘ
įȣȞĮIJȩIJȘIJĮ ȞĮ µİIJĮȖȜȦIJIJȓȗȠȣµİ IJȠ ʌȡȩȖȡĮµµȐ µĮȢ țĮȚ ȞĮ țĮșȠȡȓȗȠȣµİ ʌȠȪ șĮ ĮʌȠșȘțİȣIJİȓ IJȠ µİIJĮȖȜȦIJIJȚıµȑȞȠ ʌȡȩȖȡĮµµĮ. ȀĮȚ ĮȣIJȒ įȚĮșȑIJİȚ ʌIJȣııȩµİȞȠ µİȞȠȪ µİ İʌȚȜȠȖȑȢ. ȂȚĮ Įʌ'ĮȣIJȑȢ İȓȞĮȚ țĮșĮȣIJȒ Ș İʌȚȜȠȖȒ Compile, ʌȠȣ ĮȞIJȚıIJȠȚȤİȓ ıIJȠ ıȣȞįȣĮıµȩ ʌȜȒțIJȡȦȞ Alt-F9. ȂȓĮ ȐȜȜȘ İȓȞĮȚ Ș İʌȚȜȠȖȒ Destination, µİ IJȘȞ İʌȚȜȠȖȒ ĮȣIJȒ ȑȤȠȣµİ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ ĮʌȠșȘțİȪıȠȣµİ IJȠȞ İțIJİȜȑıȚµȠ țȫįȚțĮ (.ǼȋǼ ĮȡȤİȓȠ) ʌȠȣ įȘµȚȠȣȡȖİȓIJĮȚ µİIJȐ IJȠ IJȑȜȠȢ IJȘȢ µİIJȐijȡĮıȘȢ, İȓIJİ ıIJȘȞ țȪȡȚĮ µȞȒµȘ (ĮȞ Destination Memory) İȓIJİ ıIJȠ įȓıțȠ (ĮȞ Destination Disk) ȉȑȜȠȢ, ĮijȠȪ ȖȡȐȥȠȣµİ IJȠ ʌȡȩȖȡĮµµȐ µĮȢ țĮȚ IJȠ µİIJĮȖȜȦIJIJȓıȠȣµİ, µʌȠȡȠȪµİ ȞĮ IJȠ İțIJİȜȑıȠȣµİ (IJȡȑȟȠȣµİ) µİ IJȘȞ İʌȚȜȠȖȒ Run IJȠȣ ȕĮıȚțȠȪ µİȞȠȪ. ȂȚĮ Įʌȩ IJȚȢ İʌȚȜȠȖȑȢ IJȠȣ ʌIJȣııȩµİȞȠȣ ʌĮȡĮșȪȡȠȣ ĮȣIJȒȢ IJȘȢ İʌȚȜȠȖȒȢ İȓȞĮȚ țĮșĮȣIJȒ Ș İʌȚȜȠȖȒ Run Ș ȠʌȠȓĮ ĮȞIJȚıIJȠȚȤİȓ țĮȚ ıIJȠ ıȣȞįȣĮıµȩ ʌȜȒțIJȡȦȞ Ctrl-F9.
3.2 ȅ ȈȊȃȉǹȀȉǾȈ ȀǼǿȂǼȃȅȊ ȀȐIJȦ Įʌȩ IJȚȢ İʌȚȜȠȖȑȢ IJȠȣ ȕĮıȚțȠȪ µİȞȠȪ ȣʌȐȡȤİȚ Ș ȜİȖȩµİȞȘ ȖȡĮµµȒ țĮIJȐıIJĮıȘȢ IJȠȣ ıȣȞIJȐțIJȘ țİȚµȑȞȠȣ. Ȉ'ĮȣIJȒ ijĮȓȞİIJĮȚ țȐșİ ıIJȚȖµȒ Ș șȑıȘ IJȠȣ įȡȠµȑĮ µȑıĮ ıIJȠ ʌİȡȚȕȐȜȜȠȞ ıȪȞIJĮȟȘȢ țİȚµȑȞȠȣ (Line, Col - īȡĮµµȒ, ȈIJȒȜȘ), İʌȓıȘȢ µʌȠȡȠȪµİ ȞĮ įȠȪµİ ĮȞ İȓȞĮȚ İȞİȡȖȠʌȠȚȘµȑȞȘ Ș țĮIJȐıIJĮıȘ ʌĮȡݵȕȠȜȒȢ ȤĮȡĮțIJȒȡȦȞ (Insert), ĮȞ İȓȞĮȚ İȞİȡȖȠʌȠȚȘµȑȞȘ Ș ĮȣIJȩµĮIJȘ ıIJȠȓȤȚıȘ (Indent), ĮȞ İȓȞĮȚ İȞİȡȖȠʌȠȚȘµȑȞȠȢ Ƞ ıIJȘȜȠȖȞȫµȠȞĮȢ (Tab) țĮșȫȢ İʌȓıȘȢ țĮȚ IJȠ ȩȞȠµĮ IJȠȣ ĮȡȤİȓȠȣ ʌȠȣ İʌİȟİȡȖĮȗȩµĮıIJİ. To µȑȖȚıIJȠ ʌȜȐIJȠȢ IJȘȢ ȖȡĮµµȒȢ IJȠȣ ıȣȞIJȐțIJȘ İȓȞĮȚ 248 ȤĮȡĮțIJȒȡİȢ țĮȚ ĮȞ ʌȡȠıʌĮșȒıȠȣµİ ȞĮ ȖȡȐȥȠȣµİ ʌȑȡĮȞ ĮȣIJȠȪ șĮ ĮțȠȣıIJİȓ ȑȞĮȢ ȤĮȡĮțIJȘȡȚıIJȚțȩȢ ȒȤȠȢ. ȉȠ ʌĮȡȐșȣȡȠ țİȚµȑȞȠȣ ʌȠȣ ȕȜȑʌȠȣµİ țȐșİ ıIJȚȖµȒ µʌȡȠıIJȐ µĮȢ ȑȤİȚ ʌȜȐIJȠȢ 77 ıIJȘȜȫȞ. ǹȞ ȖȡȐȥȠȣµİ ʌȑȡĮȞ IJȦȞ 77 ıIJȘȜȫȞ, IJȠ ȒįȘ ȖȡĮµµȑȞȠ țİȓµİȞȠ µİIJĮțȚȞİȓIJĮȚ ʌȡȠȢ IJĮ ĮȡȚıIJİȡȐ țĮșȫȢ ȖȡȐijȠȣµİ. ȀĮșȫȢ İȓµĮıIJİ ıİ țĮIJȐıIJĮıȘ ıȪȞIJĮȟȘȢ țİȚµȑȞȠȣ µʌȠȡȠȪµİ ȞĮ ʌȐȡȠȣµİ ȕȠȒșİȚĮ ȖȚĮ țȐʌȠȚĮ ȜȑȟȘ-țȜİȚįȓ (įİıµİȣµȑȞȘ ȜȑȟȘ Ȓ ʌȡȩIJȣʌȠ ĮȞĮȖȞȦȡȚıIJȚțȩ)
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-24-
ĮȞ IJȠʌȠșİIJȒıȠȣµİ IJȠ įȡȠµȑĮ ıİ ȠʌȠȚȠįȒʌȠIJİ ıȘµİȓȠ IJȘȢ ȜȑȟȘȢ țĮȚ ʌĮIJȒıȠȣµİ IJȠ ıȣȞįȣĮıµȩ ʌȜȒțIJȡȦȞ Ctrl-F1. ǼʌȓıȘȢ ʌĮIJȫȞIJĮȢ IJȠ ʌȜȒțIJȡȠ F1 ʌĮȓȡȞȠȣµİ ıȣȞĮijȒ ȕȠȒșİȚĮ (įȘȜĮįȒ ʌĮȓȡȞȠȣµİ ȕȠȒșİȚĮ ȖȚĮ IJȠ µȑȡȠȢ IJȠȣ ʌİȡȚȕȐȜȜȠȞIJȠȢ IJȘȢ ȉ.ȇ ıIJȠ ȠʌȠȓȠ ȕȡȚıțȩµĮıIJİ: µİȞȠȪ, ıȣȞIJȐțIJȘ țİȚµȑȞȠȣ ț.Ȝ.ʌ.). Ȃİ IJȠ ıȣȞįȣĮıµȩ ʌȜȒțIJȡȦȞ Alt-F1 ݵijĮȞȓȗİIJĮȚ Ș IJİȜİȣIJĮȓĮ İʌȚȜİȖµȑȞȘ ȕȠȒșİȚĮ. ǼȞIJȠȜȑȢ ȖȚĮ IJȠ ıȣȞIJȐțIJȘ ȅȚ ȕĮıȚțȑȢ İȞIJȠȜȑȢ ȖȚĮ IJȠ ıȣȞIJȐțIJȘ IJȘȢ ȉ.ȇ ʌİȡȚȖȡȐijȠȞIJĮȚ Įʌȩ IJȠ ıȪıIJȘµĮ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȠ ʌȜȒțIJȡȠ F1 (ȕȠȒșİȚĮ). ǼʌȓıȘȢ ĮȣIJȑȢ ȠȚ İȞIJȠȜȑȢ ijĮȓȞȠȞIJĮȚ țĮȚ ıIJȠȞ ȆȓȞĮțĮ 3.1. ȊʌȐȡȤȠȣȞ ȩµȦȢ µİȡȚțȑȢ İȞIJȠȜȑȢ ʌȠȣ ȤȡİȚȐȗȠȞIJĮȚ țȐʌȠȚĮ İʌİȟȒȖȘıȘ. ȅIJĮȞ İʌİȟİȡȖĮȗȩµĮıIJİ ȑȞĮ IJµȒµĮ (block) IJȠȣ ʌȡȠȖȡȐµµĮIJȩȢ µĮȢ, IJȩIJİ ȖȚĮ ȞĮ ȠȡȓıȠȣµİ ĮȣIJȩ IJȠ IJµȒµĮ IJȠʌȠșİIJȠȪµİ IJȠ įȡȠµȑĮ țȐIJȦ Įʌȩ IJȠ ʌȡȫIJȠ ȖȡȐµµĮ IJȠȣ IJµȒµĮIJȠȢ țĮȚ ʌĮIJȐµİ IJȠ ıȣȞįȣĮıµȩ IJȦȞ ʌȜȒțIJȡȦȞ Ctrl-K B, ıIJȘ ıȣȞȑȤİȚĮ IJȠʌȠșİIJȠȪµİ IJȠ įȡȠµȑĮ ıIJȘȞ ĮµȑıȦȢ İʌȩµİȞȘ șȑıȘ µİIJȐ IJȠ IJİȜİȣIJĮȓȠ ȖȡȐµµĮ IJȠȣ IJµȒµĮIJȠȢ țĮȚ ʌĮIJȐµİ Ctrl-K K. ǹʌȩ IJȘ ıIJȚȖµȒ ʌȠȣ ȠȡȓıȠȣµİ µİ ĮȣIJȩȞ IJȠȞ IJȡȩʌȠ ȑȞĮ IJµȒµĮ µʌȠȡȠȪµİ ȞĮ IJȠ ĮȞIJȚȖȡȐȥȠȣµİ, ȞĮ IJȠ įȚĮȖȡȐȥȠȣµİ, ȞĮ IJȠ µİIJĮijȑȡȠȣµİ ıİ ȐȜȜĮ ıȘµİȓȠ IJȠȣ țİȚµȑȞȠȣ µĮȢ, ȞĮ IJȠ ĮʌȠșȘțİȪıȠȣµİ ıIJȠ įȓıțȠ Ȓ ȞĮ IJȠ țȐȞȠȣµİ ȞĮ µȘ ijĮȓȞİIJĮȚ ȩIJȚ İȓȞĮȚ İʌȚȜİȖµȑȞȠ (ȠȡȚıµȑȞȠ). īȚĮ ȞĮ țȐȞȠȣµİ ȩȜĮ IJĮ ʌĮȡĮʌȐȞȦ ı'ȑȞĮ IJµȒµĮ ʌȡȑʌİȚ ĮijȠȪ IJȠ ȠȡȓıȠȣµİ, ȞĮ ʌĮIJȒıȠȣµİ IJȠȣȢ țĮIJȐȜȜȘȜȠȣȢ ıȣȞįȣĮıµȠȪȢ ʌȜȒțIJȡȦȞ ʌȠȣ ijĮȓȞȠȞIJĮȚ ıIJȠȞ ȆȓȞĮțĮ 3.1. Ǽįȫ ȞĮ ʌȠȪµİ ȩIJȚ, ȩʌȠȣ ȕȜȑʌȠȣµİ ıȣȞįȣĮıµȠȪȢ ʌȜȒțIJȡȦȞ IJȠȣ IJȪʌȠȣ Ctrl (Ȓ Alt Ȓ ȠIJȚįȒʌȠIJİ ȐȜȜȠ)-A B, ıȘµĮȓȞİȚ ȩIJȚ ȑȤȠȞIJĮȢ ʌĮIJȘµȑȞȠ IJȠ ʌȜȒțIJȡȠ Ctrl (Ȓ Alt Ȓ ȠIJȚįȒʌȠIJİ ȐȜȜȠ) ʌĮIJȐµİ țĮȚ IJȠ ʌȜȒțIJȡȠ ǹ, µİIJȐ ĮijȒȞȠȣµİ ĮȣIJȐ IJĮ ʌȜȒțIJȡĮ țĮȚ ʌĮIJȐµİ IJȠ Ǻ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-25-
ǼȞIJȠȜȑȢ µİIJĮțȓȞȘıȘȢ įȡȠµȑĮ ǼȞĮȢ ȤĮȡĮțIJȒȡĮȢ ĮȡȚıIJİȡȐ ǼȞĮȢ ȤĮȡĮțIJȒȡĮȢ įİȟȚȐ ȂȓĮ ȜȑȟȘ ĮȡȚıIJİȡȐ ȂȓĮ ȜȑȟȘ įİȟȚȐ ȂȓĮ ȖȡĮµµȒ ʌȐȞȦ ȂȓĮ ȖȡĮµµȒ țȐIJȦ ǹȡȤȒ ȖȡĮµµȒȢ ȉȑȜȠȢ ȖȡĮµµȒȢ ȀȪȜȚıȘ ʌȐȞȦ ȀȪȜȚıȘ țȐIJȦ ȂȓĮ ıİȜȓįĮ ʌȐȞȦ ȂȓĮ ıİȜȓįĮ țȐIJȦ ȉİȜİȣIJĮȓĮ șȑıȘ IJȠȣ įȡȠµȑĮ ǹȡȤȒ ȠșȩȞȘȢ ȉȑȜȠȢ ȠșȩȞȘȢ ǹȡȤȒ țİȚµȑȞȠȣ ȉȑȜȠȢ țİȚµȑȞȠȣ
Ctrl-S Ctrl-D Ctrl-A Ctrl-F Ctrl-E Ctrl-X Ctrl-Q Ctrl-Q Ctrl-W Ctrl-Z Ctrl-R Ctrl-C Ctrl-Q Ctrl-Q Ctrl-Q Ctrl-Q Ctrl-Q
ǼȞIJȠȜȑȢ įȚĮȖȡĮijȒȢ țĮȚ İȚıĮȖȦȖȒȢ ǼȚıĮȖȦȖȒ İȞİȡȖȠʌȠȓȘıȘȢ/ĮʌİȞİȡȖ. ǼȚıĮȖȦȖȒ ȖȡĮµµȒȢ ǻȣȞĮIJȩIJȘIJİȢ İȚıĮȖȦȖȒȢ ǻȚĮȖȡĮijȒ ȖȡĮµµȒȢ ǻȚĮȖȡĮijȒ µȑȤȡȚ IJȠ IJȑȜȠȢ ȖȡĮµµȒȢ ǻȚĮȖȡĮijȒ ĮȡȚıIJİȡȠȪ ȤĮȡĮțIJȒȡĮ ǻȚĮȖȡĮijȒ ȤĮȡĮțIJȒȡĮ ǻȚĮȖȡĮijȒ įİȟȚȠȪ IJµȒµĮIJȠȢ ǻȚĮȖȡĮijȒ IJµȒµĮIJȠȢ
Ctrl-V Ctrl-N Ctrl-O Ctrl-Y Ctrl-Q Ctrl-H Ctrl-G Ctrl-T Ctrl-K
Ȓ ĮȡȚıIJİȡȩ ȕȑȜȠȢ Ȓ įİȟȚȩ ȕȑȜȠȢ Ȓ Ȓ S D
ʌȐȞȦ ȕȑȜȠȢ țȐIJȦ ȕȑȜȠȢ Ȓ Home Ȓ End
Ȓ Ȓ P E X R C
PgUp PgDn Ȓ Ȓ Ȓ Ȓ
Home End Ctrl-PgUp Ctrl-PgDn
Ȓ Ins O Y Ȓ Backspace Ȓ Del Y
ǼȞIJȠȜȑȢ ĮȞĮȗȒIJȘıȘȢ țĮȚ ĮȞIJȚțĮIJȐıIJĮıȘȢ ǹȞĮȗȒIJȘıȘ Ctrl-Q F ǹȞĮȗȒIJȘıȘ țĮȚ ĮȞIJȚțĮIJȐıIJĮıȘ Ctrl-Q A ǼʌĮȞȐȜȘȥȘ IJİȜİȣIJĮȓĮȢ ĮȞĮȗȒIJȘıȘȢ Ctrl-L ǻȣȞĮIJȩIJȘIJİȢ ĮȞĮȗȒIJȘıȘȢ B ǹȞĮȗȘIJȐİȚ ʌȡȠȢ IJĮ ʌȐȞȦ G ǹȞĮȗȘIJȐİȚ ı'ȠȜȩțȜȘȡȠ IJȠ țİȓµİȞȠ n ǺȡȓıțİȚ IJȘȞ n-ȠıIJȒ ݵijȐȞȚıȘ,µİIJȡȫȞIJĮȢ Įʌ'IJȘȞ ʌĮȡȠȪıĮ șȑıȘ IJȠȣ įȡȠµȑĮ N ǹȞIJȚțĮșȚıIJȐ ȤȦȡȓȢ ȞĮ ȡȦIJȐİȚ U ǹµİȜİȓ țİijĮȜĮȓĮ/ʌİȗȐ ĮȖȖȜȚțȐ ȖȡȐµµĮIJĮ W ǹȞĮȗȘIJȐİȚ µȩȞȠ ȠȜȩțȜȘȡİȢ ȜȑȟİȚȢ L ǹȞĮȗȘIJȐİȚ IJȠʌȚțȐ (µȑıĮ ıIJȠ IJµȒµĮ ʌȠȣ ȕȡȓıțİIJĮȚ Ƞ įȡȠµȑĮȢ ǼȞIJȠȜȑȢ IJµȒµĮIJȠȢ ȈȘµİȓȦıȘ ĮȡȤȒȢ IJµȒµĮIJȠȢ ȈȘµİȓȦıȘ IJȑȜȠȣȢ IJµȒµĮIJȠȢ ȈȘµİȓȦıȘ µȚĮȢ ȜȑȟȘȢ ǹȞIJȚȖȡĮijȒ IJµȒµĮIJȠȢ ȂİIJĮijȠȡȐ IJµȒµĮIJȠȢ ǻȚĮȖȡĮijȒ IJµȒµĮIJȠȢ ǻȚȐȕĮıµĮ IJµȒµĮIJȠȢ Įʌȩ IJȠ įȓıțȠ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ctrl-K Ctrl-K Ctrl-K Ctrl-K Ctrl-K Ctrl-K Ctrl-K
B Ȓ F7 K Ȓ F8 T C V Y R
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-26-
īȡȐȥȚµȠ IJµȒµĮIJȠȢ ıIJȠ įȓıțȠ ǹʌȩțȡȣȥȘ/ݵijȐȞȚıȘ IJµȒµĮIJȠȢ ǼțIJȪʌȦıȘ IJµȒµĮIJȠȢ ȈIJȠȓȤȚıȘ IJµȒµĮIJȠȢ ǹʌȠıIJȠȓȤȚıȘ IJµȒµĮIJȠȢ ǻȚȐijȠȡİȢ İȞIJȠȜȑȢ ǼȟȠįȠȢ Įʌȩ IJȠ ıȣȞIJȐțIJȘ ȈȫıȚµȠ ĮȡȤİȓȠȣ ĭȩȡIJȦıȘ ȞȑȠȣ ĮȡȤİȓȠȣ ȈIJȘȜȠȖȞȫµȠȞĮȢ ǹȣIJȩµĮIJȘ ıIJȠȓȤȚıȘ İȞIJȩȢ/İțIJȩȢ ȉȠʌȠșȑIJȘıȘ ıȘµĮįȚȠȪ șȑıȘȢ ǹȞİȪȡİıȘ ıȘµĮįȚȠȪ șȑıȘȢ ǹʌȠțĮIJȐıIJĮıȘ µȘȞȪµĮIJȠȢ ıijȐȜµĮIJȠȢ
Ctrl-K Ctrl-K Ctrl-K Ctrl-K Ctrl-K
W H P I U
Ctrl-K Ctrl-K F3 Ctrl-I Ctrl-O Ctrl-K Ctrl-Q Ctrl-Q
D Ȓ Ctrl-K Q Ȓ F10 S Ȓ F2 Ȓ Tab I Ȓ Ctrl-Q I n n W
ȆȓȞĮțĮȢ 3.1
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-27-
4. ǺǹȈǿȀȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ ȊʌȐȡȤȠȣȞ µİȡȚțȠȓ ʌȡȠțĮșȠȡȚıµȑȞȠȚ IJȪʌȠȚ įİįȠµȑȞȦȞ ıIJȘȞ ȉ.ȇ. ȅIJĮȞ Ȝȑµİ ʌȡȠțĮșȠȡȚıµȑȞȠȢ IJȪʌȠȢ įİįȠµȑȞȦȞ, İȞȞȠȠȪµİ ȩIJȚ Ƞ µİIJĮȖȜȦIJIJȚıIJȒȢ IJȘȢ ȉ.ȇ ȖȞȦȡȓȗİȚ ȒįȘ ȖȚ'ĮȣIJȩȞ. ǼµİȓȢ ĮʌȜȫȢ įȘȜȫȞȠȣµİ (ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ) ȩIJȚ µȚĮ µİIJĮȕȜȘIJȒ ĮȞȒțİȚ ı'ȑȞĮȞ Įʌȩ IJȠȣȢ IJȪʌȠȣȢ ĮȣIJȠȪȢ, țĮȚ Ƞ µİIJĮȖȜȦIJIJȚıIJȒȢ ȟȑȡİȚ IJȚ ʌȡȑʌİȚ ȞĮ țȐȞİȚ, ȤȦȡȓȢ ʌİȡĮȚIJȑȡȦ įȘȜȫıİȚȢ Įʌȩ IJȘȞ ʌȜİȣȡȐ µĮȢ. ǹȣIJȠȪȢ IJȠȣȢ IJȪʌȠȣȢ șĮ İȟİIJȐıȠȣµİ ıIJȘ ıȣȞȑȤİȚĮ.
4.1 ǹȀǼȇǹǿȅǿ (Integer) ȅʌȦȢ ĮȞIJȚȜĮµȕȐȞİIJĮȚ țĮȞİȓȢ, IJĮ įİįȠµȑȞĮ ĮțİȡĮȓȠȣ IJȪʌȠȣ įİȞ İȓȞĮȚ IJȓʌȠIJĮ ȐȜȜȠ Įʌȩ IJȠȣȢ ȖȞȦıIJȠȪȢ µĮȢ ĮțİȡĮȓȠȣȢ ĮȡȚșµȠȪȢ. ǻȘȜĮįȒ IJĮ ĮțİȡĮȓȠȣ IJȪʌȠȣ įİįȠµȑȞĮ, ĮʌȠIJİȜȠȪȞIJĮȚ Įʌȩ ĮȡȚșµȠȪȢ ȤȦȡȓȢ IJİȜİȓĮ Ȓ ȣʌȠįȚĮıIJȠȜȒ, ȖİȞȚțȐ ȤȦȡȓȢ įİțĮįȚțȩ µȑȡȠȢ, ıȣµʌİȡȚȜĮµȕĮȞȠµȑȞȠȣ IJȠȣ µȘįİȞȩȢ. Ȇ.Ȥ ȠȚ ĮȡȚșµȠȓ: 9 +25 0 1588 0059 İȓȞĮȚ ĮțİȡĮȓȠȣ IJȪʌȠȣ. ȉĮ ĮțİȡĮȓȠȣ IJȪʌȠȣ įİįȠµȑȞĮ, ĮȞȐȜȠȖĮ µİ IJȘȞ ʌİȡȚȠȤȒ ıIJȘȞ ȠʌȠȓĮ ʌĮȓȡȞȠȣȞ IJȚµȑȢ, ȤȦȡȓȗȠȞIJĮȚ ıIJȚȢ ʌĮȡĮțȐIJȦ țĮIJȘȖȠȡȓİȢ: ȂȚțȡȠȓ ǹțȑȡĮȚȠȚ (ShortInt) ǼȓȞĮȚ ȠȚ µȘ įİțĮįȚțȠȓ ʌİȡȚȠȤȒ Įʌȩ -128 ȑȦȢ +127.
ĮȡȚșµȠȓ,
µİȖȑșȠȣȢ
1
byte,
ıIJȘȞ
ǹțȑȡĮȚȠȚ (Integer) ǼȓȞĮȚ ȠȚ µȘ įİțĮįȚțȠȓ ĮȡȚșµȠȓ ıIJȘȞ ʌİȡȚȠȤȒ Įʌȩ -32768 ȑȦȢ +32767. ȈIJȘȞ ȉ.ȇ, ȑȞĮȢ ĮțȑȡĮȚȠȢ ĮʌȠșȘțİȪİIJĮȚ ıIJȘ µȞȒµȘ ıİ 2 bytes. ǹȞȐµİıĮ ıIJĮ ȥȘijȓĮ İȞȩȢ ĮțİȡĮȓȠȣ įİȞ ʌȡȑʌİȚ ȞĮ ȕȐȗȠȣµİ ʌȠIJȑ țȩµµĮ "," Ȓ IJİȜİȓĮ "." ȖȚĮ ȞĮ įȘȜȫıȠȣµİ IJȚȢ ȤȚȜȚȐįİȢ. ȅ µİIJĮȖȜȦIJIJȚıIJȒȢ șĮ ݵijĮȞȓıİȚ µȒȞȣµĮ ȜȐșȠȣȢ ȖȚĮIJȓ șĮ ȞȠµȓıİȚ ȩIJȚ ĮȞĮțĮIJȑȥĮµİ ĮȡȚșµȠȪȢ µİ ĮȜijĮȕȘIJȚțȠȪȢ ȤĮȡĮțIJȒȡİȢ.Ǿ ȉ.ȇ ȑȤİȚ ȑȞĮ ʌȡȩIJȣʌȠ ĮȞĮȖȞȦȡȚıIJȚțȩ, IJȠ MAXINT, ʌȠȣ İȓȞĮȚ µȚĮ ıIJĮșİȡȐ ȓıȘ µİ 32767 (Ƞ µİȖĮȜȪIJİȡȠȢ șİIJȚțȩȢ ĮțȑȡĮȚȠȢ).
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-28-
ǹȞ IJȠ ʌȡȩȖȡĮµµȐ µĮȢ ʌȡȩțİȚIJĮȚ ȞĮ ȤȡȘıȚµȠʌȠȚȒıİȚ µİȖĮȜȪIJİȡȠȣȢ ĮțİȡĮȓȠȣȢ ĮȡȚșµȠȪȢ, µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ IJȘȞ ĮȞIJȓıIJȠȚȤȘ µİIJĮȕȜȘIJȒ ıĮȞ LONGINT (ȕȜȑʌİ ʌĮȡĮțȐIJȦ). ȂİȖȐȜȠȚ ǹțȑȡĮȚȠȚ (LongInt) ǼȓȞĮȚ ȠȚ µȘ įİțĮįȚțȠȓ ĮȡȚșµȠȓ ȠȚ IJȚµȑȢ IJȦȞ ȠʌȠȓȦȞ İȓȞĮȚ ıIJȘȞ ʌİȡȚȠȤȒ Įʌȩ -2147483648 ȑȦȢ +2147483647. ǼȞĮȢ µİȖȐȜȠȢ ĮțȑȡĮȚȠȢ ȤȡİȚȐȗİIJĮȚ 4 bytes ȖȚĮ ȞĮ ʌȐȡİȚ µȚĮ șȑıȘ ıIJȘ µȞȒµȘ. ȅʌȦȢ ȖȚĮ IJȠȞ Integer, ȑIJıȚ țĮȚ ȖȚĮ IJȠȞ Longint ȣʌȐȡȤİȚ ıIJȘȞ ȉ.ȇ ȑȞĮ ʌȡȩIJȣʌȠ ĮȞĮȖȞȦȡȚıIJȚțȩ ʌȠȣ İțijȡȐȗİȚ IJȠ µİȖĮȜȪIJİȡȠ șİIJȚțȩ µİȖȐȜȠ ĮțȑȡĮȚȠ, IJȠ MAXLONGINT. Ȃİ ĮțİȡĮȓȠȣȢ µʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ ʌȡȩıșİıȘ, ĮijĮȓȡİıȘ țĮȚ ʌȠȜȜĮʌȜĮıȚĮıµȩ, ȩʌȦȢ ĮțȡȚȕȫȢ șĮ ʌİȡȚµȑȞĮµİ Įʌȩ IJȘȞ ĮȡȚșµȘIJȚțȒ IJȠȣ ıȤȠȜİȓȠȣ. Ȉİ țȐșİ ʌİȡȓʌIJȦıȘ, IJȠ ĮʌȠIJȑȜİıµĮ IJȘȢ ʌȡȐȟȘȢ İȓȞĮȚ İʌȓıȘȢ ĮțȑȡĮȚȠȢ ĮȡȚșµȩȢ. ȍıIJȩıȠ, Ȓ įȚĮȓȡİıȘ µʌȠȡİȓ ȞĮ ʌĮȡĮȖȐȖİȚ ĮʌȠIJİȜȑıµĮIJĮ ʌȠȣ įİȞ İȓȞĮȚ ĮțȑȡĮȚĮ. īȚĮ ʌĮȡȐįİȚȖµĮ, Ș ʌȡȐȟȘ 8/2 ʌĮȡȐȖİȚ IJȠȞ ĮțȑȡĮȚȠ 4, ĮȜȜȐ Ș 4/3 ʌĮȡȐȖİȚ IJȠ µȘ ĮțȑȡĮȚȠ ĮʌȠIJȑȜİıµĮ 1.3333333. īȚĮ IJȘ įȚĮȓȡİıȘ µİIJĮȟȪ ĮțİȡĮȓȦȞ, Ș ȉ.ȇ įȚĮșȑIJİȚ įȪȠ İȚįȚțȠȪȢ µĮșȘµĮIJȚțȠȪȢ IJİȜİıIJȑȢ, IJȠȣȢ DIV țĮȚ MOD. O DIV İʌȚıIJȡȑijİȚ IJȠ ĮțȑȡĮȚȠ ʌȘȜȓțȠ µȚĮȢ įȚĮȓȡİıȘȢ, țĮȚ Ƞ MOD İʌȚıIJȡȑijİȚ IJȠ ȣʌȩȜȠȚʌȠ. ȆİȡȚııȩIJİȡĮ ȖȚ'ĮȣIJȠȪȢ IJȠȣȢ įȪȠ IJİȜİıIJȑȢ șĮ įȠȪµİ ıIJȠ 5Ƞ ȀİijȐȜĮȚȠ (ȈȉǹĬǼȇǼȈ-ȂǼȉǹǺȁǾȉǼȈ-ȆǹȇǹȈȉǹȈǼǿȈ). ǼʌȓıȘȢ ȞĮ ʌȠȪµİ ĮțȩµĮ ȩIJȚ µʌȠȡȠȪµİ ȞĮ įȠȣȜȑȥȠȣµİ țĮȚ µİ ĮțȑȡĮȚȠȣȢ İțijȡĮıµȑȞȠȣȢ ıIJȠ įİțĮİȟĮįȚțȩ ıȪıIJȘµĮ ĮȡȓșµȘıȘȢ. ǹȣIJȒ Ș įȣȞĮIJȩIJȘIJĮ İȓȞĮȚ ȚįȚĮȓIJİȡĮ ȤȡȒıȚµȘ ȩIJĮȞ İțµİIJĮȜȜİȣȩµĮıIJİ IJȚȢ ʌȡȠȤȦȡȘµȑȞİȢ İȞIJȠȜȑȢ IJȘȢ ȉ.ȇ ȖȚĮ ȤİȚȡȚıµȩ bit țĮȚ byte, Ȓ ȖȚĮ ȐµİıȠ ȤİȚȡȚıµȩ IJȦȞ įȚİȣșȪȞıİȦȞ µȞȒµȘȢ (ȠȚ ȠʌȠȓİȢ İțijȡȐȗȠȞIJĮȚ ʌȐȞIJĮ ıIJȠ įİțĮİȟĮįȚțȩ). ȅȚ įİțĮİȟĮįȚțȑȢ IJȚµȑȢ ĮȡȤȓȗȠȣȞ ʌȐȞIJȠIJİ µİ IJȠ ıȪµȕȠȜȠ IJȠȣ įȠȜĮȡȓȠȣ "$". īȚĮ ʌĮȡȐįİȚȖµĮ, Ƞ įİțĮįȚțȩȢ ĮȡȚșµȩȢ 2635 șĮ İțijȡĮȗȩIJĮȞ ȦȢ $ǹ4Ǻ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-29-
ȉȚµȑȢ Word ȂȚĮ ĮțȩµĮ įȣȞĮIJȩIJȘIJĮ, ȩIJĮȞ Ƞ ĮțȑȡĮȚȠȢ ĮȡȚșµȩȢ ʌȠȣ İʌİȟİȡȖȐȗİIJĮȚ IJȠ ʌȡȩȖȡĮµµĮ įİȞ ʌȡȩțİȚIJĮȚ ȞĮ ȟİʌİȡȐıİȚ IJȠ ȩȡȚȠ +65535, ĮȜȜȐ ȠȪIJİ țĮȚ ȞĮ įİȤșİȓ ĮȡȞȘIJȚțȒ IJȚµȒ, İȓȞĮȚ ȞĮ įȘȜȦșİȓ IJȪʌȠȣ Word. ȅʌȦȢ țĮȚ Ƞ Integer, Ƞ ĮțȑȡĮȚȠȢ IJȪʌȠȣ Word (ȜȑȟȘȢ), țĮIJĮȜĮµȕȐȞİȚ 2 bytes ıIJȘ µȞȒµȘ țĮȚ ȜȑȖİIJĮȚ İʌȓıȘȢ țĮȚ "ĮʌȡȩıȘµȠȢ ĮțȑȡĮȚȠȢ". ȉȚµȑȢ Byte ȅ IJȪʌȠȢ įİįȠµȑȞȦȞ Byte, ĮȞĮijȑȡİIJĮȚ ıİ µȚĮ ȣʌȠʌİȡȚȠȤȒ IJȦȞ ĮțİȡĮȓȦȞ, µİ IJȚµȑȢ Įʌȩ 0 ȑȦȢ +255. ȅʌȦȢ ȣʌȠȞȠİȓ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ, µȚĮ IJȚµȒ byte țĮIJĮȜĮµȕȐȞİȚ 1 µȩȞȠ byte ıIJȘ µȞȒµȘ. ȈȣȞȠȥȓȗȠȞIJĮȢ ȜȠȚʌȩȞ, ȖȚĮ IJȠȣȢ ĮțİȡĮȓȠȣȢ IJȪʌȠȣȢ ȑȤȠȣµİ: ȅȞȠµĮ ShortInt Integer LongInt Byte Word
ȉȚµȑȢ ǹʌȩ -128 -32768 -2147483648 0 0
ȂȑȤȡȚ 127 32767 2147483647 255 65535
Bytes 1 2 4 1 2
4.2 ȆȇǹīȂǹȉǿȀȅǿ (Real) ȉĮ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ įİįȠµȑȞĮ İȓȞĮȚ ȠȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ, įȘȜĮįȒ ȠȚ ĮȡȚșµȠȓ ʌȠȣ ʌİȡȚȑȤȠȣȞ įİțĮįȚțȩ µȑȡȠȢ. ȆȚȠ ıȣȖțİțȡȚµȑȞĮ ȣʌȐȡȤȠȣȞ įȪȠ µȠȡijȑȢ ʌȡĮȖµĮIJȚțȫȞ ĮȡȚșµȫȞ: ȠȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ µİ ıIJĮșİȡȒ Ȓ µİ țȚȞȘIJȒ ȣʌȠįȚĮıIJȠȜȒ (fixed point țĮȚ floating point ĮȞIJȓıIJȠȚȤĮ). ȅȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ µİ ıIJĮșİȡȒ ȣʌȠįȚĮıIJȠȜȒ, İȓȞĮȚ İțİȓȞȠȚ ȠȚ ȠʌȠȓȠȚ ʌİȡȚȑȤȠȣȞ µȩȞȠ IJĮ ȥȘijȓĮ 0123456789, ʌȡȑʌİȚ ȞĮ ıȣµʌİȡȚȜĮµȕȐȞȠȣȞ IJȘ įİțĮįȚțȒ IJİȜİȓĮ țĮȚ įȪȞĮȞIJĮȚ ȞĮ ȑȤȠȣȞ ʌȡȩıȘµȠ. ȈIJȘ ıȣȞȘșȚıµȑȞȘ ʌİȡȓʌIJȦıȘ ȩʌȠȣ ȠȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ ıȣµʌİȡȚȜĮµȕȐȞȠȣȞ įİțĮįȚțȒ IJİȜİȓĮ, șĮ ʌȡȑʌİȚ ȠʌȦıįȒʌȠIJİ ȞĮ ȣʌȐȡȤİȚ ȑȞĮ IJȠȣȜȐȤȚıIJȠȞ ȥȘijȓȠ, ʌȡȚȞ Ȓ µİIJȐ IJȘ įİțĮįȚțȒ IJİȜİȓĮ, ȩIJĮȞ ĮȣIJȒ ȕȡȓıțİIJĮȚ ıIJȘȞ ĮȡȤȒ Ȓ ıIJȠ IJȑȜȠȢ IJȠȣ ĮȡȚșµȠȪ ĮȞIJȓıIJȠȚȤĮ. īȚĮ ʌĮȡȐįİȚȖµĮ, İʌȚIJȡİʌIJȑȢ µȠȡijȑȢ įİįȠµȑȞȦȞ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ µİ ıIJĮșİȡȒ ȣʌȠįȚĮıIJȠȜȒ İȓȞĮȚ: -0.12 1.588 20.0 -123.56780 İȞȫ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-30-
įİȞ İʌȚIJȡȑʌȠȞIJĮȚ ȠȚ µȠȡijȑȢ: 2. .3 3,14. Ǿ ʌİȡȓʌIJȦıȘ ʌȡĮȖµĮIJȚțȫȞ ĮȡȚșµȫȞ µİ țȚȞȘIJȒ ȣʌȠįȚĮıIJȠȜȒ, ĮȞĮijȑȡİIJĮȚ ıIJȠȣȢ ʌȡĮȖµĮIJȚțȠȪȢ ĮȡȚșµȠȪȢ IJȘȢ µȠȡijȒȢ Mx10R, ȩʌȠȣ M İȓȞĮȚ Ƞ ıȣȞIJİȜİıIJȒȢ (mantissa) țĮȚ R Ƞ İțșȑIJȘȢ. ȈIJȘȞ ȉ.ȇ Ș ʌĮȡȐıIJĮıȘ IJȦȞ ĮȡȚșµȫȞ ĮȣIJȫȞ ȑȤİȚ IJȘ µȠȡijȒ MǼR, ȩʌȠȣ M İȓȞĮȚ ȑȞĮȢ ĮțȑȡĮȚȠȢ Ȓ ʌȡĮȖµĮIJȚțȩȢ ĮȡȚșµȩȢ µİ ıIJĮșİȡȒ ȣʌȠįȚĮıIJȠȜȒ ĮțȠȜȠȣșȠȪµİȞȠȢ Įʌȩ IJȠ ȖȡȐµµĮ Ǽ (ʌȠȣ ıȣµȕȠȜȓȗİȚ IJȘ ȕȐıȘ, 10) țĮȚ R İȓȞĮȚ ȑȞĮȢ ĮțȑȡĮȚȠȢ. ȉȩıȠ Ƞ M ȩıȠ țĮȚ Ƞ R įȪȞĮȞIJĮȚ ȞĮ ȑȤȠȣȞ ʌȡȩıȘµȠ, ıIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ IJȠ ʌȡȩıȘµȠ İȓȞĮȚ IJȠ "+" µʌȠȡİȓ ȞĮ ʌĮȡĮȜȘijșİȓ. ǼʌȚIJȡİʌIJȑȢ µȠȡijȑȢ ʌȡĮȖµĮIJȚțȫȞ ĮȡȚșµȫȞ µİ țȚȞȘIJȒ ȣʌȠįȚĮıIJȠȜȒ İȓȞĮȚ ȠȚ: 2.9Ǽ-5 -0.10Ǽ09 25Ǽ-6 134.00Ǽ+20, İȞȫ µȘ İʌȚIJȡİʌIJȑȢ İȓȞĮȚ ȠȚ ĮțȩȜȠȣșİȢ: 13.Ǽ6 12,6Ǽ11 -1.23Ǽ1.2 .45Ǽ+12. Ǿ ȖȡĮijȒ İȞȩȢ ĮȡȚșµȠȪ µİ µȠȡijȒ țȚȞȘIJȒȢ ȣʌȠįȚĮıIJȠȜȒȢ, ȜȑȖİIJĮȚ İʌȓıȘȢ "İțșİIJȚțȒ ȖȡĮijȒ". ȂȚĮ µİIJĮȕȜȘIJȒ IJȪʌȠȣ Real ȤȡİȚȐȗİIJĮȚ 6 bytes µȞȒµȘȢ țĮȚ µʌȠȡİȓ ȞĮ ʌĮȓȡȞİȚ IJȚµȑȢ Įʌȩ 2.9Ǽ-39 ȑȦȢ 1.7Ǽ38. Ǿ İȣİȜȚȟȓĮ IJȘȢ ȤȡȒıȘȢ IJȘȢ İțșİIJȚțȒȢ ȖȡĮijȒȢ ݵijĮȞȓȗİIJĮȚ ʌȚȠ țĮșĮȡȐ ȩIJĮȞ ijIJȐȞȠȣµİ ıIJȠȣȢ µİȖĮȜȪIJİȡȠȣȢ Ȓ IJȠȣȢ µȚțȡȩIJİȡȠȣȢ ĮȡȚșµȠȪȢ ʌȠȣ µʌȠȡȠȪȞ ȞĮ ʌĮȡĮıIJĮșȠȪȞ µİ ʌȡĮȖµĮIJȚțȑȢ IJȚµȑȢ ıIJȘȞ ȉ.ȇ. ǼIJıȚ, IJĮ 1Ǽ-38 țĮȚ 1Ǽ+38 ʌȠȣ įİȞ İȓȞĮȚ IJȓʌȠIJ'ȐȜȜȠ ʌĮȡȐ 1 İʌȓ 10 ȣȥȦµȑȞȠ ıIJȠ -38 țĮȚ 1 İʌȓ 10 ȣȥȦµȑȞȠ ıIJȠ +38 ĮȞIJȓıIJȠȚȤĮ, İȓȞĮȚ ȠµȠȜȠȖȠȣµȑȞȦȢ țĮȜȪIJİȡȠȢ IJȡȩʌȠȢ ȖȚĮ ȞĮ İțijȡĮıIJȠȪȞ ȠȚ IJȚµȑȢ: 1 x 1/100000000000000000000000000000000000000 țĮȚ 1 x 100000000000000000000000000000000000000 ȆĮȡȩȜȠ ʌȠȣ ȖȚĮ IJȠȣȢ ʌȠȜȪ µİȖȐȜȠȣȢ țĮȚ ʌȠȜȪ µȚțȡȠȪȢ ĮȡȚșµȠȪȢ, -Ȓ ȩIJĮȞ șȑȜȠȣµİ ĮțȡȓȕİȚĮ,- Ș µȑșȠįȠȢ ĮȣIJȒ İȓȞĮȚ ʌȠȜȪ ȑȟȣʌȞȘ, Ș İțșİIJȚțȒ ȖȡĮijȒ İȓȞĮȚ ȠʌȦıįȒʌȠIJİ ȐȕȠȜȘ ȩIJĮȞ İțijȡȐȗİȚ ıȣȞȘșȚıµȑȞȠȣȢ ĮȡȚșµȠȪȢ ȩʌȦȢ ȠȚ 1.75 1/2 Ȓ țĮȚ 1.0. ǻȣıIJȣȤȫȢ Ș ȉ.ȇ, ȩʌȦȢ țĮȚ ȩȜİȢ ȠȚ Pascal, țĮșȠȡȓȗİȚ ȩIJȚ ȠȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ İțijȡȐȗȠȞIJĮȚ İȟ ȠȡȚıµȠȪ İțșİIJȚțȐ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-31-
ȆĮȡȩȜȠ ʌȠȣ Ș ʌȚșĮȞȩIJȘIJĮ ȞĮ ȣʌȐȡȟȠȣȞ ȣʌȠȜȠȖȚıµȠȓ IJȦȞ ȠʌȠȓȦȞ IJĮ ĮʌȠIJİȜȑıµĮIJĮ șĮ ȟİʌİȡȞȠȪȞ IJĮ ȩȡȚĮ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ IJȚµȫȞ, İȓȞĮȚ µȚțȡȩIJİȡȘ Įʌ'ȩ,IJȚ ıIJȘȞ ĮȞIJȓıIJȠȚȤȘ ʌİȡȓʌIJȦıȘ IJȦȞ ĮțİȡĮȓȦȞ, șĮ ʌȡȑʌİȚ țĮȚ ʌȐȜȚ ȞĮ IJȘ ȜȐȕȠȣµİ ȣʌȩȥȘ µĮȢ. ǹȞ įȫıȠȣµİ ıIJȠȞ Ǿ/Ȋ IJȘȞ İȞIJȠȜȒ ȞĮ İțIJİȜȑıİȚ µȚĮ ʌȡȐȟȘ ʌȠȣ ʌĮȡȐȖİȚ ĮʌȠIJȑȜİıµĮ µİȖĮȜȪIJİȡȠ Įʌȩ IJȠ ȩȡȚȠ, IJȠ ʌȡȩȖȡĮµµĮ įİ șĮ ʌȡȠȤȦȡȒıİȚ įȓȞȠȞIJĮȢ țȐʌȠȚȠ µȘ ĮʌȠįİțIJȩ ĮʌȠIJȑȜİıµĮ, ĮȜȜȐ șĮ ıIJĮµĮIJȒıİȚ. ȅȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ, Ƞ țĮșȑȞĮȢ Įʌ'IJȠȣȢ ȠʌȠȓȠȣȢ țĮIJĮȜĮµȕȐȞİȚ 6 bytes ıIJȘ µȞȒµȘ, İȓȞĮȚ ʌȠȜȪ țĮIJȐȜȜȘȜȠȚ ȖȚĮ IJȘȞ İțIJȑȜİıȘ ȣʌȠȜȠȖȚıµȫȞ. ȅȜİȢ ȠȚ µĮșȘµĮIJȚțȑȢ ʌȡȐȟİȚȢ İijĮȡµȩȗȠȞIJĮȚ İʌȐȞȦ IJȠȣȢ, țĮȚ µİ IJȠȞ IJȡȩʌȠ ʌȠȣ Ƞ țĮșȑȞĮȢ șĮ ʌİȡȓµİȞİ. ǹʌȩ IJȘȞ ȐȜȜȘ, ȠȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ įİȞ İȓȞĮȚ ıȣµȕĮIJȠȓ µİ IJȚȢ ʌİȡȚııȩIJİȡİȢ ʌȡȠȖȡĮµµĮIJȚıIJȚțȑȢ įȠµȑȢ İȜȑȖȤȠȣ. ȈȣȖțİțȡȚµȑȞĮ, įİ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ ȦȢ įİȓțIJİȢ ıİ ʌȓȞĮțİȢ, ȠȪIJİ ȖȚĮ ȞĮ İȜȑȖȟȠȣȞ µİIJȡȘIJȑȢ țĮȚ ȕȡȩȤȠȣȢ. ǼțIJȩȢ Įʌȩ IJȠȞ IJȪʌȠ Real, ȖȚĮ IJȘȞ ȑțijȡĮıȘ ʌȡĮȖµĮIJȚțȫȞ ĮȡȚșµȫȞ ȣʌȐȡȤȠȣȞ įȚĮșȑıȚµȠȚ ıIJȘȞ ȉ.ȇ IJȑııİȡȚȢ ĮțȩµȘ IJȪʌȠȚ įİįȠµȑȞȦȞ. ǼȓȞĮȚ ȠȚ SINGLE, DOUBLE, EXTENDED țĮȚ COMP. ȅ IJȪʌȠȢ Single țĮIJĮȜĮµȕȐȞİȚ 4 bytes ıIJȘ µȞȒµȘ țĮȚ țȚȞİȓIJĮȚ ĮȞȐµİıĮ ıIJȠ 1.5Ǽ-45 țĮȚ IJȠ 3.4Ǽ+38. ȅ IJȪʌȠȢ Double țĮIJĮȜĮµȕȐȞİȚ 8 bytes țĮȚ µʌȠȡİȓ ȞĮ ʌȐȡİȚ IJȚµȑȢ µİIJĮȟȪ 5.0Ǽ-324 țĮȚ 1.7Ǽ+308. ȅ IJȪʌȠȢ Extended İȓȞĮȚ Ƞ µİȖĮȜȪIJİȡȠȢ ıİ ĮʌĮȚIJȒıİȚȢ µȞȒµȘȢ ʌȡȠțĮșȠȡȚıµȑȞȠȢ IJȪʌȠȢ įİįȠµȑȞȦȞ IJȘȢ ȉ.ȇ, ȤȡİȚȐȗİIJĮȚ 10 bytes țĮȚ µʌȠȡİȓ ȞĮ ʌȐȡİȚ IJȚµȑȢ µİIJĮȟȪ 3.4Ǽ-4932 țĮȚ 1.1Ǽ+4932. ȉȑȜȠȢ Ƞ IJȪʌȠȢ Comp İȓȞĮȚ ʌȚȠ ȜȚIJȩȢ ıİ ĮʌĮȚIJȒıİȚȢ µȞȒµȘȢ Įʌȩ IJȠȞ Extended, țĮȚ µʌȠȡİȓ ȞĮ įİȤșİȓ İȪȡȠȢ IJȚµȫȞ ʌȠȣ țȣµĮȓȞİIJĮȚ ĮȞȐµİıĮ ıIJȠ -9.2Ǽ+18 țĮȚ 9.2Ǽ+18.
ȈIJȠȞ ʌĮȡĮțȐIJȦ ȆȓȞĮțĮ, ıȣȞȠȥȓȗȠȞIJĮȢ, įİȓȤȞȠȣµİ IJȘȞ İȜȐȤȚıIJȘ țĮȚ IJȘ µȑȖȚıIJȘ ĮʌȩȜȣIJȘ IJȚµȒ ȖȚĮ IJȠȞ țȐșİ IJȪʌȠ. īȚĮ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ IJȠȣȢ IJȪʌȠȣȢ Single, Double, Extended țĮȚ Comp șĮ ʌȡȑʌİȚ ȞĮ ȑȤȠȣµİ ıIJȠȞ Ǿ/Ȋ µĮȢ µĮșȘµĮIJȚțȩ ıȣȞİʌİȟİȡȖĮıIJȒ țĮȚ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-32-
ȞĮ ȕȐȜȠȣµİ ʌȡȚȞ Įʌȩ IJȘȞ İʌȚțİijĮȜȓįĮ IJȘȞ µİIJĮȖȜȦIJIJȚıIJȒ (Compiler Directive) {$N+}. ȅȞȠµĮ Real Single Double Extended Comp
ȉȚµȑȢ ǹʌȩ 2.9E-39 1.5E-45 5.0E-324 3.4E-4932 -9.2E+18
ȂȑȤȡȚ 1.7E+38 3.4E+38 1.7E+308 1.1E+4932 9.2E+18
ȠįȘȖȓĮ
ȈȘµ. ȌȘijȓĮ 11-12 7-8 15-16 19-20 19-20
ʌȡȠȢ
IJȠ
Bytes 6 4 8 10 8
ȈIJȠ ıȘµİȓȠ ĮȣIJȩ șĮ ʌȡȑʌİȚ ȞĮ IJȠȞȚıIJİȓ IJȠ ȖİȖȠȞȩȢ ȩIJȚ IJĮ įİįȠµȑȞĮ ĮțİȡĮȓȠȣ IJȪʌȠȣ ʌĮȡȚıIJȐȞȠȞIJĮȚ µİ IJȑȜİȚĮ ĮțȡȓȕİȚĮ ıIJȘ µȞȒµȘ IJȠȣ Ǿ/Ȋ, ıİ ĮȞIJȓșİıȘ µİ IJĮ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ IJĮ ȠʌȠȓĮ ʌĮȡȚıIJȐȞȠȞIJĮȚ ıȣȞȒșȦȢ µİ ȑȞĮ ʌȠȜȪ µȚțȡȩ ıijȐȜµĮ. ǹʌȠIJȑȜİıµĮ ĮȣIJȠȪ İȓȞĮȚ: -
ȅȚ ʌȡȐȟİȚȢ µİ ĮțİȡĮȓȠȣȢ ȖȓȞȠȞIJĮȚ ʌȠȜȪ İțİȓȞİȢ µİ IJȠȣȢ ʌȡĮȖµĮIJȚțȠȪȢ ĮȡȚșµȠȪȢ.
-
ȆȠIJȑ įİ șĮ ʌȡȑʌİȚ ȞĮ ʌİȡȚµȑȞȠȣµİ ȩIJȚ µȚĮ µİIJĮȕĮȜȜȩµİȞȘ ʌȠıȩIJȘIJĮ µʌȠȡİȓ ȞĮ ȖȓȞİȚ ȓıȘ µİ µȚĮ ıIJĮșİȡȐ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ.
ʌȚȠ
ȖȡȒȖȠȡĮ
Įʌȩ
4.3 ȋǹȇǹȀȉǾȇǼȈ (Char) ȅȚ IJȚµȑȢ IJȪʌȠȣ Char įȚĮijȑȡȠȣȞ Įʌȩ IJȠȞ ȑȞĮȞ Ǿ/Ȋ ıIJȠȞ ȐȜȜȠȞ, ȖȚĮIJȓ İȟĮȡIJȫȞIJĮȚ Įʌȩ IJȠȣȢ ıȣȖțİțȡȚµȑȞȠȣȢ ȤĮȡĮțIJȒȡİȢ ʌȠȣ İȓȞĮȚ įȚĮșȑıȚµȠȚ ıIJȠ "ĮȜijȐȕȘIJȠ" IJȠȣ țȐșİ Ǿ/Ȋ. ȉĮ įȪȠ țȜĮıȚțȐ ĮȜijȐȕȘIJĮ ʌȠȣ İȓȞĮȚ įȚĮșȑıȚµĮ İȓȞĮȚ IJĮ ȖȞȦıIJȐ ıĮȞ ASCII țĮȚ EBCDIC. ȈȣȞȒșȦȢ ȖȚĮ ȞĮ İȟĮıijĮȜȓıȠȣµİ IJȘ ȖİȞȚțȒ ȤȡȒıȘ IJȦȞ ʌȡȠȖȡĮµµȐIJȦȞ µĮȢ țĮȜȩ İȓȞĮȚ ȞĮ ʌİȡȚȠȡȚȗȩµĮıIJİ ıIJȠȣȢ ȕĮıȚțȠȪȢ ȤĮȡĮțIJȒȡİȢ ʌȠȣ İȓȞĮȚ IJĮ ȖȡȐµµĮIJĮ IJȠȣ ȜĮIJȚȞȚțȠȪ ĮȜijĮȕȒIJȠȣ Įʌȩ IJȠ ǹ µȑȤȡȚ IJȠ ǽ, IJĮ ȥȘijȓĮ Įʌȩ IJȠ 0 µȑȤȡȚ IJȠ 9, IJȠ țİȞȩ țĮȚ ȩȜȠȣȢ IJȠȣȢ ȤĮȡĮțIJȒȡİȢ ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ IJȘ įȘµȚȠȣȡȖȓĮ İȞIJȠȜȫȞ IJȘȢ ȉ.ȇ (+, -, *, /, :, :=, ,, =, ;, <, <=, >, >=, <>). O IJȪʌȠȢ Char țĮIJĮȜĮµȕȐȞİȚ 1 byte ıIJȘ µȞȒµȘ IJȠȣ Ǿ/Ȋ. Ǿ İʌİȟİȡȖĮıȓĮ ȤĮȡĮțIJȒȡȦȞ įȓȞİȚ IJȘ įȣȞĮIJȩIJȘIJĮ ıIJȘȞ Pascal ȞĮ İʌȚȜȪıİȚ ʌȡȠȕȜȒµĮIJĮ ȩʌȦȢ İȓȞĮȚ Ș țĮIJĮıțİȣȒ ʌȡȠȖȡĮµµȐIJȦȞ µİIJĮȖȜȦIJIJȚıIJȫȞ, İʌİȟİȡȖĮıȓĮȢ ĮȡȤİȓȦȞ µİ ȠȞȩµĮIJĮ țĮȚ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-33-
įȚİȣșȪȞıİȚȢ, µİIJȐijȡĮıȘ Įʌȩ µȚĮ ijȣıȚțȒ ȖȜȫııĮ ıIJȘȞ ȐȜȜȘ (ʌ.Ȥ Įʌȩ ĮȖȖȜȚțȐ ıİ ȖİȡµĮȞȚțȐ), İʌİȟİȡȖĮıȓĮȢ țİȚµȑȞȦȞ ıİ ȕȚȕȜȓĮ ț.Į. ȆȫȢ ȩµȦȢ șĮ ȟİȤȦȡȓıȠȣµİ ȑȞĮ ȤĮȡĮțIJȒȡĮ-ĮȡȚșµȩ Įʌȩ IJȘȞ IJȚµȒ IJȠȣ; ȆȫȢ įȘȜĮįȒ șĮ įȚĮțȡȓȞȠȣµİ IJȠ ȤĮȡĮțIJȒȡĮ 8 Įʌȩ IJȠȞ ĮȡȚșµȩ 8; Ǿ ĮʌȐȞIJȘıȘ ıIJȠ İȡȫIJȘµĮ ĮȣIJȩ İȓȞĮȚ ȩIJȚ ȩIJĮȞ șȑȜȠȣµİ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ ȞĮ įȘȜȫıȠȣµİ IJȘȞ IJȚµȒ İȞȩȢ ȤĮȡĮțIJȒȡĮ, IJȩIJİ ʌİȡȚțȜİȓȠȣµİ IJȠ ȤĮȡĮțIJȒȡĮ µȑıĮ įȪȠ ĮʌȠıIJȡȩijȠȣȢ. ǼIJıȚ IJȠ '8' ıȣµȕȠȜȓȗİȚ IJȠ ȤĮȡĮțIJȒȡĮ 8, İȞȫ IJȠ 8 İȓȞĮȚ Ƞ ĮȡȚșµȩȢ ȠțIJȫ.
4.4 ǹȁĭǹȇǿĬȂǾȉǿȀǹ (String) ǼȞĮȢ IJȪʌȠȢ įİįȠµȑȞȦȞ ʌȠȣ įİȞ ȣʌȠıIJȘȡȓȗİȚ Ș ʌȡȩIJȣʌȘ Pascal ĮȜȜȐ µȩȞȠ Ș ȉ.ȇ, İȓȞĮȚ Ƞ IJȪʌȠȢ ĮȜijĮȡȚșµȘIJȚțȠȪ, String (Ȓ ıȣµȕȠȜȠıİȚȡȐȢ Ȓ ıİȚȡȐȢ ȤĮȡĮțIJȒȡȦȞ Ȓ ȠȡµĮșȠȪ ȤĮȡĮțIJȒȡȦȞ). ǼȞĮ ĮȜijĮȡȚșµȘIJȚțȩ İȓȞĮȚ µȚĮ ıİȚȡȐ ȤĮȡĮțIJȒȡȦȞ. ȈIJȘȞ ȉ.ȇ ĮʌȠIJİȜİȓ ʌȡȠțĮșȠȡȚıµȑȞȠ IJȪʌȠ įİįȠµȑȞȦȞ µİ µȑȖȚıIJȠ µȒțȠȢ 255 ȤĮȡĮțIJȒȡȦȞ. ǹȢ ıȘµİȚȫıȠȣµİ ȩµȦȢ ȩIJȚ, IJĮ ĮȜijĮȡȚșµȘIJȚțȐ İȓȞĮȚ ȑȞĮȢ įȠµȘµȑȞȠȢ, Ȓ ıȪȞșİIJȠȢ IJȪʌȠȢ įİįȠµȑȞȦȞ İʌİȚįȒ ĮʌȠIJİȜȠȪȞIJĮȚ Įʌȩ ȑȞĮȞ ʌȚȠ șݵİȜȚȫįȘ IJȪʌȠ, IJȠȣȢ ȤĮȡĮțIJȒȡİȢ. ȉĮ ĮȜijĮȡȚșµȘIJȚțȐ ȩʌȦȢ țĮȚ ȩȜĮ IJĮ ȐȜȜĮ įİįȠµȑȞĮ ʌȡȑʌİȚ ȞĮ įȘȜȫȞȠȞIJĮȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȉȠ țĮșȑȞĮ ʌȡȑʌİȚ ȞĮ ȑȤİȚ ĮȞĮȖȞȦȡȚıIJȚțȩ țĮȚ µȑȖȚıIJȠ µȒțȠȢ. ȂȚĮ IJȣʌȚțȒ įȒȜȦıȘ ĮȜijĮȡȚșµȘIJȚțȠȪ İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ: ĮȞĮȖȞȦȡȚıIJȚțȩ : String[µȑȖȚıIJȠ µȒțȠȢ]; ǹȞ įİ įȘȜȦșİȓ IJȠ µȑȖȚıIJȠ µȒțȠȢ, Ș ȉ.ȇ IJȠ ȜĮµȕȐȞİȚ ȓıȠ µİ 255. ȊʌȐȡȤȠȣȞ ĮȡțİIJȑȢ ıȣȞĮȡIJȒıİȚȢ ȖȚĮ ȤİȚȡȚıµȩ ĮȜijĮȡȚșµȘIJȚțȫȞ, IJȚȢ ȠʌȠȓİȢ șĮ įȠȪµİ ıIJȠ ȀİijȐȜĮȚȠ 5. ȉȠ µȑȖİșȠȢ µȞȒµȘȢ ʌȠȣ țĮIJĮȜĮµȕȐȞİȚ ȑȞĮ ĮȜijĮȡȚșµȘIJȚțȩ, İȓȞĮȚ ȑȞĮ byte ʌİȡȚııȩIJİȡȠ Įʌȩ IJȠ µȒțȠȢ IJȠȣ. īȚĮ ʌĮȡȐįİȚȖµĮ ĮȞ µȚĮ ĮȜijĮȡȚșµȘIJȚțȒ µİIJĮȕȜȘIJȒ ȑȤİȚ įȘȜȦșİȓ µİ µȒțȠȢ 10 ȤĮȡĮțIJȒȡİȢ (S:String[10]], șĮ ȤȡİȚĮıIJİȓ 11 bytes µȞȒµȘȢ. ǹȣIJȩ ȠijİȓȜİIJĮȚ ıIJȠ ȩIJȚ IJȠ ʌȡȫIJȠ byte țȐșİ ĮȜijĮȡȚșµȘIJȚțȒȢ µİIJĮȕȜȘIJȒȢ ʌĮȡĮțȠȜȠȣșİȓ IJȠ µȒțȠȢ IJȠȣ ĮȜijĮȡȚșµȘIJȚțȠȪ ʌȠȣ İȓȞĮȚ İțİȓȞȘ IJȘ ıIJȚȖµȒ ĮʌȠșȘțİȣµȑȞȠ ıIJȘ µİIJĮȕȜȘIJȒ (ȖȚ'ĮȣIJȩ ȠȞȠµȐȗİIJĮȚ byte
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-34-
µȒțȠȣȢ). ǹȞ µȚĮ ĮȜijĮȡȚșµȘIJȚțȒ µİIJĮȕȜȘIJȒ IJȦȞ 10 ȤĮȡĮțIJȒȡȦȞ ʌİȡȚȑȤİȚ IJȘ ȜȑȟȘ "ǹȃȉǿȅ", IJȠ ʌȡȫIJȠ byte ıIJȘ µȞȒµȘ ʌİȡȚȑȤİȚ IJȘ įȣĮįȚțȒ IJȚµȒ 5, Ș ȠʌȠȓĮ įȘȜȫȞİȚ ȩIJȚ Ș µİIJĮȕȜȘIJȒ ʌİȡȚȑȤİȚ 5 ȤĮȡĮțIJȒȡİȢ. Ȉ'ĮȣIJȒ IJȘȞ ʌİȡȓʌIJȦıȘ, IJĮ IJİȜİȣIJĮȓĮ ʌȑȞIJİ bytes IJȘȢ µİIJĮȕȜȘIJȒȢ ĮȖȞȠȠȪȞIJĮȚ Įʌȩ IJȚȢ įȚĮįȚțĮıȓİȢ ȤİȚȡȚıµȠȪ ĮȜijĮȡȚșµȘIJȚțȫȞ IJȘȢ ȉ.ȇ. Ǿ µȞȒµȘ ʌȠȣ ȑȤİȚ ʌĮȡĮȤȦȡȘșİȓ ıIJȘȞ ĮȜijĮȡȚșµȘIJȚțȒ µİIJĮȕȜȘIJȒ șĮ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: 0 5 byte µȒțȠȣȢn
1 ǹ
2 ȃ
3 ȉ
4 ǿ
5 ȅ
6 }
7 #
8 ȋ
9 /
10 ~
° ǹȜijĮȡȚșµȘIJȚțȩ °
ȈȘµİȚȫıIJİ ȩIJȚ IJȠ ʌȡȫIJȠ byte įİȞ ʌİȡȚȑȤİȚ IJȠ ȤĮȡĮțIJȒȡĮ '5', ĮȜȜȐ IJȘȞ IJȚµȒ 5 ıIJȠ įȣĮįȚțȩ ıȪıIJȘµĮ (00000101), țĮȚ ȩIJȚ IJĮ IJİȜİȣIJĮȓĮ ʌȑȞIJİ bytes ʌİȡȚȑȤȠȣȞ IJȣȤĮȓĮ įİįȠµȑȞĮ.
4.5 ȁȅīǿȀȅǿ (Boolean) ȉĮ įİįȠµȑȞĮ ȜȠȖȚțȠȪ IJȪʌȠȣ Ȓ Boolean (Įʌȩ IJȠ ȩȞȠµĮ IJȠȣ ȂĮșȘµĮIJȚțȠȪ George Boole), ĮʌȠIJİȜȠȪȞIJĮȚ Įʌȩ IJȚȢ ȜȠȖȚțȑȢ İțijȡȐıİȚȢ, IJȚȢ ȠʌȠȓİȢ șĮ įȠȪµİ ıIJȠ ȀİijȐȜĮȚȠ 5, țĮȚ ȜĮµȕȐȞȠȣȞ µȩȞȠ µȓĮ Įʌȩ įȪȠ IJȚµȑȢ: True (ĮȜȘșȑȢ) țĮȚ False (ȥİȣįȑȢ). Ȇ.Ȥ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ ȋ>3, ĮȞ ıIJȠ ȋ ȑȤȠȣµİ įȫıİȚ IJȘȞ IJȚµȒ 2, İȓȞĮȚ False, İȞȫ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ ȋ>4, ĮȞ IJȠ ȋ ȑȤİȚ IJȘȞ IJȚµȒ 8, İȓȞĮȚ True. ȂʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ ʌȡȐȟİȚȢ, µİ įİįȠµȑȞĮ IJȪʌȠȣ Boolean, ȠȚ ʌȡȐȟİȚȢ ĮȣIJȑȢ ȜȑȖȠȞIJĮȚ ȜȠȖȚțȑȢ ʌȡȐȟİȚȢ țĮȚ șĮ IJȚȢ įȠȪµİ ıIJȠ ȀİijȐȜĮȚȠ 5. ȅȚ ȜȠȖȚțȑȢ IJȚµȑȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ĮʌȠțȜİȚıIJȚțȐ ıİ ʌȡȠIJȐıİȚȢ ȣʌȩ ıȣȞșȒțȘ, ʌȠȣ İȜȑȖȤȠȣȞ IJȘ ȡȠȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȂȚĮ ȜȠȖȚțȒ IJȚµȒ țĮIJĮȜĮµȕȐȞİȚ µȞȒµȘ 1 byte.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-35-
5. ȈȉǹĬǼȇǼȈ - ȂǼȉǹǺȁǾȉǼȈ - ȆǹȇǹȈȉǹȈǼǿȈ ȈȤİįȩȞ ıİ țȐșİ ʌȡȩȖȡĮµµĮ, șĮ ȤȡİȚĮȗȩµĮıIJİ țȐʌȠȚȠȣȢ ĮȡȚșµȠȪȢ ȠȚ ȠʌȠȓȠȚ įİ șĮ ĮȜȜȐȗȠȣȞ ʌȠIJȑ țĮIJȐ IJȘȞ İțIJȑȜİıȒ IJȠȣ. ȅȚ ĮȡȚșµȠȓ ĮȣIJȠȓ µʌȠȡȠȪȞ ȞĮ ȠȡȚıșȠȪȞ µȓĮ µȩȞȠ ijȠȡȐ țĮȚ ȞĮ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȩıİȢ ijȠȡȑȢ ȤȡİȚȐȗİIJĮȚ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȒȢ IJȠȣ. īȚĮ ʌĮȡȐįİȚȖµĮ µʌȠȡȠȪµİ ȞĮ țĮșȠȡȓıȠȣµİ IJȘȞ IJȚµȒ IJȠȣ "ʌ" ȓıȘ µİ 3.1415926535898 ıİ ȑȞĮ ʌȡȩȖȡĮµµĮ țĮȚ ȞĮ IJȘ ȤȡȘıȚµȠʌȠȚȠȪµİ µȑıĮ ıIJȠ ʌȡȩȖȡĮµµĮ, ȩIJĮȞ IJȘ ȤȡİȚĮȗȩµĮıIJİ, ȑȤȠȞIJĮȢ ȣʌȩȥȘ µĮȢ ȩIJȚ ĮȣIJȒ İȓȞĮȚ ıȣȞİȤȫȢ įȚĮșȑıȚµȘ țĮȚ ȠȡșȒ. ǼțIJȩȢ Įʌȩ IJȠȣȢ ʌĮȡĮʌȐȞȦ ĮȡȚșµȠȪȢ, ʌȠȣ įİȞ ĮȜȜȐȗȠȣȞ ʌȠIJȑ, ȑȞĮ ʌȡȩȖȡĮµµĮ µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚİȓ țȐʌȠȚȠȣȢ ĮȡȚșµȠȪȢ ȠȚ ȠʌȠȓȠȚ ĮȜȜȐȗȠȣȞ IJȚµȒ țĮIJȐ IJȘȞ İțIJȑȜİıȒ IJȠȣ. ǹȣIJȠȓ µʌȠȡȠȪȞ ȞĮ ȠȡȚıșȠȪȞ ıĮ µİIJĮȕȜȘIJȑȢ ȠȚ ȠʌȠȓİȢ șĮ µʌȠȡȠȪȞ ȞĮ ʌȐȡȠȣȞ ȠʌȠȚİıįȒʌȠIJİ IJȚµȑȢ țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ.
5.1 ȈȉǹĬǼȇǼȈ ȆȠȜȜȑȢ ijȠȡȑȢ ȤȡȘıȚµȠʌȠȚȠȪµİ ıIJĮ ʌȡȠȖȡȐµµĮIJȐ µĮȢ ıIJĮșİȡȑȢ țĮȚ İȓȞĮȚ ȕȠȜȚțȩIJİȡȠ ȞĮ ĮȞĮijİȡȩµĮıIJİ ı'ĮȣIJȑȢ, ȩȤȚ µİ IJȘȞ IJȚµȒ IJȠȣȢ, ĮȜȜȐ µİ țȐʌȠȚȠ ıȣµȕȠȜȚțȩ ȩȞȠµĮ (ĮȞĮȖȞȦȡȚıIJȚțȩ). Ȇ.Ȥ ĮȞIJȓ ȞĮ ȖȡȐijȠȣµİ 3.1415926535898, İȓȞĮȚ ʌȡȠIJȚµȩIJİȡȠ ȞĮ ȖȡȐijȠȣµİ ȇi. H Pascal µĮȢ İʌȚIJȡȑʌİȚ țȐIJȚ IJȑIJȠȚȠ Įȡțİȓ ȞĮ įȘȜȫıȠȣµİ IJȘ ıIJĮșİȡȐ ıIJȠ µȑȡȠȢ įȘȜȫıİȦȞ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȈIJĮșİȡȐ İȓȞĮȚ ĮʌȜȫȢ µȚĮ ʌİȡȚȠȤȒ IJȘȢ µȞȒµȘȢ ʌȠȣ ʌİȡȚȑȤİȚ µȚĮ ıȣȖțİțȡȚµȑȞȘ IJȚµȒ Ș ȠʌȠȓĮ įİȞ ĮȜȜȐȗİȚ țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȈIJȘȞ ʌİȡȚȠȤȒ ĮȣIJȒ IJȘȢ µȞȒµȘȢ ĮʌȠįȓįİIJĮȚ ȑȞĮ ĮȞĮȖȞȦȡȚıIJȚțȩ ȩȞȠµĮ ʌȠȣ ȑȤİȚ įȘµȚȠȣȡȖȒıİȚ Ƞ ȤȡȒıIJȘȢ. īȚĮ IJĮ ȠȞȩµĮIJĮ IJȦȞ ıIJĮșİȡȫȞ ȚıȤȪȠȣȞ ȠȚ țĮȞȩȞİȢ ʌȠȣ ȑȤȠȣµİ įİȚ ȖȚĮ țȐșİ ĮȞĮȖȞȦȡȚıIJȚțȩ, ıIJȘȞ ʌĮȡȐȖȡĮijȠ 2.3. ȆȡȠțİȚµȑȞȠȣ ȞĮ įȘȜȫıȠȣµİ IJĮ ȠȞȩµĮIJĮ IJȦȞ ıIJĮșİȡȫȞ ʌȠȣ ȣʌİȚıȑȡȤȠȞIJĮȚ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ, ȤȡȘıȚµȠʌȠȚȠȪµİ IJȘȞ İȞIJȠȜȒ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-36-
įȒȜȦıȘȢ ıIJĮșİȡȫȞ (constant declaration) Ș ȠʌȠȓĮ ȑȤİȚ IJȘ µȠȡijȒ ʌȠȣ ijĮȓȞİIJĮȚ ʌĮȡĮțȐIJȦ: Const ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢ1 = IJȚµȒ1; ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢ2 = IJȚµȒ2; .. .. .. .. ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢn = IJȚµȒn; ȩʌȠȣ Const İȓȞĮȚ Ș įİıµİȣµȑȞȘ ȜȑȟȘ ʌȠȣ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȖȚĮ IJȘ įȒȜȦıȘ IJȦȞ ıIJĮșİȡȫȞ, ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢi İȓȞĮȚ IJȠ ȩȞȠµĮ IJȘȢ i-ȠıIJȒȢ ıIJĮșİȡȐȢ țĮȚ IJȚµȒi Ș ĮȞIJȓıIJȠȚȤȘ IJȚµȒ IJȘȢ. ȆĮȡȐįİȚȖµĮ Const DaysPerWeek = 7; HoursPerDay = 24; Message = 'ȀĮȜȘµȑȡĮ'; Pi = 3.1415926535898; Hot = True; Letter = 'A'; MaxData = 1024 * 64 - 16;
ȅȚ ʌĮȡĮʌȐȞȦ ıIJĮșİȡȑȢ İȓȞĮȚ ȤȦȡȓȢ IJȪʌȠ ȖȚĮIJȓ įİȞ țĮșȠȡȓȗȠȣµİ IJȠȞ IJȪʌȠ IJȠȣȢ. ǹʌȜȫȢ ȑȞĮ ĮȞĮȖȞȦȡȚıIJȚțȩ ıIJĮșİȡȐȢ ĮțȠȜȠȣșİȓIJĮȚ Įʌȩ IJȠ ıȪµȕȠȜȠ "=" țĮȚ µȚĮ țȣȡȚȠȜİțIJȚțȒ IJȚµȒ (ĮȡȚșµȩ Ȓ ĮȜijĮȡȚșµȘIJȚțȩ). ȅȚ ıIJĮșİȡȑȢ µİ IJȪʌȠ (typed constant) ȠȡȓȗȠȞIJĮȚ (µȩȞȠ ıIJȘȞ ȉ.ȇ țĮȚ ȩȤȚ ıIJȘȞ ʌȡȩIJȣʌȘ Pascal) µİ ʌĮȡȩµȠȚȠ IJȡȩʌȠ, µİ IJȘ įȚĮijȠȡȐ ȩIJȚ Ƞ ȠȡȚıµȩȢ IJȠȣ IJȪʌȠȣ ʌĮȡݵȕȐȜȜİIJĮȚ ĮȞȐµİıĮ ıIJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ ıIJĮșİȡȐȢ țĮȚ IJȠ ıȪµȕȠȜȠ "=", ȩʌȦȢ ijĮȓȞİIJĮȚ ʌĮȡĮțȐIJȦ: Const ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢ1 : IJȪʌȠȢ1 = IJȚµȒ1; ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢ2 : IJȪʌȠȢ2 = IJȚµȒ2; .. .. .. .. .. .. .. .. ĮȞĮȖȞȦȡȚıIJȚțȩ_ıIJĮșİȡȐȢn : IJȪʌȠȢn = IJȚµȒn; ȈIJȘȞ ȠȣıȓĮ µȚĮ ıIJĮșİȡȐ µİ IJȪʌȠ İȓȞĮȚ µȚĮ µİIJĮȕȜȘIJȒ ʌȠȣ įȘȜȫȞİIJĮȚ ȦȢ ıIJĮșİȡȐ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-37-
ȆĮȡȐįİȚȖµĮ Const DaysPerWeek : Integer = 7; HoursPerDay : Byte = 24; Message : String[20] = 'ȀĮȜȘµȑȡĮ'; Interest : Real = 0.14;
-
-
ȂȓĮ ıIJĮșİȡȐ µİ IJȪʌȠ: ǻȚĮijȑȡİȚ Įʌȩ IJȚȢ ıIJĮșİȡȑȢ ıIJȠ ȩIJȚ Ș IJȚµȒ IJȘȢ µʌȠȡİȓ ȞĮ ĮȜȜȐȟİȚ µȑıĮ ıIJȠ ʌȡȩȖȡĮµµĮ (İȓȞĮȚ µİIJĮȕȜȘIJȒ). ǻȚĮijȑȡİȚ Įʌȩ IJȚȢ µİIJĮȕȜȘIJȑȢ ıIJȠ ȩIJȚ ıIJȘȞ ĮȡȤȒ IJȘȢ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȑȤİȚ țĮșȠȡȚıµȑȞȘ IJȚµȒ (įİȞ İȓȞĮȚ ĮȩȡȚıIJȘ)
5.2 ȂǼȉǹǺȁǾȉǼȈ Ǿ µİIJĮȕȜȘIJȒ İȓȞĮȚ ĮʌȜȫȢ µȚĮ ʌİȡȚİȤȩµİȞĮ IJȘȢ ȠʌȠȓĮȢ įȪȞĮȞIJĮȚ ȞĮ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȈIJȘȞ ĮʌȠįȓįİIJĮȚ ȑȞĮ ĮȞĮȖȞȦȡȚıIJȚțȩ ȩȞȠµĮ ȤȡȒıIJȘȢ.
ʌİȡȚȠȤȒ IJȘȢ µȞȒµȘȢ IJĮ ĮȜȜȐȗȠȣȞ țĮIJȐ IJȘ įȚȐȡțİȚĮ ʌİȡȚȠȤȒ ĮȣIJȒ IJȘȢ µȞȒµȘȢ ʌȠȣ ȑȤİȚ įȘµȚȠȣȡȖȒıİȚ Ƞ
ȅȜİȢ ȠȚ µİIJĮȕȜȘIJȑȢ ʌȠȣ ȣʌİȚıȑȡȤȠȞIJĮȚ ıIJȠ ʌȡȩȖȡĮµµĮ ʌȡȑʌİȚ ȞĮ įȘȜȦșȠȪȞ ȩıȠȞ ĮijȠȡȐ IJȠȞ IJȪʌȠ IJȦȞ IJȚµȫȞ ʌȠȣ ȜĮµȕȐȞȠȣȞ, ȖȚĮ ȞĮ ȟȑȡİȚ Ƞ µİIJĮȖȜȦIJIJȚıIJȒȢ ʌȩıȠ ȤȫȡȠ µȞȒµȘȢ șĮ įİıµİȪıİȚ ȖȚĮ IJȘȞ țĮșݵȓĮ Įʌ'ĮȣIJȑȢ. Ǿ İȡȖĮıȓĮ ĮȣIJȒ ȖȓȞİIJĮȚ µİ IJȘȞ İȞIJȠȜȒ įȒȜȦıȘȢ µİIJĮȕȜȘIJȫȞ (variable declaration) Ș ȠʌȠȓĮ ȑȤİȚ IJȘ µȠȡijȒ: Var ȜȓıIJĮ µİIJĮȕȜȘIJȫȞ1 : IJȪʌȠȢ1; ȜȓıIJĮ µİIJĮȕȜȘIJȫȞ2 : IJȪʌȠȢ2; .. .. .. .. ȜȓıIJĮ µİIJĮȕȜȘIJȫȞn : IJȪʌȠȢn; ȩʌȠȣ Var İȓȞĮȚ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ ʌȠȣ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȖȚĮ IJȘ įȒȜȦıȘ µİIJĮȕȜȘIJȫȞ, ȜȓıIJĮ µİIJĮȕȜȘIJȫȞ İȓȞĮȚ IJĮ ĮȞĮȖȞȦȡȚıIJȚțȐ ȠȞȩµĮIJĮ IJȦȞ µİIJĮȕȜȘIJȫȞ ȤȦȡȚıµȑȞĮ µİ țȩµµĮIJĮ "," țĮȚ IJȪʌȠȢ İȓȞĮȚ Ƞ IJȪʌȠȢ IJȦȞ IJȚµȫȞ ʌȠȣ ȠȡȓȗİIJĮȚ µİIJȐ IJȘȞ ȐȞȦ țĮȚ țȐIJȦ IJİȜİȓĮ ":". ȅ IJȪʌȠȢ IJȦȞ IJȚµȫȞ µʌȠȡİȓ ȞĮ İȓȞĮȚ ȑȞĮȢ Įʌȩ IJȠȣȢ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-38-
ȕĮıȚțȠȪȢ IJȪʌȠȣȢ ʌȠȣ ȖȞȦȡȓıĮµİ ıIJȠ ȀİijȐȜĮȚȠ 4, Ȓ ȑȞĮȢ įȚțȩȢ µĮȢ IJȪʌȠȢ įİįȠµȑȞȦȞ ʌȠȣ șĮ IJȠȞ ȑȤȠȣµİ ȠȡȓıİȚ țĮIJȐȜȜȘȜĮ, ıIJȠ µȑȡȠȢ įȒȜȦıȘȢ IJȦȞ ȉȪʌȦȞ (ȕȜȑʌİ ȈȤȒµĮ 2.2). ȆĮȡȐįİȚȖµĮ Var Age, Count, I, J : Integer; Max, X1, X2, Y1 : Real; Char1, Char2 : Char; Yes : Boolean;
5.3 ǹȇǿĬȂǾȉǿȀǼȈ ȆǹȇǹȈȉǹȈǼǿȈ Ȁǹǿ ȉǼȁǼȈȉǼȈ ȅȚ ĮȡȚșµȘIJȚțȑȢ ʌĮȡĮıIJȐıİȚȢ ʌİȡȚȑȤȠȣȞ ıIJĮșİȡȑȢ, µİIJĮȕȜȘIJȑȢ țĮȚ ĮȡȚșµȘIJȚțȠȪȢ IJİȜİıIJȑȢ, ȩʌȦȢ țĮȚ ıIJȘȞ ȐȜȖİȕȡĮ. ȅȚ ĮȡȚșµȘIJȚțȠȓ IJİȜİıIJȑȢ ıIJȘȞ Pascal İȓȞĮȚ ȠȚ ݵijĮȞȚȗȩµİȞȠȚ ıIJȠȞ ȆȓȞĮțĮ 5.1. ǹȡȚșµȘIJȚțȩȢ ȉİȜİıIJȒȢ + * /
ȆȡȐȟȘ ȆȡȩıșİıȘ ǹijĮȓȡİıȘ ȆȠȜ/µȩȢ ǻȚĮȓȡİıȘ
ȆȓȞĮțĮȢ 5.1 ȈIJȘȞ ʌİȡȓʌIJȦıȘ ȩʌȠȣ ȠȚ ıIJĮșİȡȑȢ țĮȚ ȠȚ µİIJĮȕȜȘIJȑȢ İȓȞĮȚ IJȪʌȠȣ Integer ıİ µȚĮ ĮȡȚșµȘIJȚțȒ ʌĮȡȐıIJĮıȘ țĮȚ įİȞ ʌİȡȚȑȤİIJĮȚ Ƞ IJİȜİıIJȒȢ IJȘȢ įȚĮȓȡİıȘȢ, IJȩIJİ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ İȓȞĮȚ ĮțȑȡĮȚȠȢ ĮȡȚșµȩȢ, ıİ ȩȜİȢ IJȚȢ ȐȜȜİȢ ʌİȡȚʌIJȫıİȚȢ Ș IJȚµȒ IJȘȢ İȓȞĮȚ ʌȡĮȖµĮIJȚțȩȢ ĮȡȚșµȩȢ. ȂʌȠȡȠȪµİ ȞĮ ʌĮȡĮıIJȒıȠȣµİ ʌȠȜȪʌȜȠțİȢ ĮȜȖİȕȡȚțȑȢ ʌĮȡĮıIJȐıİȚȢ ıIJȘȞ Pascal, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ ʌĮȡİȞșȑıİȚȢ. ǼʌȓıȘȢ Ș ıİȚȡȐ ʌȡȠIJİȡĮȚȩIJȘIJĮȢ IJȦȞ ʌȡȐȟİȦȞ ıIJȘȞ Pascal įȚȑʌİIJĮȚ Įʌȩ ȠȡȚıµȑȞȠȣȢ țĮȞȩȞİȢ. Ǿ ıİȚȡȐ ĮȣIJȒ ijĮȓȞİIJĮȚ ıIJȠȞ ȆȓȞĮțĮ 5.3. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ ʌȡȐȟİȚȢ ȑȤȠȣȞ IJȘȞ ȓįȚĮ ʌȡȠIJİȡĮȚȩIJȘIJĮ, IJȩIJİ İțIJİȜȠȪȞIJĮȚ µİ IJȘ ıİȚȡȐ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ ıIJȘȞ ʌĮȡȐıIJĮıȘ țĮȚ Įʌȩ ĮȡȚıIJİȡȐ ʌȡȠȢ IJĮ įİȟȚȐ. ǼȓȞĮȚ ijĮȞİȡȩ, ȜȠȚʌȩȞ, ȩIJȚ İȚıȐȖȠȞIJĮȢ ʌĮȡİȞșȑıİȚȢ ıİ µȚĮ ĮȡȚșµȘIJȚțȒ ʌĮȡȐıIJĮıȘ, ĮȜȜȐȗİȚ Ș įȚȐIJĮȟȘ IJȦȞ ȣʌȠȜȠȖȚıµȫȞ țĮȚ țĮIJȐ ıȣȞȑʌİȚĮ Ș IJȚµȒ IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-39-
ȆĮȡȐįİȚȖµĮ ǹȜȖİȕȡȚțȒ ȆĮȡȐıIJĮıȘ
ȆĮȡȐıIJĮıȘ ıİ Pascal
1)b 2 4 ac
SQR(B)-4*A*C
2)
a b c d
(A+B)/(C+D)
3)
1 1 x2
1/(1+SQR(X))
4)
b b 2 4 ac 2a
(-B+SQRT(SQR(B)-4*A*C)/(2*A)
5)
( a b) c ( d e)( f g )
(A+B)*C/((D+E)*(F+G))
ǼȚįȚțȠȓ ȉİȜİıIJȑȢ ǹțİȡĮȓȦȞ ǼțIJȩȢ Įʌȩ IJȠȣȢ ĮȡȚșµȘIJȚțȠȪȢ IJİȜİıIJȑȢ (+,-,*,/) ȣʌȐȡȤȠȣȞ įȪȠ IJİȜİıIJȑȢ ȠȚ DIV țĮȚ MOD, ȠȚ ȠʌȠȓȠȚ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ µȩȞȠ ȖȚĮ ĮțİȡĮȓȠȣ IJȪʌȠȣ ıIJĮșİȡȑȢ, µİIJĮȕȜȘIJȑȢ Ȓ ʌĮȡĮıIJȐıİȚȢ țĮȚ ȑȤȠȣȞ IJȘȞ ʌĮȡĮțȐIJȦ ıȪȞIJĮȟȘ: X DIV Y
X MOD Y
țĮȚ
O IJİȜİıIJȒȢ DIV įȓȞİȚ IJȠ ĮțȑȡĮȚȠ ʌȘȜȓțȠ IJȘȢ įȚĮȓȡİıȘȢ IJȠȣ ȋ įȚȐ IJȠȣ Ȋ, İȞȫ Ƞ IJİȜİıIJȒȢ MOD įȓȞİȚ IJȠ ȣʌȩȜȠȚʌȠ ĮȣIJȒȢ IJȘȢ įȚĮȓȡİıȘȢ. ȆĮȡȐįİȚȖµĮ ȆȡȐȟȘ 2 MOD 7 2 DIV 7 12 MOD 3 12 DIV 3 12 DIV 9 12 MOD 9
ȉȚµȒ 2 0 0 4 1 3
ȊʌȐȡȤȠȣȞ İʌȓıȘȢ ȠȚ IJİȜİıIJȑȢ AND, OR, XOR, NOT, SHL țĮȚ SHR ʌȠȣ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ ȖȚĮ ʌȡȐȟİȚȢ ıİ ĮțİȡĮȓȠȣ IJȪʌȠȣ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-40-
µİIJĮȕȜȘIJȑȢ. ȅȚ IJİȜİıIJȑȢ AND, OR, XOR ıȣȖțȡȓȞȠȣȞ, ȑȞĮ ʌȡȠȢ ȑȞĮ, ȩȜĮ IJĮ bit įȪȠ įȚĮijȠȡİIJȚțȫȞ µİIJĮȕȜȘIJȫȞ byte țĮȚ İʌȚıIJȡȑijȠȣȞ IJȠ ĮʌȠIJȑȜİıµĮ ıİ µȚĮ IJȡȓIJȘ µİIJĮȕȜȘIJȒ byte. Ǿ IJȚµȒ IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ İȟĮȡIJȐIJĮȚ Įʌȩ IJȠȞ IJİȜİıIJȒ ʌȠȣ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ. ȅ IJİȜİıIJȒȢ AND (ĮȡȚșµȘIJȚțȒ ıȪȗİȣȟȘ) ıȣȖțȡȓȞİȚ IJȠ țȐșİ bit ıIJĮ įȪȠ byte, ȑȞĮ ʌȡȠȢ ȑȞĮ, țĮȚ ĮʌȠșȘțİȪİȚ IJȠ ĮʌȠIJȑȜİıµĮ ı'ȑȞĮ IJȡȓIJȠ byte. ǹȞ Ș ıȪȖțȡȚıȘ įȚĮʌȚıIJȫıİȚ ȩIJȚ țĮȚ IJĮ įȪȠ bit İȓȞĮȚ "1", IJȩIJİ IJȠ ĮȞIJȓıIJȠȚȤȠ bit ıIJȠ IJȡȓIJȠ byte ʌĮȓȡȞİȚ IJȚµȒ "1", įȚĮijȠȡİIJȚțȐ ʌĮȓȡȞİȚ IJȚµȒ "0". ȅʌȦȢ Ƞ IJİȜİıIJȒȢ AND ȑIJıȚ țĮȚ Ƞ IJİȜİıIJȒȢ OR (ĮȡȚșµȘIJȚțȒ įȚȐȗİȣȟȘ) ıȣȖțȡȓȞİȚ țȐșİ bit IJȦȞ įȪȠ byte țĮȚ ĮʌȠșȘțİȪİȚ IJȠ ĮʌȠIJȑȜİıµĮ ı'ȑȞĮ IJȡȓIJȠ. Ǽįȫ ȩµȦȢ ȖȚĮ ȞĮ İȓȞĮȚ "1" IJȠ bit IJȠȣ IJȡȓIJȠȣ byte, Įȡțİȓ ȞĮ İȓȞĮȚ "1" IJȠȣȜȐȤȚıIJȠȞ ȑȞĮ Įʌȩ IJĮ ĮȞIJȓıIJȠȚȤĮ bit IJȦȞ įȪȠ byte ʌȠȣ ıȣȖțȡȓȞȠȞIJĮȚ. ȅ
IJİȜİıIJȒȢ
XOR
(ĮȡȚșµȘIJȚțȒ
ĮʌȠțȜİȚıIJȚțȒ
įȚȐȗİȣȟȘ)
ĮʌȠșȘțİȪİȚ ıIJȠ byte IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ IJȘȞ IJȚµȒ "1" ı'İțİȓȞĮ IJĮ bit ʌȠȣ, IJĮ ĮȞIJȓıIJȠȚȤȐ IJȠȣȢ ıIJĮ įȪȠ byte ʌȠȣ ıȣȖțȡȓȞȠȞIJĮȚ, İȓȞĮȚ įȚĮijȠȡİIJȚțȐ µİIJĮȟȪ IJȠȣȢ. ȅ IJİȜİıIJȒȢ NOT (ĮȡȚșµȘIJȚțȒ ȐȡȞȘıȘ) İijĮȡµȩȗİIJĮȚ ıİ ȑȞĮ byte țĮȚ ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȘȞ ĮȞIJȚıIJȡȠijȒ ȩȜȦȞ IJȦȞ bit ĮȣIJȠȪ IJȠȣ byte. ȅȚ IJİȜİıIJȑȢ SHL (Shift-Left) (ĮȡȚıIJİȡȒ ȠȜȓıșȘıȘ) țĮȚ SHR (Shift-Right) (įİȟȚȐ ȠȜȓıșȘıȘ), ȩʌȦȢ ijĮȓȞİIJĮȚ țȚ Įʌ'IJȠ ȩȞȠµȐ IJȠȣȢ, ȠȜȚıșĮȓȞȠȣȞ IJĮ bit İȞȩȢ byte ʌȡȠȢ IJĮ ĮȡȚıIJİȡȐ Ȓ ʌȡȠȢ IJĮ įİȟȚȐ ĮȞIJȓıIJȠȚȤĮ. ǼȞĮ byte µʌȠȡİȓ ȞĮ ȠȜȚıșȒıİȚ ʌȡȠȢ IJĮ ĮȡȚıIJİȡȐ Ȓ įİȟȚȐ µȑȤȡȚ ȠȤIJȫ IJȠ ʌȠȜȪ ijȠȡȑȢ, ȠʌȩIJİ ȩȜĮ IJĮ bit IJȠȣ șĮ ȑȤȠȣȞ ʌȐȡİȚ IJȘȞ IJȚµȒ 0. īȚĮ IJȘ ıİȚȡȐ ʌȡȠIJİȡĮȚȩIJȘIJĮȢ IJȦȞ IJİȜİıIJȫȞ ȕȜȑʌİ IJȠȞ ȆȓȞĮțĮ 5.3.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-41-
5.4 ȁȅīǿȀǼȈ ȆǹȇǹȈȉǹȈǼǿȈ Ȁǹǿ ȉǼȁǼȈȉǼȈ ȅʌȦȢ ȠȡȓıĮµİ IJȚȢ ĮȡȚșµȘIJȚțȑȢ ʌĮȡĮıIJȐıİȚȢ țĮIJȐ IJȠȞ ȓįȚȠ IJȡȩʌȠ µʌȠȡȠȪµİ ȞĮ ıȤȘµĮIJȓıȠȣµİ µȓĮ ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ µİIJĮȕȜȘIJȑȢ Ȓ ıIJĮșİȡȑȢ țĮȚ IJȠȣȢ IJİȜİıIJȑȢ ıȣıȤȑIJȚıȘȢ ʌȠȣ ʌİȡȚȖȡȐijȠȞIJĮȚ ıIJȠȞ ȆȓȞĮțĮ 5.2. ǹȞȐȜȠȖĮ µİ IJȚȢ ıȤİIJȚțȑȢ IJȚµȑȢ IJȦȞ µİIJĮȕȜȘIJȫȞ țĮȚ ıIJĮșİȡȫȞ ʌȠȣ ȣʌİȚıȑȡȤȠȞIJĮȚ ıİ µȚĮ ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ, Ș IJȚµȒ IJȘȢ µʌȠȡİȓ ȞĮ İȓȞĮȚ True Ȓ False. ȆĮȡȐįİȚȖµĮ ȂȚĮ ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ Ȓ ıȣȞșȒțȘ İȓȞĮȚ Ș ǹ>Ǻ ǹȞ ǹ=2 țĮȚ Ǻ=1 IJȩIJİ Ș IJȚµȒ IJȘȢ ʌĮȡĮʌȐȞȦ ʌĮȡȐıIJĮıȘȢ İȓȞĮȚ True, ĮȞ ȩµȦȢ Ǻ=3 IJȩIJİ Ș IJȚµȒ IJȘȢ İȓȞĮȚ False. ǹȜȖİȕȡȚțȩȢ ȉİȜİıIJȒȢ = z < d > t
ȉİȜȑıIJȒȢ ıIJȘȞ Pascal = < > < <= > >=
ȆȓȞĮțĮȢ 5.2 ȁȠȖȚțȠȓ ȉİȜİıIJȑȢ ȆȡȠțİȚµȑȞȠȣ ȞĮ ıȤȘµĮIJȓıȠȣµİ ʌİȡȚııȩIJİȡȠ ʌȠȜȪʌȜȠțİȢ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ, ȤȡȘıȚµȠʌȠȚȠȪµİ IJȠȣȢ ȜȠȖȚțȠȪȢ IJİȜİıIJȑȢ AND, OR, XOR țĮȚ NOT. ȅ ȜȠȖȚțȩȢ IJİȜİıIJȒȢ AND (ȜȠȖȚțȒ ıȪȗİȣȟȘ) ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȖȚĮ IJȠ ıȣȞįȣĮıµȩ įȪȠ ȜȠȖȚțȫȞ ʌĮȡĮıIJȐıİȦȞ ȦȢ İȟȒȢ: ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 AND ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ2
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-42-
Ǿ IJȚµȒ IJȘȢ ʌĮȡĮʌȐȞȦ ıȪȞșİIJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ İȓȞĮȚ True, µȩȞȠ ȩIJĮȞ țĮȚ ȠȚ įȪȠ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ ȑȤȠȣȞ IJȚµȒ True, įȚĮijȠȡİIJȚțȐ Ș IJȚµȒ IJȘȢ İȓȞĮȚ False. O ȜȠȖȚțȩȢ IJİȜİıIJȒȢ ĮȞȐȜȠȖĮ ȦȢ İȟȒȢ:
OR
(ȜȠȖȚțȒ
įȚȐȗİȣȟȘ)
ȤȡȘıȚµȠʌȠȚİȓIJĮȚ
ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 OR ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 H IJȚµȒ IJȘȢ ʌȡȐȟȘȢ OR İȓȞĮȚ True ĮȞ İȓIJİ Ș µȓĮ Ȓ țĮȚ ȠȚ įȪȠ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ İȓȞĮȚ True. ȂȩȞȠ ȩIJĮȞ țĮȚ ȠȚ įȪȠ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ İȓȞĮȚ False, Ș IJȚµȒ IJȘȢ OR ʌȡȐȟȘȢ İȓȞĮȚ False. ȅ ȜȠȖȚțȩȢ IJİȜİıIJȒȢ XOR ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȦȢ İȟȒȢ:
(ȜȠȖȚțȒ
ĮʌȠțȜİȚıIJȚțȒ
įȚȐȗİȣȟȘ)
ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 XOR ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 ȅ IJİȜİıIJȒȢ XOR ıȣȞįȣȐȗİȚ IJȚȢ įȪȠ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ ȑIJıȚ ȫıIJİ ȠȜȩțȜȘȡȘ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȞĮ İȓȞĮȚ True, ĮȞ µȓĮ țĮȚ µȩȞȠ µȓĮ Įʌȩ IJȚȢ įȪȠ İȓȞĮȚ True. ǹȞ țĮȚ ȠȚ įȪȠ İȓȞĮȚ True Ȓ țĮȚ ȠȚ įȪȠ False, IJȩIJİ ȠȜȩțȜȘȡȘ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ İȓȞĮȚ False. O ȜȠȖȚțȩȢ IJİȜİıIJȒȢ NOT (ȜȠȖȚțȒ ȐȡȞȘıȘ) İijĮȡµȩȗİIJĮȚ ıİ µȓĮ µȩȞȠ ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȦȢ İȟȒȢ: NOT ȁȠȖȚțȒ ʌĮȡȐıIJĮıȘ To ĮʌȠIJȑȜİıµĮ IJȘȢ İʌȓįȡĮıȘȢ IJȠȣ NOT İȓȞĮȚ Ș ȐȡȞȘıȘ (IJȠ ıȣµʌȜȒȡȦµĮ) IJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ. ǻȘȜĮįȒ ĮȞ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȑȤİȚ IJȚµȒ True IJȩIJİ µİ IJȘȞ İʌȓįȡĮıȘ IJȠȣ NOT Ș IJȚµȒ IJȘȢ ȖȓȞİIJĮȚ False țĮȚ ĮȞIJȓıIJȡȠijĮ.
*
ȉİȜİıIJȑȢ ( ) NOT / DIV MOD AND SHL + - OR XOR = < > <> <= >=
SHR
ȆȓȞĮțĮȢ 5.3
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
ȆȡȠIJİȡĮȚȩIJȘIJĮ 1 2 3 4 5
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-43-
ǹȞĮțİijĮȜĮȓȦıȘ ȉİȜİıIJȫȞ ȈIJȠȞ ȆȓȞĮțĮ 5.4 ȕȜȑʌȠȣµİ ȩȜȠȣȢ IJȠȣȢ IJİȜİıIJȑȢ IJȘȢ ȉ.ȇ, țĮșȫȢ țĮȚ IJȠȣȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ ıIJȠȣȢ ȠʌȠȓȠȣȢ İijĮȡµȩȗȠȞIJĮȚ. ȉİȜİıIJȒȢ
ȈȘµĮıȓĮ
ǼȓıȠįȠȢ
ǹʌȠIJȑȜİıµĮ
*
ȆȠȜȜĮʌȜĮıȚĮıµȩȢ
ǹțȑȡĮȚȠȚ ȆȡĮȖµĮIJȚțȠȓ ǹțȑȡĮȚȠȢ,ȆȡĮȖµĮIJȚțȩȢ
ǹțȑȡĮȚȠȢ ȆȡĮȖµĮIJȚțȩȢ ȆȡĮȖµĮIJȚțȩȢ
/
ǻȚĮȓȡİıȘ
ȆȡĮȖµĮIJȚțȠȓ ǹțȑȡĮȚȠȚ ǹțȑȡĮȚȠȢ,ȆȡĮȖµĮIJȚțȩȢ
ȆȡĮȖµĮIJȚțȩȢ ȆȡĮȖµĮIJȚțȩȢ ȆȡĮȖµĮIJȚțȩȢ
+
ȆȡȩıșİıȘ
ǹțȑȡĮȚȠȚ ȆȡĮȖµĮIJȚțȠȓ ǹțȑȡĮȚȠȢ,ȆȡĮȖµĮIJȚțȩȢ
ǹțȑȡĮȚȠȢ ȆȡĮȖµĮIJȚțȩȢ ȆȡĮȖµĮIJȚțȩȢ
-
ǹijĮȓȡİıȘ
ǹțȑȡĮȚȠȚ ȆȡĮȖµĮIJȚțȠȓ ǹțȑȡĮȚȠȢ,ȆȡĮȖµĮIJȚțȩȢ
ǹțȑȡĮȚȠȢ ȆȡĮȖµĮIJȚțȩȢ ȆȡĮȖµĮIJȚțȩȢ
ȅȚ ʌĮȡĮțȐIJȦ IJİȜİıIJȑȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ĮʌȠțȜİȚıIJȚțȐ ȖȚĮ ĮțȑȡĮȚĮ įȚĮȓȡİıȘ ȉİȜİıIJȒȢ ȈȘµĮıȓĮ ǼȓıȠįȠȢ ǹʌȠIJȑȜİıµĮ DIV
ȆȘȜȓțȠ
ǹțȑȡĮȚȠȚ
ǹțȑȡĮȚȠȢ
MOD
ȊʌȩȜȠȚʌȠ
ǹțȑȡĮȚȠȚ
ǹțȑȡĮȚȠȢ
ȅȚ ʌĮȡĮțȐIJȦ IJİȜİıIJȑȢ įȑȤȠȞIJĮȚ įȚȐijȠȡİȢ İȚıȩįȠȣȢ, ĮȜȜȐ įȓȞȠȣȞ ʌȐȞIJĮ ĮʌȠIJİȜȑıµĮIJĮ ȜȠȖȚțȑȢ IJȚµȑȢ = ǿıȩIJȘIJĮ < ȂȚțȡȩIJİȡȠ Įʌȩ > ȂİȖĮȜȪIJİȡȠ Įʌȩ <= ȂȚțȡȩIJİȡȠ Įʌȩ Ȓ ȓıȠ µİ >= ȂİȖĮȜȪIJİȡȠ Įʌȩ Ȓ ȓıȠ µİ < > ȅȤȚ ȓıȠ µİ ȅȚ ʌĮȡĮțȐIJȦ IJİȜİıIJȑȢ įȑȤȠȞIJĮȚ ıĮȞ İȓıȠįȠ ĮțȑȡĮȚİȢ Ȓ ȜȠȖȚțȑȢ IJȚµȑȢ ȉİȜİıIJȒȢ ȈȘµĮıȓĮ ǼȓıȠįȠȢ ǹʌȠIJȑȜİıµĮ NOT
ȁȠȖȚțȒ ȐȡȞȘıȘ ǹȡȚșµȘIJȚțȒ ȐȡȞȘıȘ (ĮȞĮıIJȡȠijȒ bit)
ȁȠȖȚțȒ ǹțȑȡĮȚĮ
ȁȠȖȚțȩ ǹțȑȡĮȚȠ
AND
ȁȠȖȚțȒ ıȪȗİȣȟȘ ǹȡȚșµȘIJȚțȒ ıȪȗİȣȟȘ
ȁȠȖȚțȑȢ ǹțȑȡĮȚİȢ
ȁȠȖȚțȩ ǹțȑȡĮȚȠ
OR
ȁȠȖȚțȒ įȚȐȗİȣȟȘ ǹȡȚșµȘIJȚțȒ ǻȚȐȗİȣȟȘ
ȁȠȖȚțȑȢ ǹțȑȡĮȚİȢ
ȁȠȖȚțȩ ǹțȑȡĮȚȠ
XOR
ȁȠȖ. ĮʌȠțȜ. įȚȐȗ. ǹȡȚșµ. ĮʌȠțȜ. įȚȐȗ.
ȁȠȖȚțȑȢ ǹțȑȡĮȚİȢ
ȁȠȖȚțȩ ǹțȑȡĮȚȠ
ȅȚ ʌĮȡĮțȐIJȦ IJİȜİıIJȑȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ țȣȡȓȦȢ ȖȚĮ ȤİȚȡȚıµȩ bit ȉİȜİıIJȒȢ ȈȘµĮıȓĮ ǼȓıȠįȠȢ ǹʌȠIJȑȜİıµĮ SHL
ǹȡȚıIJİȡȒ ȠȜȓıșȘıȘ
ǹțȑȡĮȚȠ
ǹțȑȡĮȚȠ
SHR
ǻİȟȚȐ ȠȜȓıșȘıȘ
ǹțȑȡĮȚȠ
ǹțȑȡĮȚȠ
ȆȓȞĮțĮȢ 5.4
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-44-
5.5 Ǿ ǼȃȉȅȁǾ ȀǹȉǹȋȍȇǾȈǾȈ ǹijȠȪ İȓįĮµİ ʌȫȢ ȗȘIJȐµİ IJȘȞ ʌĮȡĮȤȫȡȘıȘ µȞȒµȘȢ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ (µİ IJȚȢ įȘȜȫıİȚȢ), ĮȢ įȠȪµİ IJȫȡĮ ʌȫȢ ȤȡȘıȚµȠʌȠȚȠȪµİ ĮȣIJȒȞ IJȘ µȞȒµȘ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ, Ȓ ĮȜȜȚȫȢ IJȚ țȐȞȠȣµİ µİ IJȚȢ µİIJĮȕȜȘIJȑȢ µĮȢ. ȅȚ įȠȣȜİȚȑȢ ʌȠȣ țȐȞȠȣµİ µİ IJȘ µȞȒµȘ İȓȞĮȚ: -
ǹʌȠșȒțİȣıȘ țȐʌȠȚĮȢ ʌȜȘȡȠijȠȡȓĮȢ, įȘȜ: įȓȞȠȣµİ IJȚµȒ ıİ µȚĮ µİIJĮȕȜȘIJȒ.
-
ǹȞȐțIJȘıȘ țĮȚ ȤȡȘıȚµȠʌȠȓȘıȘ IJȘȢ ĮʌȠșȘțİȣµȑȞȘȢ ʌȜȘȡȠijȠȡȓĮȢ, įȘȜ: ȤȡȘıȚµȠʌȠȚȠȪµİ IJȘ µİIJĮȕȜȘIJȒ.
ǹȢ ȟİțȚȞȒıȠȣµİ µİ IJȘȞ ʌȡȫIJȘ įȠȣȜİȚȐ. Ǿ İȞIJȠȜȒ ʌȠȣ ĮʌȠșȘțİȪİȚ µȚĮ IJȚµȒ ıİ µȚĮ µİIJĮȕȜȘIJȒ, ȜȑȖİIJĮȚ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ țĮȚ ȑȤİȚ IJȘ µȠȡijȒ: µİIJĮȕȜȘIJȒ := ʌĮȡȐıIJĮıȘ; ȩʌȠȣ µİIJĮȕȜȘIJȒ İȓȞĮȚ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ µİIJĮȕȜȘIJȒȢ ıIJȘȞ ȠʌȠȓĮ țĮIJĮȤȦȡİȓIJĮȚ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ. ȂȚĮ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ ʌİȡȚȑȤİȚ ȣʌȠȤȡİȦIJȚțȐ IJȠ ıȪµȕȠȜȠ ":=". ȆȡȑʌİȚ İʌȓıȘȢ Ƞ IJȪʌȠȢ IJȘȢ µİIJĮȕȜȘIJȒȢ ȞĮ İȓȞĮȚ Ƞ ȓįȚȠȢ µİ IJȠȞ IJȪʌȠ IJȘȢ ʌĮȡȐıIJĮıȘȢ Ȓ ȞĮ İȓȞĮȚ ıȣµȕĮIJȩȢ (compatible) µİ ĮȣIJȩȞ. ǻȪȠ IJȪʌȠȚ İȓȞĮȚ ıȣµȕĮIJȠȓ ĮȞ ȚıȤȪİȚ țȐIJȚ Įʌȩ IJĮ ʌĮȡĮțȐIJȦ: -
ǼȓȞĮȚ ȓįȚȠȚ ĮȜȜȐ µİ įȚĮijȠȡİIJȚțȩ ȩȞȠµĮ.
-
ȅ ȑȞĮȢ İȓȞĮȚ ȣʌȠʌİȡȚȠȤȒ IJȠȣ ȐȜȜȠȣ Ȓ ȣʌȠʌİȡȚȠȤȑȢ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ ȣʌȠįȠȤȒȢ.
țĮȚ
ȠȚ
įȪȠ
İȓȞĮȚ
Ȉİ µȚĮ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ ʌȡȫIJĮ ȣʌȠȜȠȖȓȗİIJĮȚ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ țĮȚ ıIJȘ ıȣȞȑȤİȚĮ Ș IJȚµȒ ĮʌȠșȘțİȪİIJĮȚ ıĮȞ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ. Ǿ ȩʌȠȚĮ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ, µȑȤȡȚ İțİȓȞȘ IJȘ ıIJȚȖµȒ, ȤȐȞİIJĮȚ. ȆĮȡȐįİȚȖµĮ ȅȚ ʌĮȡĮțȐIJȦ İȓȞĮȚ İȞIJȠȜȑȢ țĮIJĮȤȫȡȘıȘȢ: X := 1; Y := 2;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-45-
Mean := (X+Y)/2; Diff := X-Y;
ǼȞȫ ȠȚ ʌĮȡĮțȐIJȦ įİȞ İȓȞĮȚ: X+1 := 7; X+Y := 12; Sqrt(X) := 3;
ĬĮ įȠȪµİ IJȫȡĮ ʌȫȢ ȤȡȘıȚµȠʌȠȚȠȪµİ µȚĮ IJȚµȒ ʌȠȣ ȑȤȠȣµİ ĮʌȠșȘțİȪıİȚ ıIJȘ µȞȒµȘ: ǹȢ įȠȪµİ IJȘ șȑıȘ IJȘȢ µİIJĮȕȜȘIJȒȢ µȑıĮ ıİ µȓĮ ʌĮȡȐıIJĮıȘ. ȅȚ µİIJĮȕȜȘIJȑȢ µʌĮȓȞȠȣȞ ıIJȘȞ ʌĮȡȐıIJĮıȘ ȩʌȦȢ țĮȚ ȠȚ ıIJĮșİȡȑȢ: ȦȢ ʌĮȡȐȖȠȞIJİȢ. ȀĮIJȐ IJȠȞ ȣʌȠȜȠȖȚıµȩ IJȘȢ ʌĮȡȐıIJĮıȘȢ, țȐșİ µİIJĮȕȜȘIJȒ ĮȞIJȚțĮșȓıIJĮIJĮȚ Įʌȩ IJȘȞ IJȚµȒ ʌȠȣ ȑȤİȚ İțİȓȞȘ IJȘ ıIJȚȖµȒ. ǻȘȜĮįȒ Ƞ Ǿ/Ȋ ʌĮȓȡȞİȚ IJȠ ʌİȡȚİȤȩµİȞȠ IJȘȢ ĮȞIJȓıIJȠȚȤȘȢ șȑıȘȢ IJȘȢ µȞȒµȘȢ ȤȦȡȓȢ ȞĮ IJȠ ĮȜȜȐȗİȚ. ǼʌȓıȘȢ ʌȡȑʌİȚ ȞĮ ʌȠȪµİ ȩIJȚ ĮȞ ıİ µȚĮ µİIJĮȕȜȘIJȒ įİȞ ȑȤȠȣµİ įȫıİȚ IJȚµȒ țĮIJȐ IJȘȞ İțIJȑȜİıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, IJȩIJİ IJȠ ʌİȡȚİȤȩµİȞȠ ĮȣIJȒȢ İȓȞĮȚ ĮʌȡȠıįȚȩȡȚıIJȠ, įİȞ İȓȞĮȚ ȠȡȚıµȑȞȠ.
5.6 ȉȊȆȅȆȅǿǾȂǼȃǼȈ ǹȇǿĬȂǾȉǿȀǼȈ ȈȊȃǹȇȉǾȈǼǿȈ ȆȡȠțİȚµȑȞȠȣ ȞĮ ʌĮȡĮıIJȒıȠȣµİ ıIJȘȞ Pascal µĮșȘµĮIJȚțȠȪȢ IJȪʌȠȣȢ, șĮ ʌȡȑʌİȚ ȞĮ µʌȠȡȠȪµİ ȞĮ ȤȡȘıȚµȠʌȠȚȠȪµİ ȠȡȚıµȑȞİȢ µĮșȘµĮIJȚțȑȢ ıȣȞĮȡIJȒıİȚȢ, ȩʌȦȢ ʌ.Ȥ IJȘȞ IJİIJȡĮȖȦȞȚțȒ ȡȓȗĮ, IJȠ IJİIJȡȐȖȦȞȠ, IJȠ ȜȠȖȐȡȚșµȠ, IJȘȞ ĮʌȩȜȣIJȘ IJȚµȒ ț.Ȝ.ʌ. īȚĮ IJȠ ȜȩȖȠ ĮȣIJȩ Ș ȉ.ȇ įȚĮșȑIJİȚ µȓĮ ȕȚȕȜȚȠșȒțȘ ıȣȞĮȡIJȒıİȦȞ ȠȚ ȠʌȠȓİȢ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ ȖȡȐijȠȞIJĮȢ IJȠ țĮIJȐȜȜȘȜȠ ȩȞȠµĮ IJȘȢ ıȣȞȐȡIJȘıȘȢ ĮțȠȜȠȣșȠȪµİȞȠ Įʌȩ IJȠ ȩȡȚıµĮ (ʌĮȡȐµİIJȡȠ) µȑıĮ ıİ ʌĮȡİȞșȑıİȚȢ. ȍȢ ȩȡȚıµĮ µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ ȠʌȠȚĮįȒʌȠIJİ "ȞȩµȚµȘ" ĮȡȚșµȘIJȚțȒ ʌĮȡȐıIJĮıȘ. ȅȚ ıʌȠȣįĮȚȩIJİȡİȢ Įʌȩ ĮȣIJȑȢ IJȚȢ ıȣȞĮȡIJȒıİȚȢ İȓȞĮȚ: Abs(X) ǼʌȚıIJȡȑijİȚ IJȘȞ ĮʌȩȜȣIJȘ IJȚµȒ IJȠȣ ȠȡȓıµĮIJȠȢ ȋ. ȉȠ ȋ İȓȞĮȚ IJȪʌȠȣ Integer Ȓ Real țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ µİ IJȠ ȋ. Ȇ.Ȥ Abs(3.4) İȓȞĮȚ 3.4 Abs(-5) İȓȞĮȚ 5
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-46-
ArcTan(R) ǼʌȚıIJȡȑijİȚ IJȠ IJȩȟȠ İijĮʌIJȠµȑȞȘȢ R ıİ ĮțIJȓȞȚĮ (rad). ȩȡȚıµĮ R țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ ArcTan(1.0) İȓȞĮȚ 0.7854 ArcTan(0.0) İȓȞĮȚ 0.0
To
Cos(R) ǼʌȚıIJȡȑijİȚ IJȠ ıȣȞȘµȓIJȠȞȠ IJȠȣ R. ȉȠ R ʌȡȑʌİȚ ȞĮ İțijȡȐȗİȚ ȖȦȞȓĮ ıİ ĮțIJȓȞȚĮ. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Cos(3.14159) İȓȞĮȚ -1.0 Cos(1.0) İȓȞĮȚ 0.54030 Exp(R) ǼʌȚıIJȡȑijİȚ IJȠ eR. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Exp(0.0) İȓȞĮȚ 1.0 Exp(1.0) İȓȞĮȚ 2.718 Frac(R) ǼʌȚıIJȡȑijİȚ IJȠ țȜĮıµĮIJȚțȩ µȑȡȠȢ IJȠȣ R. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Frac(4.56) İȓȞĮȚ 0.56 Frac(-6.78) İȓȞĮȚ -0.78 Int(R) ǼʌȚıIJȡȑijİȚ IJȠ ĮțȑȡĮȚȠ µȑȡȠȢ IJȠȣ R. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Int(4.56) İȓȞĮȚ 4.0 Int(-6.78) İȓȞĮȚ 6.0 Ln(R) ǼʌȚıIJȡȑijİȚ IJȠ ijȣıȚțȩ (ȃİʌȑȡȚȠ) ȜȠȖȐȡȚșµȠ IJȠȣ R. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Ln(1.0) İȓȞĮȚ 0.0 Ln(2.0) İȓȞĮȚ 0.69315 ȅdd(I) ǼʌȚıIJȡȑijİȚ ĮȜȘșȒ IJȚµȒ (True) ĮȞ IJȠ ǿ İȓȞĮȚ ʌİȡȚIJIJȩȢ, ĮȞ Ƞ ǿ İȓȞĮȚ ȐȡIJȚȠȢ İʌȚıIJȡȑijİȚ ȥİȣįȒ IJȚµȒ (false). O I µʌȠȡİȓ ȞĮ ȠʌȠȚȠȣįȒʌȠIJİ ĮțİȡĮȓȠȣ IJȪʌȠȣ. Ȇ.Ȥ Odd(9) İȓȞĮȚ True Odd(12) İȓȞĮȚ False Pi ǼʌȚıIJȡȑijİȚ IJȘȞ IJȚµȒ IJȘȢ ıIJĮșİȡȐȢ ʌ=3.1415926535897932385 Round(R) ǼʌȚıIJȡȑijİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ʌȠȣ ʌȡȠȑȡȤİIJĮȚ Įʌȩ IJȘ ıIJȡȠȖȖȣȜȠʌȠȓȘıȘ IJȠȣ ȠȡȓıµĮIJȠȢ R. O R İȓȞĮȚ IJȪʌȠȣ Real, İȞȫ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Integer. Ȇ.Ȥ Round(5.51) İȓȞĮȚ 6 Round(-4.67) İȓȞĮȚ -4 Sin(R) ǼʌȚıIJȡȑijİȚ IJȠ ȘµȓIJȠȞȠ IJȠȣ R. ȉȠ R ʌȡȑʌİȚ ȞĮ İțijȡȐȗİȚ ȖȦȞȓĮ ıİ ĮțIJȓȞȚĮ. ȉȩıȠ IJȠ R, ȩıȠ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
Ȇ.Ȥ Sin(3.14159) İȓȞĮȚ 0.0
-47-
Sin(1.0) İȓȞĮȚ 0.84147
Sqr(X) ǼʌȚıIJȡȑijİȚ IJȠ IJİIJȡȐȖȦȞȠ IJȠȣ ȠȡȓıµĮIJȠȢ ȋ. ȉȠ ȋ țĮșȫȢ țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ, Integer Ȓ Real. Ȇ.Ȥ Sqr(2) İȓȞĮȚ 4 Sqr(4.0) İȓȞĮȚ 16.0 Sqrt(X) ǼʌȚıIJȡȑijİȚ IJȘȞ IJİIJȡĮȖȦȞȚțȒ ȡȓȗĮ IJȠȣ ȠȡȓıµĮIJȠȢ ȋ. ȉȠ ȋ µʌȠȡİȓ ȞĮ İȓȞĮȚ Integer Ȓ Real, İȞȫ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Real. Ȇ.Ȥ Sqrt(16) İȓȞĮȚ 4.0 Sqrt(9.0) İȓȞĮȚ 3.0 Trunc(R) EʌȚıIJȡȑijİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ʌȠȣ ʌȡȠȑȡȤİIJĮȚ Įʌȩ ĮʌȠțȠʌȒ IJȦȞ įİțĮįȚțȫȞ ȥȘijȓȦȞ IJȠȣ ȠȡȓıµĮIJȠȢ R, ȤȦȡȓȢ ıIJȡȠȖȖȣȜȠʌȠȓȘıȘ. ȅ R İȓȞĮȚ IJȪʌȠȣ Real țĮȚ Ș İʌȚıIJȡİijȩµİȞȘ IJȚµȒ İȓȞĮȚ IJȪʌȠȣ Integer. Ǿ įȚĮijȠȡȐ µİ IJȘ ıȣȞȐȡIJȘıȘ Int İȓȞĮȚ µȩȞȠ ıIJȠȞ IJȪʌȠ IJȘȢ İʌȚıIJȡİijȩµİȞȘȢ IJȚµȒȢ. Ȇ.Ȥ Trunc(2.48) İȓȞĮȚ 2 Trunc(-4,67) İȓȞĮȚ -4
5.7 ȉȊȆȅȆȅǿǾȂǼȃǼȈ ǹȁĭǹȇǿĬȂǾȉǿȀǼȈ ȈȊȃǹȇȉǾȈǼǿȈ Ȁǹǿ ǻǿǹǻǿȀǹȈǿǼȈ Concat(S1,...Sn) ȈȣȞİȞȫȞİȚ µȚĮ ĮțȠȜȠȣșȓĮ ĮȜijĮȡȚșµȘIJȚțȫȞ (S1,S2,...Sn) țĮȚ IJĮ İʌȚıIJȡȑijİȚ ȦȢ İȞȚĮȓȠ ĮȜijĮȡȚșµȘIJȚțȩ. Ȇ.Ȥ Concat('īȜȫııĮ','Pascal') İʌȚıIJȡȑijİȚ 'īȜȫııĮPascal' Copy(S,I,C) ǼʌȚıIJȡȑijİȚ IJȠ IJµȒµĮ IJȠȣ ĮȜijĮȡȚșµȘIJȚțȠȪ S, ʌȠȣ ĮȡȤȓȗİȚ Įʌȩ IJȠ ȤĮȡĮțIJȒȡĮ ıIJȘ șȑıȘ ǿ țĮȚ ʌİȡȚȜĮµȕȐȞİȚ C ȤĮȡĮțIJȒȡİȢ. Ȇ.Ȥ Copy('ȀǹȁǾȂǼȇǹ',5,4) İʌȚıIJȡȑijİȚ 'ȂǼȇǹ' Delete(S,I,C) ǻȚĮȖȡȐijİȚ C ȤĮȡĮțIJȒȡİȢ Įʌȩ IJȠ ĮȜijĮȡȚșµȘIJȚțȩ S, ĮȡȤȓȗȠȞIJĮȢ Įʌȩ IJȠ ȤĮȡĮțIJȒȡĮ ıIJȘ șȑıȘ ǿ. Ȇ.Ȥ ǹȞ S:='ȀǹȁǾȂǼȇǹ' Ș Delete(S,3,5) țȐȞİȚ IJȠ S 'Ȁǹȁǹ' Insert(S1,S,I) ȆĮȡݵȕȐȜȜİȚ IJȠ ĮȜijĮȡȚșµȘIJȚțȩ S1 ıIJȠ ĮȜijĮȡȚșµȘIJȚțȩ S, ĮȡȤȓȗȠȞIJĮȢ Įʌȩ IJȘ șȑıȘ ǿ. Ȇ.Ȥ ǹȞ S1:='ǾȂǼ' țĮȚ S:='Ȁǹȁȇǹ' Ș Insert(S1,S,4) țȐȞİȚ IJȠ S 'ȀǹȁǾȂǼȇǹ'
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-48-
Length(S) ǼʌȚıIJȡȑijİȚ IJȠȞ ĮȡȚșµȩ IJȦȞ ȤĮȡĮțIJȒȡȦȞ IJȠȣ S. ȉȠ ĮʌȠIJȑȜİıµĮ İȓȞĮȚ ʌȐȞIJĮ ĮțȑȡĮȚȠȢ. Ȇ.Ȥ Length('ȀǹȁǾȂǼȇǹ') İȓȞĮȚ 8 Pos(S1,S) ǼʌȚıIJȡȑijİȚ IJȘ șȑıȘ ʌȠȣ ĮȡȤȓȗİȚ IJȠ ĮȜijĮȡȚșµȘIJȚțȩ S1 µȑıĮ ıIJȠ S. ǹȞ IJȠ S1 įİ ȕȡİșİȓ µȑıĮ ıIJȠ S, Ș Pos İʌȚıIJȡȑijİȚ 0. Ȇ.Ȥ Pos('īȇǹȂȂǹ','ȆȇȅīȇǹȂȂǹȉǿȈȂȅȈ') İȓȞĮȚ 4 Str(X,S) ȂİIJĮIJȡȑʌİȚ µȚĮ ĮȡȚșµȘIJȚțȒ IJȚµȒ ȋ, ıİ ĮȜijĮȡȚșµȘIJȚțȩ S. Ȇ.Ȥ Ș Str(12.3,S) ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȠ S:='12.3' Val(S,X,C) ȂİIJĮIJȡȑʌİȚ IJȠ ĮȜijĮȡȚșµȘIJȚțȩ S ıİ ĮȡȚșµȘIJȚțȒ IJȚµȒ ĮțȑȡĮȚĮ Ȓ ʌȡĮȖµĮIJȚțȒ. ǹȞ Ș µİIJĮIJȡȠʌȒ İȓȞĮȚ İʌȚIJȣȤȒȢ, IJȩIJİ C=0, įȚĮijȠȡİIJȚțȐ Ș C șĮ ʌİȡȚȑȤİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ʌȠȣ ĮȞIJȚʌȡȠıȦʌİȪİȚ IJȘ șȑıȘ IJȠȣ ȤĮȡĮțIJȒȡĮ ʌȠȣ ʌȡȠțȐȜİıİ IJȠ ȜȐșȠȢ. Ȇ.Ȥ Ș Val('12.3',X,C) ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȠ ȋ:=12.3
5.8 ǹȈȀǾȈǼǿȈ 1. ȀȦįȚțȠʌȠȚİȓıIJİ ıIJȘȞ Pascal IJȠȣȢ ĮȡȚșµȠȪȢ: 6,023 x 1023 -1,35 x 1005 13842786 x 10-12 2. ȊʌȠȜȠȖȓıIJİ IJȘȞ IJȚµȒ IJȘȢ ĮȡȚșµȘIJȚțȒȢ ʌĮȡȐıIJĮıȘȢ (I DIV J)*(J DIV I) ıIJȚȢ İȟȒȢ ʌİȡȚʌIJȫıİȚȢ: (Į) I=1, J=3 (ȕ) I=3, J=3 (Ȗ) I=3, J=1 3. ȀȦįȚțȠʌȠȚİȓıIJİ ıIJȘȞ Pascal IJȚȢ ĮȡȚșµȘIJȚțȑȢ ʌĮȡĮıIJȐıİȚȢ: (Į) K 0 (1 r ) 2 (1
(ȕ) 2 S
(Ȗ) K
m D X K E 360
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
r .n ) 360
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
(į)
Q 4 SHH 0
1 1 2) 2 r1 r2
2 ( U1 U 2 ) S2 P ( 12 1) S2
(İ)
(ıIJ)
(
-49-
S U1 U 2 4 R 8r l
(ȗ) k
KP( - ) 1 VyQ ( - ) 1
e x e x (Ș) 2
(ș)
x x2 2 | x | 2 x 2 | x |3 | x| x
4. ǹȞ ǹ=4, Ǻ=1, țĮȚ C=7, ȞĮ ȕȡİȓIJİ ʌȠȚİȢ Įʌȩ IJȚȢ İʌȩµİȞİȢ ȜȠȖȚțȑȢ ʌĮȡĮıIJȐıİȚȢ İȓȞĮȚ ĮȜȘșİȓȢ țĮȚ ʌȠȚİȢ ȥİȣįİȓȢ: (Į) A<B AND B<C (ȕ) B<C AND (A<B OR A>C) (Ȗ) (B>C OR A>C) OR C>A (į) NOT (A>B XOR (NOT B>C)) (İ) B>C XOR (A<C OR B<C) AND A<B 5. ȃĮ ȖȡĮijȠȪȞ ıIJȘ țȦįȚțȠʌȠȚȠȪȞIJĮȚ):
ȖȜȫııĮ
Pascal
ȠȚ
ʌĮȡĮțȐIJȦ
ʌȡȠIJȐıİȚȢ
(ĮȞ
(Į) ȉȠ ȋ µȚțȡȩIJİȡȠ IJȠȣ µȘįİȞȩȢ țĮȚ IJȠ ȋ µİȖĮȜȪIJİȡȠ IJȠȣ Ȋ Ȓ IJȠ ȋ µȚțȡȩIJİȡȠ IJȠȣ µȘįİȞȩȢ țĮȚ IJȠ ǽ ȓıȠ µİ IJȠ R. (ȕ) ȉȠ ȕȐȡȠȢ ȞĮ µȘȞ İȓȞĮȚ µȚțȡȩIJİȡȠ IJȦȞ 50 Kgr țĮȚ IJȠ ȪȥȠȢ ȞĮ µȘȞ İȓȞĮȚ µİȖĮȜȪIJİȡȠ IJȦȞ 1,90 m. (Ȗ) ȅ ȋ İȓȞĮȚ ijȣıȚțȩȢ ĮȡȚșµȩȢ. (į) Ǿ ȘȜȚțȓĮ ȞĮ İȓȞĮȚ µİIJĮȟȪ 20 țĮȚ 40 İIJȫȞ. (İ) ȉȠ ȤȡȫµĮ ȞĮ İȓȞĮȚ İȓIJİ țȩțțȚȞȠ İȓIJİ ʌȡȐıȚȞȠ. 6. ǹȞ ȑȤȠȣµİ įȘȜȫıİȚ: S1,S2: String[20]; S3: String[16]; S4: String[24]; S5: String[32]; S6: String;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-50-
țĮȚ µȑıĮ ıIJȠ ʌȡȩȖȡĮµµĮ ȣʌȐȡȤȠȣȞ ȠȚ İȞIJȠȜȑȢ: S1:='ȆǼȃȉǼ'; S2:='Ȉȉȅ ȋǼȇǿ Ȇǹȇǹ ǻǼȀǹ'; S3:=Concat('Ȁǹȁǿȅ ',S1,' KAI S4:=Concat('Ȁǹȁǿȅ ',S1,' KAI S5:=Concat('Ȁǹȁǿȅ ',S1,' KAI S6:=Concat('Ȁǹȁǿȅ ',S1,' KAI
',S2,' ',S2,' ',S2,' ',S2,'
KAI KAI KAI KAI
ȀǹȇȉǼȇǼǿ'); ȀǹȇȉǼȇǼǿ'); ȀǹȇȉǼȇǼǿ'); ȀǹȇȉǼȇǼǿ');
ʌȠȚİȢ șĮ İȓȞĮȚ ȠȚ IJȚµȑȢ IJȦȞ S3, S4, S5, S6. 7. ǹȞ IJȠ ĮȜijĮȡȚșµȘIJȚțȩ S1 ȑȤİȚ IJȘȞ IJȚµȒ: S1:='ȉȅ ȂǼīǹȁȅ Ȍǹȇǿ ȉȇȍǼǿ ȉȅ ȂǿȀȇȅ'; ȆȠȚĮ șĮ İȓȞĮȚ Ș IJȚµȒ IJȠȣ µİIJȐ IJȘ įȡȐıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ: Delete(S1,11,5); ȀĮȚ ʌȠȚĮ µİIJȐ țĮȚ IJȘ įȡȐıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ: Delete(S1,Pos('ME',S1),7); 8. ǹȞ IJĮ ĮȜijĮȡȚșµȘIJȚțȐ S1 țĮȚ S2 ȑȤȠȣȞ IJȚȢ IJȚµȑȢ: S1:='ȉȅ ȂǼīǹȁȅ ȉȇȍǼǿ ȉȅ ȂǿȀȇȅ'; S2:='Ȍǹȇǿ'; ȆȠȚĮ șĮ İȓȞĮȚ Ș IJȚµȒ IJȠȣ S1 µİIJȐ IJȠ IJȑȜȠȢ IJȦȞ İȞIJȠȜȫȞ: Insert(S2,S1,11); Delete(S1,Pos('PI',S1)+1,1); Insert('ȈȀȊȁȅ',S1,11); Insert('O',S1,19);
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-51-
6. ǼȃȉȅȁǼȈ ǼǿȈȅǻȅȊ / ǼȄȅǻȅȊ ȅȚ İȞIJȠȜȑȢ İȚıȩįȠȣ µĮȢ İʌȚIJȡȑʌȠȣȞ ȞĮ İȚıȐȖȠȣµİ IJĮ įİįȠµȑȞĮ ıIJȠ ʌȡȩȖȡĮµµĮ, Įʌȩ IJȚȢ ıȣıțİȣȑȢ İȚıȩįȠȣ. Ȃİ IJȘ ȕȠȒșİȚĮ IJȦȞ İȞIJȠȜȫȞ İȟȩįȠȣ ȜĮµȕȐȞȠȣµİ, ıIJȚȢ ıȣıțİȣȑȢ İȟȩįȠȣ, IJĮ ĮʌȠIJİȜȑıµĮIJĮ IJȘȢ İʌİȟİȡȖĮıȓĮȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. Ǿ İȓıȠįȠȢ IJȦȞ įİįȠµȑȞȦȞ țĮȚ Ș ȑȟȠįȠȢ IJȦȞ ĮʌȠIJİȜİıµȐIJȦȞ, ȖȓȞİIJĮȚ Įʌȩ țĮȚ ʌȡȠȢ IJĮ ĮȡȤİȓĮ İȚıȩįȠȣ țĮȚ İȟȩįȠȣ. ǹȞ įİȞ ʌȡȠıįȚȠȡȓıȠȣµİ, ı'ȑȞĮ ʌȡȩȖȡĮµµĮ, ĮȣIJȐ IJĮ ĮȡȤİȓĮ IJȩIJİ Ș ȉ.ȇ ȣʌȠșȑIJİȚ ȩIJȚ İȓȞĮȚ IJĮ İȟ ȠȡȚıµȠȪ ĮȡȤİȓĮ INPUT țĮȚ OUTPUT, ĮȞIJȓıIJȠȚȤĮ. ȉȠ ĮȡȤİȓȠ INPUT İȓȞĮȚ IJȠ İȟ ȠȡȚıµȠȪ ĮȡȤİȓȠ İȚıȩįȠȣ. ȊʌȠșȑIJİȚ İȓıȠįȠ įİįȠµȑȞȦȞ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ. ȉȠʌȠșİIJİȓ ıİ µȚĮ ʌİȡȚȠȤȒ ʌȡȠıȦȡȚȞȒȢ ĮʌȠșȒțİȣıȘȢ ĮȣIJȐ ʌȠȣ ʌȜȘțIJȡȠȜȠȖȠȪµİ, ȫıIJİ ȞĮ µʌȠȡȠȪµİ ȞĮ įȚȠȡșȫȞȠȣµİ IJĮ ȜȐșȘ ʌȜȘțIJȡȠȜȩȖȘıȘȢ µİ IJĮ ʌȜȒțIJȡĮ Del țĮȚ BackSpace. Ǿ İȓıȠįȠȢ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ "ĮȞIJȘȤİȓIJĮȚ" ıIJȘȞ ȠșȩȞȘ. ȉȠ ĮȡȤİȓȠ OUTPUT İȓȞĮȚ IJȠ İȟ ȠȡȚıµȠȪ ĮȡȤİȓȠ İȟȩįȠȣ țĮȚ țȐȞİȚ ȑȟȠįȠ IJȦȞ įİįȠµȑȞȦȞ ıIJȘȞ ȠșȩȞȘ IJȠȣ Ǿ/Ȋ.
6.1 ǼȃȉȅȁǼȈ ǼǿȈȅǻȅȊ Ǿ ǼȞIJȠȜȒ Read ȉĮ įİįȠµȑȞĮ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ İȓȞĮȚ ĮȡȚșµȠȓ țĮȚ ȤĮȡĮțIJȒȡİȢ. ȈIJȘȞ Pascal ȩȜĮ IJĮ įİįȠµȑȞĮ ʌĮȡȚıIJȐȞȠȞIJĮȚ ȦȢ µȚĮ ĮțȠȜȠȣșȓĮ ȤĮȡĮțIJȒȡȦȞ țĮȚ ĮʌȠșȘțİȪȠȞIJĮȚ, ĮȞ įİ įȘȜȦșİȓ IJȓʌȠIJĮ įȚĮijȠȡİIJȚțȩ, ıIJȠ ĮȡȤİȓȠ INPUT. ȉȠ ĮȡȤİȓȠ INPUT İȓȞĮȚ įȚĮȤȦȡȚıµȑȞȠ ıİ ȖȡĮµµȑȢ. ȀȐșİ ȖȡĮµµȒ IJȠȣ ĮȡȤİȓȠȣ ĮȞIJȚıIJȠȚȤİȓ ıİ µȓĮ ȖȡĮµµȒ įİįȠµȑȞȦȞ ʌȠȣ İȚıȐȖİIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ țĮȚ ĮȞIJȘȤİȓIJĮȚ ıIJȘȞ ȠșȩȞȘ. Ǿ Pascal IJȠʌȠșİIJİȓ µİIJȐ Įʌȩ IJȠȞ IJİȜİȣIJĮȓȠ ȤĮȡĮțIJȒȡĮ țȐșİ ȖȡĮµµȒȢ, ȑȞĮ İȚįȚțȩ ıȪµȕȠȜȠ IJȠ ȠʌȠȓȠ țĮȜİȓIJĮȚ ȑȞįİȚȟȘ IJȑȜȠȣȢ ȖȡĮµµȒȢ (end of line mark). ȀĮIJȐ IJȘ įȚȐȡțİȚĮ İʌİȟİȡȖĮıȓĮȢ IJȠȣ ĮȡȤİȓȠȣ INPUT, Ș Pascal ȤȡȘıȚµȠʌȠȚİȓ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-52-
ȑȞĮ įİȓțIJȘ șȑıȘȢ ĮȡȤİȓȠȣ (file position pointer) ȖȚĮ ȞĮ "ıȘµĮįİȪİȚ" IJȠ ȤĮȡĮțIJȒȡĮ ʌȠȣ ʌȡȩțİȚIJĮȚ ȞĮ įȚĮȕĮıIJİȓ. ȉĮ țİȞȐ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ IJȠ įȚĮȤȦȡȚıµȩ IJȦȞ įİįȠµȑȞȦȞ. ǼIJıȚ IJĮ įİįȠµȑȞĮ ıİ µȚĮ ȖȡĮµµȒ IJȠȣ ĮȡȤİȓȠȣ INPUT șĮ ʌȡȑʌİȚ ȞĮ ȤȦȡȓȗȠȞIJĮȚ µİIJĮȟȪ IJȠȣȢ µİ ȑȞĮ IJȠȣȜȐȤȚıIJȠȞ țİȞȩ įȚȐıIJȘµĮ. Ǿ İȚıĮȖȦȖȒ IJȦȞ įİįȠµȑȞȦȞ ı'ȑȞĮ ʌȡȩȖȡĮµµĮ Pascal, ȖȓȞİIJĮȚ µİ IJȘȞ İȞIJȠȜȒ Read ʌȠȣ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ ȖİȞȚțȒ µȠȡijȒ: Read (µİIJĮȕȜȘIJȒ1,µİIJĮȕȜȘIJȒ2,...,µİIJĮȕȜȘIJȒn); ȩʌȠȣ µİIJĮȕȜȘIJȒi İȓȞĮȚ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ i-ȠıIJȒȢ µİIJĮȕȜȘIJȒȢ, ıIJȠ ʌİȡȚİȤȩµİȞȠ IJȘȢ ȠʌȠȓĮȢ șȑȜȠȣµİ ȞĮ țĮIJĮȤȦȡȘșİȓ IJȠ i-ȠıIJȩ ıIJȘ ıİȚȡȐ įİįȠµȑȞȠ. ȅIJĮȞ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒ Read, ĮȞ Ș µİIJĮȕȜȘIJȒ ʌȠȣ ȜĮµȕȐȞİȚ įİįȠµȑȞĮ İȓȞĮȚ IJȪʌȠȣ Integer Ȓ Real, ıIJȠ ʌİȡȚİȤȩµİȞȩ IJȘȢ țĮIJĮȤȦȡİȓIJĮȚ Ƞ İʌȩµİȞȠȢ ĮȡȚșµȩȢ. ǼȞȫ ĮȞ İȓȞĮȚ IJȪʌȠȣ Char, IJȩIJİ țĮIJĮȤȦȡİȓIJĮȚ Ƞ İʌȩµİȞȠȢ ȤĮȡĮțIJȒȡĮȢ. ȅ įİȓțIJȘȢ ȕȡȓıțİIJĮȚ ĮȡȤȚțȐ ıIJȘȞ ĮȡȤȒ IJȘȢ ʌȡȫIJȘȢ ȖȡĮµµȒȢ IJȠȣ ĮȡȤİȓȠȣ INPUT țĮȚ ıIJȘ ıȣȞȑȤİȚĮ µİIJĮIJȠʌȓȗİIJĮȚ, ıİ țȐșİ įȚȐȕĮıµĮ IJȚµȒȢ ȖȚĮ IJȚȢ µİIJĮȕȜȘIJȑȢ, ıIJȠ ĮµȑıȦȢ İʌȩµİȞȠ ıIJȠȚȤİȓȠ Įʌ'ĮȣIJȩ ʌȠȣ įȚĮȕȐıIJȘțİ. ȅIJĮȞ ʌȡȩțİȚIJĮȚ ȖȚĮ ĮȡȚșµȘIJȚțȐ įİįȠµȑȞĮ Ƞ įİȓțIJȘȢ ĮȖȞȠİȓ IJĮ țİȞȐ įȚĮıIJȒµĮIJĮ -ʌȠȣ ʌȚșĮȞȫȢ ʌȡȠȘȖȠȪȞIJĮȚ ĮȣIJȫȞ-. ȅIJĮȞ ȩµȦȢ ʌȡȩțİȚIJĮȚ ȖȚĮ įİįȠµȑȞĮ IJȪʌȠȣ Char IJȩIJİ, İʌİȚįȒ IJȠ țİȞȩ įȚȐıIJȘµĮ İȓȞĮȚ ȤĮȡĮțIJȒȡĮȢ, įİȞ ĮȖȞȠİȓIJĮȚ. Ǿ İȞIJȠȜȒ Read șĮ țĮIJĮȤȦȡȒıİȚ IJȚµȑȢ ȖȚĮ ȩȜİȢ IJȚȢ µİIJĮȕȜȘIJȑȢ ʌȠȣ ȕȡȓıțȠȞIJĮȚ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ IJȘȢ, ĮȞİȟȐȡIJȘIJĮ µİ IJȘ șȑıȘ IJȦȞ įİįȠµȑȞȦȞ ıIJȠ ĮȡȤİȓȠ INPUT. Ǿ ʌȡȫIJȘ IJȚµȒ țĮIJĮȤȦȡİȓIJĮȚ ȦȢ ʌİȡȚİȤȩµİȞȠ IJȘȢ µİIJĮȕȜȘIJȒȢ1, Ș įİȪIJİȡȘ ȦȢ ʌİȡȚİȤȩµİȞȠ IJȘȢ µİIJĮȕȜȘIJȒȢ2 ț.Ȝ.ʌ. ȋȡİȚȐȗİIJĮȚ ʌȡȠıȠȤȒ ȫıIJİ ȞĮ İȟĮıijĮȜȓȗİIJĮȚ Ș ıȣµȕȚȕĮıIJȩIJȘIJĮ IJȦȞ IJȪʌȦȞ µİIJĮȟȪ µİIJĮȕȜȘIJȫȞ țĮȚ įİįȠµȑȞȦȞ, ȩʌȦȢ İʌȓıȘȢ țĮȚ Ș ĮțȡȚȕȒȢ ĮȞIJȚıIJȠȚȤȓĮ IJȠȣȢ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ȩʌȠȣ IJȠ ʌȜȒșȠȢ IJȦȞ įİįȠµȑȞȦȞ İȓȞĮȚ µİȖĮȜȪIJİȡȠ Įʌȩ IJȠ ʌȜȒșȠȢ IJȦȞ µİIJĮȕȜȘIJȫȞ, įİȞ ȣʌȐȡȤİȚ țĮȞȑȞĮ ʌȡȩȕȜȘµĮ (ȠȚ µİIJĮȕȜȘIJȑȢ ʌĮȓȡȞȠȣȞ ȩȜİȢ IJȠȣȢ IJȚµȑȢ, ĮʌȜȫȢ țȐʌȠȚİȢ IJȚµȑȢ ʌİȡȚııİȪȠȣȞ) ıİ ĮȞIJȓșİıȘ µİ IJȘȞ ĮȞIJȓıIJȡȠijȘ ʌİȡȓʌIJȦıȘ, țĮIJȐ IJȘȞ ȠʌȠȓĮ șĮ ȜȐȕȠȣµİ țȐʌȠȚȠ įȚĮȖȞȦıIJȚțȩ µȒȞȣµĮ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-53-
ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ ȑȤȠȣµİ IJȚȢ įȪȠ ʌĮȡĮțȐIJȦ ȖȡĮµµȑȢ IJȠȣ ĮȡȤİȓȠȣ Input įİȓțIJȘȢ p
ȑȞįİȚȟȘ IJȑȜȠȣȢ ȖȡĮµµȒȢ
p
3 1 . 5 2
A P R
6 2 ¶
3 2 . 2 5
J A N
5 0 ¶
țĮȚ IJȚȢ įȘȜȫıİȚȢ: Var Value: Real; Ch1,Ch2,Ch3,Blank: Char; Quantity: Integer;
IJȩIJİ: Į) µİIJȐ IJȘȞ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ Read(Value,Ch1,Ch2,Ch3); ȠȚ µİIJĮȕȜȘIJȑȢ IJȘȢ Read șĮ ȑȤȠȣȞ IJȚȢ ʌĮȡĮțȐIJȦ IJȚµȑȢ: Value :=31.52 Ch1 :=' ' Ch2 :=' ' Ch3 :='A'
țĮȚ Ƞ įİȓțIJȘȢ șĮ ȕȡȓıțİIJĮȚ ıIJȘ șȑıȘ ĮțȡȚȕȫȢ ʌȐȞȦ Įʌȩ IJȠ ȇ. ȕ) ȂİIJȐ IJȘȞ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ Read(Value,Blank,Blank,Ch1,Ch2,Ch3,Quantity); ȠȚ µİIJĮȕȜȘIJȑȢ șĮ ȑȤȠȣȞ IJȚȢ IJȚµȑȢ Value :=31.52 Blank :=' ' Ch1 :='A' Ch2 :='P' Ch3 :='R' Quantity :=62
țĮȚ Ƞ įİȓțIJȘȢ șĮ ȕȡȓıțİIJĮȚ ʌȐȞȦ ĮțȡȚȕȫȢ Įʌȩ IJȘȞ ȑȞįİȚȟȘ IJȑȜȠȣȢ ȖȡĮµµȒȢ. H ǼȞIJȠȜȒ Readln H İȞIJȠȜȒ Readln İȓȞĮȚ ȩµȠȚĮ µİ IJȘȞ Read µİ IJȘ įȚĮijȠȡȐ ȩIJȚ µİIJĮșȑIJİȚ IJȠ įİȓțIJȘ IJȠȣ ĮȡȤİȓȠȣ INPUT ıIJȘ șȑıȘ IJȠȣ ʌȡȫIJȠȣ ȤĮȡĮțIJȒȡĮ IJȘȢ İʌȩµİȞȘȢ ȖȡĮµµȒȢ. Ǿ µȠȡijȒ IJȘȢ Readln İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ: Readln (µİIJĮȕȜȘIJȒ1,µİIJĮȕȜȘIJȒ2,...,µİIJĮȕȜȘIJȒn);
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-54-
ȩʌȠȣ, ȩʌȦȢ țĮȚ ıIJȘ Read, µİIJĮȕȜȘIJȒi İȓȞĮȚ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ i-ȠıIJȒȢ µİIJĮȕȜȘIJȒȢ. ȉȠ ĮʌȠIJȑȜİıµĮ IJȘȢ İȞIJȠȜȒȢ Readln İȓȞĮȚ ĮțȡȚȕȫȢ IJȠ ȓįȚȠ µİ İțİȓȞȠ IJȘȢ Read, µİ IJȘ įȚĮijȠȡȐ ȩIJȚ µİIJȐ IJȠ įȚȐȕĮıµĮ IJȘȢ n-ȠıIJȒȢ µİIJĮȕȜȘIJȒȢ, Ƞ įİȓțIJȘȢ IJȠȣ ĮȡȤİȓȠȣ INPUT µİIJĮijȑȡİIJĮȚ ĮȣIJȩµĮIJĮ (ĮȖȞȠȫȞIJĮȢ IJĮ ȠʌȠȚĮįȒʌȠIJİ įİįȠµȑȞĮ ʌȠȣ ȣʌȐȡȤȠȣȞ ıIJȘ ȖȡĮµµȒ Įʌȩ IJȘȞ IJȡȑȤȠȣıĮ șȑıȘ IJȠȣ µȑȤȡȚ IJȘȞ ȑȞįİȚȟȘ IJȠȣ IJȑȜȠȣȢ IJȘȢ ȖȡĮµµȒȢ) ıIJȘȞ ʌȡȫIJȘ șȑıȘ IJȘȢ İʌȩµİȞȘȢ ȖȡĮµµȒȢ IJȠȣ ĮȡȤİȓȠȣ INPUT.
6.2 ǼȃȉȅȁǼȈ ǼȄȅǻȅȊ Ǿ ǼȞIJȠȜȒ Write ȉĮ ĮʌȠIJİȜȑıµĮIJĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, ȜĮµȕȐȞȠȞIJĮȚ µİ IJȘȞ İȞIJȠȜȒ Write Ș ȠʌȠȓĮ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: Write (µİIJĮȕȜȘIJȒ1,µİIJĮȕȜȘIJȒ2,...,µİIJĮȕȜȘIJȒn); ȩʌȠȣ µİIJĮȕȜȘIJȒi İȓȞĮȚ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ i-ȠıIJȒȢ µİIJĮȕȜȘIJȒȢ Ȓ µȚĮ ʌĮȡȐıIJĮıȘ Ȓ µȚĮ ĮțȠȜȠȣșȓĮ Įʌȩ ȤĮȡĮțIJȒȡİȢ µȑıĮ ıİ ĮʌȠıIJȡȩijȠȣȢ '. To ĮʌȠIJȑȜİıµĮ IJȘȢ İȞIJȠȜȒȢ Write İȓȞĮȚ Ș İțIJȪʌȦıȘ (ıIJȠ ĮȡȤİȓȠ OUTPUT) IJȠȣ IJȡȑȤȠȞIJȠȢ ʌİȡȚİȤȠµȑȞȠȣ IJȦȞ µİIJĮȕȜȘIJȫȞ Ȓ IJȘȢ ʌĮȡȐıIJĮıȘȢ ʌȠȣ ȕȡȓıțİIJĮȚ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ. ȅıȠȞ ĮijȠȡȐ IJȠȣȢ ȤĮȡĮțIJȒȡİȢ, ĮȣIJȠȓ İțIJȣʌȫȞȠȞIJĮȚ ȩʌȦȢ ĮțȡȚȕȫȢ ݵijĮȞȓȗȠȞIJĮȚ µȑıĮ ıIJȚȢ ĮʌȠıIJȡȩijȠȣȢ. Ǿ ıİȚȡȐ IJȘȢ İțIJȪʌȦıȘȢ İȓȞĮȚ İțİȓȞȘ ʌȠȣ ȠȡȓȗİIJĮȚ Įʌȩ IJȘ ıİȚȡȐ ȖȡĮijȒȢ IJȦȞ µİIJĮȕȜȘIJȫȞ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ. ȅȚ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ İțIJȣʌȫȞȠȞIJĮȚ ıIJȘ µȠȡijȒ țȚȞȘIJȒȢ ȣʌȠįȚĮıIJȠȜȒȢ, µʌȠȡȠȪµİ ȩµȦȢ ȞĮ µȠȡijȠʌȠȚȒıȠȣµİ IJȘȞ İțIJȪʌȦıȒ IJȠȣȢ įȓȞȠȞIJĮȢ įȪȠ ĮȡȚșµȠȪȢ µİIJȐ IJȠ ȩȞȠµĮ IJȘȢ µİIJĮȕȜȘIJȒȢ, ʌȠȣ ȤȦȡȓȗȠȞIJĮȚ Įʌȩ IJȘ µİIJĮȕȜȘIJȒ țĮȚ µİIJĮȟȪ IJȠȣȢ µİ ȐȞȦ-țȐIJȦ IJİȜİȓĮ ":". ȅ ʌȡȫIJȠȢ ĮȡȚșµȩȢ (w) ĮȞIJȚʌȡȠıȦʌİȪİȚ IJȚȢ ıȣȞȠȜȚțȑȢ șȑıİȚȢ ȤĮȡĮțIJȒȡȦȞ ʌȠȣ șĮ țĮIJĮȜȐȕİȚ Ș ȑȟȠįȠȢ, İȞȫ Ƞ įİȪIJİȡȠȢ (d) ȠȡȓȗİȚ ʌȩıĮ șĮ İȓȞĮȚ IJĮ įİțĮįȚțȐ ȥȘijȓĮ. ǼIJıȚ µʌȠȡȠȪµİ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ ĮȞIJȓ IJȘȢ µİIJĮȕȜȘIJȒȢi ȞĮ ȖȡȐȥȠȣµİ: µİIJĮȕȜȘIJȒi : w : d
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-55-
ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ IJȠ ʌȜȒșȠȢ IJȦȞ ĮțİȡĮȓȦȞ ȥȘijȓȦȞ µĮȗȓ µİ IJȘȞ IJİȜİȓĮ țĮȚ IJĮ įİțĮįȚțȐ ȥȘijȓĮ, İȓȞĮȚ µȚțȡȩIJİȡȠ Įʌȩ w IJȩIJİ țĮIJȐ IJȘȞ İțIJȪʌȦıȘ IJȠȣ ĮȡȚșµȠȪ ʌȡȠȘȖȠȪȞIJĮȚ IJȩıĮ țİȞȐ įȚĮıIJȒµĮIJĮ ȫıIJİ IJİȜȚțȐ IJȠ ʌȜȒșȠȢ IJȦȞ țİȞȫȞ țĮȚ IJȠ ʌȜȒșȠȢ IJȦȞ ȥȘijȓȦȞ țĮȚ IJȘȢ IJİȜİȓĮȢ, ȞĮ İȓȞĮȚ ȓıȠ µİ w. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ IJȠ w İȓȞĮȚ µȚțȡȩIJİȡȠ Įʌȩ IJȠȞ ĮȡȚșµȩ IJȦȞ șȑıİȦȞ ʌȠȣ ȤȡİȚȐȗȠȞIJĮȚ ȖȚĮ ȞĮ IJȣʌȦșİȓ Ƞ ĮȡȚșµȩȢ, IJȩIJİ ĮȖȞȠİȓIJĮȚ țĮȚ țĮIJĮȜĮµȕȐȞȠȞIJĮȚ ȠȚ ĮʌĮȚIJȠȪµİȞİȢ șȑıİȚȢ. Ȃİ IJȠȞ ȓįȚȠȞ ĮțȡȚȕȫȢ IJȡȩʌȠ µȠȡijȠʌȠȚİȓIJĮȚ țĮȚ Ș İțIJȪʌȦıȘ IJȦȞ ĮțİȡĮȓȦȞ ĮȡȚșµȫȞ, µȩȞȠ ʌȠȣ İįȫ įİ ȤȡȘıȚµȠʌȠȚȠȪµİ IJȠȞ d. ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ µȚĮ µİIJĮȕȜȘIJȒ ȋ IJȪʌȠȣ Real ȑȤİȚ IJȚµȒ ȋ:=1.2345678900Ǽ+03 țĮȚ µȚĮ µİIJĮȕȜȘIJȒ Ȋ IJȪʌȠȣ Integer ȑȤİȚ IJȚµȒ Ȋ:=4321 ȉȩIJİ Ș İȞIJȠȜȒ:
Write(X) Write(X:1:1) Write(X:7:2) Write(X:10:3) Write(X:12:6) Write(Y) Write(Y:1) Write(Y:7) Write(Y:6) Write(X:7:2,Y:6)
ĬĮ IJȣʌȫıİȚ:
1.2345678900Ǽ+03 1234.6 1234.57 ƑƑ1234.568 Ƒ1234.567890 4321 4321 ƑƑƑ4321 ƑƑ4321 1234.57ƑƑ4321
ȩʌȠȣ µİ "Ƒ" ıȣµȕȠȜȓȗȠȣµİ IJȠ ȤĮȡĮțIJȒȡĮ "țİȞȩ". Ǿ ǼȞIJȠȜȒ Writeln H ȖİȞȚțȒ µȠȡijȒ IJȘȢ İȞIJȠȜȒȢ Writeln İȓȞĮȚ Ș: Writeln (µİIJĮȕȜȘIJȒ1,µİIJĮȕȜȘIJȒ2,...,µİIJĮȕȜȘIJȒn); ȩʌȠȣ µİIJĮȕȜȘIJȒi İȓȞĮȚ IJȠ ĮȞĮȖȞȦȡȚıIJȚțȩ IJȘȢ i-ȠıIJȒȢ µİIJĮȕȜȘIJȒȢ Ȓ µȚĮ ʌĮȡȐıIJĮıȘ Ȓ µȚĮ ĮțȠȜȠȣșȓĮ Įʌȩ ȤĮȡĮțIJȒȡİȢ µȑıĮ ıİ ĮʌȠıIJȡȩijȠȣȢ '. To ĮʌȠIJȑȜİıµĮ IJȘȢ İȞIJȠȜȒȢ Writeln İȓȞĮȚ ʌĮȡȩµȠȚȠ µİ İțİȓȞȠ IJȘȢ Readln, įȘȜĮįȒ IJȣʌȫȞȠȞIJĮȚ ȩȜİȢ ȠȚ IJȚµȑȢ µİ IJȘ ıİȚȡȐ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ țĮȚ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-56-
ʌȡȠțĮȜİȓIJĮȚ ĮȣIJȩµĮIJĮ Ƞ IJİȡµĮIJȚıµȩȢ IJȘȢ Writeln µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ țĮȚ ȦȢ
ȖȡĮµµȒȢ.
ǼʌȓıȘȢ
Ș
Writeln ȠʌȩIJİ IJİȡµĮIJȓȗİIJĮȚ ĮȣIJȩµĮIJĮ Ș IJȡȑȤȠȣıĮ ȖȡĮµµȒ İțIJȪʌȦıȘȢ. ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ... Program DemoWrite; Begin Write('ǾIJĮȞ İțİȓȞȘ IJȘ ȞȣȤIJȚȐ '); Writeln('ʌȠȣ ijȪıĮȖİ Ƞ ǺĮȡįȐȡȘȢ,'); Write('IJȠ țȪµĮ Ș ʌȜȫȡȘ İțȑȡįȚȗİȞ '); Writeln('ȠȡȖȚȐ µİ IJȘȞ ȠȡȖȚȐ') End.
șĮ įȫıİȚ ıIJȘȞ ȠșȩȞȘ IJȠ ʌĮȡĮțȐIJȦ ĮʌȠIJȑȜİıµĮ ǾIJĮȞ İțİȓȞȘ IJȘ ȞȣȤIJȚȐ ʌȠȣ ijȪıĮȖİ Ƞ ǺĮȡįȐȡȘȢ, IJȠ țȪµĮ Ș ʌȜȫȡȘ İțȑȡįȚȗİȞ ȠȡȖȚȐ µİ IJȘȞ ȠȡȖȚȐ
B
6.3 ǹȈȀǾȈǼǿȈ 1. ȃĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ IJȣʌȫȞİȚ ıIJȘȞ ȠșȩȞȘ ȑȞĮ Įʌȩ IJĮ ʌĮȡĮțȐIJȦ ıȤȒµĮIJĮ: (Į)
(ȕ) * *** ***** ******* ********* *** *** *******
* *** ***** ******* ********* ******* ***** *** *
2. ȃĮ ȖȡĮijİȓ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ IJȣʌȫȞİȚ IJȠ ݵȕĮįȩȞ Ǽ İȞȩȢ IJȡȚȖȫȞȠȣ µİ ʌȜİȣȡȑȢ a, b țĮȚ c, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȠȞ IJȪʌȠ IJȠȣ ǾȡȦȞĮ: E
s ( s a ) ( s b ) ( s c ) ȩʌȠȣ s
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
a b c 2
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-57-
7. ǼȃȉȅȁǼȈ ǼȁǼīȋȅȊ ȅȚ İȞIJȠȜȑȢ ʌȠȣ ȖȞȦȡȓıĮµİ ıIJĮ ʌȡȠȘȖȠȪµİȞĮ țİijȐȜĮȚĮ, įȘȜ. Ș İȞIJȠȜȒ Write(ln), Ș İȞIJȠȜȒ Read(ln) țĮȚ Ș İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ (ʌ.Ȥ İȞIJȠȜȒ X:=A+12), µĮȢ įȓȞȠȣȞ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ ȖȡȐijȠȣµİ ĮʌȜȐ ʌȡȠȖȡȐµµĮIJĮ ȣʌȠȜȠȖȚıµȫȞ, ʌȠȣ ȩµȦȢ įİȞ ȑȤȠȣȞ įȣȞĮIJȩIJȘIJİȢ ȖȚĮ İʌȚȜȠȖȒ "įȡȠµȠȜȠȖȓȦȞ" țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȘȢ. ǹȣIJȩ ıȘµĮȓȞİȚ ȩIJȚ, ȩIJĮȞ İțIJİȜİȓIJĮȚ IJȠ ʌȡȩȖȡĮµµĮ, įİȞ ȣʌȐȡȤİȚ įȣȞĮIJȩIJȘIJĮ "ʌĮȡȐțĮµȥȘȢ" țȐʌȠȚȦȞ İȞIJȠȜȫȞ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ țĮȚ İʌȠµȑȞȦȢ ȩȜİȢ ȠȚ İȞIJȠȜȑȢ İțIJİȜȠȪȞIJĮȚ ȣʌȠȤȡİȦIJȚțȐ µİ IJȘȞ ȓįȚĮ ıİȚȡȐ ʌȠȣ İȓȞĮȚ ȖȡĮµµȑȞİȢ ıIJȠ ʌȡȩȖȡĮµµĮ, Ș µȓĮ µİIJȐ IJȘȞ ȐȜȜȘ. ȆȠȜȜȑȢ ijȠȡȑȢ ȩµȦȢ Ș ȜȪıȘ IJȦȞ ʌȡȠȕȜȘµȐIJȦȞ ĮʌĮȚIJİȓ IJȘ ȜȒȥȘ ĮʌȠijȐıİȦȞ țĮȚ IJȘȞ ʌĮȡȐțĮµȥȘ țȐʌȠȚȦȞ İȞIJȠȜȫȞ ʌȠȣ ȣʌȐȡȤȠȣȞ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ, ĮȞȐȜȠȖĮ µİ IJȚȢ ıȣȞșȒțİȢ ʌȠȣ İʌȚțȡĮIJȠȪȞ. ȅȚ ıȣȞșȒțİȢ ĮȣIJȑȢ İȟĮȡIJȫȞIJĮȚ Įʌȩ IJȚȢ IJȡȑȤȠȣıİȢ IJȚµȑȢ țȐʌȠȚȦȞ µİIJĮȕȜȘIJȫȞ. ǼIJıȚ ĮȜȜȐȗȠȞIJĮȢ IJȚȢ IJȚµȑȢ ĮȣIJȫȞ IJȦȞ µİIJĮȕȜȘIJȫȞ, İȓȞĮȚ įȣȞĮIJȩ ȞĮ İțIJİȜİıșȠȪȞ Ȓ ȞĮ ĮȖȞȠȘșȠȪȞ ȠȡȚıµȑȞİȢ İȞIJȠȜȑȢ. ȅȚ įȚȐijȠȡİȢ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ įȚĮșȑIJȠȣȞ İȚįȚțȑȢ İȞIJȠȜȑȢ ʌȠȣ µĮȢ įȓȞȠȣȞ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ ȗȘIJȠȪµİ IJȘȞ İțIJȑȜİıȘ Ȓ IJȘȞ ʌĮȡȐțĮµȥȘ İȞIJȠȜȫȞ ʌȠȣ ȣʌȐȡȤȠȣȞ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ. ȅµȦȢ ʌȡȚȞ ʌİȡȚȖȡȐȥȠȣµİ ĮȣIJȑȢ IJȚȢ İȞIJȠȜȑȢ, ĮȢ ıȘµİȚȫıȠȣµİ ȩIJȚ ȩȜİȢ ȠȚ İȞIJȠȜȑȢ IJȘȢ Pascal ĮȞȒțȠȣȞ ıİ µȓĮ Įʌȩ IJȚȢ ʌĮȡĮțȐIJȦ țĮIJȘȖȠȡȓİȢ İȞIJȠȜȫȞ: -
ĮʌȜȑȢ İȞIJȠȜȑȢ (simple statements), ʌȠȣ įİȞ ʌİȡȚȑȤȠȣȞ ȐȜȜİȢ İȞIJȠȜȑȢ,
-
įȠµȘµȑȞİȢ İȞIJȠȜȑȢ (structured statements) ʌȠȣ ıȣȖțȡȠIJȠȪȞIJĮȚ Įʌȩ µȓĮ Ȓ ʌİȡȚııȩIJİȡİȢ İıȦIJİȡȚțȑȢ İȞIJȠȜȑȢ.
Ǿ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ țĮșȫȢ țĮȚ ȠȚ İȞIJȠȜȑȢ ĮȞȐȖȞȦıȘȢ țĮȚ İțIJȪʌȦıȘȢ -ʌȠȣ ȖİȞȚțȐ ȠȞȠµȐȗȠȞIJĮȚ įȚĮįȚțĮıȓİȢ (procedures), ȩʌȦȢ șĮ įȠȪµİ ĮȡȖȩIJİȡĮ- ĮȞȒțȠȣȞ ıIJȘȞ țĮIJȘȖȠȡȓĮ IJȦȞ ĮʌȜȫȞ İȞIJȠȜȫȞ. ȂȚĮ įȠµȘµȑȞȘ İȞIJȠȜȒ İȓȞĮȚ Ș ıȪȞșİIJȘ İȞIJȠȜȒ (compound statement) ʌȠȣ İȓȞĮȚ µȓĮ ĮțȠȜȠȣșȓĮ İȞIJȠȜȫȞ µİIJĮȟȪ IJȦȞ ȜȑȟİȦȞ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-58-
Begin țĮȚ End. Ǿ ıȪȞșİIJȘ İȞIJȠȜȒ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ țȣȡȓȦȢ ıIJȘȞ ʌİȡȓʌIJȦıȘ ȩʌȠȣ ȤȡİȚȐȗİIJĮȚ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȓĮ İȞIJȠȜȑȢ ȞĮ ȜĮµȕȐȞȠȞIJĮȚ ȦȢ µȓĮ İȞȩIJȘIJĮ ("İȞIJȠȜȒ"). Ȃİ IJȘȞ ȑȞȞȠȚĮ ĮȣIJȒ µʌȠȡȠȪµİ ȞĮ șİȦȡȒıȠȣµİ țĮȚ ȩȜȠ IJȠ țȣȡȓȦȢ ʌȡȩȖȡĮµµĮ ȦȢ µȓĮ ıȪȞșİIJȘ İȞIJȠȜȒ. ǻȠµȘµȑȞİȢ İȞIJȠȜȑȢ İȓȞĮȚ ĮțȩµĮ ȠȚ İȞIJȠȜȑȢ İȜȑȖȤȠȣ țĮȚ ȠȚ İȞIJȠȜȑȢ İʌĮȞȐȜȘȥȘȢ. Ȉ'ĮȣIJȩ IJȠ țİijȐȜĮȚȠ șĮ ĮıȤȠȜȘșȠȪµİ µİ IJȚȢ İȞIJȠȜȑȢ İȜȑȖȤȠȣ țĮȚ ıIJȠ İʌȩµİȞȠ µİ IJȚȢ İȞIJȠȜȑȢ İʌĮȞȐȜȘȥȘȢ.
7.1 Ǿ ǼȃȉȅȁǾ IF ȈȣȤȞȐ ıIJȠȞ ʌȡȠȖȡĮµµĮIJȚıµȩ șȑȜȠȣµİ ȞĮ İțIJİȜȑıȠȣµİ µȓĮ Įʌȩ įȪȠ (Ȓ ʌİȡȚııȩIJİȡİȢ) ĮțȠȜȠȣșȓİȢ İȞIJȠȜȫȞ, ĮȖȞȠȫȞIJĮȢ IJȘȞ ȐȜȜȘ (IJȚȢ ȐȜȜİȢ). Ǿ ĮʌȩijĮıȘ ȖȚĮ IJȠ ʌȠȚİȢ İȞIJȠȜȑȢ șĮ İțIJİȜİıșȠȪȞ İȟĮȡIJȐIJĮȚ ıȣȞȒșȦȢ Įʌȩ țȐʌȠȚĮ ȜȠȖȚțȒ ıȣȞșȒțȘ. ǹȞ ʌ.Ȥ șȑȜȠȣµİ ȞĮ İțIJİȜİıșİȓ Ș İȞIJȠȜȒ X:=X/N µȩȞȠ ıIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ Ș IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ ȃ İȓȞĮȚ įȚȐijȠȡȘ IJȠȣ µȘįİȞȩȢ (țĮȚ ȞĮ µȘȞ İțIJİȜİıșİȓ ıIJȘȞ ʌİȡȓʌIJȦıȘ ȃ=0), IJȩIJİ µʌȠȡȠȪµİ ȞĮ İijĮȡµȩıȠȣµİ IJȠ İȟȒȢ ıȤȒµĮ ıȣȜȜȠȖȚıµȠȪ: ǹȞ ȃ<>0 IJȩIJİ ȋ:=ȋ/ȃ ȉȠ ʌĮȡĮʌȐȞȦ ıȤȒµĮ µʌȠȡİȓ ȖİȞȚțȩIJİȡĮ ȞĮ įȠșİȓ ȦȢ İȟȒȢ: ǹȞ Ȇ IJȩIJİ Ǽ Ǽįȫ IJȠ Ȇ ĮȞIJȚʌȡȠıȦʌİȪİȚ țȐʌȠȚĮ ȜȠȖȚțȒ ıȣȞșȒțȘ (logical condition), ʌȠȣ µʌȠȡİȓ ȞĮ ʌȐȡİȚ IJȘ ȜȠȖȚțȒ IJȚµȒ "ĮȜȘșȒȢ" Ȓ "ȥİȣįȒȢ" țĮȚ IJȠ Ǽ µȚĮ ȠʌȠȚĮįȒʌȠIJİ İȞIJȠȜȒ. ȈIJȘȞ Pascal IJȠ ıȤȒµĮ "ǼȐȞ Ȇ IJȩIJİ Ǽ" ʌĮȓȡȞİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ țĮȚ ȜȑȖİIJĮȚ İȞIJȠȜȒ IfThen: If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ Then İȞIJȠȜȒ; ȩʌȠȣ If țĮȚ Then įİıµİȣµȑȞİȢ ȜȑȟİȚȢ. H İȞIJȠȜȒ µİIJȐ IJȘ ȜȑȟȘ Then µʌȠȡİȓ ȞĮ İȓȞĮȚ ȠʌȠȚĮįȒʌȠIJİ ĮʌȜȒ Ȓ ıȪȞșİIJȘ İȞIJȠȜȒ. ǼʌȠµȑȞȦȢ IJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµȐ µĮȢ, șĮ ʌȐȡİȚ IJȘȞ İȟȒȢ µȠȡijȒ ıIJȘȞ Pascal: If N<>0 Then X:=X/N;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-59-
Ǿ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ IfThen, ʌȠȣ ȜȑȖİIJĮȚ țĮȚ İȞIJȠȜȒ İȜȑȖȤȠȣ, ȖȓȞİIJĮȚ țĮIJĮȞȠȘIJȒ Įʌȩ IJȘȞ İȟȑIJĮıȘ IJȠȣ ȜȠȖȚțȠȪ įȚĮȖȡȐµµĮIJȠȢ IJȠȣ ȈȤȒµĮIJȠȢ 7.1. ȅʌȦȢ ijĮȓȞİIJĮȚ Įʌȩ IJȠ ȜȠȖȚțȩ įȚȐȖȡĮµµĮ, ʌȡȫIJĮ ȣʌȠȜȠȖȓȗİIJĮȚ Ș IJȚµȒ IJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ țĮȚ ĮȞ İȓȞĮȚ True IJȩIJİ Ș İȞIJȠȜȒ µİIJȐ IJȘȞ Then (İıȦIJİȡȚțȒ İȞIJȠȜȒ) İțIJİȜİȓIJĮȚ. Ǿ İȞIJȠȜȒ ĮȣIJȒ µʌȠȡİȓ ȞĮ İȓȞĮȚ µȚĮ ȠʌȠȚĮįȒʌȠIJİ ĮʌȜȒ İȞIJȠȜȒ IJȘȢ Pascal Ȓ țȐʌȠȚĮ ıȪȞ-șİIJȘ İȞIJȠȜȒ. ǹȞ ȩµȦȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȑȤİȚ IJȘȞ IJȚµȒ False IJȩIJİ Ș İȞIJȠȜȒ µİIJȐ IJȘȞ Then ʌĮȡĮȜİȓʌİIJĮȚ. ȀĮȚ ıIJȘ µȓĮ ʌİȡȓ-ʌIJȦıȘ țĮȚ ıIJȘȞ ȐȜȜȘ, İțIJİȜİȓIJĮȚ Ș İʌȩµİȞȘ İȞIJȠȜȒ IJȠȣ ʌȡȠȖȡȐµ-µĮIJȠȢ. ǹʌȩ IJȠ ıȤȒµĮ 7.1 µʌȠȡȠȪµİ ȞĮ țĮIJĮȜȐȕȠȣµİ ĮțȩµĮ ȖȚĮIJȓ ȠȚ İȞIJȠȜȑȢ If ȜȑȖȠȞIJĮȚ țĮȚ İȞIJȠȜȑȢ įȚĮțȜȐįȦıȘȢ (brancing).
ëïãéêÞ ðáñÜóôáóç
TRUE
FALSE åíôïëÞ
åðüìåíç åíôïëÞ
ȈȤȒµĮ 7.1
ȆĮȡȐįİȚȖµĮ ǹȢ ȖȡȐȥȠȣµİ IJȚȢ ĮȞIJȓıIJȠȚȤİȢ ʌĮȡĮțȐIJȦ įȚĮįȚțĮıȓİȢ:
İȞIJȠȜȑȢ
ıİ
Pascal
ȖȚĮ
IJȚȢ
(Į) ǹȞ x ! 0 IJȩIJİ y: y x (ȕ) ǹȞ b 2 4 ac t 0 IJȩIJİ ȣʌȠȜȩȖȚıİ IJȘȞ d
b 2 4 ac
ȈIJȘȞ Pascal șĮ ȑȤȠȣµİ: (Į) If X>0 Then Y:=Y-X; (ȕ) If Sqr(B)-4*A*C>=0 Then D:=Sqrt(Sqr(B)-4*A*C); ȈIJȘȞ (Į) ʌİȡȓʌIJȦıȘ IJȠȣ ʌĮȡĮįİȓȖµĮIJȠȢ İȟİIJȐȗİIJĮȚ ĮȞ Ș IJȡȑȤȠȣıĮ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ ȋ İȓȞĮȚ șİIJȚțȒ. ǹȞ İȓȞĮȚ, IJȩIJİ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒ Y:=Y-X, ĮȞ įİȞ İȓȞĮȚ IJȩIJİ Ș İȞIJȠȜȒ Y:=Y-X įİȞ İțIJİȜİȓIJĮȚ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-60-
ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ įȚĮȕȐȗİȚ įȪȠ ʌȡĮȖµĮIJȚțȠȪȢ ĮȡȚșµȠȪȢ ʌȠȣ įȓȞȠȞIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ țĮȚ IJȣʌȫȞİȚ IJȠ µİȖĮȜȪIJİȡȠ Įʌȩ ĮȣIJȠȪȢ µĮȗȓ µİ IJȠ µȒȞȣµĮ 'ȂİȖĮȜȪIJİȡȠȢ İȓȞĮȚ Ƞ ĮȡȚșµȩȢ:' Program Maximum1; Var X,Y,Max: Real; Begin Write('ǻȫıİ įȪȠ ĮȡȚșµȠȪȢ '); Readln(X,Y); Max:=Y; If X>Y Then Max:=X; Writeln('ȂİȖĮȜȪIJİȡȠȢ İȓȞĮȚ Ƞ ĮȡȚșµȩȢ: ',Max:6:3) End.
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌȡȩȖȡĮµµĮ ȑȤȠȣµİ țȐȞİȚ IJȘȞ ĮȣșĮȓȡİIJȘ ȣʌȩșİıȘ ȩIJȚ Ƞ µİȖĮȜȪIJİȡȠȢ ĮȡȚșµȩȢ İȓȞĮȚ Ƞ Ȋ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ȩµȦȢ ʌȠȣ ĮȣIJȩ įİȞ ĮȜȘșİȪİȚ, İțIJİȜİȓIJĮȚ Ș İıȦIJİȡȚțȒ İȞIJȠȜȒ: Max:=X, IJȘȢ įȠµȘµȑȞȘȢ İȞIJȠȜȒȢ IfThen ʌȠȣ įȚȠȡșȫȞİȚ IJȘȞ ĮȡȤȚțȒ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ Max. ǼIJıȚ ȜȠȚʌȩȞ ʌȐȞIJĮ IJȣʌȫȞİIJĮȚ Ƞ µİȖĮȜȪIJİȡȠȢ Įʌȩ IJȠȣȢ įȪȠ ĮȡȚșµȠȪȢ. ȆȠȜȜȑȢ ijȠȡȑȢ İȓȞĮȚ ȤȡȒıȚµȠ ȞĮ țĮșȠȡȓıȠȣµİ ȩȤȚ µȩȞȠ İȞIJȠȜȒ ʌȠȣ șĮ İțIJİȜİıșİȓ ȩIJĮȞ ȚıȤȪİȚ Ș ıȣȞșȒțȘ ĮȜȜȐ țĮȚ İȞIJȠȜȒ ʌȠȣ șĮ İțIJİȜİıșİȓ ȩIJĮȞ įİȞ ȚıȤȪİȚ Ș ıȣȞșȒțȘ. īȚĮ ʌİȡȓʌIJȦıȘ ĮȣIJȒ Ș Pascal įȚĮșȑIJİȚ țĮȚ µȚĮ ȐȜȜȘ ʌĮȡĮȜȜĮȖȒ İȞIJȠȜȒȢ İȜȑȖȤȠȣ If ʌȠȣ ȜȑȖİIJĮȚ IfThenElse. H ȖİȞȚțȒ µȠȡijȒ İȞIJȠȜȒȢ ĮȣIJȒȢ İȓȞĮȚ:
IJȘȞ IJȘȞ IJȘȞ IJȘȢ IJȘȢ
If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ Then İȞIJȠȜȒ1 Else İȞIJȠȜȒ2; ȩʌȠȣ Else İȓȞĮȚ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ. ȅʌȦȢ țĮȚ ʌȡȠȘȖȠȣµȑȞȦȢ Ș İȞIJȠȜȒ1 țĮȚ Ș İȞIJȠȜȒ2 µʌȠȡȠȪȞ ȞĮ İȓȞĮȚ ȠʌȠȚİıįȒʌȠIJİ ĮʌȜȑȢ Ȓ ıȪȞșİIJİȢ İȞIJȠȜȑȢ. ȆȡȑʌİȚ ĮțȩµĮ ȞĮ ʌȡȠıȑȟȠȣµİ ȩIJȚ Ș IJİȜİȣIJĮȓĮ İȞIJȠȜȒ ʌȡȚȞ Įʌȩ IJȠ Else, įİȞ IJİȜİȚȫȞİȚ µİ ";". ȉȠ ȜȠȖȚțȩ įȚȐȖȡĮµµĮ ĮȣIJȒȢ IJȘȢ İȞIJȠȜȒȢ ijĮȓȞİIJĮȚ ıIJȠ ȈȤȒµĮ 7.2.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-61-
ǹʌȩ IJȠ ȜȠȖȚțȩ įȚȐȖȡĮµµĮ ʌĮȡĮIJȘȡȠȪµİ ȩIJȚ ĮȞ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȑȤİȚ IJȚµȒ True, IJȩIJİ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒ1 İȞȫ Ș İȞIJȠȜȒ2 ʌĮȡĮȜİȓ-ʌİIJĮȚ. ǹȞ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȑȤİȚ IJȚµȒ False, IJȩIJİ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒ2 țĮȚ ʌĮȡĮȜİȓ-ʌİIJĮȚ Ș İȞIJȠȜȒ1. ȀĮȚ ıIJȚȢ įȪȠ ʌİȡȚʌIJȫıİȚȢ Ș İțIJȑȜİıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ıȣȞİȤȓȗİIJĮȚ µİ IJȘȞ ĮµȑıȦȢ İʌȩµİȞȘ İȞIJȠȜȒ. ȉȩıȠ Ș İȞIJȠȜȒ1 ȩıȠ țĮȚ Ș
FALSE
ëïãéêÞ ðáñÜóôáóç
TRUE
åíôïëÞ1
åíôïëÞ 2
åðüìåíç åíôïëÞ
ȈȤȒµĮ 7.2 İȞIJȠȜȒ2 µʌȠȡȠȪȞ ȞĮ İȓȞĮȚ ȠʌȠȚİıįȒʌȠIJİ ĮʌȜȑȢ Ȓ ıȪȞșİIJİȢ İȞIJȠȜȑȢ IJȘȢ Pascal. ȆĮȡȐįİȚȖµĮ ǹȢ ȟĮȞĮįȠȪµİ IJȠ ʌȡȩȕȜȘµĮ İʌȚȜȠȖȒȢ IJȠȣ µİȖĮȜȪIJİȡȠȣ µİ IJȘ ȤȡȒıȘ IJȘȢ İȞIJȠȜȒȢ IfThenElse. Program Maximum2; Var X,Y,Max: Real; Begin Write('ǻȫıİ įȪȠ ĮȡȚșµȠȪȢ '); Readln(X,Y); If X>Y Then Max:=X Else Max:=Y; Writeln('ȂİȖĮȜȪIJİȡȠȢ İȓȞĮȚ Ƞ ĮȡȚșµȩȢ: ',Max:6:3) End.
O ʌĮȡĮʌȐȞȦ İȓȞĮȚ Ƞ ʌȚȠ "ijȣıȚȠȜȠȖȚțȩȢ" IJȡȩʌȠȢ įȚĮIJȪʌȦıȘ IJȠȣ ĮȜȖȠȡȓșµȠȣ țĮȚ Ƞ ʌȚȠ ȠȚțȠȞȠµȚțȩȢ. ȆĮȡȐįİȚȖµĮ ǼțijȡȐıIJİ ıİ Pascal IJȘȞ ʌĮȡĮțȐIJȦ įȚĮįȚțĮıȓĮ: ǹȞ x t 0 IJȩIJİ sum1 : sum1 x țĮȚ sum2 : sum2 1 įȚĮijȠȡİIJȚțȐ sum1 : sum1 x țĮȚ sum2 : sum2 1. ȈIJȘȞ Pascal șĮ ȑȤȠȣµİ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
ȖȚĮ
IJȘ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
If X>=0 Then Begin Sum1:=Sum1+X; Sum2:=Sum2+1 End Else Begin Sum1:=Sum1-X; Sum2:=Sum2-1 End;
} }
-62-
ȈȪȞșİIJȘ İȞIJȠȜȒ
ȈȪȞșİIJȘ İȞIJȠȜȒ
ȈIJȠ ʌĮȡȐįİȚȖµĮ ĮȣIJȩ ȕȜȑʌȠȣµİ țĮȚ IJȘ ıȪȞșİIJȘ İȞIJȠȜȒ ʌȠȣ İȓȤĮµİ ĮȞĮijȑȡİȚ ıIJȘȞ ĮȡȤȒ IJȠȣ țİijĮȜĮȓȠȣ ĮȣIJȠȪ. ȆĮȡĮIJȘȡȠȪµİ ȩIJȚ șȑȜȠȣµİ µİIJȐ IJȠ Then ȞĮ İțIJİȜȑıȠȣµİ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȓĮ İȞIJȠȜȑȢ ıĮȞ ȞĮ ȒIJĮȞ µȓĮ İȞIJȠȜȒ, ȑIJıȚ țȐȞȠȣµİ "ʌĮțȑIJȠ" ĮȣIJȑȢ IJȚȢ İȞIJȠȜȑȢ µİIJĮȟȪ İȞȩȢ Begin țĮȚ İȞȩȢ End. ȉȠ ȓįȚȠ ıȣµȕĮȓȞİȚ țĮȚ µİIJȐ IJȠ Else. ǼȓȞĮȚ İʌȓıȘȢ ıȣȞȘșȚıµȑȞȠ ijĮȚȞȩµİȞȠ, ıİ µȚĮ İȞIJȠȜȒ IfThenElse, IJȩıȠ Ș İȞIJȠȜȒ1 ȩıȠ țĮȚ/Ȓ Ș İȞIJȠȜȒ2 ȞĮ İȓȞĮȚ IJȘȢ µȠȡijȒȢ IfThenElse, ȩʌȦȢ ijĮȓȞİIJĮȚ ȖȚĮ ʌĮȡȐįİȚȖµĮ ıIJȚȢ ʌĮȡĮțȐIJȦ ʌİȡȚʌIJȫıİȚȢ: (Į)
If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 Then If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 Then İȞIJȠȜȒ1 Else İȞIJȠȜȒ2;
(ȕ)
If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 Then If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 Then İȞIJȠȜȒ1 Else If ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ3 Then İȞIJȠȜȒ2 Else İȞIJȠȜȒ3 Else İȞIJȠȜȒ4;
ȈIJȚȢ ʌĮȡĮʌȐȞȦ ʌİȡȚʌIJȫıİȚȢ µʌȠȡİȓ țĮȞİȓȢ ȞĮ ĮȞĮȡȦIJȘșİȓ ʌȠȣ "țȠȜȜȐİȚ" IJȠ țȐșİ Else. ȈIJȘȞ ʌȡĮȖµĮIJȚțȩIJȘIJĮ įİȞ ȣʌȐȡȤİȚ ıȪȖȤȣıȘ. ǼȟİIJȐȗȠȞIJĮȢ ʌȡȠıİțIJȚțȐ ʌ.Ȥ IJȘȞ ʌİȡȓʌIJȦıȘ (ȕ) ȕȜȑʌȠȣµİ ȩIJȚ ȖȚĮ ȞĮ İțIJİȜİıșİȓ Ș İȞIJȠȜȒ1, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ĮȜȘșİȓȢ țĮȚ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 țĮȚ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ2. īȚĮ ȞĮ İțIJİȜİıșİȓ Ș
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-63-
İȞIJȠȜȒ2, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ĮȜȘșȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1, ȥİȣįȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 țĮȚ ĮȜȘșȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ3. īȚĮ ȞĮ İțIJİȜİıșİȓ Ș İȞIJȠȜȒ3, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ĮȜȘșȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1, ȥİȣįȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ2 țĮȚ ȥİȣįȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ3. ȉȑȜȠȢ ȖȚĮ ȞĮ İțIJİȜİıșİȓ Ș İȞIJȠȜȒ4, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ȥİȣįȒȢ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ1 țĮȚ įİ µĮȢ İȞįȚĮijȑȡİȚ IJȚ İȓȞĮȚ ȠȚ ʌĮȡĮıIJȐıİȚȢ 2 țĮȚ 3. ǹʌȩ IJĮ ʌĮȡĮʌȐȞȦ İȓȞĮȚ ijĮȞİȡȩ ȩIJȚ Ƞ IJȡȩʌȠȢ ȖȡĮijȒȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ İȓȞĮȚ ıȘµĮȞIJȚțȩȢ ȖȚĮ IJȘȞ țĮIJĮȞȩȘıȒ IJȠȣ Įʌȩ ݵȐȢ țĮȚ Įʌȩ ȐȜȜȠȣȢ ʌȠȣ ʌȚșĮȞȩȞ ȞĮ įȠȣȞ IJȠ ʌȡȩȖȡĮµµȐ µĮȢ, ʌȡȠıȑȟIJİ ȩIJȚ ȑȤȠȣµİ ıIJȘȞ ȓįȚĮ țĮIJĮțȩȡȣijȘ ıIJȒȜȘ IJĮ ĮȞIJȓıIJȠȚȤĮ If țĮȚ Else, ĮȣIJȩ ȖȚĮ IJȠ µİIJĮȖȜȦIJIJȚıIJȒ įİȞ ȑȤİȚ ijȣıȚțȐ țĮµȓĮ ıȘµĮıȓĮ, įȚİȣțȠȜȪȞİȚ µȩȞȠ ݵȐȢ. ǼʌȓıȘȢ ȖȚĮ ȞĮ µȘȞ ȣʌȐȡȤİȚ ıȪȖȤȣıȘ µİ IJȚȢ IfThenElse İȞIJȠȜȑȢ, ȑȞĮȢ ȖİȞȚțȩȢ țĮȞȩȞĮȢ İȓȞĮȚ ȩIJȚ: țȐșİ Else ĮȞIJȚıIJȠȚȤİȓ µİ IJȠ ʌȜȑȠȞ ʌȡȩıijĮIJȠ If. ȆĮȡȐįİȚȖµĮ ȍȢ µȚĮ İijĮȡµȠȖȒ ȩȜȦȞ IJȦȞ ʌĮȡĮʌȐȞȦ șĮ įȫıȠȣµİ IJȫȡĮ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȣʌȠȜȠȖȓȗİȚ IJȚȢ ȡȓȗİȢ IJȘȢ İȟȓıȦıȘȢ ax2 bx c 0 ȣʌİȞșȣµȓȗȠȣµİ ȩIJȚ ĮȞ a z 0 ȠȚ ȡȓȗİȢ İȓȞĮȚ: b r b 2 4 ac r1 , 2
2a Program Quadratic; Var A,B,C: Real; {ȠȚ ıȣȞIJİȜİıIJȑȢ IJȘȢ İȟȓıȦıȘȢ} Delta: Real; {Ș įȚĮțȡȓȞȠȣıĮ} X1,X2: Real; {ȠȚ ȡȓȗİȢ IJȘȢ İȟȓıȦıȘȢ} Begin Write('ǻȫıİ IJȠȣȢ ıȣȞIJİȜİıIJȑȢ IJȘȢ İȟȓıȦıȘȢ '); Readln(A,B,C); Delta:=Sqr(B)-4*A*C; If A=0 Then Writeln('Ǿ İȟȓıȦıȘ İȓȞĮȚ ʌȡȫIJȠȣ ȕĮșµȠȪ'); Else If Delta>=0 then Begin X1:=(-B+Sqrt(Delta))/(2*A); X2:=(-B-Sqrt(Delta))/(2*A); Writeln('ȇȓȗĮ1= ',X1:6:3,' ȇȓȗĮ2= ',ȋ2:6:3) End Else Writeln('ǻİȞ ȣʌȐȡȤȠȣȞ ʌȡĮȖµĮIJȚțȑȢ ȡȓȗİȢ') End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-64-
7.2 Ǿ ǼȃȉȅȁǾ CASE Ǿ İȞIJȠȜȒ Case İȓȞĮȚ µȚĮ ȣʌȩ ıȣȞșȒțȘ İȞIJȠȜȒ, Ș ȠʌȠȓĮ ıȣȤȞȐ İȓȞĮȚ ʌȚȠ ȕȠȜȚțȒ Įʌȩ IJȘȞ IfThenElse ıIJȘȞ ȠȡȖȐȞȦıȘ ʌȠȜȜĮʌȜȫȞ įȚĮțȜĮįȫıİȦȞ. Ȃİ IJȘȞ Case ȑȤȠȣµİ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ İʌȚȜȑȟȠȣµİ Įʌȩ ȑȞĮ ıȪȞȠȜȠ İȞIJȠȜȫȞ, µȓĮ µȩȞȠ ȖȚĮ İțIJȑȜİıȘ. Ǿ ȖİȞȚțȒ µȠȡijȒ IJȘȢ İȞIJȠȜȒȢ Case İȓȞĮȚ: Case İʌȚȜȠȖȑĮȢ ȜȓıIJĮ IJȚµȫȞ1 ȜȓıIJĮ IJȚµȫȞ2 .. .. ȜȓıIJĮ IJȚµȫȞn Else İȞIJȠȜȒ End;
Of : İȞIJȠȜȒ1; : İȞIJȠȜȒ2; .. .. : İȞIJȠȜȒn
ȩʌȠȣ Case țĮȚ Of İȓȞĮȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ. ȅ İʌȚȜȠȖȑĮȢ İȓȞĮȚ µȚĮ ʌĮȡȐıIJĮıȘ ʌȠȣ µʌȠȡİȓ ȞĮ İȓȞĮȚ ȠʌȠȚȠȣįȒʌȠIJİ IJȪʌȠȣ Įʌȩ ĮȣIJȠȪȢ ʌȠȣ ȑȤȠȣµİ įİȚ µȑȤȡȚ IJȫȡĮ, İțIJȩȢ Įʌȩ Real țĮȚ String, įȘȜĮįȒ Integer, Boolean, Char Ȓ ȠʌȠȚȠȣįȒʌȠIJİ ȕĮșµȦIJȠȪ IJȪʌȠȣ.Ǿ ȜȓıIJĮ IJȚµȫȞi İȓȞĮȚ µȓĮ ȜȓıIJĮ µȓĮȢ Ȓ ʌİȡȚııȠIJȑȡȦȞ ʌȚșĮȞȫȞ IJȚµȫȞ IJȠȣ İʌȚȜȠȖȑĮ ʌȠȣ ȤȦȡȓȗȠȞIJĮȚ µİ țȩµµĮIJĮ. Ǿ İȞIJȠȜȒi µʌȠȡİȓ ȞĮ İȓȞĮȚ ȠʌȠȚĮįȒʌȠIJİ ĮʌȜȒ Ȓ ıȪȞșİIJȘ İȞIJȠȜȒ. Ǿ İȞIJȠȜȒ Case İțIJİȜİȓIJĮȚ ȦȢ İȟȒȢ: ȆȡȫIJĮ ȣʌȠȜȠȖȓȗİIJĮȚ Ș IJȚµȒ IJȠȣ İʌȚȜȠȖȑĮ țĮȚ țĮIJȩʌȚȞ ıȣȖțȡȓȞİIJĮȚ µİ țȐșİ µȚĮ ȜȓıIJĮ IJȚµȫȞ. ǹȞ Ș IJȚµȒ IJȠȣ İʌȚȜȠȖȑĮ ȕȡȓıțİIJĮȚ ıIJȘ ȜȓıIJĮ IJȚµȫȞi, IJȩIJİ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒi țĮȚ țĮIJȩʌȚȞ Ƞ ȑȜİȖȤȠȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ µİIJĮijȑȡİIJĮȚ µİIJȐ IJȠ End IJȘȢ Case. ǹȞ Ș IJȚµȒ IJȠȣ İʌȚȜȠȖȑĮ įİ ȕȡȓıțİIJĮȚ ıİ țĮµȓĮ ȜȓıIJĮ IJȚµȫȞ, IJȩIJİ İțIJİȜİȓIJĮȚ Ș İȞIJȠȜȒ µİIJȐ IJȠ Else. ȋȡİȚȐȗİIJĮȚ ȚįȚĮȓIJİȡȘ ʌȡȠıȠȤȒ ȫıIJİ ȞĮ µȘȞ ݵijĮȞȓȗİIJĮȚ µȓĮ IJȚµȒ IJȠȣ İʌȚȜȠȖȑĮ ıİ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȓĮ ȜȓıIJİȢ IJȚµȫȞ. ǹȞ șȑȜȠȣµİ ȖȚĮ țȐʌȠȚĮ ıȣȖțİțȡȚµȑȞȘ IJȚµȒ, Ȓ IJȚµȑȢ, IJȠȣ İʌȚȜȠȖȑĮ, ȞĮ µȘȞ İțIJİȜİıșİȓ țĮµȓĮ İȞIJȠȜȒ (įȘȜĮįȒ ȖȚĮ IJȘȞ IJȚµȒ Ȓ IJȚȢ IJȚµȑȢ ĮȣIJȑȢ IJȠȣ İʌȚȜȠȖȑĮ șȑȜȠȣµİ ĮʌȜȫȢ ȞĮ İțIJİȜİıșİȓ Ș İȞIJȠȜȒ ʌȠȣ ȕȡȓıțİIJĮȚ µİIJȐ IJȠ Ǽnd IJȘȢ Case) IJȩIJİ IJȠʌȠșİIJȠȪµİ IJȠ ";" ĮµȑıȦȢ µİIJȐ IJȠ ":". ȉȑȜȠȢ ĮȢ ıȘµİȚȫıȠȣµİ ȩIJȚ IJȠ End IJȘȢ Case, įİȞ ĮȞIJȚıIJȠȚȤİȓ ıİ țĮȞȑȞĮ Begin.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-65-
ȆĮȡȐįİȚȖµĮ ǹȢ ȣʌȠșȑıȠȣµİ ȩIJȚ ȠȚ ȘµȑȡİȢ IJȘȢ İȕįȠµȐįĮȢ, ȀȣȡȚĮțȒ ȑȦȢ ȈȐȕȕĮIJȠ, ĮȞIJȚıIJȠȚȤȠȪȞ ıIJȠȣȢ ĮȡȚșµȠȪȢ 1 ȑȦȢ 7. ĬĮ ȖȡȐȥȠȣµİ ȑȞĮ ʌȡȩȖȡĮµµĮ Pascal ʌȠȣ șĮ įȚĮȕȐȗİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ĮȡȚșµȩ țĮȚ șĮ IJȣʌȫȞİȚ IJȠ ȩȞȠµĮ IJȘȢ ĮȞIJȓıIJȠȚȤȘȢ ȘµȑȡĮȢ, ĮȞ ȣʌȐȡȤİȚ. Program Days; Var Num: Integer; Begin Write('ǻȫıİ ȑȞĮȞ ĮțȑȡĮȚȠ ĮȡȚșµȩ Įʌȩ 1 ȑȦȢ 7 '); Readln(Num); Case Num Of 1: Write('ȀȣȡȚĮțȒ'); 2: Write('ǻİȣIJȑȡĮ'); 3: Write('ȉȡȓIJȘ'); 4: Write('ȉİIJȐȡIJȘ'); 5: Write('ȆȑµʌIJȘ'); 6: Write('ȆĮȡĮıțİȣȒ'); 7: Write('ȈȐȕȕĮIJȠ') Else Write('ǹțȣȡȠȢ ĮȡȚșµȩȢ') End {IJȘȢ Case} End.
ȅʌȦȢ ʌĮȡĮIJȘȡȠȪµİ, șĮ µʌȠȡȠȪıĮµİ ȞĮ ȖȡȐȥȠȣµİ ʌȡȩȖȡĮµµĮ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ İȞIJȠȜȑȢ IfThenElse:
IJȠ
ʌĮȡĮʌȐȞȦ
Program Days1; Var Num: Integer; Begin Write('ǻȫıİ ȑȞĮȞ ĮțȑȡĮȚȠ ĮȡȚșµȩ Įʌȩ 1 ȑȦȢ 7 '); Readln(Num); If Num=1 Then Write('ȀȣȡȚĮțȒ') Else If Num=2 Then Write('ǻİȣIJȑȡĮ') Else If Num=3 Then Write('ȉȡȓIJȘ') Else If Num=4 Then Write('ȉİIJȐȡIJȘ') Else If Num=5 Then Write('ȆȑµʌIJȘ') Else If Num=6 Then Write('ȆĮȡĮıțİȣȒ') Else If Num=7 Then Write('ȈȐȕȕĮIJȠ') Else Write('ǹțȣȡȠȢ ĮȡȚșµȩȢ') End.
ȈȣȖțȡȓȞȠȞIJĮȢ IJĮ ʌĮȡĮʌȐȞȦ įȪȠ ʌȡȠȖȡȐµµĮIJĮ ȕȜȑʌȠȣµİ IJĮ ʌȜİȠȞİțIJȒµĮIJĮ, Įʌȩ ʌȜİȣȡȐȢ İȣțȠȜȓĮȢ ȖȡĮijȒȢ țĮȚ țĮIJĮȞȩȘıȘȢ, IJȘȢ İȞIJȠȜȒȢ Case ȑȞĮȞIJȚ IJȦȞ ʌȠȜȜȫȞ İȞIJȠȜȫȞ IfThenElse. ǹȢ IJȠȞȓıȠȣµİ ȟĮȞȐ ȩIJȚ IJĮ įȪȠ ʌȡȠȖȡȐµµĮIJĮ İȓȞĮȚ İȟȓıȠȣ ıȦıIJȐ țĮȚ įȓȞȠȣȞ ĮțȡȚȕȫȢ IJĮ ȓįȚĮ ĮʌȠIJİȜȑıµĮIJĮ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-66-
7.3 Ǿ ǼȃȉȅȁǾ GOTO Ȁǹǿ Ǿ ǻǾȁȍȈǾ LABEL. ǹȞ ʌȡȠıȑȟȠȣµİ IJȠ ȈȤȒµĮ 2.2 șĮ įȠȪµİ ȩIJȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ țĮȚ țȐʌȠȚĮ ĮȞIJȚțİȓµİȞĮ ʌȠȣ ȜȑȖȠȞIJĮȚ İIJȚțȑIJİȢ. ȅȚ İIJȚțȑIJİȢ İȓȞĮȚ ĮțȑȡĮȚȠȚ șİIJȚțȠȓ ĮȡȚșµȠȓ Ȓ ĮȞĮȖȞȦȡȚıIJȚțȐ țĮȚ IJȠʌȠșİIJȠȪȞIJĮȚ ʌȡȚȞ Įʌȩ IJȘȞ İȞIJȠȜȒ ıIJȘȞ ȠʌȠȓĮ ĮȞĮijȑȡȠȞIJĮȚ ȤȦȡȚȗȩµİȞİȢ Įʌȩ ĮȣIJȒ µİ IJȘȞ ȐȞȦ-țȐIJȦ IJİȜİȓĮ ":". ȅȚ İIJȚțȑIJİȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ıIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ șȑȜȠȣµİ ȞĮ țȐȞȠȣµİ µȓĮ ȤȦȡȓȢ ȩȡȠȣȢ įȚĮțȜȐįȦıȘ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ. Ǿ İȞIJȠȜȒ įȒȜȦıȘȢ İIJȚțİIJȫȞ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: Label ĮȞĮȖȞȦȡȚıIJȚțȩ1, ĮȞĮȖȞȦȡȚıIJȚțȩ2,...ĮȞĮȖȞȦȡȚıIJȚțȩn; Ǿ ȤȦȡȓȢ ȩȡȠȣȢ įȚĮțȜȐįȦıȘ İțIJȡȑʌİȚ IJȘ ȡȠȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ Įʌȩ IJȘȞ İʌȩµİȞȘ ıIJȘ ıİȚȡȐ İȞIJȠȜȒ, țȐIJȦ Įʌȩ ȠʌȠȚİıįȒʌȠIJİ ıȣȞșȒțİȢ țĮȚ ʌȡĮȖµĮIJȠʌȠȚİȓIJĮȚ µİ IJȘ ȤȡȒıȘ IJȘȢ İȞIJȠȜȒȢ Goto. Ǿ ȖİȞȚțȒ µȠȡijȒ IJȘȢ İȞIJȠȜȒȢ Goto İȓȞĮȚ: Goto İIJȚțȑIJĮ; Ǿ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ Goto ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȘȞ ȐµİıȘ µİIJĮijȠȡȐ IJȠȣ İȜȑȖȤȠȣ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ı'İțİȓȞȘ IJȘȞ İȞIJȠȜȒ ʌȠȣ ȑȤİȚ IJȘȞ İIJȚțȑIJĮ ʌȠȣ ݵijĮȞȓȗİIJĮȚ ıIJȘȞ Goto. ǼȓȞĮȚ ȖİȖȠȞȩȢ ȩIJȚ Ș İȞIJȠȜȒ Goto ĮʌȠIJİȜİȓ IJȘȞ "İȪțȠȜȘ" ȜȪıȘ ȖȚĮ IJȘ µİIJĮijȠȡȐ IJȘȢ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ıİ țȐʌȠȚȠ İʌȚșȣµȘIJȩ ıȘµİȓȠ. ȅµȦȢ Ș ıȣȤȞȒ ȤȡȒıȘ IJȘȢ șĮ ʌȡȑʌİȚ ȞĮ ĮʌȠijİȪȖİIJĮȚ įȚȩIJȚ țĮșȚıIJȐ įȪıțȠȜȘ IJȘȞ ʌĮȡĮțȠȜȠȪșȘıȘ IJȘȢ ȡȠȒȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ǼȟȐȜȜȠȣ Ș Pascal İȓȞĮȚ IJȩıȠ ʌȜȠȪıȚĮ ıİ įȠµȑȢ İȜȑȖȤȠȣ ȫıIJİ ȠȚ ʌİȡȚʌIJȫıİȚȢ ʌȠȣ įİ µʌȠȡȠȪµİ ȞĮ ĮʌȠijȪȖȠȣµİ IJȘ ȤȡȒıȘ IJȘȢ Goto İȓȞĮȚ İȜȐȤȚıIJİȢ. ȆĮȡȐįİȚȖµĮ ǼıIJȦ IJȠ ʌĮȡĮțȐIJȦ IJµȒµĮ ʌȡȠȖȡȐµµĮIJȠȢ: Z:=0; If Y>=0 Then Goto 10; Z:=Z+1; 10:Z:=Z+2; 20:X:=Z;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-67-
Ȉİ ĮʌȜȠȪıIJİȡȘ µȠȡijȒ, ȤȦȡȓȢ Goto șĮ ȒIJĮȞ: Z:=0; If Y<0 Then Z:=Z+1 Else Z:=Z+2; X:=Z;
7.4 ǹȈȀǾȈǼǿȈ 1. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȚĮȕȐȗİȚ IJȚµȑȢ ȖȚĮ įȪȠ µİIJĮȕȜȘIJȑȢ ĮțİȡĮȓȠȣ IJȪʌȠȣ X țĮȚ Y țĮȚ ȞĮ IJȠʌȠșİIJİȓ IJȘ µİȖĮȜȪIJİȡȘ IJȚµȒ ıIJȘ µİIJĮȕȜȘIJȒ ȋ. 2. ȃĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ IJȠ ȠʌȠȓȠ ȞĮ įȚĮȕȐȗİȚ IJȡİȚȢ ĮțİȡĮȓȠȣȢ ĮȡȚșµȠȪȢ țĮȚ ȞĮ IJȣʌȫȞİȚ IJȠ µİȖĮȜȪIJİȡȠ Įʌȩ ĮȣIJȠȪȢ. ȉȡȠʌȠʌȠȚİȓıIJİ IJȠ ȫıIJİ ȞĮ įȠȣȜİȪİȚ µİ IJȑııİȡȚȢ ĮȡȚșµȠȪȢ. 3. ǹȢ ȣʌȠșȑıȠȣµİ ȩIJȚ ȠȚ µȒȞİȢ IJȠȣ ȑIJȠȣȢ ǿĮȞȠȣȐȡȚȠȢ ȑȦȢ ǻİțȑµȕȡȚȠȢ ĮȞIJȚıIJȠȚȤȠȪȞ ıIJȠȣȢ ĮȡȚșµȠȪȢ Įʌȩ 1 ȑȦȢ 12. īȡȐȥIJİ ʌȡȩȖȡĮµµĮ ʌȠȣ șĮ įȚĮȕȐȗİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ĮȡȚșµȩ țĮȚ șĮ IJȣʌȫȞİȚ IJȠ ȩȞȠµĮ IJȘȢ İʌȠȤȒȢ ʌȠȣ ĮȞȒțİȚ Ƞ µȒȞĮȢ, İȐȞ ȣʌȐȡȤİȚ. 4. ǺİȜIJȚȫıIJİ IJȠ ʌȡȩȖȡĮµµĮ IJȘȢ ȐıțȘıȘȢ 2 IJȠȣ ȀİijĮȜĮȓȠȣ 6 ȫȢ İȟȒȢ: īȚĮ ȞĮ ȣʌȐȡȤİȚ IJȡȓȖȦȞȠ µİ ʌȜİȣȡȑȢ a, b, c ʌȡȑʌİȚ ȞĮ ȚıȤȪȠȣȞ IJĮ İȟȒȢ a<b+c țĮȚ b<a+c țĮȚ c<a+b. ǼIJıȚ ĮijȠȪ IJȠ ʌȡȩȖȡĮµµĮ įȚĮȕȐıİȚ IJȚµȑȢ ȖȚĮ IJȚȢ ʌȜİȣȡȑȢ IJȠȣ IJȡȚȖȫȞȠȣ țĮȚ ʌȡȚȞ ȣʌȠȜȠȖȚıșİȓ IJȠ ݵȕĮįȩȞ ʌȡȑʌİȚ ȞĮ İȟİIJĮıșİȓ ĮȞ ȣʌȐȡȤİȚ IJȡȓȖȦȞȠ µİ ĮȣIJȑȢ IJȚȢ ʌȜİȣȡȑȢ, ĮȞ įİȞ ȣʌȐȡȤİȚ ijȣıȚțȐ įİ șĮ ȣʌȠȜȠȖȓȗİIJĮȚ IJȠ ݵȕĮįȩȞ. 5. ȅȚ ʌĮȡĮțȐIJȦ Pascal.
ʌȡȩIJĮıȘ
İȓȞĮȚ
If A<B Then If C<D Then Else If A<C Then If B<D Then Else Else If A<D Then If B<C Then Else Else Else ȄĮȞĮȖȡȐȥIJİ ȖȡĮijȒȢ.
IJȘȞ
ʌȡȩIJĮıȘ
Įʌȩ
ȑȞĮ
ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ
Program Advice; Var Ch: Char; Begin Writeln('ȉǿ Ȁǹǿȇȅ ȀǹȃǼǿ;'); Writeln; Writeln('1. ȁȚĮțȐįĮ'); Writeln('2. ȈȣȞȞİijȚȐ'); Writeln('3. ǺȡȠȤȒ'); Writeln('4. ȋȚȩȞȚ');
ʌȡȩȖȡĮµµĮ
X:=1 X:=2 X:=3 X:=4 X:=5 X:=6 X:=7;
6. ǼȟȘȖȒıIJİ IJȚ țȐȞİȚ IJȠ ʌĮȡĮțȐIJȦ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ İȞIJȠȜȒ Case.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
"țĮțȠȖȡĮµµȑȞȠ"
ȑȞĮȞ
ʌȡȩȖȡĮµµĮ
țĮȜȪIJİȡȠ țĮȚ
IJȡȩʌȠ
ȖȡȐȥIJİ
IJȠ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
Write('ǻȫıİ IJȘȞ İʌȚȜȠȖȒ ıȠȣ '); Readln(Ch); If Ch='1' Then Write('ȆȐȡİ IJĮ ȖȣĮȜȚȐ ȘȜȓȠȣ') Else If Ch='2' Then Write('ȃIJȪıȠȣ') Else If Ch='3' Then Write('ȆȐȡİ ȠµʌȡȑȜĮ') Else If Ch='4' Then Write('ȂİȓȞİ ıʌȓIJȚ') Else Write('ǹțȣȡȘ İʌȚȜȠȖȒ') End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
-68-
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-69-
8. ǼȃȉȅȁǼȈ ǼȆǹȃǹȁǾȌǾȈ ȈȣȤȞȐ ıIJȠȞ ʌȡȠȖȡĮµµĮIJȚıµȩ ʌĮȡȠȣıȚȐȗİIJĮȚ Ș ĮȞȐȖțȘ ȞĮ İțIJİȜİıșȠȪȞ ʌȠȜȜȑȢ ijȠȡȑȢ ȠȚ ȓįȚİȢ İȞIJȠȜȑȢ, Ȓ IJĮ ȓįȚĮ țȠµµȐIJȚĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ĭȣıȚțȐ ĮȣIJȩ ʌȠȣ µĮȢ İȞįȚĮijȑȡİȚ İȓȞĮȚ ȞĮ ȖȡȐȥȠȣµİ IJȚȢ İȞIJȠȜȑȢ µȓĮ ijȠȡȐ țĮȚ ȞĮ İțIJİȜİıșȠȪȞ ʌȠȜȜȑȢ ijȠȡȑȢ. ǹȣIJȩ ȠįȒȖȘıİ ıIJȘ įȘµȚȠȣȡȖȓĮ İȞIJȠȜȫȞ İʌĮȞȐȜȘȥȘȢ. ȈIJȚȢ İȞIJȠȜȑȢ İʌĮȞȐȜȘȥȘȢ, µȓĮ İȞȩIJȘIJĮ İȞIJȠȜȫȞ ʌȠȣ ĮʌȠIJİȜȠȪȞ IJȠ ıȫµĮ IJȘȢ İʌĮȞȐȜȘȥȘȢ, İțIJİȜİȓIJĮȚ IJȩıİȢ ijȠȡȑȢ ȩıİȢ ȤȡİȚȐȗİIJĮȚ ȖȚĮ ȞĮ ȚțĮȞȠʌȠȚȘșİȓ țȐʌȠȚȠ țȡȚIJȒȡȚȠ. Ǿ Pascal įȚĮșȑIJİȚ IJȡȓĮ İȓįȘ İȞIJȠȜȫȞ İʌĮȞȐȜȘȥȘȢ IJĮ ȠʌȠȓĮ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ĮȞȐȜȠȖĮ µİ IJȚȢ țĮIJȐȜȜȘȜİȢ ıȣȞșȒțİȢ.
8.1 Ǿ ǼȃȉȅȁǾ WhileDo ǼıIJȦ ȩIJȚ șȑȜȠȣµİ ȞĮ ȣʌȠȜȠȖȓıȠȣµİ țĮȚ ȞĮ IJȣʌȫıȠȣµİ IJȠ ȐșȡȠȚıµĮ țĮȚ IJȘ µȑıȘ ĮȡȚșµȘIJȚțȒ IJȚµȒ ȃ (ʌ.Ȥ 10) ĮȡȚșµȫȞ, ʌȠȣ įȓȞȠȞIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ. Ȃİ ĮȣIJȐ ʌȠȣ ȑȤȠȣµİ µȐșİȚ µȑȤȡȚ IJȫȡĮ, șĮ ȑʌȡİʌİ ȞĮ įȘȜȫıȠȣµİ ȃ µİIJĮȕȜȘIJȑȢ ȋ1, ȋ2, ... ȋn țĮȚ ȞĮ įȫıȠȣµİ IJȚȢ İȞIJȠȜȑȢ: Readln(X1); Readln(X2); .... Readln(Xn); Sum:=X1+X2+ ... +Xn; MAT:=Sum/N;
ĭȣıȚțȐ ȑȞĮ IJȑIJȠȚȠ ʌȡȩȖȡĮµµĮ șĮ ȒIJĮȞ IJȡȠµĮțIJȚțȩ, ĮȞ µȐȜȚıIJĮ IJȠ ȃ įİȞ ȒIJĮȞ 10, ĮȜȜȐ 1000 Ȓ 10000. ǹȢ ʌȡȠıʌĮșȒıȠȣµİ ȜȠȚʌȩȞ ȞĮ IJȠ ȖȡȐȥȠȣµİ ĮȜȜȚȫȢ: Sun:=0; Readln(X1); Sum:=Sum+X1; Readln(X2); Sum:=Sum+X2 .... Readln(Xn); Sum:=Sum+Xn; MAT:=Sum/N;
ȉȠ țȐșİ m-ȠıIJȩ ȗİȣȖȐȡȚ İȞIJȠȜȫȞ Readln(X); Sum:=Sum+X; įȚĮȕȐȗİȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ IJȘ m-ȠıIJȒ IJȚµȒ, IJȘȞ ĮʌȠșȘțİȪİȚ ıIJȘ șȑıȘ µȞȒµȘȢ ȋ țĮȚ IJȘȞ ʌȡȠıșȑIJİȚ ıIJȘ µİIJĮȕȜȘIJȒ Sum. ȅIJĮȞ İțIJİȜİıșİȓ IJȠ İʌȩµİȞȠ ȗİȪȖȠȢ İȞIJȠȜȫȞ Ș ʌȡȠȘȖȠȪµİȞȘ IJȚµȒ ʌȠȣ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-70-
ȣʌȒȡȤİ ıIJȠ ȋ ijȣıȚțȐ șĮ ıȕȘıIJİȓ. ǹȣIJȩ įİ µĮȢ įȘµȚȠȣȡȖİȓ ʌȡȩȕȜȘµĮ, ĮijȠȪ Įʌȩ IJȚȢ ʌȡȠįȚĮȖȡĮijȑȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ijĮȓȞİIJĮȚ ȩIJȚ Ƞ µȩȞȠȢ ʌȡȠȠȡȚıµȩȢ țȐșİ IJȚµȒȢ ʌȠȣ įȚĮȕȐȗİIJĮȚ İȓȞĮȚ ȞĮ ʌȡȠıIJİșİȓ ıIJȠ ȐșȡȠȚıµĮ. ȈIJȘ µİIJĮȕȜȘIJȒ Sum įȓȞȠȣµİ ĮȡȤȚțȒ IJȚµȒ 0, µİIJȐ IJȠ ʌȡȫIJȠ ȗİȣȖȐȡȚ İȞIJȠȜȫȞ Ș IJȚµȒ IJȘȢ İȓȞĮȚ Ș ʌȡȫIJȘ IJȚµȒ ʌȠȣ įȚĮȕȐıIJȘțİ. ȂİIJȐ IJȠ įİȪIJİȡȠ ȗİȣȖȐȡȚ Ș IJȚµȒ IJȘȢ Sum İȓȞĮȚ IJȠ ȐșȡȠȚıµĮ IJȦȞ įȪȠ ʌȡȫIJȦȞ IJȚµȫȞ, µİIJȐ IJȠ m-ȠıIJȩ ȗİȣȖȐȡȚ Ș Sum ȑȤİȚ ȦȢ IJȚµȒ IJȠ µİȡȚțȩ ȐșȡȠȚıµĮ IJȦȞ m ʌȡȫIJȦȞ IJȚµȫȞ. ȂİIJȐ IJȠ NȠıIJȩ ȗİȣȖȐȡȚ Ș Sum ȑȤİȚ ȦȢ IJȚµȒ IJȠ ȐșȡȠȚıµĮ IJȦȞ ȃ IJȚµȫȞ ʌȠȣ ʌȜȘțIJȡȠȜȠȖȒșȘțĮȞ. ĭĮȓȞİIJĮȚ ȜȠȚʌȩȞ ȩIJȚ țĮȚ ĮȣIJȑȢ ȠȚ İȞIJȠȜȑȢ ȜȪȞȠȣȞ IJȠ ʌȡȩȕȜȘµĮ. ǹȣIJȩ ʌȠȣ țİȡįȓıĮµİ ȖȡȐijȠȞIJȐȢ IJİȢ, İȓȞĮȚ ȩIJȚ Ș ȜȪıȘ IJȠȣ ʌȡȠȕȜȒµĮIJȩȢ µĮȢ įȚĮIJȣʌȫșȘțİ ȦȢ İʌĮȞȐȜȘȥȘ µȚĮȢ ĮțȠȜȠȣșȓĮȢ İȞIJȠȜȫȞ: ȠȚ İȞIJȠȜȑȢ Readln(X); Sum:=Sum+X; İțIJİȜȠȪȞIJĮȚ ȃ ijȠȡȑȢ. ȂʌȠȡȠȪµİ ȞĮ ʌȠȪµİ ıIJȠȞ Ǿ/Ȋ ȞĮ IJȚȢ İțIJİȜȑıİȚ ȃ ijȠȡȑȢ, µİ ĮȡțİIJȐ ıȣȞȠʌIJȚțȩ IJȡȩʌȠ, ĮȜȜȐ șĮ ȤȡİȚĮıșȠȪµİ țĮȚ ȑȞĮ µİIJȡȘIJȒ (counter), ʌȠȣ ıȣȞȒșȦȢ İȓȞĮȚ µȚĮ µİIJĮȕȜȘIJȒ IJȪʌȠȣ Integer: Sum:=0; I:=1; ȩıȠ I<=N ȞĮ İțIJİȜİȓȢ IJȘȞ İȞIJȠȜȒ: Begin Readln(X); Sum:=Sum+X; I:=I+1 End; MAT:=Sum/N; ǹȣIJȩ ʌȠȣ İȞȞȠȠȪµİ İįȫ İȓȞĮȚ IJȠ İȟȒȢ: ȩıȠ IJȠ ǿdȃ ȞĮ İțIJİȜİȓ IJȚȢ IJȡİȚȢ İȞIJȠȜȑȢ ʌȠȣ "ʌĮțİIJȐȡĮµİ" ıİ µȚĮ ıȪȞșİIJȘ İȞIJȠȜȒ. Ǿ IJİȜİȣIJĮȓĮ İȞIJȠȜȒ (I:=I+1) ĮȣȟȐȞİȚ țȐșİ ijȠȡȐ IJȘȞ IJȚµȒ IJȠȣ ǿ țĮIJȐ 1. ǼIJıȚ ĮijȠȪ IJȠ ǿ ȟİțȚȞȐİȚ Įʌȩ IJȠ 1, ȩIJĮȞ șĮ ʌȐȥİȚ ȞĮ ȚıȤȪİȚ Ș ıȣȞșȒțȘ ǿ<=ȃ Ș ıȪȞșİIJȘ İȞIJȠȜȒ șĮ ȑȤİȚ İțIJİȜİıșİȓ ȃ ijȠȡȑȢ. ȉȠ ȓįȚȠ ʌȡȐȖµĮ ȖȡȐijİIJĮȚ ıIJȘȞ Pascal, ĮȡțİIJȐ İȪțȠȜĮ, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ µȚĮ Įʌȩ IJȚȢ İʌĮȞĮȜȘʌIJȚțȑȢ İȞIJȠȜȑȢ ʌȠȣ įȚĮșȑIJİȚ Ș ȖȜȫııĮ, IJȘȞ İȞIJȠȜȒ While, ȦȢ İȟȒȢ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-71-
Sum:=0; I:=1; While I<=N Do Begin Readln(X); Sum:=Sum+X; I:=I+1 End; MAT:=Sum/N;
ȉȠ While (=ȩıȠ, ȖȚĮ ȩıȠ, İijȩıȠȞ) țĮȚ IJȠ Do (=țȐȞİ) İȓ-ȞĮȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ IJȘȢ Pascal. Ǿ ȖİȞȚțȒ µȠȡijȒ IJȘȢ WhileDo İȓȞĮȚ Ș İȟȒȢ:
İȞIJȠȜȒȢ
While ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ Do İȞIJȠȜȒ; ȩʌȠȣ İȞIJȠȜȒ, µʌȠȡİȓ ȞĮ İȓȞĮȚ µȓĮ ĮʌȜȒ Ȓ ıȪȞșİIJȘ İȞIJȠȜȒ.
åíôïëÞ ëïãéêÞ ðáñÜóôáóç
TRUE
FALSE
ȈȤȒµĮ 8.1
ȅʌȦȢ ijĮȓȞİIJĮȚ țĮȚ ıIJȠ ȜȠȖȚțȩ įȚȐȖȡĮµµĮ IJȠȣ ȈȤȒµĮIJȠȢ 8.1, IJȠ ĮʌȠIJȑȜİıµĮ IJȘȢ İțIJȑȜİıȘȢ IJȘȢ İȞIJȠȜȒȢ WhileDo İȓȞĮȚ: ĮȞ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ µİIJȐ IJȘȞ While ȑȤİȚ IJȚµȒ True, IJȩIJİ Ș İȞIJȠȜȒ İțIJİȜİȓIJĮȚ țĮȚ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ İʌĮȞİȟİIJȐȗİIJĮȚ. ǼIJıȚ Ș İȞIJȠȜȒ µİIJȐ IJȘ Do İțIJİȜİȓIJĮȚ ıȣȞȑȤİȚĮ İijȩıȠȞ Ș ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ ȑȤİȚ IJȚµȒ True. ǹȞ Ș IJȚµȒ IJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ İȓȞĮȚ False, IJȩIJİ Ș İțIJȑȜİıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ µİIJĮijȑȡİIJĮȚ ıIJȘȞ ĮµȑıȦȢ İʌȩµİȞȘ İȞIJȠȜȒ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ µİ IJȘȞ ʌȡȫIJȘ İȟȑIJĮıȘ IJȘȢ IJȚµȒȢ IJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ ȕȡİșİȓ ȩIJȚ ȑȤİȚ IJȚµȒ False, IJȩIJİ Ș İȞIJȠȜȒ µİIJȐ IJȘȞ Do ʌĮȡĮȜİȓʌİIJĮȚ. ǺȜȑʌȠȞIJĮȢ IJȠ ȈȤȒµĮ 8.1, µʌȠȡȠȪµİ ȞĮ țĮIJĮȜȐȕȠȣµİ ȖȚĮIJȓ ȠȚ İʌĮȞĮȜȘʌIJȚțȑȢ İȞIJȠȜȑȢ ȜȑȖȠȞIJĮȚ ĮțȩµĮ țĮȚ İȞIJȠȜȑȢ ĮȞĮțȪțȜȦıȘȢ Ș ȕȡȩȤȠȚ (loops). ǹȢ İʌȚıIJȡȑȥȠȣµİ ȩµȦȢ IJȫȡĮ ıIJȠ ʌȡȩȖȡĮµµĮ ʌȠȣ ȟİțȚȞȒıĮµİ ıIJȘȞ ĮȡȤȒ ĮȣIJȒȢ IJȘȢ ʌĮȡĮȖȡȐijȠȣ. ȉȠ ʌȡȩȖȡĮµµĮ ĮȣIJȩ µİ IJȘ ȤȡȒıȘ IJȘȢ WhileDo șĮ ȖȓȞİȚ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-72-
Program Average1; Const N=10; Var I : Integer; {ȂİIJȡȘIJȒȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ} X : Real; {ȈIJȠ ȋ ĮʌȠșȘțİȪȠȣµİ țȐșİ IJȚµȒ ʌȠȣ įȚĮȕȐȗȠȣµİ} Sum: Real; {ȉȠ µİȡȚțȩ ȐșȡȠȚıµĮ, ıIJȠ IJȑȜȠȢ șĮ ȑȤİȚ IJȠ ȠȜȚțȩ ȐșȡȠȚıµĮ} MAT: Real; {ȂȑıȘ ǹȡȚșµȘIJȚțȒ ȉȚµȒ} Begin Sum:=0; I:=1; While I<=N Do Begin Write('ǻȫıİ ȑȞĮȞ ĮȡȚșµȩ '); Readln(X); Sum:=Sum+X; I:=I+1 End {IJȘȢ While} MAT:=Sum/I; Writeln('ǹșȡȠȚıµĮ=',Sum,' ȂȑıȘ ǹȡȚșµ. ȉȚµȒ=',MAT) End.
ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ șȑȜȠȣµİ ȞĮ ȕȡȠȪµİ țĮȚ ȞĮ IJȣʌȫıȠȣµİ IJȠ ȐșȡȠȚıµĮ, IJȘ ȂȑıȘ ǹȡȚșµȘIJȚțȒ ȉȚµȒ țĮȚ IJȠ ʌȜȒșȠȢ, ʌȡĮȖµĮIJȚțȫȞ ĮȡȚșµȫȞ ʌȠȣ șĮ įȓȞȠȣµİ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ. ǼȞȫ IJȠ ʌȜȒșȠȢ IJȠȣȢ įİȞ İȓȞĮȚ ȖȞȦıIJȩ, ȟȑȡȠȣµİ ȩIJȚ İȓȞĮȚ µȘ µȘįİȞȚțȠȓ. ȉȠ ʌȫȢ șĮ ȣʌȠȜȠȖȓıȠȣµİ IJȠ ȐșȡȠȚıµĮ țĮȚ IJȘ µȑıȘ IJȚµȒ IJȠ ȟȑȡȠȣµİ Įʌȩ ʌȡȚȞ, įİ ȟȑȡȠȣµİ ȩµȦȢ ʌȩIJİ șĮ ıIJĮµĮIJȒıİȚ Ș ĮȞĮțȪțȜȦıȘ. ǻȘȜĮįȒ ʌȫȢ șĮ ʌȠȪµİ ıIJȠȞ Ǿ/Ȋ ȩIJȚ IJİȜİȓȦıĮȞ IJĮ ıIJȠȚȤİȓĮ İȚıȩįȠȣ țĮȚ ȞĮ µȘȞ ʌİȡȚµȑȞİȚ ȐȜȜĮ. ǼȓȞĮȚ ijĮȞİȡȩ ȩIJȚ IJȘȞ ȫȡĮ ʌȠȣ İțIJİȜİȓIJĮȚ IJȠ ʌȡȩȖȡĮµµĮ țĮȚ įȓȞȠȣµİ IJĮ ıIJȠȚȤİȓĮ İȚıȩįȠȣ, șĮ ʌȡȑʌİȚ µİ țȐʌȠȚȠ IJȡȩʌȠ ȞĮ įȫıȠȣµİ ıIJȠȞ Ǿ/Ȋ IJȠ ıȪȞșȘµĮ "IJȑȜȠȢ ıIJȠȚȤİȓȦȞ". Ȃİ ȜȓȖȘ ıțȑȥȘ ȕȡȓıțȠȣµİ ȩIJȚ Ƞ IJȡȩʌȠȢ ȖȚĮ ȞĮ įȫıȠȣµİ IJȠ ıȪȞșȘµĮ İȓȞĮȚ Ƞ İȟȒȢ: ȅIJĮȞ IJİȜİȚȫıȠȣȞ IJĮ ıIJȠȚȤİȓĮ ʌȠȣ șȑȜȠȣµİ ȞĮ įȫıȠȣµİ șĮ ʌȜȘțIJȡȠȜȠȖȒıȠȣµİ IJȘȞ IJȚµȒ 0 (µȘ ȟİȤȞȐµİ ȩIJȚ ȣʌȠșȑıĮµİ ȩIJȚ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ IJȦȞ ȠʌȠȓȦȞ șȑȜȠȣµİ ȞĮ ȕȡȠȪµİ IJȘ µȑıȘ IJȚµȒ İȓȞĮȚ µȘ µȘįİȞȚțȐ). ȈIJȘ ıȣȖțİțȡȚµȑȞȘ ʌİȡȓʌIJȦıȘ IJȠ 0 ȜȑȖİIJĮȚ "IJȚµȒ-ijȡȠȣȡȩȢ" (sentinel value) țĮȚ ĮȣIJȒ Ș IJİȤȞȚțȒ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ İȣȡȪIJĮIJĮ ıIJȠȞ ʌȡȠȖȡĮµµĮIJȚıµȩ. ȂʌȠȡȠȪµİ ȑIJıȚ ȞĮ ʌȠȪµİ ȩIJȚ ȩIJȚ Ș WhileDo șĮ ȟİțȚȞȐ ȦȢ İȟȒȢ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-73-
While X<>ijȡȠȣȡȩȢ Do
ȉȫȡĮ ȩµȦȢ țȐȞĮµİ µȚĮ ıȠȕĮȡȒ ĮȜȜĮȖȒ ıIJȘ ȜȠȖȚțȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ʌȠȣ İȓȤĮµİ ıIJȠ ʌȡȠȘȖȠȪµİȞȠ ʌĮȡȐįİȚȖµĮ: ȩIJĮȞ ȑȡȤİIJĮȚ Ș ıIJȚȖµȒ ȞĮ İțIJİȜİıșİȓ Ș WhileDo ʌȡȑʌİȚ ȞĮ ȑȤȠȣµİ IJȘȞ ʌȡȫIJȘ IJȚµȒ IJȠȣ ȋ. ǼIJıȚ Ș ʌȡȫIJȘ ĮȞȐȖȞȦıȘ șĮ ʌȡȑʌİȚ ȞĮ ȖȓȞİIJĮȚ ʌȡȚȞ Įʌȩ IJȘȞ WhileDo: Readln(X); While X<>ijȡȠȣȡȩȢ Do Begin İʌİȟİȡȖȐıȠȣ IJȘȞ IJȚµȒ ʌȠȣ įȚȐȕĮıİȢ ıIJȘ ȋ; Readln(X) {ǻȚȐȕĮıİ IJȘȞ İʌȩµİȞȘ IJȚµȒ ıIJȠ ȋ} End;
ǼʌȓıȘȢ Ƞ µİIJȡȘIJȒȢ µĮȢ șĮ ʌȡȑʌİȚ ȞĮ įİȓȤȞİȚ, țȐșİ ıIJȚȖµȒ IJȚȢ IJȚµȑȢ ʌȠȣ įȚĮȕȐıIJȘțĮȞ ȖȚĮ İʌİȟİȡȖĮıȓĮ. ĬĮ ʌȡȑʌİȚ ȞĮ ȟİțȚȞȐİȚ Įʌȩ IJȠ 0 țĮȚ ȩȤȚ Įʌȩ IJȠ 1. ǼIJıȚ IJȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ İȓȞĮȚ µȚĮ ȜȪıȘ IJȠȣ ʌȡȠȕȜȒµĮIJȩȢ µĮȢ: Program Average2; Const Sentinel=0; {Ǿ IJȚµȒ-ijȡȠȣȡȩȢ} Var I : Integer; {ȂİIJȡȘIJȒȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ, Ș IJİȜȚțȒ IJȚµȒ IJȠȣ șĮ İȓȞĮȚ IJȠ ʌȜȒșȠȢ IJȦȞ ıIJȠȚȤİȓȦȞ} X : Real; {ȈIJȠ ȋ ĮʌȠșȘțİȪȠȣµİ țȐșİ IJȚµȒ ʌȠȣ įȚĮȕȐȗȠȣµİ} Sum: Real; {ȉȠ µİȡȚțȩ ȐșȡȠȚıµĮ, ıIJȠ IJȑȜȠȢ șĮ ȑȤİȚ IJȠ ȠȜȚțȩ ȐșȡȠȚıµĮ} MAT: Real; {ȂȑıȘ ǹȡȚșµȘIJȚțȒ ȉȚµȒ} Begin Sum:=0; I:=0; Write('ǻȫıİ ĮȡȚșµȩ - 0 ȖȚĮ ȉǼȁȅȈ '); Readln(X); While X<>Sentinel Do Begin Sum:=Sum+X; I:=I+1 Write('ǻȫıİ ĮȡȚșµȩ - 0 ȖȚĮ ȉǼȁȅȈ '); Readln(X) End {IJȘȢ While} Writeln('ǻȚȐȕĮıĮ ',I,' ĮȡȚșµȠȪȢ'); If I >0 Then Begin MAT:=Sum/I; Writeln('ǹșȡȠȚıµĮ=',Sum,' ȂȑıȘ ǹȡȚșµ. ȉȚµȒ=',MAT) End End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-74-
ȆĮȡȐįİȚȖµĮ ȃĮ ȖȡĮijİȓ ʌȡȩȖȡĮµµĮ ʌȠȣ șĮ įȚĮȕȐȗİȚ IJȘȞ IJȚµȒ IJȠȣ ȃ țĮȚ șĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ șĮ IJȣʌȫȞİȚ IJȠ ȐșȡȠȚıµĮ: 11 2 2 N N ǹȣIJȩ IJȠ ʌȡȩȖȡĮµµĮ șĮ µȠȚȐȗİȚ µİ IJĮ ʌȡȠȘȖȠȪµİȞĮ ʌĮȡĮįİȓȖµĮIJĮ, µİ IJȘ įȚĮijȠȡȐ ȩIJȚ ıIJȠ Sum șĮ ʌȡȠıșȑIJȠȣµİ ȑȞĮȞ ȩȡȠ ʌȠȣ șĮ IJȠȞ ȣʌȠȜȠȖȓȗȠȣµİ țĮȚ įİ șĮ IJȠ įȚĮȕȐȗȠȣµİ: Readln(N); Sum:=0; M:=1; While M<=N Do Begin ȊʌȠȜȩȖȚıİ IJȠ Sum:=Sum+ MM M:=M+1; End; {While} ȉȪʌȦıİ IJȠ Sum;
MM
ȉȠ ʌȡȩȕȜȘµȐ µĮȢ İȓȞĮȚ IJȫȡĮ ȞĮ ȣʌȠȜȠȖȓıȠȣµİ IJȠ
MM .
ȅµȦȢ:
MM =Ȃ*Ȃ*...*Ȃ
Ȃ ijȠȡȑȢ
țĮȚ IJȠ ʌĮȡĮțȐIJȦ țȠµµȐIJȚ ʌȡȠȖȡȐµµĮIJȠȢ ȣʌȠȜȠȖȓȗİȚ IJȠ
MM
Power:=1; K:=1; While K<=M Do Begin Power:=Power*M; K:=K+1; End;
ǼIJıȚ țĮIJĮȜȒȖȠȣµİ ʌȡȩȕȜȘµȐ µĮȢ:
ıIJȠ
ʌĮȡĮțȐIJȦ
Program Series; Var N, K, N, Sum, Power: Integer; Begin Writeln('ǻȫıİ IJȠ ȃ '); Readln(N); Sum:=0; M:=1; While M<=N Do Begin Power:=1; K:=1; While K<=M Do Begin Power:=Power*M K:=K+1 End; {While K...} Sum:=Sum+Power; M:=M+1; End; {While M...} Writeln('ǹșȡȠȚıµĮ ȈİȚȡȐȢ=',Sum) End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
ʌȡȩȖȡĮµµĮ
ʌȠȣ
ȜȪȞİȚ
IJȠ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-75-
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌȡȩȖȡĮµµĮ ȑȤȠȣµİ µȚĮ WhileDo µȑıĮ ıIJȘȞ ʌİȡȚȠȤȒ (ȑȞșİIJȘ) µȚĮȢ ȐȜȜȘȢ WhileDo.
8.2 Ǿ ǼȃȉȅȁǾ RepeatUntil ȈIJȘȞ ʌȡȠȘȖȠȪµİȞȘ ʌĮȡȐȖȡĮijȠ ȖȞȦȡȓıĮµİ IJȘȞ İʌĮȞĮȜȘʌIJȚțȒ İȞIJȠȜȒ WhileDo, Ș ȠʌȠȓĮ µʌȠȡİȓ ȞĮ șİȦȡȘșİȓ ȦȢ Ƞ ʌȚȠ ȖİȞȚțȩȢ µȘȤĮȞȚıµȩȢ ȠȡȖȐȞȦıȘȢ ĮȞĮțȣțȜȫıİȦȞ. ȈIJȘ ıȣȞȑȤİȚĮ șĮ ʌİȡȚȖȡȐȥȠȣµİ µȚĮ ȐȜȜȘ İʌĮȞĮȜȘʌIJȚțȒ İȞIJȠȜȒ ʌȠȣ ȜȑȖİIJĮȚ RepeatUntil. ǹȣIJȒ įȚĮijȑȡİȚ Įʌȩ IJȘȞ ʌȡȠȘȖȠȪµİȞȘ ȦȢ ʌȡȠȢ IJȠ ʌȩIJİ ȖȓȞİIJĮȚ Ƞ ȑȜİȖȤȠȢ IJȘȢ ıȣȞșȒțȘȢ IJİȡµĮIJȚıµȠȪ IJȘȢ İʌĮȞȐȜȘȥȘȢ. ǼȞȫ ıIJȘȞ WhileDo Ƞ ȑȜİȖȤȠȢ ȖȓȞİIJĮȚ ıIJȘȞ ĮȡȤȒ, ıIJȘȞ RepeatUntil Ƞ ȑȜİȖȤȠȢ ȖȓȞİIJĮȚ ıIJȠ IJȑȜȠȢ IJȦȞ İʌĮȞĮȜĮµȕĮȞȩµİȞȦȞ İȞIJȠȜȫȞ. Ǿ ȖİȞȚțȒ µȠȡijȒ IJȘȢ RepeatUntil İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ:
İȞIJȠȜȒȢ åíôïëÞ 1
Repeat ǼȞIJȠȜȒ1; ǼȞIJȠȜȒ2; ... ǼȞIJȠȜȒn; Until ȜȠȖȚțȒ ʌĮȡȐıIJĮıȘ; ȩʌȠȣ Repeat țĮȚ ıµİȣµȑȞİȢ ȜȑȟİȚȢ.
Until
İȓȞĮȚ
åíôïëÞ 2
įİ-
åíôïëÞ n
FALSE ëïãéêÞ ȉȠ ĮʌȠIJȑȜİıµĮ IJȘȢ İțIJȑȜİıȘȢ IJȘȢ ðáñÜóôáóç İȞIJȠȜȒȢ RepeatUntil ȩʌȦȢ ijĮȓȞİIJĮȚ țĮȚ TRUE Įʌȩ IJȠ ȜȠȖȚțȩ įȚȐȖȡĮµµĮ IJȠȣ ȈȤȒµĮIJȠȢ 8.2, İȓȞĮȚ: µİIJȐ Įʌȩ țȐșİ İțIJȑȜİıȘ IJȦȞ İȞIJȠȜȫȞ ʌȠȣ ȕȡȓıțȠȞIJĮȚ µİIJĮȟȪ IJȦȞ ȈȤȒµĮ 8.2 ȜȑȟİȦȞ Repeat țĮȚ Until ȣʌȠȜȠȖȓȗİIJĮȚ Ș IJȚµȒ IJȘȢ ȜȠȖȚțȒȢ ʌĮȡȐıIJĮıȘȢ. ǹȞ Ș IJȚµȒ IJȘȢ İȓȞĮȚ False IJȩIJİ Ș İțIJȑȜİıȘ IJȦȞ İȞIJȠȜȫȞ İʌĮȞĮȜĮµȕȐȞİIJĮȚ, įȚĮijȠȡİIJȚțȐ, ȠȚ İʌĮȞĮȜȒȥİȚȢ įȚĮțȩʌIJȠȞIJĮȚ țĮȚ Ƞ ȑȜİȖȤȠȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ µİIJĮijȑȡİIJĮȚ ıIJȘȞ İʌȩµİȞȘ İȞIJȠȜȒ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-76-
ǼȪțȠȜĮ µʌȠȡȠȪµİ ȞĮ įȠȪµİ ȩIJȚ Ș İȞIJȠȜȒ: Repeat
S1; S2;...Sn Until P;
İȓȞĮȚ ȚıȠįȪȞĮµȘ µİ IJȘȞ:
S1; S2;...Sn; While Not(P) Do Begin S1; S2;...Sn End;
ǹȞIJȓıIJȡȠijĮ, Ș:
While P Do S
µʌȠȡİȓ ȞĮ ȖȡĮijİȓ ȚıȠįȪȞĮµĮ:
If P Then Repeat S Until Not(P);
ȆȡȠıȑȟIJİ ȩIJȚ Ș İțIJȑȜİıȘ IJȘȢ RepeatUntil İȜȑȖȤİIJĮȚ Įʌȩ µȚĮ ıȣȞșȒțȘ IJİȡµĮIJȚıµȠȪ, İȞȫ IJȘȢ WhileDo Įʌȩ µȚĮ ıȣȞșȒțȘ ıȣȞȑȤȚıȘȢ. ȀĮIJȐ ıȣȞȑʌİȚĮ ĮȞ ʌİȡȚȖȡȐȥȠȣµİ IJȘȞ ȓįȚĮ ȜİȚIJȠȣȡȖȓĮ µİ IJȚȢ įȪȠ İȞIJȠȜȑȢ, ȠȚ įȪȠ ıȣȞșȒțİȢ șĮ İȓȞĮȚ ĮȞIJȓșİIJİȢ. ȆĮȡȐįİȚȖµĮ ĬĮ ȜȪıȠȣµİ İįȫ ʌȐȜȚ IJȠ ʌȡȩȖȡĮµµĮ ȣʌȠȜȠȖȚıµȠȪ IJȘȢ ȂȑıȘȢ ǹȡȚșµȘIJȚțȒȢ ȉȚµȒȢ ĮȡȚșµȫȞ įȚĮijȠȡİIJȚțȫȞ Įʌȩ IJȠ 0, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȘȞ İȞIJȠȜȒ RepeatUntil. ȆĮȡĮȕȐȜȜİIJİ IJȠ ʌȡȩȖȡĮµµĮ ĮȣIJȩ µİ IJȠ ʌȡȩȖȡĮµµĮ Average2 IJȘȢ ʌĮȡĮȖȡȐijȠȣ 8.1. Program Average3; Const Sentinel=0; {Ǿ IJȚµȒ-ijȡȠȣȡȩȢ} Var I : Integer; {ȂİIJȡȘIJȒȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ, Ș IJİȜȚțȒ IJȚµȒ IJȠȣ șĮ İȓȞĮȚ IJȠ ʌȜȒșȠȢ IJȦȞ ıIJȠȚȤİȓȦȞ} X : Real; {ȈIJȠ ȋ ĮʌȠșȘțİȪȠȣµİ țȐșİ IJȚµȒ ʌȠȣ įȚĮȕȐȗȠȣµİ} Sum: Real; {ȉȠ µİȡȚțȩ ȐșȡȠȚıµĮ, ıIJȠ IJȑȜȠȢ șĮ ȑȤİȚ IJȠ ȠȜȚțȩ ȐșȡȠȚıµĮ} MAT: Real; {ȂȑıȘ ǹȡȚșµȘIJȚțȒ ȉȚµȒ} Begin Write('ǻȫıİ ĮȡȚșµȩ - 0 ȖȚĮ ȉǼȁȅȈ '); Readln(X); If X=Sentinel Then Writeln('ǻİȞ ȣʌȐȡȤȠȣȞ įİįȠµȑȞĮ') Else Begin Sum:=0; I=0; Repeat Sum:=Sum+X; I:=I+1; Write('ǻȫıİ ĮȡȚșµȩ - 0 ȖȚĮ ȉǼȁȅȈ '); Readln(X) Until X=Sentinel
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
End.
-77-
MAT:=Sum/I; Writeln('ǻȚȐȕĮıĮ ',I,' ĮȡȚșµȠȪȢ'); Writeln('ǹșȡȠȚıµĮ=',Sum,' ȂȑıȘ IJȚµȒ=',MAT) End {IJȠȣ Else}
ǹȢ ıȘµİȚȫıȠȣµİ įȪȠ įȚĮijȠȡȑȢ, µİIJĮȟȪ IJȦȞ įȪȠ İʌĮȞĮȜȘʌIJȚțȫȞ İȞIJȠȜȫȞ ʌȠȣ ȑȤȠȣµİ µȐșİȚ µȑȤȡȚ IJȫȡĮ: 1. ȈIJȘȞ ʌİȡȓʌIJȦıȘ IJȘȢ įȠµȒȢ RepeatUntil įİ ȤȡİȚȐȗȠȞIJĮȚ ȠȚ ıȣȞIJĮțIJȚțȑȢ ʌĮȡİȞșȑıİȚȢ Begin țĮȚ End, İʌİȚįȒ IJĮ ıȪµȕȠȜĮ Repeat, Until ʌĮȓȗȠȣȞ ĮȣIJȩ IJȠ ȡȩȜȠ. 2. ȅȚ İıȦIJİȡȚțȑȢ İȞIJȠȜȑȢ IJȘȢ ĮȞĮțȪțȜȦıȘȢ RepeatUntil ʌȐȞIJĮ İțIJİȜȠȪȞIJĮȚ IJȠȣȜȐȤȚıIJȠ µȓĮ ijȠȡȐ, İʌİȚįȒ Ƞ ȑȜİȖȤȠȢ IJȘȢ ıȣȞșȒțȘȢ ȖȓȞİIJĮȚ ıIJȠ IJȑȜȠȢ IJȘȢ ĮȞĮțȪțȜȦıȘȢ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ IJȘȢ WhileDo, Ƞ ĮȡȚșµȩȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ µʌȠȡİȓ ȞĮ İȓȞĮȚ țĮȚ µȘįȑȞ, İʌİȚįȒ Ƞ ȑȜİȖȤȠȢ IJȘȢ ıȣȞșȒțȘȢ ȖȓȞİIJĮȚ ıIJȘȞ ĮȡȤȒ IJȘȢ ĮȞĮțȪțȜȦıȘȢ.
8.3 Ǿ ǼȃȉȅȁǾ FOR ȈIJȘȞ ʌİȡȓʌIJȦıȘ țĮIJȐ IJȘȞ ȠʌȠȓĮ İȓȞĮȚ ȖȞȦıIJȩȢ İț IJȦȞ ʌȡȠIJȑȡȦȞ Ƞ ĮȡȚșµȩȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ µȚĮȢ İȞIJȠȜȒȢ Ȓ İȞȩȢ țȠµµĮIJȚȠȪ ʌȡȠȖȡȐµµĮIJȠȢ, ȤȡȘıȚµȠʌȠȚȠȪµİ IJȘȞ İʌĮȞĮȜȘʌIJȚțȒ İȞIJȠȜȒ For Ș ȠʌȠȓĮ ȑȤİȚ įȪȠ µȠȡijȑȢ. Ǿ ʌȡȫIJȘ Įʌ'ĮȣIJȑȢ İȓȞĮȚ: For µİIJĮȕȜȘIJȒ := ĮȡȤȚțȒ IJȚµȒ To IJİȜȚțȒ IJȚµȒ Do İȞIJȠȜȒ; ȩʌȠȣ For, To țĮȚ Do İȓȞĮȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ, µİIJĮȕȜȘIJȒ İȓȞĮȚ IJȠ ȩȞȠµĮ µȚĮȢ µİIJĮȕȜȘIJȒȢ IJĮțIJȚțȠȪ IJȪʌȠȣ (ʌ.Ȥ Integer, Boolen, Char Ȓ ȠʌȠȚȠȣįȒʌȠIJİ ȐȜȜȠȣ IJĮțIJȚțȠȪ IJȪʌȠȣ), ĮȡȤȚțȒ țĮȚ IJİȜȚțȒ IJȚµȒ İȓȞĮȚ IJȚµȑȢ ıȣµȕȚȕĮıIJȑȢ µİ IJȘ µİIJĮȕȜȘIJȒ, țĮȚ İȞIJȠȜȒ İȓȞĮȚ µȚĮ ȠʌȠȚĮįȒʌȠIJİ ĮʌȜȒ Ȓ ıȪȞșİIJȘ İȞIJȠȜȒ. ȅʌȦȢ ijĮȓȞİIJĮȚ țĮȚ Įʌȩ IJȠ ȈȤȒµĮ 8.3, İțIJȑȜİıȘȢ IJȘȢ İȞIJȠȜȒȢ For İȓȞĮȚ IJȠ İȟȒȢ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
IJȠ
ĮʌȠIJȑȜİıµĮ
IJȘȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-78-
Ǿ İȞIJȠȜȒ µİIJȐ IJȘȞ Do İțIJİȜİȓIJĮȚ ȖȚĮ țȐșİ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ, ʌȠȣ ȜȑȖİIJĮȚ İʌȓıȘȢ țĮȚ µİIJĮȕȜȘIJȒ İȜȑȖȤȠȣ, ȟİțȚȞȫȞIJĮȢ Įʌȩ IJȘȞ ĮȡȤȚțȒ IJȚµȒ țĮȚ ijIJȐȞȠȞIJĮȢ µȑȤȡȚ țĮȚ IJȘȞ IJİȜȚțȒ IJȚµȒ, ĮȣȟĮȞȩµİȞȘ țĮIJȐ µȓĮ "µȠȞȐįĮ" țȐșİ ijȠȡȐ. ȉȩıȠ Ș ĮȡȤȚțȒ ȩıȠ țĮȚ Ș IJİȜȚțȒ IJȚµȒ ȣʌȠȜȠȖȓȗȠȞIJĮȚ ʌȡȚȞ Įʌȩ IJȘȞ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ. ǹȢ ıȘµİȚȫıȠȣµİ ȩIJȚ, ȩʌȦȢ ijĮȓȞİIJĮȚ țĮȚ Įʌȩ IJȠ ȈȤȒµĮ 8.3, ĮȞ Ș IJİȜȚțȒ IJȚµȒ İȓȞĮȚ µȚțȡȩIJİȡȘ Įʌȩ IJȘȞ ĮȡȤȚțȒ IJȚµȒ, IJȩIJİ Ș İȞIJȠȜȒ įİȞ İțIJİȜİȓIJĮȚ. ǼʌȓıȘȢ ʌĮȡĮIJȘȡȠȪµİ ȩIJȚ ìåôáâëçôÞ := ȩIJĮȞ Ș IJȚµȒ IJȘȢ µİIJĮáñ÷éêÞ ôéìÞ ȕȜȘIJȒȢ İȜȑȖȤȠȣ ȖȓȞİȚ µİȖĮȜȪIJİȡȘ Įʌȩ IJȘȞ IJİȜȚțȒ ìåôáâëçôÞ := ìåôáâëçôÞ+âÞìá IJȚµȒ, IJȩIJİ Ș İțIJȑȜİıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ıȣȞİȤȓȗİIJĮȚ Įʌȩ IJȘȞ ĮµȑıȦȢ İʌȩµİȞȘ İȞIJȠȜȒ IJȘȢ For.
ìåôáâëçôÞ ôåëéêÞ ôéìÞ
ȉȑȜȠȢ įİȞ ʌȡȑʌİȚ ȞĮ FALSE µİIJĮȕȐȜȜİIJĮȚ Ș IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ İȜȑȖȤȠȣ µȑıĮ ıIJȘȞ İʌĮȞĮȜĮµȕĮȞȩµİȞȘ İȞȩIJȘIJĮ IJȦȞ İȞIJȠȜȫȞ, İȞȫ µİIJȐ IJȘȞ țĮȞȠȞȚțȒ ȠȜȠțȜȒȡȦıȘ IJȘȢ µİIJĮȕȜȘIJȒȢ İȜȑȖȤȠȣ İȓȞĮȚ ĮȩȡȚıIJȘ.
TRUE
åíôïëÞ åíôïëÞ
ȈȤȒµĮ 8.3 İȞIJȠȜȒȢ
For
Ș
IJȚµȒ
IJȘȢ
ȆĮȡȐįİȚȖµĮ īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ IJȣʌȫȞİȚ IJȘȞ N ʌȠıȩIJȘIJĮ ¦ I I 1
Program Summation; Var Sum, I, N: Integer; Begin Write('ǻȫıİ IJȠ ȃ '); Readln(N); Sum:=0; For I:=1 To N Do Sum:=Sum+I; Writeln('N=',N,'ǹșȡȠȚıµĮ=',Sum) End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-79-
Ǿ įİȪIJİȡȘ µȠȡijȒ IJȘȢ İȞIJȠȜȒȢ For İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ For µİIJĮȕȜȘIJȒ := ĮȡȤȚțȒ IJȚµȒ Downto IJİȜȚțȒ IJȚµȒ Do İȞIJȠȜȒ; ȩʌȠȣ Downto İȓȞĮȚ įİıµİȣµȑȞȘ ȜȑȟȘ. ȉȠ ĮʌȠIJȑȜİıµĮ IJȘȢ İțIJȑȜİıȘȢ ĮȣIJȒȢ IJȘȢ İȞIJȠȜȒȢ İȓȞĮȚ ʌĮȡȩµȠȚȠ µİ İțİȓȞȠ IJȘȢ ʌȡȫIJȘȢ µȠȡijȒȢ µİ IJȘ įȚĮijȠȡȐ ȩIJȚ ȠȚ IJȚµȑȢ IJȘȢ µİIJĮȕȜȘIJȒȢ İȜȑȖȤȠȣ ȟİțȚȞȠȪȞ Įʌȩ IJȘȞ ĮȡȤȚțȒ IJȚµȒ țĮȚ İȜĮIJIJȫȞȠȞIJĮȚ țĮIJȐ µȓĮ "µȠȞȐįĮ" µȑȤȡȚ IJȘȞ IJİȜȚțȒ IJȚµȒ. ĭȣıȚțȐ ʌȡȑʌİȚ Ș ĮȡȤȚțȒ IJȚµȒ ȞĮ İȓȞĮȚ µİȖĮȜȪIJİȡȘ, Ȓ ȓıȘ, IJȘȢ IJİȜȚțȒȢ. ȆĮȡȐįİȚȖµĮ ȀĮIJȐ IJȘȞ İțIJȑȜİıȘ IJȘȢ İȞIJȠȜȒȢ: For I:=5 Downto 1 Do J:=I+1; ȠȚ µİIJĮȕȜȘIJȑȢ I țĮȚ J ʌĮȓȡȞȠȣȞ įȚĮįȠȤȚțȐ IJȚȢ İȟȒȢ IJȚµȑȢ: I:=5, I:=4, I:=3, I:=2, I:=1,
J:=5+1=6 J:=4+1=5 J:=3+1=4 J:=2+1=3 J:=1+1=2
ȉİȜİȚȫȞȠȞIJĮȢ ĮȞĮijȑȡȠȣµİ µİȡȚțȠȪȢ țĮȞȩȞİȢ ʌȠȣ șĮ ʌȡȑʌİȚ ȞĮ ȑȤİȚ țĮȞİȓȢ ȣʌȩȥȘ IJȠȣ ıȤİIJȚțȐ µİ IJȚȢ İȞIJȠȜȑȢ For: 1. Ǿ µİIJĮȕȜȘIJȒ İȜȑȖȤȠȣ țĮșȫȢ țĮȚ Ș ĮȡȤȚțȒ țĮȚ IJİȜȚțȒ IJȚµȒ, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ IJȠȣ ȓįȚȠȣ IJĮțIJȚțȠȪ IJȪʌȠȣ (ȩȤȚ Real). 2. ȅȚ İțijȡȐıİȚȢ ʌȠȣ įȓȞȠȣȞ IJȚȢ ĮȡȤȚțȑȢ țĮȚ IJİȜȚțȑȢ IJȚµȑȢ ıIJȘ µİIJĮȕȜȘIJȒ İȜȑȖȤȠȣ ȣʌȠȜȠȖȓȗȠȞIJĮȚ ȩIJĮȞ ıȣȞĮȞIJȐIJĮȚ Ș İȞIJȠȜȒ For. 3. ȈIJȠ ıȫµĮ IJȦȞ İȞIJȠȜȫȞ İʌĮȞȐȜȘȥȘȢ įİ șĮ ʌȡȑʌİȚ ȞĮ ȣʌȐȡȤİȚ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ ʌȠȣ ȞĮ µİIJĮȕȐȜȜİȚ IJȘȞ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ İȜȑȖȤȠȣ. 4. Ǿ IJȚµȒ IJȘȢ µİIJĮȕȜȘIJȒȢ İȜȑȖȤȠȣ įİȞ İȓȞĮȚ ȠȡȚıµȑȞȘ µİIJȐ IJȠ IJȑȜȠȢ IJȘȢ İȞIJȠȜȒȢ For.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-80-
8.4 ǹȈȀǾȈǼǿȈ 1. ȆȠȚȠ șĮ İȓȞĮȚ IJȠ ĮʌȠIJȑȜİıµĮ IJȠȣ ʌĮȡĮțȐIJȦ ʌȡȠȖȡȐµµĮIJȠȢ; Program Puzzle; Var Number: Integer; Begin Number:=0; While Number<=10 Do Begin Number:=Number+1; Write(Number,' ') End {While} End. 2. ȃĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ IJȠ ȠʌȠȓȠ ȞĮ ʌİȡȚȑȤİȚ IJȠ ʌȠȜȪ IJȡİȚȢ İȞIJȠȜȑȢ Write Ȓ Writeln, țĮȚ ȞĮ IJȣʌȫȞİȚ țĮșȑȞĮ Įʌȩ IJĮ ʌĮȡĮțȐIJȦ ıȤȒµĮIJĮ: (Į) * ** *** **** *****
(ȕ) ***** **** *** ** *
(Ȗ)
* ** *** **** *****
(į) ***** **** *** ** *
3. ȉȚ șĮ IJȣʌȫıİȚ IJȠ ʌĮȡĮțȐIJȦ IJµȒµĮ ʌȡȠȖȡȐµµĮIJȠȢ: N:=1; Repeat Write(N,' '); N:=N+1 Until N=10; țĮȚ IJȚ IJȠ ʌĮȡĮțȐIJȦ: N:=1; Repeat N:=N+1 Write(N,' '); Until N=10; 4. ȃĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȜȜĮʌȜĮıȚĮıµȠȪ: 0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
ʌȠȣ
ȞĮ
IJȣʌȫȞİȚ
2
3
4
5
6
7
8
9
4 6 8 10 12 14 16 18
9 12 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
64 72
81
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
IJȠȞ
ʌĮȡĮțȐIJȦ
ʌȓȞĮțĮ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-81-
9. ȅȇǿǽȅȂǼȃȅǿ ǹȆȅ ȉȅ ȋȇǾȈȉǾ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ 9.1 ȉǹȀȉǿȀȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ ȆȡȚȞ įȠȪµİ ʌȫȢ µʌȠȡȠȪµİ ȞĮ ȠȡȓıȠȣµİ IJȠȣȢ įȚțȠȪȢ µĮȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ ĮȢ İʌȚıȘµȐȞȠȣµİ µİȡȚțȐ țȠȚȞȐ ȤĮȡĮțIJȘȡȚıIJȚțȐ ʌȠȣ ȑȤȠȣȞ µİȡȚțȠȓ Įʌȩ IJȠȣȢ ĮʌȜȠȪȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ ʌȠȣ ȑȤȠȣµİ įİȚ ȑȦȢ IJȫȡĮ. ȅȚ IJȪʌȠȚ įİįȠµȑȞȦȞ Intrger țĮȚ Char ʌȠȣ İȓįĮµİ ıİ ʌȡȠȘȖȠȪµİȞĮ țİijȐȜĮȚĮ, ȑȤȠȣȞ µİȡȚțȐ țȠȚȞȐ ȤĮȡĮțIJȘȡȚıIJȚțȐ. ȉȠ ʌȡȫIJȠ Įʌȩ ĮȣIJȐ İȓȞĮȚ ȩIJȚ µʌȠȡȠȪȞ ȞĮ ĮʌİȚțȠȞȚıșȠȪȞ ıIJȠȣȢ IJĮțIJȚțȠȪȢ ĮțȑȡĮȚȠȣȢ ĮȡȚșµȠȪȢ 0, 1, 2,... ǹȣIJȩ ȖȚĮ IJȠȣȢ ĮțȑȡĮȚȠȣȢ İȓȞĮȚ ʌȡȠijĮȞȑȢ. īȚĮ IJȠȣȢ ȤĮȡĮțIJȒȡİȢ ȑȤȠȣµİ ȞĮ ʌĮȡĮIJȘȡȒıȠȣµİ IJĮ İȟȒȢ: Ǿ șȑıȘ İȞȩȢ ȤĮȡĮțIJȒȡĮ µȑıĮ ıIJȠ ĮȜijȐȕȘIJȠ IJȠȣ Ǿ/Ȋ (ȕȜȑʌİ ʌĮȡȐȖȡ. 4.3) țĮșȠȡȓȗİIJĮȚ ĮʌȩȜȣIJĮ. Ȇ.Ȥ. ıIJȘ șȑıȘ 65 IJȠȣ ASCII ȣʌȐȡȤİȚ IJȠ țİijĮȜĮȓȠ ȖȡȐµµĮ ǹ IJȠȣ ȜĮIJȚȞȚțȠȪ ĮȜijĮȕȒIJȠȣ. Ǿ ȉ.ȇ įȚĮșȑIJİȚ IJȘ ıȣȞȐȡIJȘıȘ Ord Ș ȠʌȠȓĮ µĮȢ įȓȞİȚ IJȘ șȑıȘ İȞȩȢ ȤĮȡĮțIJȒȡĮ, ıIJȠ ĮȜijȐȕȘIJȠ IJȠȣ Ǿ/Ȋ µĮȢ. Ǿ ĮȞIJȓıIJȡȠijȘ ıȣȞȐȡIJȘıȘ İȓȞĮȚ Ș Chr ʌȠȣ įȑȤİIJĮȚ ȑȞĮȞ ĮȡȚșµȩ IJȪʌȠȣ Byte țĮȚ įȓȞİȚ IJȠ ȤĮȡĮțIJȒȡĮ ʌȠȣ ĮȞIJȚıIJȠȚȤİȓ ıIJȘ șȑıȘ IJȠȣ ĮȜijĮȕȒIJȠȣ ʌȠȣ țĮșȠȡȓȗİȚ Ƞ ĮȡȚșµȩȢ ĮȣIJȩȢ: Ord(C) ǼʌȚıIJȡȑijİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ʌȠȣ ĮȞIJȚʌȡȠıȦʌİȪİȚ IJȘ șȑıȘ IJȠȣ C ıIJȠ ıȪȞȠȜȠ ȤĮȡĮțIJȒȡȦȞ IJȠȣ Ǿ/Ȋ. Ȇ.Ȥ Ord('A') İȓȞĮȚ 65 Chr(B) ǼʌȚıIJȡȑijİȚ IJȠ ȤĮȡĮțIJȒȡĮ ASCII ʌȠȣ ĮȞIJȚıIJȠȚȤİȓ ıIJȠ ȩȡȚıµĮ Ǻ. Ȇ.Ȥ Chr(65) İȓȞĮȚ 'ǹ' ȅȚ IJȪʌȠȚ, ȜȠȚʌȩȞ, ʌȠȣ ȑȤȠȣȞ IJĮ ʌĮȡĮʌȐȞȦ ȤĮȡĮțIJȘȡȚıIJȚțȐ ȜȑȖȠȞIJĮȚ IJĮțIJȚțȠȓ IJȪʌȠȚ (ordinal types). ȅȚ IJĮțIJȚțȠȓ IJȪʌȠȚ İȓȞĮȚ įȚĮIJİIJĮȖµȑȞȠȚ (ordered). īȚĮ țȐșİ IJȚµȒ İȞȩȢ IJĮțIJȚțȠȪ IJȪʌȠȣ ȣʌȐȡȤİȚ µȚĮ ʌȡȠȘȖȠȪµİȞȘ (predecessor) țĮȚ µȚĮ İʌȩµİȞȘ (successor). Ȇ.Ȥ ʌȡȠȘȖȠȪµİȞȠȢ IJȠȣ 0 İȓȞĮȚ Ƞ -1 țĮȚ İʌȩµİȞȠȢ Ƞ 1, ʌȡȠȘȖȠȪµİȞȠȢ IJȠȣ 'Ǽ' İȓȞĮȚ Ƞ 'D' țĮȚ İʌȩµİȞȠȢ Ƞ 'F'. ĭȣıȚțȐ įİȞ ȣʌȐȡȤİȚ İʌȩµİȞȠȢ IJȠȣ MAXINT țĮȚ ʌȡȠȘȖȠȪµİȞȠȢ IJȠȣ İȜȐȤȚıIJȠȣ ĮțİȡĮȓȠȣ. Ǿ ȉ.ȇ µĮȢ ʌĮȡȑȤİȚ IJȘ ıȣȞȐȡIJȘıȘ Pred ȖȚĮ ȞĮ ʌĮȓȡȞȠȣµİ IJȘȞ ʌȡȠȘȖȠȪµİȞȘ țĮȚ IJȘȞ Succ ȖȚĮ IJȘȞ İʌȩµİȞȘ µȚĮȢ IJȚµȒȢ İȞȩȢ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-82-
IJĮțIJȚțȠȪ IJȪʌȠȣ. ǼʌȓıȘȢ ȣʌȐȡȤȠȣȞ ȠȚ įȚĮįȚțĮıȓİȢ Dec țĮȚ Inc ʌȠȣ țȐȞȠȣȞ țȐIJȚ ʌĮȡȩµȠȚȠ: Pred(S) ǼʌȚıIJȡȑijİȚ IJȘȞ IJȚµȒ ʌȠȣ ʌȡȠȘȖİȓIJĮȚ IJȠȣ ȠȡȓıµĮIJȠȢ S. To S ʌȡȑʌİȚ ȞĮ İȓȞĮȚ IJĮțIJȚțȠȪ IJȪʌȠȣ. Ȇ.Ȥ Pred('D') İȓȞĮȚ 'C' Pred('Z') İȓȞĮȚ 'Ȋ' Succ(S) ǼʌȚıIJȡȑijİȚ IJȘȞ IJȚµȒ ʌȠȣ ȑʌİIJĮȚ IJȠȣ ȠȡȓıµĮIJȠȢ S. To S ʌȡȑʌİȚ ȞĮ İȓȞĮȚ IJĮțIJȚțȠȪ IJȪʌȠȣ. Ȇ.Ȥ Succ('C') İȓȞĮȚ 'D' Succ('E') İȓȞĮȚ F Dec(S,N) ȂİȚȫȞİȚ µȚĮ IJĮțIJȚțȒ µİIJĮȕȜȘIJȒ S țĮIJȐ IJȘȞ ʌȠıȩIJȘIJĮ ǿ, ʌȠȣ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ĮțȑȡĮȚȠȣ IJȪʌȠȣ. Ȇ.Ȥ ĮȞ S:='C' Ș Dec(S,2) țȐȞİȚ IJȠ S 'A' ĮȞ S:=5 Ș Dec(S,3) țȐȞİȚ IJȠ S 2. Inc(S,N) ǹȣȟȐȞİȚ µȚĮ IJĮțIJȚțȒ µİIJĮȕȜȘIJȒ S țĮIJȐ IJȘȞ ʌȠıȩIJȘIJĮ ǿ, ʌȠȣ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ĮțȑȡĮȚȠȣ IJȪʌȠȣ. Ȇ.Ȥ ĮȞ S:='C' Ș Inc(S,2) țȐȞİȚ IJȠ S 'E' ĮȞ S:=5 Ș Inc(S,3) țȐȞİȚ IJȠ S 8.
9.2 Ǿ ǻǾȁȍȈǾ ȉȊȇǼ ȈIJȠ ȀİijȐȜĮȚȠ 4 İȓįĮµİ IJȠȣȢ ȕĮıȚțȠȪȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ IJȘȢ T.P. ȈIJĮ ʌȡȠȖȡȐµµĮIJȐ µĮȢ ȑȦȢ IJȫȡĮ ȤȡȘıȚµȠʌȠȚȒıĮµİ µİIJĮȕȜȘIJȑȢ ĮȣIJȫȞ IJȦȞ IJȪʌȦȞ (Integer, Real, Char țĮȚ Boolean). ȍıIJȩıȠ, ȖȚĮ IJȘȞ țĮȜȪIJİȡȘ țĮIJȐıIJȡȦıȘ țĮȚ țĮIJĮȞȩȘıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, Ș Pascal µĮȢ İʌȚIJȡȑʌİȚ ȞĮ ȠȡȓıȠȣµİ įȚțȠȪȢ µĮȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ. ǹȣIJȩ ȖȓȞİIJĮȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ (ȕȜȑʌİ ȈȤȒµĮ 2.2), µİIJȐ IJȚȢ įȘȜȫıİȚȢ IJȦȞ ıIJĮșİȡȫȞ țĮȚ țȐIJȦ Įʌȩ IJȘ įİıµİȣµȑȞȘ ȜȑȟȘ Type. ȆȡȠțİȚµȑȞȠȣ ȞĮ įȘȜȫıȠȣµİ IJĮ ȠȞȩµĮIJĮ IJȦȞ ȠȡȚȗȩµİȞȦȞ Įʌȩ ݵȐȢ IJȪʌȦȞ ȤȡȘıȚµȠʌȠȚȠȪµİ IJȘȞ İȞIJȠȜȒ įȒȜȦıȘȢ IJȪʌȦȞ (type declaration) ȩʌȦȢ ijĮȓȞİIJĮȚ ʌĮȡĮțȐIJȦ: Type ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ1 = IJȪʌȠȢ1; ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ2 = IJȪʌȠȢ2; .. .. .. .. ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣn = IJȪʌȠȢn;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-83-
ǹʌȩ IJȘ ıIJȚȖµȒ ʌȠȣ ȑȤȠȣµİ ȠȡȓıİȚ ȑȞĮ įȚțȩ µĮȢ IJȪʌȠ, µʌȠȡȠȪµİ ȞĮ ȠȡȓıȠȣµİ ıIJȠ ʌȡȩȖȡĮµµȐ µĮȢ µİIJĮȕȜȘIJȑȢ ĮȣIJȠȪ IJȠȣ IJȪʌȠȣ. ǼȞĮ İȓįȠȢ ȠȡȚıµȠȪ IJȪʌȦȞ İȓȞĮȚ IJȠ ʌĮȡĮțȐIJȦ: Type Akeraios = Integer; Pragmatikos = Real; Logikos = Boolean;
ȈIJȘȞ ʌȡĮȖµĮIJȚțȩIJȘIJĮ, įİȞ țȐȞĮµİ IJȓʌȠIJİ ȐȜȜȠ Įʌȩ IJȠ ȞĮ µİIJȠȞȠµȐıȠȣµİ IJȪʌȠȣȢ ʌȠȣ İȓȞĮȚ ȒįȘ ȠȡȚıµȑȞȠȚ. ȅȚ ȞȑȠȚ IJȪʌȠȚ, Akeraios, Pragmatikos țĮȚ Logikos, ȑȤȠȣȞ ȩȜİȢ IJȚȢ ȚįȚȩIJȘIJİȢ IJȦȞ ĮȡȤȚțȫȞ IJȪʌȦȞ. ȂİIJȐ IJȠȣȢ ʌĮȡĮʌȐȞȦ ȠȡȚıµȠȪȢ µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ: Var I, IN: Akeraios; R: Pragmatikos; Sum, MAT: Pragmatikos; Exist: Logikos;
ǻȪȠ ȐȜȜİȢ țĮIJȘȖȠȡȓİȢ IJȪʌȦȞ ʌȠȣ ȠȡȓȗȠȞIJĮȚ Įʌȩ IJȠ ȤȡȒıIJȘ İȓȞĮȚ ȠȚ ȞȑȠȚ ĮʌĮȡȚșµȘIJȠȓ IJȪʌȠȚ įİįȠµȑȞȦȞ (enumerated types) țĮȚ ȠȚ IJȪʌȠȚ ȣʌȠʌİȡȚȠȤȒȢ (subrange type), ʌȠȣ șĮ įȠȪµİ ıIJȚȢ İʌȩµİȞİȢ įȪȠ ʌĮȡĮȖȡȐijȠȣȢ.
9.3 ȃǼȅǿ ǹȆǹȇǿĬȂǾȉȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ (ǺǹĬȂȍȉȅǿ ȉȊȆȅǿ) ȊʌȐȡȤȠȣȞ ʌȠȜȜȑȢ ʌİȡȚʌIJȫıİȚȢ ʌȠȣ ıİ ȑȞĮ ʌȡȩȖȡĮµµĮ µȚĮ µȘ ĮȡȚșµȘIJȚțȒ µİIJĮȕȜȘIJȒ ʌĮȓȡȞİȚ IJȚµȑȢ Įʌȩ ȑȞĮ µȚțȡȩ ıȪȞȠȜȠ įȚĮțȡȚIJȫȞ IJȚµȫȞ. Ǿ ȤȡȘıȚµȠʌȠȓȘıȘ ĮȡȚșµȫȞ ȖȚĮ IJȘȞ ĮȞĮʌĮȡȐıIJĮıȘ µȘ ĮȡȚșµȘIJȚțȫȞ įİįȠµȑȞȦȞ, İȓȞĮȚ ĮįȑȟȚĮ IJİȤȞȚțȒ țĮȚ µʌȠȡİȓ ȞĮ ʌȡȠțĮȜȑıİȚ ıȪȖȤȣıȘ. Ǿ ȉ.P İʌȚIJȡȑʌİȚ ıIJȠȞ ʌȡȠȖȡĮµµĮIJȚıIJȒ ȞĮ ȠȡȓıİȚ ȞȑȠȣȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ µİ ĮȞĮȖȡĮijȒ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ ıȣȞȩȜȠȣ IJȚµȫȞ IJȠȣȢ. Ȇ.Ȥ, µȚĮ µİIJĮȕȜȘIJȒ µʌȠȡİȓ ȞĮ ȑȤİȚ ȦȢ IJȚµȒ IJȠ ȩȞȠµĮ µȚĮȢ ȘµȑȡĮȢ IJȘȢ İȕįȠµȐįĮȢ Ȓ IJȠ ȩȞȠµĮ İȞȩȢ ijȡȠȪIJȠȣ. ȆȡȩțİȚIJĮȚ ȖȚĮ IJȠȣȢ ĮʌĮȡȚșµȘIJȠȪȢ (Ȓ ȕĮșµȦIJȠȪȢ) IJȪʌȠȣȢ įİįȠµȑȞȦȞ, ȠȚ ȠʌȠȓȠȚ İȞȠʌȠȚȠȪȞ ȠµȠİȚįȒ µİȖȑșȘ µİ țĮIJĮȞȠȘIJȑȢ ȜİțIJȚțȑȢ ʌİȡȚȖȡĮijȑȢ, įȓȞȠȞIJȐȢ IJȠȣȢ ȑȞĮ ȩȞȠµĮ, ʌȠȣ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ. ȅ ȠȡȚıµȩȢ İȞȩȢ ȞȑȠȣ ĮʌĮȡȚșµȘIJȠȪ (Ȓ ȕĮșµȦIJȠȪ) IJȪʌȠȣ įİįȠµȑȞȦȞ ȖȓȞİIJĮȚ ıIJȠ ıȘµİȓȠ İțİȓȞȠ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ʌȠȣ įȘȜȫȞȠȞIJĮȚ ȠȚ IJȪʌȠȚ țĮȚ ȑȤİȚ IJȘȞ ĮțȩȜȠȣșȘ µȠȡijȒ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-84-
Type ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ1 = (ȜȓıIJĮ IJȚµȫȞ IJȪʌȠȣ1); ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ2 = (ȜȓıIJĮ IJȚµȫȞ IJȪʌȠȣ2); .. .. .. .. ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣn = (ȜȓıIJĮ IJȚµȫȞ IJȪʌȠȣn); ȩʌȠȣ Type İȓȞĮȚ, ȩʌȦȢ ȟȑȡȠȣµİ, Ș įİıµİȣµȑȞȘ ȜȑȟȘ ʌȠȣ ȤȡȘıȚµİȪİȚ ȖȚĮ IJȠȞ ȠȡȚıµȩ ȞȑȦȞ IJȪʌȦȞ įİįȠµȑȞȦȞ, ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣi İȓȞĮȚ IJȠ ȩȞȠµĮ ʌȠȣ ȤĮȡĮțIJȘȡȓȗİȚ IJȠȞ IJȪʌȠ țĮȚ ȜȓıIJĮ IJȚµȫȞ IJȪʌȠȣi İȓȞĮȚ IJȠ ıȪȞȠȜȠ IJȚµȫȞ IJȠȣ IJȪʌȠȣi. ǼȓȞĮȚ ijĮȞİȡȩ ȩIJȚ µȚĮ µİIJĮȕȜȘIJȒ ȞȑȠȣ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ șĮ µʌȠȡİȓ ȞĮ ȜĮµȕȐȞİȚ ȦȢ IJȚµȑȢ µȩȞȠ ĮȣIJȑȢ ʌȠȣ ȠȡȓȗȠȞIJĮȚ ıIJȘ ȜȓıIJĮ IJȚµȫȞ IJȠȣ IJȪʌȠȣ. ȆȡȑʌİȚ ȞĮ IJȠȞȓıȠȣµİ ȩIJȚ ȠȚ IJȚµȑȢ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ ıIJȘ ȜȓıIJĮ İȞȩȢ ȞȑȠȣ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ, ʌȡȑʌİȚ ȞĮ İȓȞĮȚ µȠȞĮįȚțȑȢ, įȘȜĮįȒ ȠȚ ȓįȚİȢ IJȚµȑȢ įİ µʌȠȡİȓ ȞĮ ݵijĮȞȓȗȠȞIJĮȚ ıİ įȪȠ įȚĮijȠȡİIJȚțȠȪȢ IJȪʌȠȣȢ. ǹȣIJȩ İȓȞĮȚ ĮȞĮȖțĮȓȠ ȖȚĮ ȞĮ µʌȠȡİȓ Ƞ µİIJĮȖȜȦIJIJȚıIJȒȢ ȞĮ ĮȞIJȚıIJȠȚȤİȓ µȚĮ IJȚµȒ µİ ȑȞĮ ıȣȖțİțȡȚµȑȞȠ ȕĮșµȦIJȩ IJȪʌȠ ȤȦȡȓȢ țĮµȓĮ ıȪȖȤȣıȘ. ȁȩȖȦ IJȠȣ ʌĮȡĮʌȐȞȦ ʌİȡȚȠȡȚıµȠȪ įİȞ µʌȠȡİȓ ȞĮ İȓȞĮȚ IJȚµȑȢ İȞȩȢ ȞȑȠȣ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ ȠȚ ĮțȑȡĮȚȠȚ Ȓ ʌȡĮȖµĮIJȚțȠȓ ĮȡȚșµȠȓ țĮȚ ȠȚ ȤĮȡĮțIJȒȡİȢ. ȉȑȜȠȢ șĮ ʌȡȑʌİȚ ȞĮ IJȠȞȚıșİȓ ȩIJȚ ȠȚ IJȚµȑȢ İȞȩȢ ȞȑȠȣ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ İȓȞĮȚ įȚĮIJİIJĮȖµȑȞİȢ, Ș įİ įȚȐIJĮȟȒ IJȠȣȢ țĮșȠȡȓȗİIJĮȚ Įʌȩ IJȘ ıİȚȡȐ µİ IJȘȞ ȠʌȠȓĮȞ ݵijĮȞȓȗȠȞIJĮȚ ıIJȘ ȜȓıIJĮ IJȚµȫȞ ıIJȘ įȒȜȦıȘ IJȠȣ IJȪʌȠȣ. ǼʌȓıȘȢ ȠȚ IJȚµȑȢ IJȦȞ ȞȑȦȞ ĮʌĮȡȚșµȘIJȫȞ IJȪʌȦȞ įİ µʌȠȡȠȪȞ ȞĮ İʌİȟİȡȖĮıșȠȪȞ țĮșȩıȠȞ įİȞ ȣʌȐȡȤȠȣȞ țĮIJȐȜȜȘȜȠȚ IJİȜİıIJȑȢ. ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ ȑȤȠȣµİ IJȚȢ ʌĮȡĮțȐIJȦ įȘȜȫıİȚȢ IJȪʌȦȞ: Type Day=(Monday,Tuesday,Wednesday,Thurstday,Friday,Saturday, Sunday); Fruit=(Apple,Orange,Lemon,Pineapple,Tomato); Operator=(Plus,Minus,Multiply,Divide);
ȉȩIJİ µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ µİIJĮȕȜȘIJȑȢ ĮȣIJȫȞ IJȦȞ IJȪʌȦȞ: Var Ergasimh, Argia: Day; Frouto: Fruit; Telesths: Operator;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-85-
ȈIJȠ ʌȡȩȖȡĮµµĮ µʌȠȡȠȪµİ ȞĮ ȑȤȠȣµİ İȞIJȠȜȑȢ IJȘȢ µȠȡijȒȢ: Ergasimh:=Monday; Frouto:=Orange; If Frouto=Orange Then Writeln('ǼȤȦ ȑȞĮ ʌȠȡIJȠțȐȜȚ');
ǹȜȜȐ ȩȤȚ IJȘȢ µȠȡijȒȢ: Ergasimh:=Plus; {Ǿ IJȚµȒ Plus įİȞ ĮȞȒțİȚ ıIJȠȞ IJȪʌȠ Day} If Telesths=Orange... {Ǿ IJȚµȒ Orange įİȞ İȓȞĮȚ IJȠȣ IJȪʌȠȣ Operator}
ǼʌȓıȘȢ µʌȠȡȠȪµİ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ IJȚȢ IJȚµȑȢ IJȦȞ IJȪʌȦȞ ȦȢ ȠȡȓıµĮIJĮ ıIJȚȢ ıȣȞĮȡIJȒıİȚȢ Succ, Pred, Ord, Inc, Dec. Succ(Lemon) İȓȞĮȚ Pineapple Pred(Multiply) İȓȞĮȚ Divide Ord(Monday) İȓȞĮȚ 0 Ord(Lemon) İȓȞĮȚ 2 Succ(Pred(Friday)) İȓȞĮȚ Friday ț.Ȝ.ʌ
ǹțȩµĮ ȠȚ ĮțȩȜȠȣșİȢ İțijȡȐıİȚȢ İȓȞĮȚ ĮȜȘșİȓȢ: Monday<Friday Multiply<Divide Orange>Apple
ȆĮȡȐįİȚȖµĮ Program Regions; Type Region_Type=(North,South,East,West); Var Region: Region_Type; Begin For Region:=North To West Do Case Region Of North: Writeln('ǺȩȡİȚĮ ʌİȡȚȠȤȒ); South: Writeln('ȃȩIJȚĮ ʌİȡȚȠȤȒ); East : Writeln('ǹȞĮIJȠȜȚțȒ ʌİȡȚȠȤȒ); West : Writeln('ǻȣIJȚțȒ ʌİȡȚȠȤȒ') End End.
Ǿ ȉ.ȇ ĮʌȠșȘțİȪİȚ țȐșİ IJȚµȒ IJȠȣ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ ıĮȞ ĮțȑȡĮȚȠ țĮȚ µİIJĮIJȡȑʌİȚ ĮȣIJȩµĮIJĮ țȐșİ IJĮȣIJȩIJȘIJĮ ıIJȠ ĮȡȚșµȘIJȚțȩ IJȘȢ ȚıȠįȪȞĮµȠ. ǼIJıȚ, ıIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ, Ș North ĮʌȠșȘțİȪİIJĮȚ µİ IJȘȞ IJȚµȒ 0, Ș South µİ IJȘȞ IJȚµȒ 1 ț.Ȝ.ʌ. Ǿ µȠȞĮįȚțȒ ĮįȣȞĮµȓĮ IJȘȢ ȤȡȒıȘȢ IJȠȣ IJȪʌȠȣ ĮȣIJȠȪ İȓȞĮȚ IJȠ ȖİȖȠȞȩȢ ȩIJȚ Ƞ µİIJĮȖȜȦIJIJȚıIJȒȢ įİȞ İʌȚIJȡȑʌİȚ IJȘȞ İȚıĮȖȦȖȒ Ȓ IJȘȞ İȟĮȖȦȖȒ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-86-
ĮʌĮȡȚșµȘIJȫȞ IJȪʌȦȞ. īȚĮ ʌĮȡȐįİȚȖµĮ. İȐȞ țȐʌȠȚȠȢ șȑȜİȚ ȞĮ İʌȚȜȑȟİȚ IJȘȞ IJȚµȒ North, įİȞ µʌȠȡİȓ ȞĮ IJȠ țȐȞİȚ ĮȣIJȩ µȑıȦ IJȘȢ İȞIJȠȜȒȢ Readln Ȓ Writeln.
9.4 ȉȊȆȅǿ ȊȆȅȆǼȇǿȅȋǾȈ ȂȚĮ ȐȜȜȘ țĮIJȘȖȠȡȓĮ IJȪʌȦȞ ʌȠȣ ȠȡȓȗȠȞIJĮȚ Įʌȩ IJȠ ȤȡȒıIJȘ İȓȞĮȚ ȠȚ IJȪʌȠȚ ȣʌȠʌİȡȚȠȤȒȢ. ȅʌȦȢ ijĮȞİȡȫȞİȚ țĮȚ IJȠ ȩȞȠµȐ IJȠȣȢ, ȠȚ IJȪʌȠȚ ȣʌȠʌİȡȚȠȤȒȢ İȓȞĮȚ ȣʌȠıȪȞȠȜĮ IJĮțIJȚțȫȞ IJȪʌȦȞ. ȅ IJĮțIJȚțȩȢ IJȪʌȠȢ, ʌȐȞȦ ıIJȠȞ ȠʌȠȓȠȞ ȠȡȓȗİIJĮȚ ȑȞĮȢ IJȪʌȠȢ ȣʌȠʌİȡȚȠȤȒȢ, ȜȑȖİIJĮȚ IJȪʌȠȢ ȣʌȠįȠȤȒȢ (host type). ȉȠȣȢ IJȪʌȠȣȢ ȣʌȠʌİȡȚȠȤȒȢ IJȠȣȢ ȤȡȘıȚµȠʌȠȚȠȪµİ ıİ ʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȖȞȦȡȓȗȠȣµİ Įʌȩ IJȘȞ ĮȡȤȒ ȩIJȚ ȠȚ IJȚµȑȢ ȠȡȚıµȑȞȦȞ µİIJĮȕȜȘIJȫȞ İȓȞĮȚ ʌİȡȚȠȡȚıµȑȞİȢ ıİ µȚĮ ʌİȡȚȠȤȒ IJȚµȫȞ. īȚĮ ʌĮȡȐįİȚȖµĮ ȠȚ ȘȜȚțȓİȢ IJȦȞ ĮȞșȡȫʌȦȞ İȓȞĮȚ µİIJĮȟȪ 1 țĮȚ 130 (İțIJȩȢ țĮȚ ĮȞ ȗȠȪȞ ıIJȠȞ ȀĮȪțĮıȠ...) ȅ ʌİȡȚȠȡȚıµȩȢ µȚĮȢ µİIJĮȕȜȘIJȒȢ ȞĮ ȜĮµȕȐȞİȚ IJȚµȑȢ IJĮțIJȚțȠȪ IJȪʌȠȣ (ȩȤȚ Real) ıİ µȚĮ ȣʌȠʌİȡȚȠȤȒ ʌȡĮȖµĮIJȠʌȠȚİȓIJĮȚ µİ IJȠȞ ȠȡȚıµȩ µȚĮ ȣʌȠʌİȡȚȠȤȒȢ IJȚµȫȞ (subrange), įȘȜȫȞȠȞIJĮȢ IJȠ țĮIJȫIJĮIJȠ țĮȚ IJȠ ĮȞȫIJĮIJȠ ȩȡȚȠ, IJĮ ȠʌȠȓĮ įȚĮȤȦȡȓȗȠȞIJĮȚ µİ įȪȠ IJİȜİȓİȢ "..". Ǿ įȒȜȦıȘ IJȠȣ ȞȑȠȣ ĮȣIJȠȪ IJȪʌȠȣ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: Type ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ = İȜȐȤȚıIJȘ IJȚµȒ .. µȑȖȚıIJȘ IJȚµȒ; ȩʌȠȣ ĮȞĮȖȞȦȡȚıIJȚțȩ_IJȪʌȠȣ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ ȣʌȠʌİȡȚȠȤȒȢ, İȜȐȤȚıIJȘ IJȚµȒ țĮȚ µȑȖȚıIJȘ IJȚµȒ İȓȞĮȚ İȓȞĮȚ Ș µȚțȡȩIJİȡȘ țĮȚ µİȖĮȜȪIJİȡȘ IJȚµȒ ĮȞIJȓıIJȠȚȤĮ ʌȠȣ µʌȠȡİȓ ȞĮ ȜȐȕİȚ µȚĮ µİIJĮȕȜȘIJȒ ĮȣIJȠȪ IJȠȣ IJȪʌȠȣ. ȅȚ IJȚµȑȢ ĮȣIJȑȢ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ IJĮțIJȚțȑȢ. ǼʌȓıȘȢ șĮ ʌȡȑʌİȚ ȞĮ ȚıȤȪİȚ: Ord(İȜȐȤȚıIJȘ IJȚµȒ)<Ord(µȑȖȚıIJȘ IJȚµȒ). ǹȢ ıȘµİȚȦșİȓ ȩIJȚ ȠȚ įȪȠ IJİȜİȓİȢ ʌȠȣ ʌĮȡݵȕȐȜȜȠȞIJĮȚ µİIJĮȟȪ IJȘȢ İȜȐȤȚıIJȘȢ țĮȚ µȑȖȚıIJȘȢ IJȚµȒȢ, ıȘµĮȓȞȠȣȞ "Įʌȩ-µȑȤȡȚ țĮȚ ıȣµʌİȡȚȜĮµȕĮȞȠµȑȞȦȞ". Ȉİ ȩ,IJȚ ĮijȠȡȐ IJȘȞ İʌİȟİȡȖĮıȓĮ µİIJĮȕȜȘIJȫȞ IJȪʌȠȣ ȣʌȠʌİȡȚȠȤȒȢ ȚıȤȪȠȣȞ ȠȚ ȓįȚȠȚ țĮȞȩȞİȢ µİ İțİȓȞȠȣȢ IJȠȣ IJȪʌȠȣ IJȘȢ ȠȜȩțȜȘȡȘȢ ʌİȡȚȠȤȒȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-87-
ȆĮȡȐįİȚȖµĮ Type Day=(Monday,Tuesday,Wednesday,Thurstday,Friday,Saturday, Sunday); HolyDay= Saturday..Sunday; {ȣʌȠʌİȡȚȠȤȒ IJȠȣ Day} WorkingDay= Monday..Friday; { -"} Hours= 0..24; {ȣʌȠʌİȡȚȠȤȒ IJȠȣ Integer} Letters= 'A'..'Z'; {ȣʌȠʌİȡȚȠȤȒ IJȠȣ Char} Var Ergasimh: WorkingDay; Argia: HolyDay; OresHmeras: Hours; ArxikaOnomatos: Letters;
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ, µȚĮ µİIJĮȕȜȘIJȒ IJȪʌȠȣ Day µʌȠȡİȓ ȞĮ ʌĮȡȚıIJȐȞİȚ µȚĮ ȠʌȠȚĮįȒʌȠIJİ ȘµȑȡĮ IJȘȢ İȕįȠµȐįĮȢ, ĮȜȜȐ Ș Ergasimh ʌĮȡȚıIJȐȞİȚ µȩȞȠ IJȚȢ ȘµȑȡİȢ Įʌȩ Monday ȑȦȢ țĮȚ Friday. ȅµȠȓȦȢ țĮȚ ȠȚ OresHmeras ȜĮµȕȐȞİȚ ĮțȑȡĮȚİȢ IJȚµȑȢ ıIJȠ įȚȐıIJȘµĮ 0 ȑȦȢ țĮȚ 24 țĮȚ ĮȞ ʌȡȠıʌĮșȒıȠȣµİ ȞĮ țĮIJĮȤȦȡȒıȠȣµİ ıIJȘ µİIJĮȕȜȘIJȒ ĮȣIJȒ µȓĮ IJȚµȒ ȑȟȦ Įʌȩ ĮȣIJȩ IJȠ įȚȐıIJȘµĮ șĮ ʌȡȠȟİȞȘșİȓ "ıijȐȜµĮ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȘȢ" (run time error).
9.5 ȈȊȂǺǿǺǹȈȉȅȉǾȉǹ ȉȊȆȍȃ ȂȑȤȡȚ IJȫȡĮ ȟȑȡĮµİ ȩIJȚ: ıİ µȚĮ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ, Ƞ IJȪʌȠȢ IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ IJȘȢ ʌĮȡȐıIJĮıȘȢ IJȠȣ įİȟȚȠȪ µȑȜȠȣȢ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ Ƞ ȓįȚȠȢ µİ IJȠȞ IJȪʌȠ IJȘȢ µİIJĮȕȜȘIJȒȢ ʌȠȣ IJȠ ȩȞȠµȐ IJȘȢ ȕȡȓıțİIJĮȚ ıIJȠ ĮȡȚıIJİȡȩ µȑȜȠȢ. Ǿ µȩȞȘ İȟĮȓȡİıȘ ı'ĮȣIJȩȞ IJȠȞ țĮȞȩȞĮ ȒIJĮȞ Ș įȣȞĮIJȩIJȘIJĮ țĮIJĮȤȫȡȘıȘȢ IJȚµȒȢ IJȪʌȠȣ Integer ıİ µİIJĮȕȜȘIJȒ IJȪʌȠȣ Real. Ȃİ IJȠȞ ȠȡȚıµȩ ȞȑȦȞ IJȪʌȦȞ įȘµȚȠȣȡȖȠȪȞIJĮȚ ʌȡȠȕȜȒµĮIJĮ ıȣµȕȚȕĮıIJȩIJȘIJĮȢ țĮIJȐ IJȘȞ İʌİȟİȡȖĮıȓĮ IJȦȞ ȞȑȦȞ įȠµȫȞ. ǼIJıȚ İȓȞĮȚ ıțȩʌȚµȠ ȞĮ ĮȞĮijȑȡȠȣµİ ȟĮȞȐ (ȕȜȑʌİ ʌĮȡȐȖȡ. 5.5) ʌȠȚȠȚ IJȪʌȠȚ șİȦȡȠȪȞIJĮȚ ıȣµȕȚȕĮıIJȠȓ. ǻȪȠ IJȪʌȠȚ IJȚµȫȞ șİȦȡȠȪȞIJĮȚ ıȣµȕȚȕĮıIJȠȓ ĮȞ İȓȞĮȚ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ, Ȓ ĮȞ Ƞ ȑȞĮȢ İȓȞĮȚ ȣʌȠʌİȡȚȠȤȒ IJȠȣ ȐȜȜȠȣ, Ȓ ĮȞ țĮȚ ȠȚ įȪȠ İȓȞĮȚ ȣʌȠʌİȡȚȠȤȑȢ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ ȣʌȠįȠȤȒȢ. ȂȚĮ ʌĮȡȐıIJĮıȘ șİȦȡİȓIJĮȚ ȩIJȚ ȑȤİȚ țĮIJĮȤȦȡȘIJȚțȒ ıȣµȕȚȕĮıIJȩIJȘIJĮ µİ µȚĮ µİIJĮȕȜȘIJȒ, ĮȞ ȠȚ IJȪʌȠȚ IJȠȣȢ İȓȞĮȚ ıȣµȕȚȕĮıIJȠȓ, Ȓ ĮȞ Ș ʌĮȡȐıIJĮıȘ İȓȞĮȚ ĮțİȡĮȓȠȣ IJȪʌȠȣ țĮȚ Ș µİIJĮȕȜȘIJȒ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ. ǼʌȓıȘȢ ĮȞ Ș µİIJĮȕȜȘIJȒ İȓȞĮȚ IJȪʌȠȣ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-88-
ȣʌȠʌİȡȚȠȤȒȢ, IJȩIJİ Ș IJȚµȒ IJȘȢ ʌĮȡȐıIJĮıȘȢ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ İȞIJȩȢ IJȘȢ ʌİȡȚȠȤȒȢ IJȚµȫȞ IJȘȢ µİIJĮȕȜȘIJȒȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-89-
10. ǻȅȂǼȈ ǻǼǻȅȂǼȃȍȃ ȅȚ IJȪʌȠȚ įİįȠµȑȞȦȞ ʌȠȣ ȑȤȠȣµİ įİȚ ȑȦȢ IJȫȡĮ ȜȑȖȠȞIJĮȚ ĮIJȠµȚțȠȓ IJȪʌȠȚ įİįȠµȑȞȦȞ, (ȠȚ IJȚµȑȢ IJȠȣȢ įİȞ ĮȞĮȜȪȠȞIJĮȚ ıİ ȐȜȜİȢ ĮʌȜȠȪıIJİȡİȢ). ȊʌȐȡȤȠȣȞ ȩµȦȢ țĮȚ IJȪʌȠȚ įİįȠµȑȞȦȞ IJȦȞ ȠʌȠȓȦȞ ȠȚ IJȚµȑȢ ĮʌȠIJİȜȠȪȞ ıȪȞșİıȘ ȐȜȜȦȞ IJȚµȫȞ įİįȠµȑȞȦȞ țĮȚ ȠȚ IJȚµȑȢ ĮȣIJȑȢ ıȤİIJȓȗȠȞIJĮȚ µİIJĮȟȪ IJȠȣȢ µİ țȐʌȠȚĮ ıȤȑıȘ. ǹȣIJȠȓ ȠȚ IJȪʌȠȚ įİįȠµȑȞȦȞ ȜȑȖȠȞIJĮȚ įȠµȘµȑȞȠȚ IJȪʌȠȚ Ȓ įȠµȑȢ įİįȠµȑȞȦȞ. ȂİȡȚțȑȢ Įʌ'IJȚȢ įȠµȑȢ įİįȠµȑȞȦȞ ʌȠȣ ȣʌȠıIJȘȡȓȗİȚ Ș ȉ.ȇ șĮ įȠȪµİ ı'ĮȣIJȩ IJȠ țİijȐȜĮȚȠ.
10.1 ȆǿȃǹȀǼȈ Ȉİ ʌȠȜȪʌȜȠțĮ ʌȡȠȖȡȐµµĮIJĮ ıȪȞșİIJȦȞ İijĮȡµȠȖȫȞ, ĮȞIJȚµİIJȦʌȓȗȠȣµİ ıȣȤȞȐ ʌȡȠȕȜȒµĮIJĮ IJȘȢ µȠȡijȒȢ, ʌȫȢ ȞĮ ȠȞȠµȐıȠȣµİ IJȚȢ ʌȠȜȣȐȡȚșµİȢ ʌȠıȩIJȘIJİȢ ʌȠȣ ݵʌȜȑțȠȞIJĮȚ ı'ĮȣIJȐ, ʌȫȢ ȞĮ țĮIJĮȤȦȡȒıȠȣµİ ıIJȘ µȞȒµȘ IJȠȣ Ǿ/Ȋ IJȠ µİȖȐȜȠ ȩȖțȠ įİįȠµȑȞȦȞ țĮȚ ʌȫȢ ȞĮ įȚĮȤİȚȡȚıIJȠȪµİ IJȚȢ ʌȠıȩIJȘIJİȢ țĮȚ ȞĮ İʌİȟİȡȖĮıIJȠȪµİ IJĮ įİįȠµȑȞĮ µİ IJȠȞ țĮȜȪIJİȡȠ įȣȞĮIJȩ IJȡȩʌȠ. ǹȢ ʌȐȡȠȣµİ ȖȚĮ ʌĮȡȐįİȚȖµĮ IJȠ ʌȡȩȕȜȘµĮ ȣʌȠȜȠȖȚıµȠȪ IJȦȞ İȚıȚIJȘȡȓȦȞ ʌȠȣ ȑțȠȥİ ı'ȑȞĮ µȒȞĮ ȑȞĮ șȑĮIJȡȠ. ĬĮ µʌȠȡȠȪıĮµİ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ µȓĮ µİIJĮȕȜȘIJȒ, ȑıIJȦ IJȘȞ Tickets, ıIJȘȞ ȠʌȠȓĮ ȞĮ ĮʌȠșȘțİȪȠȞIJĮȚ IJĮ İȚıȚIJȒȡȚĮ ʌȠȣ ĮȞIJȚıIJȠȚȤȠȪȞ ıIJȘȞ țȐșİ µȑȡĮ țĮȚ µȓĮ µİIJĮȕȜȘIJȒ Sum ȩʌȠȣ șĮ ĮʌȠșȘțİȪĮµİ IJȠ ıȣȞȠȜȚțȩ ĮȡȚșµȩ İȚıȚIJȘȡȓȦȞ. ǼIJıȚ șĮ İȓȤĮµİ IJȠ ʌĮȡĮțȐIJȦ țȠµµȐIJȚ ʌȡȠȖȡȐµµĮIJȠȢ: Sum:=0; For I:=1 To 30 Do Begin Readln(Tickets); Sum:=Sum+Tickets End;
ȈIJȠ ʌĮȡĮʌȐȞȦ țȠµµȐIJȚ ʌȡȠȖȡȐµµĮIJȠȢ țȐșİ ijȠȡȐ ʌȠȣ įȚĮȕȐȗȠȣµİ µȚĮ IJȚµȒ ıIJȘ µİIJĮȕȜȘIJȒ Tickets, Ș ʌȡȠȘȖȠȪµİȞȘ IJȚµȒ IJȘȢ ȤȐȞİIJĮȚ. ǹȞ ȩµȦȢ µĮȢ İȞįȚĮijȑȡİȚ ȞĮ ȟȑȡȠȣµİ ıIJȠ IJȑȜȠȢ IJȠȣ µȒȞĮ țĮȚ IJȠȞ ĮȡȚșµȩ İȚıȚIJȘȡȓȦȞ IJȘȢ țȐșİ µȑȡĮȢ ȤȦȡȚıIJȐ, IJȩIJİ șĮ ȑʌȡİʌİ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ 30 (!) µİIJĮȕȜȘIJȑȢ țĮȚ ȞĮ ȖȡȐȥȠȣµİ ȑȞĮ țȠµµȐIJȚ ʌȡȠȖȡȐµµĮIJȠȢ țĮIJȐ ʌȠȜȪ µİȖĮȜȪIJİȡȠ Įʌȩ IJȠ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-90-
ʌȡȠȘȖȠȪµİȞȠ. Ȉİ IJȑIJȠȚİȢ ʌİȡȚʌIJȫıİȚȢ İȓȞĮȚ ȚįĮȞȚțȒ Ș ȜȪıȘ IJȘȢ ȤȡȘıȚµȠʌȠȓȘıȘȢ İȞȩȢ ʌȓȞĮțĮ, ȖȚĮ ȞĮ ijȣȜȐȟȠȣµİ țĮȚ ȞĮ İʌİȟİȡȖĮıIJȠȪµİ İȪțȠȜĮ IJȚȢ µİIJĮȕȜȘIJȑȢ µĮȢ. ǻȒȜȦıȘ ȆȓȞĮțĮ ȅȚ ʌȓȞĮțİȢ İȓȞĮȚ Ș ʌȚȠ ȖȞȦıIJȒ įȠµȒ įİįȠµȑȞȦȞ, ȖȚĮIJȓ ȩȜİȢ ıȤİįȩȞ ȠȚ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ įȚĮșȑIJȠȣȞ IJȘ įȠµȒ ĮȣIJȒ. ǼȞĮȢ ʌȓȞĮțĮȢ ȤȡȘıȚµİȪİȚ ȖȚĮ IJȘȞ țĮIJĮȤȫȡȘıȘ įİįȠµȑȞȦȞ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ, ʌȠȣ ȜȑȖİIJĮȚ ȕĮıȚțȩȢ IJȪʌȠȢ IJȠȣ ʌȓȞĮțĮ. Ǿ ȚįȚȩIJȘIJĮ ĮȣIJȒ ȤĮȡĮțIJȘȡȓȗİȚ IJȠȣȢ ʌȓȞĮțİȢ ȦȢ ȠµȠȖİȞİȓȢ įȠµȑȢ įİįȠµȑȞȦȞ. Ǿ įȒȜȦıȘ µȚĮȢ µİIJĮȕȜȘIJȒȢ IJȪʌȠȣ ʌȓȞĮțĮ ĮȡȤȓȗİȚ µİ IJȠȞ ȠȡȚıµȩ IJȠȣ, Ƞ ȠʌȠȓȠȢ șĮ ʌȡȑʌİȚ ȞĮ ʌĮȡȑȤİȚ ıIJȠ µİIJĮȖȜȦIJIJȚıIJȒ IJȚȢ ĮțȩȜȠȣșİȢ ʌȜȘȡȠijȠȡȓİȢ: 1. ȆȠȚȠȢ İȓȞĮȚ Ƞ IJȪʌȠȢ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ ʌȓȞĮțĮ. 2. ȆȠȚȠ İȓȞĮȚ IJȠ ʌȜȒșȠȢ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ ʌȓȞĮțĮ. 3. ȆȫȢ șĮ ĮȞĮijİȡȩµĮıIJİ ıIJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ. ȈIJȘȞ ȉ.ȇ, ȠȚ ʌĮȡĮʌȐȞȦ ʌȜȘȡȠijȠȡȓİȢ įȓȞȠȞIJĮȚ µİ IJȠȞ ȠȡȚıµȩ IJȠȣ ʌȓȞĮțĮ Ƞ ȠʌȠȓȠȢ ȑȤİȚ IJȘ ȖİȞȚțȒ µȠȡijȒ ʌȠȣ ĮțȠȜȠȣșİȓ: Type ĮȞĮȖȞȦȡ.ʌȓȞĮțĮ = Array[įȚĮıIJȐıİȚȢ] Of IJȪʌȠȢ ıIJȠȚȤİȓȦȞ; ȩʌȠȣ ĮȞĮȖȞȦȡȚıIJȚțȩ_ʌȓȞĮțĮ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ IJȠȣ ʌȓȞĮțĮ, Array țĮȚ ȅf İȓȞĮȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ țĮȚ IJȪʌȠȢ ıIJȠȚȤİȓȦȞ İȓȞĮȚ Ƞ IJȪʌȠȢ IJȦȞ IJȚµȫȞ IJȦȞ ıIJȠȚȤİȓȦȞ ʌȠȣ șȑȜȠȣµİ ȞĮ țĮIJĮȤȦȡȒıȠȣµİ ıIJȠȞ ʌȓȞĮțĮ. ȅȚ įȚĮıIJȐıİȚȢ IJȠȣ ʌȓȞĮțĮ İȓȞĮȚ ȠȚ ȠȡȚĮțȑȢ IJȚµȑȢ IJȠȣ țĮȚ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ȕĮșµȦIJȠȪ IJȪʌȠȣ (ȩȤȚ Real). ȅȚ ȠȡȚĮțȑȢ IJȚµȑȢ µȚĮȢ įȚȐıIJĮıȘȢ IJȠȣ ʌȓȞĮțĮ ȤȦȡȓȗȠȞIJĮȚ Įʌȩ įȪȠ IJİȜİȓİȢ "..", İȞȫ Ș țȐșİ įȚȐıIJĮıȘ ȤȦȡȓȗİIJĮȚ µİ țȩµµĮ Įʌȩ IJȚȢ ȣʌȩȜȠȚʌİȢ. ǻȚȐijȠȡİȢ įȘȜȫıİȚȢ IJȪʌȦȞ ʌȚȞȐțȦȞ, µʌȠȡȠȪµİ ȞĮ įȠȪµİ ıIJȠ İʌȩµİȞȠ ʌĮȡȐįİȚȖµĮ, ȩʌȠȣ İțIJȩȢ Įʌȩ µȠȞȠįȚȐıIJĮIJȠȣȢ ʌȓȞĮțİȢ, ȕȜȑʌȠȣµİ ʌȫȢ ȠȡȓȗȠȞIJĮȚ țĮȚ įȚįȚȐıIJĮIJȠȚ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-91-
ȆĮȡȐįİȚȖµĮ Type Vect=Array[1..5] Of Real; {ʌȓȞĮțĮȢ ʌȡĮȖµĮIJȚțȫȞ 5 șȑıİȦȞ} CharArray=Array[1..128] Of Char; {ʌȓȞĮțĮȢ ȤĮȡĮțIJȒȡȦȞ 128 șȑıİȦȞ} Array2=Array['A'..'D',3..7] Of Integer;{įȚįȚȐıIJĮIJȠȢ ʌȓȞĮțĮȢ ĮțİȡĮȓȦȞ 4x5 șȑıİȦȞ}
ȅȚ ȠȡȚĮțȑȢ IJȚµȑȢ İȞȩȢ ʌȓȞĮțĮ µʌȠȡİȓ ȞĮ İȓȞĮȚ IJȚµȑȢ ȕĮșµȦIJȠȪ IJȪʌȠȣ ȠȡȚıµȑȞİȢ Įʌȩ IJȠ ȤȡȒıIJȘ, ȩµȦȢ įİȞ İʌȚIJȡȑʌİIJĮȚ ȞĮ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ µİIJĮȕȜȘIJȑȢ Ȓ ȐȜȜİȢ ʌĮȡĮıIJȐıİȚȢ ȖȚĮ IJȠȞ țĮșȠȡȚıµȩ IJȠȣȢ, ʌĮȡȐ µȩȞȠ ıIJĮșİȡȑȢ. ǹțȡȚȕȫȢ İʌİȚįȒ ȠȚ įȚĮıIJȐıİȚȢ IJȠȣ ʌȓȞĮțĮ įİȞ ĮȜȜȐȗȠȣȞ țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, Ƞ ʌȓȞĮțĮȢ țĮȜİȓIJĮȚ ıIJĮIJȚțȒ įȠµȒ įİįȠµȑȞȦȞ. ǼʌȓıȘȢ IJȠ ȩȞȠµĮ µȚĮȢ µİIJĮȕȜȘIJȒȢ ĮʌĮȡȚșµȘIJȠȪ IJȪʌȠȣ Ȓ ȣʌȠʌİȡȚȠȤȒȢ (İțIJȩȢ Įʌȩ Integer) µʌȠȡİȓ ȞĮ ĮȞIJȚțĮIJĮıIJȒıİȚ IJȚȢ ȠȡȚĮțȑȢ IJȚµȑȢ İȞȩȢ ʌȓȞĮțĮ. ȉȩIJİ ȠȚ ȠȡȚĮțȑȢ IJȚµȑȢ IJȘȢ įȚȐıIJĮıȘȢ șĮ İȓȞĮȚ ȓıİȢ µİ IJȘȞ ʌȡȫIJȘ țĮȚ IJİȜİȣIJĮȓĮ IJȚµȒ IJȠȣ IJȪʌȠȣ IJȘȢ µİIJĮȕȜȘIJȒȢ. ȆĮȡȐįİȚȖµĮ Type Day=(Monday,Tuesday,Wednesday,Thurstday,Friday,Saturday, Sunday); WorkingDay=Array[Monday..Friday] Of Integer; Week=Array[Monday..Sunday] Of Integer;
O IJİȜİȣIJĮȓȠȢ ȠȡȚıµȩȢ İȓȞĮȚ ȚıȠįȪȞĮµȠȢ µİ IJȠȞ Week=Array[Days] Of Integer;
ǹʌȩ IJȘ ıIJȚȖµȒ ʌȠȣ ȠȡȚıșİȓ ȑȞĮȢ ȞȑȠȢ IJȪʌȠȢ µİIJĮȕȜȘIJȒȢ ıIJȠ ʌȡȩȖȡĮµµĮ, µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ IJȚȢ µİIJĮȕȜȘIJȑȢ ĮȣIJȠȪ IJȠȣ IJȪʌȠȣ ʌȠȣ șĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ. ȆĮȡȐįİȚȖµĮ Type Direction=(X,Y,Z); Vector=Array[Direction] Of Real; Var S,T: Direction; U,V: Vector;
Ǿ ȤȡȘıȚµȠʌȠȓȘıȘ IJȦȞ ʌȚȞȐțȦȞ ĮʌȜȠʌȠȚİȓ ĮijİȞȩȢ IJȚȢ įȘȜȫıİȚȢ țĮȚ ĮijİIJȑȡȠȣ IJȠ ȠʌȠȚȠįȒʌȠIJİ ıIJȠȚȤİȓȠ IJȠȣ ʌȓȞĮțĮ µʌȠȡİȓ ȞĮ İȞIJȠʌȚıșİȓ țĮȚ țĮIJȐ ıȣȞȑʌİȚĮ ȞĮ İʌİȟİȡȖĮıIJİȓ, ʌȠȜȪ İȪțȠȜĮ. ȅ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-92-
İȞIJȠʌȚıµȩȢ (Ȓ Ș ĮȞĮijȠȡȐ ıİ ȑȞĮ ıIJȠȚȤİȓȠ) IJȠȣ ʌȓȞĮțĮ, ȖȓȞİIJĮȚ µİ IJȘ ȤȡȒıȘ IJȠȣ įİȓțIJȘ (subscript). ȈȣȖțİțȡȚµȑȞĮ, ʌȡȠțİȚµȑȞȠȣ ȞĮ ʌȡȠıʌİȜİıșİȓ ȑȞĮ ıIJȠȚȤİȓȠ țȐʌȠȚȠȣ ʌȓȞĮțĮ, ȖȡȐijȠȣµİ IJȠ ȩȞȠµĮ IJȠȣ ʌȓȞĮțĮ ĮțȠȜȠȣșȠȪµİȞȠ Įʌȩ IJȠ įİȓțIJȘ µȑıĮ ıİ ȠȡșȠȖȫȞȚİȢ ĮȖțȪȜİȢ "[]". Ǿ IJȚµȒ IJȠȣ įİȓțIJȘ țĮșȠȡȓȗİȚ IJȠ ıIJȠȚȤİȓȠ IJȠȣ ʌȓȞĮțĮ ıIJȠ ȠʌȠȓȠ İʌȚșȣµȠȪµİ ȞĮ ĮȞĮijİȡșȠȪµİ. ǹȞ ȤȡȘıȚµȠʌȠȚȠȪµİ ȑȞĮȞ ʌȓȞĮțĮ µİ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȓĮ įȚĮıIJȐıİȚȢ (įȚįȚȐıIJĮIJȠ, IJȡȚıįȚȐıIJĮIJȠ ț.Ȝ.ʌ.), IJȩIJİ ȖȚĮ țȐșİ įȚȐıIJĮıȘ șĮ ʌȡȑʌİȚ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ țĮȚ ȑȞĮ įİȓțIJȘ. ȅȚ įİȓțIJİȢ ıIJȘȞ ʌİȡȓʌIJȦıȘ ĮȣIJȒ ʌȡȑʌİȚ ȞĮ ȤȦȡȓȗȠȞIJĮȚ µİIJĮȟȪ IJȦȞ µİ țȩµµĮIJĮ. ȂʌȠȡİȓ Ƞ įİȓțIJȘȢ ȞĮ İȓȞĮȚ µȚĮ ʌĮȡȐıIJĮıȘ Įȡțİȓ Ƞ IJȪʌȠȢ IJȘȢ ȞĮ İȓȞĮȚ ıȣµȕȚȕĮıIJȩȢ µİ IJȠȞ IJȪʌȠ IJȠȣ įİȓțIJȘ ʌȠȣ ȑȤİȚ įȘȜȦșİȓ. ȅȚ IJȚµȑȢ IJȠȣ įİȓțIJȘ ʌȡȑʌİȚ ȠʌȦıįȒʌȠIJİ ȞĮ țȣµĮȓȞȠȞIJĮȚ µȑıĮ ıIJĮ ȩȡȚĮ ʌȠȣ ȑȤȠȣȞ ȠȡȚıșİȓ Įʌȩ IJȚȢ ȠȡȚĮțȑȢ IJȚµȑȢ IJȘȢ įȚȐıIJĮıȘȢ IJȠȣ ʌȓȞĮțĮ įȚĮijȠȡİIJȚțȐ șĮ ȑȤȠȣµİ ıijȐȜµĮ țĮIJȐ IJȠ ȤȡȩȞȠ İțIJȑȜİıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ ȑȤȠȣµİ IJȚȢ įȘȜȫıİȚȢ: Type Numbers=Array[1..25] Of Integer; Var N: Numbers;
ȉȩIJİ ȖȚĮ ȞĮ ĮȞĮijİȡșȠȪµİ ıIJȠ i-ȠıIJȩ ıIJȠȚȤİȓȠ IJȠȣ ʌȓȞĮțĮ ȞĮ ȖȡȐȥȠȣµİ ȃ[ǿ]. ȂʌȠȡȠȪµİ ȞĮ ijĮȞIJĮȗȩµĮıIJİ, ʌ.Ȥ IJȠȞ ʌĮȡĮʌȐȞȦ ʌȓȞĮțĮ, µȠȞȠįȚȐıIJĮIJȠ ʌȓȞĮțĮ ʌȠȣ ĮʌȠIJİȜİȓIJĮȚ Įʌȩ µȓĮ ȖȡĮµµȒ ıIJȒȜİȢ (Ȓ Įʌȩ µȓĮ ıIJȒȜȘ țĮȚ 25 ȖȡĮµµȑȢ). ȉȠ ȈȤȒµĮ 10.1 ĮȣIJȒ IJȘ įȠµȒ ȖȚĮ IJȠȞ ʌȓȞĮțĮ ȃ.
ȃ Įȡțİȓ ıĮȞ ȑȞĮ țĮȚ 25 įİȓȤȞİȚ
... N[1]
N[2]
N[3]
N[25]
ȈȤȒµĮ 10.1 ǼʌȓıȘȢ ȐȜȜİȢ µȠȡijȑȢ ĮȞĮijȠȡȐȢ ıIJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ İȓȞĮȚ ȠȚ ʌĮȡĮțȐIJȦ: (Į) ȃ[ǿ+2]
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
(ȕ) ȃ[5*ǿ]
(Ȗ) ȃ[2*ǿ-4]
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-93-
ǹȞ ȣʌȠșȑıȠȣµİ ȩIJȚ ǿ:=3 IJȩIJİ Ș (Į) ĮȞĮijȑȡİIJĮȚ ıIJȠ 5q ıIJȠȚȤİȓȠ IJȠȣ ʌȓȞĮțĮ ȃ, Ș (ȕ) ıIJȠ 15q țĮȚ Ș (Ȗ) ıIJȠ 2q. ǼʌİȟİȡȖĮıȓĮ ȆȡȠȕȜȘµȐIJȦȞ µİ ȆȓȞĮțİȢ ȈȣȤȞȐ İʌȚșȣµȠȪµİ ȞĮ İʌİȟİȡȖĮıIJȠȪµİ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ İȞȩȢ ʌȓȞĮțĮ µİ ȑȞĮȞ ȠµȠȚȩµȠȡijȠ IJȡȩʌȠ. īȚĮ ʌĮȡȐįİȚȖµĮ, ȞĮ șȑıȠȣµİ ȩȜİȢ IJȚȢ IJȚµȑȢ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ ȓıİȢ µİ µȘįȑȞ Ȓ ȞĮ IJȣʌȫıȠȣµİ IJȘȞ IJȚµȒ țȐșİ ıIJȠȚȤİȓȠȣ IJȠȣ ʌȓȞĮțĮ. ȈIJȚȢ ʌİȡȚʌIJȫıİȚȢ ĮȣIJȑȢ ıȣȞȒșȦȢ İʌİȟİȡȖĮȗȩµĮıIJİ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ µİ IJȘ ıİȚȡȐ, ȟİțȚȞȫȞIJĮȢ µİ IJȘȞ ʌȡȫIJȘ IJȚµȒ IJȠȣ įİȓțIJȘ țĮȚ IJİȜİȚȫȞȠȞIJĮȢ µİ IJȘȞ IJİȜİȣIJĮȓĮ IJȚµȒ IJȠȣ, ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȘȞ İʌĮȞĮȜȘʌIJȚțȒ İȞIJȠȜȒ For țĮșȩıȠȞ Ƞ ĮȡȚșµȩȢ IJȦȞ İʌĮȞĮȜȒȥİȦȞ İȓȞĮȚ ȖȞȦıIJȩȢ İț IJȦȞ ʌȡȠIJȑȡȦȞ. ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ įȑȤİIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ IJĮ 10 ıIJȠȚȤİȓĮ İȞȩȢ µȠȞȠįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ ĮțİȡĮȓȦȞ țĮȚ ıIJȘ ıȣȞȑȤİȚĮ ݵijĮȞȓȗİȚ IJĮ ʌİȡȚİȤȩµİȞĮ IJȠȣ ʌȓȞĮțĮ ıİ µȓĮ ȖȡĮµµȒ IJȘȢ ȠșȩȞȘȢ. Program ArrayDemo1; Uses CRT; Const Imax=10; Type ArrayOfInteger=Array[1..Imax] Of Integer; Var A: ArrayOfInteger; I: Integer; Begin ClrScr; For I:=1 To Imax Do {įȚĮȕȐȗȠȣµİ IJȚµȑȢ ȖȚĮ IJĮ ıIJȠȚȤİȓĮ IJȠȣ} Begin {ʌȓȞĮțĮ} Write('ǻȫıİ ĮțȑȡĮȚȠ: '); Readln(A[i]) End; Writeln; Writeln; Writeln('ȉĮ ʌİȡȚİȤȩµİȞĮ IJȠȣ ʌȓȞĮțĮ İȓȞĮȚ'); For I:=1 To Imax Do Write(A[I],' ') {IJȣʌȫȞȠȣµİ IJĮ ıIJȠȚȤİȓĮ} {IJȠȣ ʌȓȞĮțĮ} End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-94-
ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ įȑȤİIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ IJĮ 10 ıIJȠȚȤİȓĮ İȞȩȢ įȚįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ µİ įȚĮıIJȐıİȚȢ 2x10 (įȪȠ ȖȡĮµµȑȢ țĮȚ įȑțĮ ıIJȒȜİȢ) țĮȚ ıIJȘ ıȣȞȑȤİȚĮ ݵijĮȞȓȗİȚ IJȠȞ ʌȓȞĮțĮ ıIJȘȞ ȠșȩȞȘ. Program ArrayDemo2; Uses CRT; Const Lmax=2; Cmax=5; Var A: Array[1..Lmax,1..Cmax] ȅf Integer; {ʌȓȞĮțĮȢ 2x5} Line,Column:Integer; Begin Clrscr; {ȟİțȚȞȐµİ įȚĮȕȐȗȠȞIJĮȢ IJȠȞ ʌȓȞĮțĮ țĮIJȐ ȖȡĮµµȑȢ, įȘȜĮįȒ ʌȡȫIJĮ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ IJȘȢ ʌȡȫIJȘȢ ȖȡĮµµȒȢ țĮȚ µİIJȐ IJȘȢ įİȪIJİȡȘȢ} For Line:=1 to Lmax do For Column:=1 To Cmax Do Begin Write('ǻȫıİ IJȠ ıIJȠȚȤİȓȠ ǹ[',Line,',',Column,']IJȠȣ ʌȓȞĮțĮ'); Readln(A[Line,Column]) End; {ıIJȘ ıȣȞȑȤİȚĮ IJȣʌȫȞȠȣµİ IJȠȞ ʌȓȞĮțĮ țĮIJȐ ȖȡĮµµȑȢ} For Line:=1 To Lmax Do Begin For Column:=1 to Cmax Do Write(A[Line,Column]:5); Writeln {µȩȜȚȢ IJȣʌȫıȠȣµİ µȚĮ ȖȡĮµµȒ ĮȜȜȐȗȠȣµİ ıİȚȡȐ} End End.
ǹȞ IJȡȑȟȠȣµİ IJȠ ʌȡȩȖȡĮµµĮ țĮȚ įȫıȠȣµİ ȦȢ įİįȠµȑȞĮ ʌ.Ȥ IJȠȣȢ ĮȡȚșµȠȪȢ 5,6,90,1,67,8,33,4,134,0 șĮ ʌȐȡȠȣµİ ıIJȘȞ ȠșȩȞȘ IJȠ ĮʌȠIJȑȜİıµĮ (ʌȡȠıȑȟIJİ IJĮ țİȞȐ ʌȠȣ ʌȡȠȘȖȠȪȞIJĮȚ țȐșİ ĮȡȚșµȠȪ): ƑƑƑ5ƑƑƑƑ6ƑƑƑ90ƑƑƑƑ1ƑƑƑ67 ƑƑƑƑ8ƑƑƑ33ƑƑƑƑ4ƑƑ134ƑƑƑƑ0 ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȑȞĮȢ IJİIJȡĮȖȦȞȚțȩȢ ʌȓȞĮțĮȢ A=Array[1..Size,1..Size] Of Integer
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-95-
ȩʌȠȣ Size=10. O µȠȞĮįȚĮȓȠȢ ʌȓȞĮțĮȢ ȠȡȓȗİIJĮȚ Įʌȩ IJĮ µĮșȘµĮIJȚțȐ ȦȢ İȟȒȢ: A[S,T]=1 ĮȞ S=T A[S,T]=0 ĮȞ SzT ȂʌȠȡȠȪµİ ȞĮ țȐȞȠȣµİ IJȠȞ ǹ µȠȞĮįȚĮȓȠ ʌȓȞĮțĮ µİ įȪȠ IJȡȩʌȠȣȢ, ȩʌȦȢ ijĮȓȞİIJĮȚ ʌĮȡĮțȐIJȦ. ȆȡȫIJȠȢ IJȡȩʌȠȢ:
For S:=1 To Size Do For T:=1 To Size Do If S=T Then A[S,T]:=1 Else A[S,T]:=0;
ǻİȪIJİȡȠȢ IJȡȩʌȠȢ:
For S:=1 To Size Do For T:=1 To Size Do A[S,T]:=0; For S:=1 To Size Do A[S,S]:=1;
ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ İȓȞĮȚ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȕȡȓıțİȚ IJȠ µȑȖȚıIJȠ ıIJȠȚȤİȓȠ İȞȩȢ įȚįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ İȞIJȠʌȓȗȠȞIJĮȢ țĮȚ IJȘ șȑıȘ IJȠȣ µȑıĮ ı'ĮȣIJȩȞ. O ʌȓȞĮțĮȢ įȓȞİIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ: Program Maximum; Uses CRT; Const L=4; C=5; Var A : Array[1..L,1..C] Of Integer; Max,Line,Column,LineMax,ColumnMax : Integer; Begin Clrscr; For Line:=1 To L Do For Column:=1 To C Do Begin Write('ǻȫıİ IJȠ ıIJȠȚȤİȓȠ [',Line,',',Column,'] : '); Read(A[Line,Column]){ǻȚĮȕȐȗȠȣµİ IJȚȢ IJȚµȑȢ IJȦȞ ıIJȠȚȤİȓȦȞ} End; {IJȠȣ ʌȓȞĮțĮ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ } Max:=A[1,1]; {ȊʌȠșȑIJȠȣµİ ȩIJȚ IJȠ µȑȖȚıIJȠ ıIJȠȚȤİȓȠ} For Line:=1 To L Do {İȓȞĮȚ IJȠ 1,1. ȂİIJȐ ıĮȡȫȞȠȣµİ ȩȜĮ } For Column:=1 To C Do {IJĮ ıIJȠȚȤİȓĮ IJȠȣ țĮȚ ȕȡȓıțȠȣµİ IJȠ } If Max<A[Line,Column]{ʌȡĮȖµĮIJȚțȐ µȑȖȚıIJȠ ıIJȠȚȤİȓȠ } Then Begin Max:=A[Line,Column]; LineMax:=Line; ColumnMax:=Column End; Writeln;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-96-
Write('H µİȖĮȜȪIJİȡȘ IJȚµȒ İȓȞĮȚ ',Max,' țĮȚ ȕȡȓıțİIJĮȚ ıIJȘ '); Write('șȑıȘ ',LineMax,',',ColumnMax); End.
ȆĮȡȐįİȚȖµĮ ǹȢ ȣʌȠșȑıȠȣµİ ȩIJȚ ȑȤȠȣµİ ʌȐȜȚ IJȠȞ ʌȓȞĮțĮ IJȠȣ ʌȡȠȘȖȠȪµİȞȠȣ ʌĮȡĮįİȓȖµĮIJȠȢ țĮȚ șȑȜȠȣµİ ȞĮ įȠȪµİ ĮȞ ȣʌȐȡȤİȚ ȑȞĮ įȠıµȑȞȠ ıIJȠȚȤİȓȠ µȑıĮ ı'ĮȣIJȩȞ. ȅ ĮȜȖȩȡȚșµȠȢ ĮȞĮȗȒIJȘıȘȢ İȓȞĮȚ Ƞ İȟȒȢ: ȟİțȚȞȐµİ Įʌȩ IJȠ ıIJȠȚȤİȓȠ [1,1] IJȠȣ ʌȓȞĮțĮ țĮȚ ȩıȠ įİȞ ȑȤȠȣµİ ȕȡİȚ IJȠ ıIJȠȚȤİȓȠ țĮȚ įİȞ ȑȤİȚ IJİȜİȚȫıİȚ Ƞ ʌȓȞĮțĮȢ, įȚĮIJȡȑȤȠȣµİ ȩȜİȢ IJȚȢ șȑıİȚȢ IJȠȣ İȟİIJȐȗȠȞIJĮȢ țȐșİ ıIJȠȚȤİȓȠ IJȠȣ. Program Whereis; Uses CRT; Const L=4; C=5; Var A : Array[1..L,1..C] Of Integer; X,Line,Column : Integer; Found: Boolean; Begin Clrscr; For Line:=1 To L Do For Column:=1 To C Do Begin Write('ǻȫıİ IJȠ ıIJȠȚȤİȓȠ [',Line,',',Column,'] : '); Read(A[Line,Column]) End; Write('ǻȫıİ IJȠȞ ĮțȑȡĮȚȠ ʌȠȣ șȑȜİȚȢ ȞĮ ȥȐȟȦ'); Readln(X); Found:=False; Line:=1; While (NOT Found) AND (Line<L) Do Begin Column:=1; While (Column<C) AND (A[Line,Column])<>X Do Column:=Column+1; If A[Line,Column]=X Then Found:=True Else Line:=Line+1 End; If Found Then Writeln('O ĮȡȚșµȩȢ ',ȋ,' ȣʌȐȡȤİȚ ıIJȘ ',Line, ' ȖȡĮµµȒ țĮȚ ',Column,' ıIJȒȜȘ') Else Writeln('ȅ ĮȡȚșµȩȢ ',ȋ,' įİȞ ȣʌȐȡȤİȚ ıIJȠȞ ʌȓȞĮțĮ') End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-97-
10.2 ǼīīȇǹĭǼȈ ǼȓįĮµİ ıIJȘȞ ʌȡȠȘȖȠȪµİȞȘ ʌĮȡȐȖȡĮijȠ ȩIJȚ ȠȚ ʌȓȞĮțİȢ µĮȢ įȓȞȠȣȞ ȑȞĮȞ IJȡȩʌȠ ʌȡȩıȕĮıȘȢ ıİ ʌȠȜȜȐ ıIJȠȚȤİȓĮ µİ ȑȞĮ ȩȞȠµĮ. ǹȜȜȐ, IJĮ ıIJȠȚȤİȓĮ ĮȣIJȐ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ȩȜĮ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ. ȈȣȤȞȐ ȩµȦȢ, șȑȜȠȣµİ ȞĮ ĮʌȠșȘțİȪȠȣµİ țĮȚ ȞĮ İʌİȟİȡ-ȖĮȗȩµĮıIJİ ıIJȠȚȤİȓĮ įȚĮijȠȡİIJȚțȠȪ IJȪʌȠȣ ʌȠȣ, ȩµȦȢ ĮȞĮijȑȡȠȞIJĮȚ ıIJȠ ȓįȚȠ ĮȞIJȚțİȓµİȞȠ. īȚĮ ʌĮȡȐįİȚȖµĮ ȑȞĮ ʌȡȩȖȡĮµµĮ µȚıșȠįȠıȓĮȢ șĮ ʌȡȑʌİȚ ȞĮ ȤȡȘıȚµȠʌȠȚİȓ ıIJȠȚȤİȓĮ ȩʌȦȢ: ǼʌȫȞȣµȠ ȅȞȠµĮ ǾȜȚțȓĮ ǺĮșµȩȢ ȋȡȩȞȠȢ ʌȡȩıȜȘȥȘȢ ȅȚțȠȖİȞİȚĮțȒ țĮIJȐıIJĮıȘ ǹȡȚșµȩȢ ʌĮȚįȚȫȞ ț.Ȝ.ʌ. ǹȣIJȐ, İȞȫ ȩȜĮ ĮȞĮijȑȡȠȞIJĮȚ ıİ ȑȞĮ µȚıșȦIJȩ, įİȞ İȓȞĮȚ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ ȫıIJİ ȞĮ µʌȠȡȠȪȞ ȞĮ µʌȠȪȞ ı'ȑȞĮȞ ʌȓȞĮțĮ țĮȚ ȞĮ IJĮ İʌİȟİȡȖĮıIJȠȪµİ µİ ȑȞĮȞ İȞȚĮȓȠ IJȡȩʌȠ. Ȉİ IJȑIJȠȚİȢ ʌİȡȚʌIJȫıİȚȢ ʌȠȣ șȑȜȠȣµİ ȞĮ ȠµĮįȠʌȠȚȒıȠȣµİ țĮȚ ȞĮ ĮʌȠșȘțİȪıȠȣµİ įİįȠµȑȞĮ įȚĮijȠȡİIJȚțȫȞ IJȪʌȦȞ, ȑIJıȚ ȫıIJİ ȞĮ µʌȠȡȠȪµİ ȞĮ IJĮ ȤİȚȡȚȗȩµĮıIJİ ıĮȞ ȞĮ ȒIJĮȞ ȑȞĮ įİįȠµȑȞȠ, ʌȡȑʌİȚ ȞĮ ȤȡȘıȚµȠʌȠȚȒıȠȣµİ ȑȞĮȞ țĮȚȞȠȪȡȖȚȠ IJȪʌȠ įİįȠµȑȞȦȞ ʌȠȣ ȜȑȖİIJĮȚ İȖȖȡĮijȒ. ǻȒȜȦıȘ ǼȖȖȡĮijȒȢ ȅȚ İȖȖȡĮijȑȢ, ȩʌȦȢ İȓįĮµİ ʌĮȡĮʌȐȞȦ, ȠµĮįȠʌȠȚȠȪȞ įȚȐijȠȡĮ įİįȠµȑȞĮ ʌȠȣ ıIJȠ İȟȒȢ șĮ IJĮ Ȝȑµİ ʌİįȓĮ (fields). ȉĮ ʌİįȓĮ µȚĮȢ İȖȖȡĮijȒȢ įİȞ İȓȞĮȚ ĮʌĮȡĮȓIJȘIJȠ ȞĮ İȓȞĮȚ ĮʌȜȫȞ IJȪʌȦȞ įİįȠµȑȞȦȞ. ȂʌȠȡİȓ ȞĮ İȓȞĮȚ ȐȜȜİȢ įȠµȑȢ įİįȠµȑȞȦȞ. Ǿ İȖȖȡĮijȒ, ȩʌȦȢ ȩȜİȢ ȠȚ įȠµȘµȑȞİȢ µİIJĮȕȜȘIJȑȢ, įȘµȚȠȣȡȖİȓIJĮȚ µİ ȑȞĮ ıȣıIJȘµĮIJȚțȩ IJȡȩʌȠ: ʌȡȫIJĮ ȠȡȓȗİIJĮȚ ȑȞĮȢ įȠµȘµȑȞȠȢ IJȪʌȠȢ țĮȚ ıIJȘ ıȣȞȑȤİȚĮ įȘȜȫȞİIJĮȚ µȓĮ µİIJĮȕȜȘIJȒ ĮȣIJȠȪ IJȠȣ IJȪʌȠȣ. ȉȠ ıȫµĮ µȚĮȢ İȖȖȡĮijȒȢ ĮʌȠIJİȜİȓ Ș ȜȓıIJĮ IJȦȞ ʌİįȓȦȞ IJȘȢ, Ș ȠʌȠȓĮ ȕȡȓıțİIJĮȚ µİIJĮȟȪ įȪȠ įİıµİȣµȑȞȦȞ ȜȑȟİȦȞ. Ǿ ȖİȞȚțȒ µȠȡijȒ įȒȜȦıȘȢ µȚĮȢ İȖȖȡĮijȒȢ İȓȞĮȚ Ș ĮțȩȜȠȣșȘ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-98-
Type ĮȞĮȖȞȦȡȚıIJȚțȩ_İȖȖȡĮijȒȢ = Record; ʌİįȓȠ1 : IJȪʌȠȢ1; ʌİįȓȠ2 : IJȪʌȠȢ2; .. .. ʌİįȓȠn : IJȪʌȠȢn End; ȩʌȠȣ ĮȞĮȖȞȦȡȚıIJȚțȩ_İȖȖȡĮijȒȢ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ IJȘȢ İȖȖȡĮijȒȢ, Record İȓȞĮȚ µȓĮ įİıµİȣµȑȞȘ ȜȑȟȘ, ʌİįȓȠi İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ i-ȠıIJȠȪ ʌİįȓȠȣ țĮȚ IJȪʌȠȢi Ƞ ĮȞIJȓıIJȠȚȤȠȢ IJȪʌȠȢ IJȠȣ. ȅ IJȪʌȠȢ İȞȩȢ ʌİįȓȠȣ µȚĮȢ İȖȖȡĮijȒȢ, µʌȠȡİȓ ȞĮ İȓȞĮȚ ȠʌȠȚȠıįȒʌȠIJİ Įʌȩ IJȠȣȢ ȕĮıȚțȠȪȢ IJȪʌȠȣȢ įİįȠµȑȞȦȞ, Ȓ ȠȡȚıµȑȞȠȢ Įʌȩ IJȠ ȤȡȒıIJȘ IJȪʌȠȢ įİįȠµȑȞȦȞ, ıȣµʌİȡȚȜĮµȕĮȞȠ-µȑȞȠȣ İȞȩȢ ȐȜȜȠȣ įȠµȘµȑȞȠȣ IJȪʌȠȣ ȩʌȦȢ İȓȞĮȚ Ƞ ʌȓȞĮțĮȢ Ȓ ĮțȩµĮ µȚĮ İȖȖȡĮijȒ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ Ƞ IJȪʌȠȢ İȞȩȢ ʌİįȓȠȣ İȓȞĮȚ ȠȡȚıµȑȞȠȢ Įʌȩ IJȠ ȤȡȒıIJȘ, IJȩIJİ ʌȡȑʌİȚ ȞĮ ȑȤİȚ ȠȡȚıșİȓ ʌȡȚȞ Įʌȩ IJȠȞ ȠȡȚıµȩ IJȘȢ İȖȖȡĮijȒȢ Ȓ ȞĮ İȓȞĮȚ µȑȡȠȢ IJȘȢ ʌİȡȚȖȡĮijȒȢ IJȘȢ.
ȆĮȡȐįİȚȖµĮ 1) ȃĮ įȘµȚȠȣȡȖȘșİȓ µȓĮ İȖȖȡĮijȒ İȞȩȢ µĮșȘIJȒ ʌȠȣ ȞĮ ʌİȡȚȑȤİȚ IJȚȢ İȟȒȢ ʌȜȘȡȠijȠȡȓİȢ: 1. ȅȞȠµĮIJİʌȫȞȣµȠ 2. ǾµİȡȠµȘȞȓĮ ȖȑȞȞȘıȘȢ ȈIJȘȞ İȖȖȡĮijȒ ʌȠȣ șĮ įȘµȚȠȣȡȖȒıȠȣµİ șĮ ʌȡȑʌİȚ ȞĮ ȣʌȐȡȤȠȣȞ IJĮ İȟȒȢ ʌİįȓĮ: 1. 2. 3. 4.
ȅȞȠµĮIJİʌȫȞȣµȠ ǾµȑȡĮ ȂȒȞĮȢ ǼIJȠȢ
ǼIJıȚ șĮ ȑȤȠȣµİ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-99-
Type Name=String[50]; Month=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); Student=Record Onoma: Name; Hmera: 1..31; Mhnas: Month; Etos : 1940..1980 End;
2) ȃĮ įȘµȚȠȣȡȖȘșİȓ µȚĮ İȖȖȡĮijȒ ʌȠȣ ȞĮ ʌİȡȚȑȤİȚ IJȚȢ ʌĮȡĮțȐIJȦ ʌȜȘȡȠijȠȡȓİȢ ȖȚĮ µȚĮ ĮİȡȠʌȠȡȚțȒ ʌIJȒıȘ: 1. 2. 3. 4. 5. 6. 7.
ǹȡȚșµȩ ʌIJȒıȘȢ (ĮțȑȡĮȚȠȢ) ȋȡȩȞȠ ĮȞĮȤȫȡȘıȘȢ (ʌȡĮȖµĮIJȚțȩȢ) ȉȑȡµȚȞĮȜ (ȤĮȡĮțIJȒȡĮȢ) ȉȚµȒ İȚıȚIJȘȡȓȠȣ (ʌȡĮȖµĮIJȚțȩȢ) ǹȞĮȤȫȡȘıȘ ıIJȘȞ țĮȞȠȞȚțȒ ȫȡĮ (ȜȠȖȚțȒ) ǹțȣȡȫșȘțİ (ȜȠȖȚțȒ) ȆȠȣȜȒșȘțĮȞ ȩȜĮ IJĮ İȚıȚIJȒȡȚĮ (ȜȠȖȚțȒ)
Ǿ İȖȖȡĮijȒ İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ: Type Flight=Record FlightNumber : DepartureTime : Terminal : TicketPrice : DepNormalTime : Cancel : SellAllTickets: End;
Integer; Real; Char; Real; Boolean; Boolean; Boolean
ǹʌȩ IJȘ ıIJȚȖµȒ ʌȠȣ ȠȡȚıșİȓ µȓĮ İȖȖȡĮijȒ µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ µİIJĮȕȜȘIJȑȢ ĮȣIJȠȪ IJȠȣ IJȪʌȠȣ. ǼIJıȚ ĮȞĮijİȡȩµİȞȠȚ ıIJȠ ʌȡȠȘȖȠȪµİȞȠ ʌĮȡȐįİȚȖµĮ ȑȤȠȣµİ ȩIJȚ µİIJȐ IJȠȞ ȠȡȚıµȩ IJȘȢ İȖȖȡĮijȒȢ Student µʌȠȡȠȪµİ ȞĮ įȘȜȫıȠȣµİ µİIJĮȕȜȘIJȑȢ IJȘȢ ȓįȚĮȢ įȠµȒȢ, ʌ.Ȥ. Var Nikolaou, Pappas, Marras: Student;
İȞȫ ȖȚĮ IJȘȞ İȖȖȡĮijȒ Flight µʌȠȡȠȪµİ ȞĮ ȑȤȠȣµİ: Var Patra, Ioannina, Rodos: Flight;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-100-
ǼʌİȟİȡȖĮıȓĮ İȖȖȡĮijȫȞ īȚĮ IJȘȞ İʌİȟİȡȖĮıȓĮ IJȦȞ IJȚµȫȞ ʌȠȣ ʌİȡȚȑȤȠȞIJĮȚ ıIJĮ ʌİįȓĮ µȚĮȢ İȖȖȡĮijȒȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ țȣȡȓȦȢ įȪȠ µȑșȠįȠȚ. ǼIJıȚ ȖȚĮ ȞĮ ĮȞĮijİȡșȠȪµİ ıİ ȑȞĮ ıȣȖțİțȡȚµȑȞȠ ʌİįȓȠ µȚĮȢ İȖȖȡĮijȒȢ ȖȡȐijȠȣµİ IJȠ ȩȞȠµĮ IJȘȢ İȖȖȡĮijȒȢ, µİIJȐ µȓĮ IJİȜİȓĮ "." țĮȚ ıIJȘ ıȣȞȑȤİȚĮ IJȠ ȩȞȠµĮ IJȠȣ ʌİįȓȠȣ. ȆĮȡȐįİȚȖµĮ Nikolaou.Onoma:='ǹșĮȞȐıȚȠȢ ȃȚțȠȜȐȠȣ'; Pappas.Etos:=1975; Rodos.FlightNumber:=20;
ǼȞĮȢ ȐȜȜȠȢ IJȡȩʌȠȢ İȓȞĮȚ ȞĮ ȖȡȐȥȠȣµİ:
ȖȚĮ
IJȘȞ
İȓıȠįȠ
İȟȦIJİȡȚțȫȞ
įİįȠµȑȞȦȞ,
For I:=1 To 50 Do Read(Nikolaou.Onoma[I]);
ǺȜȑʌȠȣµİ įȘȜĮįȒ ȩIJȚ IJĮ ʌİįȓĮ µȚĮȢ İʌİȟİȡȖĮıșȠȪȞ ȩʌȦȢ ȩȜİȢ ȠȚ µİIJĮȕȜȘIJȑȢ.
İȖȖȡĮijȒȢ
µʌȠȡȠȪȞ
ȞĮ
ȅµȦȢ Ƞ ʌĮȡĮʌȐȞȦ IJȡȩʌȠȢ ĮȞĮijȠȡȐȢ ıİ ȑȞĮ ʌİįȓȠ µȚĮȢ İȖȖȡĮijȒȢ İȓȞĮȚ țȐʌȦȢ ȐȕȠȜȠȢ, ȚįȚĮȓIJİȡĮ ȩIJĮȞ șȑȜȠȣµİ ȞĮ İʌİȟİȡȖĮıșȠȪµİ ȩȜĮ IJĮ ʌİįȓĮ µȚĮȢ ıȣȖțİțȡȚµȑȞȘȢ İȖȖȡĮijȒȢ. Ǿ Pascal µĮȢ ʌĮȡȑȤİȚ IJȘ įȣȞĮIJȩIJȘIJĮ ıȪȞIJȠµȘȢ ĮȞĮijȠȡȐȢ ıİ ȑȞĮ ʌİįȓȠ µİ IJȘ ȤȡȒıȘ IJȘȢ İȞIJȠȜȒȢ With, Ș ȠʌȠȓĮ ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: With İȖȖȡĮijȒ Do İȞIJȠȜȒ; ȩʌȠȣ With İȓȞĮȚ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ, İȖȖȡĮijȒ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȘȢ İȖȖȡĮijȒȢ țĮȚ İȞIJȠȜȒ µʌȠȡİȓ ȞĮ İȓȞĮȚ µȓĮ ĮʌȜȒ Ȓ ıȪȞșİIJȘ İȞIJȠȜȒ. ȈIJȘȞ İȞIJȠȜȒ With țȐșİ ʌİįȓȠ IJȘȢ İȖȖȡĮijȒȢ µʌȠȡİȓ ȞĮ ĮȞĮijİȡșİȓ ʌȡȠıįȚȠȡȓȗȠȞIJĮȢ µȩȞȠ IJȠ ȩȞȠµȐ IJȠȣ. ȆĮȡȐįİȚȖµĮ ǹȞIJȓ ȖȚĮ IJȚȢ ʌĮȡĮțȐIJȦ İȞIJȠȜȑȢ țĮIJĮȤȫȡȘıȘȢ: Nikolaou.Onoma:='ǹșĮȞȐıȚȠȢ ȃȚțȠȜȐȠȣ'; Nikolaou.Hmera:=5; Nikolaou.Mhnas:=Apr; Nikolaou.Etos :=1966;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-101-
ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȘȞ İȞIJȠȜȒ With șĮ ȑȤȠȣµİ, ĮʌȜȠȪıIJİȡĮ: With Nikolaou Do Begin Onoma:='ǹșĮȞȐıȚȠȢ ȃȚțȠȜȐȠȣ'; Hmera:=5; Mhnas:=Apr; Etos:=1966 End;
ȅʌȠȚȠıįȒʌȠIJİ Įʌȩ IJȠȣȢ ʌĮȡĮʌȐȞȦ IJȡȩʌȠȣȢ ĮȞĮijȠȡȐȢ İȞȩȢ ʌİįȓȠȣ µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ ȖȚĮ IJȘȞ İʌİȟİȡȖĮıȓĮ IJȠȣ (ĮȜȜĮȖȒ IJȦȞ IJȚµȫȞ IJȠȣ ʌİįȓȠȣ, țĮIJĮȤȫȡȘıȘ IJȚµȫȞ) Ȓ ȖȚĮ įȚȐȕĮıµĮ țĮȚ İțIJȪʌȦıȘ. ȆĮȡȐįİȚȖµĮ ȅȚ İȞIJȠȜȑȢ: Writeln(Patra.FlightNumber); Readln(Patra.TicketPrice);
İȓȞĮȚ ȓįȚİȢ µİ IJȚȢ With Patra Do Begin Writeln(FlightNumber); Readln(TicketPrice) End;
ȅʌȦȢ ĮȞĮijȑȡĮµİ țĮȚ ʌȡȠȘȖȠȣµȑȞȦȢ ȑȞĮ ʌİįȓȠ µȓĮȢ İȖȖȡĮijȒȢ µʌȠȡİȓ ȞĮ İȓȞĮȚ ȠʌȠȚĮįȒʌȠIJİ įȠµȘµȑȞȘ µİIJĮȕȜȘIJȒ, ĮțȩµȘ țĮȚ µȓĮ ȐȜȜȘ İȖȖȡĮijȒ. īȚĮ IJȘȞ ĮȞĮijȠȡȐ IJȦȞ ʌİįȓȦȞ µȚĮȢ "ijȦȜȚĮıµȑȞȘȢ" (ȑȞșİIJȘȢ) İȖȖȡĮijȒȢ ĮțȠȜȠȣșȠȪµİ ȑȞĮȞ Įʌȩ IJȠȣȢ įȪȠ IJȡȩʌȠȣȢ ʌȠȣ ʌİȡȚȖȡȐȥĮµİ ʌȡȠȘȖȠȣµȑȞȦȢ. ǹȣIJȩ µʌȠȡİȓ ȞĮ ȖȓȞİȚ țĮIJĮȞȠȘIJȩ µȑıĮ Įʌȩ IJȠ ʌĮȡȐįİȚȖµĮ ʌȠȣ ĮțȠȜȠȣșİȓ țĮȚ įİȓȤȞİȚ µȚĮ İȖȖȡĮijȒ µİ ıIJȠȚȤİȓĮ ȖȚĮ IJĮ µȑȜȘ µȚĮȢ ȜȑıȤȘȢ:
ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ ȑȤȠȣµİ IJȚȢ įȘȜȫıİȚȢ: Type Date=Record Day : 1..31; Month: 1..12; Year : 1900..2100 End;
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
PersonalData=Record Codic : FName : Surname : BirthDay: Address : Paid : End; Var Member: PersonalData;
Integer; String[20]; String[30]; Date; String[45]; Boolean
-102-
{țȦįȚțȩȢ µȑȜȠȣȢ} {ȩȞȠµĮ µȑȜȠȣȢ} {İʌȫȞȣµȠ µȑȜȠȣȢ} {ȘµİȡȠµ. İȖȖȡĮijȒȢ} {įȚİȪșȣȞıȘ} {ȑȤİȚ ʌȜȘȡȫıİȚ}
ȆȡȠțİȚµȑȞȠȣ ȞĮ ĮȞĮijİȡșȠȪµİ ıIJĮ ʌİįȓĮ IJȘȢ İȖȖȡĮijȒȢ Member ȖȡȐijȠȣµİ: Member.FName:='ȆĮȞĮȖȚȫIJȘȢ'; Member.BirthDay.Day:=8; Member.BirthDay.Year:=1993;
ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȘȞ İȞIJȠȜȒ With șĮ İȓȤĮµİ: With Member Do Begin FName:='ȆĮȞĮȖȚȫIJȘȢ'; BirthDay.Day:=8; BirthDay.Year:=1993 End;
Ȓ ȚıȠįȪȞĮµĮ: With Member Do Begin FName:='ȆĮȞĮȖȚȫIJȘȢ'; With BirthDay Do Begin Day:=8; Year:=1993 End End;
Ȓ ȚıȠįȪȞĮµĮ: With Member, BirthDay Do Begin FName:='ȆĮȞĮȖȚȫIJȘȢ'; Day:=8; Year:=1993 End;
ȆĮȡĮIJȘȡȠȪµİ įȘȜĮįȒ ȩIJȚ Ș İȞIJȠȜȒ With İȖȖȡĮijȒ1 Do With İȖȖȡĮijȒ2 Do İȓȞĮȚ ȚıȠįȪȞĮµȘ µİ IJȘȞ İȞIJȠȜȒ With İȖȖȡĮijȒ1, İȖȖȡĮijȒ2 Do
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-103-
ǼȓȞĮȚ İʌȓıȘȢ įȣȞĮIJȩ ȞĮ ĮȞIJȚȖȡĮijȠȪȞ ȩȜĮ IJĮ ʌİįȓĮ µȚĮȢ İȖȖȡĮijȒȢ Įʌȩ µȚĮ ȐȜȜȘ İȖȖȡĮijȒ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȘȞ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ: İȖȖȡĮijȒ1:=İȖȖȡĮijȒ2; ȩʌȠȣ İȖȖȡĮijȒ1 țĮȚ İȖȖȡĮijȒ2 İȓȞĮȚ IJĮ ȠȞȩµĮIJĮ IJȦȞ įȪȠ İȖȖȡĮijȫȞ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ. Ǿ İȞIJȠȜȒ ĮȣIJȒ ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȘȞ țĮIJĮȤȫȡȘıȘ ȩȜȦȞ IJȦȞ IJȚµȫȞ IJȦȞ ʌİįȓȦȞ IJȘȢ İȖȖȡĮijȒȢ2 ıIJĮ ĮȞIJȓıIJȠȚȤĮ IJȘȢ İȖȖȡĮijȒȢ1. ȉİȜİȚȫȞȠȞIJĮȢ, µȓĮ µȑșȠįȠȢ ĮʌȠșȒțİȣıȘȢ İȞȩȢ µİȖȐȜȠȣ ĮȡȚșµȠȪ İȖȖȡĮijȫȞ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ µİ ȤȡȒıȘ ʌȓȞĮțĮ. ǼIJıȚ µʌȠȡȠȪµİ ȞĮ ȠȡȓıȠȣµİ ȑȞĮȞ ʌȓȞĮțĮ IJȠȣ ȠʌȠȓȠȣ IJĮ ıIJȠȚȤİȓĮ ȞĮ İȓȞĮȚ İȖȖȡĮijȑȢ țĮȚ țȐșİ İȖȖȡĮijȒ șĮ µʌȠȡİȓ ȞĮ ʌȡȠıʌİȜĮıșİȓ µİ ĮȞĮijȠȡȐ ıIJȠ įİȓțIJȘ IJȠȣ ʌȓȞĮțĮ. ǹȣIJȒ Ș įȚĮįȚțĮıȓĮ ijĮȓȞİIJĮȚ ʌĮȡĮıIJĮIJȚțȐ Įʌȩ IJȠ ʌĮȡĮțȐIJȦ ʌĮȡȐįİȚȖµĮ. ȆĮȡȐįİȚȖµĮ Program ArrayOfRecord; Uses CRT; Const Imax=5; Type Person=Record Name: String[30]; {ȠȞȠµĮIJİʌȫȞȣµȠ} Tel : String[9] {IJȘȜȑijȦȞȠ} End; Var A: Array[1..Imax] Of Person; I: Integer; Begin Clrscr; For I:=1 To Imax Do {ȖݵȓȗȠȣµİ IJȠȞ ʌȓȞĮțĮ µİ IJĮ ıIJȠȚȤİȓĮ} Begin {Imax ĮIJȩµȦȞ} Clrscr; Writeln('ȆȇȅȈȍȆǿȀǹ ȈȉȅǿȋǼǿǹ'); Writeln; With A[I] Do Begin Write('ǼȆȍȃȊȂȅ-ȅȃȅȂǹ '); Readln(Name); Write('ȉǾȁǼĭȍȃȅ '); Readln(Tel) End End; Clrscr; {IJȣʌȫȞȠȣµİ ıIJȘȞ ȠșȩȞȘ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ} For I:=1 To Imax Do Writeln(A[I].Name,' ',A[I].Tel) End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-104-
10.3 ȈȊȃȅȁǹ ǹʌȩ IJĮ µĮșȘµĮIJȚțȐ ȖȞȦȡȓȗȠȣµİ ȩIJȚ ıȪȞȠȜȠ (set) İȓȞĮȚ µȚĮ ıȣȜȜȠȖȒ Įʌȩ ĮȞIJȚțİȓµİȞĮ. ȉĮ ĮȞIJȚțİȓµİȞĮ ĮȣIJȐ ȜȑȖȠȞIJĮȚ ıIJȠȚȤİȓĮ IJȠȣ ıȣȞȩȜȠȣ țĮȚ µʌȠȡİȓ ȞĮ ıȤİIJȓȗȠȞIJĮȚ µİ țȐʌȠȚĮ ȚįȚȩIJȘIJĮ Ȓ ȞĮ µȘȞ ȑȤȠȣȞ țĮµȓĮ ıȤȑıȘ µİIJĮȟȪ IJȠȣȢ. ǼµȐȢ İįȫ șĮ µĮȢ ĮʌĮıȤȠȜȒıȠȣȞ IJĮ ıȪȞȠȜĮ ʌȠȣ IJĮ ıIJȠȚȤİȓĮ IJȠȣȢ İȓȞĮȚ įİįȠµȑȞĮ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ. Ǿ Pascal İȓȞĮȚ Ș ʌȡȫIJȘ ȖȜȫııĮ ʌȡȠȖȡĮµµĮIJȚıµȠȪ ȖİȞȚțȫȞ İijĮȡµȠȖȫȞ ʌȠȣ ȣʌȠıIJȘȡȓȗİȚ IJȠȞ IJȪʌȠ IJȚµȫȞ IJȠȣ ıȣȞȩȜȠȣ. O ȞȑȠȢ ĮȣIJȩȢ IJȪʌȠȢ IJȚµȫȞ µĮȢ İʌȚIJȡȑʌİȚ ȞĮ ʌȡĮȖµĮIJȠʌȠȚȒıȠȣµİ IJȚȢ ȖȞȦıIJȑȢ ʌȡȐȟİȚȢ µİIJĮȟȪ ıȣȞȩȜȦȞ (ȑȞȦıȘ, IJȠµȒ, įȚĮijȠȡȐ). ǼʌȓıȘȢ µĮȢ įȓȞİȚ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ İȜȑȖȟȠȣµİ İȪțȠȜĮ ĮȞ ȑȞĮ ıȣȖțİțȡȚµȑȞȠ ıIJȠȚȤİȓȠ, İȓȞĮȚ ıIJȠȚȤİȓȠ İȞȩȢ ıȣȞȩȜȠȣ. ǻȒȜȦıȘ ȈȣȞȩȜȠȣ ȈIJĮ µĮșȘµĮIJȚțȐ ȑȞĮ ıȪȞȠȜȠ ʌ.Ȥ IJȦȞ ĮȡȚșµȫȞ 1,3,67,8 ıȣµȕȠȜȓȗİIJĮȚ ȖȡȐijȠȞIJĮȢ IJĮ ıIJȠȚȤİȓĮ IJȠȣ µȑıĮ ıİ ĮȖțȪȜİȢ, {1,3,67,8}. ȈIJȘȞ Pascal ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȠȚ IJİIJȡȐȖȦȞİȢ ĮȖțȪȜİȢ, ȑIJıȚ IJȠ ʌȡȠȘȖȠȪµİȞȠ ıȪȞȠȜȠ ȖȡȐijİIJĮȚ: [1,3,67,8]. Ǿ ȖİȞȚțȒ µȠȡijȒ įȒȜȦıȘȢ İȞȩȢ IJȪʌȠȣ ıȣȞȩȜȠȣ İȓȞĮȚ Ș İȟȒȢ: Type ĮȞĮȖȞȦȡȚıIJȚțȩ_ıȣȞȩȜȠȣ = Set Of IJȪʌȠȢ ıIJȠȚȤİȓȦȞ; ȩʌȠȣ ĮȞĮȖȞȦȡȚıIJȚțȩ_ıȣȞȩȜȠȣ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȠȣ IJȪʌȠȣ ıȪȞȠȜȠ, IJȪʌȠȢ ıIJȠȚȤİȓȦȞ İȓȞĮȚ Ƞ IJȪʌȠȢ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ ıȣȞȩȜȠȣ țĮȚ Set , Of İȓȞĮȚ įİıµİȣµȑȞİȢ ȜȑȟİȚȢ. ȂȓĮ µİIJĮȕȜȘIJȒ ʌȠȣ įȘȜȫȞİIJĮȚ ȩIJȚ İȓȞĮȚ IJȪʌȠȣ ıȪȞȠȜȠ İȓȞĮȚ ȑȞĮ ıȪȞȠȜȠ IJȠȣ ȠʌȠȓȠȣ IJĮ ıIJȠȚȤİȓĮ (µȑȜȘ) įȚĮȜȑȖȠȞIJĮȚ Įʌȩ IJȚȢ IJȚµȑȢ IJȠȣ IJȪʌȠȣ ıIJȠȚȤİȓȦȞ. Ǿ ȉ.ȇ ʌİȡȚȠȡȓȗİȚ IJȠ µȑȖȚıIJȠ ĮȡȚșµȩ IJȦȞ µİȜȫȞ İȞȩȢ ıȣȞȩȜȠȣ ıİ 156. ȍıIJȩıȠ ʌȠȜȪ ʌȚȠ ʌİȡȚȠȡȚıIJȚțȩ İȓȞĮȚ IJȠ ȖİȖȠȞȩȢ ȩIJȚ IJĮ ıȪȞȠȜĮ µʌȠȡȠȪȞ ȞĮ ĮʌĮȡIJȓȗȠȞIJĮȚ µȩȞȠ Įʌȩ µȘ įȠµȘµȑȞȠȣȢ ȕĮșµȦIJȠȪȢ IJȪʌȠȣȢ (ȩȤȚ Real), ȠȚ ȠʌȠȓȠȚ ȑȤȠȣȞ ıĮijİȓȢ ʌȡȠȘȖȠȪµİȞȠȣȢ țĮȚ İʌȩµİȞȠȣȢ ȩȡȠȣȢ. ǼIJıȚ įİȞ ȠȡȓȗȠȞIJĮȚ ıȪȞȠȜĮ İȖȖȡĮijȫȞ Ȓ ʌȚȞȐțȦȞ, ȦıIJȩıȠ IJĮ ıIJȠȚȤİȓĮ İȞȩȢ ʌȓȞĮțĮ µʌȠȡİȓ ȞĮ İȓȞĮȚ IJȪʌȠȣ ıȪȞȠȜȠ (ʌȓȞĮțĮȢ ıȣȞȩȜȦȞ) İʌȓıȘȢ IJĮ ʌİįȓĮ µȚĮȢ İȖȖȡĮijȒȢ µʌȠȡİȓ ȞĮ İȓȞĮȚ IJȪʌȠȣ ıȪȞȠȜȠ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-105-
ȆĮȡȐįİȚȖµĮ Type Digit=Set Of 0..10; Codic=Set Of Char; Color=(Red,Green,Blue); ColorSet=Set Of Color; Var Number: Digit; Colors: ColorSet; Grade: Codic;
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ µİIJĮȕȜȘIJȒȢ Number İȓȞĮȚ ȠȚ: [1,5,3],
µİȡȚțȑȢ
[6,0,10,7],
ʌȚșĮȞȑȢ [4],
IJȚµȑȢ
IJȘȢ
[]
ȩʌȠȣ "[]" ıȣµȕȠȜȓȗİȚ IJȠ țİȞȩ ıȪȞȠȜȠ. ȉȠ țİȞȩ ıȪȞȠȜȠ ʌİȡȚȑȤİIJĮȚ ıİ țȐșİ IJȪʌȠ ıȪȞȠȜȠ ȦȢ µȚĮ ʌȚșĮȞȒ IJȚµȒ, ĮȞİȟȐȡIJȘIJĮ Įʌȩ IJȠȞ IJȪʌȠ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ.
ȆȡȐȟİȚȢ ȂİIJĮȟȪ ȈȣȞȩȜȦȞ ȆȡȚȞ ĮȡȤȓıİȚ Ș İʌİȟİȡȖĮıȓĮ İȞȩȢ ıȣȞȩȜȠȣ ʌȡȑʌİȚ ʌȐȞIJĮ ȞĮ ȠȡȓȗȠȞIJĮȚ IJĮ ĮȡȤȚțȐ ıIJȠȚȤİȓĮ IJȠȣ, µİ İȞIJȠȜȑȢ țĮIJĮȤȫȡȘıȘȢ. Ǿ ȖİȞȚțȒ µȠȡijȒ µȚĮȢ İȞIJȠȜȒȢ țĮIJĮȤȫȡȘıȘȢ İȓȞĮȚ: µİIJĮȕȜȘIJȒ IJȪʌȠȣ ıȪȞȠȜȠ := ʌĮȡȐıIJĮıȘ ıȣȞȩȜȠȣ; ȩʌȠȣ µİIJĮȕȜȘIJȒ IJȪʌȠȣ ıȪȞȠȜȠ İȓȞĮȚ IJȠ ȩȞȠµĮ µȚĮȢ µİIJĮȕȜȘIJȒȢ ıȣȞȩȜȠȣ țĮȚ ʌĮȡȐıIJĮıȘ ıȣȞȩȜȠȣ İȓȞĮȚ İȓIJİ µȚĮ ıIJĮșİȡȐ IJȠȣ țĮIJȐȜȜȘȜȠȣ IJȪʌȠȣ ıȣȞȩȜȠȣ İȓIJİ µȚĮ ȐȜȜȘ µİIJĮȕȜȘIJȒ IJȪʌȠȣ ıȪȞȠȜȠ. ȂȚĮ ʌĮȡȐıIJĮıȘ ıȣȞȩȜȠȣ µʌȠȡİȓ İʌȓıȘȢ ȞĮ ȠȡȓȗİȚ IJȘȞ İʌİȟİȡȖĮıȓĮ įȪȠ Ș ʌİȡȚııȩIJİȡȦȞ ıȣȞȩȜȦȞ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȠȣȢ IJİȜİıIJȑȢ ʌȡȐȟİȦȞ µİIJĮȟȪ ıȣȞȩȜȦȞ ȩʌȦȢ șĮ įȠȪµİ ʌĮȡĮțȐIJȦ. Ȉİ µȚĮ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ ıȣȞȩȜȦȞ ȠȚ IJȪʌȠȚ IJȦȞ ıIJȠȚȤİȓȦȞ IJȘȢ µİIJĮȕȜȘIJȒȢ țĮȚ IJȘȢ ʌĮȡȐıIJĮıȘȢ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ıȣµȕȚȕĮıIJȠȓ țĮȚ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ IJȘȢ ʌĮȡȐıIJĮıȘȢ șĮ ʌȡȑʌİȚ ȞĮ ıȣµʌİȡȚȜĮµ-ȕȐȞȠȞIJĮȚ ıIJȠȞ IJȪʌȠ ıIJȠȚȤİȓȦȞ IJȘȢ µİIJĮȕȜȘIJȒȢ IJȪʌȠȣ ıȪȞȠȜȠ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-106-
ȆĮȡȐįİȚȖµĮ Type Day=(Monday,Tuesday,Wednesday,Thurstday,Friday,Saturday, Sunday); Days=Set Of Day; Var HolyDay,WorkingDay= Days; Begin HolyDay:=[Saturday,Sunday]; WorkingDay:=[Monday..Fridat];
ȊʌȐȡȤȠȣȞ IJȡİȚȢ ȕĮıȚțȑȢ ʌȡȐȟİȚȢ µİIJĮȟȪ ıȣȞȩȜȦȞ IJȠȣ ȓįȚȠȣ IJȪʌȠȣ: Ș ȑȞȦıȘ, Ș įȚĮijȠȡȐ țĮȚ Ș IJȠµȒ. Ǿ ȑȞȦıȘ įȪȠ ıȣȞȩȜȦȞ İȓȞĮȚ ȑȞĮ IJȡȓIJȠ ıȪȞȠȜȠ IJȠ ȠʌȠȓȠ ʌİȡȚȑȤİȚ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ IJȦȞ įȪȠ ıȣȞȩȜȦȞ, Ƞ IJİȜİıIJȒȢ IJȘȢ ȑȞȦıȘȢ İȓȞĮȚ IJȠ "+". Ǿ įȚĮijȠȡȐ įȪȠ ıȣȞȩȜȦȞ İȓȞĮȚ ȑȞĮ IJȡȓIJȠ ıȪȞȠȜȠ IJȠ ȠʌȠȓȠ ʌİȡȚȑȤİȚ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȡȫIJȠȣ ıȣȞȩȜȠȣ İțIJȩȢ Įʌȩ İțİȓȞĮ ʌȠȣ ʌİȡȚȑȤȠȞIJĮȚ țĮȚ ıIJȠ įİȪIJİȡȠ ıȪȞȠȜȠ, Ƞ IJİȜİıIJȒȢ IJȘȢ įȚĮijȠȡȐȢ İȓȞĮȚ IJȠ "-". ȉȑȜȠȢ Ș IJȠµȒ įȪȠ ıȣȞȩȜȦȞ İȓȞĮȚ ȑȞĮ IJȡȓIJȠ ıȪȞȠȜȠ IJȠ ȠʌȠȓȠ ʌİȡȚȑȤİȚ ȩȜĮ IJĮ ıIJȠȚȤİȓĮ ʌȠȣ ĮȞȒțȠȣȞ țĮȚ ıIJĮ įȪȠ ıȪȞȠȜĮ, Ƞ IJİȜİıIJȒȢ IJȘȢ IJȠµȒȢ İȓȞĮȚ IJȠ "*". ȅ ȆȓȞĮțĮȢ 10.1 įİȓȤȞİȚ ȩȜĮ IJĮ ʌĮȡĮʌȐȞȦ. ǹȞ ıİ µȚĮ ʌĮȡȐıIJĮıȘ ȣʌȐȡȤȠȣȞ ʌİȡȚııȩIJİȡȠȚ IJȠȣ İȞȩȢ IJİȜİıIJȑȢ ıȣȞȩȜȦȞ, IJȩIJİ ĮțȠȜȠȣșȠȪȞIJĮȚ ȠȚ ȖȞȦıIJȠȓ țĮȞȩȞİȢ ȚİȡĮȡȤȓĮȢ ȖȚĮ IJȠȣȢ IJİȜİıIJȑȢ +, -, *. ȉİȜİıIJȒȢ + *
ȈȘµĮıȓĮ DzȞȦıȘ ǻȚĮijȠȡȐ ȉȠµȒ
ȆȓȞĮțĮȢ 10.1 ȆĮȡȐįİȚȖµĮ ȆǹȇǹȈȉǹȈǾ [1..15]+[11..100] ['ǹ','Ǻ','C']+['B','C','D','E'] [1,2,3,5,8,9]-[8,9] [1..5]*[1,4,6] [1,2,3]*[1,4]+[3,4,5]
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
ȉǿȂǾ [1..100] ['A','B','C','D','E'] [1,2,3,5] [1,4] [1,3,4,5]
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-107-
ȉĮ ıȪȞȠȜĮ µʌȠȡȠȪȞ ȞĮ ıȣȖțȡȚșȠȪȞ µİIJĮȟȪ IJȠȣȢ µİ IJȘ ȤȡȒıȘ IJȦȞ IJİȜİıIJȫȞ ıȣıȤȑIJȚıȘȢ, ʌȠȣ ijĮȓȞȠȞIJĮȚ ıIJȠȞ ȆȓȞĮțĮ 10.2. ȆĮȡȐįİȚȖµĮ ȆǹȇǹȈȉǹȈǾ [1,4]=[4,1] [1,4]<>[7,8] [1,2,3,5]<=[3,9] []<[1,4,6] [1,2,3]<[1,4,3,2,5] 1 IN [1,4,6] 'D' IN['A','Z','L']
ȉǿȂǾ True True False True True True False
ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ ĮȞĮȗȘIJȐİȚ ıİ µȓĮ ʌȡȩIJĮıȘ ȩȜĮ IJĮ µȚțȡȐ ĮȖȖȜȚțȐ ȖȡȐµµĮIJĮ țĮȚ ȖȡȐijİȚ µȓĮ ȜȓıIJĮ Įʌȩ ȩıĮ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ıIJȘȞ ʌȡȩIJĮıȘ. Program FindLetters; Uses CRT; Type LowCharSet=Set Of 'a'..'z'; Var LowChar : LowCharSet; {İįȫ ĮʌȠșȘțİȪİIJĮȚ țȐșİ µȚțȡȩ ĮȖȖȜȚțȩ ȖȡȐµµĮ ʌȠȣ ʌȠȣ ȕȡȓıțİIJĮȚ ıIJȘȞ ʌȡȩIJĮıȘ} Sentence: String; {İįȫ ĮʌȠșȘțİȪİIJĮȚ Ș ʌȡȩIJĮıȘ ʌȠȣ įȚĮȕȐȗȠȣµİ} I : Integer; {µİIJȡȘIJȒȢ} Group : String; {İįȫ ĮʌȠșȘțİȪİIJĮȚ țȐșİ µȚțȡȩ ĮȖȖȜȚțȩ ȖȡȐµµĮ ʌȠȣ ȕȡȓıțİIJĮȚ ıIJȘȞ ʌȡȩIJĮıȘ țĮȚ įİȞ ȣʌȐȡȤİȚ ȒįȘ ĮʌȠșȘțİȣµȑȞȠ} Begin Clrscr; LowChar:=[]; {ĮʌȩįȠıȘ ĮȡȤȚțȒȢ IJȚµȒȢ} Group:=''; Writeln('ǻȫıİ µȓĮ ʌȡȩIJĮıȘ µİ IJȠ ʌȠȜȪ 255 ȤĮȡĮțIJȒȡİȢ'); Readln(Sentence); {įȚĮȕȐȗȠȣµİ IJȘȞ ʌȡȩIJĮıȘ} For I:=1 To Length(Sentence) Do {İȟİIJȐȗȠȣµİ ȑȞĮ ʌȡȠȢ ȑȞĮ ȩȜĮ IJĮ ȖȡȐµµĮIJĮ} Begin If Sentence[I] IN ['a'..'z'] Then {ĮȞ İȓȞĮȚ µȚțȡȩ ĮȖȖȜȚțȩ ȖȡȐµµĮ...} Begin {ĮȞ ȣʌȐȡȤİȚ ȒįȘ ıIJȠ ıȪȞȠȜȠ...} If Sentence[I] In LowChar Then Writeln(I:4,'. ȉȠ ',Sentence[I],' ȣʌȐȡȤİȚ ȒįȘ ıIJȠ ıȪȞȠȜȠ.') Else {ĮȞ įİȞ ȣʌȐȡȤİȚ ıIJȠ ıȪȞȠȜȠ} Begin LowChar:=LowChar+[Sentence[I]]; {ʌȡȩıșİıȑ IJȠ ıIJȠ ıȪȞȠȜȠ...} Group:=Group+Sentence[I]; {..țĮȚ ıIJȘȞ ȠµȐįĮ} Write(I:4,'. ȉȠ ',Sentence[I],' ʌȡȠıIJȓșİIJĮȚ ıIJȘȞ ȠµȐįĮ.'); Writeln(' ȆȜȒȡȘȢ ȠµȐįĮ ',Group) End End Else {ĮȞ įİȞ İȓȞĮȚ µȚțȡȩ ĮȖȖȜȚțȩ ȖȡȐµµĮ} Writeln(I:4,'. ȉȠ ',Sentence[I],' įİȞ İȓȞĮȚ µȚțȡȩ ĮȖȖȜȚțȩ ȖȡȐµµĮ.') End End.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
ȉİȜİıIJȒȢ = <> <= < >= > ǿȃ
ȈȘµĮıȓĮ ǿıȩIJȘIJĮ ǹȞȚıȩIJȘIJĮ ȊʌȠıȪȞȠȜȠ īȞȒıȚȠ ȣʌȠıȪȞȠȜȠ ȊʌİȡıȪȞȠȜȠ īȞȒıȚȠ ȣʌİȡıȪȞȠȜȠ ȂȑȜȠȢ (ĮȞȒțİȚ)
-108-
ȆĮȡȐįİȚȖµĮ ıȪȞȠȜȠ1=ıȪȞȠȜȠ2 ıȪȞȠȜȠ1<>ıȪȞȠȜȠ2 ıȪȞȠȜȠ1<=ıȪȞȠȜȠ2 ıȪȞȠȜȠ1<ıȪȞȠȜȠ2 ıȪȞȠȜȠ1>=ıȪȞȠȜȠ2 ıȪȞȠȜȠ1>ıȪȞȠȜȠ2 ıIJȠȚȤİȓȠ ǿȃ ıȪȞȠȜȠ
ȆȓȞĮțĮȢ 10.2
10.4 ǹȈȀǾȈǼǿȈ 1. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȑȤİIJĮȚ ȦȢ İȓıȠįȠ IJĮ ıIJȠȚȤİȓĮ İȞȩȢ įȚįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ ĮțİȡĮȓȦȞ 4x3 țĮȚ ȞĮ ݵijĮȞȓȗİȚ IJȠȞ ʌȓȞĮțĮ ıIJȘȞ ıIJȘȞ ȠșȩȞȘ. ǼʌȓıȘȢ ȞĮ µİIJȡȐİȚ țĮȚ ȞĮ ݵijĮȞȓȗİȚ ıIJȘȞ ȠșȩȞȘ IJȠȞ ĮȡȚșµȩ IJȦȞ șİIJȚțȫȞ, ĮȡȞȘIJȚțȫȞ țĮȚ µȘįİȞȚțȫȞ ıIJȠȚȤİȓȦȞ IJȠȣ ʌȓȞĮțĮ. 2. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȑȤİIJĮȚ ȦȢ İȓıȠįȠ IJĮ ıIJȠȚȤİȓĮ İȞȩȢ įȚįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ ʌȡĮȖµĮIJȚțȫȞ 4x3 țĮȚ ȞĮ ĮȞĮıIJȡȑijİȚ ĮȣIJȩȞ. ǹȞĮıIJȡȠijȒ ıȘµĮȓȞİȚ ȞĮ įȘµȚȠȣȡȖȒıȠȣµİ ȑȞĮȞ ȐȜȜȠȞ ʌȓȞĮțĮ ʌȠȣ șĮ ȑȤİȚ ȦȢ ȖȡĮµµȑȢ IJȚȢ ıIJȒȜİȢ țĮȚ ȦȢ ıIJȒȜİȢ IJȚȢ ȖȡĮµµȑȢ IJȠȣ ʌȡȫIJȠȣ. ȉȠ ʌȡȩȖȡĮµµĮ ȞĮ ݵijĮȞȓȗİȚ ıIJȘȞ ȠșȩȞȘ IJȩıȠ IJȠȞ ĮȡȤȚțȩ ʌȓȞĮțĮ ȩıȠ țĮȚ IJȠȞ ĮȞİıIJȡĮµµȑȞȠ. 3. ȃĮ ȖȡĮijİȓ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȑȤİIJĮȚ IJĮ 10 ıIJȠȚȤİȓĮ İȞȩȢ µȠȞȠįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ ĮțİȡĮȓȦȞ țĮȚ ȞĮ ȕȡȓıțİȚ țĮȚ ݵijĮȞȓȗİȚ ıIJȘȞ ȠșȩȞȘ IJȠ µİȖĮȜȪIJİȡȠ țĮȚ µȚțȡȩIJİȡȠ Įʌȩ ĮȣIJȐ. 4. ȃĮ ȖȡĮijİȓ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȑȤİIJĮȚ ȦȢ İȓıȠįȠ IJĮ ıIJȠȚȤİȓĮ İȞȩȢ IJİIJȡĮȖȦȞȚțȠȪ ʌȓȞĮțĮ ĮțİȡĮȓȦȞ 5x5 țĮȚ ȞĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ ݵijĮȞȓȗİȚ ıIJȘȞ ȠșȩȞȘ IJȠ ȐșȡȠȚıµĮ IJȦȞ ıIJȠȚȤİȓȦȞ țĮșݵȚȐȢ Įʌȩ IJȚȢ įȚĮȖȦȞȓȠȣȢ IJȠȣ. 5. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȑȤİIJĮȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ IJĮ ıIJȠȚȤİȓĮ ȖȚĮ įȪȠ µȠȞȠįȚȐıIJĮIJȠȣȢ ʌȓȞĮțİȢ ĮțİȡĮȓȦȞ 10 șȑıİȦȞ Ƞ țĮșȑȞĮȢ țĮȚ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȠ ȐșȡȠȚıµĮ ĮȣIJȫȞ IJȦȞ įȪȠ ʌȚȞȐțȦȞ. ǹșȡȠȚıµĮ įȪȠ µȠȞȠįȚȐıIJĮIJȦȞ ʌȚȞȐțȦȞ İȓȞĮȚ ȑȞĮȢ IJȡȓIJȠȢ ʌȓȞĮțĮȢ IJȠ țȐșİ ıIJȠȚȤİȓȠ IJȠȣ ȠʌȠȓȠȣ İȓȞĮȚ IJȠ ȐșȡȠȚıµĮ IJȦȞ ĮȞIJȓıIJȠȚȤȦȞ ıIJȠȚȤİȓȦȞ IJȦȞ įȪȠ ʌȚȞȐțȦȞ ʌȠȣ ʌȡȠıIJȓșİȞIJĮȚ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-109-
6. ȃĮ įȠșȠȪȞ ȠȚ IJȚµȑȢ ʌȠȣ șĮ ʌȐȡȠȣȞ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ ȇ, µİIJȐ IJȘȞ İțIJȑȜİıȘ IJȘȢ ʌĮȡĮțȐIJȦ ĮȞĮțȪțȜȦıȘȢ: Var P: Array[0..30] of Integer; I: Integer; Begin I:=0; P[0]:=0; While I<15 Do Begin P[30-I]:=P[0]-1; I:=I+1; P[I]:=P[31-I]+1 End End. 7. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ țĮșȠȡȓȗİȚ IJȘȞ IJȚµȒ IJȦȞ ıIJȠȚȤİȓȦȞ IJȠȣ įȚįȚȐıIJĮIJȠȣ ʌȓȞĮțĮ ǹ, ʌȠȣ įȘȜȫȞİIJĮȚ ȦȢ İȟȒȢ: ǹ: Array[1..20,1..20] Of Integer; ıȪµijȦȞĮ µİ IJȠȞ ʌĮȡĮțȐIJȦ țĮȞȩȞĮ: ǹ[I,J]:=1, ȩIJĮȞ IJȠ ȐșȡȠȚıµĮ I+J İȓȞĮȚ ȐȡIJȚȠ țĮȚ A[I,J]:=-1, ȩIJĮȞ IJȠ ȐșȡȠȚıµĮ I+J İȓȞĮȚ ʌİȡȚIJIJȩ. ȈIJȠ IJȑȜȠȢ IJȠ ʌȡȩȖȡĮµµĮ ʌȡȑʌİȚ ȞĮ IJȣʌȫȞİȚ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ ǹ. 8. ǻȓȞİIJĮȚ IJȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ: Program Test10; Const N=10; Var P: Array[1..N] Of Integer; X,I: Integer; Begin Write('ǻȍȈǼ ȋ= '); Readln(X); P[1]:=X; For I:=2 To N Do P[I]:=P[I-1]*X; For I:=1 To N Do Writeln(P[I]:8) End. ǻȫıIJİ IJȚȢ IJȚµȑȢ ʌȠȣ șĮ ʌȐȡȠȣȞ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ ȇ, µİIJȐ IJȘȞ İțIJȑȜİıȘ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. 9. ȅ įȚįȚȐıIJĮIJȠȢ ʌȓȞĮțĮȢ ǹ ȠȡȓȗİIJĮȚ ȦȢ İȟȒȢ: ǹ: Array[1..20,1..20] Of Integer; īȡȐȥIJİ ȑȞĮ IJµȒµĮ ʌȡȠȖȡȐµµĮIJȠȢ ʌȠȣ ȞĮ µȘįİȞȓȗİȚ IJĮ ıIJȠȚȤİȓĮ IJȠȣ ʌȓȞĮțĮ, İțIJȩȢ Įʌȩ ĮȣIJȐ ʌȠȣ ȕȡȓıțȠȞIJĮȚ ıIJȘ įȚĮȖȫȞȚȩ IJȠȣ țĮȚ ıIJȚȢ ȖİȚIJȠȞȚțȑȢ "įȚĮȖȦȞȓȠȣȢ" IJȠȣ. 10. ȂȓĮ İȖȖȡĮijȒ µİ ʌİįȓĮ: ǼIJȠȢ, ȂȒȞĮȢ, ǾµȑȡĮ ȤȡȘıȚµȠʌȠȚȘșİȓ ȖȚĮ IJȘȞ țĮIJĮȤȫȡȘıȘ ȘµİȡȠµȘȞȚȫȞ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
µʌȠȡİȓ īȡȐȥIJİ
ȞĮ ȑȞĮ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-110-
ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ ȤȡȘıȚµȠʌȠȚİȓ IJȑIJȠȚȠȣ İȓįȠȣȢ İȖȖȡĮijȑȢ țĮȚ ȞĮ țȐȞİȚ IJĮ İȟȒȢ: ȞĮ įȑȤİIJĮȚ IJȘ ıȘµİȡȚȞȒ ȘµİȡȠµȘȞȓĮ țĮȚ IJȘȞ ȘµİȡȠµȘȞȓĮ ȖȑȞȞȘıȘȢ țȐʌȠȚȠȣ ĮIJȩµȠȣ țĮȚ ȞĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ ݵijĮȞȓȗİȚ ıIJȘȞ ȠșȩȞȘ IJȘȞ ȘȜȚțȓĮ IJȠȣ. 11. ǼȞĮȢ ʌȓȞĮțĮȢ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȖȚĮ IJȘȞ ĮʌȠșȒțİȣıȘ ʌȜȘȡȠijȠȡȚȫȞ țȐʌȠȚȦȞ ĮIJȩµȦȞ. ȀȐșİ ıIJȠȚȤİȓȠ IJȠȣ ʌȓȞĮțĮ İȓȞĮȚ µȚĮ İȖȖȡĮijȒ IJĮ ʌİįȓĮ IJȘȢ ȠʌȠȓĮȢ ʌİȡȚȑȤȠȣȞ ʌȜȘȡȠijȠȡȓİȢ ıȤİIJȚțȐ µİ IJȠ ȪȥȠȢ, IJȠ ȕȐȡȠȢ, IJȠ ȤȡȫµĮ µĮȜȜȚȫȞ, IJȠ ȤȡȫµĮ µĮIJȚȫȞ țĮȚ IJȠ ijȪȜȠ IJȦȞ ĮIJȩµȦȞ. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ IJȠ ȠʌȠȓȠ șĮ įȚĮȕȐȗİȚ IJȑIJȠȚȠȣ İȓįȠȣȢ ʌȜȘȡȠijȠȡȓİȢ ȖȚĮ ʌ.Ȥ 5 ȐIJȠµĮ țĮȚ µİIJȐ șĮ ݵijĮȞȓȗİȚ ĮȣIJȑȢ ıIJȘȞ ȠșȩȞȘ. 12. ȃĮ ȖȡĮijİȓ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȚĮȕȐȗİȚ įȪȠ ʌȡȠIJȐıİȚȢ, țĮșݵȚȐ Įʌȩ IJȚȢ ȠʌȠȓİȢ IJİȜİȚȫȞİȚ µİ µȓĮ IJİȜİȓĮ "." țĮȚ ȞĮ IJȣʌȫȞİȚ ȑȞĮȞ țĮIJȐȜȠȖȠ µİ IJĮ ȖȡȐµµĮIJĮ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ ıIJȘȞ ʌȡȫIJȘ ĮȜȜȐ ȩȤȚ ıIJȘ įİȪIJİȡȘ ʌȡȩIJĮıȘ. (ȋȡȘıȚµȠʌȠȚİȓıIJİ ıȪȞȠȜĮ)
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-111-
11. ȈȊȃǹȇȉǾȈǼǿȈ - ǻǿǹǻǿȀǹȈǿǼȈ ȅIJĮȞ ȑȤȠȣµİ ȞĮ ȖȡȐȥȠȣµİ ȑȞĮ ʌȡȩȖȡĮµµĮ ȖȚĮ ȞĮ ȜȪıȠȣµİ țȐʌȠȚȠ ıȪȞșİIJȠ ʌȡȩȕȜȘµĮ, ȤȦȡȓȗȠȣµİ ıȣȞȒșȦȢ IJȠ ȩȜȠ ʌȡȩȕȜȘµĮ ıİ İʌȚµȑȡȠȣȢ ʌȡȠȕȜȒµĮIJĮ țĮȚ µİIJȐ ȖȡȐijȠȣµİ ĮȞİȟȐȡIJȘIJĮ IJµȒµĮIJĮ ʌȡȠȖȡĮµµȐIJȦȞ ȖȚĮ IJȠ țĮșȑȞĮ Įʌ'ĮȣIJȐ. ȉĮ ĮȞİȟȐȡIJȘIJĮ ĮȣIJȐ IJµȒµĮIJĮ ʌȡȠȖȡĮµµȐIJȦȞ ȜȑȖȠȞIJĮȚ ȣʌȠʌȡȠȖȡȐµµĮIJĮ (subprograms), ȩʌȦȢ ȑȤȠȣµİ įİȚ țĮȚ ıIJȘȞ § 2.2. ȉĮ ȣʌȠʌȡȠ-ȖȡȐµµĮIJĮ ĮȣIJȐ µʌȠȡȠȪµİ ȞĮ IJĮ șİȦȡȒıȠȣµİ ıĮȞ İȞIJȠȜȑȢ Ȓ ıȣȞĮȡIJȒıİȚȢ µȚĮȢ ȖȜȫııĮȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ, ʌȠȣ įȘµȚȠȣȡȖȠȪµİ ȖȚĮ ȞĮ ȜȪıȠȣµİ IJȠ ıȪȞșİIJȠ ʌȡȩȕȜȘµȐ µĮȢ. Ǿ Pascal, ȩʌȦȢ țĮȚ ȐȜȜİȢ ȖȜȫııİȢ ʌȡȠȖȡĮµµĮIJȚıµȠȪ, µĮȢ įȓȞİȚ IJȘ įȣȞĮIJȩIJȘIJĮ ȞĮ ȖȡȐȥȠȣµİ ıȤİIJȚțȐ µȚțȡȐ ȣʌȠʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȞĮ ʌȡĮȖµĮIJȠʌȠȚȠȪȞ µȚĮ ıȣȖțİțȡȚµȑȞȘ İȡȖĮıȓĮ. ǹțȠȜȠȪșȦȢ IJĮ ʌȡȠȖȡȐµµĮIJĮ ĮȣIJȐ µʌȠȡȠȪȞ ȞĮ ıȣȞįȣĮıIJȠȪȞ țĮIJȐȜȜȘȜĮ ȫıIJİ ȞĮ ĮʌȠIJİȜȑıȠȣȞ IJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. ǼȓȞĮȚ ʌȠȜȜȠȓ ȠȚ ȜȩȖȠȚ ȖȚĮ IJȠȣȢ ȠʌȠȓȠȣȢ șĮ ʌȡȑʌİȚ ȞĮ İȞșĮȡȡȪȞİIJĮȚ Ș įȘµȚȠȣȡȖȓĮ ȣʌȠʌȡȠȖȡĮµµȐIJȦȞ, µİȡȚțȠȓ Įʌȩ ĮȣIJȠȪȢ İȓȞĮȚ: 1) ȅIJĮȞ µȓĮ İȞȩIJȘIJĮ İȞIJȠȜȫȞ İʌĮȞĮȜĮµȕȐȞİIJĮȚ ʌȠȜȜȑȢ ijȠȡȑȢ µȑıĮ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. Ǿ İȞȩIJȘIJĮ ĮȣIJȒ șĮ µʌȠȡȠȪıİ ȞĮ İȓȞĮȚ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ țĮȚ ȩʌȠȣ ȤȡİȚȐȗİIJĮȚ Ș İțIJȑȜİıȒ IJȘȢ, ȞĮ ȖȓȞİIJĮȚ µȚĮ ĮʌȜȒ țȜȒıȘ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ. 2) ȅIJĮȞ IJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ İȓȞĮȚ µİȖȐȜȠ, IJȩIJİ IJȠ țȐșİ ȣʌȠʌȡȩȖȡĮµµĮ µʌȠȡİȓ ȞĮ ȖȡĮijİȓ țĮȚ ȞĮ İȜİȖȤșİȓ ȟȑȤȦȡĮ (ȓıȦȢ țĮȚ Įʌȩ įȚĮijȠȡİIJȚțȠȪȢ ʌȡȠȖȡĮµµĮIJȚıIJȑȢ). 3) ȊʌȠʌȡȠȖȡȐµµĮIJĮ ʌȠȣ İțIJİȜȠȪȞ ıȣȞȘșȚıµȑȞİȢ İȡȖĮıȓİȢ µʌȠȡȠȪȞ ȞĮ µİIJĮijȑȡȠȞIJĮȚ Įʌȩ IJȠ ȑȞĮ țȪȡȚȠ ʌȡȩȖȡĮµµĮ ıIJȠ ȐȜȜȠ. 4) Ǿ įȠµȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȖȓȞİIJĮȚ İȪțȠȜĮ țĮIJĮȞȠȘIJȒ. ȈIJȘȞ Pascal ȣʌȐȡȤȠȣȞ įȪȠ įȚĮijȠȡİIJȚțȠȓ IJȪʌȠȚ ȣʌȠʌȡȠȖȡĮµµȐIJȦȞ: ȠȚ įȚĮįȚțĮıȓİȢ (procedures) țĮȚ ȠȚ ıȣȞĮȡIJȒıİȚȢ (functions). ȉĮ ȣʌȠʌȡȠȖȡȐµµĮIJĮ įȘȜȫȞȠȞIJĮȚ, ı'ȑȞĮ ʌȡȩȖȡĮµµĮ IJȘȢ Pascal, µİIJȐ IJȠ µȑȡȠȢ įȒȜȦıȘȢ IJȦȞ µİIJĮȕȜȘIJȫȞ țĮȚ ʌȡȚȞ Įʌȩ IJȠ "Begin" IJȠȣ ʌȡȠȖȡȐµµĮIJȩȢ µĮȢ, ȩʌȦȢ ȐȜȜȦıIJİ ȑȤȠȣµİ įİȚ țĮȚ ıIJȠ ȈȤȒµĮ 2.2. ǼȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ȑȤİȚ IJȘȞ ȓįȚĮ įȠµȒ µİ ȑȞĮ țĮȞȠȞȚțȩ ʌȡȩȖȡĮµµĮ, įȘȜĮįȒ ĮʌȠIJİȜİȓIJĮȚ Įʌȩ IJȘȞ İʌȚțİijĮȜȓįĮ, IJȠ IJµȒµĮ įȘȜȫıİȦȞ țĮȚ IJȠ IJµȒµĮ İȞIJȠȜȫȞ. ȅȚ µȩȞİȢ įȚĮijȠȡȑȢ İȓȞĮȚ ıIJȘȞ İʌȚțİijĮȜȓįĮ țĮȚ ıIJȠ IJİȜİȣIJĮȓȠ "End" (IJȠ ȠʌȠȓȠ įİȞ ĮțȠȜȠȣșİȓIJĮȚ Įʌȩ IJİȜİȓĮ ĮȜȜȐ Įʌȩ İȜȜȘȞȚțȩ İȡȦIJȘµĮIJȚțȩ).
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-112-
ǹȢ įȠȪµİ IJȫȡĮ IJȘ įȚĮijȠȡȐ ĮȞȐµİıĮ ıİ µȚĮ įȚĮįȚțĮıȓĮ țĮȚ ıİ µȚĮ ıȣȞȐȡIJȘıȘ. Ǿ ĮȜȒșİȚĮ İȓȞĮȚ ȩIJȚ µȠȚȐȗȠȣȞ ĮȡțİIJȐ, țĮșȫȢ țĮȚ ȠȚ įȪȠ ıIJȘȡȓȗȠȞIJĮȚ ıȤİįȩȞ ıIJȘȞ ȓįȚĮ ijȚȜȠıȠijȓĮ. ȅµȦȢ ȣʌȐȡȤȠȣȞ țĮȚ ȠȡȚıµȑȞİȢ įȚĮijȠȡȑȢ ʌȠȣ ijĮȞİȡȫȞȠȣȞ ʌȠȚȠȢ İȓȞĮȚ Ƞ ıIJȩȤȠȢ IJȠȣȢ. Ǿ įȚĮįȚțĮıȓĮ İȓȞĮȚ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ʌȠȣ ȑȤİȚ ȦȢ ĮʌȠIJȑȜİıµĮ IJȘȞ İțIJȑȜİıȘ µȚĮȢ ıİȚȡȐȢ ʌȡȐȟİȦȞ ȖȚĮ ȑȞĮ țĮȚ µȠȞĮįȚțȩ ıțȠʌȩ: IJȘ ıȣȞIJȩµİȣıȘ IJȠȣ țȫįȚțĮ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ. ǹʌȩ IJȘȞ ȐȜȜȘ ʌȜİȣȡȐ, Ș ıȣȞȐȡIJȘıȘ İȓȞĮȚ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ İȚįȚțȐ ıȤİįȚĮıµȑȞȠ ȫıIJİ ȞĮ İʌȚıIJȡȑijİȚ µȓĮ µȩȞȠ IJȚµȒ, ıȣȞİʌȫȢ ȠȚ ıȣȞĮȡIJȒıİȚȢ țĮȜȠȪȞIJĮȚ µȩȞȠ µȑıĮ Įʌȩ İțijȡȐıİȚȢ.
11.1 ȈȊȃǹȇȉǾȈǼǿȈ ȅȚ IJȪʌȠȚ țĮȚ ȠȚ ıȤȑıİȚȢ ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ıIJȘȞ İʌȓȜȣıȘ IJȦȞ IJİȤȞȠȜȠȖȚțȫȞ ʌȡȠȕȜȘµȐIJȦȞ țĮȚ IJȦȞ ʌȡȠȕȜȘµȐIJȦȞ IJȘȢ ĭȣıȚțȒȢ țĮȚ IJȦȞ ȂĮșȘµĮIJȚțȫȞ, ݵʌȜȑțȠȣȞ ıȣȞȒșȦȢ IJȡȚȖȦȞȠµİIJȡȚțȑȢ ıȣȞĮȡIJȒıİȚȢ (ȘµȓIJȠȞȠ, ıȣȞȘµȓIJȠȞȠ, İijĮʌIJȠµȑȞȘ ț.Ȝ.ʌ) țĮȚ ĮȜȖİȕȡȚțȑȢ ıȣȞĮȡIJȒıİȚȢ (ȜȠȖȐȡȚșµȠȢ, ĮʌȩȜȣIJȘ IJȚµȒ, ț.Ȝ.ʌ). īȚĮ IJȘȞ ʌȚȠ İȪțȠȜȘ țȦįȚțȠʌȠȓȘıȘ ĮȣIJȫȞ IJȦȞ IJȪʌȦȞ țĮȚ ıȤȑıİȦȞ ıIJȠ ʌȡȩȖȡĮµµĮ, Ș Pascal, ȩʌȦȢ İȓįĮµİ ıIJȚȢ § 5.6 țĮȚ 5.7, µĮȢ ʌĮȡȑȤİȚ IJȘ įȣȞĮIJȩIJȘIJĮ IJȘȢ ıȣµȕȠȜȚțȒȢ ȖȡĮijȒȢ IJȦȞ ʌȚȠ țȠȚȞȫȞ µĮșȘµĮIJȚțȫȞ țĮȚ ĮȜijĮȡȚșµȘIJȚțȫȞ ıȣȞĮȡIJȒıİȦȞ. ȈȣȤȞȐ ȩµȦȢ, ĮȣIJȑȢ ȠȚ İȞıȦµĮIJȦµȑȞİȢ ıȣȞĮȡIJȒıİȚȢ įİȞ İȓȞĮȚ ĮȡțİIJȑȢ ȖȚĮ IJȘ ȜȪıȘ IJȦȞ įȚĮijȩȡȦȞ ʌȡȠȕȜȘµȐIJȦȞ. ǼIJıȚ İȓȞĮȚ ĮȞĮȖțĮȓȠ ȞĮ µʌȠȡȠȪµİ ȞĮ ȠȡȓıȠȣµİ IJȚȢ įȚțȑȢ µĮȢ ıȣȞĮȡIJȒıİȚȢ ıİ ȑȞĮ ʌȡȩȖȡĮµµĮ. ǹȣIJȒ IJȘ įȣȞĮIJȩIJȘIJĮ µĮȢ IJȘȞ ʌĮȡȑȤİȚ Ș Pascal µİ IJȠ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ. Ǿ ȖİȞȚțȒ İȓȞĮȚ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
µȠȡijȒ
ȠȡȚıµȠȪ
İȞȩȢ
ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ
ıȣȞȐȡIJȘıȘ,
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-113-
Function ȩȞȠµĮ (ȜȓıIJĮ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ): IJȪʌȠȢ; ȉµȒµĮ įȘȜȫıİȦȞ Begin İȞIJȠȜȒ1; İȞIJȠȜȒ2; . . . İȞIJȠȜȒn; ȩȞȠµĮ:=ʌĮȡȐıIJĮıȘ End; ȩʌȠȣ Function İȓȞĮȚ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ Ș ȠʌȠȓĮ ĮțȠȜȠȣșİȓIJĮȚ Įʌȩ IJȠ ȩȞȠµĮ IJȘȢ ıȣȞȐȡIJȘıȘȢ. ȈIJȘ ıȣȞȑȤİȚĮ ȠȚ IJȣʌȚțȑȢ (formal) ʌĮȡȐµİIJȡȠȚ țĮȚ Ƞ IJȪʌȠȢ IJȠȣȢ țĮșȠȡȓȗȠȞIJĮȚ ıIJȘ ȜȓıIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ. ȅȜİȢ ȠȚ ʌĮȡȐµİIJȡȠȚ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ µȑıĮ ıIJȚȢ ʌĮȡİȞșȑıİȚȢ ȠȞȠµȐȗȠȞIJĮȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ, ʌ.Ȥ ıIJȘ ıȣȞȐȡIJȘıȘ Sin(X), Ș ʌĮȡȐµİIJȡȠȢ ȋ İȓȞĮȚ µȚĮ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠȢ. ȅȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ įȓȞȠȣȞ IJȘ įȣȞĮIJȩIJȘIJĮ IJȠȣ ȠȡȚıµȠȪ IJȦȞ ȣʌȠȜȠȖȚıµȫȞ țĮȚ İȞİȡȖİȚȫȞ µȚĮȢ ıȣȞȐȡIJȘıȘȢ (Ș µȚĮȢ įȚĮįȚțĮıȓĮȢ) µİ ȑȞĮ ȖİȞȚțȩ IJȡȩʌȠ. ǼʌİȚįȒ ȣʌȐȡȤİȚ ʌİȡȓʌIJȦıȘ ȞĮ µȘȞ ȣʌȐȡȤȠȣȞ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ, ȖȚĮ IJȠ ȜȩȖȠ ĮȣIJȩ Ș ʌĮȡȑȞșİıȘ µİ IJȘ ȜȓıIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ İȓȞĮȚ ʌȡȠĮȚȡİIJȚțȒ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ȩµȦȢ ʌȠȣ ȣʌȐȡȤİȚ, ȑȤİȚ IJȘȞ ʌĮȡĮțȐIJȦ µȠȡijȒ: (ȜȓıIJĮ ʌĮȡĮµȑIJȡȦȞ1: IJȪʌȠȢ1; ȜȓıIJĮ ʌĮȡĮµȑIJȡȦȞ2: IJȪʌȠȢ2; . . . ȜȓıIJĮ ʌĮȡĮµȑIJȡȦȞn :IJȪʌȠȢn) ȩʌȠȣ Ș i-ȠıIJȒ ȜȓıIJĮ ʌĮȡĮµȑIJȡȦȞ ʌİȡȚȜĮµȕȐȞİȚ ȩȜİȢ IJȚȢ ʌĮȡĮµȑIJȡȠȣȢ, ȤȦȡȚıµȑȞİȢ µİ țȩµµĮ, ʌȠȣ ȑȤȠȣȞ IJȠȞ ȓįȚȠ IJȪʌȠ, Ƞ ȠʌȠȓȠȢ ݵijĮȞȓȗİIJĮȚ µİIJȐ IJȘȞ ȐȞȦ țĮȚ țȐIJȦ IJİȜİȓĮ. ȂİIJȐ IJȘ įİȟȚȐ ʌĮȡȑȞșİıȘ IJȘȢ ȜȓıIJĮȢ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ ĮțȠȜȠȣșİȓ, µİIJȐ Įʌȩ IJȘȞ ȐȞȦ țĮȚ țȐIJȦ IJİȜİȓĮ, Ƞ IJȪʌȠȢ IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ ʌȠȣ İʌȚıIJȡȑijİȚ Ș ıȣȞȐȡIJȘıȘ (Ș ıȣȞȐȡIJȘıȘ İʌȚıIJȡȑijİȚ ȑȞĮ țĮȚ µȩȞȠ ȑȞĮ ĮʌȠIJȑȜİıµĮ). ȅȚ µİIJĮȕȜȘIJȑȢ ʌȠȣ ݵijĮȞȓȗȠȞIJĮȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȘȢ ıȣȞȐȡIJȘıȘȢ ȜȑȖȠȞIJĮȚ IJȠʌȚțȑȢ (local), įȚȩIJȚ ȠȡȓȗȠȞIJĮȚ µȩȞȠ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȒȢ IJȘȢ țĮȚ įȚȩIJȚ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ µȩȞȠ İȞIJȩȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ ıIJȠ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-114-
ȠʌȠȓȠ ȠȡȓȗȠȞIJĮȚ (įİȞ İȓȞĮȚ "ȠȡĮIJȑȢ" Įʌȩ IJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ). ȉȠ ȣʌȩȜȠȚʌȠ µȑȡȠȢ IJȠȣ ȠȡȚıµȠȪ µȚĮȢ ıȣȞȐȡIJȘıȘȢ İȓȞĮȚ ȓįȚȠ µİ ȑȞĮ țĮȞȠȞȚțȩ ʌȡȩȖȡĮµµĮ (İțIJȩȢ Įʌȩ IJȠ IJİȜİȣIJĮȓȠ End). ȅȚ İȞIJȠȜȑȢ ʌȠȣ ȣʌȐȡȤȠȣȞ ıIJȠ IJµȒµĮ İȞIJȠȜȫȞ µȚĮȢ ıȣȞȐȡIJȘıȘȢ İȓȞĮȚ İțİȓȞİȢ ʌȠȣ ȤȡİȚȐȗȠȞIJĮȚ ȖȚĮ IJȠȞ ȣʌȠȜȠȖȚıµȩ IJȘȢ IJȚµȒȢ IJȘȢ. ȆȡȑʌİȚ ȞĮ IJȠȞȚıIJİȓ ȩIJȚ ȠʌȦıįȒʌȠIJİ IJȠ IJµȒµĮ İȞIJȠȜȫȞ IJȘȢ ıȣȞȐȡIJȘıȘȢ șĮ ʌȡȑʌİȚ ȞĮ ʌİȡȚȑȤİȚ µȚĮ İȞIJȠȜȒ țĮIJĮȤȫȡȚıȘȢ IJȘȢ µȠȡijȒȢ: ȩȞȠµĮ:=ʌĮȡȐıIJĮıȘ; ȩʌȠȣ ȩȞȠµĮ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȘȢ ıȣȞȐȡIJȘıȘȢ, İʌİȚįȒ Ș țȜȒıȘ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ ıȣȞȐȡIJȘıȘ ĮȞIJȚʌȡȠıȦʌİȪİȚ µȓĮ IJȚµȒ, Ș ȠʌȠȓĮ įȓȞİIJĮȚ ıIJȠ ȩȞȠµĮ IJȘȢ ıȣȞȐȡIJȘıȘȢ µİ IJȘȞ ʌĮȡĮʌȐȞȦ İȞIJȠȜȒ. ȆĮȡȐįİȚȖµĮ ȉȠ ʌĮȡĮȖȠȞIJȚțȩ (factorial) İȞȩȢ µȘ ĮȡȞȘIJȚțȠȪ ĮțİȡĮȓȠȣ ĮȡȚșµȠȪ ȃ, ıȣµȕȠȜȓȗİIJĮȚ ȃ! țĮȚ ȠȡȓȗİIJĮȚ ȦȢ İȟȒȢ: ȃ!=1*2*3*...ȃ ĮȞ ȃz0 țĮȚ ȃ!=1 ĮȞ ȃ=0. īȡȐȥIJİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȠ ʌĮȡĮȖȠȞIJȚțȩ İȞȩȢ µȘ ĮȡȞȘIJȚțȠȪ ĮțİȡĮȓȠȣ. Function Factorial(N: Byte): Longint; Var I: Byte; J: Longint; Begin J:=1; If N<>0 Then For I:=1 To N Do J:=J*I; Factorial:=J End;
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ ʌĮȡĮIJȘȡȠȪµİ IJĮ İȟȒȢ: ȉȠ ȩȞȠµĮ IJȘȢ ıȣȞȐȡIJȘıȘȢ İȓȞĮȚ Factorial. Ǿ ȜȓıIJĮ IJȦȞ ʌĮȡĮµȑIJȡȦȞ (N: Byte) ʌİȡȚȜĮµȕȐȞİȚ IJȘȞ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ ȃ țĮȚ IJȠȞ IJȪʌȠ IJȘȢ (Byte). O IJȪʌȠȢ IJȠȣ ĮʌȠIJİȜȑıµĮIJȠȢ IJȘȢ ıȣȞȐȡIJȘıȘȢ İȓȞĮȚ Longint țĮȚ ĮțȠȜȠȣșİȓ IJȘ ȜȓıIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ. ǼʌȓıȘȢ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ țĮȚ ȠȚ IJȠʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ I, J. ǹʌȩ IJȘ ıIJȚȖµȒ ʌȠȣ ȠȡȓıȠȣµİ µȚĮ ıȣȞȐȡIJȘıȘ, µʌȠȡȠȪµİ ȞĮ IJȘȞ țĮȜȑıȠȣµİ ȠʌȠȣįȒʌȠIJİ µȑıĮ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ ȩʌȦȢ țĮȜȠȪµİ țĮȚ IJȚȢ IJȣʌȠʌȠȚȘµȑȞİȢ ıȣȞĮȡIJȒıİȚȢ, įȘȜĮįȒ ȖȡȐijȠȞIJĮȢ IJȠ ȩȞȠµȐ IJȘȢ țĮȚ ĮȞIJȚțĮșȚıIJȫȞIJĮȢ IJȚȢ µİIJĮȟȪ IJȦȞ ʌĮȡİȞșȑıİȦȞ IJȣʌȚțȑȢ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-115-
ʌĮȡĮµȑIJȡȠȣȢ µİ IJȚµȑȢ, Ȓ µİIJĮȕȜȘIJȑȢ ʌȠȣ ȑȤȠȣȞ ʌȐȡİȚ IJȚµȒ, ȠȚ ȠʌȠȓİȢ ȠȞȠµȐȗȠȞIJĮȚ ʌȡĮȖµĮIJȚțȑȢ (actual) ʌĮȡȐµİIJȡȠȚ ʌ.Ȥ Ș İȞIJȠȜȒ: F:=Factorial(4); ʌİȡȚȑȤİȚ µȚĮ țȜȒıȘ IJȘȢ ıȣȞȐȡIJȘıȘȢ Factorial. ǼIJıȚ Ƞ Ǿ/Ȋ șĮ İțIJİȜȑıİȚ IJȠ ȣʌȠʌȡȩȖȡĮµµĮ Factorial ĮȞIJȚțĮșȚıIJȫȞIJĮȢ IJȘȞ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ ȃ µİ IJȘȞ ʌȡĮȖµĮIJȚțȒ 4 (ıȘµİȚȫıIJİ ȩIJȚ Ș µİIJĮȕȜȘIJȒ F ʌȡȑʌİȚ ȞĮ İȓȞĮȚ IJȪʌȠȣ Longint). ȆĮȡĮțȐIJȦ ʌĮȡĮșȑIJȠȣµİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȣʌȠȜȠȖȓȗİȚ IJȠ ʌĮȡĮȖȠȞIJȚțȩ İȞȩȢ ĮȡȚșµȠȪ țȐȞȠȞIJĮȢ ȤȡȒıȘ IJȘȢ ıȣȞȐȡIJȘıȘȢ Factorial. Program FactorialOfNumber; Var K: Byte; {ĮțȠȜȠȣșİȓ Ș ıȣȞȐȡIJȘıȘ ȩʌȦȢ IJȘ ȖȡȐȥĮµİ ʌȡȠȘȖȠȣµȑȞȦȢ} Function Factorial(N: Byte): Longint; Var I: Byte; J: Longint; Begin J:=1; If N<>0 Then For I:=1 To N Do J:=J*I; Factorial:=J End; {IJȘȢ Factorial} Begin {IJȠȣ țȣȡȓȠȣ ʌȡȠȖȡȐµµĮIJȠȢ} Wtite('ǻȫıIJİ ĮțȑȡĮȚȠ µȘ ĮȡȞȘIJȚțȩ ĮȡȚșµȩ '); Readln(K); Writeln('ȉȠ ʌĮȡĮȖȠȞIJȚțȩ IJȠȣ ',Ȁ,' İȓȞĮȚ ',Factorial(K)) End. {IJȠȣ țȣȡȓȠȣ ʌȡȠȖȡȐµµĮIJȠȢ}
ȈIJȘȞ ʌİȡȓʌIJȦıȘ ʌȠȣ ȣʌȐȡȤȠȣȞ ʌİȡȚııȩIJİȡİȢ IJȘȢ µȓĮȢ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ, IJȩIJİ Ș ʌȡȫIJȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ĮȞIJȚıIJȠȚȤİȓ ıIJȘȞ ʌȡȫIJȘ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ, Ș įİȪIJİȡȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ĮȞIJȚıIJȠȚȤİȓ ıIJȘȞ įİȪIJİȡȘ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ ț.Ƞ.ț. ȅ įİ ĮȡȚșµȩȢ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ țĮȚ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ Ƞ ȓįȚȠȢ, İʌȓıȘȢ Ƞ IJȪʌȠȢ țȐșİ ʌȡĮȖµĮIJȚțȒȢ ʌĮȡĮµȑIJȡȠȣ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ Ƞ ȓįȚȠȢ µİ IJȠȞ IJȪʌȠ IJȘȢ ĮȞIJȓıIJȠȚȤȘȢ IJȣʌȚțȒȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-116-
ȆĮȡȐįİȚȖµĮ īȡȐȥIJİ µȚĮ ıȣȞȐȡIJȘıȘ ʌȠȣ ȞĮ ȕȡȓıțİȚ IJȠ µİȖĮȜȪIJİȡȠ Įʌȩ IJȡİȚȢ ĮțȑȡĮȚȠȣȢ ĮȡȚșµȠȪȢ. Function Maximum(A,B,C: Integer): Integer; Var Max: Integer; Begin If A>B Then Max:=A Else Max:=B; If C>Max Then Max:=C; Maximum:=Max End;
ȆĮȡȐįİȚȖµĮ īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ ȕȡȓıțİȚ IJȠ µİȖĮȜȪIJİȡȠ Įʌȩ ʌȑȞIJİ ĮțȑȡĮȚȠȣȢ ĮȡȚșµȠȪȢ ȤȡȘıȚµȠʌȠȚȫȞIJĮȢ IJȠ ȣʌȠʌȡȩȖȡĮµµĮ Maximum. Program Maxim5; Var Num1,Num2,Num3,Num4,Num5: Integer; Temp1,Temp2: Integer; Function Maximum(A,B,C: Integer): Integer; Var Max: Integer; Begin {Maximum} If A>B Then Max:=A Else Max:=B; If C>Max Then Max:=C; Maximum:=Max End; {Maximum} Begin {Maxim5} Write('ǻȫıİ 5 ĮțȑȡĮȚȠȣȢ '); Readln(Num1,Num2,Num3,Num4,Num5); Temp1:=Maximun(Num1,Num2,Num3); Temp2:=Maximum(Num4,Num5,Temp1); Writeln('ȅ µİȖĮȜȪIJİȡȠȢ İȓȞĮȚ Ƞ ',Temp2) End. {Maxim5}
ȆĮȡĮIJȘȡȒıIJİ ȩIJȚ ȠȚ įȪȠ İȞIJȠȜȑȢ țĮIJĮȤȫȡȘıȘȢ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȞĮ ıȣȖȤȦȞİȣIJȠȪȞ ıİ µȓĮ țĮȚ µȩȞȘ İȞIJȠȜȒ:
țȣȡȓȠȣ
Temp2:=Maximum(Num4,Num5,Maximun(Num1,Num2,Num3));
ȩʌȠȣ ʌȡȫIJĮ İțIJİȜİȓIJĮȚ Ș İıȦIJİȡȚțȒ țȜȒıȘ IJȘȢ Maximum țĮȚ IJȠ ĮʌȠIJȑȜİıµȐ IJȘȢ ıIJȘ ıȣȞȑȤİȚĮ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȦȢ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ȩIJĮȞ İțIJİȜİȓIJĮȚ Ș İȟȦIJİȡȚțȒ țȜȒıȘ IJȘȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-117-
11.2 ǻǿǹǻǿȀǹȈǿǼȈ ȅȚ ıȣȞĮȡIJȒıİȚȢ, ȩʌȦȢ İȓįĮµİ ʌȡȠȘȖȠȣµȑȞȦȢ, ȑȤȠȣȞ IJȠȞ ʌİȡȚȠȡȚıµȩ ȩIJȚ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ µȩȞȠ ȖȚĮ IJȠȞ ȣʌȠȜȠȖȚıµȩ µȚĮȢ µȠȞĮįȚțȒȢ IJȚµȒȢ, ȖȚ'ĮȣIJȩ ȐȜȜȦıIJİ Ș țȜȒıȘ µȚĮȢ ıȣȞȐȡIJȘıȘȢ ȕȡȓıțİIJĮȚ µȑıĮ ıİ µȓĮ ʌĮȡȐıIJĮıȘ. ǹȡțİIJȐ ıȣȤȞȐ ȩµȦȢ ȣʌȐȡȤİȚ ĮȞȐȖțȘ ȞĮ ȖȡȐȥȠȣµİ ȣʌȠʌȡȠȖȡȐµµĮIJĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗȠȣȞ ʌİȡȚııȩIJİȡİȢ IJȘȢ µȓĮȢ IJȚµȑȢ Ȓ ĮʌȜȫȢ ȞĮ İțIJİȜȠȪȞ țȐʌȠȚĮ ȐȜȜȘ İȡȖĮıȓĮ. ȀĮIJȐ ĮȣIJȩȞ IJȠȞ IJȡȩʌȠ ȑȞĮ µİȖȐȜȠ ʌȡȩȖȡĮµµĮ µʌȠȡİȓ ȞĮ įȚĮȤȦȡȚıșİȓ ıİ IJȑIJȠȚĮ ȣʌȠʌȡȠȖȡȐµµĮIJĮ, IJĮ ȠʌȠȓĮ țĮȜȠȪȞIJĮȚ įȚĮįȚțĮıȓİȢ. ȅȚ įȚĮįȚțĮıȓİȢ İȓȞĮȚ ȣʌȠʌȡȠȖȡȐµµĮIJĮ ʌȠȣ İțIJİȜȠȪȞ ıȣȖțİțȡȚµȑȞȘ İȡȖĮıȓĮ Ȓ ȠµȐįĮ İȡȖĮıȚȫȞ, ȠȚ ȠʌȠȓİȢ țĮIJȐ țȐʌȠȚĮ ȑȞȞȠȚĮ µʌȠȡȠȪȞ ȞĮ șİȦȡȘșȠȪȞ ĮȣIJȠIJİȜİȓȢ. Ǿ µİȖȐȜȘ ȤȡȘıȚµȩIJȘIJȐ IJȠȣȢ ȕȡȓıțİIJĮȚ ıIJȠ ȖİȖȠȞȩȢ ȩIJȚ ĮȞ țȐʌȠȚĮ İȡȖĮıȓĮ ʌȡȑʌİȚ ȞĮ İțIJİȜİıșİȓ ʌȠȜȜȑȢ ijȠȡȑȢ, įİȞ İȓȞĮȚ ĮʌĮȡĮȓIJȘIJȠȢ Ƞ ʌȡȠȖȡĮµµĮIJȚıµȩȢ ıIJȘȞ ȓįȚĮ ȑțIJĮıȘ, ijIJȐȞȠȣȞ µȩȞȠ ȠȚ ȚıȐȡȚșµİȢ țȜȒıİȚȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ ʌȠȣ İʌȚIJİȜİȓ ĮȣIJȒȞ IJȘȞ İȡȖĮıȓĮ. ȂȚĮ įȚĮįȚțĮıȓĮ İȓȞĮȚ ȩµȠȚĮ µİ ȑȞĮ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. ǼȤİȚ ȩȞȠµĮ țĮȚ ʌĮȡĮµȑIJȡȠȣȢ (ȩȤȚ ȣʌȠȤȡİȦIJȚțȐ) ȖȚĮ IJȘ µİIJȐįȠıȘ țĮȚ ȜȒȥȘ ʌȜȘȡȠijȠȡȚȫȞ Įʌȩ IJȠ ȣʌȩȜȠȚʌȠ ʌȡȩȖȡĮµµĮ. Ǿ ȖİȞȚțȒ µȠȡijȒ ȠȡȚıµȠȪ İȞȩȢ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ įȚĮįȚțĮıȓĮ, İȓȞĮȚ: Procedure ȩȞȠµĮ (ȜȓıIJĮ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ); ȉµȒµĮ įȘȜȫıİȦȞ Begin İȞIJȠȜȒ1; İȞIJȠȜȒ2; . . . İȞIJȠȜȒn End; ȩʌȠȣ Procedure İȓȞĮȚ µȚĮ įİıµİȣµȑȞȘ ȜȑȟȘ Ș ȠʌȠȓĮ ĮțȠȜȠȣșİȓIJĮȚ Įʌȩ IJȠ ȩȞȠµĮ IJȘȢ įȚĮįȚțĮıȓĮȢ. ȈIJȘ ıȣȞȑȤİȚĮ Ș ȜȓıIJĮ IJȦȞ ʌĮȡĮµȑIJȡȦȞ ȑȤİȚ IJȘȞ ȓįȚĮ µȠȡijȒ µİ ĮȣIJȒ IJȘȢ ıȣȞȐȡIJȘıȘȢ, įȘȜĮįȒ ݵijĮȞȓȗȠȞIJĮȚ ȩȜİȢ ȠȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ ȤȦȡȚıµȑȞİȢ µİ "," țĮșȫȢ İʌȓıȘȢ țĮȚ Ƞ IJȪʌȠȢ IJȠȣȢ (ȤȦȡȚıµȑȞȠȢ µİ ":" Įʌȩ IJȚȢ µİIJĮȕȜȘIJȑȢ. ǼʌȓıȘȢ ȩʌȦȢ ȕȜȑʌȠȣµİ, țĮȚ ȠȚ įȚĮįȚțĮıȓİȢ µʌȠȡȠȪȞ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-118-
ȞĮ ȤȡȘıȚµȠʌȠȚȠȪȞ IJȠʌȚțȑȢ µİIJĮȕȜȘIJȑȢ ȠȡȚıµȑȞİȢ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȘȢ įȚĮįȚțĮıȓĮȢ. ȅȚ İȞIJȠȜȑȢ µİIJĮȟȪ IJȠȣ Begin țĮȚ End țĮșȠȡȓȗȠȣȞ IJȚȢ İȞȑȡȖİȚİȢ ʌȠȣ İțIJİȜȠȪȞIJĮȚ Įʌȩ IJȘ įȚĮįȚțĮıȓĮ. ȈȘµİȚȫȞȠȣµİ ȩIJȚ Ș ȜȓıIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ İȓȞĮȚ ʌȡȠĮȚȡİIJȚțȒ. ȆĮȡȐįİȚȖµĮ īȡȐȥIJİ µȚĮ įȚĮįȚțĮıȓĮ (țĮȚ İȞıȦµĮIJȫıIJİ IJȘ ıİ țĮIJȐȜȜȘȜȠ ʌȡȩȖȡĮµµĮ) ʌȠȣ ȞĮ įȚĮȕȐȗİȚ Įʌȩ IJȠ ʌȜȘțIJȡȠȜȩȖȚȠ țĮȚ ȞĮ IJȣʌȫȞİȚ ıIJȘȞ ȠșȩȞȘ IJȠ ʌİȡȚİȤȩµİȞȠ µȚĮȢ ȖȡĮµµȒȢ µİ ȐȖȞȦıIJȠ ĮȡȚșµȩ ȤĮȡĮțIJȒȡȦȞ. īȚĮ ȞĮ ȖȡȐȥȠȣµİ ĮȣIJȩ IJȠ ʌȡȩȖȡĮµµĮ ʌȡȑʌİȚ ȞĮ ʌĮȡȠȣıȚȐıȠȣµİ µȚĮ IJȣʌȠʌȠȚȘµȑȞȘ ıȣȞȐȡIJȘıȘ IJȘȢ Pascal, İȓȞĮȚ Ș ıȣȞȐȡIJȘıȘ EOLN (End Of LiNe). ǹȣIJȒ Ș ıȣȞȐȡIJȘıȘ İʌȚıIJȡȑijİȚ ĮȜȘșȒ IJȚµȒ ȩIJĮȞ Ƞ įİȓțIJȘȢ șȑıȘȢ ĮȡȤİȓȠȣ ijIJȐıİȚ ıIJȘȞ ȑȞįİȚȟȘ IJȑȜȠȣȢ µȚĮȢ ȖȡĮµµȒȢ IJȠȣ ĮȡȤİȓȠȣ INPUT (ȕȜȑʌİ § 6.1). Program EchoLine; Uses CRT; Procedure Line; {ǻȚĮȕȐȗİȚ țĮȚ IJȣʌȫȞİȚ µȚĮ ȖȡĮµµȒ țİȚµȑȞȠȣ} Var C: Char; Begin While NOT EOLN Do Begin Read(C); Write(C) End; Readln; Writeln End; {Line} Begin Line End.
ȈIJȘ įȚĮįȚțĮıȓĮ Line IJȠȣ ʌĮȡĮʌȐȞȦ ʌĮȡĮįİȓȖµĮIJȠȢ, ʌĮȡĮIJȘȡȠȪµİ ȩIJȚ µİIJȐ IJȠ ȩȞȠµȐ IJȘȢ įİȞ ȣʌȐȡȤİȚ Ș ȜȓıIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ įȚȩIJȚ ıIJȘȞ ʌİȡȓʌIJȦıȘ ĮȣIJȒ įİ ȤȡİȚȐȗİIJĮȚ. ȉȠ ȣʌȩȜȠȚʌȠ țȠµµȐIJȚ IJȘȢ ȑȤİȚ IJȘȞ ȓįȚĮ įȠµȒ ȩʌȦȢ ȑȞĮ țȪȡȚȠ ʌȡȩȖȡĮµµĮ, İțIJȩȢ IJȠȣ ȩIJȚ IJȠ IJİȜİȣIJĮȓȠ End įİȞ ĮțȠȜȠȣșİȓIJĮȚ Įʌȩ "." ĮȜȜȐ Įʌȩ ";". ȅIJĮȞ µȓĮ įȚĮįȚțĮıȓĮ İȓȞĮȚ ȠȡȚıµȑȞȘ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȠȣ țȣȡȓȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, IJȩIJİ µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ ȠʌȠȣįȒʌȠIJİ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-119-
İȞIJȩȢ IJȠȣ țȣȡȓȠȣ ʌȡȠȖȡȐµµĮIJȠȢ µİ µȚĮ ĮʌȜȒ țȜȒıȘ IJȘȢ. Ǿ țȜȒıȘ µȚĮȢ įȚĮįȚțĮıȓĮȢ ȑȤİȚ IJȘ ȖİȞȚțȒ µȠȡijȒ: ȩȞȠµĮ (ȜȓıIJĮ ʌȡĮȖµĮIJȚțȫȞ ʌĮȡĮµȑIJȡȦȞ); ȩʌȠȣ ȩȞȠµĮ İȓȞĮȚ IJȠ ȩȞȠµĮ IJȘȢ įȚĮįȚțĮıȓĮȢ ʌȠȣ șȑȜȠȣµİ ȞĮ İțIJİȜİıșİȓ. ȅȚ ʌȡĮȖµĮIJȚțȑȢ (actual) ʌĮȡȐµİIJȡȠȚ İȓȞĮȚ IJȚµȑȢ Ȓ µİIJĮȕȜȘIJȑȢ ʌȠȣ ĮȞIJȚʌȡȠıȦʌİȪȠȣȞ IJȚµȑȢ. ȅʌȦȢ țĮȚ ıIJȚȢ ıȣȞĮȡIJȒıİȚȢ, ʌȡȑʌİȚ Ș ʌȡȫIJȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ĮȞIJȚıIJȠȚȤİȓ ıIJȘȞ ʌȡȫIJȘ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ, Ș įİȪIJİȡȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ĮȞIJȚıIJȠȚȤİȓ ıIJȘȞ įİȪIJİȡȘ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ ț.Ƞ.ț. ȅ įİ ĮȡȚșµȩȢ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ țĮȚ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ Ƞ ȓįȚȠȢ, İʌȓıȘȢ Ƞ IJȪʌȠȢ țȐșİ ʌȡĮȖµĮIJȚțȒȢ ʌĮȡĮµȑIJȡȠȣ șĮ ʌȡȑʌİȚ ȞĮ İȓȞĮȚ ıȣµȕȚȕĮıIJȩȢ µİ IJȠȞ IJȪʌȠ IJȘȢ ĮȞIJȓıIJȠȚȤȘȢ IJȣʌȚțȒȢ. ȉȠʌȚțȑȢ țĮȚ ȀĮșȠȜȚțȑȢ ȂİIJĮȕȜȘIJȑȢ ȅȚ µİIJĮȕȜȘIJȑȢ, ȠȚ ıIJĮșİȡȑȢ, ȠȚ įȚĮįȚțĮıȓİȢ, ȠȚ ıȣȞĮȡIJȒıİȚȢ țĮȚ ȠIJȚįȒʌȠIJİ ȐȜȜȠ ȣʌȐȡȤİȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ IJȠȣ țȣȡȓȠȣ ʌȡȠȖȡȐµµĮIJȠȢ ȠȞȠµȐȗȠȞIJĮȚ țĮșȠȜȚțȑȢ Ȓ ȖİȞȚțȑȢ (global) µİIJĮȕȜȘIJȑȢ, ıIJĮșİȡȑȢ ț.Ȝ.ʌ, İʌİȚįȒ µʌȠȡȠȪȞ ȞĮ ȤȡȘıȚµȠʌȠȚȘșȠȪȞ ȠʌȠȣįȒʌȠIJİ µȑıĮ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ, ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ Ȓ ĮțȩµĮ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ʌȠȣ ȑȤİȚ țȜȘșİȓ µȑıĮ Įʌȩ ȑȞĮ ȐȜȜȠ ȣʌȠʌȡȩȖȡĮµµĮ. ǼțİȓȞİȢ ȩµȦȢ ȠȚ µİIJĮȕȜȘIJȑȢ, ıIJĮșİȡȑȢ ț.Ȝ.ʌ. ʌȠȣ ȕȡȓıțȠȞIJĮȚ ıIJȠ IJµȒµĮ įȘȜȫıİȦȞ İȞȩȢ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, ȑȤȠȣȞ ȚıȤȪ µȩȞȠ ıIJȠ ıȣȖțİțȡȚµȑȞȠ ȣʌȠʌȡȩȖȡĮµµĮ țĮȚ ȖȚ'ĮȣIJȩ ȜȑȖȠȞIJĮȚ IJȠʌȚțȑȢ (local). ǼIJıȚ Ș İʌȚȡȡȠȒ Ȓ ݵȕȑȜİȚĮ (scope) IJȦȞ µİIJĮȕȜȘIJȫȞ ț.Ȝ.ʌ, İȓȞĮȚ IJȠ țȠµµȐIJȚ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, ʌȠȣ ȜȑȖİIJĮȚ ȠµȐįĮ (block), µȑıĮ ıIJȠ ȠʌȠȓȠ ȑȤȠȣȞ įȘȜȦșİȓ. Ǿ İʌȚȡȡȠȒ IJȠȣȢ İʌİțIJİȓȞİIJĮȚ Įʌȩ IJȠ ıȘµİȓȠ įȒȜȦıȒȢ IJȠȣȢ µȑıĮ ıIJȘȞ ȠµȐįĮ µȑȤȡȚ IJȠ IJȑȜȠȢ IJȘȢ. ȂȓĮ ȠµȐįĮ ĮʌȠIJİȜİȓIJĮȚ Įʌȩ IJȠ IJµȒµĮ ȠȡȚıµȠȪ, įȘȜȫıİȦȞ țĮȚ İȞIJȠȜȫȞ. ȅʌȦȢ țĮIJĮȜĮȕĮȓȞȠȣµİ, ȩIJĮȞ ĮȡȤȓȗȠȣµİ ȞĮ ıțİʌIJȩµĮıIJİ µİ ȠµȐįİȢ įİȞ ȣʌȐȡȤİȚ ʌȡĮȖµĮIJȚțȒ įȚĮijȠȡȐ µİIJĮȟȪ İȞȩȢ ʌȡȠȖȡȐµµĮIJȠȢ țĮȚ İȞȩȢ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ. ǼʌİȚįȒ Ș Pascal İȓȞĮȚ ıȤİįȚĮıµȑȞȘ țĮIJ'ĮȣIJȩȞ IJȠȞ IJȡȩʌȠ, İȓȞĮȚ ȖȞȦıIJȒ ȦȢ įȠµȘµȑȞȘ ȖȜȫııĮ ʌȡȠȖȡĮµµĮIJȚıµȠȪ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-120-
ȆĮȡȐįİȚȖµĮ ǼıIJȦ ȩIJȚ șȑȜȠȣµİ ȞĮ ıȤİįȚȐıȠȣµİ IJȠ ʌȡȩȖȡĮµµĮ ȣʌȠʌȡȠȖȡȐµµĮIJĮ B,C,D,E,F,G ȩʌȦȢ ijĮȓȞȠȞIJĮȚ ʌĮȡĮțȐIJȦ:
ǹ,
µİ
IJĮ
Program A B F
C
G
D E
B
Ǿ įȠµȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ șĮ İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ: Program A; Procedure B; Begin {B} ... End; {B} Procedure F; Procedure D; Procedure E; Begin {E} ... End; {E} Begin {D} ... End; {D} Begin {F} ... End; {F} Procedure C; Procedure G; Begin {G} ... End; {G} Begin {C} ... End; {C} BEGIN {A} ... END. {A}
ȈȤİIJȚțȐ µİ IJȘȞ İʌȚȡȡȠȒ IJȦȞ ĮȞIJȚțİȚµȑȞȦȞ ʌȠȣ ȠȡȓȗȠȞIJĮȚ ıİ țȐșİ ȠµȐįĮ IJȠȣ ʌĮȡĮʌȐȞȦ ʌȡȠȖȡȐµµĮIJȠȢ ȑȤȠȣµİ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-121-
ǹȞIJȚțİȓµİȞĮ ʌȠȣ ȠȡȓȗȠȞIJĮȚ ǼȓȞĮȚ įȚĮșȑıȚµĮ ıIJȘȞ ıIJȘȞ ȠµȐįĮ: ȠµȐįĮ: ǹ A,B,C,D,E,F,G B B C C,G D D,E E E F B,D,E G G
ǹȞ țĮȚ įİȞ İʌȚIJȡȑʌİIJĮȚ µȓĮ ʌĮȡȐµİIJȡȠȢ ȞĮ įȘȜȦșİȓ ʌİȡȚııȩIJİȡİȢ Įʌȩ µȓĮ ijȠȡȑȢ ıIJȠ ȓįȚȠ ȣʌȠʌȡȩȖȡĮµµĮ Ȓ ıIJȘȞ ȓįȚĮ ȠµȐįĮ, ȦıIJȩıȠ µʌȠȡİȓ ȞĮ įȘȜȦșİȓ Ș ȓįȚĮ ʌĮȡȐµİIJȡȠȢ ıİ įȪȠ Ȓ ʌİȡȚııȩIJİȡİȢ įȚĮijȠȡİIJȚțȑȢ ȠµȐįİȢ. ȈIJȘȞ ʌİȡȓʌIJȦıȘ ĮȣIJȒ Ș ʌȚȠ IJȠʌȚțȒ ʌĮȡȐµİIJȡȠȢ ʌȐȞIJȠIJİ "ʌȡȠȘȖİȓIJĮȚ". ǹȣIJȩ ıȘµĮȓȞİȚ ȩIJȚ µȚĮ țĮIJĮȤȫȡȘıȘ ıİ µȚĮ IJȠʌȚțȒ µİIJĮȕȜȘIJȒ įİ șĮ µİIJĮȕȐȜȜİȚ IJȘȞ IJȚµȒ µȚĮȢ ȖİȞȚțȒȢ µİIJĮȕȜȘIJȒȢ µİ IJȠ ȓįȚȠ ȩȞȠµĮ. ȆĮȡȐįİȚȖµĮ ǹȢ ȣʌȠșȑıȠȣµİ ȩIJȚ ȑȤȠȣµİ IJȠ ʌĮȡĮțȐIJȦ ʌȡȩȖȡĮµµĮ: Program Global_Local; Var A,B,C,D: Integer; Procedure Confuse(A,B: Integer); Var C: Real; Begin A:=5; B:=6; C:=7.5; D:=8; Writeln(A:5,B:5,C:5:1,D:5) End; {Confuse} BEGIN A:=1; B:=2; C:=3; D:=4; Writeln(A:5,B:5,C:5,D:5); Confuse(A,B); Writeln(A:5,B:5,C:5,D:5) END.
ǹȞ IJȡȑȟȠȣµİ IJȠ ʌȡȩȖȡĮµµĮ șĮ ʌȐȡȠȣµİ ȦȢ ĮʌȠIJȑȜİıµĮ: 1 5 1
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
2 6 2
3 7.5 3
4 8 8
(īȚĮIJȓ;)
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-122-
ȂİIJĮȕȜȘIJȑȢ țĮȚ ȆĮȡȐµİIJȡȠȚ ǹȢ įȠȪµİ IJȫȡĮ ȟĮȞȐ IJȘ įȚĮijȠȡȐ µİIJĮȟȪ IJȦȞ IJȠʌȚțȫȞ țĮȚ țĮșȠȜȚțȫȞ µİIJĮȕȜȘIJȫȞ țĮșȫȢ İʌȓıȘȢ țĮȚ IJȠȣȢ įȪȠ IJȡȩʌȠȣȢ µİIJĮȕȓȕĮıȘȢ ʌĮȡĮµȑIJȡȦȞ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ. ȈIJĮ ʌĮȡĮįİȓȖµĮIJȐ µĮȢ µȑȤȡȚ IJȫȡĮ ȤȡȘıȚµȠʌȠȚȠȪıĮµİ IJȚȢ ʌĮȡĮµȑIJȡȠȣȢ İȞȩȢ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ µȩȞȠ ȖȚĮ IJȘ µİIJĮȕȓȕĮıȘ įİįȠµȑȞȦȞ IJĮ ȠʌȠȓĮ ȤȡİȚȐȗȠȞIJĮȚ ȖȚĮ IJȘȞ İțIJȑȜİıȘ IJȦȞ İȞIJȠȜȫȞ IJȠȣ. Ȉİ țȐʌȠȚİȢ ʌİȡȚʌIJȫıİȚȢ IJȠ ȡȩȜȠ ĮȣIJȩ µʌȠȡȠȪȞ ȞĮ IJȠȞ ʌĮȓȟȠȣȞ ȠȚ țĮșȠȜȚțȑȢ µİIJĮȕȜȘIJȑȢ, ĮȞ țĮȚ ĮȣIJȩ șĮ ʌȡȑʌİȚ ȞĮ ĮʌȠijİȪȖİIJĮȚ ȖȚĮ ȞĮ İȓȞĮȚ IJĮ ȣʌȠʌȡȠȖȡȐµµĮIJȐ µĮȢ ĮȞİȟȐȡIJȘIJĮ Įʌȩ IJȠ ıȣȖțİțȡȚµȑȞȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ țĮȚ ʌİȡȚııȩIJİȡȠ İȣțȠȜȠȞȩȘIJĮ. ǼțIJȩȢ ȩµȦȢ Įʌȩ IJȘȞ İȚıĮȖȦȖȒ įİįȠµȑȞȦȞ șĮ ʌȡȑʌİȚ ȞĮ ʌȡȠȕȜİijșİȓ țĮȚ Ș ȑȟȠįȠȢ ĮʌȠIJİȜİıµȐIJȦȞ Įʌȩ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ, ȩʌȦȢ İʌȓıȘȢ țĮȚ Ƞ IJȡȩʌȠȢ µİIJĮȕȓȕĮıȒȢ IJȠȣȢ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. ǹȢ țȐȞȠȣµİ ȩµȦȢ ȟİțȐșĮȡĮ IJĮ ʌĮȡĮʌȐȞȦ, ȟİțȚȞȫȞIJĮȢ µİ IJȘ µİȜȑIJȘ İȞȩȢ ĮʌȜȠȪ ʌȡȠȖȡȐµµĮIJȠȢ: Program Simple1; Var X: Integer; Procedure Change; Begin X:=1 End; {Change} Begin X:=0; Change; Writeln(X) End. {Simple1}
ǹȣIJȩ IJȠ ʌȡȩȖȡĮµµĮ ȑȤİȚ µȓĮ µİIJĮȕȜȘIJȒ, IJȘ ȋ, Ș ȠʌȠȓĮ İȓȞĮȚ µȚĮ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ. ȈIJȘ µİIJĮȕȜȘIJȒ ĮȣIJȒ įȓȞİIJĮȚ ĮȡȤȚțȒ IJȚµȒ µȘįȑȞ Įʌȩ IJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. ȉȠ ʌȡȩȖȡĮµµĮ țĮȜİȓ IJȘ įȚĮįȚțĮıȓĮ Change, Ș ȠʌȠȓĮ ĮȜȜȐȗİȚ IJȘȞ IJȚµȒ IJȘȢ ȋ ıİ 1 țĮȚ ĮȣIJȒ Ș IJȚµȒ IJȣʌȫȞİIJĮȚ Įʌȩ IJȘȞ IJİȜİȣIJĮȓĮ İȞIJȠȜȒ IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ, Writeln(X). ǹȢ șİȦȡȒıȠȣµİ ȩµȦȢ IJȫȡĮ ȑȞĮ ȐȜȜȠ ʌȡȩȖȡĮµµĮ IJȠ ȠʌȠȓȠ İȓȞĮȚ ıȤİįȩȞ IJȠ ȓįȚȠ µİ IJȠ ʌȡȠȘȖȠȪµİȞȠ, ȑȤİȚ ȩµȦȢ µȚĮ įȒȜȦıȘ IJȠʌȚțȒȢ µİIJĮȕȜȘIJȒȢ ıIJȘ įȚĮįȚțĮıȓĮ:
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-123-
Program Simple2; Var X: Integer; Procedure Change; Var X: Integer; Begin X:=1 End; {Change} Begin X:=0; Change; Writeln(X) End. {Simple2}
ǹȣIJȩ IJȠ įİȪIJİȡȠ ʌȡȩȖȡĮµµĮ ȑȤİȚ įȪȠ µİIJĮȕȜȘIJȑȢ, țĮȚ ȠȚ įȪȠ µİ IJȠ ȩȞȠµĮ ȋ. Ǿ µȓĮ Įʌ'ĮȣIJȑȢ İȓȞĮȚ µȓĮ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ țĮȚ Ș ȐȜȜȘ, ȠȡȚıµȑȞȘ ıIJȘ įȚĮįȚțĮıȓĮ, İȓȞĮȚ IJȠʌȚțȒ. Ǿ İȞIJȠȜȒ țĮIJĮȤȫȡȚıȘȢ ȋ:=1 ıIJȘ įȚĮįȚțĮıȓĮ țĮIJĮȤȦȡİȓ ıIJȘȞ IJȠʌȚțȒ µİIJĮȕȜȘIJȒ IJȘȞ IJȚµȒ 1. ǹȢ șȣµȘșȠȪµİ ȩIJȚ Ș įȒȜȦıȘ IJȘȢ IJȠʌȚțȒȢ µİIJĮȕȜȘIJȒȢ ȋ, ȣʌİȡȚıȤȪİȚ, µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ, IJȘȢ țĮșȠȜȚțȒȢ įȒȜȦıȘȢ IJȘȢ ȋ. ȈIJȘȞ ʌȡĮȖµĮIJȚțȩIJȘIJĮ, įȘȜȫȞȠȞIJĮȢ µȚĮ IJȠʌȚțȒ µİIJĮȕȜȘIJȒ ȋ, ȞĮ ȑȤİȚ IJȠ ȓįȚȠ ȩȞȠµĮ µİ µȚĮ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ ȋ, ݵʌȠįȓȗȠȣµİ IJȘ įȚĮįȚțĮıȓĮ ȞĮ ȑȤİȚ ʌȡȩıȕĮıȘ ıIJȘȞ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ ȋ. ȀĮIJȐ ıȣȞȑʌİȚĮ, Ș țĮIJĮȤȫȡȚıȘ ȋ:=1 µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ Change įİȞ İʌȘȡİȐȗİȚ IJȘȞ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ ȋ, Ș ȠʌȠȓĮ ʌĮȡĮµȑȞİȚ µȘįȑȞ, IJȠ ȠʌȠȓȠ IJİȜȚțȐ IJȣʌȫȞİIJĮȚ. ȈIJȘȞ İʌȩµİȞȘ version IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ Simple, įȓȞȠȣµİ ıIJȘ įȚĮįȚțĮıȓĮ Change µȓĮ ʌĮȡȐµİIJȡȠ: Program Simple3; Var X: Integer; Procedure Change(Y: Integer); Begin Y:=1 End; {Change} Begin X:=0; Change(X); Writeln(X) End. {Simple3}
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-124-
ǼȤȠȣµİ ʌȐȜȚ µȚĮ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ ȋ, IJȫȡĮ ȩµȦȢ ȑȤȠȣµİ µȚĮ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ Ȋ. Ǿ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠȢ Ȋ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȖȚĮ ȞĮ İȚıȐȖİȚ įİįȠµȑȞĮ ıIJȘ įȚĮįȚțĮıȓĮ. ȉȠ țȐȜİıµĮ IJȘȢ įȚĮįȚțĮıȓĮȢ Change(X)
ȣʌȠȞȠİȓ IJȘȞ İȞIJȠȜȒ țĮIJĮȤȫȡȚıȘȢ Ȋ:=ȋ
ʌȡȚȞ IJȘȞ İțIJȑȜİıȘ IJȘȢ ʌȡȫIJȘȢ İȞIJȠȜȒȢ IJȘȢ įȚĮįȚțĮıȓĮȢ. ȂİIJȐ IJȘȞ İȓıȠįȠ ıIJȘ įȚĮįȚțĮıȓĮ įİȞ ȣʌȐȡȤİȚ ʌȜȑȠȞ ıȤȑıȘ µİIJĮȟȪ ȋ țĮȚ Ȋ, țĮȚ ȑIJıȚ Ș İȞIJȠȜȒ țĮIJĮȤȫȡȚıȘȢ Ȋ:=1
įİȞ ȑȤİȚ İʌȓįȡĮıȘ IJȣʌȫıİȚ µȘįȑȞ.
ıIJȘȞ
IJȚµȒ
IJȘȢ
ȋ.
ǼIJıȚ
IJȠ
ʌȡȩȖȡĮµµĮ
șĮ
ȅȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ, ʌȠȣ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ ȞĮ İȚıȐȖȠȣȞ įİįȠµȑȞĮ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ (ȩʌȦȢ Ș Ȋ ıIJȠ ʌȡȠȘȖȠȪµİȞȠ ʌĮȡȐįİȚȖµĮ), ȜȑȖȠȞIJĮȚ ʌĮȡȐµİIJȡȠȚ ıIJĮșİȡȫȞ IJȚµȫȞ (value) țĮȚ Ș µİIJĮȕȓȕĮıȘ ʌĮȡĮµȑIJȡȦȞ µİ ĮȣIJȩȞ IJȠȞ IJȡȩʌȠ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ, ȜȑȖİIJĮȚ µİIJĮȕȓȕĮıȘ ʌĮȡĮµȑIJȡȦȞ țĮIJ'ĮȟȓĮ (by value). ȅIJĮȞ µȓĮ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠȢ İȓȞĮȚ µȚĮ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ, Ș ĮȞIJȓıIJȠȚȤȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ µʌȠȡİȓ ȞĮ İȓȞĮȚ µȚĮ µİIJĮȕȜȘIJȒ, µȚĮ ʌĮȡȐıIJĮıȘ Ȓ µȚĮ ıIJĮșİȡȐ. Ȃİ IJȘ įȚĮįȚțĮıȓĮ Change ȩʌȦȢ ȠȡȓıIJȘțİ ıIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ, șĮ µʌȠȡȠȪıĮµİ ȞĮ ȖȡȐȥȠȣµİ țȜȒıİȚȢ IJȘȢ ȦȢ İȟȒȢ: Change(2*X+5)
Ȓ Change(2)
ȈIJȘ ʌȡȫIJȘ ʌİȡȓʌIJȦıȘ șĮ İȓȤĮµİ IJȘȞ İȞIJȠȜȒ țĮIJĮȤȫȡȘıȘȢ Ȋ:=2*ȋ+5
țĮȚ ıIJȘ įİȪIJİȡȘ ʌİȡȓʌIJȦıȘ Ȋ:=2
ʌȡȚȞ İțIJİȜİıșİȓ Ș įȚĮįȚțĮıȓĮ. Ǿ ȐȜȜȘ țĮIJȘȖȠȡȓĮ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ, ȜȑȖȠȞIJĮȚ ʌĮȡȐµİIJȡȠȚ µİIJĮȕȜȘIJȫȞ IJȚµȫȞ. ǹȢ șİȦȡȒıȠȣµİ IJȘȞ İʌȩµİȞȘ version IJȠȣ ʌȡȠȖȡȐµµĮIJȠȢ Simple, ʌȠȣ µȠȚȐȗİȚ µİ IJȘȞ ʌȡȠȘȖȠȪµİȞȘ, µȩȞȠ ʌȠȣ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-125-
IJȫȡĮ ȑȤİȚ ʌȡȠıIJİșİȓ Ș įİıµİȣµȑȞȘ ȜȑȟȘ Var ʌȡȚȞ Įʌȩ IJȘȞ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ Ȋ. Program Simple3; Var X: Integer; Procedure Change(Var Y: Integer); Begin Y:=1 End; {Change} Begin X:=0; Change(X); Writeln(X) End. {Simple}
ǹȣIJȩ IJȠ ʌȡȩȖȡĮµµĮ ȑȤİȚ µȚĮ țĮșȠȜȚțȒ µİIJĮȕȜȘIJȒ µİ ȩȞȠµĮ ȋ țĮȚ µȚĮ įȚĮįȚțĮıȓĮ, Change, µİ µȚĮ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ. ȅȞȠµȐȗȠȣµİ IJȘȞ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ Ȋ ȖȚĮ ȞĮ ĮʌȠijȪȖȠȣµİ IJȘ ıȪȖȤȣıȘ, ıIJȘȞ ʌȡĮȖµĮIJȚțȩIJȘIJĮ ȩµȦȢ IJȠ ʌȡȩȖȡĮµµĮ șĮ įȠȪȜİȣİ țĮIJȐ IJȠȞ ȓįȚȠ IJȡȩʌȠ ĮȞ ȖȡȐijĮµİ ȋ ĮȞIJȓ ȖȚĮ Ȋ. ȉȘȢ įȒȜȦıȘȢ IJȘȢ Ȋ ıIJȘȞ İʌȚțİijĮȜȓįĮ IJȘȢ įȚĮįȚțĮıȓĮȢ, ʌȡȠȘȖİȓIJĮȚ Ș įİıµİȣµȑȞȘ ȜȑȟȘ Var. ǹȣIJȩ ȠȡȓȗİȚ IJȘȞ Ȋ ȦȢ µȚĮ ʌĮȡȐµİIJȡȠ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ, IJȠ ȠʌȠȓȠ ıȘµĮȓȞİȚ ʌȦȢ ȩ,IJȚ ıȣµȕİȓ ȖȚĮ IJȘȞ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠ Ȋ µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ, șĮ ıȣµȕİȓ țĮȚ ıIJȘȞ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠ ȋ. ȀĮIJȐ ıȣȞȑʌİȚĮ Ș İȞIJȠȜȒ țĮIJĮȤȫȡȚıȘȢ Ȋ:=1, șĮ ĮȜȜȐȟİȚ IJȘȞ IJȚµȒ IJȘȢ ʌȡĮȖµĮIJȚțȒȢ ʌĮȡĮµȑIJȡȠȣ ȋ ıİ 1 țĮȚ ijȣıȚțȐ ĮȣIJȩ șĮ IJȣʌȫıİȚ IJȠ ʌȡȩȖȡĮµµĮ. ǼIJıȚ ȕȜȑʌȠȣµİ ʌȫȢ µȚĮ IJȣʌȚțȒ ʌĮȡȐµİIJȡȠȢ µʌȠȡİȓ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ ȩȤȚ µȩȞȠ ȖȚĮ IJȘȞ İȓıȠįȠ įİįȠµȑȞȦȞ ıIJȠ ȣʌȠʌȡȩȖȡĮµµĮ, ĮȜȜȐ țĮȚ ȖȚĮ IJȘȞ ȑȟȠįȠ ĮʌȠIJİȜİıµȐIJȦȞ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. ȅȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ, IJȠȣ ȠȞȩµĮIJȠȢ IJȦȞ ȠʌȠȓȦȞ ʌȡȠȘȖİȓIJĮȚ Ș ȜȑȟȘ Var (ȩʌȦȢ Ș Ȋ ıIJȠ ʌȡȠȘȖȠȪµİȞȠ ʌĮȡȐįİȚȖµĮ), ȜȑȖȠȞIJĮȚ ʌĮȡȐµİIJȡȠȚ µİIJĮȕȜȘIJȫȞ IJȚµȫȞ (variable) țĮȚ Ș µİIJĮȕȓȕĮıȘ ʌĮȡĮµȑIJȡȦȞ µİ ĮȣIJȩȞ IJȠȞ IJȡȩʌȠ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ, ȜȑȖİIJĮȚ µİIJĮȕȓȕĮıȘ ʌĮȡĮµȑIJȡȦȞ țĮIJ'ĮȞĮijȠȡȐ (by reference). ȀĮIJȐ IJȘȞ İțIJȑȜİıȘ İȞȩȢ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, ȠȚ ʌĮȡȐµİIJȡȠȚ µİIJĮȕȜȘIJȫȞ IJȚµȫȞ µİIJĮȤİȚȡȓȗȠȞIJĮȚ įȚĮijȠȡİIJȚțȐ Įʌȩ İțİȓȞİȢ IJȦȞ ıIJĮșİȡȫȞ IJȚµȫȞ. ǼIJıȚ țĮIJȐ IJȘ įȚȐȡțİȚĮ IJȘȢ İțIJȑȜİıȘȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, țȐșİ ȩȞȠµĮ IJȣʌȚțȒȢ ʌĮȡĮµȑIJȡȠȣ µİIJĮȕȜȘIJȫȞ IJȚµȫȞ, ȖȓȞİIJĮȚ ȑȞĮ ȐȜȜȠ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-126-
ȩȞȠµĮ ȖȚĮ IJȘȞ ĮȞIJȓıIJȠȚȤȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠ. Ȃİ ȐȜȜĮ ȜȩȖȚĮ įȘȜĮįȒ, Ƞ ȤȫȡȠȢ IJȘȢ µȞȒµȘȢ Ƞ ȠʌȠȓȠȢ ʌȡȚȞ IJȘȞ İțIJȑȜİıȘ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ ȒIJĮȞ ȖȞȦıIJȩȢ µİ ȑȞĮ µȩȞȠ ȩȞȠµĮ -IJȠ ȩȞȠµĮ IJȘȢ ʌȡĮȖµĮIJȚțȒȢ µİIJĮȕȜȘIJȒȢĮȞĮȖȞȦȡȓȗİIJĮȚ IJȫȡĮ țĮȚ µİ ȑȞĮ ȐȜȜȠ ȩȞȠµĮ, -IJȠ ȩȞȠµĮ IJȘȢ ĮȞIJȓıIJȠȚȤȘȢ ʌĮȡĮµȑIJȡȠȣ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ. Ȃİ IJȠȞ IJȡȩʌȠ ĮȣIJȩȞ, ȠʌȠȚĮįȒʌȠIJİ IJȡȠʌȠʌȠȓȘıȘ IJȘȢ IJȣʌȚțȒȢ ʌĮȡĮµȑIJȡȠȣ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ, țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, ʌȡȠțĮȜİȓ IJȘȞ ȓįȚĮ µİIJĮȕȠȜȒ ıIJȘȞ ĮȞIJȓıIJȠȚȤȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠ, țĮșȩıȠȞ țĮȚ ȠȚ įȪȠ ʌĮȡȐµİIJȡȠȚ (IJȣʌȚțȒ țĮȚ ʌȡĮȖµĮIJȚțȒ) ĮȞĮijȑȡȠȞIJĮȚ ıIJȘȞ ȓįȚĮ șȑıȘ µȞȒµȘȢ. ǹȞIJȓșİIJĮ, ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȑȞĮȢ įȚĮijȠȡİIJȚțȩȢ µȘȤĮȞȚıµȩȢ ȖȚĮ IJȚȢ ʌĮȡĮµȑIJȡȠȣȢ ıIJĮșİȡȫȞ IJȚµȫȞ, İijȩıȠȞ ȠȚ IJȣʌȚțȑȢ IJȠȣȢ ʌĮȡȐµİIJȡȠȚ İȞİȡȖȠȪȞ ıĮȞ IJȠʌȚțȑȢ µİIJĮȕȜȘIJȑȢ IJȦȞ ȣʌȠʌȡȠȖȡĮµµȐIJȦȞ. ȅ µȠȞĮįȚțȩȢ ıțȠʌȩȢ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ ʌĮȡĮµȑIJȡȦȞ ıIJĮșİȡȫȞ IJȚµȫȞ, İȓȞĮȚ ȞĮ įȫıȠȣȞ ĮȡȤȚțȑȢ IJȚµȑȢ ıIJȚȢ ĮȞIJȓıIJȠȚȤİȢ IJȣʌȚțȑȢ. ȂİIJȐ Įʌȩ ĮȣIJȩ, ȠʌȠȚİıįȒʌȠIJİ ĮȜȜĮȖȑȢ ıIJȚȢ IJȚµȑȢ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ įİȞ İʌȘȡİȐȗȠȣȞ IJȚȢ IJȚµȑȢ IJȦȞ ĮȞIJȓıIJȠȚȤȦȞ ʌȡĮȖµĮIJȚțȫȞ. Ȃİ ȐȜȜĮ ȜȩȖȚĮ, µȚĮ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ İȓȞĮȚ µȚĮ ȞȑĮ µİIJĮȕȜȘIJȒ µİ IJȠ įȚțȩ IJȘȢ ȤȫȡȠ ıIJȘ µȞȒµȘ IJȠȣ Ǿ/Ȋ. ȀĮIJȐ IJȘ įȚȐȡțİȚĮ įİ IJȘȢ țȜȒıȘȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, țĮIJĮȤȦȡȠȪȞIJĮȚ ȠȚ IJȚµȑȢ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ ʌĮȡĮµȑIJȡȦȞ ıIJȚȢ ĮȞIJȓıIJȠȚȤİȢ IJȣʌȚțȑȢ ıIJĮșİȡȫȞ IJȚµȫȞ. ȅµȦȢ ȩIJĮȞ IJİȜİȚȫıİȚ Ș İțIJȑȜİıȘ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ ȠȚ ȤȫȡȠȚ µȞȒµȘȢ ʌȠȣ İȓȤĮȞ įȚĮIJİșİȓ ȖȚĮ IJȚȢ IJȣʌȚțȑȢ ʌĮȡĮµȑIJȡȠȣȢ ıIJĮșİȡȫȞ IJȚµȫȞ "ȤȐȞȠȞIJĮȚ" țĮȚ ȠȚ ʌĮȡȐµİIJȡȠȚ ĮȣIJȑȢ ʌĮȪȠȣȞ ȞĮ ȣʌȐȡȤȠȣȞ. ǹȞ ȜȠȚʌȩȞ șȑȜȠȣµİ ȞĮ µȘȞ İʌȘȡİĮıșİȓ IJȠ ʌİȡȚİȤȩµİȞȠ µȚĮȢ µİIJĮȕȜȘIJȒȢ ʌȠȣ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ ȦȢ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ ıİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ țĮIJȐ IJȘ įȚȐȡțİȚĮ İțIJȑȜİıȘȢ IJȠȣ ȣʌȠʌȡȠȖȡȐµµĮIJȠȢ, IJȩIJİ șĮ ʌȡȑʌİȚ ȞĮ IJȘ įȘȜȫıȠȣµİ ȦȢ ʌĮȡȐµİIJȡȠ ıIJĮșİȡȒȢ IJȚµȒȢ. ǼȞĮ ıȣȞȘșȚıµȑȞȠ ȜȠȖȚțȩ ȜȐșȠȢ ʌȠȣ įȪıțȠȜĮ µʌȠȡİȓ ȞĮ ĮȞȚȤȞİȣșİȓ İȓȞĮȚ ȞĮ ȠȡȓȗİIJĮȚ µȓĮ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ ıĮȞ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ. īȚĮ ȞĮ ĮʌȠijİȣȤșİȓ ĮȣIJȩ IJȠ ȜȐșȠȢ, ʌȡȑʌİȚ țĮȞİȓȢ ȞĮ ȑȤİȚ ȣʌȩȥȘ IJȠȣ IJĮ İȟȒȢ: -
ǹȞ µȓĮ ʌĮȡȐµİIJȡȠȢ ĮȞIJȚʌȡȠıȦʌİȪİȚ ȑȞĮ ĮʌȠIJȑȜİıµĮ ʌȠȣ ȣʌȠȜȠȖȓȗİIJĮȚ µȑıĮ ıIJȠ ȣʌȠʌȡȩȖȡĮµµĮ ȖȚĮ ȞĮ ȤȡȘıȚµȠʌȠȚȘșİȓ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-127-
ȠʌȠȣįȒʌȠIJİ ĮȜȜȠȪ ıIJȠ țȣȡȓȦȢ ʌȡȩȖȡĮµµĮ, IJȩIJİ șĮ ʌȡȑʌİȚ ȞĮ ȠȡȚıșİȓ ȦȢ ʌĮȡȐµİIJȡȠȢ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ. -
ǹȞ µȓĮ ʌĮȡȐµİIJȡȠȢ ȤȡȘıȚµȠʌȠȚİȓIJĮȚ µȩȞȠ ȖȚĮ IJȘ µİIJȐįȠıȘ µȚĮȢ IJȚµȒȢ ıIJȠ ȣʌȠʌȡȩȖȡĮµµĮ, IJȩIJİ șĮ ʌȡȑʌİȚ ȞĮ ȠȡȚıșİȓ ȦȢ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ.
ȆĮȡȐįİȚȖµĮ īȡȐȥIJİ µȚĮ įȚĮįȚțĮıȓĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȚȢ ȫȡİȢ, IJĮ ȜİʌIJȐ țĮȚ IJĮ įİȣIJİȡȩȜİʌIJĮ İȞȩȢ ȤȡȩȞȠȣ ʌȠȣ șĮ įȓȞİIJĮȚ ıİ įİȣIJİȡȩȜİʌIJĮ. Procedure Convert (TotalSec: Intrger, Var Hour,Min,Sec: Integer); {ȂİIJĮIJȡȑʌİȚ IJĮ įİȣ/ʌIJĮ ıİ ȫȡİȢ, ȜİʌIJȐ țĮȚ įİȣ/ʌIJĮ} Begin Hour:=TotalSec DIV 3600; Min:=(TotalSec MOD 3600) DIV 60; Sec:=(TotalSec MOD 3600) MOD 60 End;
ȈIJȠ ʌĮȡĮʌȐȞȦ ʌĮȡȐįİȚȖµĮ Ș ʌĮȡȐµİIJȡȠȢ TotalSec įȓȞİȚ µȓĮ IJȚµȒ ıIJȘ įȚĮįȚțĮıȓĮ, Ș ȠʌȠȓĮ IJȚµȒ ʌȡȩțİȚIJĮȚ ȞĮ İʌİȟİȡȖĮıIJİȓ, ȖȚ'ĮȣIJȩ ȠȡȓıIJȘțİ ȦȢ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ. ȅȚ ȐȜȜİȢ IJȡİȚȢ ʌĮȡȐµİIJȡȠȚ ȤȡȘıȚµȠʌȠȚȠȪȞIJĮȚ ȖȚĮ IJȠȞ ȣʌȠȜȠȖȚıµȩ IJȦȞ ĮʌȠIJİȜİıµȐIJȦȞ µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ țĮȚ IJȘ µİIJĮijȠȡȐ IJȦȞ IJȚµȫȞ ĮȣIJȫȞ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ, ȖȚĮ IJȠ ȜȩȖȠ ĮȣIJȩȞ ȠȡȓıIJȘțĮȞ ȦȢ ʌĮȡȐµİIJȡȠȚ µİIJĮȕȜȘIJȫȞ IJȚµȫȞ. ȂȚĮ IJȣʌȚțȒ țȜȒıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ Convert İȓȞĮȚ Ș ʌĮȡĮțȐIJȦ: Convert (5678, Ores, Lepta, Deyt);
ȩʌȠȣ Ores, Lepta țĮȚ Deyt İȓȞĮȚ µİIJĮȕȜȘIJȑȢ ȠȚ ȠʌȠȓİȢ ȑȤȠȣȞ įȘȜȦșİȓ ıIJȠ țȪȡȚȠ ʌȡȩȖȡĮµµĮ. Ǿ ʌȡȫIJȘ ʌȡĮȖµĮIJȚțȒ ʌĮȡȐµİIJȡȠȢ İȓȞĮȚ µȚĮ ʌĮȡȐµİIJȡȠȢ ıIJĮșİȡȒȢ IJȚµȒȢ țĮȚ ȑIJıȚ µʌȠȡİȓ ȞĮ İȓȞĮȚ ȑȞĮȢ ĮȡȚșµȩȢ, µȓĮ µİIJĮȕȜȘIJȒ Ȓ µȓĮ ʌĮȡȐıIJĮıȘ. ȅȚ ȐȜȜİȢ IJȡİȚȢ ʌȡĮȖµĮIJȚțȑȢ ʌĮȡȐµİIJȡȠȚ ʌȡȑʌİȚ ȠʌȦıįȒʌȠIJİ ȞĮ İȓȞĮȚ ȠȞȩµĮIJĮ µİIJĮȕȜȘIJȫȞ ĮijȠȪ ʌȡȩțİȚIJĮȚ ȞĮ ʌİȡȚȑȤȠȣȞ ĮʌȠIJİȜȑıµĮIJĮ ʌȠȣ ȣʌȠȜȠȖȚıșȠȪȞ µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ. Ȉİ ĮȞIJȓșİıȘ µİ ʌĮȡĮµȑIJȡȠȣȢ ıIJĮșİȡȒȢ IJȚµȒȢ, ȠȚ ʌĮȡȐµİIJȡȠȚ µİIJĮȕȜȘIJȒȢ IJȚµȒȢ İȓȞĮȚ ĮȞĮȖțĮȓȠ ȞĮ ȑȤȠȣȞ țȐʌȠȚĮ ĮȡȤȚțȒ IJȚµȒ µİ IJȘȞ İȓıȠįȠ
șĮ IJȚȢ įİȞ ıIJȘ
įȚĮįȚțĮıȓĮ. ȀĮIJȐ IJȘȞ ȑȟȠįȠ ȩµȦȢ Įʌȩ IJȘ įȚĮįȚțĮıȓĮ ĮȣIJȑȢ ȠȚ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-128-
µİIJĮȕȜȘIJȑȢ șĮ ȑȤȠȣȞ IJȚȢ IJȚµȑȢ IJȦȞ ĮȞIJȓıIJȠȚȤȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ. ȈIJȘȞ ʌȡȠțİȚµȑȞȘ ʌİȡȓʌIJȦıȘ țĮIJȐ IJȘȞ ȑȟȠįȠ Įʌȩ IJȘȞ Convert ȠȚ µİIJĮȕȜȘIJȑȢ Hour, Min țĮȚ Sec șĮ ȑȤȠȣȞ IJȚȢ IJȚµȑȢ 1, 34 țĮȚ 38 ĮȞIJȚıIJȠȓȤȦȢ, ȠȚ ȠʌȠȓİȢ șĮ İȓȞĮȚ țĮȚ ȠȚ IJȚµȑȢ IJȦȞ Ores, Lepta țĮȚ Deyt. ȆĮȡĮıIJĮIJȚțȐ ȠȚ IJȚµȑȢ IJȦȞ µİIJĮȕȜȘIJȫȞ țĮIJȐ IJȚȢ įȚȐijȠȡİȢ ijȐıİȚȢ IJȘȢ țȜȒıȘȢ IJȘȢ įȚĮįȚțĮıȓĮȢ ʌĮȡȠȣıȚȐȗȠȞIJĮȚ ıIJȠ ʌĮȡĮțȐIJȦ įȚȐȖȡĮµµĮ:
ȆȡȚȞ IJȘȞ țȜȒıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ
Ores Lepta Deyt
? ? ?
Ores Lepta Deyt
5678 ? ? ?
TotalSec Hour Min Sec
Ores Lepta Deyt
5678 1 34 38
TotalSec Hour Min Sec
5678 1 34 38
TotalSec
Ores Lepta Deyt
Ȃİ IJȘȞ țȜȒıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ
ȁȓȖȠ ʌȡȚȞ IJȠ IJȑȜȠȢ IJȘȢ İțIJȑȜİıȘȢ IJȘȢ įȚĮįȚțĮıȓĮȢ
ȂİIJȐ IJȘȞ İțIJȑȜİıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ
ȈIJȠ ʌĮȡĮʌȐȞȦ įȚȐȖȡĮµµĮ IJĮ ȠȞȩµĮIJĮ IJȦȞ ʌȡĮȖµĮIJȚțȫȞ ʌĮȡĮµȑIJȡȦȞ ȑȤȠȣȞ IJȠʌȠșİIJȘșİȓ ıIJĮ ĮȡȚıIJİȡȐ IJȦȞ IJİIJȡĮȖȫȞȦȞ ʌȠȣ ʌİȡȚȑȤȠȣȞ (Ȓ įİȞ ʌİȡȚȑȤȠȣȞ) IJȚȢ ĮȞIJȓıIJȠȚȤİȢ IJȚµȑȢ IJȠȣȢ, İȞȫ IJĮ ȠȞȩµĮIJĮ IJȦȞ IJȣʌȚțȫȞ ʌĮȡĮµȑIJȡȦȞ ȑȤȠȣȞ IJȠʌȠșİIJȘșİȓ ıIJĮ įİȟȚȐ. ǹȢ ıȘµİȚȦșİȓ ȩIJȚ ȠȚ IJȣʌȚțȑȢ ʌĮȡȐµİIJȡȠȚ įİȞ ȑȤȠȣȞ ȞȩȘµĮ ȑȟȦ Įʌȩ IJȘ įȚĮįȚțĮıȓĮ. ǹțȩµĮ țĮȚ µȑıĮ ıIJȘ įȚĮįȚțĮıȓĮ ȠȚ ʌĮȡȐµİIJȡȠȚ Hour, Min țĮȚ Sec įİȞ ȑȤȠȣȞ țĮµȓĮ ȣʌȩıIJĮıȘ ʌĮȡȐ µȩȞȠ ıĮȞ įȚĮijȠȡİIJȚțȐ ȠȞȩµĮIJĮ ȖȚĮ IJȚȢ ĮȞIJȓıIJȠȚȤİȢ ʌȡĮȖµĮIJȚțȑȢ ʌĮȡĮµȑIJȡȠȣȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-129-
11.3 ǹȈȀǾȈǼǿȈ 1. īȡȐȥIJİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȘȞ ʌȠıȩIJȘIJĮ Xn, ȩʌȠȣ X ʌȡĮȖµĮIJȚțȩȢ ĮȡȚșµȩȢ țĮȚ n ĮțȑȡĮȚȠȢ. 2. ȃĮ ȖȡĮijİȓ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ ʌȡȩıȘµȠ İȞȩȢ ʌȡĮȖµĮIJȚțȠȪ ĮȡȚșµȠȪ. 3. ȆȠȚĮ șĮ İȓȞĮȚ ʌȡȩȖȡĮµµĮ:
IJĮ
ĮʌȠIJİȜȑıµĮIJĮ
ʌȠȣ
ȞĮ
ʌȡȠıįȚȠȡȓȗİȚ
IJȠ
ʌȠȣ
șĮ
IJȣʌȫıİȚ
IJȠ
ʌĮȡĮțȐIJȦ
ʌȠȣ
șĮ
IJȣʌȫıİȚ
IJȠ
ʌĮȡĮțȐIJȦ
Program ABCD; Var M,N: Integer; Procedure Add(Var I, J: Integer); Begin I:=I+J; J:=I+J; End; {Add} Begin M:=0; N:=1; Add(M,N); Writeln(M:5, N:5); While (N+N)<100 Do Add(M,N); Writeln(M:5, N:5) End. 4. ȆȠȚĮ șĮ İȓȞĮȚ ʌȡȩȖȡĮµµĮ:
IJĮ
ĮʌȠIJİȜȑıµĮIJĮ
Program XYZ; Var X,Y,Z: Integer; Log1, Log2: Boolean; Procedure ABC(Var A,B: Integer; Var L: Boolean); Begin If A>B Then A:=A-1; B:=B-A; L:=B>B End; {ABC} Begin X:=2; Y:=1; Z:=0; Log1:=True; Log2:=True; ABC(X,Y,Log1); Writeln('X=',X,' Y=',Y,' L=',Log1); If Log1 Then ABC(Y,Z,Log2) Else ABC(Z,Y,Log1); Writeln('Y=',Y,' Z=',Z) End. 5. īȡȐȥIJİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ įȚĮįȚțĮıȓĮ ʌȠȣ ȞĮ İȞĮȜȜȐııİȚ IJȚȢ IJȚµȑȢ įȪȠ µİIJĮȕȜȘIJȫȞ ʌȡĮȖµĮIJȚțȠȪ IJȪʌȠȣ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-130-
6. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ įȚĮȕȐȗİȚ ȑȞĮȞ ĮțȑȡĮȚȠ ĮȡȚșµȩ țĮȚ ıIJȘ ıȣȞȑȤİȚĮ ȞĮ IJȠȞ IJȣʌȫȞİȚ µİ IJȘȞ ĮȞIJȓıIJȡȠijȘ ijȠȡȐ (ʌ.Ȥ IJȠȞ ĮȡȚșµȩ 12345 ȞĮ IJȠȞ IJȣʌȫȞİȚ 54321). 7. ȃĮ ȖȡĮijİȓ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ, Digit(N,K), IJȑIJȠȚȠ ȫıIJİ ȞĮ İʌȚıIJȡȑijİȚ IJȘȞ IJȚµȒ IJȠȣ Ȁ-ıIJȠȪ Įʌȩ IJĮ įİȟȚȐ ȥȘijȓȠȣ IJȠȣ ĮȡȚșµȠȪ ȃ. Ȇ.Ȥ Digit(25678,3)=6 țĮȚ Digit(9876,6)=0. 8. īȡȐȥIJİ ȑȞĮ ʌȡȩȖȡĮµµĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ țĮȚ IJȣʌȫȞİȚ IJȠȣȢ ʌȡȫIJȠȣȢ ȃ ĮȡȚșµȠȪȢ Fibonacci, ȖȚĮ įİįȠµȑȞȠ țȐșİ ijȠȡȐ ȃ. Ǿ ıİȚȡȐ IJȦȞ ĮȡȚșµȫȞ IJȠȣ Fibonacci ȟİțȚȞȐ µİ IJȠȣȢ ĮȡȚșµȠȪȢ 0, 1 țĮȚ țȐșİ İʌȩµİȞȠȢ ĮȡȚșµȩȢ ȣʌȠȜȠȖȓȗİIJĮȚ ȦȢ IJȠ ȐșȡȠȚıµĮ IJȦȞ įȪȠ ʌȡȠȘȖȠȣµȑȞȦȞ IJȠȣ. Ȇ.Ȥ ȠȚ ʌȡȫIJȠȚ 8 ĮȡȚșµȠȓ Fibonacci İȓȞĮȚ ȠȚ: 0,1,1,2,3,5,8,13. 9. īȡȐȥIJİ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ įȚĮįȚțĮıȓĮ ʌȠȣ ȞĮ ȣʌȠȜȠȖȓȗİȚ IJȠ µȑıȠ ȩȡȠ ȃ ĮȡȚșµȫȞ. ȉȠ ʌȜȒșȠȢ IJȦȞ ĮȡȚșµȫȞ, ȃ, ȞĮ İȚıȐȖİIJĮȚ ıĮȞ ʌĮȡȐµİIJȡȠȢ ıIJȘ įȒȜȦıȘ IJȘȢ įȚĮįȚțĮıȓĮȢ. 10. ȃĮ ȖȡĮijİȓ ȑȞĮ ȣʌȠʌȡȩȖȡĮµµĮ ıȣȞȐȡIJȘıȘ IJȠ ȠʌȠȓȠ ȞĮ İʌȚıIJȡȑijİȚ IJȠ µȚțȡȩIJİȡȠ Įʌȩ 3 ʌȡĮȖµĮIJȚțȠȪȢ ĮȡȚșµȠȪȢ.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-131-
12. ǺǿǺȁǿȅīȇǹĭǿǹ 1. Ĭ.ǹȁǼǺǿǽȅȈ & ǹ.ȀǹȂȆȅȊȇǼȁǾȈ, "ȂĮșȒµĮIJĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ: ǼȚıĮȖȦȖȒ µİ IJȘ īȜȫııĮ Pascal", ǻİȪIJİȡȘ ǼțįȠıȘ, ǹșȒȞĮ 1988. 2. P.GROGONO, "Programming In Pascal", Second Reading, Massachusetts, Addison-Wesley, 1984.
Edition,
3. K.JENSEN & N.WIRTH, "Pascal User Manual and Report", Second Corrected Reprint of the Second Edition, Springer-Verlag, New York, 1978. 4. ȁ.ȀǹȈȉȇǿȈǿȅȈ, 1992.
"Turbo
Pascal
ȖȚĮ
Windows",
Anubis,
ǹșȒȞĮ
5. ȃ.ȂǿȈȊȇȁǾȈ, "Pascal țĮȚ Turbo Pascal 5.0", ȈȣµµİIJȡȓĮ, ǹșȒȞĮ 1989. 6. S.O'BRIEN, "Turbo Pascal 6: The Complete Reference", McGraw-Hill Inc, 1991. ȀĮȚ ıIJĮ İȜȜȘȞȚțȐ µİ IJȓIJȜȠ: "ȉȠ ȂİȖȐȜȠ ǺȚȕȜȓȠ IJȘȢ Turbo Pascal 6", ȀȜİȚįȐȡȚșµȠȢ, ǹșȒȞĮ, 1992. 7. D.S.STIVISON, "Introduction to Turbo Pascal", Sybex Inc, 1991. ȀĮȚ ıIJĮ İȜȜȘȞȚțȐ µİ IJȓIJȜȠ "Turbo Pascal, ǼȖȤİȚȡȓįȚȠ ǼțµȐșȘıȘȢ", ȀȜİȚįȐȡȚșµȠȢ, ǹșȒȞĮ, 1992. 8. N.WIRTH, "Algorithms & Data Structurs", Prentice-Hall (UK) Limited, London, 1986.
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
-132-
13. ȆǼȇǿǼȋȅȂǼȃǹ 1. ȈȊȃȉȅȂǾ ǼǿȈǹīȍīǾ Ȉȉȅȃ ȆȇȅīȇǹȂȂǹȉǿȈȂȅ
1
2. ǼǿȈǹīȍīǾ ȈȉǾȃ PASCAL
8
1.1 ȆȇȅīȇǹȂȂǹȉǹ 1.2 ȆȇȅīȇǹȂȂǹȉǿȈȂȅȈ 1.3 ȂǼȉǹĭȇǹȈǾ Ȁǹǿ ǼȀȉǼȁǼȈǾ ȆȇȅīȇǹȂȂǹȉȅȈ
2.1 īǼȃǿȀǹ 2.2 ȅ ǻȅȂǾȂǼȃȅȈ ȆȇȅīȇǹȂȂǹȉǿȈȂȅȈ Ȁǹǿ Ǿ PASCAL 2.3 ȈȉȅǿȋǼǿǹ ȉǾȈ īȁȍȈȈǹȈ ǻİıµİȣµȑȞİȢ ȁȑȟİȚȢ ȆȡȩIJȣʌĮ ǹȞĮȖȞȦȡȚıIJȚțȐ ǹȞĮȖȞȦȡȚıIJȚțȐ ȈȪµȕȠȜĮ ȂȒțȠȢ īȡĮµµȫȞ țĮȚ ȠȡȚȠșȑIJİȢ 2.4 ǻȅȂǾ ȆȇȅīȇǹȂȂǹȉȅȈ ȉǾȈ ȉ.ȇ
1 3 5
8 9 11 12 13 16 17 19 19
3. ȉȅ ȆǼȇǿǺǹȁȁȅȃ ȉǾȈ ȉ.ȇ
21
4. ǺǹȈǿȀȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ
27
5. ȈȉǹĬǼȇǼȈ - ȂǼȉǹǺȁǾȉǼȈ - ȆǹȇǹȈȉǹȈǼǿȈ
35
6. ǼȃȉȅȁǼȈ ǼǿȈȅǻȅȊ / ǼȄȅǻȅȊ
51
3.1 Ǿ ǼȀȀǿȃǾȈǾ - ȉǹ ȂǼȃȅȊ 3.2 ȅ ȈȊȃȉǹȀȉǾȈ ȀǼǿȂǼȃȅȊ ǼȞIJȠȜȑȢ ȖȚĮ IJȠ ıȣȞIJȐțIJȘ 4.1 ǹȀǼȇǹǿȅǿ (Integer) ȂȚțȡȠȓ ǹțȑȡĮȚȠȚ (ShortInt) ǹțȑȡĮȚȠȚ (Integer) ȂİȖȐȜȠȚ ǹțȑȡĮȚȠȚ (LongInt) ȉȚµȑȢ Word ȉȚµȑȢ Byte 4.2 ȆȇǹīȂǹȉǿȀȅǿ (Real) 4.3 ȋǹȇǹȀȉǾȇǼȈ (Char) 4.4 ǹȁĭǹȇǿĬȂǾȉǿȀǹ (String) 4.5 ȁȅīǿȀȅǿ (Boolean)
5.1 ȈȉǹĬǼȇǼȈ 5.2 ȂǼȉǹǺȁǾȉǼȈ 5.3 ǹȇǿĬȂǾȉǿȀǼȈ ȆǹȇǹȈȉǹȈǼǿȈ Ȁǹǿ ȉǼȁǼȈȉǼȈ ǼȚįȚțȠȓ ȉİȜİıIJȑȢ ǹțİȡĮȓȦȞ 5.4 ȁȅīǿȀǼȈ ȆǹȇǹȈȉǹȈǼǿȈ Ȁǹǿ ȉǼȁǼȈȉǼȈ ȁȠȖȚțȠȓ ȉİȜİıIJȑȢ ǹȞĮțİijĮȜĮȓȦıȘ ȉİȜİıIJȫȞ 5.5 Ǿ ǼȃȉȅȁǾ ȀǹȉǹȋȍȇǾȈǾȈ 5.6 ȉȊȆȅȆȅǿǾȂǼȃǼȈ ǹȇǿĬȂǾȉǿȀǼȈ ȈȊȃǹȇȉǾȈǼǿȈ 5.7 ȉȊȆȅȆȅǿǾȂǼȃǼȈ ǹȁĭǹȇǿĬȂǾȉǿȀǼȈ ȈȊȃǹȇȉǾȈǼǿȈ Ȁǹǿ ǻǿǹǻǿȀǹȈǿǼȈ 5.8 ǹȈȀǾȈǼǿȈ 6.1 ǼȃȉȅȁǼȈ ǼǿȈȅǻȅȊ Ǿ ǼȞIJȠȜȒ Read H ǼȞIJȠȜȒ Readln 6.2 ǼȃȉȅȁǼȈ ǼȄȅǻȅȊ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
21 23 24
27 27 27 28 29 29 29 32 33 34
35 37 38 39 41 41 43 44 45 47 47 48
51 51 53 54
Ǿ ȖȜȫııĮ ȆȡȠȖȡĮµµĮIJȚıµȠȪ Pascal
Ǿ ǼȞIJȠȜȒ Write Ǿ ǼȞIJȠȜȒ Writeln 6.3 ǹȈȀǾȈǼǿȈ
-133-
54 55 56
7. ǼȃȉȅȁǼȈ ǼȁǼīȋȅȊ
57
8. ǼȃȉȅȁǼȈ ǼȆǹȃǹȁǾȌǾȈ
69
9. ȅȇǿǽȅȂǼȃȅǿ ǹȆȅ ȉȅ ȋȇǾȈȉǾ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ
81
7.1 7.2 7.3 7.4
Ǿ ǼȃȉȅȁǾ IF Ǿ ǼȃȉȅȁǾ CASE Ǿ ǼȃȉȅȁǾ GOTO Ȁǹǿ Ǿ ǻǾȁȍȈǾ LABEL. ǹȈȀǾȈǼǿȈ
8.1 8.2 8.3 8.4
Ǿ ǼȃȉȅȁǾ WhileDo Ǿ ǼȃȉȅȁǾ RepeatUntil Ǿ ǼȃȉȅȁǾ FOR ǹȈȀǾȈǼǿȈ
9.1 ȉǹȀȉǿȀȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ 9.2 Ǿ ǻǾȁȍȈǾ ȉȊȇǼ 9.3 ȃǼȅǿ ǹȆǹȇǿĬȂǾȉȅǿ ȉȊȆȅǿ ǻǼǻȅȂǼȃȍȃ (ǺǹĬȂȍȉȅǿ ȉȊȆȅǿ) 9.4 ȉȊȆȅǿ ȊȆȅȆǼȇǿȅȋǾȈ 9.5 ȈȊȂǺǿǺǹȈȉȅȉǾȉǹ ȉȊȆȍȃ
10. ǻȅȂǼȈ ǻǼǻȅȂǼȃȍȃ
10.1 ȆǿȃǹȀǼȈ ǻȒȜȦıȘ ȆȓȞĮțĮ ǼʌİȟİȡȖĮıȓĮ ȆȡȠȕȜȘµȐIJȦȞ µİ ȆȓȞĮțİȢ 10.2 ǼīīȇǹĭǼȈ ǻȒȜȦıȘ ǼȖȖȡĮijȒȢ ǼʌİȟİȡȖĮıȓĮ İȖȖȡĮijȫȞ 10.3 ȈȊȃȅȁǹ ǻȒȜȦıȘ ȈȣȞȩȜȠȣ ȆȡȐȟİȚȢ ȂİIJĮȟȪ ȈȣȞȩȜȦȞ 10.4 ǹȈȀǾȈǼǿȈ
58 64 66 67
69 75 77 80 81 82
83 86 87
89
89 90 93 97 97 100 104 104 105 108
11. ȈȊȃǹȇȉǾȈǼǿȈ - ǻǿǹǻǿȀǹȈǿǼȈ
111
12. ǺǿǺȁǿȅīȇǹĭǿǹ 13. ȆǼȇǿǼȋȅȂǼȃǹ
131 132
11.1 ȈȊȃǹȇȉǾȈǼǿȈ 11.2 ǻǿǹǻǿȀǹȈǿǼȈ ȉȠʌȚțȑȢ țĮȚ ȀĮșȠȜȚțȑȢ ȂİIJĮȕȜȘIJȑȢ ȂİIJĮȕȜȘIJȑȢ țĮȚ ȆĮȡȐµİIJȡȠȚ 11.3 ǹȈȀǾȈǼǿȈ
ǹșĮȞȐıȚȠȢ Ǽ. ȀȠȣIJıȠȞȚțȩȜĮȢ
112 117 119 122 129