![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Присваивания для диапазонов.
Не всегда возможно определить заранее будет ли выражение содержащее значения из диапазона нарушать его границы. Рассмотрим следующий оператор присваивания, включающий переменную X типа SmallInt и Y типа SmallerInt, объявленные выше.
Y: = Y + X Поскольку владеющий тип в данном случае INTEGER, операция + допустима для операндов Y и X. Сложение дает значение типа INTEGER, которое может быть присвоено Y, как значение владеющего типа. Однако если результат сложения за пределами объявленного диапазона значений для Y, т.е. 0... 10, работа программы завершится с сообщением об ошибке.
Тип диапазонов требуют переопределения значения оператора присваивания, таким образом, что функция оператора присваивания не определена, когда значение выражения находится за пределами диапазона переменной в левой части оператора.
V: = E = {< s, t>: E(s) Î Vals(V), t = (s – {< V, c>: c Î Vals(V)}) È {< V, E(s)> }}
где Vals(V) – множество всех значений типа V.
Преобразование температур.
Следующий пример преобразует температуры в точке кипения воды из градусов по Фаренгейту в градусы Цельсия. Обе переменные могли быть объявлены как целые, однако знание проблемной области предлагает значимое ограничение значений.
PROGRAM Temperature(INPUT, OUTPUT); VAR Farenheit: -459.. 212; Celsius: -273.. 100; BEGIN {Temperature} READ(Farenheit); Celsius: = (Farenheit – 32)*5 DIV 9; WRITELN(Farenheit: 4, ‘degrees Farenheit or ’, Celsius: 4, ‘degrees Celsius’) END. {Temperature}
Выполнение: INPUT: 212 OUTPUT: 212 degrees Farenheit or 100 degrees Celsius
INPUT: 32 OUTPUT: 32 degrees Farenheit or 0 degrees Celsius
INPUT: -459 OUTPUT: -459 degrees Farenheit or –272 degrees Celsius
INPUT: 1000 OUTPUT: Value 1000 is out of range. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Последний выход был произведен не программой, а Паскаль-машиной, которая определила, что 1000 за пределами допустимого диапазона для значений типа Farenheit. Тип диапазон помогает документировать программу и сдвигать груз проверок допустимости присваиваний на Паскаль-машину. Этот часто приводит к более компактным, хорошо читаемым программам. Дополнительно, значения типа диапазон могут занимать меньше памяти, чем аналогичные значения владеющего типа.
Проектирование и анализ с порядковыми типами.
Правила проектирования для CF Pascal расширяются до применения с порядковыми типами с небольшими изменениями. Анализ программ также похож, но операторы для INTEGER потребуют некоторых новых методов. Особенно легка для анализа накапливающая итерация.
|