CITEL DAC1-13VG-31-275 УЗИП Тип 1+2+3, Схема (3+1), 4 полюса, TT-TNS, UN230/UC275 Vac, Iimp=12,5kA, Itota=50kA, In=20kA, Imax=50kA (сигнализация визуальная)
Комбинированное устройство защиты серии DAC1-13VG Тип 1+2+3 предназначено для установки во вводных, распределительных и этажных электрических щитках, со средним и низким риском поражения токами молнии. Различные схемы подключения для однофазной и трехфазной сети в общем или в общем и дифференциальном режиме. Технология варистор + разрядник обеспечивают отсутствие токов утечки и сопровождающих токов. DAC1-13VG устанавливается на DIN-рейку. DAC1-13VG в многополюсной конфигурации для защиты одно, трёх или трёхфазной + Нейтраль сети.
Технические характеристики
Тип УЗИП | 1+2+3 | |
Сеть | 230/400 В 3-фазный+N | |
Конфигурация нейтрали | TT-TNS | |
Uc | 275 Vac | |
Временное перенапряжение — 5 сек. | UT | 335 В АС выдерживает |
Временное перенапряжение — 120 мин. | UT | 440 В АС выдерживает |
Временное перенапряжение N/PE | UT | 1200 В/300A/200 мс выдерживает |
Рабочий ток | Ipe | отсутствует |
Сопровождающий ток | If | Отсутствует |
Номинальный ток разряда | In | 20 kA |
Макс. ток разряда | Imax | 50 kA |
Максимальный ток разряда | Imax Total | 100 kA |
Импульсный ток на полюс | Iimp | 12. 5 kA |
Суммарный ток молнии | Itotal | 50 kA |
Испытание комбинированной волной IEC 61643-11 | Uoc | 6 kV |
Удельная энергия на полюс | W/R | 40 kJ/ohm |
Уровень защиты L/N | Up L/N | 1.5 kV |
Up-5kA | 0.7 kV | |
Up-5kA | 0.7 kV | |
Допустимый ток короткого замыкания | Isccr | |
Технология | VG | |
Конфигурация УЗИП | 3-фазный+N | |
Подсоединение к сети | зажим под винт: 2. 5-25 мм² | |
Формат | Корпус со сменными модулями | |
Монтаж | Симметричная DIN — рейка 35 мм (DIN 60715) | |
Материал корпуса | Термопластик UL94-V0 | |
Рабочая температура | Tu | -40/+85°C |
Уровень защиты | IP20 | |
Действие защиты | Отключение | |
Индикатор отключения | 1 механический индикатор на полюс | |
Модуль замены | MDAC1-13VG-275 + MDAC1-50G-xxx | |
Дистанционная сигнализация отключения | Опция DAC1-13VGS-31-275 : Выход на перекидной контакт | |
250 V / 0. |
||
Размеры | см. схему | |
Соответствие стандартам | IEC 61643-11 / EN 61643-11 / UL1449 4 изд. | |
Сертификация | IEC 61463-11 / EN 61643-11 | |
Терморазмыкатель | внутренний | |
УЗО (если имеется) | Тип ‘S’ или замедленный |
Вы можете купить CITEL DAC1-13VG-31-275 УЗИП Тип 1+2+3, Схема (3+1), 4 полюса, TT-TNS, UN230/UC275 Vac, Iimp=12,5kA, Itota=50kA, In=20kA, Imax=50kA (сигнализация визуальная) в компании «СвязьКомплект» по выгодной цене. Citel CI-821730244: описание, фото, характеристики, инструкции, отзывы.
Смотрите аналоги CI-821730244 в категории: Защита от импульсных перенапряжений в низковольтных цепях питания, УЗИП класса 1+2+3, Ограничители импульсных перенапряжений (УЗИП и разрядники)
Отзывы
Станьте первым, кто отправит отзыв!
Вентилятор ВР 132-30 №6,3 схема 1 с дв. 22/3000
характеристики
- Мощность, кВт: 22
- Типоразмер вентилятора: 6,3
Полное даление, Па: 1820-1450- Производительность, м.куб./сек: 0,5-1,45
Cкачать Технические характеристики
в pdf формате Cкачать Габаритно-присоединительные размеры
в pdf формате Cкачать Аэродинамические характеристики
в pdf формате Cкачать Акустические характеристики
в pdf формате
Краткое описание
Радиальные вентиляторы высокого давления марки ВР 132-30 используются в приточных системах вентиляции стационар. .. подробнее…
172 706
Отправить заявку
В корзину
Условия оплаты и доставки График работы * Цена указана с НДС. Не является публичной офертой.
Бесплатная доставка
по Екатеринбургу*
+7 922 034 66 94
Описание
Радиальные вентиляторы высокого давления марки ВР 132-30 используются в приточных системах вентиляции стационарного исполнения для нагнетания воздуха внутрь торгово-офисных и бизнес-центров, промышленных помещений, общественных и административных зданий и пр. Также вентиляторы ВР 132-30 эксплуатируются в составе технологических промышленных установок различных типов и назначения. Основными составляющими конструкции радиального вентилятора ВР 132-30 являются:
- опорная рама, сваренная из металлопроката;
- поворотный корпус по типу «улитка» с двумя патрубками;
- рабочее колесо с 16 лопатками, отогнутыми в сторону противоположную вращению;
- электрический привод.
Корпус вентилятора ВР 132-30 установлен на раме и имеет возможность дискретного углового смещения с определенным шагом, что позволяет установить напорный патрубок под определенным углом к горизонту. На фланцах патрубков предусмотрены отверстия для стыковки оборудования с воздуховодами вентиляционной сети. В опорной раме предусмотрены отверстия для крепления радиального вентилятора посредством анкеров к несущему основанию (перекрытиям здания). По требованию клиента комплектация может быть расширена гибкими вставками для патрубков и монтажными вибрационными изоляторами.
Назад в раздел
похожие товары
Смотреть все
проедложения
Вентилятор ВР 132-30 №10 схема 5 с дв. 75/1500
Мощность, кВт: 75
Типоразмер вентилятора: 10
Полное даление, Па: 7300-5750
Производительность, м. куб./сек: 2,5-7,4
Все характеристикиЦена по запросу
— +
Отправить заявку
Вентилятор ВР 132-30 №6,3 схема 5 с дв. 11/1500
Мощность, кВт: 11
Типоразмер вентилятора: 6,3
Полное даление, Па: 4300-3400
Производительность, м.куб./сек: 0,8-2,25
Все характеристики
189356
P
— +
Отправить заявку
Вентилятор ВР 132-30 №12,5 схема 5 с дв. 22/1500
Мощность, кВт: 22
Типоразмер вентилятора: 12,5
Полное даление, Па: 2250-1760
Производительность, м.куб./сек: 2,25-6,4
Все характеристики
589376
P
— +
Отправить заявку
Вентилятор ВР 132-30 №12,5 схема 5 с дв.
90/1500Мощность, кВт: 90
Типоразмер вентилятора: 12,5
Полное даление, Па: 9000-7000
Производительность, м.куб./сек: 4,5-13,0
Все характеристики
Цена по запросу
— +
Отправить заявку
Вентилятор ВР 132-30 №5 схема 1 с дв. 11/3000
Мощность, кВт: 11
Типоразмер вентилятора: 5
Полное даление, Па: 4750-3500
Производительность, м.куб./сек: 0,5-1,51
Все характеристики
91323
P
— +
Отправить заявку
Вентилятор ВР 132-30 №8 схема 5 с дв. 22/1500
Мощность, кВт: 22
Типоразмер вентилятора: 8
Полное даление, Па: 7000-5500
Производительность, м. куб./сек: 1,6-4,6
Все характеристики
328190
P
— +
Отправить заявку
Вентилятор ВР 132-30 №8 схема 5 с дв. 15/1500
Мощность, кВт: 15
Типоразмер вентилятора: 8
Полное даление, Па: 4650-3650
Производительность, м.куб./сек: 1,3-3,8
Все характеристики
291422
P
— +
Отправить заявку
Вентилятор ВР 132-30 №8 схема 5 с дв. 11/1500
Мощность, кВт: 11
Типоразмер вентилятора: 8
Полное даление, Па: 4650-3650
Производительность, м.куб./сек: 1,3-3,8
Все характеристики
258998
P
— +
Отправить заявку
Вентилятор ВР 132-30 №6,3 схема 5 с дв.
22/1500Мощность, кВт: 22
Типоразмер вентилятора: 6,3
Полное даление, Па: 6000-4750
Производительность, м.куб./сек: 0,9-2,7
Все характеристики
270054
P
— +
Отправить заявку
Вентилятор ВР 132-30 №6,3 схема 1 с дв. 22/3000
Мощность, кВт: 22
Типоразмер вентилятора: 6,3
Полное даление, Па: 1820-1450
Производительность, м.куб./сек: 0,5-1,45
Все характеристики
172706
P
— +
Отправить заявку
Введение в информатику, глава 3: выражения
Схема Simple: Введение в информатику 2/e Copyright (C) 1999 MIT
Глава 3
|
Взаимодействие между вами и Scheme называется «цикл чтения-оценки-печати». Схема читает то, что вы печатаете, оценивает это и печатает ответ, а затем делает то же самое снова. Были подчеркивая слово «оценивает», потому что сущность понимания Схема знает, что значит оценивать что-то.
Каждый вводимый вопрос называется выражением . [1]
выражение может быть одним значением, например 26
или чем-то большим
сложные в скобках, например (+ 14 7)
. Первый вид
выражение называется атомом (или атомарное выражение ), в то время как второй тип выражения
называется составным выражением , , потому что оно составлено из
меньшие выражения +
, 14
и 7
. Метафора из
химия, где атомы отдельных элементов объединяются в химические
соединения. Иногда мы называем выражения внутри составного выражения
его подвыражений.
Составные выражения указывают Scheme «выполнить» процедуру. Эта идея настолько важно, чтобы у него было много названий. Вы можете вызов процедура; ты может вызвать процедуру; или вы можете применить процедуру к некоторым числа или другие значения. Все это означает одно и то же.
Если вы раньше программировали на каком-то другом языке, вы, вероятно, привыкли к идее нескольких различных типов утверждений для разные цели. Например, «оператор печати» может выглядеть очень отличается от «оператора присваивания». На схеме все делается вызов процедур, как мы делали здесь. Что бы вы ни хотели делать, есть только одно обозначение: составное выражение.
Обратите внимание, мы сказали, что составное выражение содержит выражения. Это означает что вы не можете понять, что такое выражение, пока не поймете что такое выражение. Этот вид цикличности возникает снова и снова и снова и снова[2] в программировании схемы. Как Вы когда-нибудь сталкивались с этой самореферентной идеей? Секрет в том, что должно быть какое-то простое выражение, которого у нет у меньшие выражения внутри него — атомарные выражения.
Легко понять выражение, которое содержит только одно число. Цифры самооценки; , то есть когда вы оцениваете номер, вы просто получите тот же номер обратно.
Как только вы поймете чисел, вы сможете понять выражений что в сумме составляет чисел. И как только вы поймете этих выражений, вы можете использовать эти знания, чтобы вычислить выражений, которые в сумме дают . выражения-которые-складывают-числа. Потом и так далее. На практике вы обычно не думают обо всех этих уровнях сложности по отдельности. Ты просто подумайте: «Я знаю, что такое число, и я знаю, что значит сложить любых выражений.»
Так, например, чтобы понять выражение
(+ (+ 2 3) (+ 4 5))
вы должны сначала понять 2
и 3
как самооценку
числа, то поймите (+ 2 3)
как выражение, которое складывает эти
числа, а затем понять, как сумма, 5, способствует общему
выражение.
Между прочим, в обычной арифметике вы привыкли к мысли, что скобки могут быть необязательными; 3+4×5 означает то же, что и 3+(4×5). Но на схеме круглых скобок 9.0066 никогда опционально. Каждый вызов процедуры должны быть заключены в круглые скобки.
Маленькие люди
Возможно, вы этого не осознавали, но внутри вашего компьютера тысячи маленьких людей. Каждый из них является специалистом в какой-то одной Процедура схемы. Главный маленький человек, Алонзо, отвечает за цикл чтения-оценки-печати.
Когда вы вводите выражение, например
(- (+ 5 8) (+ 2 4))
Алонзо читает его, нанимает других маленьких людей, чтобы помочь ему оценить
это и, наконец, печатает 7
, его значение. Мы собираемся сосредоточиться на
шаг оценки.
Три маленьких человечка работают вместе, чтобы оценить выражение: минус человек
и два плюс человек. (Чтобы упростить чтение этой записи, мы используем
обычные английские слова «минус» и «плюс» для обозначения процедур
чьи имена схем -
и +
. Не путайте это и
попробуйте ввести минус
в схему. )
Поскольку общее выражение представляет собой вычитание, Алонзо нанимает Алису, первую имеется минус специалист. Вот как маленькие люди оценивают выражение:
• | Алиса хочет получить несколько чисел, поэтому, прежде чем она сможет выполнить какую-либо работу, она жалуется Алонзо, что хочет знать, какие числа нужно вычесть. |
---|
• | Алонзо просматривает подвыражения, которые должны предоставить Алисе
аргументы, а именно (+ 5 8) и (+ 2 4) . Поскольку оба эти
Помимо проблем, Алонзо нанимает еще двух специалистов, Берни и Корделию,
и говорит им сообщить свои результаты Алисе. |
---|
• | Первый плюс, Берни, тоже хочет какие-то цифры, поэтому он спрашивает Алонзо для них. |
---|
• | Алонзо просматривает подвыражения (+ 5 8) , которые должны предоставить
Аргументы Берни, а именно 5 и 8 . Так как это оба
атомные, Алонзо может передать их непосредственно Берни. |
---|
• | Берни складывает свои аргументы, 5 и 8 , чтобы получить 13 . Он
делает это в уме — нам не нужно беспокоиться о том, откуда он знает, как
добавлять; это его работа. |
---|
• | Второй человек, Корделия, хочет аргументов; Алонзо смотрит на
подвыражения (+ 2 4) и дает 2 и 4 для
Корделия. Она складывает их, получая 6 . |
---|
• | Берни и Корделия передают свои результаты ожидающей Алисе, которая теперь может
вычтите их, чтобы получить 7 . Она передает этот результат Алонзо, который печатает
это. |
---|
Откуда Алонзо знает, что к чему аргумент? Вот что такое группировка подвыражений со скобками — это о. Поскольку плюсовые выражения внутри выражения «минус» люди «плюс» должны отдавать свои результаты минус человек.
Мы создали впечатление, что Берни делает свою работу раньше, чем Корделия. В факт, порядок оценки подвыражений аргумента на схеме не указано; разные реализации могут делать это по-разному заказы. В частности, Корделия могла сделать свою работу раньше Берни, или они могут даже выполнять свою работу одновременно, если мы используем параллельный интерфейс . обработка комп. Однако важно, чтобы оба Берни и Корделия заканчивают свою работу раньше, чем Алиса успевает сделать свою.
Весь вызов -
сам по себе является одним выражением; это может быть
часть еще большего выражения:
> (* (- (+ 5 8) (+ 2 4)) (/ 10 2)) 35
Здесь говорится о перемножении чисел 7 и 5, за исключением того, что вместо
говоря 7 и 5 явно, мы написали выражения, значения которых равны 7 и 5. (Кстати, мы бы сказали, что приведенное выше выражение имеет три
подвыражения, *
и два аргумента. Аргумент
подвыражения, в свою очередь, имеют свои подвыражения. Однако эти
подвыражения, такие как (+ 5 8)
, не считается
подвыражения всего этого.)
Мы можем выразить эту организацию маленьких людей более формально. Если выражение является атомарным, Scheme просто знает значение.[3] В противном случае это соединение выражение, поэтому Scheme сначала вычисляет все подвыражения (в некоторых неуказанный порядок), а затем применяет значение первого, что лучше было бы процедурой, к значениям остальных из них. Эти другие подвыражения являются аргументами.
Мы можем использовать это правило для вычисления произвольно сложных выражений, и Схема не запутается. Каким бы длинным ни было выражение, оно сделано набор меньших подвыражений, к которым применяется то же правило. Посмотрите на этот длинный, запутанный пример:
> (+ (* 2 (/ 14 7) 3) (/ (* (- (* 3 5) 3) (+ 1 1)) (- (* 4 3) (* 3 2))) (- 15 18)) 13
Схема понимает это, ища подвыражения общего выражение, подобное этому:
(+ () ( ; Один из них занимает две строки, но это видно по ) ; соответствующие круглые скобки, что они являются одним выражением. ())
(Схема игнорирует все, что находится справа от точки с запятой, поэтому точки с запятой можно использовать для обозначения комментариев, как указано выше.)
Обратите внимание, что в приведенном выше примере мы попросили +
добавить к трем .
числа. В программе функций
главы 2 мы
сделал вид, что каждая функция Scheme принимает фиксированное количество аргументов,
но на самом деле некоторые функции могут принимать любое число. К ним относятся +
, *
, слово
и предложение
.
Результат Замена
Так как маленький человек не может выполнять свою работу, пока не будут созданы все необходимые подвыражения были оценены другими маленькими людьми, мы можем «быстро вперед» этот процесс, пропустив части о «Алиса ждет Берни и Корделии» и начиная с выполнения более мелких задач меньшие маленькие люди.
Чтобы отслеживать, какой результат входит в какое большее вычисление, вы можете запишите сложное выражение, а затем перепишите его несколько раз, каждый раз заменяя какое-то маленькое выражение более простым выражением что имеет такое же значение.
(+ (*(- 10 7)
(+ 4 1)) (- 15 (/ 12 3)) 17) (+ (* 3(+ 4 1)
) (- 15 (/ 12 3)) 17) (+(* 3 5 )
(- 15 (/ 12 3)) 17) (+ 15 (- 15(/ 12 3)
) 17) (+ 15(- 15 4 )
17)(+ 15 11 17)
43
В каждой строке диаграммы заключенное в рамку выражение это тот, который будет заменен его значением в следующей строке.
Если хотите, вы можете сэкономить несколько шагов, вычислив несколько маленьких выражения из одной строки в другую:
(+ (*(- 10 7)
(+ 4 1)
) (- 15(/ 12 3)
) 17) (+(* 3 5 )
(- 15 4 )
17)(+ 15 11 17)
43
Сантехнические схемы
Некоторым людям полезно посмотреть на графическую форму соединений среди подвыражений. Вы можете думать о каждой процедуре как о машине, такой как те, что они рисовали на доске в младших классах средней школы.
Каждая машина имеет некоторое количество входных бункеров сверху и один желоб снизу.
нижний. Вы кладете что-то в каждый бункер, поворачиваете рукоятку и что-то еще
выходит снизу. Для сложного выражения вы подключаете вывод
желоб одной машины в приемный бункер другой. Эти комбинации
так называемые «сантехнические схемы». Смотрим на схему сантехники
на (- (+ 5 8) (+ 2 4))
:
Вы можете аннотировать диаграмму, указав фактическую информацию, которая через каждую трубу. Вот как это будет выглядеть для этого выражения:
Ловушки
Одна из самых больших проблем, с которой сталкиваются начинающие программисты на Лиспе, возникает пытаться читать программу слева направо, а не думать о это с точки зрения выражений и подвыражений. Например,
(квадратный (cos 3))
не означает, что означает «три в квадрате, затем возьми косинус числа
ответ, который вы получите». Вместо этого, как вы знаете, это означает, что аргумент в квадрате
— это возвращаемое значение из (cos 3)
.
Еще одна большая проблема, с которой сталкиваются люди, заключается в том, что они думают, что Scheme заботится о них. о пробелах, табуляциях, разрывах строк и других «пробелах» в их Программы схемы. Мы сделали отступы в выражениях, чтобы проиллюстрировать, как что подвыражения выстраиваются друг под другом. Но к Схеме,
(+ (* 2 (/ 14 7) 3) (/ (* (- (* 3 5) 3) (+ 1 1)) (- (* 4 3) (* 3 2))) (- 15 18))
означает то же самое, что и
(+ (* 2 (/ 14 7) 3) (/ (* (- (* 3 5) 3) (+ 1 1)) (- (* 4 3) (* 3 2))) (- 15 18))
Итак, в этом выражении:
(+ (* 3 (sqrt 49) ;; странный формат (/ 12 4)))
нет двух аргументов для +
, хотя выглядит так
путь, если вы думаете об отступах. Что Scheme делает, так это смотрит на
скобки, и если вы внимательно изучите их, вы увидите, что есть
три аргумента до *
: атом 3
, составное выражение (sqrt 49)
и составное выражение (/ 12 4)
. (И есть только один
аргумент +
.)
Следствием того, что Scheme не заботятся о пробелах, является то, что когда вы нажмите клавишу возврата, схема может ничего не сделать. Если вы находитесь в середине выражения, Scheme ждет, пока вы не закончите вводить все это прежде чем он оценит то, что вы набрали. Это нормально, если ваша программа правильно, но если вы наберете это:
(+ (* 3 4) (/ 8 2) ; обратите внимание на отсутствие правой скобки
потом ничего не произойдет. Даже если вы будете печатать вечно, пока
вы закроете открытую скобку рядом со знаком +
, Схема все равно останется
читать выражение. Поэтому, если Scheme игнорирует вас, попробуйте ввести
миллион закрывающих скобок. (Возможно, вы получите сообщение об ошибке
слишком много скобок, но после этого Scheme следует обратить внимание
снова.)
Вы можете столкнуться с такими же проблемами, если у вас есть двойные кавычки
отметьте ( "
) в вашей программе. Все, что заключено в пару кавычек
обрабатывается как одна строка . Мы объясним больше о
струны позже. На данный момент, если в вашей программе есть случайная кавычка, например
этот:
(+ (* 3 " 4) ; обратите внимание на дополнительные кавычки (/ 8 2))
, то вы можете попасть в такое же затруднительное положение, когда печатаете и имеете Схема игнорирует вас. (После ввода второй кавычки вы все еще можете нужны закрывающие скобки, так как те, которые вы вводите внутри строки не в счет.)
Еще один способ, которым Схема может вас игнорировать, исходит из
тот факт, что вы не получите приглашение на новую схему, пока не введете выражение
и это оценивается. Поэтому, если вы просто нажмете , верните
или , введите
.
ничего не вводя, большинство версий Scheme не будут печатать новое приглашение.
Сверлильные упражнения
3.1 Переведите арифметические выражения (3+4)×5 и 3+(4×5) в выражения Scheme и в сантехнические схемы.
3.2 Сколько маленьких людей нанимает Алонзо для оценки каждого из следующих выражений:
(+ 3 (* 4 5) (- 10 4)) (+ (* (- (/ 8 2) 1) 5) 2) (* (+ (- 3 (/ 4 2)) (грех (* 3 2)) (- 8 (кв. 5))) (- (/ 2 3) 4))
3.3 Каждое из выражений в предыдущем упражнении является составным. Сколько подвыражения (не включая подвыражения подвыражений) делает каждое один есть?
Например,
(* (- 1 (+ 3 4)) 8)
имеет три подвыражения; вы бы не считали (+ 3 4)
.
3.4 Пять маленьких людей наняты для вычисления следующего выражения:
(+ (* 3 (- 4 7)) (- 8 (- 3 5)))Дайте каждому маленькому человеку имя и перечислите его специальность, значения аргументов. она получает, ее возвращаемое значение и имя маленького человека, которому она сообщает свой результат.
3.5 Вычислите каждое из следующих выражений, используя замену результата техника:
(кв (+ 6 (* 5 2))) (+ (+ (+ 1 2) 3) 4)
3. 6 Нарисуйте сантехнику для каждого из следующих выражений:
(+ 3 4 5 6 7) (+ (+ 3 4) (+ 5 6 7)) (+ (+ 3 (+ 4 5) 6) 7)
3.7 Какое значение возвращает (/ 1 3)
в вашей версии
Схема? (Некоторые схемы возвращают десятичную дробь, например 0,33333
, а
другие имеют точные дробные значения, такие как 1/3
.)
3,8 Какая из функций, изученных вами в главе 2, будет принимать переменное количество аргументов?
Реальные упражнения
3,9 Выражение (+ 8 2)
имеет значение 10
. это соединение
выражение, состоящее из трех атомов. Для этой задачи напишите пять других
Выражения схемы, значения которых также являются числом десять:
• | Атом |
---|
• | Другое составное выражение, состоящее из трех атомов |
---|
• | Составное выражение, состоящее из четырех атомов |
---|
• | Составное выражение, состоящее из атома и двух составных подвыражений. |
---|
• | Любое другое выражение |
---|
[1] В других языках программирования, имя того, что вы вводите, может быть «команда» или «инструкция». Название «выражение» предназначено для подчеркните, что речь идет об обозначениях, в которых вы задаете вопрос, в отличие от идеи в вашей голове, точно так же, как в английском вы выразить мысль словами. Также в Схеме мы чаще спрашиваем вопросы, а не приказывать компьютеру предпринять какие-либо действия.
[2] и снова
[3] Мы объяснить эту часть более подробно позже.
(назад к оглавлению)
ЗАДНЯЯ резьба главы СЛЕДУЮЩАЯ
Брайан Харви, [email protected]
SI413: Основы схемы
SI413: Основы схемыРазжигание доктора Рэкета
В командной строке просто введите « drracket &
» и
вы должны увидеть открытое разделенное окно интерпретатора/ввода кода
вверх. [Примечание: В зависимости от того, как вы установили, вы должны
выберите «язык», прежде чем начать
делать что-либо. В меню: Lanugagues → Выбрать
Язык выбираем R5RS . ] Нижняя панель — интерпретатор. Вы можете ввести схему
выражение типа (+ 3 4)
в подсказке и
Клавиша return
заставит интерпретатор
оценить выражение — при условии, что курсор находится в
конец строки . Вы можете довести курсор до конца
линии мгновенно с ctrl-e комбинация (управление и
клавиши e нажаты одновременно).
Примечание: в этот момент мы продолжим и сохраним ваш определения (верхнее окно), даже если оно пустое. Сначала добавьте строку
; <вашеимя> <ваша альфа>
в окно определений. ‘;’ является символом комментария в
схема и каждый файл исходного кода, который вы отправляете в рамках курса
должно быть ваше имя и альфа наверху!
Затем сохраните определения с помощью
имя файла схема 01. скм
.
Если он спросит, хотите ли вы сохранить его как открытый текст, вы говорите да !
Это файл, который вы в конечном итоге отправите в систему отправки.
Арифметические выражения
Выражение в Scheme является либо атомарным объектом (числом,
символ, строка) или это список выражений внутри
круглые скобки — элементы, разделенные пробелом.
Когда список оценивается интерпретатором, первый элемент
рассматривается как функция, а остальные элементы рассматриваются
в качестве аргументов функции. Итак, вместо sqrt(2.4)
, на схеме мы говорим (sqrt
2.4)
. Конечно, выражения могут быть вложенными.
(состав функций), поэтому sqrt(3.4*2.9)
выражается на схеме как (sqrt (* 3,4 2,9))
.
Числовые типы
Раздел
6.2
определения языка схемы R5 описывает числа в
Схема. Вот некоторые важные моменты.
Целые числа в Scheme могут быть произвольно большими (BigInts, вы
слышно, как люди говорят), и число, записанное без десятичной точки
точка задана целочисленным типом. Числа с плавающей запятой (тип
«настоящие») являются
по существу удваивается, и если вы пишете число с
десятичная точка будет рассматриваться как действительная..
Схема построена на рациональных числах (дробях) и сложных
числа также. Мы сосредоточимся на целых и действительных числах.
Целочисленные функции
Все перечисленные ниже функции возвращают целочисленные значения.
+ - * остаток по модулю макс мин абс числитель знаменатель НОД лкм пол потолок урезать раунд рационализировать эксп
Обратите внимание, что деления здесь нет. Деление возвращает рациональное значение (то есть дробь).
Функции с плавающей запятой Вышеупомянутые функции, которые имеют смысл для вещественных чисел, определены для реалов, кроме того, у вас есть другие, такие как:
грех, потому что загар кврт
что должно быть понятно. Функции точный->неточный
и неточное->точное
преобразовать из рационального туда и обратно
числа с плавающей запятой.
Упражнения:
- Напишите 4,7*(34,453 — 47,728) + 3,7 как схему выражение и найти его значение. (-58.6925)
- Такие функции, как +,-*,max и min, которые имеют смысл для
работает более двух аргументов (и меньше двух!)
просто отлично для более чем двух аргументов. Например:
(+ 1 2 3) равно 6, как и следовало ожидать.
Напишите выражение, результатом которого является наибольшее значение
sqrt(5), sin(1) + sin(2) + sin(3) и 17/8. Примечание:
Помните, что целочисленное деление дает рациональные числа.
Функция 92 + 3*x — 5, а затем просто вызовите функцию с помощью
аргумент 2.451.
Так как же написать функцию? Ну, выше было бы:
> (определить (f x) (+ (* 2 x x x) (* -1 x x) (* 3 x) -5)) > (f 2,451) 25.793878702
На самом деле это что-то вроде ярлыка для определения функции, как мы обсудим позже. Ясно, что вы определяете новая функция с именем
f
и параметром имена — это все остальное, указанное в скобках (простоx
в данном случае), и далее следует выражение, являющееся значением функции. Для более простой пример, функция с именемmy-ave
может быть определено так:( определить (мой-ср x y) (/ (+ x y) 2.0) )
Надеюсь, три компонента понятны.
Упражнения
- Функции записи
по шкале Цельсия
ив
по Фаренгейту, которые конвертируются туда и обратно от Цельсия до Фаренгейта. Напомним: T_C = 5/92 + x*cos(x) и для а для его производной cos(x) — x sin(x) + 2 cos(x) sin(x).
Управление: if и cond
В C++ if являются операторами. Это означает, что у них нет тип и они не имеют значения. Вместо этого они описывают процесс, побочные эффекты которого (выход, изменения переменных значения и т. д.) воплощают фактические вычисления. В схеме все является выражением, и это включает в себя if’s. Выражение if состоит из трех частей: тестовое условие, выражение «тогда» и выражение «иначе». Значение если выражение является либо выражением «тогда» (когда тест оценивается как true) или выражение «else». Например, следующее выражение оценивается как абсолютное значение x:
( если (< х 0) (* -1 х) х )
Видите ли, в зависимости от результата теста мы либо получаем значение -1*x или просто сам x. Мы можем, конечно, использовать это, чтобы определить функцию абсолютного значения:
(определить (my-abs x) (если (< x 0) (* -1 x) x))
хотя, конечно, схема уже есть. Мы можем вкладывать эти выражения по мере необходимости.
Упражнения:
- Определите функцию с именем
signed-inc
, который возвращает 1 плюс аргумент, если аргумент неотрицательное, и -1 плюс его аргумент, если аргумент отрицательный. - Переопределить
signed-inc
, чтобы он возвращал свой аргумент не изменяется, если аргумент равен 0, но в противном случае действует как прежде. - Определите функцию
в середине
, которая занимает три числа в качестве аргумента и возвращает среднее из трех. Например.(средний 4 2 3)
должен оцениваться как 3.
В схеме присутствуют логические операторы и, или и не как вы и предполагали. Истинной в схеме является константа #t а false — константа #f. Например:
> (и (> 1 0) (< 2 -3)) #ф > (или (> 1 0) (< 2 -3)) #т
Числа можно сравнивать с обычными: т.е. <, >, ≤, ≥, =. Примечание: для нечисловых объектов
равно?
- это то, что вы хотите использовать (также работает с числами).Также есть приятная функция
cond
это полезно когда у вас есть куча различных случаев для рассмотрения. Для например, если вы хотите определить функцию whats-your-sign который возвращает 1,0,-1 в соответствии со знаком числа, вы может использоватьусловие
следующим образом:(определить (какой-ваш-знак x) (конд (( х 0) 1) ((= х 0) 0) ) )
Таким образом, аргументы cond образуют список пар условие/результат. Интерпретатор находит первое условие, которое выполняется, и значением выражения cond является результат, связанный с таким условием.
Упражнения:
- Переопределить
средний
сверху с условными обозначениями и и х.
Рекурсия!
Чтобы сделать что-нибудь интересное в Scheme, нам нужна рекурсия. Причина в том, что у нас нет петель! Предположим, например, что мы хотел определить функцию
сумма-диапазон
, которая бы суммировать все целые числа в заданном диапазоне. Обычно мы думаем использования циклов для этого, но Scheme не делает циклы! Они вопреки идее ссылочной прозрачности - т.е. побочные эффекты. Циклы созданы для создания побочных эффектов. снова и снова и снова. В любом случае нам нужно использовать рекурсию:(определить (сумма-диапазон i j) (if (= i j) i (+ i (сумма-диапазон (+ i 1) j))))
В рекурсии нет ничего нового для вас, ребята, вы просто будете использовать много больше об этом в Схеме.
Упражнения:
- Определите функцию
факториала
. Попробуйте взять факториал числа 111. Что вы заметили в результат. Считаете ли вы, что прямолинейный C++ реализация могла бы дать вам этот результат? - Я хочу вычислить сложные проценты. Написать функцию
начислить
что берет остаток, годовой процентная ставка и количество лет и возвращает остаток на конец периода, если предположить, что проценты начисляются ежемесячно. Напомним: если годовой процентная ставка равна r%, а остаток равен B, тогда начисление процентов дает новый баланс B*(1 + r/100/12). Подсказка: Хорошее восходящее решение для этого было бы вероятно, потребуется написать(составной месяц B r)
функция, которая делает только один месяц состав, тестирование, а затем двигаться дальше. Далее напишитеначисления-месяцев
что бы взять баланс, а ставки и количество месяцев, и вычислить баланс в конец этого месяца - проверьте это! Тогда должно быть легко написать вашинакапливают функцию
. - Напишите функцию
fib
для вычисления чисел Фибоноччи. Напомним, что fib(0) и fib(1) равны 1. Все остальные определенный по правилу fib(n) = fib(n-1) + fib(n-2).
пусть
пусть
конструкция на схеме позволяет дать имя общего подвыражения. Например, рассмотрим выражение(33 * (501 - 33)) / ( 1 - (33 * (501 - 33)))
Естественный способ закодировать это на схеме, вероятно,
(/ (- (* 33 501) 33) (- 1 (- (* 33 501) 33)))
Но вы могли бы сказать: "пусть а = 33 * (501 - 33) и вернуть / (1 - а)". По сути, это то, что позволяет вам делать
пусть
.(пусть ((а (- (*32 501) 33))) (/ а (- 1 а)))
По сути,
пусть
— это схема, позволяющая получить локальную информацию. изменяемый функционал. То, что у вас есть, этоключевое слово let
, за которым следует список пары имя-переменная/значение, за которыми следует выражение (предположительно с использованием новых имен), который обеспечивает значение весьпусть
выражение. - Функции записи