Elektron raqamli imzo — Elektron hujjatdagi mazkur elektron hujjat axborotini elektron raqamli imzoning yopiq kalitidan foydalangan holda maxsus oʻzgartirish natijasida hosil qilingan hamda elektron raqamli imzoning ochiq kaliti yordamida elektron hujjatdagi axborotda xatolik yoʻqligini aniqlash va elektron raqamli imzo yopiq kalitining egasini identifikatsiya qilish imkoniyatini beradigan imzo. (qonun)Qonunda talab etilgan shartlarga rioya etilgan taqdirda elektron raqamli imzo qogʻoz hujjatga shaxsan qoʻyilgan imzo bilan bir xil ahamiyatga egadir. Elektron maʼlumotlarni kriptografik oʻzgartirish natijasida hosil qilingan belgilar ketma-ketligi. Elektron raqamli imzo maʼlumotlar blokiga qoʻshib qoʻyiladi va blokni qabul qiluvchiga, manbani va maʼlumotlarning butunligini tekshirish hamda soxtalashtirishdan muhofazalanish imkonini beradi. Hozirgi kunga kelib, ayrim mamlakatlar qonunchilik yoʻli bilan raqamli imzodan foydalanishni layoqatliligini qonunlashtirib qoʻyganlar. Elektron raqamli imzo kalitlari sertifikatlari roʻyxatga olish markazlari tomonidan beriladi.
Переменные в программе дают возможность обращаться к областям в памяти компьютера с удобных имен - это упрощает написание, отладку и модификацию программы. Получив описание переменной, современный транслятор (непринципиально, будет это компилятор или интерпретирующая программа) должен отвести под эту переменную область памяти, достаточную для размещения в ней данных и впоследствии учитывать тип переменной, делая, при необходимости, неявные преобразования типа. Ранние языки программирования не допускали неявных преобразований, т.е. преобразований, которые выполняются без участия программиста. Пример таких языков - Fortran II. В этом языке нельзя было смешивать в одном операторе переменные разных типов. Кстати, о типе переменных. Существуют разные классификации, но для понимания самой концепции типов непринципиально, какой классификацией пользоваться. Если говорить упрощенно, можно различать числовые и нечисловые данные. С числовыми можно совершать математические операции, а нечисловые можно только вводить в компьютер (например, с клавиатуры) и выводить из компьютера во внешнюю среду (например, отображать на мониторе). И вот тут самое интересное. Перед тем, как компьютер получит числовое данное, оно должно быть введено в форме нечислового. Тут-то и возникает неявное преобразование типов. Когда мы, к примеру, вводим число 25, то нажимаем клавиши "2" и "5", посылая компьютеру определенные коды. Компьютер преобразует их и получает последовательность символов "25". Это то же, что число 25? Если мы пишем 25 на бумаге, то для нас оно хоть число, хоть текст, изображающий число. А для компьютера это не так. Его система команд обрабатывает символы отдельно, числа отдельно. И хранит компьютер число 25 и символы "25" совсем по-разному. Вот поэтому мы должны описывая переменные, сообщать не только их имена, но и тип - чтобы транслятор "понял", как эти данные ему обрабатывать. Даже числовые данные неоднородны - компьютер может хранить их с разным представлением (целые, с фиксированной точкой, с плавающей точкой) и с разной разрядностью (максимальным числом цифр). И, встретив в операции два числа разного типа, транслятор должен привести их к одному - это тоже случай неявного приведения типов. Например, оно возникнет при вычислении выражения 2.5+1, потому что первое значение дробное, а второе - целое. Транслятор приведет его к 2.5+1.0.
Описание переменной должно быть сделано до её первого использования в программе. Обычно стараются вынести все описания в начало программы - при изучении текста чужой программы так легче найти нужное описание. Это характерно для "классических" языков программирования типа Pascal. Описание переменных в этом языке делается в разделе, который начинается ключевым словом var (от английского слова variable - переменная). Альтернативой является описание в месте, непосредственно предшествующем первому использованию переменной - это облегчает первичное написание программы, когда заранее сложно сказать, какие переменные понадобятся - особенно этим любят пользоваться программисты на языках С/С++, хотя и в этом языке есть возможность описать переменные в начале программы.
Примеры описания одних и тех же переменных: a) Pascal var a:integer; b1, b134, delta: real; weight: array[1..n] of integer;
б) С/С++ int a; single b1, b134, delta; int weight[n+1];
в) BASIC DIM a AS INTEGER DIM b1 AS REAL, b134 AS REAL, delta AS REAL DIM weight(1 To N) AS INTEGER
Elektron raqamli imzo — Elektron hujjatdagi mazkur elektron hujjat axborotini elektron raqamli imzoning yopiq kalitidan foydalangan holda maxsus oʻzgartirish natijasida hosil qilingan hamda elektron raqamli imzoning ochiq kaliti yordamida elektron hujjatdagi axborotda xatolik yoʻqligini aniqlash va elektron raqamli imzo yopiq kalitining egasini identifikatsiya qilish imkoniyatini beradigan imzo. (qonun)Qonunda talab etilgan shartlarga rioya etilgan taqdirda elektron raqamli imzo qogʻoz hujjatga shaxsan qoʻyilgan imzo bilan bir xil ahamiyatga egadir. Elektron maʼlumotlarni kriptografik oʻzgartirish natijasida hosil qilingan belgilar ketma-ketligi. Elektron raqamli imzo maʼlumotlar blokiga qoʻshib qoʻyiladi va blokni qabul qiluvchiga, manbani va maʼlumotlarning butunligini tekshirish hamda soxtalashtirishdan muhofazalanish imkonini beradi. Hozirgi kunga kelib, ayrim mamlakatlar qonunchilik yoʻli bilan raqamli imzodan foydalanishni layoqatliligini qonunlashtirib qoʻyganlar. Elektron raqamli imzo kalitlari sertifikatlari roʻyxatga olish markazlari tomonidan beriladi.
Кстати, о типе переменных. Существуют разные классификации, но для понимания самой концепции типов непринципиально, какой классификацией пользоваться.
Если говорить упрощенно, можно различать числовые и нечисловые данные. С числовыми можно совершать математические операции, а нечисловые можно только вводить в компьютер (например, с клавиатуры) и выводить из компьютера во внешнюю среду (например, отображать на мониторе). И вот тут самое интересное. Перед тем, как компьютер получит числовое данное, оно должно быть введено в форме нечислового. Тут-то и возникает неявное преобразование типов. Когда мы, к примеру, вводим число 25, то нажимаем клавиши "2" и "5", посылая компьютеру определенные коды. Компьютер преобразует их и получает последовательность символов "25". Это то же, что число 25? Если мы пишем 25 на бумаге, то для нас оно хоть число, хоть текст, изображающий число. А для компьютера это не так. Его система команд обрабатывает символы отдельно, числа отдельно. И хранит компьютер число 25 и символы "25" совсем по-разному. Вот поэтому мы должны описывая переменные, сообщать не только их имена, но и тип - чтобы транслятор "понял", как эти данные ему обрабатывать. Даже числовые данные неоднородны - компьютер может хранить их с разным представлением (целые, с фиксированной точкой, с плавающей точкой) и с разной разрядностью (максимальным числом цифр). И, встретив в операции два числа разного типа, транслятор должен привести их к одному - это тоже случай неявного приведения типов. Например, оно возникнет при вычислении выражения 2.5+1, потому что первое значение дробное, а второе - целое. Транслятор приведет его к 2.5+1.0.
Описание переменной должно быть сделано до её первого использования в программе. Обычно стараются вынести все описания в начало программы - при изучении текста чужой программы так легче найти нужное описание. Это характерно для "классических" языков программирования типа Pascal.
Описание переменных в этом языке делается в разделе, который начинается ключевым словом var (от английского слова variable - переменная).
Альтернативой является описание в месте, непосредственно предшествующем первому использованию переменной - это облегчает первичное написание программы, когда заранее сложно сказать, какие переменные понадобятся - особенно этим любят пользоваться программисты на языках С/С++, хотя и в этом языке есть возможность описать переменные в начале программы.
Примеры описания одних и тех же переменных:
a) Pascal
var
a:integer;
b1, b134, delta: real;
weight: array[1..n] of integer;
б) С/С++
int a;
single b1, b134, delta;
int weight[n+1];
в) BASIC
DIM a AS INTEGER
DIM b1 AS REAL, b134 AS REAL, delta AS REAL
DIM weight(1 To N) AS INTEGER