Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЛП Лаб каз.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
520.19 Кб
Скачать

СМЖ-нің құжаты

Н 11/1-1.01-2016

Әдістемелік нұсқау

Баспа 4

Енгізу күні 05.01.2016

Қазақстан республикасы білім және ғылым министрлігі м.Х.Дулати атындағы тараз мемлекеттік университеті

БЕКІТЕМІН

«Информатика» кафедра меңгерушісі

_________________ М.Б.Тлебаев

«_____»_______________20___ж.

___________________Зертханалық жұмыстарды_________________ _________орындау үшін

___________________« Функционалды және логикалық бағдарламалау»__________________

___________________5В060200 –Информатика__________ мамандығының білімгерлері үшін

Әдістемелік нұсқау Тараз 20___

СМЖ-нің құжаты

Н 11/1-1.01-2016

Әдістемелік нұсқау

Баспа 4

Енгізу күні 05.01.2016

Әдістемелік нұсқау зертханалық жұмыстарды орындау үшін

________________«Функционалды және логикалық бағдарламалау»_____________________

/пәннің атауы/

__________5В060200 –Информатика__________________ мамандығының білімгерлері үшін

/мамандық шифры/

пәннің оқу бағдарламасына (М:Х: Дулати атындағы Тараз мемлекеттік университетінің ғылыми-әдістемелік кеңесі бекіткен (Хаттама №__7__ «_24___»______02________2014ж.)) сәйкес жасалған.

Әдістемелік нұсқауды құрастырушы:

Бурлибаева Ш.М.____________ ______________________

/аты-жөні/ /қолы/

Әдістемелік нұсқау «Информатика» кафедра мәжілісінде талқыланды

Хаттама №_____ «______»_____________20___ж.

Функционалды бағдарламалау ( haskell тілі) hugs 98 де жұмыс істеу негіздері

ИС HUGS 98 жүктелгеннен кейін экранда өңдеу ортасының сұхбаттық терезесі ашылады, Haskell (Prelude.hs) тілінде стандартты функциялар анықтамасы мен улгіні анықтайтын арнайы файл автоматты түрде жүктеледі де стандартты жұмысқа шақыру шығарылады.

Әзірлеуші ортасының сұхбаттық терезесі бас мәзірден, интерпретатормен жұмыс кезінде жиі қолданылатын командалар мен консоли үшін арналған түймелер жиынынан тұрады.

АЖ кодталған бағдарлама файлдарды құруға және өңдеуге мүмкіндік бермейді, ол үшін кәдімгі ТХТ стандартын қолдайтын (мысалы, Windows-тың стандартты блокноты) кез – келген мәтіндік редакторды қолдану талап етілетінін ерекше атап өту керек.

Сур. 1. ИС HUGS 98 негізгі терезесі.

HUGS 98 (1сурет) негізгі терезесі интерпретация үшін колданылатын ИС-тің барлық командаларына рұқсат алуды қамсыздандырады.

Сонымен бірге, ИС Windows операциялық жүйесінің кез-келген версиясында Notepad стандартты терезесіндегі ашық модульдерді өндеуге шақыруға мүмкіндік береді

HUGS 98 аспаптар панелі

Аспаптар панелінде, негізгі сұхбаттық терезесінің сол жақ бөлігінде жиі пайдаланылатын командаларды шақыру батырмалары ұсынылған (әрине, соңғы пайдаланушының көзқарасы емес, ИС HUGS 98 әзірлеушілерінің көзқарасымен). Төменде, аспаптар панелінде табуға болатын, барлық он төрт батырманың қысқа сипаттамалары ұсынылған.

Модульдерді сыртқы файлдардан жүктеу. Осы файлдың ішіндегі интерпретатор тапқан барлық модульдер жүктелетін файлды таңдауға және ашуға мүмкіндік береді.

Модульдер менеджерін шақыру. Модульдер менеджері АЖ жадына жүктелген программалық модульдерді қосуға, жоюға және редактрлеуге мүмкіндік береді.

Ерекшеленген мәтінді қиып алу. Мәтіндерді редактрлеудің стандартты функциясы. Ерекшеленген мәтінді редактордан жойып, оны операциялық жүйенің алмасу буферіне орналастырады.

Ерекшеленген мәтінді алмасу буферіне көшіру. Мәтіндерді редактрлеудің стандартты функциясы. Ерекшеленген мәтінді операциялық жүйенің алмасу буферіне көшіреді.

Мәтінді алмасу буферінен аып қою. Мәтіндерді редактрлеудің стандартты функциясы. Операциялық жүйенің алмасу буферіндегі мәтінді керек жерге қояды.

