Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Стандартные математические функции и функции преобразования



Парадигмы программирования и краткая история функционального программирования

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

Наряду с императивной существует и декларативная. В декларативной парадигме программа представяет собой описание задач а не способ ее решения.

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

Языки программирования - Императивные (Процедурные (си, паскаль), объектные (с++, ада)) и декларативные (Функциональные (лисп, хаспл), логический (пролог))

Краткая история - Императивное программирование основано на модели абстрактного вычислителя, сформулированной аланом тьюрингом и дополненной фон нейманом.

Теоретические основы функционального программирования были сформулированы и разработаны по математической логике. В начале 50 - х годов прошлого века Маккартни разработал 1-й функциональный язык Lisp? который в различном виде используется до сих пор.

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

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

Элементарные числовые типы и арифметические операторы

Типы - некоторая абстракция, которая в -ю очередь имеет отношение к обеспечению целостносити.Типы являются гарантий выполнения необходимых преобразований.

Некоторые типы являются достаточно простыми, например целые числа, а некоторые абстрактные, например функции.

Язык F# относится к языкам со статической типизацией. Это значит что проверка типов выполняется на этапе компилляции. F# поддерживает полный комплект элементарных типов .net, они отделены от пользовательских типов.

Чтобы создать значение используют операцию связывания Let (можно использовать для создания нового идентефикатора)

Элементарные числовые типы делятся на 2 вида: для представления целых и вещественных чисел.

Целочисленные типы могут иметь разные размеры.М.б. знаковыми и беззнаковыми(определяет м.б. отрицательными или нет)

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

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

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

+,-,*,/,%(остаток от деления), оператор ** можетприменяться только к значениям типа float и float32. Чтобы возвести в степень целочисленное значение используется функция pown.

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

Стандартные математические функции и функции преобразования

ABS (абсолютное значение), CIAL( округление вверх), EXP( возведение экспоненты в степень), FLOOR( округление вниз), SIGN( знак числа), LOG( натуральный логарифм), LOG10( десятичный), SQRT( корень), COS,SIN,TAN,POWN (возведение целого в степень)

Один из принципов, которому следует F#, это отсутствие неяных преобразований, т.е. компиллятор не будет выполнять автоматическиепреобразования элементарных типов.

Функции преобразования (sbyte, byte, int 16 32 64, uint 16 32 64, float 32, decimal)

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.