Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
LISP2 - LISP 2 |
Հրայրի արկածները շարունակվում են։ Նա, ազատելով կղզին անեծքից ցանկանում է, վերջապես, հեռանալ այստեղից։ Ծովափին նա նկատում է մի փոքրիկ նավակ, որն ուներ ծրագրավորվող ռոտոր։ Ավաղ, նրա խորամանկ թշնամիները դիտմամբ փչացրել էին ծրագրավորվող ռոտորը։ Շարքից դուրս էր եկել նավակը ղեկավարող LISP (Little Ship Programmin) լեզվի իրականացնող հատվածը։
Լեզուն բաղկացած է արտահայտություններից։ Դրանք գրվում են պրեֆիքսային ձևաչափով, այն է՝ նախ գրվում է գործողությունը, ապա դրան հաջորդում են արգումենտները, որոնք, իրենց հերթին կարող են լինել թվեր կամ արտահայտություններ։ Օրինակ՝ (mul (add 3 5) 2), ինչը համարժեք է (3 + 5)*2 թվաբանական արտահայտությանը։ Մասնավորապես, հայտարարված էին ֆունկցիաներ, ինչպես նաև կանչվում էին դրանք ու որոշ հենքային ֆունկցիաներ՝
- (add x y) գումարում
- (sub x y) հանում
- (mul x y) բազմապատկում
- (div x y) բաժանում, ամբողջ մաս
- (lt x y), (gt x y), (eq x y) համեմատում (<, >, =)
- (if x y z) հավասար է y-ին, եթե x արտահայտությունը ճշմարիտ է, z՝ հակառակ դեպքում
- (print expr) տպել expr արտահայտության արժեքը։
Երաշխավորվում է, որ ծրագրային կոդը կոռեկտ է, արդյունքը գտնելու համար հարկավոր է կատարել 200-ից քիչ գործողություն։ Ընթացիկ ոչ մի գործողության արդյունքը բացարձակ արժեքով չի գերազանցում 103-ը։ Ավելորդ բացակները և նոր տողի սիմվոլները անտեսվում են։ Ավելորդ փակագծեր չկան։ Մեկ կոդում կարող են լինել մի քանի հաջորդական գործողություններ, որոնք բաժանված են բացակով կամ նոր տողի սիմվոլով։ Ծրագրային կոդում տրված բոլոր թվերը ոչ բացասական ամբողջ թվեր են և չեն գերազանցում 104-ը։
Մուտք
Մուտքում տրված է ծրագրային կոդը։
Ելք
Անհրաժեշտ է իրականացնել կոդի իրականացման արդյունքը։
Օրինակ
Մուտք.
(print (if (eq 3 4)
(add 1 2)
(mul (add (mul 2 4) (sub 4 5)) 3)
)
)
Ելք.
21
Ավելացրեց. | Andreasyan |
Ամսաթիվ. | 2016-03-29 |
Ժամանակի սահմանափակումը. | 1s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3 |
Աղբյուրը. | Հանրապետական 2016 |