"Программа = Алгоритм + Структура данных"
Цель лекции:
Как уже указывалось в эпиграфе, в этой лекции будет подробно рассказано о типах данных - константах, переменных и т.п., используемых при программировании на любом языке. Правильно выбранный тип данных влияет не только на реализацию тех или иных алгоритмов - от него также зависит
Следует отметить, что концепция типов данных не реализована в таких языках, как Perl, Visual Basic Script (
Типы данных в таких языках, как C, C++, Java можно принудительно приводить к определенному типу. В этих языках автор советует так и поступать - если потребуется, применять принудительное приведение типов, а не ограничиваться приведением по-умолчанию. В противном случае могут возникнуть ошибки, например: "Не могу привести тип '
Как уже говорилось выше, почти во всех языках программирования выделяются "машинные" типы данных. Вкратце объясним их происхождение.
Как известно из школьных учебников по информатике [36, 54, 53, 35], любое число, любые символы, любые объекты в памяти ЭВМ представляются в виде последовательности нулей и единиц - битов. Бит (от английского
Отступление. В середине 70-х годов XX века ученые подсчитали, что человеческий мозг вмещает в себя ~10^18 бит информации. Это число соответствовало в то время всей информации, содержащейся в библиотеке им. В.И. Ленина. В переводе на современный компьютерный язык это соответствует приблизительно одному экзабайту - миллиону
Итак, все данные в ЭВМ представляются в виде одного или нескольких битов. Тогда напрашивается вопрос: "А откуда в языках программирования такое большое число машинных типов данных, если все кодируется битами?" Автор отвечает: количество машинных типов данных определяется количеством регистров и их типом в
Помимо своего размера (так называемой разрядности) регистров различают также назначение регистра и формат хранимых в нем данных. Подробнее о машинных типах данных смотри этот раздел ниже.
Наиболее простыми в реализации и "очевидными" с точки зрения "
Тип данных "целые без знака" представляют собой натуральный ряд чисел, которые начинаются с "0" (а не с "1", как в математике!) и продолжаются вплоть до исчерпания разрядности регистра.
Тип данных "целые со знаком" содержат в старшем бите (по-другому - в самом "левом", первом по порядку бите) признак знака. Если этот бит имеет значение: "0", то число считается положительным, если "1" - отрицательным числом.
| Тип регистра | min | max |
|---|---|---|
| целые без знака | ||
| 1 байт | 0 | 255 |
| 2 байта | 0 | 65 535 |
| 4 байта | 0 | 4 294 967 295 |
| 8 байт | 0 | 18 446 744 073 709 600 000 |
| целые со знаком | ||
| 1 байт | -128 | 127 |
| 2 байта | -32 768 | 32 767 |
| 4 байта | -2 147 483 648 | 2 147 483 647 |
| 8 байт | -9 223 372 036 854 780 000 | 9 223 372 036 854 780 000 |
В таблице 5.1 представлены максимальное (max) и минимальное (min) значения, применяемые числами в целочисленных регистрах различной разрядности для типов "целые со знаком" и "целые без знака". Между этими максимальными и минимальными значениями могут принимать целочисленные значения константы и переменные указанных типов.
| Разрядность регистров | Обозначение | Примечание | Префикс |
|---|---|---|---|
| Quick Basic | |||
| 4 байта | <идентификатор>% | Существует только один целый тип | |
| Java | |||
| 1 байт | byte | со знаком | b |
| 2 байта | со знаком | n | |
| 4 байта | int | со знаком | i |
| 8 байт | long | со знаком | l |
| C/C++ | |||
| 1 байт | char | со знаком | c |
| без знака | uc | ||
| 2 байта | со знаком | n | |
| без знака | un | ||
| 4 байта | long | со знаком | l |
| без знака | ul | ||
| 2 или 4 байта | int | со знаком | i, n |
| без знака | u | ||
| C/C++ Windows API |
|||
| 2 или 4 байта | BOOL | int | fb |
| 1 байт | BYTE | b | |
| 2 байт | WORD | w | |
| 4 байта | DWORD | dw | |
| 2 или 4 байта | UINT | u | |
| Указатели: | |||
| 2 байта | PSTR | char near * | npsz |
| 2 байта | NPSTR | char near * | npsz |
| 4 байта | LPSTR | char far * | lpch |
| 4 байта | LPCSTR | const char far * | lpsz |
| 2 байта | PBYTE | BYTE near * | |
| 4 байта | LPBYTE | BYTE far * | lpb |
| 2 байта | PINT | int near * | |
| 4 байта | LPINT | int far * | |
| 2 байта | PWORD | WORD near * | npw |
| 4 байта | LPWORD | WORD far * | lpw |
| 2 байта | PLONG | long near * | |
| 4 байта | LPLONG | long far * | |
| 2 байта | PDWORD | DWORD near * | npdw |
| 4 байта | LPDWORD | DWORD far * | lpdw |
| 4 байта | LPVOID | void far * - дальний указатель на пустой тип | lpv |
В таблице 5.2 дается соответствие между разрядностями целочисленных регистров и связанными с ними обозначениями типов на языках Quick Basic, C/C++, Java. В этой же таблице приведены "псевдонимы" "машинных" типов данных, применяемых в библиотеке Windows API. Подробнее о Windows API смотри в книгах [86-91].
С
Все эти операции, их обозначения, действия, а также
| Название операции | Обозначение | Приоритет | Кол-во операндов | Примечание |
|---|---|---|---|---|
| Целочисленная арифметика | ||||
| Сложение | + | 8 | 2 | |
| Вычитание | - | 8 | 2 | |
| Умножение | * | 7 | 2 | |
| Целочисленное деление | / | 7 | 2 | |
| % | 7 | 2 | ||
| Смена знака числ | - | 5 | 1 | |
| ++ | 3 | 1 | ||
| -- | 3 | 1 | ||
| Отношение "Больше" | > | 11 | 2 | |
| Отношение "Больше или равно" | >= | 11 | 2 | |
| Отношение "Меньше" | < | 11 | 2 | |
| Отношение "Меньше или равно" | <= | 11 | 2 | |
| Отношение "Равно" (Си под.) | == | 12 | 2 | |
| Отношение "Равно" (Basic) | = | 12 | 2 | |
| Отношение "Не равно (Си под.) | != | 12 | 2 | |
| Отношение "Не равно (Basic) | <> | 12 | 2 | |
| Арифметика плавающей точки | ||||
| Сложение | + | 8 | 2 | |
| Вычитание | - | 8 | 2 | |
| Умножение | * | 7 | 2 | |
| Целочисленное деление | / | 7 | 2 | |
| % | 7 | 2 | ||
| Смена знака числа | - | 5 | 1 | |
| ++ | 3 | 1 | ||
| -- | 3 | 1 | ||
| Отношение "Больше" | > | 11 | 2 | |
| Отношение "Больше или равно" | >= | 11 | 2 | |
| Отношение "Меньше" | < | 11 | 2 | |
| Отношение "Меньше или равно" | <= | 11 | 2 | |
Целочисленная арифметика генерирует следующие ошибки [39,40], вызывает так называемые
Замечание по целочисленному делению. Целочисленное деление отличается от "обычного математического" деления в том, что при целочисленном делении происходит "отбрасывание" дробной части результата, например:
На практике это приводит к большим ошибкам округления при расчетах. Но иногда следует использовать только целочисленную арифметику. Например, при выдаче информации на экран дисплея в "графическом" виде по-умолчанию используется (во всяком случае, в библиотеке Windows API) только целочисленные значения. Для этих целей использование целочисленной арифметики - "естественно".
use integer - для включения целочисленной арифметики;no integer - для выключения целочисленной арифметики.Подробнее смотри [59].
Булева алгебра - это раздел математики, изучающий операции с логическими данными, то есть данными, принимающие значения: "Истина" и "Ложь" (по-английски: "true" и "false"). Эта дисциплина была разработана английским математиком XIX века Джорджем Булем, имя которого она носит.
К булевым операциям (которые в русскоязычной литературе чаще называют логическими операциями) относятся:
Из этих логических операций первые три операции присутствуют практически во всех языках программирования, а последние две - только в языках
| Название операции | Обозначение | Приоритет | Кол-во операндов | Примечание |
|---|---|---|---|---|
| Логическое "И" (Си) | 15 | 2 | ||
| Логическое "И" (Basic) | AND | 15 | 2 | |
| Логическое "ИЛИ" (Си) | || | 16 | 2 | |
| Логическое "ИЛИ" (Basic) | OR | 16 | 2 | |
| Логическое "НЕ" (Си) | ! | 12 | 1 | |
| Логическое "Не" (Basic) | NOT | 12 | 1 | |
| Битовое "И" | 13 | 2 | ||
| Битовое "ИЛИ" | | | 14 | 2 | |
| Битовое " |
^ | 14 | 2 | |
| Примечание: |
||||
| Конъюнкция A B | A = TRUE | A = FALSE |
|---|---|---|
| B = TRUE | TRUE | FALSE |
| B = FALSE | FALSE | FALSE |
| A = TRUE | A = FALSE | |
|---|---|---|
| B = TRUE | TRUE | TRUE |
| B = FALSE | TRUE | FALSE |
| A = TRUE | A = FALSE | |
|---|---|---|
| B = TRUE | FALSE | TRUE |
| B = FALSE | TRUE | FALSE |
| Эквивалентность А <=> B | A = TRUE | A = FALSE |
|---|---|---|
| B = TRUE | TRUE | FALSE |
| B = FALSE | FALSE | TRUE |
Как уже сказано выше, логические выражения могут принимать только два значения: "false" (ложь) и "true" (истина). Эти значения-константы определены следующим образом:
Логично использовать для этих констант целое число разрядностью 1 бит, но... Поскольку минимальным размером регистра, отводимого под целое число, является 1 байт, то именно ячейка памяти этого размера служит для хранения числа с типом данных: "Boolean". На самом деле размер этого типа данных может составлять 2 или даже 4 байта. Это связано со следующими обстоятельствами.
В основном стандарте для языка Си:
while( !eof( stream ) )
Описывает цикл "Пока", завершающийся при достижении конца файла, связанного с потоком stream. Информацию по потокам и окончанию файлов смотрите в следующих лекциях.
Не смотря на несоответствие стандарту
Арифметика чисел с плавающей точкой реализует основные математические операции и вычисления на компьютере. Благодаря наличию типов данных с плавающей точкой корректно реализуются операции деления любых чисел. Однако на некоторые операции, как и на максимальные и минимальные значения чисел, накладываются ограничения. Об этих ограничениях будет сказано ниже.
Хотя арифметика чисел с плавающей точкой не является главной темой данного руководства, необходимо ознакомиться с основами ее работы. При первом прочтении Вы можете пропустить данный раздел.
Число с плавающей точкой представляет собой вещественное число, имеющее целую часть и дробную часть, представляющую последовательность нулей и единиц (то есть обычные числа, получающиеся в результате измерения). В компьютере они представляются в виде
При численных вычислениях удобно пользоваться следующей формулой вещественных чисел:
0.<мантисса>·10<порядок>
например:
0.123·103
0.25·1010
В первом примере
Представление чисел с плавающей точкой в ЭВМ также происходит с помощью нулей и единиц, однако их формат отличается от формата целых чисел (см. [40]). Схематично его можно представить следующим образом:
<знак><мантисса><знак порядка><порядок>
Длина же машинного представления чисел с плавающей точкой равна 4, 8 и 10 байт. При этом число в регистре длиной 4 байта имеет
В таблице 5.5 представлены максимальные и минимальные значения, принимаемые числами с плавающей точкой в регистрах с различной разрядностью. В таблице 5.6 дается соответствие между разрядностью регистров чисел с плавающей точкой и их обозначениях в языках Quick Basic, Си, C++ и Java.
| Тип регистра | Порядок | |||
|---|---|---|---|---|
| min | max | min | max | |
| 4 байта | 1,18 | 3,40 | -38 | 38 |
| 8 байт | 2,23 | 1,79 | -308 | 308 |
| 10 байт | 3,37 | 1,18 | -4 932 | 4 932 |
| Разрядность регистров | Обозначение | Примечание | Префикс |
|---|---|---|---|
| Quick Basic | |||
| 8 байт | <идентификатор> | Тип по-умолчанию | |
| Java | |||
| 4 байта | float | Не реализован в J# | f |
| 8 байт | double | d | |
| C/C++ | |||
| 4 байт | float | f | |
| 8 байт | double | d | |
| 10 байт | long double | ld | |
С данными в виде чисел с плавающей точкой возможны следующие операции:
Все эти операции, их обозначения, действия, а также
Арифметика с плавающей точкой имеет следующие
Возможны и другие прерывания.
Итак, после прослушивания данной лекции Вы узнали:
В следующей лекции Вы познакомитесь с "примитивными символьными" данными.
| Термин | Английский термин | Разъяснение |
|---|---|---|
| тип данных | data type | Термин, определяющий отнесение ячеек памяти по их содержимому, формату и назначению к определенным группам в ЭВМ и языках программирования Типы данных определяют допустимые для них процедуры, функции и операции. |
| программирование 1. | programming 1. | Процесс написания программ на языках программирования. |
| программа | program | Реализация алгоритма на языке программирования для его обработки на ЭВМ. Эта реализация подразумевает использование определенных типов данных. |
| язык программирования 1. | programming language 1. | Программный комплекс, позволяющий подготовить и реализовать некоторый алгоритм для выполнения на ЭВМ. |
| язык программирования 2. | programming language 2. | Некоторые правила, с помощью которых алгоритм преобразуется в программу для ЭВМ. Эти правила накладывают ограничения на синтаксис, типы данных, языковые конструкции, процедуры и функции. Эти ограничения могут иметь принципиальное значение на реализацию алгоритма, поэтому выбор языка определяется на ранних этапах разработки проекта. |
| процедура | procedure | Основная единица |
| функция 1. | function 1. | В узком смысле - подпрограмма, возвращающая единственное значение - значение функции. |
| алгоритм | algorithm | Последовательность действий, приводящая к определенному |
| машинные типы данных | computer data types | Типы данных, поддерживаемые архитектурой вычислительных машин (прежде всего - |
| пользовательские типы данных | user data types | Типы данных, |
| класс | class | Пользовательский тип данных, описанный в терминах |
| приведение типов | reduction of the types | В языках программирования - изменение типа данных при реализации алгоритмов. С помощью приведения типов можно, например, результат целочисленной арифметики присвоить переменной плавающей точки. |
| принудительное приведение типов | forced reduction of the types | Явное, не зависящее от |
| приведение типов по-умолчанию | default reduction of the types | Встроенный в язык высокого уровня алгоритм приведения типов данных. Приведение типов на языке Си происходит по следующей схеме: char -> . Только при такой схеме приведения типов значение переменных не теряется. Принудительное приведение типов в обратном порядке чревато |
| бит 1. | bit 1. | Единица информации в информатике, которая может принимать одно из двух значений: "0" или "1". |
| бит 2. | bit 2. | Минимальная ячейка памяти, предназначенная для хранения двоичного разряда. |
| байт 1. | byte 1. | Единица информации, состоящая из 8 битов. С помощью одного байта можно представить до 256 символов, что достаточно для представления алфавитов европейских языков (см. кодировки). |
| байт 2. | byte 2. | Кратная байту (1) ячейка памяти в ЭВМ. Байт - минимальная единица информации, воспринимаемая ЭВМ. Все ячейки в ЭВМ выровнены по границам байта. |
| ячейка памяти | memory cell | Устройство в ЭВМ (регистр, конденсаторная ячейка и т.п.), способное записывать, хранить в себе и выдавать по запросу двоичные числа. Представляет собой последовательность битов и байтов. |
| сжатие с потерями | lossy compression | Алгоритм "упаковки", "уплотнения" информации с "отбрасыванием" не воспринимаемых человеком данных. Сжатие с потерями используется в алгоритмах "сжатия" музыки и видео - |
| полуслово | semiword | Ячейка памяти размером в два байта. Термин используется в "многоразрядных" ЭВМ. |
| слово | word | Ячейка памяти размером в два байта (для процессоров семейства x86) или четыре байта (для "многоразрядных" процессоров). |
| двойное слово | double word | Ячейка памяти размером от 4 байтов (для процессоров семейства x86) и от 8 байтов (для "многоразрядных" процессоров). |
| назначение регистра | function of a register | Выполняемая функция регистров в микропроцессорах. В современных процессорах существуют регистры общего назначения, |
| РОН | general-purpose register | См. регистр общего назначения |
| регистр общего назначения | general-purpose register | Регистр в |
| сегментный регистр | segment register | Регистр в |
| регистр флагов | flags register | Регистр в |
| признак результатов | sign of results | Некоторое событие, условие, возникающее в результате выполнения операций с данными. Например, признаком может быть равенство нулю результата операции, смена знака результата, переполнение и т.п. Признаки результата используются |
| размер регистра | dimension of a register | Количество битов (разрядность) регистров в |
| разрядность регистра | width (capacity) of the register | См. размер регистров. Разрядность регистров обычно кратно байту (8 бит). |
| старший бит (числа) | old bit (of a number) | Самый "левый", расположенный в начале ячейки памяти бит. |
| целые числа | integer | Целые числа в "математическом" смысле, представленные в ЭВМ в двоичном виде, в виде последовательности нулей и единиц. Различают типы целые со знаком и целые без знака. Целые числа имеют длину от одного байта до одного двойного слова. |
| натуральный ряд чисел | natural number sequence | Обычные числа, используемые при счете людьми (например, "на пальцах"). Натуральный ряд начинается с единицы и продолжается сколь угодно больше (до "бесконечности"). |
| целые без знака | unsigned integer | Представляют практически "натуральный ряд" чисел (в математическом понимании), записанный в двоичном формате и начинающийся не с "1", а с нуля. Старший бит этого типа является двоичным разрядом. |
| целые со знаком | signed integer | Представляет собой тип "целых чисел", представленных в двоичной форме. Старший бит этого типа - знак числа ("1"), а сами отрицательные числа представлены в " |
| признак знака | sign attribute | Самый старший (левый) бит в регистре или ячейке памяти. Если он установлен (его значение - "1"), то число в регистре - отрицательное. Если же он сброшен (его значение - "0"), то число в регистре положительное. |
| старшинство бит | precedence of the bits | Расположение бит в регистре или ячейке памяти в возрастающем порядке по номерам бит. Нумерация идет справа налево, начиная с самого младшего, нулевого, разряда двоичного числа. |
| установка бита | set of the bit | Назначение биту в ячейке памяти значения, равного единице. |
| сброс бита | cleaning the bit | Назначение биту в ячейке памяти значения, равного нулю. |
| целочисленный регистр | integer register | Регистр в |
| программный интерфейс приложения | API | Встроенный в приложение интерфейс (который может быть встроенным языком программирования или библиотекой с функциями для работы с приложением), позволяющий пользователю расширить количество функций (или, по-другому, повысить функциональность) базового приложения. К API относятся языки программирования |
| Windows API | Windows API | Библиотека стандартных функций для языков программирования, позволяющая создавать приложения Windows на стандартном языке программирования. В отличие от других библиотек, библиотека Windows API работает на "нижнем" уровне программирования, поэтому созданные с ее помощью программы имеют очень "объемный" код. |
| целочисленная арифметика | integer arithmetic | Арифметические операции, определенные на множестве целых чисел. Результатом целочисленной арифметики являются только целые значения. Поэтому операция деления в ней работает не вполне корректно, а многие функции (например, извлечение корня) в целочисленной арифметике не определены. |
| смена знака числа | sign of a number replacement | Изменение знака ("префикса") числа с "плюса" на "минус" и наоборот. При этом положительное число становится отрицательным и наоборот. |
| инкремент (числа) | increment (of a number) | Увеличение значения числа на единицу. |
| декремент | decrement | Уменьшение значения числа на единицу. |
| операция отношения | operation of relation | Операции с числами и символьными данными, типа: "больше", "меньше", "равно", "не равно", - возвращаемые логические значения: "Истина" или "Ложь". Операции равенства - неравенства не работают в арифметике с плавающей точкой. |
| особые ситуации | critical conditions | См. |
| исключительные ситуации | exceptions | Ситуации при работе с целыми и вещественными типами, вызывающие прерывание (отказ) системы, и невозможность выполнения дальнейших расчетов по программе. При обработке исключительных ситуаций можно предусмотреть вмешательство оператора ЭВМ. |
| признаки операций | attribute of the operations | См. признаки результатов и |
| переполнение 1. | overflow 1. | Прерывание (программная ошибка), возникающее в случае превышения результатом арифметической операции верхнего или нижнего (отрицательного) предела числа. Эта ошибка является ошибкой выполнения программы. |
| переполнение 2. | overflow 2. | Попытка записать в регистр или ячейку памяти целое число с разрядностью, превышающей разрядность этого регистра или ячейки памяти. |
| деление на ноль | divide by zero | Прерывание (программная ошибка), возникающая в случае арифметического деления на ноль. Эта ошибка является ошибкой выполнения программы. |
| исчезновение знака | missing of the sign | Прерывание (программная ошибка), означающая, что в старший бит регистра (то есть признак знака) был перенос единицы из следующего за ним разряда (бита). Соответствует прерыванию "переполнение" (2), но для целых чисел со знаком. |
| ошибка выполнения | run-time error | Ошибка, возникающая не на этапе разработки программы, а в процессе "тестового прогона" написанной программы. Заметим, что ошибка выполнения - это не всегда ошибка алгоритма, но всегда - ошибка разработчика! |
| прерывание | interruption | Временное или "постоянное" приостановление работы программы в случае нештатной ситуации (ошибки в программе, запроса на ввод данных и т.п.). |
| целочисленное деление | integer division | Операция деления, осуществленная на множестве целых чисел. В отличие от "арифметического" деления при целочисленном делении дробная часть отбрасывается. |
| булева алгебра | Boolean algebra | Раздел математики, изучающий операции с логическими данными, то есть данными, принимающие значения: "истина" и "ложь" ("true" и "false"). |
| булевы данные | Boolean | См. логические данные |
| логические данные | logical data | Переменные, принимающие значения: "Истина" ("true") и "Ложь" ("false"). Принято обозначать значение: 'false' = 0, а 'true' = 1 или 'true' <> 0. |
| логическая операция | Boolean operation | Операция, выполняемая в булевой алгебре над логическими данными. К логическим операциям относят: конъюнкцию, |
| конъюнкция | conjunction, AND | Операция "логического И", "логического умножения". Осуществляет операцию над булевыми данными, как показано в таблице 05.IV |
| дизъюнкция | disjunction, OR | Операция " |
| отрицание | negation | Операция "логического НЕ", меняющая значение следующей за ней |
| логическое "исключающее ИЛИ" | XOR | Операция над логическими данными, осуществляющая действия, какие показаны в таблице 05.IV |
| булевы типы | Boolean data types | Обозначение логических данных в языках программирования. |
| АНИС | ANSI | Сокращение от аббревиатуры "Американский национальный институт стандартов". Главное учреждение по разработке стандартов в США. |
| ANSI C | ANSI C | Стандарт на язык Си, принятый в начале 90-х годов XX века. Программы, написанные с применением данного стандарта, являются |
| арифметика плавающей точки | floating point arithmetic | "Обычная" арифметика, реализуемая на компьютере. Имеет некоторые ограничения на |
| мантисса | mantissa | Значащие разряды вещественного числа, записанные в виде последовательности цифр после десятичной точки. См. соответствующий раздел в учебнике. |
| порядок | order of magnitude | Степень числа - основания |
| вещественное (число) | real (number) | Число, представленное целой и дробной частью. В отличие от рационального числа, дробная часть вещественного числа может быть бесконечной. |
| основание счисления | base of the notation | Количество цифр, используемых при представлении чисел. Так, основание десятичной системы |
| одинарная точность | float | Регистр для представления вещественных чисел с плавающей точкой длиной 4 байта. |
| двойная точность | double | Регистр для представления вещественных чисел длиной 8 байт. |
| возведение в степень | involution | Операция последовательного умножения чисел на самих себя. Возведение числа x в степень y обозначается как x^y. |
| возведение в целую степень | integer involution | Возведение в степень числа x, где y - целая величина. Например: x^0 = 1, x^1 = x, x^2 = xox, x^3 = xoxox, и т.д. |
| алгебраические функции | algebraic functions | Функции для реализации операций возведения в дробную степень, логарифмирования функции, нахождение Бесселевых, сферических и др. функций, требующих вычислений по сложным алгоритмам. |
| переполнение порядка | order overflow | Прерывание, возникающее, если в результате умножения вещественных чисел порядок результата превысил свое максимальное, либо минимальное значение. |
| исчезновение порядка | missing of the order | Прерывание, возникающее при обнулении |
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.