Таңдалған мәтінді тазалау. Мәтіндерді редактрлеудің стандартты функциясы. Ерекшеленген мәтінді редактрден операциялық жүйенің алмасу буферіне орналастырмай жояды.

Мәтіннің сыртқы редакторын қосу. Операциялық жүйеде тіркелген сыртқы мәтіндік редакторды іске қосады. Windows үшін бұл түймені басқанда, Notepad стандартты программасы іске қосылады.

Запуск на выполнение выражения «main». Исполняет функцию main в загруженных модулях (конечно, если такая функция обнаружена в модулях). Если функция main не обнаружена ни в одном из загруженных модулей, то выдаётся ошибка: ERRORUndefined variable "main".

Программаның орындалуын тоқтату. Кез-келген қосылған функцияның орындалуын тоқтату. Мысалы, шексіз тізімді есептеуді тоқтату үшін қолданылады.

Ағымдағы жобаның барлық файлдарын қайта жүктеу. Жоба кодындағы өзгерістерді интерпретатор жадына қосу үшін, барлық файлдарды қайта жүктейді.

Иинтерпретатор параметрлерін орнату. Haskell тілі интерпретаторының параметрлер тобын орнататын диалогтық терезені экранға шығару. Иинтерпретатор параметрлері туралы В қосымшасында көрсетілген .

Класстар иерархиясын экранға шығару. Экранда ағымдағы жобаның класстар иерархиясы атауы бар тіктөртбұрыштар жиыны мен олардың арасындағы байланыстар түрінде пайда болады.

Анықтаманы шақыру. Анықтамалық ақпараттың стандартты диалогтық терезесін экранға шақырады. Барлық анықтамалық файлдар АЖ орнатылған каталогта орналасқан деп ұйғарылады.

Программадан шығу. HUGS 98 АЖ – нен операциялық жүйеге шығуды орындайды.

HUGS 98 консолінің командалары

HUGS 98 АЖ-нің консолі АЖ жұмысын басқаруға мүмкіндік беретін қызметтік конструкциялардың шағын жинағы. Бұл командалардың көбі құралдар панеліндегі түймелердің қызметін және қосымшаның басты мәзіріндегі пункттерді қайталайды. Алайда бұл командалар кәсіпқой пайдаланушыларға жұмыс істеу процессін жылдамдатуға мүмкіндік береді.

Әр команда «қоснүкте» — «:» символынан басталады. Бұл кіріктірілген командаларды функцияны құрушылар жазған командалардан ажырату үшін жасалған. Сонымен қатар, АЖ әр команданы бір әріпке дейін қысқартуға мүмкіндік береді, яғни «қоснүкте» символы мен команданың бірінші әріпін терсе жеткілікті. Барлығы он екі команда бар, лаодың әрқайсысының сипаттамасы төменде келтірілген.

:load [<filenames>]

Прогаммалық модульдерді берілген файлдардан (файл аттарын бос орын арқылы ажыратуға болады) жүктейді. Құралдар панеліндегі модульдерді жүктеу түймесін қайталайды. Егер файлдардың аты табылмаса, (Prelude.hs) стандартты модулінен басқа барлық модульдерді шығарады. Команданы қайталап қолданған кезде, интерпретатор жадындағы модульдер қайта оқылады.

:also <filenames>

Ағымдағы жобаға қосымша модульдер қосады. Файл аттары бос орынмен бөлінуі тиіс.

:reload

Соңғы орындалған жүктеу командасын (:load) қайталайды. Редактрлеу сыртқы мәтіндік редакторда жүргізілсе, модульдің жүктелуін жылдамдатуға мүмкіндік береді.

:project <filename>

Жоба файлын жүктейді және қолданады. Тек бір файл ғана жүктеуге болады. Жоба файлдары коды бар жеке файлдарды біріктіру үшін қолданылады. Команданы қайталап қолданған кезде, интерпретатор жадындағы барлық файлдар қайта оқылады.

:edit [<filename>]

Көрсетілген файлды дұрыстау үшін сыртқы мәтіндік редаторды шақырады. Файл атауы көрсетілмесе, соңғы файл шақырылады (жүктелген немесе редактрленген). Бұл команда құралдар панеліндегі сыртқы мәтіндік редактрді шақыру түймесін қайталайды.

:module <module>

Функцияны орындау үшін ағымдық модуль ретінде берілген модульді бекітеді. Бұл команда атаулар коллизиясы мәселесін шешуге арналған.

<expr>

Берілген өрнекті орындауға жіберу. Мысалы, main командасы сәйкесінше main – функциясын орындауға жібереді, бұл құралдар панеліндегі түймені қайталауды орындайды.

:type <expr>

