Разное

Основная особенность процедурных языков программирования заключается в том что программа: Процедурное программирование — это что такое?

Содержание

Процедурное программирование — это что такое?

Процедурное программирование – это программирование, в котором отражен фон Неймановской архитектуры компьютера. Все программы, написанные на данном языке, являют собой определенную последовательность команд, которые устанавливают некий алгоритм для разрешения того или иного пакета задач. Самой важной командой является операция присвоения, что предназначена для установления и корректировки содержимого в памяти компьютера.

Какая главная идея данного языка?

Основная особенность процедурных языков программирования заключается в применении памяти компьютера для сбережения информации. Функционирование программы сводится к постоянному и поочередному выполнению разных команд с целью трансформировать содержимое памяти, изменить его исходное состояние и привести к необходимым результатам.

Как все начиналось

Процедурное программирование началось с создания языка высокого уровня под названием Фортран. Его создали в начале пятидесятых годов в США фирма IBM. Первые публикации о нем появились только в 1954 году. Процедурно-ориентированный язык программирования Фортран была разработан для выполнения научно-технических задач. Главными объектами языка выступают числовые переменные, вещественные и целые числа. Все выражения строятся на четырех главных арифметических вычислениях: возведение в степень, операции отношения, круглых скобок, логические манипуляции И, НЕ, ИЛИ.

Главными операторами языка выступают вывод, ввод, переход (условный, безусловный), вызов подпрограмм, циклы, присваивание. Процедурное программирование на языке Фортран очень долгое время был самым востребованным в мире. За время существования языка была накоплена огромнейшая база разных библиотек, программ, что были написаны именно на Фортране. Сейчас все еще ведутся работы над введением очередного стандарта Фортрана. В 2000 году была разработана версия Фортран F2k, у которого стандартная версия называется HPF. Она была создана для параллельных суперкомпьютеров. К слову, в языках PL-1 и Бейсик использованы многие стандарты именно с Фортраны.

Язык Кобол

К процедурным языкам программирования относят и язык Кобол. Это язык программирования, направленный на разрешение многих задач по обработке информации. Он активно применяется для решения различных управленческих, учетно-экономических задач. Процедурное программирование на Коболе было разработано на территории США в 1958-1960 годах. Сама же программа, созданная на Коболе, обладает несколькими видами типа предложений на английском языке, напоминает с виду самый обычный текст. Все дело в том, что группа операторов, записанных последовательно, объединяются в целые предложения, сами предложения — в параграфы, а параграфы – в секции. Сам же программист присваивает параграфам и отведенным секциям наименования или метки, чтобы облегчить обращение к определенному участку кода. В Советском Союзе была разработана русская версия программы и применялась весьма успешно на практике.

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

Интересный факт: самые высокооплачиваемые программисты в США пишут программы именно на языке Кобол.

Язык Алгол

Этот язык процедурно-ориентированного программирования был создан целой группой специалистов в 1960 году. Это был результат начала сотрудничества на международном уровне. Алгол был разработал для ведения алгоритмов, что строились в виде последовательности некоторых процедур, что применялись для разрешения поставленных задачек. Поначалу язык воспринимался несколько неоднозначно, однако его признали на международном уровне он сыграл огромную роль в становлении основных понятий программирования и обучения нового поколения программистов. Процедурное программирование на языке Алгол впервые ввело в обиход такие понятия, как «блочная структура программы», «динамическое распределение памяти».

Еще есть одна особенность языка – это возможность в блоке вводить некоторые локальные отметки, что не касаются остального кода программы. Да, Алгол-60, несмотря на свое интернациональное происхождение, не так был популярен, как Фортран.

Далеко не все зарубежные вычислительные машины имели трансляторы с Алгола-60, поэтому это процедурное программирование претерпело изменений и появился усовершенствованный язык Алгол-68.

Алгол-68

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

Если судить о возможностях данного языка, то Алгол-68 даже сейчас опережает многие языки программирования по своим возможностям, однако из-за того, что сейчас нет эффективных компьютеров для это процедурного языка программирования, пока не удалось создать качественный и быстрый компилятор.

Как же появился знаменитый Бейсик?

К процедурным языкам программирования относят и знаменитый во всем мире Бейсик. В средине шестидесятых годов сотрудники из Дартмутского колледжа по имени Томас Курц и Джон Кемени разработали уникальный язык программирования, который перевернул все в мире. Состоял он из простейших английских слов и новый язык признали универсальным кодом для новичков или же другими словами BASIC. Годом рождения данного языка считают 1964. BASIC стал широко распространенным на ПК в режиме интерактивного диалога. Почему Бейсик стал таким популярным? Все из-за того, что его было максимально просто освоить, кроме того, язык помогал решать множество разных научных, экономических, технических, игровых и даже бытовых задач. В Бейсике были заложены разные правила по умолчанию, что сейчас считается признаком дурного тона в программировании. После появилось в мире масса версий данного языка, которые часто малосовместимы, однако, понимая одну из версий, вы сможете легко освоить и другую. Первоначальная версия имела в распоряжении только интерпретатор, а теперь уже есть и компилятор.

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

ПЛ/1

Это самый первый многоцелевой универсальный язык, который был создан в США фирмой IBM. Годы создания 1963—1966. Считается, что это один из самых распространенных языков, он приспособлен для разрешения многих задач в сфере вычислительной техники: планирование, исследование различных процессов вычисления, моделирование и решение логических задач, исследование логических схем, разработка систем для математического обеспечения.

Когда создавался PL/1, применялись на практике различные понятия и средства из языков Алгол-60, Фортран, Кобол. PL/1 считается гибкий и богатейший языков, он позволяет создавать вставки, корректировать готовый текст программы даже в процессе отладки. Язык широко распространен, а трансляторы с него применяются во многих типах компьютеров. IBM даже сейчас продолжает поддерживать данный язык.

Паскаль

Паскаль – это очень популярный процедурный язык, особенно часто используемый для персональных компьютеров. Этот процедурный язык программирования создавался в качестве учебного, годы его создания — 1968-1971. Разработал его Никлаус Вирт в Высшей технической школе в Цюрихе. Назван этот язык программирования был в честь великого французского математика и философа Блеза Паскаля. Основной задачей Вирта была создать язык, который бы основывался на простейшем синтаксисе, малом числе базовых структур, которые трансформируются в машинный код при помощи обычного компилятора. Стоит заметить, что ему это удалось.

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

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

Язык С

Процедурное программирование С разработано в лаборатории Bell для реализации ОС UNIX, не рассматривался вначале как массовый. В планах у разработчиков было просто заменить Ассемблер, но появился просто отдельный язык С. Уникален он тем, что имеет возможности высокоуровневых языков программирования и одновременно с этим он располагает средствами для обращения к функциональным связям. В языке С нет понятия процедуры, синтаксис довольно простой, нет никакой строгой типизации данных, включена возможность выражения парочки действий сразу. Этот язык сразу привлек внимание программистов, давая им дополнительные возможности для создания интересных программ. На сегодняшний день язык С довольно-таки популярен, он широко используется профессионалами в программировании. Сейчас он реализован во многих компьютерных платформах.

Какая существует особенность процедурных языков?

