№1 Зертханалыќ ж±мыс



жүктеу 208 Kb.
бет14/17
Дата20.01.2022
өлшемі208 Kb.
#33755
түріПрограмма
1   ...   9   10   11   12   13   14   15   16   17
ЖИ зертханалык жумыс

Есепті шешу мысалдары


Лисп тілінде функцияны шақыру үшін де, өрнектерді жазу үшін де бірқалыптағы жазбаның префиксттік түрі қабылданған. Бұл түрде функция аты немесе оның іс-әрекеті және оның аргументтері жақша ішіне жазылады: (f x), (g x y), (h x (g y z)) т.б.с.с.

Арифметикалық амалдар: (+ сандар) – сандарды қосу, (- сан сандар) – сандарды саннан алу (* көбейту) – сандарды көбейту т.б.с.с.

_(+ 5 7 4)  16

_(- 10 3 4 1)  2

_(/ 15 3)  5

Сандарды салыстыру: (=сан сандар)  тең (барлығы) (<сан сандар)  аз (барлығы үшін) (>сан сандар)  көп (барлығы үшін) т.б.с.с.

Сандық предикаттар: (ZEROP сан)  нөлге тексеру (MINUSP сан)  терістікке тексеру т.б.с.с.

Логикалық әрекеттер: (NOT объект)  логикалық терістеу (AND (формы))  логикалық ЖӘНЕ (OR (формы))  логикалық НЕМЕСЕ

_(AND (ATOM NIL) (NULL NIL) (EQ NIL NIL))  T

_( NOT (NULL NIL))  NIL

Бұдан басқа да көптеген пайдалы функциялар түрлері бар. Солардың тізімдермен жұмыс істейтін кейбір түрлерін қарастырайық.

1 Мысал. Екі тізім берілген. Осы екі тізімнің көбейтіндісінің нәтижесін алу керек. Лисп тіліндегі программа келесі түрдегідей болады:

(terpri)


(terpri)

(terpri)


(terpri)

(defun proizvedenie (spisok2 spisok1)

(cond ((null spisok1) 0)

(T (prince (* (car spisok2) (car spisok1))) (prince “ ”)

(proizvedenie (cdr spisok2) (cdr spisok1)))))

(princ “Введите списки”)

(terpri)

(setq a (read))

(setq b (read))

(setq c () )

(terpri)

(princ “Көбейту нәтижесіндегі тізім”)

(terpri)

(proizvedenie a b)

(terpri)

(princ “Соңы!!!”)


2 Мысал. Екі цифр берілген. Осы екі цифрды қосындысын алу керек. Лисп тіліндегі программа келесі түрдегідей болады:
(defun sum (N)

(cond ((=N 1) 1)

(T (+ N( sum (-N 1))))))
3 Мысал. Тізім берілген. Осы тізім элементтерінің қосындысын алу керек. Лисп тіліндегі программа келесі түрдегідей болады:

(defun sl (L)

(cond (( Null L) 0)

(T( + (car L))

(sl(cdr L))))))

4. Мысал. Сан берілген. Осы санның факториалын алу керек. Лисп тіліндегі программа келесі түрдегідей болады:

(defun fact (N)

(cond ((= N 1) 1)

(T (* N(fact(-N 1))))))


5. Мысал. Екі тізім берілген. Осы екі тізімнің бір бірімен алмасуының тізім түріндегі нәтижесін алу керек. Лисп тіліндегі программа келесі түрдегідей:

(defun sher (x y)

(cond ((Null x) y)

(T (cons (car x)

(sher y(cdr x))))))


жүктеу 208 Kb.

Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   17




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау