Кіріспе

Интерактивті бағдарламалау тілі

JOSS (JOHNNIAC Open Shop System) – алғашқы интерактивті, уақыт бөлісу бағдарламалау тілдерінің бірі. Ол 1960-шы жылдардан 1980-шы жылдарға дейінгі тілдерде кең таралған көптеген мүмкіндіктерді, соның ішінде жол нөмірлерін редакциялау нұсқаулары және тармақтар үшін мақсаттар ретінде пайдалануды, логикалық шарттарға негізделген операторларды және тікелей немесе дереу режимде нұсқауларды орындай алатын кіріктірілген бастапқы код редакторын енгізді. Олар мұны әңгімелесу пайдаланушы интерфейсі деп атады. JOSS бастапқыда RAND корпорациясының JOHNNIAC машинасына енгізілді және 1963 жылы желіге қосылды. Ол өте танымал болды, бірақ пайдаланушылардың көптігінен машинаның жұмысы тез қиындады. 1964 жылы жоғары өнімділікке ие жаңа жүйе іздестірілді. JOHNNIAC 1966 жылы қызметтен шығарылып, оның орнына PDP 6 келді, ол IBM Selectric негізінде жүздеген компьютерлік терминалдарды қолдауға өсті. Терминалдар пайдаланушы енгізген мәліметтер үшін жасыл, ал компьютердің жауабы үшін қара түс қолданды. Егер команда түсініксіз болса, жүйе жауап берді. Жүйе өте ықпалды болды және көптеген нұсқалары мен ұқсас жүйелер пайда болды. Кейбіреулері, мысалы TELCOMP және STRINGCOMP, CAL, CITRAN, ISIS, PIL/I, JEAN (ICT 1900 сериясы), Алгебралық интерпретациялық диалог (AID, PDP 10) түпнұсқаға ұқсас болды. Басқалары, мысалы FOCAL және MUMPS, өзгеше бағыттарда дамыды. JOSS 1980-ші жылдарда микрокомпьютерлерде кездесетін BASIC интерпретаторларына да ұқсас, бірақ негізінен синтаксис ерекшеліктерімен ерекшеленеді.

Бастапқы идея

1959 жылы Уиллис Уэр есептеу техникасы тақырыбында RAND меморандумында болашақ компьютерлерде "көптеген жеке кіріс-шығыс станциялары болады, сондықтан көптеген адамдар машинамен бір уақытта өзара әрекеттесе алады" деді. Бұл меморандум RAND-тің негізгі демеушісі – АҚШ Әуе күштерінің қызығушылығын тудырды, және 1960 жылы олар осы ұғымды зерттеу үшін Ақпараттық Процессор жобасын құрды, ол кейін уақыт бөлісу деп аталды. Жобаның мақсаты уақыт бөлісу емес, жалпы адам мен компьютердің өзара әрекеттесуін жақсарту болды. Ол кездегі идея, пайдаланушы мен компьютер арасындағы үнемі, екі жақты өзара әрекеттесу осындай қарым-қатынасты табиғи етеді деп есептелді. Кейінірек JOSS директоры Кит Ункафер былай деді:

Менің ойымша, экспериментті екі фактор жетектеді. Біріншіден, кем дегенде 1950 жылдан бастап, RAND-ке келгеннен бастап, RAND-тің компьютер ғылымы бөлімінде әрқашан пайдаланушымен ыңғайлы қарым-қатынасқа басымдық берілді. Бұл бізге сіңіп кеткен. Біз мұны Гуннингтен үйрендік, содан бері біз тура осы туралы ойладық. Екіншіден, математиктердің Marchant калькуляторларымен күресіп, JOHNNIAC-ті бастапқы күйінде пайдалана алмағанын көрдік. Бұл тым қиын болды. Олар бағдарламалауды үйренуге мәжбүр болды, бұл олар үшін өте жағымсыз тәжірибе болды. Біз оларға проблемаларын шешуге көмектесетін, табиғи құрал ретінде көрінетін, көп оқытуды қажет етпейтін және бағдарламашы болу туралы түсінік тудырмайтын нәрсені жасағымыз келді, себебі бұл оларды бұл саладан алшақтатқан болар еді. 1961 жылдың наурыз айында JOHNNIAC компьютерінде JOSS әзірлеу туралы ресми ұсыныс қабылданды.

JOSS-2 ауысуы

1964 жылдың мамыр айында JOHNNIAC машинасының орнын алмастыру үшін жаңа машина іздеу туралы шешім қабылданды және оны JOSS кеңейтілген нұсқасын іске қосуға толықтай бағыттау жоспарланды. Машина, сонымен қатар, Рэндтің талаптарына сәйкес жасалған жаңа терминалдарды қолдауы керек еді және 1965 жылдың 31 қазанына дейін жеткізілуі тиіс болды. Жаңа машинаға барлығы тоғыз өтінім түсті. Digital Equipment Corporation (DEC) компаниясы өздерінің жаңа PDP 6 жүйесімен бәйгеде жеңіске жетті, содан кейін сатып алуға Әуе күштерінен қаржы бөлінді. DEC сонымен қатар, желдеткішпен жиналған қағазды беруге арналған арнайы механизммен жабдықталған IBM Selectric теріс машинасының негізінде отыз терминал жасауға келісім берді. Жүйенің қалған бөліктері басқа компаниялардан жеткізілді. PDP 6 1965 жылдың шілдесінің соңында жеткізілді және бастапқыда терминал ретінде Teletype Model 33 үлгісі қолданылып сынақтан өтті. Кодтың жаңа нұсқасын Чарльз Л. Бейкер, Джозеф В. Смит, Ирвин Д. Гринвальд және Г. Эдвард Брайан жасады. Жүйе алғаш рет қазан айында жұмыс істейтіндей болды деп хабарланды, бірақ бұл аптасына алты сағаттық жоспарлы техникалық қызмет көрсетуді де қамтыды. Бірінші прототиптік терминал қараша айында келді. Желтоқсан айында Лас-Вегастағы терминал алғаш рет қашықтан қосылды. 1966 жылдың ақпан айында ол Макклеллан Әуе күштері базасына, тамыз айында Әуе күштері академиясына, ал қыркүйек айында ARPA және Пентагондағы Әуе күштері кеңсесіне жіберілді. Teletype Model 35 үшін алғашқы тұрақты сыртқы телетайп байланысы 1967 жылдың ақпан айында Лэнгли Әуе күштері базасында орнатылды. Жаңа машина іске қосылғаннан кейін JOHNNIAC 1966 жылдың 11 ақпанында желіден ажыратылды және 18 ақпанда ресми түрде қызметтен босатылды. Оның соңғы жұмыс істеп тұрған бағдарламасы JOSS тілінде жазылған және оның өшірілуіне дейін секундтарды санады. Машина Лос-Анджелес округінің мұражайына жіберілді, кейін Сан-Францискодан тыс орналасқан Компьютер тарихы мұражайына жеткізілді. JOSS 2 жүйесімен алмастырылғаннан кейін, бастапқы жүйе кейіннен JOSS 1 деп аталды.

JOSS-2 пайдалануы