Их всего несколько, потому о каждой стоит поговорить. Это:

  • Модуль. Частичка программы, что сберегается в отдельном файле. Модуль осуществляет набор опций, что связаны с определенными переменными, константами или объектами.
  • Функция. Это законченный, самостоятельный кусок кода, решающий определенную задачу.
  • Тип данных. Это понятие говорит о некоем массиве информации, что определяется к одному типу.

Различия между процедурным и объектно-ориентированным программированием

Многие программисты знаю, что при создании софта или веб-приложений применяются на практике процедурный и объектно-ориентированный языки программирования. В чем же состоит отличие? Все просто, процедурное и объектно-ориентированное программирование применяются на практике повсеместно, однако есть некоторые отличительные моменты. Во время работы программист, ставя перед собой определенную задачу, разбивает ее на мелкие, выбирает определенные языковые конструкции для реализации (циклы, функции, ветвления, структурные операторы). Это означает, что специалист руководствуется процедурным программированием.

ООП включает в себя понятие «объект», а иначе их еще называют экземплярами класса, так как наследуется очень много именно у класса. Наследование – это еще один из отличительных принципов ООП.

Процедурные и функциональные языки

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

Что выбрать для себя?

Многие языки в процедурном программировании уже устарели. Да, некоторые из них до сих пор совершенствуют, но все же стоит обратить внимание только на часть из них. К примеру, на язык С. Он распространен сегодня в мире, многие современные платформы построены именно на языке С, потому если вы желаете развиваться в сфере программирования, то вам стоит поближе познакомиться с языком С. Однако вы можете выбрать для себя и что-то другое, необязательно связанное с процедурными языками программирования.

Реферат на тему:»Особенности процедурных языков»

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«Мордовский государственный

педагогический институт

имени М.Е. евсевьева»

Физико-математический факультет

Кафедра информатики и вычислительной техники

РЕФЕРАТ

ОСОБЕННОСТИ ПРОЦЕДУРНЫХ ЯЗЫКОВ

Выполнила: студентка группы МДМ-113

Тенишева Г. А.

Саранск 2017

Основные сведения

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием Машина Тьюринга.

Машина Тьюринга (МТ) – абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.

Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча – Тьюринга, способна имитировать все другие исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.

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

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

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

2. Краткая история и классификация языков программирования

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

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

Один из первых языков программирования — Фортран (Formula Translation) был создан в середине 50-х годов. Благодаря своей простоте и тому, что на этом языке накоплены большие библиотеки программ Фортран и в наши дни остается одним из самых распространенных. Он используется для инженерных и научных расчетов, для решения задач физики и других наук с развитым математическим аппаратом.

Для решения экономических задач был создан язык программирования – Кобол.

Расширение областей применения ЭВМ влечет за собой создание языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации, Лисп – алгоритмический язык для обработки символов. Лисп находит широкое применение в исследованиях по созданию искусственного интеллекта.

В 1968 г. был объявлен конкурс на лучший язык программирования для обучения студентов. Победителем стал язык Алгол-68, но широкого распространения не получил. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разработан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков. Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями.

Широкое распространение в школах в качестве обучающего языка получил язык Бейсик, позволяющий взаимодействовать с ЭВМ в режиме непосредственного диалога. Спустя много лет после изобретения Бейсика, он и сегодня самый простой для освоения из десятков языков общецелевого программирования.

Необходимость разработки больших программ, управляющих работой ЭВМ, потребовала создания специального языка программирования СИ в начале 70-х г. Он является одним из универсальных языков программирования. В отличии от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам и к определенным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, трансляторов, баз данных и других системных и прикладных программ. Си — это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке Ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке.

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

В 80-х г. 20 века был создан язык Ада. Этот язык в дополнение к классическим свойствам, обеспечивает программирование задач реального времени и моделирования параллельного решения задач.

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

В группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми. Машинно-ориентированные языки — это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

Следующую, существенно более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу – Лисп, Пролог, Снобол и др.

В современной информатике можно выделить два основных направления развития языков программирования: процедурное и непроцедурное.

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.

Непроцедрное (декларативное) программирование появилось в начале 70-х годов 20 века, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и логические языки.

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

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

Можно выделить еще один класс языков программирования — объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык программирования визуального общения Object Pascal.

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript.

Описание процедурных языков программирования

Амда (Ada) – язык программирования, созданный в 1979–1980 годах в результате проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для встраиваемых систем (то есть систем управления автоматизированными комплексами, работающими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). Перед разработчиками не стояло задачи создать универсальный язык, поэтому решения, принятые авторами Ады, нужно воспринимать в контексте особенностей выбранной предметной области. Язык назван в честь Ады Лавлэйс.

Бемйсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code – универсальный код символических инструкций для начинающих; англ. basic – основной, базовый) – семейство высокоуровневых языков программирования.

Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Куртом (Thomas E. Kurtz) и Джоном Кемени (John G. Kemeny).

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

Си (англ. C) – стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность; он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков (см.: Си-подобный синтаксис).

Для языка Си характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и обширный набор операций.

Кобомл (COBOL, COmmon Business Oriented Language), язык программирования третьего поколения (первая версия в 1959), предназначенный, в первую очередь, для разработки бизнес-приложений.

Разработчиком первого единого стандарта Кобола являлась Грейс Хоппер (бабушка Кобола).

Фортрамн (Fortran) – первый язык программирования высокого уровня, имеющий транслятор. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. (Язык Планкалкюль, претендующий на пальму первенства, был изобретён ещё в 1945 году, но не был реализован вплоть до 2000 года.) Название Fortran является аббревиатурой от FORmula TRANslator, то есть, переводчик формул. Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана – большое количество написанных на нём программ и библиотек подпрограмм.[1] Среди учёных, например, ходит такая присказка, что любая математическая задача уже имеет решение на Фортране, и, действительно, можно найти среди тысяч фортрановских пакетов и пакет для перемножения матриц, и пакет для решения сложных интегральных уравнений, и многие, многие другие. Ряд таких пакетов создавались на протяжении десятилетий и популярны (главным образом в научной среде) по сей день.

Большинство таких библиотек является фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны. Поэтому изменять, а тем более переписывать их на других языках программирования накладно, несмотря на то, что регулярно производятся попытки автоматического конвертирования FORTRAN-кода на современные языки программирования.

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур; позволяет применять современные технологии программирования, в частности, ООП.

Модула-2 (Modula-2) – язык программирования общего назначения, разработанный Никлаусом Виртом в 1978 году.

Паскаль (англ. Pascal) – высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков. Был создан Никлаусом Виртом в 1968/9 годах (опубликован в 1970-м) после его участия в работе комитета разработки стандарта языка Алгол-68.

ПЛ/1 (PL/I, Programming Language I – «Язык программирования номер один», в русском языке произносится «пиэмль одимн») – разработанный в 1964 году язык программирования, созданный для научных, инженерных и бизнес-ориентированных вычислений. Он содержит такой широкий набор синтаксических конструкций и встроенных функций, что, вероятно, не существует ни одного компилятора, поддерживающего все возможности языка ПЛ/1. ПЛ/1 поддерживает рекурсию и структурное программирование, и его основная область применения – обработка данных.

РАПИРА – Расширенный Адаптированный Поплан-Интерпретатор, Редактор, Архив – процедурный язык программирования. Разработан в начале 80-х годов в СССР в качестве средства перехода от более простых языков (в частности, учебного языка Робик) к языкам высокого уровня. Синтаксис построен на основе русской лексики. Язык использовался в школах для изучения информатики. Преподавание на Рапире велось в «Заочной школе программирования» в журнале «Квант» с начала 1980 г.

Как видно из расшифровки названия языка, концепция языка РАПИРА опиралась на опыт разработки системы ПОПЛАН – интерпретатора языка POP-2 для БЭСМ-6. Некоторые синтаксические конструкции были перенесены из языка Сетл.

Язык Рапира был реализован для БЭСМ-6, а затем для первого советского персонального компьютера (ПЭВМ) «Агат» в начале 80-х годов силами нескольких студентов и выпускников Новосибирского государственного университета под началом Г. А. Звенигородского, при участии школьников, в том числе на Всесоюзных летних школах юных программистов (ВЛШЮП, 1982 г.). По своим возможностям язык не уступал другим известным на то время учебным языкам. Однако спустя несколько лет в стране появились импортные машины, более мощные и совершенные, чем «Агат». В результате постепенно было прекращено использование и «Агата» и, вместе с ним, Рапиры.

Существовали также реализации языка Рапира для КУВТ УКНЦ и Ямаха КУВТ, а также для ЕС ЭВМ (1982 г., руководитель разработки на алголе-68 – проф. А. Н. Терехов).

REXX (REstructured eXtended eXecutor) или Rexx (рекс) – интерпретируемый язык программирования, разработанный фирмой IBM. Существуют как коммерческие, так и свободно распространяемые реализации данного языка.

Пик своего распространения REXX получил в середине 1990-х вместе с популярностью операционной системы OS/2. Это связано с тем, что интерпретатор REXX’а мог вызываться как из командного процессора, который в результате мог исполнять скрипты, состоящие из операторов командной строки (аналогично bash в GNU), так и из любого приложения.

В том случае, когда интерпретатор REXX вызывается из cmd.exe (или 4os2.exe) он исполняет командный файл. Если он вызывается из почтового редактора FleetStreet – он исполняет командный файл FleetStreet. Сам по себе REXX не привязан к конкретной части системы и может использоваться любой программой как «свой» язык, при этом каждая из использующих REXX программ может добавить к нему свои функции и операторы, которые будут доступны только при работе REXX’а в контексте этой программы. Например, электронная таблица mesa/2 добавляют в REXX команду, которая позволяет считывать и записывать содержимое ячеек таблиц и т. п.

С тех пор язык получил развитие далеко за пределами OS/2, но традиционно его свойствами остались удобный доступ к командам операционой системы, мощные операции со строками, упрощённая обработка ошибок и встроенный отладчик.

Изначально REXX не был обьектно-ориентированным, хотя в настоящее время существуют и такие версии языка (например, Open Object REXX). Синтаксически язык слегка напоминает упрощённый ПЛ/1. Переменные в REXX не типизированы и не требуют декларации.

Из особенностей языка следует отметить мощный и удобный оператор PARSE для разбора строк (похожий на «=~ m/» в Perl, но более простой). Его синтаксис:

parse [upper] »исходник шаблон»

позволяет писать легко читаемые конструкции вроде

MyVar = «Вася Иванов»

parse var MyVar FirstName LastName

say «Имя:» FirstName

say «Фамилия:» LastName или, к примеру, если имя написано через запятую, можно указать это в шаблоне

MyVar = «Иванов, Вася»

parse var MyVar LastName «,» FirstName

say «Имя:» FirstName

say «Фамилия:» LastName

а также можно пользоваться прямой индексацией столбцов:

MyVar = «(202) 123–1234»

parse var MyVar 2 AreaCode 5 7 SubNumber

say «Код города:» AreaCode

say «Телефон:» SubNumber

выведет следующие строки на экран:

Код города: 202

Телефон: 123–1234

Список использованных источников

1. В. В. Кручинин «Процедурно — ориентированное программирование» (Томск 2006)

2. Борковский А.Б. Англо-русский словарь по программированию и информатике (с толкованиями). – М.: Моск. Междунар. шк. переводчиков, 1992. – 335 с.

3. Краткое методическое пособие по разработке и упорядочению научно-технической терминологии / АН СССР. Ком. науч.-техн. термин. Сост. С.И. Коршунов, Г.Г. Сабурова. – М.: Наука, 1979. – 126 с.

4. Алексеев Е.Г., Богатырев С.Д. Информатика. Мультимедийный электронный учебник

2. Особенности процедурных языков программирования. Примеры языков.

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

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

Процедурные
ЯП получили самое широкое распространение
и к ним относяцца большинство разработанных
языков.

Наиболее
популярные:


Basic;
(обучение)


Pascal;
(универсальный ЯП, который является
потомком языков ALGOL,
обучение)


Fortran;
(предназначен для численных расчетов)


Modula
2, 3 и Oberon;
(развитие языка Паскаль предназначенные
для широкого класса задач)


С, С++. (универсальные ЯП используемые
для решения прикладных задач и задач
системного программирования)

  1. 3. Общая характеристика непроцедурных языков программирования.

Эти
языки относятся к классу описательных
ЯП. С их помощью описывается суть решаемой
задачи и перекладывается на компьютер
сам процесс решения.

К
языкам этого типа относятся:


Функциональные ЯП (Lisp,
Haskell,
Schema,
…)


Логические
ЯП (Prolog,
RProlog, …)

  1. 4. Понятие и состав системы программирования.

Под
системой
программирования

конкретного языка понимается комплекс
программ предназначенных для подготовки,
отладки и выполнения программ записанных
на этом ЯП.

Обычно
в состав СП входит:


редактор текстов;


компилятор или интерпретатор;


редактор внешних связей;


загрузчик;


отладчик;


библиотекарь;


профилер.

Символьный
ЯП без компилятора или интерпретатора
на ВМ может представлять только
теоретический интерес. Выполнение
программы не
возможно.

Все
АЯ по методу реализации на ЭВМ делятся
на:


транслирующего типа;

Для
выполнения программ, записанных на этих
языках, на ЭВМ должен быть установлен
транслятор, т.е. программа, преобразующая
программу переводя ее на машинный язык.


интерпретирующего типа.

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

  1. 5. Компилятор. Назначение и состав.

Программы,
которые выполняются на ЭВМ с использованием
компиляторов обычно проходит следующие
этапы
обработки
:

Редактор
текста => Исходный текст программы =>
Компиляторы => Объектный код программы
=> Обработка редактора связей (<=
Библиотеки, объектные коды других
модулей) => Исполняемая программа =>
Загрузчик => Выполнение.

Редактор
текста

программа, предназначенная для подготовки
файлов, содержащих тексты программы
(любая программа, не добавляющая своих
собственных команд). Например, Блокнот.

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

Результатом
использования редактора текстов является
текстовый файл, содержащий текст
программы. Этот текст называется
исходным.

Для
выполнения программы на ЭВМ ее исходный
код должен быть обработан компилятором.

Компилятор
осуществляет перевод программы на
машинный код и проверяет синтаксис.

Если
обнаружены синтаксические ошибки, то
выдаются диагностические сообщения и
процесс трансляции прекращается.

Если
ошибки не обнаружены, то формируется
объектный
код
программы,
записываемый на магнитный диск.

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

Эти
ссылки называются внешними. Для разрешения
этих ссылок объектный код обрабатывается
редактором
внешних связей

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

Для
этого он использует имеющиеся библиотеки
и объектные модули других ранее
транслированных частей программы. В
результате создается исполняемая
программа готовая к выполнению. Она
записывается в файл называемый исполняемым
файлом программы. Этот файл с помощью
программы загрузчика
может быть помещена в память ЭВМ и
запустится на выполнение.

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

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

В
систему программирования языков
компилирующего типа так же входит
программа отладчик (Debugger)

Отладчик
– программа, предназначенная для
упрощения поиска в программе семантических
ошибок.

Все
ошибки делятся на:


синтаксические

Обычно
обнаруживаются компилятором или
интерпретатором и связаны с синтаксическими
ошибками в исходном тексте.


семантические

Связанны
с ошибками в алгоритме решаемой задачи
или с неправильной конструкцией
используемого ЯП. Они выявляются на
стадии выполнения программы и выражаются
в получении неверных результатов, в
зацикливании программы или возникновения
аварийных ситуаций (деление на ноль,
квадратный корень из отрицательного
числа и т.д.)

Поиск
таких ошибок является самой сложной и
трудоемкой задачей. Для упрощения
используется отладчик.

Обычно
отладчик
поддерживает следующие функции:

*
Трассировка программы – пошаговое
выполнение программы позволяющая
программисту точно отследить команды
в порядке их выполнения.

*
Задавать контрольные точки остановок.
Позволяет приостановить программу при
достижении заданного места в ее исходном
тексте. Программист может посмотреть
текущее значение переменных и продолжить
выполнение программы.

*
Осуществлять проверку и измерение
данных. Позволяет так же приостановить
программу, просмотреть значения
переменных и, при необходимости, изменить
их значение.

Библиотекарь.

Объектные
модули можно хранить в отдельных файлах,
а можно поместить в один файл –
библиотекарь. Часто вместе с компилятором
поставляются библиотекари причем каждая
программа реализует часто используемый
алгоритм и программа может при
необходимости из своей программы
обращаться к подпрограмме: библиотеке.

Используя
библиотек позволяет автоматизировать
и упростить решение задач.

Библиотекарь
– это специальная программа которая
позволяет из объектных модулей формировать
библиотеки и управлять ее содержимым.

Библиотекарь
обычно позволяет:


создавать библиотеку;


просмотр содержимого;


включить новый модуль или удалить
существующий.

Профилировщик.

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

6.
Интерпретатор
.

При
использовании АЯ интерпретирующего
типа порядок обработки программы
выглядит так:

Программа
=> Интерпретатор => Результат.

Для
выполнения программы записанной на ЯП
программирования интерпретирующего
типа на компьютере должен быть установлен
интерпретатор с этого языка. Интерпретатор
– специальная программа которая
обеспечивает выполнение на ЭВМ исходных
текстов программы или вводимых операторов.

Использование
интерпретатора имеет плюсы и минусы.


программы выполняются намного медленнее
чем исполняемые программы

+
отсутствие необходимости в системе
программирования


увеличение скорости отладки программы,
т.к. человек и машина имеют дело с одним
и тем же текстом программы

Процедурный язык программирования — это… Что такое Процедурный язык программирования?



Процедурный язык программирования

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

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

Процедурные языки программирования

Wikimedia Foundation.
2010.

  • Процедура (программирование)
  • Процент отраженных бросков (хоккей с шайбой)

