Редактирование: МФСП, 03 семинар (от 15 сентября)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
- | В прошлый раз | + | Продолжаем изучть язык RSL |
+ | |||
+ | В прошлый раз рассм. типы, операции с ними, призв. типы. Разбрались с функц., кнстантами. | ||
Сейчас: дорешать задачи про функции и перейти к множествам. | Сейчас: дорешать задачи про функции и перейти к множествам. | ||
+ | Даны типы: | ||
- | '''Задача.''' Даны типы: | ||
'''type''' position = Real×Real; | '''type''' position = Real×Real; | ||
'''value''' | '''value''' | ||
- | origin : Position = (0.0, 0.0) | + | origin : Position = (0.0, 0.0) # начло координат |
dist : Position × Position → Real | dist : Position × Position → Real | ||
dist((x_1, y_1), (x_2, y_2)) ≡ ((x_1 - x_2)^2.0 + (y_1 - y_2)^2.0)^0.5 | dist((x_1, y_1), (x_2, y_2)) ≡ ((x_1 - x_2)^2.0 + (y_1 - y_2)^2.0)^0.5 | ||
Строка 13: | Строка 15: | ||
определить: тип circle, функцию on_circle | определить: тип circle, функцию on_circle | ||
- | '''Решение:''' | ||
'''type''' | '''type''' | ||
Circle = Real × Position # радиус, центр | Circle = Real × Position # радиус, центр | ||
Строка 20: | Строка 21: | ||
on_circle((r, c_0), c) ≡ (dist(c_0, c) = r) | on_circle((r, c_0), c) ≡ (dist(c_0, c) = r) | ||
- | + | Описать окр. с радиусм 3 и центром в нач. коорд. | |
'''value''' | '''value''' | ||
c_3_0_0 : Circle ≡ (3.0, Origin) | c_3_0_0 : Circle ≡ (3.0, Origin) | ||
- | + | Описать точку, лежащюю на этой окружности | |
- | '''Решение:''' | ||
'''value''' | '''value''' | ||
d_on_c_3_0_0 : Position • on_circle(c_3_0_0, d_on_c_3_0_0) = True | d_on_c_3_0_0 : Position • on_circle(c_3_0_0, d_on_c_3_0_0) = True | ||
- | + | Написать sqrt, взвр. знач, отл. от корня из x не более, чем н eps. | |
- | '''Решение:''' | ||
'''value''' | '''value''' | ||
- | sqrt : Real × Real; | + | sqrt : Real × Real; стрелочко с тильдой Real |
sqrt(a,b) as x | sqrt(a,b) as x | ||
- | '''post''' (abs(sqrt(a) - x) ≤ b) && (x ≥ 0) | + | '''post''' (abs(sqrt(a)-x) ≤ b) && (x ≥ 0) |
- | '''pre''' (b | + | '''pre''' (b ?ge; 0) && (a ≥ 0) |
- | + | Дано опр.: | |
'''value''' | '''value''' | ||
- | f: Int | + | f: Int стрелочка с тильдой Int |
f(x) ≡ f(x) | f(x) ≡ f(x) | ||
- | + | Удвл. ли этому опр. след. опр.: | |
'''value''' | '''value''' |