Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Книга, учебник » Основи інформаційних технологій

Реферат Основи інформаційних технологій





ціле позитивне):


(defun expt (х n)

(do ((результат 1)); початкове значення

((= n 0) результат); умова закінчення

(setq результат (* результат х))

(setqn (^ nl))))


Результат завдання функції: EXPT.

Приклад виклику:

(expt 2 3)

Результат: 8.

Ітеративні (циклічні) і рекурсивні програми теоретично однакові за своїми обчислювальним можливостям, однак властивості ітеративних і рекурсивних варіантів програм можуть істотно різнитися. Рекурсивні програми більш короткі та змістовні. Особливо корисно використовувати рекурсію в тих випадках, коли можна вирішити завдання і обробляються дані по своїй суті рекурсивно, наприклад, при обробці списків, так як списки можуть рекурсивно містити підсписки, при роботі з іншими динамічними структурами, які заздалегідь не повністю відомі. Рекурсивні процедури грають найважливішу роль майже у всіх програмах, пов'язаних з штучним інтелектом. p align="justify"> ВВЕДЕННЯ-ВИВЕДЕННЯ ДАНИХ

Досі розглядався введення і виведення даних у лісповскіх програмах через параметри функцій та вільні змінні. Для організації діалогу людини з програмою в Ліспі існують спеціальні функції READ і PRINT. p align="justify"> Для виведення результатів можна використовувати функцію PRINT. Це функція з одним аргументом, яка спочатку обчислює значення аргументу, а потім виводить це значення. p align="justify"> Наприклад:

(PRINT (* 2 лютого))

Результат: 4.

Перед висновком відбувається перехід на новий рядок.

Функція READ читає і повертає вираз: (READ). Як тільки інтерпретатор зустрічає таку пропозицію, обчислення призупиняються до тих пір, поки не буде введений небудь символ або цілком вираз. Аргументів у функції READ немає, її використання побудовано на побічну ефекті, що складається саме у введенні виразу. Прочитане вираз можна зберегти для наступного використання та обробки, наприклад, так:


(setq input (read));


прочитане READ вираз присвоюється змінної input.

Лісповскіе оператори введення-виведення дуже гнучкі, їх можна використовувати як аргументи інших функцій. Для більш естетичного оформлення висновку можна використовувати функції PRINC, друкувальну рядок без оздоблюють лапок і з спеціальними символами, а також TERPRI, що переводить рядок. p align="justify"> Для форматного виводу (відповідно з деяким чином) існує функція FORMAT, що володіє гнучкими можливостями, описаними в посібниках з мови Лісп.

Крім стандартних пристроїв введення-виведення, може здійснюватися обробка файлів на магнітних носіях, завантажуватися з файлів визначення функцій і т.д.

ПРИКЛАД ПРОГРАМУВАННЯ НА Ліспі

Розглянемо як приклад програмування на Ліспі менш елементарну класичну задачу, що носить назву гри в В«ханойські вежіВ».

Гра полягає в наступному. Використовуються три вертикальних стрижня А, В, С і набір N дисків різного діаметру з отвором посередині (так що їх можна надягати на стрижні). У початковому положенні всі диски надіті на стрижень А по порядку убування діаметрів: внизу найбільший, над ним - трохи менше і т.д., а нагорі - найменший. Метою є перенесення всіх дисків зі стрижня А на стержень У за такими правилами:

) за один раз можна перенести тільки один диск;

) більший за розміром диск не можна покласти на менший;

) третій стрижень С можна використовувати як допоміжний. Алгоритм розв'язання задачі можна представити у вигляді трьох наступних рекурсивних підзадач:

) перенести із стержня А N-1 дисків на допоміжний стержень С;

перенести нижній диск із стержня А на стержень В;

перенести із стержня З N-1 дисків на стрижень В.

Програма складається з трьох послідовно обумовлених функцій В«ханойські-вежіВ», В«перенесенняВ», В«виведиВ» і має вигляд:


Програма 130

(defun ханойські-вежі (висота)

(рrоgn (перенесення "а" Ь "з висота)" готове))

Ханойська-БАШНИ

(defun перенос (з в допоміжний n)

(cond

((= п 1); гілку 2

(виведи з в) (t (перенесення з; ветвь1 допоміжний

в

(- n 1))

(виведи з в)

(перенесення допоміжний; гілку 3

...


Назад | сторінка 41 з 56 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Коли працювати можна менше ...
  • Реферат на тему: Шизофренія. Лікувати, не можна хворіти
  • Реферат на тему: Вправи, якими можна виміряти рівень розвитку координаційних здібностей
  • Реферат на тему: Мутації і нові гени. Чи можна стверджувати, що вони служать матеріалом Мак ...