1966 жылдың соңына қарай жаңа JOSS 2 жүйесі толыққанды жұмыс істеп, JOSS пайдалануына тәулік бойы 24/7 берілді. Жаңа машина есептеу жылдамдығын шамамен 30 есе арттырып, әр пайдаланушыға 5 есе көп жад көлемі ұсынып, тілдің өзінде көптеген жаңа мүмкіндіктер енгізді. Жаңа платформа бір мезгілде 100 терминалға дейін қолдау көрсете алатын. Әуе күштері жүйенің иесі болып қала берді, ал Рэнд және басқалары кеңесшілер ретінде жұмыс істеді. Сыртқы пайдаланушыларға CPU уақыты минутына шамамен 1 доллар есебімен төленді, бірақ бұл тек нақты орындалу кезінде ғана болды, ал мәтін теру және басып шығару уақыты ақысыз еді. 1970 жылға қарай Рэнд және елдің әртүрлі Әуе күштері орналасқан жерлерінде 500-600 пайдаланушы болды. Олардың көпшілігі – жүйе осы мақсатта жасалған кездейсоқ пайдаланушылар еді. Оларды қолдау үшін арнайы терминалдарға арнайы «JOSS штепсельдері» орнатылды, осылайша оларды кеңселер арасында жылжытып, арнайы розеткаларға қосуға болатын. Рэндтің төңірегінде екі жүзге жуық штепсель орнатылды, ал терминалдың корпусы есіктерден өту үшін жеткілікті тар етіп жасалды, сонымен қатар бір жағында кофе қоюға орын қалдырылды. Терминалдағы қуатты қосуы оның жаңа орында қосылуына себеп болды. Арнайы терминалдар JOSS үшін жасалған, себебі инженерлер Model 33-тің «телекоммуникациялық функциялары оқымаған адам үшін түсініксіз» екенін және кездейсоқ пайдаланушылар үшін оны үйрену тым қиын болады деп санады. Бірақ іс жүзінде Selectric негізіндегі механизмдер үнемі пайдалануға шыдамай, жиі IBM қызметкерлерімен далада жөнделді. 1970 жылы терминалдардың үштен бірі толығымен қайта құрылды, ал компьютердің жұмысы сенімділікті арттыру үшін баяулады. Осы кезде Әуе күштері 35 модельін пайдалануға шешім қабылдады, себебі ол оңай қолжетімді және әлдеқайда арзан болды. Пайдаланушылар ынталы болды және оларға қызмет ету үшін Рэнд Ширли Маркс редакциялаған «The JOSS Newsletter» басылымын шығара бастады. 1967 жылдың қарашасынан 1971 жылдың маусымына дейін барлығы 44 нөмір жарық көрді.

JOSS-3

1970 жылдардың басында IBM-нің батыс жағалауындағы бір мекемесінің бағдарламашылары IBM 370/158 үшін OS/360 жүйесінде жұмыс істейтін JOSS 3 құрастырды. Бұл жүйе туралы ақпарат аз, бірақ JOSS осы машинада тоқтатылды. Тарихи шолудағы бір жазбаға сәйкес, Рэнд IBM-нің JOSS атауын пайдалануына келіспеді, соның салдарынан "IBM нұсқасы кеңінен таралған жоқ".

Іске асыру

