Язык программирования delphi object pascal

Краткое введение в Object Pascal

Решил в краткой и одновременно в более понятной форме изложить основы Object Pascal. Тем не менее, здесь всего лишь минимум и для большего объема я советую Вам прочитать книгу «Библия для программистов в среде Delphi».

Структура проекта

В Object Pascal в качестве ограничителей комментария могут также использоваться пары символов (*, *) и //. Скобки (*. *) используются подобно фигурным скобкам, т. е. комментарием считается находящийся в них фрагмент текста, а символы // указывают компилятору, что комментарий располагается за ними и продолжается до конца текущей строки:

Структура модуля

В секции интерфейсных объявлений описываются программные элементы (типы, классы, процедуры и функции), которые будут «видны» другим программным модулям, а в секции реализации раскрывается механизм работы этих элементов. Разделение модуля на две секции обеспечивает удобный механизм обмена алгоритмами между отдельными частями одной программы. Он также реализует средство обмена программными разработками между отдельными программистами. Получив откомпилированный «посторонний» модуль, программист получает доступ только к его интерфейсной части, в которой, как уже говорилось, содержатся объявления элементов. Детали реализации объявленных процедур, функций, классов скрыты в секции реализации и недоступны другим модулям.

Элементы программы

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

Стандартные директивы первоначально связаны с некоторыми стандартными объявлениями в программе. К ним относятся:

Основные типы данных

К основным типам данных языка Delphi относятся:

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

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal
Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Примечание

В версиях Delphi 4 и 5 тип Real эквивалентен типу Double. Если требуется (в целях совместимости) использовать 6-байтный Real, нужно указать директиву компилятора .

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Массивы

Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты по сути данные одного типа. Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Описание типа массива задается следующим образом:

В качестве индексных типов в Object Pascal можно использовать любые порядковые типы, имеющие объем не более 2 Гбайт (т. е. кроме LongWord И Int64).

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

Динамические массивы

С версии Delphi 4 впервые введены так называемые динамические массивы. При объявлении таких массивов в программе не следует указывать границы индексов:

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

Объявление одномерного массива:

Объявление двумерного массива:

Записи

Структура объявления типа записи такова:

Вариант 1. Объявление записи в разделе переменных:

Множества

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

Описание типа множества имеет вид:

Указатели

Как правило, указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными.

Строки

Объявление переменной-строки длиной 255 символов: Имя: string;

Объявление переменной-строки указанной длины: Имя: string [ ДлинаСтроки ].

Операции

В Object Pascal определены следующие логические операции:

К логическим же в Object Pascal обычно относятся и две сдвиговые операции над целыми числами:

Правила использования операций с операндами различного типа.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Составной оператор

Инструкции выбора

Вариант 1: if-then-else.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Инструкции между begin и end выполняются, если значение выражения, записанного после case, совпадает с константой из соответствующего списка. Если это не так, то выполняются инструкции, находящиеся после else, между begin и end.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Циклы

Вариант 1 (с увеличением счетчика):

Если НачальноеЗначение > КонечноеЗначение, то инструкции между begin и end не выполняются.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Источник

Краткое введение в Object Pascal

Решил в краткой и одновременно в более понятной форме изложить основы Object Pascal. Тем не менее, здесь всего лишь минимум и для большего объема я советую Вам прочитать книгу «Библия для программистов в среде Delphi».

Структура проекта

В Object Pascal в качестве ограничителей комментария могут также использоваться пары символов (*, *) и //. Скобки (*. *) используются подобно фигурным скобкам, т. е. комментарием считается находящийся в них фрагмент текста, а символы // указывают компилятору, что комментарий располагается за ними и продолжается до конца текущей строки:

Структура модуля

В секции интерфейсных объявлений описываются программные элементы (типы, классы, процедуры и функции), которые будут «видны» другим программным модулям, а в секции реализации раскрывается механизм работы этих элементов. Разделение модуля на две секции обеспечивает удобный механизм обмена алгоритмами между отдельными частями одной программы. Он также реализует средство обмена программными разработками между отдельными программистами. Получив откомпилированный «посторонний» модуль, программист получает доступ только к его интерфейсной части, в которой, как уже говорилось, содержатся объявления элементов. Детали реализации объявленных процедур, функций, классов скрыты в секции реализации и недоступны другим модулям.

Элементы программы

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

Стандартные директивы первоначально связаны с некоторыми стандартными объявлениями в программе. К ним относятся:

Основные типы данных

К основным типам данных языка Delphi относятся:

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

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal
Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Примечание

В версиях Delphi 4 и 5 тип Real эквивалентен типу Double. Если требуется (в целях совместимости) использовать 6-байтный Real, нужно указать директиву компилятора .

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Массивы

Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты по сути данные одного типа. Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Описание типа массива задается следующим образом:

