- •51. Организация файловой системы fat
- •52. Организация файловой системы ext2
- •53. Язык регулярных выражений и его применение, шаблоны имен файлов
- •2)Символы – квантификаторы(повторители):
- •54. Пользовательский интерфейс ос
- •55. Язык сценариев ос
- •56. Процессы и механизмы многозадачности
- •57. Переменные величины в яп, их атрибуты, время жизни, область видимости
- •58. Типы данных в яп
- •59. Алгоритмы обработки массивов
- •60. Выражения и операции. Перегрузка операций.
- •61. Операторный базис языков программирования.
- •62. Функция как средство структурирования программы.
- •69. Механизмы создания и уничтожения объектов
- •70. Наследование в яп
- •Виртуальные функции
- •Синтаксис шаблона функции
- •Примеры определений шаблонов функций
- •Прототип шаблона функции
- •Использование шаблона функции
- •Специализация шаблонов функции
- •Шаблоны классов
- •Синтаксис шаблона класса
- •Пример определения шаблона класса
- •Использование шаблона класса
- •Векторы
- •Уравнение прямой
- •Общее уравнение прямой
- •Расстояние от точки до прямой
- •Углы между двумя прямыми, между прямой и плоскостью.
- •Общее уравнение плоскости
- •Уравнение плоскости
- •Уравнение поверхности:
- •35. Устойчивость решений дифференциальных уравнений
- •Простейшие типы точек покоя. Автономные динамические системы двух уравнений первого порядка. Типы особых точек на фазовой плоскости
- •39. Алгебра логики.
- •3. Основные законы логики.
- •5. Нормальные формы. Совершенные нормальные формы.
- •6. Арифметические операции в алгебре логики. Полином Жегалкина.
- •7. Полнота и замкнутость (примеры полных систем). Теорема Поста.
- •Вопрос 40 Графы и их свойства
- •41. Маршруты в графах и деревья.
- •42. Сети и алгоритмы на сетях.
- •43. Вероятность случайного события. Основные свойства вероятности.
- •44. Случайные величины и законы их распределения.
- •45. Числовые характеристики случайных величин.
- •46. Методы проверки статических гипотез.
- •47. Математические модели операций.
- •48. Матричные игры.
- •49.Линейное программирование. Симплекс-метод.
- •50. Выпуклое программирование.
- •2) Различные формы условий оптимальности.
- •74. Проектирование структуры реляционной базы данных. Метод er-диаграмм (сущность-связь).
- •75. Языки описания запросов. Язык sql.
- •Select [all | distinct] –команда выборки данных
58. Типы данных в яп
Тип данных определяется: множеством значений, которые могут принимать объекты этого типа; набором операций, выполняемых над этими объектами. Бывают стандартными (преопределёнными) и нестандартными (определяемыми пользователем).
Классификация типов данных Си.
Типы данных Си:
пустой тип (void)
простые (скалярные типы)
арифметические типы
целые типы(int, long, short, char)
вещественные типы (float, double, longdouble)
перечисляемый тип
указатели
структурные (агрегативные типы)
массивы
структуры
объединения
тип «функция»
Тип void (пустой).
Тип void имеет специальное назначение. Указание типа void в качестве возвращаемого значения функции означает, что эта функция не возвращает ни какого значения. Указание типа void в списке объявлений аргументов функции означает, что эта функция не принимает аргументов. Нельзя объявить переменную типа void. Однако можно объявить указатель на тип void, он будет указывать на любой, т.е. неспецифированный тип. Тип void может быть указан в операции приведения типа. Приведение значения выражения к типу void означает, что это значение не используется.
Характеристика целых типов.
Целые типы в Си:
int – знаковый целый, 4 байта
unsigned int – беззнаковый целый, 4 байта
short – знаковый короткий целый, 2 байта
unsigned short int – беззнаковый короткий целый, 2 байта
long – знаковый длинный целый, 4 байта
unsigned long int – беззнаковый длинный целый, 4 байта
char – знаковый или беззнаковый символьный, 1 байт
Представление в памяти и область значений для типов int и unsigned int не определены в Си. Размер типа int зависит от размера машинного слова. Для 16-разрядных ПК это 2 байта. Для 32-разрядных – 4 байта.
Тип char является символьным типом. Код то 0 до 255 задаёт один из 256-ти возможных символов. Закрепление конкретных символов за кодами задаётся кодовыми таблицами. Например ASCII-таблица. Константа типа char представляет собой символ, заключённый в одиночные кавычки. Например: ‘A’, ‘$’. Переменная типа char занимает 1 байт. При объявлении ей можно задать начальное значение (инициализировать). Например: char name = ‘0’.
Типы с плавающей точкой в Си:
float – плавающий одинарной точности, 4 байта
double – плавающий двойной точности, 8 байт
long double – длинный плавающий двойной точности, 8 байт
Перечислимый тип.
Тип данных «перечисление» (enumeration) используется для облегчения создания мнемонических («говорящих») идентификаторов для набора целых значений.
Синтаксис объявления переменной (или нескольких переменных) перечислимого типа:
enum [<имя шаблона>] {<список перечисления>} <имя переменной (или переменных через ,)>
где <имя шаблона> - это идентификатор, который именует перечислимый тип (имя типа).
Примечание. В некоторых источниках имя шаблона называют тегом.
Например:
enum day {MON, TUES, WED, TH, FR} work;
Здесь объявлена переменная перечислимого типа с именем work, где day – имя шаблона (тег).
Переменная перечислимого типа может принимать значения только из своего списка перечисления. Каждому элементу списка перечисления ставится в соответствие целое число, причём, если эти числа (значение элементов списка) явно не заданы, то элементы нумеруются от 0. таким образом, элементы списка имеют тип int. Поэтому перечислимый тип представляет собой множество целого типа. Над объектами перечислимого типа определены те же операции, что и над объектами целого типа.
Массив - это последовательность элементов одного типа, расположенных вплотную друг за другом в памяти ЭВМ. Каждый массив имеет имя. Доступ к отдельным элементам массива осуществляется по имени массива и индексу элемента. Основные свойства массива: все элементы массива имеют один и тот же тип; все элементы массива расположены в памяти друг за другом, причем, индекс первого элемента равен 0; имя массива является указателем-константой, равной адресу начала массива (адресу первого байта первого элемента массива). Объявление массива Синтаксис: [<имя типа>]<имя массива>[<константное выражение>] Индекс первого элемента массива всегда равен 0. Таким образом, индекс последнего элемента на единицу меньше, чем число элементов в массиве. Например: int а[10]; Двум масс Напр: char b[2] [3] Объявление массивов с инициализацией - это присваивание начальных значений элементам массива.
float b[2] = {3.0, 5.1}; 2) char st[] = { 'а' , b' , 'с' };
Структура –это объединенное в единое целое множество элементов (компонентов) данных не обязательно одного типа, имеющее одно имя. Отдельные составные части структурной переменной называются полями. Каждое поле должно иметь уникальное в пределах одной структуры имя. Объявление структуры может состоять из двух этапов: задание шаблона структуры; собственно объявление структурной переменной. Синтаксис задания шаблона: struct<имя шаблона><тип поля><имя поля>; <тип поля> <имя поля>; ..<тип поля> <имя поля>; Здесь struct служебное слово языка; <имя шаблона> -идентификатор, произвольно выбираемый программистом; <имя поля> - также идентификатор; <тип поля> - любой допустимый в языке тип, как стандартный, так и определяемый пользователем.
Напр: struct book{char name[20]; char title[40]; int year; char publisn[30]; float price;};
Фактически задание шаблона представляет собой создание нового типа данных. В приведенном примере был введен новый тип с именем struct book. Синтаксис объявления структурной переменной: <имя структурного типа> <имя структурной переменной> Напр:struct book my_book; Возможно объявление структурной инициализацией. struct book textbook.
Выделение памяти для структур происходит в момент определения структурной переменной (объекта). Память для структурной переменной выделяется в таком количестве, чтобы могли разместиться данные всех ее элементов (полей). Для доступа к полям структурной переменной по имени можно использовать операцию "." (точка). <имя структурной перем><имя поля>
Указатели на структуры. Напр. struct book*ptr bookl; //Объявлен указатель на структуру.
Доступ к полям структурной переменной через указатель осуществляется через операцию -> (стрелка). Эта операция имеет самый высокий ранг наряду со скобками и операцией "точка". Формат применения операции -> в самом простейшем случае следующий: <указатель на структуру>-><имя поля> Напр:ptr bookl -> year. Существует другой способ доступа к полям структуры через указатель:
(*ptr_bcoki) .year.
Record – составной тип данных, объединяет в себе разнотипные эл-ты, кот представляют собой единое лог целое. <имя типа>=Record <имя поля>:тип поля; ..<имя поля>:тип поля; end; пр. type book = record title:string[80]; year:integer; end;