Берілген өрнектің типін экранға шығарады. Бұл команда, негізінен, құрылған өрнектің (айнымалы, функция, күрделі объекті) типін жылдам алу үшін программаны орындау мақсатында қолданылады.

:?

Қысқа сипатталған командалар тізіміні экранға шығарады.

:set [<options>]

АЖ параметрлерін командалық жолдан енгізуге мүмкіндік береді. HUGS 98-ді баптау диалогтық терезесінің әрекеттерін қайталайды. (<options>) командасының барлық мүмкін параметрлері осы команданы орындау кезінде, ешқандай параметрлерсіз экранға шығарылады.

:names [pat]

Ағымдағы атаулар кеңістігіндегі (басқа атау берілмесе) объектілердің барлық атауларының тізімін экранға шығарады.

:info <names>

Объектілердің берліген атауларының сипаттамасын экранға шығарады. Мысалы, функция үшін, берілген функцияның атауымен қоса оның типін де шығарады.

:browse <modules>

Берліген модульде анықталған барлық объектілердің (функциялар, айнымалылар, типтер) тізімін экранға шығарады. Модульдердің атаулары бос орынмен ажыратылуы тиіс (бірнеше модуль атаулары берілсе).

:find <name>

Құрамында берілген атау кездесетін модульді редактрлеуге шақырады. Егер берліген атау ағымдағы модульдердің бірдебіреуінде кездеспесе, онда қате туралы хабарлама шығады: ERROR —

No current definition for name "<name>".

:!<command>

Операциялық жүйеге шығып, берліген команданы орындайды. Есте сақтайтын жағдай, «леп белгісі» симолы мен операциялық жүйе комнадасының атауы арасында бос орын қалмау керек.

:cd <directory>

HUGS 98 жұмыс істеп тұрған ағымдағы каталогты аустырады.

:gc

Қоқысты жинау процесін еріксіз түрде орындауға жібереді. Содан соң, жиналған және қайта қалпына келтірілген жад ұяшықтары туралы мәліметті экранға шығарады.

:version

Haskell және ИС HUGS 98 тілдерінің орнатылған интерпретаторының версиясы туралы ақпаратты экранға шығарады.

:quit

Операциялық жүйеге шығуды орындайды. Құралдар панеліндегі түймелерді қайталайды.

Hugs программасымен қалай жұмыс істеу керек

1. Іске қосу

Hugs­98 бумасындағы Hugs.exe файлын іске қосамыз.

2. Қандай да бір өрнекті есептейік

Ол үшін өрнекті енгізіп, Enter пернесін басамыз.

Мысалы:

2 + 2(жауабы 4)

sin 1(жауабы 0.841470984807897)

sum [1..1000] (жауабы 500500 – бұл 1 – 1000 дейінгі сандар қосындысы)

3. Өз функциямызды сипаттайық

а. Функция сипаттамасымен файл құрайық

Кез-келген мәтіндік редактордың (мысалы, Блокнот) көмегімен мәтіндік файл құрыңыз. Мысалы, келесі файлды құрайық.

cube x = x * x * x

cube.hs, бір қатардан тұрады

Ескерту:

Hugs-тің өзінде :е <файл атауы> командасын енгізуге болады (мысалы, :e е:\test\cube.hs). Сонда Блокнот прорграммасы бірден қосылып, осы файлды ашады.

б. Файлды жүктейміз

Келесі команданы енгіземіз :l <файл атауы> (File мәзіріндегі Open бөлімін таңдаңыз немесе құралдар панеліндегі жоғарғы түймені басыңыз).

Егер біз функция сипаттамасын қатесіз жазған болсақ, онда ол жадқа жүктеледі және функцияны қолдана беруге болады.

Мысалы,

:load c:\test\cube.hs (cube функциясының сипаттамасы бар файл жүктеледі)

cube 3 (жауабы 27)

4. Файлды редактрлейміз (Мысалы, қатесін түзейміз)

Файлды жүктеу кезінде қате туралы хабарлама шықты немесе программада өзгеріс енгізгіміз келді дейік. Келесі команданы енгіземіз :е (Edit мәзіріндегі Text Editor бөлімін таңдаймыз немесе құралдар панеліндегі қарындаш бейнеленген түймені басамыз).

Блокнот редакторы қосылып, ондағы соңғы жүктелген файл ашылады. Программаға түзетулер енгізіп, редакторды жабыңыз. Осыдан кейін WinHugs автоматты түрде өзгертілген файлды жүктейді.

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

5. Программадан шығу.

Кеелесі команданы енгізіңіз :q (немесе File мәзіріндегі Exit бөлімін таңдаңыз немесе құралдар панелінің ең төменгі түймесін таңдаңыз).