PDP 6-дағы JOSS II машинаның ішкі жады орналасуына сәйкес екі бөлікке бөлінді. Машина екі банк ядролық жадпен жабдықталған, әр банкте 16к 36 биттік сөз болды. JOSS жүйесінің өзі, оның ішінде операциялық жүйе, пайдаланушы және файлдарды басқару коды, терминал басқарушысы және интерпретатор, осы банктердің біріншісінің көп бөлігін пайдаланды. Екінші банк пайдаланушы бағдарламалары үшін қолданылды. Бұл дәуір үшін жадтың салыстырмалы түрде үлкен көлемі болғанымен, жүйе тым көп пайдаланылғандықтан 16к сөздік пайдаланушы жады жеткіліксіз болды және оны беттеуді қолдау үшін магниттік барабанмен толықтырды. Барабан сыртқы аппараттық құралдармен басқарылды және негізгі процессордың назарын қажет етпеді. Көптеген пайдаланушы бағдарламаларын қолдау үшін PDP 6 аппараттық құралы кез келген мекенжай сілтемесінің 20-битін тексеру үшін өзгертілді. Егер бұл бит белгіленген болса, мекенжай "пайдаланушы кеңістігінде" болады және мекенжай нөл сол пайдаланушының бастапқы мекенжайына сілтеме жасайды. Осылайша, пайдаланушы бағдарламаларын жадыда жүйеге проблема тудырмай жылжытуға болады, ал операциялық жүйе бір ішкі тіркеуішті өзгерту арқылы пайдаланушыдан пайдаланушыға оңай ауыса алады. Тұрақты сақтауды Storage Products қатты дискісі қамтамасыз етті, оның сыйымдылығы 5,7 миллион сөзді құрады. Барабан сияқты, барабанға және одан деректерді кіріс/шығыс операциясы сыртқы түрде жүзеге асырылды, бірақ бұл жағдайда қозғалыс пайдаланушының бағдарламаларын жүктеу және сақтау әрекеттерімен іске қосылды. IBM-мен үйлесімді таспалық жетек деректерді қажет болған жағдайда дискіге және одан жылжыту үшін пайдаланылды, бұл операция да процессордан тәуелсіз болды. Сондай-ақ, екі DECtape құрылғысы болды және олар IBM жетегі сияқты жұмыс істеді. Терминалдар арнайы "концентратор" арқылы басқарылды, ол механикалық Строгер коммутаторынан тұратын, ол 300-400 мүмкін терминалдың кез келгенін 40 шығысқа қосуға мүмкіндік берді. Тағы сегіз желі JOSS стиліндегі Selectric-терге қарастырылған Teletype Model 33 кірістеріне арналды. Осы 48 желі кейіннен процессорға қосылған электронды мультиплексорға қосылды. Мультиплексор үзіліс режимінде жұмыс істеді, яғни бос терминалдар циклдарды пайдаланбады. Арнайы JOSS терминалдары DEC компаниясымен жасалды. Бұл құрылғылар байланыс жүйесі, қуат көзі және басқа да компоненттері бар арнайы шассиге орнатылған Selectric механизмінен тұрады. Математикалық символдарды көрсету үшін ≠ сияқты арнайы шрифт доптары пайдаланылды, сондықтан <> сияқты екі таңбалық комбинацияларды қолдану қажет болмады. Байланыс жүйесі 8 биттік бастау және тоқтату биттері бар 8 биттік таңбалық кодқа негізделген. Желілер 120 бит/с жылдамдықпен жұмыс істеді, бұл Selectric механизмінің секундына 15 таңбаға дейін жылдамдығына сәйкес келеді. Лентаны жасылдан қараға және кері жылжыту үшін жылжу және ауысу кодтары қолданылды. Бұл кодтарды байланыс жүйесі де байқады және терминалдың бақылауын компьютер немесе пайдаланушы жүзеге асырып жатқанын көрсету үшін алдыңғы панельдегі шамдарды өзгертеді.

Тікелей және жанама режим

JOSS бір командалық жол редакторын енгізді, ол интерактивті тіл ретінде де, бағдарлама редакторы ретінде де жұмыс істеді. Жол нөмірісіз терілген командалар дереу орындалды, бұл JOSS "тікелей режим" деп атады. Егер сол жолға жол нөмірі қойылса, ол бағдарламалық кодты сақтау аймағына көшірілді, оны JOSS "жанама режим" деп атады. Жаңа жолдар бағдарламаға бірегей жол нөмірі болса қосылды, сол нөмірдегі жолдарды ауыстырды немесе егер қолданыстағы жол нөмірі кодсыз терілсе, бағдарламадан жойылды. Көптеген BASIC-терден айырмашылығы, JOSS тек бағдарламалық кодты емес, пайдаланушының барлық кірісін файлдарға сақтады. Жүктелген кезде JOSS жолдарды қайтадан теріп шығарды. Бұл бағдарламалық файлдарда бағдарламалық операторлар мен тікелей режимдегі командалардың болуын білдірді. Мысалы, бағдарлама операторларын тізімдеген файлдар, жүктеу аяқталғаннан кейін бағдарламаны дереу іске қосу үшін соңында командамен аяқталуы мүмкін еді. Кейбір мүмкіндіктерді тек тікелей режимде ғана қолдануға болады, мысалы, және , олар жол нөмірлерісіз енгізілді, бірақ бағдарлама жүктелгенде де қолжетімді болды. Тікелей және жанама командаларды жұмыс кеңістігінде еркін араластыруға болады. Бұл бастапқы кодқа түсініктемелерді тікелей режимді бастайтын жолдарды қосу арқылы немесе код жолының соңына түсініктеме қосу арқылы енгізуге мүмкіндік берді. Бос жолдар да назарда ұсталмады, бағдарламаны түсінікті болуы үшін бөлуге рұқсат берді.