Смотреть что такое «Процедурный язык программирования» в других словарях:

  • процедурный язык (программирования) — Широко известными языками этого типа являются Ada, Pascal, PL/1 и др. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN procedure oriented language …   Справочник технического переводчика

  • Язык программирования Си — Си Семантика: процедурный Тип исполнения: компилируемый Появился в: 1969 73 г. Автор(ы): Кен Томпсон, Денис Ритчи Типизация данных: статическая Основные реализации …   Википедия

  • Язык программирования C — Си Семантика: процедурный Тип исполнения: компилируемый Появился в: 1969 73 г. Автор(ы): Кен Томпсон, Денис Ритчи Типизация данных: статическая Основные реализации …   Википедия

  • процедурный язык — Язык программирования, в котором действия над данными выражаются в терминах последовательностей команд. [ГОСТ 19781 90] Тематики обеспеч. систем обраб. информ. программное EN procedural language …   Справочник технического переводчика

  • Язык программирования Рубин — Ruby Семантика: мультипарадигмальный Тип исполнения: интерпретатор Появился в: 1995 г. Автор(ы): Юкихиро Мацумото Последняя версия: 1.9.1 …   Википедия

  • Процедурный язык — 36. Процедурный язык Procedural language Язык программирования, в котором действия над данными выражаются в терминах последовательностей команд Источник: ГОСТ 19781 90: Обеспечение систем обработки информации программное. Термины и определения …   Словарь-справочник терминов нормативно-технической документации

  • Си (язык программирования) — У этого термина существуют и другие значения, см. Си. Запрос «Язык программирования Си» перенаправляется сюда; см. также другие значения. Си Класс языка: процедурный Тип исполнения: компилируемый Появился в: 1969 1973 Автор( …   Википедия

  • ФОРТ (язык программирования) — Форт (Forth) процедурный язык программирования (см. ЯЗЫКИ ПРОГРАММИРОВАНИЯ) высокого уровня, а также программная среда (виртуальная машина) для него; разработан для обработки данных с радиотелескопов, но популярность приобрел с появлением… …   Энциклопедический словарь

  • Рапира (язык программирования) — У этого термина существуют и другие значения, см. Рапира (значения). РАПИРА  Расширенный Адаптированный Поплан Интерпретатор, Редактор, Архив  процедурный язык программирования. Разработан в начале 80 х годов в СССР в качестве средства… …   Википедия

  • Occam (язык программирования) — Язык программирования Оккам (англ. Occam) это процедурный язык параллельного программирования высокого уровня, разработанный в начале 80 х годов группой учёных из Оксфорда под руководством Дэвида Мэя (англ. David May) по заданию английской… …   Википедия

Книги

  • Введение в язык паскаль. Учебное пособие, В. Г. Абрамов, Н. П. Трифонов, Г. Н. Трифонова. Дано доходчивое изложение сути языка программирования паскаль, и на его примере доведены до читателя основные концептуальные понятия, входящие практически в любой процедурный язык… Подробнее  Купить за 744 руб
  • Изучаем Python. 3-е издание, Марк Лутц. Мощный, переносимый и легкий в использовании язык программирования Python идеально подходит для разработки самостоятельных программ и сценариев. Эта книга позволитбыстро и эффективно овладеть… Подробнее  Купить за 190 руб электронная книга

В чем разница между процедурным и функциональным программированием?

Я никогда не видел этого определения в другом месте, но я думаю, что это суммирует различия, приведенные здесь довольно хорошо:

функциональное Программирование фокусируется на выражения

— процессуального Программирование фокусируется на заявления

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

заявления не имеют значений и вместо этого изменяют состояние некоторой концептуальной машины.

на чисто функциональном языке не было бы никаких утверждений в том смысле, что нет способа манипулировать состоянием (у них все еще может быть синтаксическая конструкция с именем «statement», но если она не манипулирует состоянием, я бы не назвал ее утверждением в этом смысле). На чисто процедурном языке не было бы выражений, все было бы инструкцией, которая манипулирует состоянием машина.

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

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

например, C будет более функциональным, чем COBOL, потому что вызов функции является выражением, тогда как вызов подпрограммы в COBOL-это оператор (который манипулирует состоянием общих переменных и не возвращает значение). Python будет более функциональным, чем C, потому что он позволяет выражать условную логику как выражение, используя short оценка схемы (test & & path2 / / path3 в отличие от операторов if). Схема будет более функциональной, чем Python, потому что все в схеме является выражением.

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

«Забытые» парадигмы программирования / Хабр

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

Ладно. Введение это очень весело, но вы его все равно не читаете, так что кому интересно — добро пожаловать под кат!

Императивное программирование

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

Это были машинные коды, языки ассемблера и ранние высокоуровневые языки, вроде Fortran.

Ключевые моменты:

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

В низкоуровневых языках (таких как язык ассемблера) состоянием могут быть память, регистры и флаги, а инструкциями — те команды, что поддерживает целевой процессор.

В более высокоуровневых (таких как Си) состояние — это только память, инструкции могут быть сложнее и вызывать выделение и освобождение памяти в процессе своей работы.

В совсем высокоуровневых (таких как Python, если на нем программировать императивно) состояние ограничивается лишь переменными, а команды могут представлять собой комплексные операции, которые на ассемблере занимали бы сотни строк.

Основные понятия:

— Инструкция
— Состояние

Порожденные понятия:

— Присваивание
— Переход
— Память
— Указатель

Языки поддерживающие данную парадигму:

Как основную:

— Языки ассемблера
— Fortran
— Algol
— Cobol
— Pascal
— C
— C++
— Ada

Как вспомогательную:

— Python
— Ruby
— Java
— C#
— PHP
— Haskell (через монады)

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

Структурное программирование

Структурное программирование — парадигма программирования (также часто встречающееся определение — методология разработки), которая была первым большим шагом в развитии программирования.

Основоположниками структурного программирования были такие знаменитые люди как Э. Дейкстра и Н. Вирт.

Языками-первопроходцами в этой парадигме были Fortran, Algol и B, позже их приемниками стали Pascal и C.

Ключевые моменты:

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

В структурном программировании мы по прежнему оперируем состоянием и инструкциями, однако вводится понятие составной инструкции (блока), инструкций ветвления и цикла.

Благодаря этим простым изменениям возможно отказаться от оператора goto в большинстве случаев, что упрощает код.

Иногда goto все-же делает код читабельнее, благодаря чему он до сих пор широко используется, несмотря на все заявления его противников.

Основные понятия:

— Блок
— Цикл
— Ветвление

Языки поддерживающие данную парадигму:

Как основную:

— C
— Pascal
— Basic

Как вспомогательную:

— C#
— Java
— Python
— Ruby
— JavaScript

Поддерживают частично:

— Некоторые макроассемблеры (через макросы)

Опять-же большая часть современных языков поддерживают структурную парадигму.

Процедурное программирование

Опять-же возрастающая сложность программного обеспечения заставила программистов искать другие способы описывать вычисления.

Собственно еще раз были введены дополнительные понятия, которые позволили по-новому взглянуть на программирование.

Этим понятием на этот раз была процедура.

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

Ключевые моменты:

Процедура — самостоятельный участок кода, который можно выполнить как одну инструкцию.

В современном программировании процедура может иметь несколько точек выхода (return в C-подобных языках), несколько точек входа (с помощью yield в Python или статических локальных переменных в C++), иметь аргументы, возвращать значение как результат своего выполнения, быть перегруженной по количеству или типу параметров и много чего еще.

Основные понятия:

— Процедура

Порожденные понятия:

— Вызов
— Аргументы
— Возврат
— Рекурсия
— Перегрузка

Языки поддерживающие данную парадигму:

Как основную:

— C
— C++
— Pascal
— Object Pascal

Как вспомогательную:

— C#
— Java
— Ruby
— Python
— JavaScript

Поддерживают частично:

— Ранний Basic

Стоит отметить, что несколько точек входа из всех этих языков поддерживаются только в Python.

Модульное программирование

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

Забегая вперед скажу, что модули тоже оказались неспособны сдержать с невероятной скоростью растущую сложность ПО и в последствии появились пакеты (это тоже модульное программирование), классы (это уже ООП), шаблоны (обобщенное программирование).

Программа описанная в стиле модульного программирования — это набор модулей. Что внутри, классы, императивный код или чистые функции — не важно.

Благодаря модулям впервые в программировании появилась серьезная инкапсуляция — возможно использовать какие-либо сущности внутри модуля, но не показывать их внешнему миру.

Ключевые моменты:

Модуль — это отдельная именованная сущность программы, которая объединяет в себе другие программные единицы, близкие по функциональности.

Например файл List.mod включающий в себя класс List

и функции для работы с ним — модуль.

Папка Geometry, содержащая модули Shape, Rectangle и Triangle — тоже модуль, хоть и некоторые языки разделяют понятие модуля и пакета (в таких языках пакет — набор модулей и/или набор других пакетов).

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

Основные понятия:

— Модуль
— Импортирование

Порожденные понятия:

— Пакет
— Инкапсуляция

Языки поддерживающие данную парадигму:

Как основную:

— Haskell
— Pascal
— Python

Как вспомогательную:

— Java
— C#
— ActionScript 3

Поддерживают частично:

— C/C++

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

Вместо заключения

В данной статье я не описал популярные сейчас объектно-ориентированное, обобщенное и функциональное программирование. Просто потому, что у меня есть свое, довольно радикальное мнение на этот счет и я не хотел разводить холивар. По крайней мере сейчас. Если тема окажется полезной для сообщества я планирую написать несколько статей, изложив основы каждой из этих парадигм подробно.

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

Основная особенность функциональных языков программирования заключается в том, что программа

Основная особенность функциональных языков программирования заключается в том, что программа …Отметьте правильный вариант ответа:

1)описывает вычисление некоторой функции, которая может рассматриваться как композиция других, более простых функций

2)задает данные и соотношения между ними

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

4)описывает действия, которые необходимо выполнить, а результат задается с помощью последовательности этих действий

30.Когда, завершив создание презентации в Microsoft Office PowerPoint 2007. Нужно проверить правописание, для этого нужно воспользоваться вкладкой …

Отметьте правильный вариант ответа:

1)Показ слайдов

2)Рецензирование

3)Главная

31.Если пользователь Microsoft Office Visio 2007 c помощью мыши потянул за желтый управляющий маркер фигуры, то в результате фигура …

Отметьте правильный вариант ответа:

1)будет двигаться по прямой (координата Х или координата У будет оставаться без изменения)

2)изменит размеры пропорционально шире

3)повернется на произвольный угол

4)будет вести себя особым образом

32. Укажите элементы в правильном порядке

А-Поместите документ, который будет распознан, в сканер

В-Следуйте указаниям Мастера SKAN&READ

С-Запуск программы FineReader

D-Включить сканер

Е-В рабочем окне программы FineReader нажмите на стрелку справа от кнопки SKAN&READ

F-В меню выберите пункт Мастер SKAN&READ

Ответ: C, D, A, E, F, B

33.Если при работе в приложении Microsoft Office Visio 2007 требуется добавить на страницу направляющую, для этого пользователь должен …

Отметьте правильный вариант ответа:

1)выбрать в меню Вид команду Направляющие

2)нажать клавиши CTRL+G

3)установить указатель мыши на линейке, щелкнуть по ней и переместить указатель

4)установить указатель мыши на линии сетки и нажать кнопку Перетащить направляющую?

34.Одномерные фигуры (имеющие только одно измерение-длину) в Microsoft Office Visio 2007 используются для …Отметьте правильный вариант ответа:

1)представления пространственных объектов (например, мебель, оргтехника)

2)ограничения объектов схемы

3)обозначение сотрудника на организационной схеме

4)соединения двух фигур

35.При помощи, каких действий можно задать количество томов архива в WinRar?

Отметьте правильный вариант ответа:

1)Вкладка Настройка-> Задать размер тома

2)Вкладка Дополнительно->Задать количество томов

3)Вкладка Общие->Задать размер тома

36.При архивации степень сжатия файлов существенно зависит от … файла

Отметьте правильный вариант ответа:

1)формата

2)размера

3)даты сохранения

Что такое процедурное программирование? [Определение]

Когда вы новичок в программировании, парадигмы программирования не имеют большого значения. Но когда вы поднимаетесь по лестнице и начинаете создавать сложные программы и программное обеспечение, важно понимать, какая парадигма программирования лучше всего подходит для вашего проекта. Прежде чем мы начнем, важно знать, что такое парадигма. Согласно многим цитируемым определениям, парадигма — это « — набор допущений, концепций, ценностей и практик, который составляет способ взгляда на реальность для сообщества, которое их разделяет, особенно в интеллектуальной дисциплине».

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

Что такое процедурное программирование? [Определение]

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

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

Ключевые особенности процедурного программирования

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

  • Предопределенные функции: Предопределенная функция обычно представляет собой инструкцию, идентифицируемую по имени. Обычно предопределенные функции встроены в языки программирования более высокого уровня, но они получены из библиотеки или реестра, а не из программы. Одним из примеров предопределенной функции является «charAt ()», которая ищет позицию символа в строке.
  • Локальная переменная : Локальная переменная — это переменная, которая объявлена ​​в основной структуре метода и ограничена заданной локальной областью. Локальную переменную можно использовать только в том методе, в котором она определена, и если она будет использоваться вне определенного метода, код перестанет работать.
  • Глобальная переменная : Глобальная переменная — это переменная, которая объявлена ​​вне всех других функций, определенных в коде. Благодаря этому глобальные переменные могут использоваться во всех функциях, в отличие от локальной переменной.
  • Модульность : Модульность — это когда две разные системы выполняют две разные задачи, но сгруппированы вместе, чтобы вначале решить более крупную задачу. Тогда каждая группа систем будет иметь свои собственные задачи, выполняемые одна за другой, пока не будут выполнены все задачи.
  • Передача параметров: Передача параметров — это механизм, используемый для передачи параметров функциям, подпрограммам или процедурам. Передача параметров может осуществляться с помощью «передачи по значению», «передачи по ссылке», «передачи по результату», «передачи по значению-результату» и «передачи по имени».

Преимущества и недостатки процедурного программирования

Procedural Programming имеет свой набор плюсов и минусов, некоторые из которых упомянуты ниже.

Преимущества
  • Процедурное программирование отлично подходит для программирования общего назначения
  • Простота кода вместе с легкостью реализации компиляторов и интерпретаторов
  • Большой выбор книг и материалов онлайн-курсов, доступных по проверенным алгоритмам, что упрощает изучение в процессе работы
  • Исходный код переносим, ​​поэтому его можно использовать и для другого ЦП.
  • Код может быть повторно использован в разных частях программы без необходимости его копирования
  • Благодаря методике процедурного программирования требования к памяти также уменьшаются.
  • Ход выполнения программы легко отслеживать
Недостатки
  • Программный код сложнее написать, когда используется процедурное программирование
  • Процедурный код часто нельзя использовать повторно, что может вызвать необходимость воссоздать код, если он необходим для использования в другом приложении.
  • Сложно соотнести с объектами реального мира
  • Важность придается операции, а не данным, что может вызвать проблемы в некоторых случаях, связанных с конфиденциальностью данных
  • Данные доступны для всей программы, что делает ее менее безопасной.

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

Что такое объектно-ориентированное программирование (ООП)

ООП — это подход к программированию, который рассматривает жизнь в том виде, в каком мы ее знаем, как совокупность объектов, которые работают в тандеме друг с другом для решения конкретной проблемы. Главное, что нужно знать об ООП, — это инкапсуляция, то есть идея, что каждый объект, содержащий программу, является самодостаточным, что означает, что все компоненты, составляющие объект, находятся внутри самого объекта.Теперь, поскольку каждый модуль в этой парадигме является самодостаточным, объекты могут быть взяты из одной программы и использованы для решения другой проблемы с небольшими изменениями или без них.

Преимущества
  • Благодаря модульности и инкапсуляции ООП обеспечивает простоту управления
  • ООП имитирует реальный мир, облегчая понимание
  • Поскольку объекты целы внутри себя, они могут быть повторно использованы в других программах
Недостатки
  • Объектно-ориентированные программы, как правило, работают медленнее и используют большой объем памяти
  • Чрезмерное обобщение
  • Создание программ, построенных с использованием этой парадигмы, может занять больше времени

Процедурное программирование и объектно-ориентированное программирование: прямое сравнение

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

Процедурное программирование Объектно-ориентированное программирование
Использует неизменяемые данные Использует изменяемые данные
Соответствует модели декларативного программирования Соответствует модели императивного программирования
Расширяет поддержку параллельного программирования Не подходит для параллельного программирования
Порядок выполнения операторов не является основным Порядок выполнения операторов очень важен
Управление потоком выполняется с помощью вызовов функций Управление потоком выполняется с помощью условных операторов и циклов
Использует концепцию рекурсии для итерации коллективных данных Использует концепцию цикла для итерации данных сбора
Нет таких побочных эффектов от его функций Метод может иметь определенные побочные эффекты
В процедурном программировании основное внимание уделяется «Что вы делаете» В объектно-ориентированном программировании основное внимание уделяется «Как вы это делаете»

Еще одна широко используемая парадигма программирования — это функциональное программирование.Функциональное программирование отличается как от процедурного, так и от объектно-ориентированного программирования, поскольку в нем используются математические функции. Благодаря этому операции выполняются только на основе вводимых данных, и они не полагаются на временные или скрытые переменные.

Преимущества
  • Функциональное программирование предлагает защищенную среду
  • В то время как многие другие языки требуют значительного количества информации для правильного выполнения операций, функциональное программирование устраняет необходимость в большом количестве кода, необходимого для определения состояний
  • Поскольку эта парадигма зависит только от входных аргументов, побочных эффектов нет.
Недостатки
  • Использование функционального программирования только при разработке коммерческого программного обеспечения не рекомендуется и выполняется
  • Требуется большой объем памяти и времени
  • Может оказаться менее эффективным, чем другие парадигмы

Заключение