В качестве индексных типов в Object Pascal можно использовать любые порядковые типы, имеющие объем не более 2 Гбайт (т. е. кроме LongWord И Int64).

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

Динамические массивы

С версии Delphi 4 впервые введены так называемые динамические массивы. При объявлении таких массивов в программе не следует указывать границы индексов:

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

Объявление одномерного массива:

Объявление двумерного массива:

Записи

Структура объявления типа записи такова:

Вариант 1. Объявление записи в разделе переменных:

Множества

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

Описание типа множества имеет вид:

Указатели

Как правило, указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными.

Строки

Объявление переменной-строки длиной 255 символов: Имя: string;

Объявление переменной-строки указанной длины: Имя: string [ ДлинаСтроки ].

Операции

В Object Pascal определены следующие логические операции:

К логическим же в Object Pascal обычно относятся и две сдвиговые операции над целыми числами:

Правила использования операций с операндами различного типа.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Составной оператор

Инструкции выбора

Вариант 1: if-then-else.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Инструкции между begin и end выполняются, если значение выражения, записанного после case, совпадает с константой из соответствующего списка. Если это не так, то выполняются инструкции, находящиеся после else, между begin и end.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Циклы

Вариант 1 (с увеличением счетчика):

Если НачальноеЗначение > КонечноеЗначение, то инструкции между begin и end не выполняются.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Источник

Object Pascal. Первый шаг или инструмент на всю жизнь

То ли дело Object Pascal. Кто-то на уроках информатики так и не сел за его освоение, кто-то просто сделал скоропалительные выводы по слову Pascal в названии, остальные же имели удовольствие насладиться чудесной IDE Delphi и написать с её помощью свои первые десктопные приложения, освоив встроенные интерфейсы, сетевые протоколы, мультимедиа и многое другое.

Конечно, сегодня Object Pascal выглядит устаревшим, ограниченным и грузным, но означает ли это, что можно списать его в утиль? Вы удивитесь, но нет. Пройдя по данной ссылке вы найдёте не менее 300 вакансий по России, касающихся исключительно Delphi. В декабрьском рейтинге TIOBE Object Pascal занял 15 место по количеству запросов в поисковых системах. То есть это язык, не просто сохраняющий свою полезность, это актуальный инструмент современного разработчика. Впрочем, не всё так радужно. Давайте по порядку.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Плюсы и минусы

Когда речь заходит об обсуждение сильных и слабых сторон Object Pascal, стоит говорить не столько о самом языке, сколько о Delphi – главном представителю «семейства», ввиду его востребованности и освоенности программистами. Итак, поверхностно взглянем на его характеристики:

Минимальные затраты времени на освоение IDE и создание прикладных приложений.

Малое количество библиотек по сравнению с С/С++/Object C;

Недостаточная гибкость из-за того, что язык создавался не с нуля, а по сути эволюционировал от Pascal;

Слабая поддержка, как со стороны разработчиков IDE, так и самого языка;

Таким образом с определёнными допущениями можно утверждать, что Object Pascal мог бы быть на вершине мира (хоть какое-то время), если бы интерес простых программистов был поддержан создателями языка и сопутствующих платформ, а, например, UNIX-системы создавались не на С, а на Object Pascal. Впрочем, история не знает сослагательного наклонения, а данный язык и без того нашёл своё место в IT-мире.

Область применения

Главный вопрос: так кому и для чего нужен язык и IDE, которые по сути уже давно заброшены? На самом деле ограничение функциональности вовсе не означает существенное ограничение возможностей. Так, например, многие банк-клиенты созданы именно с применением Delphi. Delphi востребован в системах автоматизации и само-собой для создания относительно простых приложений, не требующих бессмысленной мишуры.

При помощи Object Pascal были созданы проигрыватель The KMPlayer, Skype, Total Commander, почтовый клиент The Bat! и даже старая-добрая игра «Космические рейнджеры». То есть сфера применения действительно широка, вопрос лишь в том, насколько сильно в своё время вы полюбили Delphi, что вам теперь готовы проходить через все лишения и ограничения, лишь бы не использовать (изучать) более подходящий для ваших целей язык.

Работа

Несмотря на большое количество хороших слов о Object Pascal, в плане поиска работы существуют некоторые оговорки. Во-первых, сегодня Object Pascal и Delphi в частности по большей части распространены в Восточной Европе, в остальной части мира он используется лишь отдельными энтузиастами. Поэтому, если вы желаете в будущем поискать работу за пределами России, Delphi – не лучший выбор.

Во-вторых, это всё-таки отмирающий язык. Трудно представить, что без эволюции этот язык будет удерживаться на аналогичном уровне востребованности хотя бы ещё 10 лет. А значит делать на Object Pascal долгосрочную ставку не слишком разумно.

Третье, и самое главное – на одном лишь языке Object Pascal (Delphi) вы точно далеко не уедете. Как минимум, потребуются стандартные сопутствующие знания БД (SQL) и систем контроля версий (Git/SVN). И при этом даже на конкретных вакансиях Delphi-программиста преимущества получают те, у кого есть за плечами опыт работы и с другими языками (Python, JS, C и т. д.).

И уж конечно с фрилансом на Object Pascal дела обстоят куда хуже, чем с популярными языками. Потенциальными клиентами станут точно такие же изучавшие в школе Pascal люди, желающие получить продукт на Object Pascal (Delphi) просто потому, что так будет проще его в дальнейшем самостоятельно редактировать.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Полезные ссылки

А теперь несколько ссылок для изучения. Пара западных популярных ресурсов:

SAMS Delphi – самоучитель, обещающий изучение Delphi за 21 день;

Beginner’s Guide to Delphi Programming – ещё один довольно неплохой самоучитель с множеством встроенных полезных ссылок.

Впрочем, как было уже сказано, в России Object Pascal всегда был невероятно популярен, так что на нашем интернет-пространстве тоже можно найти крайне качественные сайты:

DelphiSite – обучающие материалы, готовые программы, рубрика вопрос-ответ и многое другое;

The Delphi – аналогичный ресурс, просто другими словами.

И ещё книга в помощь:

Базы данных в Delphi 7. Самоучитель – серьёзный труд, акцентирующий внимание на применении Delphi для работы с БД.

А какое у вас отношение к Object Pascal / Delphi?

Pascal – инструмент, знакомый подавляющему большинству отечественных программистов со школьной скамьи. Ещё когда в мире не существовало Scratch, Python только набирал свою силу, детей пытались познакомить с азами кодирования при помощи этого незамысловатого, можно сказать, процедурного языка. Возможности его сильно ограничены, поэтому практически никому в голову в 21 веке (да и в 20-м, тоже) не приходило в голову серьёзно использовать его в работе.

То ли дело Object Pascal. Кто-то на уроках информатики так и не сел за его освоение, кто-то просто сделал скоропалительные выводы по слову Pascal в названии, остальные же имели удовольствие насладиться чудесной IDE Delphi и написать с её помощью свои первые десктопные приложения, освоив встроенные интерфейсы, сетевые протоколы, мультимедиа и многое другое.

Конечно, сегодня Object Pascal выглядит устаревшим, ограниченным и грузным, но означает ли это, что можно списать его в утиль? Вы удивитесь, но нет. Пройдя по данной ссылке вы найдёте не менее 300 вакансий по России, касающихся исключительно Delphi. В декабрьском рейтинге TIOBE Object Pascal занял 15 место по количеству запросов в поисковых системах. То есть это язык, не просто сохраняющий свою полезность, это актуальный инструмент современного разработчика. Впрочем, не всё так радужно. Давайте по порядку.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Плюсы и минусы

Когда речь заходит об обсуждение сильных и слабых сторон Object Pascal, стоит говорить не столько о самом языке, сколько о Delphi – главном представителю «семейства», ввиду его востребованности и освоенности программистами. Итак, поверхностно взглянем на его характеристики:

Минимальные затраты времени на освоение IDE и создание прикладных приложений.

Малое количество библиотек по сравнению с С/С++/Object C;

Недостаточная гибкость из-за того, что язык создавался не с нуля, а по сути эволюционировал от Pascal;

Слабая поддержка, как со стороны разработчиков IDE, так и самого языка;

Таким образом с определёнными допущениями можно утверждать, что Object Pascal мог бы быть на вершине мира (хоть какое-то время), если бы интерес простых программистов был поддержан создателями языка и сопутствующих платформ, а, например, UNIX-системы создавались не на С, а на Object Pascal. Впрочем, история не знает сослагательного наклонения, а данный язык и без того нашёл своё место в IT-мире.

Область применения

Главный вопрос: так кому и для чего нужен язык и IDE, которые по сути уже давно заброшены? На самом деле ограничение функциональности вовсе не означает существенное ограничение возможностей. Так, например, многие банк-клиенты созданы именно с применением Delphi. Delphi востребован в системах автоматизации и само-собой для создания относительно простых приложений, не требующих бессмысленной мишуры.

При помощи Object Pascal были созданы проигрыватель The KMPlayer, Skype, Total Commander, почтовый клиент The Bat! и даже старая-добрая игра «Космические рейнджеры». То есть сфера применения действительно широка, вопрос лишь в том, насколько сильно в своё время вы полюбили Delphi, что вам теперь готовы проходить через все лишения и ограничения, лишь бы не использовать (изучать) более подходящий для ваших целей язык.

Работа