Бағдарламаның мазмұны

JOSS бағдарламасындағы әрбір жол жол нөмірімен басталуы керек. Жол нөмірлері – нүктемен бөлінген екі екі таңбалы бүтін сандардан тұратын қатаң белгіленген сандар. BASIC-тегідей, жол нөмірлері мақсаттық белгілер ретінде де, операторларды атау үшін де, сондай-ақ өңдеуді қолдау үшін де қолданылады. Кодтың жаңа жол нөмірін енгізу оны бағдарламаға қосады, ал бұрыннан бар жол нөмірін енгізу ескі нұсқаны жаңартады немесе егер ол бос болса, жояды. Жол нөмірінің нүктеден сол жағындағы бөлігі – бет немесе бөлім, ал оң жағындағы бөлігі – жол деп аталады. Демек, 10.12 жол нөмірі 10-шы беттің 12-ші жолын білдіреді. Бұтақтар бетті немесе бет ішіндегі жолды нысаналай алады. Екінші формат қолданылғанда, біріктірілген бет пен жол қадам деп аталады. Беттер кіші бағдарламаларды анықтау үшін қолданылады, олар келесі жол басқа бетте болғанда қайтарылады. Мысалы, егер бір санның квадрат түбірін есептейтін кіші бағдарлама 3-ші бетте болса, онда 3.1, 3.2 және 3.3 кодтың үш жолы болуы мүмкін және ол арқылы шақырылады. Код Do операторынан кейінгі жолға жеткенде, басқа беттегі келесі жолға қайта оралады, мысалы, 4.1. А-ға баламалы нұсқа қажет емес, бірақ ертерек қайтару қажет болса, осылай орындалады. Әрбір жол жол нөмірінен кейін команданың кілт сөзі болуы тиіс. BASIC-тегідей, міндетті команданың түсінігі жоқ. Бірнеше операторды қос нүкте немесе тік сызықпен бөліп бір жолға орналастыруға болады. Әрбір жол нүктемен аяқталуы керек.

Құрастыру

Команда өрнектің нәтижесін көрсетілген айнымалыға тағайындайды. BASIC-тің 01.30 Set p=3.14156 нұсқауымен тең. 01.60 Set i=l*(r/100)*t. Тікелей режимде қолданылғанда, Set командасынсыз мәнді жазу мүмкін болды. Бұл жанама режимде BASIC-тен өзгеше, рұқсат етілмеген.

Сұраныс

Айнымалылар тізімін қабылдайды және пайдаланушы енгізген деректерді айнымалыларға сақтайды. Қосымша сұрау белгісі арнайы хабарлама қосуға мүмкіндік береді. BASIC-тің 01.01 "Сіздің жасыңыз қанша?" деп сұрауға тең. 01.02 А айнымалысын сұрау. 01.03 "Сіз" деп басу, А. 01.04 H айнымалысын "Сіздің бойыңыз қанша?" деп сұрау. 01.05 H, "Осы биіктікте ме?" деп басу.

Түрі

Команда бір немесе бірнеше элементті үтірмен бөліп шығарады. Негізгі түрінде ол BASIC-тің PRINT операторына балама, бірақ оны жоғары жүктемелі ететін, байланыссыз шығару тапсырмаларын орындайтын бірнеше қосымша формаларды қамтиды. Мәндерді басып шығару үшін параметрлер айнымалылар, қос тырнақшаға алынған әріптік тізбектер және жаңа жол символын шығаратын арнайы символ бола алады. Сондай-ақ, форматталған тізбектерді пайдаланып форматталған шығаруды қолдайды. Толық мәліметтер үшін төмендегі бөлімді қараңыз. Type сонымен қатар BASIC-тің LIST операторына балама ретінде қолданылады, бағдарламаны шығару үшін. Мысалы, PRINT TYPE бір код жолын басып шығарады, ал PRINT TYPE бөлімнің барлық кодын басып шығарады, ал PRINT TYPE бүкіл бағдарламаны басып шығарады. Бұдан әрі, ол ішкі мәндердің тізімдерін басып шығару үшін де қолданылуы мүмкін. PRINT TYPE барлық айнымалылар мен олардың мәндерінің тізімін шығарады, ал PRINT TYPE бағдарламаның көлемін басып шығарады. Кілт сөздер: PRINT, TYPE және LIST.

Бет

арнайы JOSS терминалдарында беттік таратуды іске қосады. JOSS әдетте терминал қағаздың 54-жолына жеткенде беттік тарату жіберетін болған, сондықтан деректер блогының ортасынан бөлінбеуін қамтамасыз ету үшін:

1.10 Беттік таратуды $>44 болғанда іске қосу керек. $> - ағымдағы жол нөмірін қайтаратын псевдо-айнымалы.

Сызық

арнайы JOSS терминалдарында жол көшіруді іске қосады.

Қалай

Команда бағдарламаның орындалуын көрсетілген бөлікке немесе қадамдық нөмірге, тиісінше, немесе арқылы секіреді. Бұл BASIC-тің бағдарламаларды іске қосатын командалық жолдан қолданылатын жанама командасы, BASIC-тің 01.01 "САН ЕНГІЗІҢІЗ" (TYPE A NUMBER) бұйрығына балама. 01.05 1.01 қадамына. 01.10 1-бөлікке.

Жарайды

ұқсас, бірақ кіші бағдарламаға бұтақталады. -сымен салыстырғанда, сіз орындай аласыз немесе Егер қадам берілсе, сол бір жол орындалып, содан кейін нұсқаулықтан кейінгі мәлімдемеге қайта оралады. Егер бөлім берілсе, орындау бөлімнің бірінші жолынан басталып, бөлімнің соңына жеткенше немесе нұсқаулы табылғанша жалғасады. 01.15 7.24-қадамды орындаңыз. 01.16 8-бөлімді орындаңыз. оны бағдарламалардың көпшілігінде өте кең таралғандықтан қарауға арналған ерекше қысқа түрі болды. Бұл қарапайым циклдар үшін қалыпты орнына модификаторды қолданды. Сондықтан келесі жолдар эквивалентті: 1-бөлімді i=1(1)5 үшін орындаңыз. 1-бөлікті 5 рет орындаңыз. JOSS қазіргі орындалып жатқан жолға көрсеткішті сақтайды, ол өзгертіледі. Алайда, ол негізгі көрсеткішті өзгертпей-ақ кодтың белгілі бір бөліктерін тексеру үшін тікелей режимде қолдануға болатын ерекше «жақша ішіндегі орындау» мүмкіндігін қамтыды. Мысалы, егер бағдарлама қатеге байланысты тоқтаса және проблемаға қандай бөлімнің себепкер екені белгісіз болса, сіз белгілі бір кіші бағдарламаны мынамен сынап көруге болады: (Do part 2.)

Тоқтаңыз

Команда бағдарламаның орындалуын тоқтатып, басқаруды өңдеу ортасына қайтарады. Бұл BASIC-тің немесе командаларына балама, алайда BASIC-тің командасы орындалуды сол жерден жалғастыруға мүмкіндік береді, ал JOSS-тің жұмыс кеңістігіне бағытталған жүйесінде мұндай мүмкіндік тікелей көзделмеген. 01.10 X түрі. 01.20 Тоқтату.