Как мы уже говорили в этой статье, процедурное программирование — это скорее то, что вы делаете, чем то, как вы это делаете.Это стандартный подход, используемый во многих компьютерных языках, таких как C, Pascal и BASIC. Хотя идеальной парадигмы программирования не существует, важно понимать, что правильная парадигма всегда будет зависеть от типа языка, который вы используете, и программы, которую вы хотите создать. Рекомендуется, чтобы для получения максимальных результатов и сильного портфолио необходимо владеть всеми тремя основными парадигмами программирования. Лучший способ стать лучше в парадигмах программирования — это попробовать, и Hackr может помочь вам в этом.

Еще читают:

.

10 самых востребованных языков программирования для изучения в 2020 году | by Md Kamaruzzaman

Когда Гвидо ван Россум разработал Python в 1990-х годах в качестве своего побочного проекта, никто не думал, что когда-нибудь он станет самым популярным языком программирования. Учитывая общепризнанные рейтинги и отраслевые тенденции, я считаю Python языком программирования номер один в целом.

Python не видел такого стремительного роста популярности, как Java или C / C ++. Кроме того, Python не является разрушительным языком программирования.Но с самого начала Python был ориентирован на опыт разработчиков и пытался снизить барьер для программирования, чтобы школьники также могли писать код производственного уровня.

В 2008 году Python претерпел серьезные изменения и усовершенствования, которые потребовали внесения существенных критических изменений за счет внедрения Python 3.

Сегодня Python повсеместно присутствует и используется во многих областях разработки программного обеспечения, без каких-либо признаков замедления темпов роста.

3 Основные характеристики:

  • УТП Python — это дизайн языка.Он высокопроизводительный, элегантный, простой, но мощный.
  • Python имеет первоклассную интеграцию с C / C ++ и может легко переносить тяжелые задачи процессора на C / C ++.
  • Python имеет очень активное сообщество и поддержку.

Популярность:

За последние несколько лет спрос на Python стремительно вырос, и нет никаких признаков его замедления. Сайт рейтинга языков программирования PYPL оценил Python как язык программирования номер один со значительным ростом популярности в 2019 году:

Источник: PYPL

Кроме того, Python превзошел Java и стал вторым по популярности языком по данным репозиториев GitHub:

Источник: Octoverse

Кроме того, опрос разработчиков StackOverflow оценил Python как 2-й по популярности язык программирования (4-е место по популярности среди технологий):

Источник: StackOverflow Developer Survey, 2019

Другой сайт рейтинга языков программирования TIOBE поставил Python на 3-е место по популярности с большим прирост в прошлом году:

Источник: TIOBE

У Python все еще есть шанс подняться выше в рейтинге в этом году, поскольку Python в прошлом году вырос на 50%, согласно GitHub Octoverse:

Источник: Octoverse

В опросе разработчиков StackOverflow Python указан как второй по популярности язык программирования:

Источник: опрос разработчиков StackOverflow, 2019 г.

Большинство старых а основные языки программирования имеют стабильную или нисходящую тягу.Кроме того, Python здесь является исключением и имеет тенденцию к росту в течение последних пяти лет, о чем свидетельствуют тенденции Google:

Источник: Google Trends

Рынок вакансий:

По данным Indeed, Python является самым требовательным языком программирования в мире. Рынок труда США с самым высоким показателем вакансий в 74 тыс. В январе 2020 года. Кроме того, Python занял третье место с годовой зарплатой в 120 тыс. Долларов.

Источник: Indeed

Кроме того, опрос разработчиков StackOverflow показал, что разработчики Python получают высокую зарплату при относительно низком опыте по сравнению с другими основными языками программирования:

Источник: StackOverflow Developer Survey, 2019

Основные варианты использования:

  • Data Science
  • Аналитика данных
  • Искусственный интеллект, глубокое обучение
  • Корпоративное приложение
  • Веб-разработка

Во время первой войны браузеров Netscape поручила Брендану Эйху разработать новый язык программирования для своего браузера .Брендан Эйх разработал первый прототип всего за десять дней, а остальное уже история . Разработчики программного обеспечения часто высмеивали JavaScript из-за его плохого языкового дизайна и отсутствия функций.

С годами JavaScript превратился в многопарадигмальный высокоуровневый динамический язык программирования. Первый значительный прорыв в JavaScript произошел в 2009 году, когда Ryan Dahl выпустил кроссплатформенную среду выполнения JavaScript Node.js и включил JavaScript для работы на стороне сервера.

Другой крупный прорыв в JavaScript произошел примерно в 2010 году, когда Google выпустил основанный на JavaScript фреймворк для веб-разработки AngularJS .

Сегодня JavaScript является одним из наиболее широко используемых языков программирования в мире и работает практически везде: браузеры, серверы, мобильные устройства, облако, контейнеры, микроконтроллеры.

3 Основные характеристики:

  • JavaScript — бесспорный король в программировании браузеров.
  • Благодаря Node.js, JavaScript предлагает событийно-ориентированное программирование , что особенно подходит для тяжелых задач ввода-вывода .
  • JavaScript претерпел масштабную модернизацию и капитальный ремонт за последние несколько лет, особенно в 2015, 2016 и позже.

Популярность:

JavaScript — один из самых популярных языков программирования из-за его повсеместного использования на всех платформах и массового внедрения.

Octoverse поставил JavaScript в качестве языка программирования номер один в течение пяти лет подряд по данным репозиториев GitHub:

Источник: Octoverse

Кроме того, опрос разработчиков StackOverflow 2019 оценил JavaScript как самый популярный язык программирования и технологию:

Источник: StackOverflow Developer Survey , 2019

Еще один сайт по популярности языка программирования PYPL поставил JavaScript на 3-е место по популярности:

Источник: PYPL

Сайт по популярности языков программирования TIOBE поставил JavaScript на 7-е место по популярности языка программирования:

Источник: TIOBE

Когда-то боялись По данным опроса разработчиков StackOverflow:

Источник: StackOverflow Developer Survey, 2019

Тенденции развития JavaScript относительно стабильны, как показывает Google Trends:

Источник: Google Trends

Job Рынок:

В США J ob market, компания Indeed оценила JavaScript как третий по требованию язык программирования, опубликовав 57 тыс. вакансий в январе 2020 года.При средней годовой зарплате 114 тыс. Долларов JavaScript занимает 4-е место по зарплате:

Источник: Indeed

Кроме того, опрос разработчиков StackOverflow показал, что разработчики JavaScript могут получать скромную зарплату при относительно низком опыте:

Источник: StackOverflow Developer Survey, 2019

Основные варианты использования:

  • Веб-разработка
  • Backend-разработка
  • Разработка мобильных приложений
  • Бессерверные вычисления
  • Разработка браузерных игр

Java — один из самых разрушительных языков программирования на сегодняшний день.Еще в 90-х бизнес-приложения в основном разрабатывались с использованием C ++, который был довольно сложным и зависел от платформы. Джеймс Гослинг и его команда в Sun снизили барьер для разработки бизнес-приложений, предложив гораздо более простой объектно-ориентированный интерпретируемый язык программирования, который также поддерживает многопоточное программирование.

Java добилась независимости от платформы, разработав виртуальную машину Java (JVM), которая абстрагировала низкоуровневую операционную систему от разработчиков и дала первый язык программирования « Write Once, Runwhere ».Кроме того, JVM предлагает генерацию сборки мусора, которая управляет жизненным циклом объекта.

В последние годы Java потеряла часть своих рынков из-за очень удобных для разработчиков современных языков и появления других языков, особенно Python и JavaScript. Кроме того, JVM не совсем подходит для облака из-за своего большого размера. Oracle недавно ввела высокие лицензионные сборы за JDK, что еще больше снизит популярность Java.

К счастью, Java работает над своими недостатками и пытается сделать Java пригодной для работы в облаке с помощью инициативы GraalVM.Также в OpenJDK есть бесплатная альтернатива проприетарному Oracle JDK.

Java по-прежнему остается языком программирования номер один для предприятий.

3 Основные характеристики:

  • Java предлагает мощный, многофункциональный, многопарадигмальный интерпретируемый язык программирования с умеренной кривой обучения и высокой производительностью разработчика.
  • Java имеет строгую обратную совместимость, что является важным требованием для бизнес-приложений.
  • JVM среды выполнения Java — шедевр программной инженерии и одна из лучших виртуальных машин в отрасли.

Популярность:

Только через пять лет после выпуска Java становится 3-м по популярности языком программирования и всегда остается в топ-3 списка в следующие два десятилетия. Вот долгосрочная история Java в популярном рейтинге TIOBE:

Источник: TIOBE

Популярность Java за последние несколько лет пошла на убыль, но, по данным TIOBE, это все еще самый популярный язык программирования, как показано ниже:

.

парадигм — Можете ли вы представить тот же пример, используя процедурные, функциональные, логические и объектно-ориентированные языки программирования?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

10 лучших языков программирования для инженеров

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

Есть два типа языков программирования. Первый называется «языками высокого уровня», а второй — «языками низкого уровня».

Что такое языки высокого уровня?

Это слова и / или символы, которые используются программистами для написания «исходного кода».«Они читабельны и легки для понимания. Некоторые из языков высокого уровня включают Java, PHP и C ++.

Что такое языки низкого уровня?

Они делятся на две категории — язык ассемблера и машинный язык. На ассемблере труднее читать, чем на языке высокого уровня. Хотя его трудно читать, он содержит основные инструкции для программиста. Затем этот язык используется для интерпретации и / или перевода кода и преобразования его в машинный язык — язык, содержащий группу двоичных кодов, известных процессору компьютера.Этот язык не может быть прочитан людьми; это не было разработано таким образом.

СВЯЗАННЫЕ С: 7 ЯЗЫКОВ ПРОГРАММИРОВАНИЯ, КОТОРЫЕ ВЫ ДОЛЖНЫ УЧИТАТЬСЯ ИЗУЧЕНИЕМ В 2019 ГОДУ

Почему инженерам нужно знать эти языки программирования

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

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

Без знания того, как использовать или читать любой из 10 языков программирования, упомянутых здесь, инженер может быть более ограничен в своих возможностях трудоустройства.

Какие 10 лучших языков программирования для инженеров?

10. Objective-C

Это язык программирования, основанный на «объектах». Вот почему он известен также как объектно-ориентированный язык программирования или ООП. Он имеет стиль Smalltalk, аналогичный программированию на C.

Smalltalk был разработан для нового мира, в котором человек и компьютер работают вместе. Сначала он был разработан для образовательных целей и представляет собой объектно-ориентированный язык программирования.

9. SQL

SQL или язык структурированных запросов используется для доступа к базам данных.Это инструмент, который может изменять базы данных. С помощью SQL оператор может выполнять запросы, извлекать данные, вставлять записи, обновлять записи, удалять записи, создавать новые базы данных, создавать новые таблицы, создавать хранимые процедуры, создавать представления и устанавливать разрешения.

Инженер так много может сделать, если у него есть навыки программирования на языке SQL.

8. PHP

Препроцессор PHP или гипертекста может работать в различных типах баз данных, а также в операционных системах, таких как Mac OS X, Linux, Windows, UNIX и других.

Это бесплатный язык программирования, который можно удобно загрузить с официального сайта «php.net». PHP способен на многое. Некоторые из них включают создание динамических страниц, сбор данных из форм, отправку и получение веб-сайта и / или просмотр файлов cookie и даже шифрование данных, среди многих других.

7. C #

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

Этот язык был разработан Microsoft в рамках программы .NET. Он используется для создания эффективных программ и может быть установлен на разные типы компьютеров. Если инженер понимает, как использовать программирование на C и C ++, и тогда ему / ей понравится изучать C #.

6. JavaScript

Известный язык программирования в Интернете. Он обычно используется на веб-сайтах и ​​также известен как язык программирования HTML.

JavaScript — не сложный навык программирования. Фактически, это проще, чем большинство языков программирования. Веб-разработчики изучают этот язык программирования вместе с HTML и CSS, потому что они являются основой эстетически привлекательного веб-сайта.

5. Visual Basic .NET

Также пишется как VB.NET. Это объектно-ориентированный язык программирования с множеством парадигм. Этот язык лучше всего работает на платформе .NET Framework от Microsoft. VB.NET — это язык структурированного программирования.Он использует операторы, чтобы указать действия, которые должны быть выполнены компьютером.

Некоторые ключевые слова, используемые языком, включают «Если», «Выбрать регистр», «Цикл», «Для каждого» и «Иначе» среди других зарезервированных ключевых слов.

4. C ++

Язык программирования C ++ может работать на компьютерах с такими операционными системами, как Windows, несколько версий UNIX и Mac OS. Это язык программирования общего назначения, который также чувствителен к регистру, но имеет произвольную форму.

Он поддерживает объектно-ориентированное программирование, а также процедурное и общее.Поскольку C ++ поддерживает ООП, он также поддерживает инкапсуляцию, скрытие данных, наследование и полиморфизм.

3. Python

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

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

2. C

C также упоминается как «K&R.Он был разработан Деннисом Ричи, но в разработке ему помогали Bell Labs и ANSI C. Это язык программирования общего назначения, поддерживающий процедурное и структурное программирование, а также рекурсию и область видимости лексических переменных. Это низкоуровневый язык программирования, который предоставляет инструкции машинам.

Некоторые программы на C написаны и / или разработаны с учетом переносимости. Это означает, что его можно переносить с одного компьютера на другой.

1.Java

Java — это совершенно другой язык программирования, нежели JavaScript. Java — это собственность Oracle. Он работает на мобильных устройствах, особенно на приложениях Android, некоторых или всех настольных приложениях, веб-приложениях, серверах, играх, базах данных и многом другом.

Java можно использовать на компьютере Linux, Raspberry Pi, Mac и, конечно же, Windows, среди прочего. Это еще один язык программирования, который легко изучить, но он также является одним из самых популярных.

Java занимает первое место в списке лучших языков программирования для инженеров.Это безопасный и мощный язык программирования, к тому же он бесплатный.

Инженеры должны воспользоваться бесплатными источниками, доступными им в Интернете, чтобы изучить один или несколько из этих 10 языков программирования. Машиностроение — это отрасль, которая постоянно развивается в наш век новых технологий. Изучая эти языки, инженеры могут быть в курсе тенденций и изменений в отрасли и быть готовыми к любым изменениям, которые произойдут.

.

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

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