Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры опейко.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.18 Mб
Скачать

52 Использование нечеткой логики для синтеза управления. Лингвист. Переменные.

Нечеткое множество – совокупность элементов, для каждого из которых задана степень принадлежности к этому множеству. А: , где x – элемент, - степень принадлежности. . Для классических элементов: .

Д ля нечеткого множества границы а и b размыты, как показано на рисунке:

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

Логические операции для нечетких множеств:

А: , В: .

О перация ИЛИ :

Операция И:

Арифметические операции:

С=А+В =>

С=А*В =>

Л ингвистические переменные дают большую погрешность. Применение их позволяет заменить мат. расчеты логическим выводом. Логические действия легко алгоритмизируются и не требуют большого количества разрядов. Если заменить действующие числа лингвистическими переменными , то для формирования управляющего сигнала возможно применение логических правил вывода. БП – большое положительное, МП – малое положительное, Н – нулевое, МО – малое отрицательное, БО – большое отрицательное. Когда введены лингвистические переменные, тогда каждое из них представляет собой нечеткое множество

50 Описание переменных и массивов языка с применение массивов и указателей

49 Массивы и структуры языка с

. При решении задач с большим количеством данных одинакового типа использование переменных с различными именами, не упорядоченных по адресам памяти, затрудняет программирование. В подобных случаях в языке Си используют объекты, называемые массивами.

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

Массив характеризуется следующими основными понятиями:

Элемент массива (значение элемента массива) – значение, хранящееся в определенной ячейке памяти, расположенной в пределах массива, а также адрес этой ячейки памяти.

Каждый элемент массива характеризуется тремя величинами:

адресом элемента - адресом начальной ячейки памяти, в которой расположен этот элемент;

индексом элемента (порядковым номером элемента в массиве);

значением элемента.

Адрес массива – адрес начального элемента массива.

Имя массива – идентификатор, используемый для обращения к элементам массива.

Размер массива – количество элементов массива

Размер элемента – количество байт, занимаемых одним элементом массива.

Графически расположение массива в памяти компьютера можно представить в виде непрерывной ленты адресов.

Длина массива – количество байт, отводимое в памяти для хранения всех элементов массива.

ДлинаМассива = РазмерЭлемента * КоличествоЭлементов

Для определения размера элемента массива может использоваться функция int sizeof(тип);

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

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // массив a из 10 целых чисел

В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений[en] различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа (например, через указатели)

Пример объявления структуры:

struct str_name

{

int member_1;

float member_2;

char member_3[256];

/* ... */

};

// объявление структуры

struct str_name struct0;

Тип «структура» в Си допускает рекурсию, то есть наличие в своём составе указателей, ссылающихся на объекты этой самой структуры. Таким образом, структуры в Си объединяют в себе функциональность не только кортежей и записей, но и алгебраических типов.В C++ понятие структуры было расширено до класса, то есть была добавлена возможность включения в структуру функций-методов. Главное отличие состоит в том, что в соответствии с «правилом трёх» структуры всегда имеют конструктор, даже если явное его определение в исходном коде отсутствует. Таким образом, говорить о «структурах в С++» некорректно. То же относится к C#.