Жүре беріңіз

Тек тікелей режимде қолжетімді, BASIC-тегі және -ға балама, бағдарлама қатеге немесе командасына тап болғандықтан тоқтатылған болса, оған байланысты.

Қайталау

Басқа бір тікелей режимдегі команда, бағдарлама қатеге тоқтаған кезде және пайдаланушы бағдарламаны қайта іске қосуды қалағанда қолданылады, ол бағдарлама санаулышын (программалық тізімдегі орнын) тазалау арқылы жүзеге асырылады. Бағдарлама соңғы тоқтаған жерден жалғасады, бірақ бұл команданы орындау бағдарламаны басынан бастайды. Егер ағымдағы тоқтау себебі жақша болса, жақшаны жою командасын орындауға болады, сонда бағдарлама жақшасыз соңғы жолдан жалғасады.

Файлдарды басқару

JOSS жүйесі пайдаланушы бағдарламаларын бөлінген орынға сақтау үшін қатты дискіні қолданды. Бұл кеңістікте бірнеше файл болды, оларға бүтін саннан және жақшадағы бес әріптен тұратын көп бөлімді файл атаулары арқылы сілтеме жасалынды, мысалы, бүтін сан бөлігі каталогты білдірсе, атауы – JOSS жүйесімен басқарылатын оның ішіндегі кіші файлды білдірді. Файлдарды жазу үшін және жүктеу үшін қолданылды. Сондай-ақ, жұмыс кеңістігінің белгілі бір бөліктерін ғана оқуға немесе сақтауға болады, мысалы, бір процедураны файлға сақтау үшін. Бұдан өзге, барлық сілтемелердің автоматты түрде қаралатын файлды белгілеуге болады. Файлдарды жою үшін қолданылды.

Үлгілік бағдарлама

1.1 Сұраныс p,q. 1.2 q<0 немесе r(q,2)=0 болса тоқтатыңыз. 1.3 a=1 деп белгілеңіз. 1.4 q>1 және a≠0 болғанда 2-бөлікті орындаңыз. 1.5 3-формат бойынша a-ны шығарыңыз. 1.6 Тоқтаңыз. 2.1 20-бөлікті орындаңыз. 2.1 Егер p<0 болса, 11-бөлікті орындаңыз. 2.2 Егер p≥q болса, 12-бөлікті орындаңыз. 2.3 Егер p=0 болса, 13-бөлікті орындаңыз. 2.4 a=0 болса, аяқтаңыз. 2.5 r(p,4)=0 болғанда p=p/4 деп белгілеңіз. 2.6 r(p,2)=0 болса, 14-бөлікті орындаңыз. 2.7 20-бөлікті орындаңыз. 2.8 r(p,4)=r(q,4)=3 болса, a=a деп белгілеңіз. 2.9 s=p, p=q, q=s деп белгілеңіз. 2.95 20-бөлікті орындаңыз. 11.1 r(q,4)=3 болса, a=a деп белгілеңіз. 11.2 p=|p| деп белгілеңіз. 11.3 20-бөлікті орындаңыз. 12.1 p=r(p,q) деп белгілеңіз. 12.2 20-бөлікті орындаңыз. 13.1 a=0, p=1, q=1 деп белгілеңіз. 14.1 r(q,8)=3 немесе r(q,8)=5 болса, a=a деп белгілеңіз. 14.2 p=p/2 деп белгілеңіз. 20.1 Егер a=1 болса, p, q-ны 1-формат бойынша шығарыңыз. 20.2 Егер a=1 болса, p, q-ны 2-формат бойынша шығарыңыз. 1-формат: " L(%.0f,%.0f) =" 2-формат: " L(%.0f,%.0f) =" 3-формат: " %.0f\n" Бұл түпнұсқа үлгі емес, қазіргі заманғы симулятордың үлгісі. Түпнұсқа JOSS тілінен кейбір синтаксистік айырмашылықтар бар.