Несмотря на большое количество хороших слов о Object Pascal, в плане поиска работы существуют некоторые оговорки. Во-первых, сегодня Object Pascal и Delphi в частности по большей части распространены в Восточной Европе, в остальной части мира он используется лишь отдельными энтузиастами. Поэтому, если вы желаете в будущем поискать работу за пределами России, Delphi – не лучший выбор.

Во-вторых, это всё-таки отмирающий язык. Трудно представить, что без эволюции этот язык будет удерживаться на аналогичном уровне востребованности хотя бы ещё 10 лет. А значит делать на Object Pascal долгосрочную ставку не слишком разумно.

Третье, и самое главное – на одном лишь языке Object Pascal (Delphi) вы точно далеко не уедете. Как минимум, потребуются стандартные сопутствующие знания БД (SQL) и систем контроля версий (Git/SVN). И при этом даже на конкретных вакансиях Delphi-программиста преимущества получают те, у кого есть за плечами опыт работы и с другими языками (Python, JS, C и т. д.).

И уж конечно с фрилансом на Object Pascal дела обстоят куда хуже, чем с популярными языками. Потенциальными клиентами станут точно такие же изучавшие в школе Pascal люди, желающие получить продукт на Object Pascal (Delphi) просто потому, что так будет проще его в дальнейшем самостоятельно редактировать.

Язык программирования delphi object pascal. Смотреть фото Язык программирования delphi object pascal. Смотреть картинку Язык программирования delphi object pascal. Картинка про Язык программирования delphi object pascal. Фото Язык программирования delphi object pascal

Полезные ссылки

А теперь несколько ссылок для изучения. Пара западных популярных ресурсов:

SAMS Delphi – самоучитель, обещающий изучение Delphi за 21 день;

Beginner’s Guide to Delphi Programming – ещё один довольно неплохой самоучитель с множеством встроенных полезных ссылок.

Впрочем, как было уже сказано, в России Object Pascal всегда был невероятно популярен, так что на нашем интернет-пространстве тоже можно найти крайне качественные сайты:

DelphiSite – обучающие материалы, готовые программы, рубрика вопрос-ответ и многое другое;

The Delphi – аналогичный ресурс, просто другими словами.

И ещё книга в помощь:

Базы данных в Delphi 7. Самоучитель – серьёзный труд, акцентирующий внимание на применении Delphi для работы с БД.

А какое у вас отношение к Object Pascal / Delphi?

Источник

Pascal и Delphi

Pascal

Трудно рассказать что-то новое о том, что хорошо известно всем. Действительно, вряд ли найдется в нашей стране программист или просто выпускник средней школы, который не знал бы (или не слышал) об этом языке программирования. Основные концепции языка были разработаны в 1967-1968 г. профессором Николаусом Виртом (Niklaus Wirth) (Биографию Вирта можно прочитать на http://cc.kzoo.edu/

Еще одной причиной, которая позволила языку перейти в категорию бестселлеров, стала поддержка разработчиков коммерческого ПО. И тут мы не можем пройти мимо фирмы Borland (ныне Inprise). Разработанный ею Turbo Pascal во всех его модификациях является в России одним из самых популярных продуктов. Интегрированная оболочка, которая включает в себя редактор, компилятор, компоновщик и отладчик, вместе с интерактивной справочной системой сделали разработку программ на Паскале делом простым и понятным практически любому человеку. Но так было не всегда. Например, в начале восьмидесятых автору довелось поработать с одним из первых компиляторов Паскаля на платформах DEC. В нем сначала нужно было в редакторе создавать программу, затем однопроходный компилятор выдавал код на ассемблере, далее приходилось транслировать его в объектный код, компоновать с системными библиотеками и только после этого запускать программу. Поиск ошибок (без встроенного отладчика, который сейчас просто показывает вам строку, где произошла ошибка) был делом, требующим терпения, и, самое главное, процессом весьма длительным.

Кроме создания интегрированной оболочки, Borland ввел в Pascal поддержку модульного программирования, а начиная с версии 5, и поддержку объектно-ориентированного программирования.

Delphi

В России Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования.

Как уже говорилось ранее, в Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу особенностей языка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C++. К числу удачных, на взгляд автора, относится также поддержка длинных строк в формате WideChar и AnsiChar. Последний тип (AnsiStrmg) позволяет использовать все прелести динамического размещения информации в памяти без всяких забот о ее выделении и сборке мусора Delphi делает это автоматически. Для поклонников свободного стиля программирования имеются открытые массивы, варианты и вариантные массивы, позволяющие размещать в памяти все, что душе угодно и смешивать типы данных.

Таким образом, вы можете использовать Delphi для создания как самых простых приложений, на разработку которых требуется 2-3 часа, так и серьезных корпоративных проектов, предназначенных для работы десятков и сотен пользователей. Причем для этого можно использовать самые последние веяния в мире компьютерных технологий с минимальными затратами времени и сил.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *