Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Форматированный ввод

Тип Реферат
Предмет Информатика и программирование
Просмотров
1223
Размер файла
17 б
Поделиться

Ознакомительный фрагмент работы:

Форматированный ввод

ДНЕПРОПЕТРОВСКАЯ ОБЛАСТНАЯ АДМИНИСТРАЦИЯ

ИНСТИТУТ ПРЕДПРИНИМАТЕЛЬСТВА «СТРАТЕГИЯ»

КАФЕДРА ЕКНОМИЧЕСКОЙ КИБЕРНЕТИКИ И

ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ

ДОКДАД

ПО ДИСЦИПЛИНЕ:

«ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ»

НА ТЕМУ:

«ФОРМАТИРОВАННЫЙ ВВОД »

Выполнил:

студент группы П-01-51

Руденко Владимир

2003г.

г. Желтые Воды


Если не использовать специальную команду ввода, то данные можно передавать лисповской функции только через параметры и свободные переменные. Соответственно, без использования выводы, результат можно получить лишь через конечное значение выражения. Часто все же возникает необходимость вводить исходные данные и выдавать сообщения т тем и самым управлять и получать промежуточные результаты во время вычислений, как это делается и в других языках программирования.

Лисповская функция чтения READ отличается от ввода в других языках программирования тем, что она обрабатывает выражение целиком, а не отдельные элементы данных. Вызов этой функции осуществляется пользователем (немного упрощенно) в виде:

(READ)

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

READ никак не показывает, что оно ждет ввода выражения. Программист должен сам сообщить об этом при помощи функций ввода. READ лишь читает выражение и возвращает в качестве значения само это выражение, после чего вычисления продолжаются.

По своему действию READ представляет собой функцию, но у нее есть побочный эффект, состоящий именно во вводе выражения. Учитывая это, READ является не чистой функцией, а псевдо функцией.

Если прочитанное значение необходимо сохранить для дальнейшего использования, то вызов READ должен быть аргументом какой-нибудь формы, например присваивания (SETQ), которая свяжет полученное выражение:

_(setq input (read))

(+ 2 3); введенное выражение

(+ 2 3); значение

_input

(+ 2 3)

Форма, вызывающая интерпретатор, и функция READ совместно с другими функциями позволяет читать выражения внешние по отношению к программе. Из них можно строить новые лисповские выражения или целые программы. Построенные структуры можно вычислить, передав их непосредственно интерпретатору:

_(evalinput)

5

_(eval (list (read) (read) (read)))

+ 2 3

5

Функция READ основана на работающей на системном уровне процедуре чтения (Lisp reader). Она читает выражение, образуемое последовательностью знаков, поступающих из файла или иного источника. Внешние устройства становятся доступными из Лисп – системы через объекты, называемые потоками. На логическом уровне потоки независимо от характера внешнего устройства являются последовательностью читаемых или записываемых знаков или битов. Для ввода и вывода, как и для двустороннего обмена, существуют свои типы потоков и специальные операции.

Процедура чтения содержит анализатор, проверяющий знаки в читаемой им последовательности. Чтение обычного алфавитно-цифрового знака никаких особых действий не требует, в то время как чтение специального знака, такого как открывающая или закрывающая скобка, пробел, разделяющий элементы. Или точка, приводит к специальным действиям. Соответствие между различными знаками и действиями определяется так называемой таблицей чтения, которая задает лисповские функции для знаков. Знаки, вызывающие специальные действия, называют макрознаками или макросами чтения, поскольку их чтение требует более сложных действий. Таблица чтения доступна программисту, и он может сам определять новые интерпретации знаков и, таким образом, расширять или изменять синтаксис Лиспа.

Действие макроса – чтения определяется в Лиспе при помощи обыкновенной функции. Она читает и возвращает в качестве значения форму, для построения которой она в свою очередь может предварительно использовать макросы. Определим для примера макрос чтения %, действующий так же, как апостроф. Действие блокировки вычисления пользователь может определить в виде функции, которая рекурсивно читает очередное выражение и возвращает его в составе формы QUOTE:

_(defun f () (stream char)

(list ‘quote (read)))

Функция, определяющая макрос чтения, имеет в Лиспе два аргумента, первый из которых описывает отток чтения, а значением второго будет сам макрознак. В данном примере мы не использовали параметры.

Запись символов и определенных для них макроинтерпретаций в таблицу чтения осуществляется командой:

(SET-MACRO-CHARACTER знак функция)

_(set-macro-character

#% ‘f)

Здесь запись #% обозначает знак процента (%) как объект с типом данных знак.

После этих определений можно знак процента использовать так же, как апостроф:

_%(a %b c)

(A (QUOTE B) C)

Таблиц чтения может быть несколько, но процедура чтения использует в каждый момент времени лишь одну таблицу. Текущая таблица сохраняется как значение системной переменной *READTABLE*.

Встроенными макросами чтения в Коммон Лиспе являются:

( ; начинает ввод списка или точечной пары

) ; заканчивает ввод списка или точечной пары

' ; возвращает очередное выражение в виде вызова QUOTE

; ; символы до конца строки считаются комментарием

; выделение одиночного специального знака

| ; выделение нескольких специальных знаков

; |…|

“ ;строка: “…”

Макрознаки нельзя использовать в составе символов наподобие обычных знаков, поскольку процедура чтения проинтерпретирует их в соответствии с таблицей как макросы чтения. Для включения таких знаков в состав имен нужно использовать специальные выделяющие знаки: |, , которые блокируют макрообработку знаков.


ПРИМЕРЫ

Чтение строки

Вводим предложение, заканчивающееся вопросительным или восклицательным знаком, и преобразуем его в список:

(defun readf_ ()

(let ((word (read)))

(cond ((eq word ‘?) ‘(?))

(t (cons word (readf_))))))

Ввод в режиме EVALQUOTE

Функция READ, которая вводит вызов функции в виде: fn(a1 a2 … an) и возвращает значение вызова

(defun readq_ ()

(eval (cons (read) (read))))


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156804
рейтинг
icon
6076
работ сдано
icon
2739
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
65 651 оценка star star star star star
среднее 4.9 из 5
СЗГМУ им. И.И. Мечникова
Работа была сделана досрочно! Все соответствует требованиям! Спасибо большое, Вениамин!
star star star star star
НКИ
Добрый вечер. Огромное спасибоза качественную работу. Принимаю досрочно с положительным о...
star star star star star
.
Безумно благодарна Елене за прекрасную работу, выполнено все намного раньше срока, никаких...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Необходимо выполнить задание по предмету основы инженерных расчетов в программе Mathcad

Контрольная, Основы инженерных расчетов

Срок сдачи к 6 апр.

1 минуту назад

Разработка поста сто по ремонту кпп легковых автомобилей dodge challenger

Курсовая, МДК, машиностроение

Срок сдачи к 15 мая

1 минуту назад

Выполнить курс . тгасу. теоретическая механика, часть 1. е-02552

Контрольная, Теоретическая механика

Срок сдачи к 24 апр.

5 минут назад

Арс

Другое, Практическая часть по тоо, педагогика

Срок сдачи к 4 апр.

6 минут назад

Сравнить и посчитать экономическую часть по данным за 2 года

Решение задач, экономика в металлургии

Срок сдачи к 6 апр.

7 минут назад

Нужно решить 11 задач

Решение задач, Теория надежности

Срок сдачи к 15 апр.

8 минут назад

сделать вид сверху

Чертеж, основы проектирования

Срок сдачи к 3 апр.

9 минут назад

Выполнить курс. Математика 2.2 . Е-02538

Контрольная, Математика

Срок сдачи к 12 апр.

11 минут назад

Решить контрольную работу

Контрольная, судебная экономическая экспертиза

Срок сдачи к 6 апр.

11 минут назад

Сделать чертёж наладку

Лабораторная, Автоматизация производственных процессов в машиностроении

Срок сдачи к 5 апр.

11 минут назад

Разработка информационной системы для столярного производства

Диплом, Информационные системы и технологии (09.03.02)

Срок сдачи к 19 апр.

11 минут назад

Выполнить задания

Поиск информации, Технологическая практика, информатика

Срок сдачи к 7 апр.

11 минут назад
11 минут назад

Сделать отчет по практике

Отчет по практике, Нефтегазовое дело

Срок сдачи к 10 апр.

11 минут назад

Подготовить доклад на тему "Гарантии президента, ушедшего в отставку"

Доклад, Государственное и муниципальное управление

Срок сдачи к 4 апр.

11 минут назад

"Стадии совершения преступления в уголовном...

Курсовая, Право

Срок сдачи к 9 апр.

11 минут назад

Релейная защита и автоматизация электроэнергетических систем

Ответы на билеты, Релейная защита и автоматизация электроэнергетических систем

Срок сдачи к 3 апр.

11 минут назад

Выполнить курсовой проект

Курсовая, Управление проектами

Срок сдачи к 9 апр.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно