Графическое представление алгоритмов - gozda.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Графическое представление алгоритмов - страница №1/1

ЗАДАНИЕ ПО ИНФОРМАТИКЕ.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ, БЛОК-СХЕМА АЛГОРИТМА.


ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ.

Алгоритм, составленный для некоторого исполнителя, можно представить различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке (языке программирования). Остановимся на графическом описании алгоритма, называемом блок-схемой. Этот способ имеет ряд преимуществ благодаря наглядности, обеспечивающей, в частности, высокую «читаемость» алгоритма и явное отображение управления в нем.

Прежде всего определим понятие блок-схемы.

Блок-схема - это ориентированный граф, указывающий порядок исполнения команд алгоритма; вершины такого графа могут быть одного из трех типов (рис. 1.1.).


Рис. 1.1. Три типа вершин графа
На рис. 1.1. изображены «функциональная» (a) вершина (имеющая один вход и один выход); «предикатная» (б) вершина, имеющая один вход и два выхода (в этом случае функция Р передает управление по одной из ветвей в зависимости от значения Р (Т, т.е. true, означает «истина», F, т.е. false - «ложь»); «объединяющая» (в) вершина (вершина «слияния»), обеспечивающая передачу управления от одного из двух входов к выходу. Иногда вместо Т пишут «да» (либо знак +), вместо F- «нет» (либо знак -).

Из данных элементарных блок-схем можно построить четыре блок-схемы (рис. 1.2.), имеющих особое значение для практики алгоритмизации.



Рис. 1.2.. Основные алгоритмические структуры
На рис. 1.2. изображены следующие блок-схемы: а - композиция, или следование; б - альтернатива, или развилка, в и г - блок-схемы, каждую из которых называют итерацией, или циклом (с предусловием (в), с постусловием (г)). S1 и S2 представляют собой в общем случае некоторые серии команд для соответствующего исполнителя, В - это условие, в зависимости от истинности (Т) или ложности (F) которого управление передаётся по одной из двух ветвей. Можно доказать, что для составления любого алгоритма достаточно представленных выше четырех блок-схем, если пользоваться их последовательностями и/или суперпозициями.

Блок-схема «альтернатива» может иметь и сокращенную форму, в которой отсутствует ветвь S2 (рис. 1.3., а). Развитием блок-схемы типа альтернатива является блок-схема «выбор» (рис. 1.3., б).




Рис. 1.3.. Развитие структуры типа «альтернатива»;

о) - неполная развилка; б) - структура «выбор»

Окружающий мир 2 класс >>
Окружающий мир 2 класс УМК «Перспективная начальная школа» Учитель: Сурадеева Ю.В., Саракташская СОШ №2 Тема: Животные. Насекомые. Цель: Уточнить представление о насекомых и повторить их отличительные признаки. Формировать представление о растительноядных, хищных и всеядных насекомых. Развивать речь учащихся, внимание, умение анализировать и группировать. Воспитывать бережное отношение к насекомым, интерес к изучению предмета. Оборудование: компьютер, проектор, диск «Окружающий мир 2 класс уроки Кирилла и Мефодия», кубик с рисунками насекомых, рисунки насекомых на листе А4, презентация, ребусы, ободки-усики, открытки – сюрприз. Ход урока Организационный момент. - У нас сегодня на уроке будут гости, поздоровайтесь с ними. Посмотрите на меня, улыбнитесь, я желаю вам удачи и хорошего настроения на этом уроке. Каждый день – всегда, везде, На занятиях, в игре. Смело, четко говорим И тихонечко сидим. II. Актуализация знаний. - В природе существует 3 царства: растений, грибов и животных. С каким царством вы уже познакомились? (растения) А сегодня мы поговорим о царстве животных. - Ослик Космик просит вас вспомнить общие и отличительные признаки растений и животных. (Диск «Окружающий мир 2 кл.» Урок №8 п.2) 1) Общие признаки: дышат, растут, питаются, размножаются, живая природа. 2) Отличия. Растения: не способны двигаться самостоятельно, сами создают себе питательные вещества. Животные: питаются готовой пищей, способны самостоятельно передвигаться. - Когда вы слышите слово ЖИВОТНЫЕ, кого вы себе представляете? (Ответы детей) 1 слайд (Животные, сравнить по количеству ног) - Понаблюдаем, сколько ног может быть у животных. Например, У птиц – 2 ноги У зверей – 4 ноги У пауков и скорпионов – 8 У жуков – 6 - О какой группе животных мы сегодня будем говорить, если известно, что они могут летать? Могут жить в почве. У них есть усики. У них 6 конечностей. (Это насекомые). - Правильно, мы сегодня на уроке будем вспоминать отличительные признаки насекомых и разделим их на группы питания. - Какое сейчас время года? Можем ли мы увидеть насекомых зимой? Объясните свой ответ. - Кто на экране относится к насекомым? (жук.) Загадки. Отгадайте, кто еще относится к насекомым. 2 слайд (Отгадки по щелчку) Долговатая хозяйка Полетела над лужайкой, Похлопочет над цветком – Он поделится медком. (Пчела) На лугу живет скрипач,


На практике при составлении блок-схем оказывается удобным использовать и другие графические знаки (некоторые из них приведены на рис. 1.4.).
Перечень лабораторных занятий >>
Перечень лабораторных занятий «Геометрическое моделирование в САПР» для заочной формы обучения 5курс 1 – 53 01 01 Автоматизация технологических процессов и производств (по направлениям) 1 Знакомство с интегрированной системой T-FLEX. Основные элементы интерфейса. 2 Представление кривых и работа с ними. Представление поверхностей и работа с ними. 3 Двумерное моделирование. Базовые элементы. ИНФОРМАЦИОННО-МЕТОДИЧЕСКАЯ ЧАСТЬ Список литературы 1 Основной Берлинер, Э. М. САПР в машиностроении / Э. М. Берлинер, О. В. Таратынов. – М. : Форум, 2008. – 448 с. Ли, К. Основы САПР (CAD / CAM / CAE) / К. Ли. – Питер : СПб., 2004. – 560 с. Дементьев, Ю. В. САПР в автомобиле- и тракторостроение : учеб. для студентов высш. учеб. заведений / Ю. В. Дементьев, Ю. С. Щетинин ; под ред. В. М. Шарипова. – М. : Академия, 2004. – 218 с. Аверченков, В. И. САПР технологических процессов, приспособлений и режущих инструментов / В. И. Аверченков, И. А. Каштальян, А. П. Пархутик. – Минск : Выш. шк., 1993. – 288 с. Кондаков, А. И. САПР технологических процессов : учеб. для студентов высш. учеб. заведений / А. И. Кондаков. – 2-е изд. – М. : Академия, 2008. – 272 с. Мироненко, И. Г. Автоматизированное проектирование узлов и блоков РЭС современных САПР : учеб. пособие для вузов / И. Г. Мироненко. – М. : Выш. шк., 2002. – 391 с. Корячко, В. П. Теоретические основы САПР : учеб. для вузов / В. П. Корячко. – М. : Энергоатомиздат, 1987. –400 с. 2 Дополнительный Бунаков, П. Ю. Сквозное проектирование в T-Flex / П. Ю. Бунаков. – М. : ДМК Пресс, 2009. – 400 с. – 1 электрон. опт. диск (DVD - ROM). Жук, Д. М. САПР. Сборник примеров и задач: учеб. пособие для втузов / Д. М. Жук, Н. М. Капустин, С. С. Комалов ; под ред.  И. П. Норенкова. – М. : Высш. шк., 1986. – 143 с. Капустин, Н. М. САПР. Автоматизация конструкторского и технологического проектирования: учеб. пособие для втузов / Н. М. Капустин, Г. Н. Васильев ; под ред. И. П. Норенкова. – М. : Высш. шк., 1986. – 191 с.


Рис. 1.4.. Некоторые дополнительные конструкции для изображения блок-схем алгоритмов

Языки программирования.
Языки программирования служат разным целям и их выбор определяется удобностью пользователя, пригодностью для данного компьютера и данной задачи. А задачи для компьютера бывают самые разнообразные: вычислительные, экономические, графические, экспертные и т.д. Такая разнотипность решаемых компьютером задач и определяет многообразие языков программирования. По всей видимости, в программировании наилучший результат достигается при индивидуальном подходе, исходящем из. класса задачи, уровня и интересов программиста. Например, Бейсик широко употребляется при написании простых программ; Фортран является классическим языком программирования при решении на ЭВМ математических и инженерных задач; язык Кобол (COBOL, от Common Business Oriented Language -общий язык, ориентированный на деловые задачи; создан в 1960 г.) был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса. Еще более специализированным является язык ЛОГО (от греческого logos - слово), созданный для обучения программированию школьников профессором математики и педагогики Сеймуром Пейпертом из Массачусетского технологического института. Обучаясь программированию на ЛОГО, дети задают простые команды, которые управляют игрушечной черепашкой, снабженной карандашиком. Отметим и еще один достаточно популярный специализированный язык - Пролог (Prolog -PROgramming in LOGic), разработанный как язык программирования для создания систем искусственного интеллекта.

В конце 50-х годов плодом международного сотрудничества в области программирования явился Алгол (ALGOL, от ALGOrithmic Language - алгоритмический язык). Алгол предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленных задач. Специалисты-практики восприняли этот язык далеко неоднозначно, но, тем не менее, его влияние на развитие других языков и теорию программирования оказалось весьма значительным.

ПРИМЕРНАЯ ПРОГРАММА >>
Наименование дисциплины Структуры и алгоритмы компьютерной обработки данных Рекомендуется для направления подготовки 010500 Математическое обеспечение и администрирование информационных систем Квалификация выпускника: бакалавр 1. Цели и задачи дисциплины: изучение структур данных и алгоритмов их обработки, знакомство с фундаментальными принципами построения эффективных и надежных программ. Курс ориентирован на становление математика-программиста, должен способствовать повышению культуры мышления. Курс предназначен для овладения компьютерными методами обработки информации путем развития профессиональных навыков разработки, выбора и преобразования алгоритмов, что является важной составляющей эффективной реализации программного продукта. 2. Место дисциплины в структуре ООП: Дисциплина относится к профессиональному циклу (Б.3). Компетенции: ПК-2, ПК-3, ПК-7, ПК-8, ПК-9, ПК-10, ПК-11, ПК-36. Студент должен знать: основные этапы компьютерного решения задач; понятие алгоритма и структуры управления; традиционные структуры данных; основные требования методологии структурного программирования, как технологической основы разработки качественных программных компонентов; понятие статических и динамических данных; примеры базовых структур данных; идеи, лежащие в основе процедурного программирования, реализацию вызова процедур в языках с блочной структурой, рекурсию; идеи, лежащие в основе процедурного, модульного, объектно-ориентированного программирования; математический аппарат, необходимый для оценивания времени выполнения алгоритма. Студент должен уметь: применять требования методологии структурного программирования при проектировании информационных моделей; разрабатывать и записывать на языке высокого уровня алгоритмы решения классических задач программирования; реализовывать технологию проектирования сверху-вниз; выбирать оптимальную структуру для представления данных. Студент должен владеть: навыками практического программирования конкретных задач в определенной языковой среде; применять средства структурного, модульного и объектно-ориентированного программирования для решения задач. Данная дисциплина является предшествующей для следующих дисциплин: базы данных и СУБД; компьютерное моделирование; компьютерная графика; теория вычислительных процессов и структур; технология разработки программного обеспечения; исследование операций;

Рекурсивный спуск >>
Вариант №13 №6 Выполнил: Ст-т Лысак В.В. Гр. АИ-3-026 Проверил: Пр-ль Жуков В.В. Г. Ростов-на-Дону 2013 г. Рекурсивный спуск Метод рекурсивного спуска (англ. Recursive descent parser) — алгоритм синтаксического анализа, реализуемый путём взаимного вызова парсящих процедур, соответствующих правилам контекстно-свободной грамматики или БНФ. Применения правил последовательно, слева-направо поглощают токены, полученные от лексического анализатора. Это один из самых простых алгоритмов парсинга, подходящий для полностью ручной реализации. Варианты реализации: Предсказывающий парсер Для парсеров этого типа нужна подходящая КС-грамматика, конкретно LL(k) грамматика, позволяющая по очередному токену или токенам однозначно выбрать (предсказать) один из альтернативных вариантов раскрытия каждого нетерминала. Такой парсер работает за линейное время. Вариантом является LL-парсер — реализация предсказывающего парсера с автоматическим построением «таблицы предсказания», определяющей по заданному нетерминалу и очередному токену подходящее правило для раскрытия нетерминала. Парсер с возвратом Вместо предсказания парсер просто пытается применить все альтернативные варианты правил по порядку, пока одна из попыток не увенчается успехом. Такой парсер может потребовать экспоненциального времени работы, и не всегда гарантирует завершение, в зависимости от грамматики. Уязвим для левой рекурсии В нашем случае используется предсказывающий парсер. Цель работы создать программу, которая осуществляет выполнение алгоритма рекурсивного спуска для следующей грамматики: Алгоритм построения процедур. Для построения процедур просматривается правая часть правила для каждого нетерминала. Если встречается нетерминальный символ, то вызывается процедура для этого символа. Если она завершается без ошибки, то в исходном тексте фраза для этого терма закрыта, и все семантические действия тоже выполнены. Если встречается терминальный символ, он сравнивается с очередным символом входной строки. Если они совпадают, этот символ просто закрывается. Указатель смещается на один шаг вправо. Если не совпадают, то это синтаксическая ошибка и трансляция прекращается. Если встречается метасимвол: Если встречается итерация {, то организуется цикл while, в который помещается все, что заключено в {}. Условием входа в цикл является то, что очередной символ не принадлежит множеству Follow для этого нетерминала.

Романтизм и реализм: история развития русской литературы в первой половине >>
Архипова Т.А., учитель русского языка и литературы, МОУ «СОШ №1» г.Шелехов «Романтизм и реализм: история развития русской литературы в первой половине XIX века» Тип: Урок-лекция; урок-практикум. Цели: 1) сформировать представление об основных литературных направлениях русской литературы в первой половине XIX века, выявить их основные особенности; 2) развить логическое мышление учащихся, умение анализировать информацию, составлять сводную сравнительную таблицу; 3) воспитать внимательное отношение к слову; вкус к поэтической речи. Оборудование: 1) мультимедийный проектор; 2) слайдовая презентация; 3) тексты для анализа. Ход урока Организационный момент. Лекция учителя. Ты, уцелевший в сердце нищем, Привет тебе, мой грустный стих! Мой светлый луч над пепелищем Блаженств и радостей моих! Одно, чего и святотатство Коснуться в храме не могло; Моя напасть! мое богатство! Мое святое ремесло! Проснись же, смолкнувшее слово! Раздайся с уст моих опять; Сойди к избраннице ты снова, О роковая благодать! Уйми безумное роптанье. И обреки всё сердце вновь На безграничное страданье, На бесконечную любовь! К.К. Павлова Романтизм - одно из крупнейших направлений в мировом искусстве конца XVIII -начала XIX веков. Этимологически французское слово "romantism" восходит к испанскому слову "romans". В XVIII веке романтическим называли все фантастическое, необычное, странное, встречающееся лишь в книгах, а не в действительности. Впервые слово "романтизм" как термин, как наименование литературного направления стало употребляться и Германии в конце XVIII века. Там же возникла и первая школа "Иенских романтиков", основанная братьями Фридрихом и Августом Шлегелями. Новалисом и Тиком. Ими же было создано первое философское и эстетическое обоснование теории романтизма. Причины возникновения и распространения романтизма

ЗАКОН РЕСПУБЛИКИ МОРДОВИЯ >>
ЗАКОН РЕСПУБЛИКИ МОРДОВИЯ О ПРИВЕДЕНИИ ОТДЕЛЬНЫХ ЗАКОНОДАТЕЛЬНЫХ АКТОВ РЕСПУБЛИКИ МОРДОВИЯ В СООТВЕТСТВИЕ С ЗАКОНОДАТЕЛЬСТВОМ О ПРОТИВОДЕЙСТВИИ КОРРУПЦИИ Принят Государственным Собранием Республики Мордовия 6 октября 2009 года Статья 1 Внести в статью 31-4 Закона Республики Мордовия от 12 ноября 2001 года N 42-З "О Правительстве Республики Мордовия" (Известия Мордовии, 13 ноября 2001 года, N 170; 5 июня 2003 года, N 82; 26 марта 2004 года, N 44-7; 7 октября 2004 года, N 152-17; 26 октября 2004 года, N 162; 31 марта 2005 года, N 44-5; 3 июня 2005 года, N 78-10; 27 апреля 2006 года, N 60-12; 22 декабря 2006 года, N 193; 4 мая 2007 года, N 65-13; 12 июля 2007 года, N 103-24; 30 января 2008 года, N 13; 27 марта 2008 года, N 44-9; 31 октября 2008 года, N 166-31; 12 марта 2009 года, N 34-6) изменение, изложив ее в следующей редакции: "Статья 31-4. Представление сведений о доходах, об имуществе и обязательствах имущественного характера 1. Гражданин, претендующий на замещение государственной должности члена Правительства, при назначении на должность, а член Правительства ежегодно, не позднее 30 апреля года, следующего за отчетным финансовым годом, обязаны представлять Главе Республики Мордовия сведения о являющихся объектами налогообложения доходах, ценных бумагах и ином имуществе, принадлежащем на праве собственности им, их супругам и несовершеннолетним детям, а также о своих обязательствах имущественного характера и об обязательствах имущественного характера супругов и несовершеннолетних детей (далее - сведения). 2. Не допускается использование сведений для установления либо определения платежеспособности лиц, указанных в пункте 1 настоящей статьи, и платежеспособности их супругов и несовершеннолетних детей, для сбора в прямой или косвенной форме пожертвований (взносов) в фонды общественных объединений либо религиозных или иных организаций, а также в пользу физических лиц. 3. Лица, виновные в разглашении сведений или в использовании этих сведений в целях, не предусмотренных федеральными законами, несут ответственность в соответствии с федеральным законодательством. 4. Положение о представлении сведений утверждается указом Главы Республики Мордовия.".

Характеристика - представление >>
на Татьяну Михайловну Корнееву, учителя биологии и географии МБОУ «Ширингушская СОШ» Корнеева Татьяна Михайловна родилась 05 мая 1954 года. Стаж работы в занимаемой должности составляет 20 лет. Имеет первую квалификационную категорию. Дата последней аттестации – 25 мая 2007 года, первая квалификационная категория, «Почетный работник общего образования Российской федерации». За время работы ею накоплен богатый дидактический наглядный материал, который позволяет разнообразить уроки, вызвать интерес к изучаемой теме, выработать устойчивое внимание. Татьяна Михайловна проводит лекции, практикумы, семинары, консультации и зачеты. Это позволяет создать рациональную взаимосвязанную систему изучения, обобщения и проверки знаний, умений и навыков учащихся. Умело сочетая современные методы и формы ведения урока, она проводит уроки живо, интересно, увлеченно, добивается того, чтобы все учащиеся занимались учебным трудом. Все моменты уроков глубоко продуманы, интересны, творчески разнообразны, поострены на научной основе, рассчитаны на глубокую работу мысли школьников, нацелены на всестороннее развитие личности. Школьники любят заниматься в кабинете биологии. Татьяна Михайловна ведет кружок «Юный натуралист» с учащимися 6-7 классов. Здесь дети глубже и шире познают предмет. Именно из этих учащихся вырастают участники биологических олимпиад, которые завоевывают призовые места. Учитель делает преподавание своего предмета богатым, привлекательным, глубоким, а способы деятельности учащихся разнообразными, творческими. Татьяна Михайловна очень любит свою профессию, любит детей, умеет находить с ними общий язык. В течение многих лет она щедро делится своим педагогическим и методическим опытом, возглавляет кустовое и школьное методическое объединение учителей биологии и химии Учителя с удовольствием посещают уроки Татьяны Михайловны, обращаются к ней за консультацией, советом. Татьяна Михайловна постоянно работает над повышением эффективности уровня знаний и воспитанием каждого ученика. Строит отношения с учащимися на основе доброжелательности, бесконфликтности, создает атмосферу взаимоуважения, доверия, в которой рождается инициатива, творческая идея. С 15 декабря 2007 г. по 30 января 2008 г. в ГБОУ ДПО (ПК) С «МРИО» прошла курсы повышения квалификации по проблеме «Обновление содержания образования по биологии и химии». Рекомендуется на заявленную квалификационную категорию.

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

Цель работы >>
Санкт-Петербургский государственный электротехнический университет. Кафедра корабельных систем управления Практическая работа «Разработка системы автоматического торможения судна с помощью руля» выполнил: Фалевский Н.В. группа: 3461 факультет: ЭА СПб 2008г. Цель работы: Получение практических навыков разработки алгоритмов систем автоматического управления движением судна и их функциональных схем. Знакомство с особенностями автоматического торможения судна при помощи руля. Основные положения: Время торможения судна рассчитывается по формуле: , где С2 - гидродинамический коэффициент; D - водоизмещение судна; v- скорость судна; N',n' - мощность и частота вращения гребного винта на режимах заднего хода соответственно; d - диаметр циркуляции. Путь, проходимый судном при торможении, определяется по формуле . Эффективность торможения в значительной мере определяется временем увеличения частоты вращения гребного винта на задний ход от нуля до номинала. Чем быстрее частота вращения на заднем ходу достигает максимального значения, тем больше оказывается средняя сила упора винта за время активного торможения и тем меньше будет тормозной путь. Задачи, решаемые системой при торможении: • Определение времени торможения судна. • Определение выбега судна при торможении. • Автоматическое определение возможности экстренного торможения с помощью руля в соответствии с условиями акватории моря. • Определение траектории движения судна при экстренном торможении с помощью руля. • Представление прогнозной и текущей информации о торможении судна. Алгоритм торможения: руль перекладывается на левый борт; при отклонении судна от первоначального курса на 20° двигатель переводится на средний ход вперед; при отклонении судна на 40-50° руль переводится на правый борт и дается малый ход; после возвращения судна на первоначальный курс руль снова переводится на левый борт и ход снижается до самого малого вперед; судно продолжает уклоняться вправо, затем постепенно возвращается на первоначальный курс, в этот момент руль перекладывается на правый борт и дается полный ход назад; после прекращения движения судна двигатель стопорится. Блок-схема алгоритма автоматического торможения судном: Функциональная схема системы автоматического торможения судна с помощью руля:

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

СХЕМАТИЧНОЕ ПРЕДСТАВЛЕНИЕ >>
СХЕМАТИЧНОЕ ПРЕДСТАВЛЕНИЕ Типового положения о сообщении отдельными категориями лиц о получении подарка в связи с их должностным положением или исполнением ими служебных (должностных) обязанностей, сдаче и оценке подарка, реализации (выкупе) и зачислении средств, вырученных от его реализации, утвержденного постановлением Правительства Российской Федерации от 09.01.2014 № 10 Аппарат Администрации Ненецкого автономного округа г. Нарьян-Мар, 2014 г. ТИПОВОЕ ПОЛОЖЕНИЕ О СООБЩЕНИИ ОТДЕЛЬНЫМИ КАТЕГОРИЯМИ ЛИЦ О ПОЛУЧЕНИИ ПОДАРКА В СВЯЗИ С ИХ ДОЛЖНОСТНЫМ ПОЛОЖЕНИЕМ ИЛИ ИСПОЛНЕНИЕМ ИМИ СЛУЖЕБНЫХ (ДОЛЖНОСТНЫХ) ОБЯЗАННОСТЕЙ, СДАЧЕ И ОЦЕНКЕ ПОДАРКА, РЕАЛИЗАЦИИ (ВЫКУПЕ) И ЗАЧИСЛЕНИИ СРЕДСТВ, ВЫРУЧЕННЫХ ОТ ЕГО РЕАЛИЗАЦИИ Получение подарка в связи с должностным положением или в связи с исполнением служебных (должностных) обязанностей" - получение лицом, замещающим государственную (муниципальную) должность, служащим, работником лично или через посредника от физических (юридических) лиц подарка в рамках осуществления деятельности, предусмотренной должностным регламентом (должностной инструкцией), а также в связи с исполнением служебных (должностных) обязанностей в случаях, установленных федеральными законами и иными нормативными актами, определяющими особенности правового положения и специфику профессиональной служебной и трудовой деятельности указанных лиц. Подарок полученный в связи с протокольными мероприятиями, служебными командировками и другими официальными мероприятиями" - подарок, полученный лицом, замещающим государственную (муниципальную) должность, служащим, работником от физических (юридических) лиц, которые осуществляют дарение исходя из должностного положения одаряемого или исполнения им служебных (должностных) обязанностей, за исключением канцелярских принадлежностей, которые в рамках протокольных мероприятий, служебных командировок и других официальных мероприятий предоставлены каждому участнику указанных мероприятий в целях исполнения им своих служебных (должностных) обязанностей, цветов и ценных подарков, которые вручены в качестве поощрения (награды); Лица, замещающие государственные (муниципальные) должности, служащие, работники не вправе получать не предусмотренные законодательством Российской Федерации подарки от физических (юридических) лиц в связи с их должностным положением или исполнением ими служебных (должностных) обязанностей.

Жилищный урок в 8 классе >>
Тема урока «Береги народное добро» Учитель технологии: Авдонина И.В. Цели: Дать детям представление о том, как экономить природное богатство, показать связь с повседневной жизнью; Развивать творческое и самостоятельное мышление учащихся при работе с дополнительной литературой; Воспитывать ответственность, умение вести научный диалог; Продолжить воспитание чувства товарищества, умение отстаивать свою точку зрения не только индивидуально, но и коллективно (при работе в группах) Оборудование: Рефераты (по теме). Таблицы «Газ», «Электричество», «Вода». Плакаты «Уходя, гасите свет!» «Вода – это жизнь! Это здоровье, это – чистота!». Выставка книг. Выставка рисунков. Сегодня у нас необычный урок, потому что он пройдет в форме «устного журнала», который называется «Береги народное добро», и у нас много героев этого журнала: МУДРЕЦ, ГОСТЬ ИЗ ПРОШЛОГО, СТАРШЕКЛАССНИКИ Страница первая. Учитель (У): Откроем дверь своего дома, выйдем и оглянемся по сторонам. Что же мы увидим? Дети (Д): мы увидим дома наших соседей. У: Как вы думаете, обрадуются ли наши соседи, которые живут рядом, шуму, громкой музыке? Д: НЕТ У: Нужно уважать своих соседей, жить с ними в дружбе, помогать (многие из них старенькие), нельзя мусорить. Вы должны быть хозяином не только в своем доме, а также в своем микрорайоне. Учитель показывает колбу с чистой водой. У: Что находится в колбе? Д: Чистая вода. У: Что такое вода? Давайте спросим у Мудреца. Мудрец: Вода – это жидкость без вкуса, запаха, цвета, которая входит в состав всех живых существ. У: Спасибо. Звучит плавная музыка. У: О чем нам эта музыка напомнила? Д: Нам эта музыка напомнила, что у нас открылась поэтическая страница. У: Да, у нас в гостях поэтическая страница. Послушайте внимательно и подумайте, о чем эти стихи? Прошел я мимо скал По улицам прошел Я счастье не искал Но я его нашел Нашел его в пути Когда, умерив пыл Я воду из горсти Живительную пил Ни умыться, ни напиться без воды Листику не распуститься Без воды Без воды прожить не могут Птица, Зверь и человек И поэтому всегда Всем везде нужна ВОДА У: О чем же эти стихи? Д: О воде.

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

Тема « Развитие парламентаризма в России» >>
Тема « Развитие парламентаризма в России» Цель урока – сформулировать представление учащихся об исторических этапах развития отечественного парламентаризма , его особенности. Задачи – активизировать гражданскую позицию учащихся через понимание роли парламентаризма в жизни общества и граждан ; -развивать навыки самостоятельной работы в поиске знаний; -формировать умение учащихся публичного выступления для формирования выводов. Тип урока – урок – исследование с элементами интерактивной работы учащихся Оборудование – литературы по теме урока; -Конституция РФ; -музыкальная запись Гимна РФ и Гимна Краснодарского края. Опережающее задание – создаются группы учащихся для выполнения заданий и подготовке презентации : 1 группа «Историки» 2группа «Политики» 3 группа «Краеведы» 4группа «Пресс- центр» Ход урока. –звучит Гимн Рф и Гимна Краснодарского края. -вступительное слово директора МАУО лицей пгт Афипского -представление гостя урока , депутата 2. –приветственное слово депутата , знакомство «Пресс- центра» с депутатом- интервью. 3. –представление итогов работы групп: «Историки» Цель группы – выделить исторические этапы становления парламентаризма в России , его особенности. 1.«Историк». Отдельные элементы народного представительства существовали в Киевской Руси, Великом Новгороде и Московском государстве. В XVI ‒ XVII вв. (в годы правления Ивана IV, Федора I, Бориса Годунова, в период Смуты, а также при первых Романовых: Михаиле и Алексее) в России формируются и действуют органы сословного представительства :Боярские думы, Земские соборы. К концу XVII столетия самодержавная власть окончательно берет верх, и институт Земских соборов ликвидируется.Социальный и политический режим, введенный Петром I, по форме и содержанию является отрицанием парламентаризма.В екатерининскую эпоху возникают институты представительства сословий: сначала дворянства, затем купечества.

Период с конца 60-х и до начала 80-х годов характеризуется бурным ростом числа различных языков программирования, сопровождавшим, как это ни парадоксально, крмзис программного обеспечения. Этот кризис особо остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок в хаосе трансляторов и учредит комитет, которому было предписано разработать один универсальный язык. На конкурсной основе комитет проработал сотни проектов и, когда стало ясно, что ни один из существующих языков не может их удовлетворить, принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен победитeль - группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА - прямой наследник языка Паскаль. - этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, правления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

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

Следует отметить, что многие языки, первоначально разработанные для больших и малых ЭВМ, в дальнейшем были приспособлены к персональным компьютерам. Хорошо вписались в «персоналки» не только Паскаль, Бейсик, Си, Лого, но и ЛИСП, ПРОЛОГ - языки искусственного интеллекта.

В течение многих лет программное обеспечение строилось на основе операциональных и процедурных языков, таких как Фортран, Бейсик, Паскаль, Ада, Си. И сегодня современные версии этих и им подобных языков (Модула, Форт и др.) доминируют при разработке прикладных программных средств. Однако по мере эволюции языков программирования получили широкое распространение и другие, принципиально иные, подходы к созданию программ.
Языки программирования высокого уровня.
Языки программирования - это формальные языки специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику.

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

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

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

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

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

Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками «высокого уровня». В настоящее время насчитывается несколько сотен таких языков, а если считать и их диалекты, то это число возрастет до нескольких тысяч. Языки программирования высокого уровня существенно отличаются от машинно-ориентированных (низкого уровня) языков. Во-первых, машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1. Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процессора. Как правило, этот набор состоит из сравнительно небольшого числа простейших операций, типа: переслать число в ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции. Команда содержит код и адреса ячеек, с содержимым которой выполняется закодированное действие.

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

• алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;

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

• конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;

• используется аппарат переменных и действия с ними;

• поддерживается широкий набор типов данных.

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

МЕТАЯЗЫКИ ОПИСАНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ.

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

Для строгого и точного описания синтаксиса языка программирования, как правило, используют специальные метаязыки (языки для описания других языков). Наиболее распространенными метаязыками являются металингвистические формулы Бэкуса - Наура (язык БНФ) и синтаксические диаграммы Вирта.

Язык БНФ (называемый также языком нормальных форм) представляет компактную форму в виде некоторых формул, похожих на математические. Для каждого понятия языка существует единственная метаформула (нормальная форма). Она состоит из левой и правой частей. В левой части указывается определяемое понятие, а в правой - задается множество допустимых конструкций языка, которые объединяются в это понятие. В формуле используют специальные метасимволы в виде угловых скобок, в которых заключено определяемое понятие (в левой части формулы) или ранее определенное понятие (в ее правой части), а разделение левой и правой частей указывается метасимволом «::=», смысл которого эквивалентен словам «по определению есть».

Например, метаформулы


<переменная>::=А]В

<выражение>::=<переменная>|<переменная>+<переменная>|<переменная><переменная>-<переменная>
означают, что в том (сугубо модельном) языке, на который эта метаформула распространяется, под термином <переменная> понимается любая из букв А или В, а под термином <выражение> - любая из следующих десяти записей: А; В; А+А; А+В; В+А; В+В; А-А; А-В: В-А; В-В Знак 1 следует читать «или».

Правая часть метаформулы может содержать правило построения допустимых последовательностей. Допускаются рекурсивные определения терминов и понятий, т.е. когда в правой части формулы участвует понятие, определяемое левой частью. Например, пусть необходимо ввести понятие <двоичный код>, под которым понимался любая непустая последовательность цифр 0 и 1. Тогда простое и компактное рекурсивное определение с помощью метаформул выглядит так:


<двоичная цифра>::= 0|1

<двоичный код>::=<двоичная цифра>|<двоичный код> <двоичная цифра>
Рекурсия здесь не мешает конструктивному построению понятия <двоичный код>, так как по принятым правилам при первом обращении к рекурсивно определяемому понятию следует ограничиться нерекурсивной частью формулы, т.е. под двоичным кодом понимать двоичную цифру - 0 или 1. Но при втором обращении к метаформуле, определяющей двоичный код, мы имеем варианты (конечно, неполные) понятия <двоичный код>, и можем применить рекурсию, которая даст нам следующие варианты этого понятия: 0 1 00 01 10 11, т.е. все возможные одно- и двухцифровые двоичные коды. Очевидно, что при следующих применениях рекурсии мы получим любой возможный двоичный код.

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


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

Синтаксическая диаграмма является графическим представлением значения ме-тапеременной метаязыка. Диаграмма состоит из основных символов или понятий языка.

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

Для сравнения с метаформулами приведем несколько примеров.

Синтаксическая диаграмма



<переменная>:: =



цсвивалентна метаформуле <переменная>::= А\В.

Еще примеры:



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

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



ГРАММАТИКА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ.

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

Алфавиты большинства языков программирования близки друг другу и основываются на буквах латинского алфавита, арабских цифрах и общепринятых спецсимволах, таких как знаки препинания, математических операций, сравнений и обозначений. Большинство популярных языков программирования в своем алфавите содержат следующие элементы:
<буква> : : = AaBbCcDdEeFf и т.д.

<цифра> ::=0123456789

<знак арифметической операции >::=*/+-

<разделитель> ::=.,;:()[]{}':=

<служебное слово> :: = begin end if then else for next и т.д.

<спецсимвол> :: = <знак арифметической операции> | <разделитель> |

<служебное слово>

<основной символ>::=<буква> | <цифра> | <спецсимвол>

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

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

Все операторы языка в тексте программы отделяются друг от друга явными или неявными разделителями, например:


Sl;S2;...;Sn

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

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

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

Важнейшие характеристики структурированной величины таковы: упорядоченность (да или нет), однородность (да или нет), способ доступа к элементам, фиксированность числа элементов (да или нет). Так, массив является упорядоченной однородной структурой с прямым доступом к элементам и фиксированным их количеством.

Всем программным объектам в языках даются индивидуальные имена. Имя программного объекта называют идентификатором (от слова «идентифицировать»). Чаще всего идентификатором является любая конечная последовательность букв к цифр, начинающаяся с буквы:


<идентификатор>::=<буква> | <идентификатор> | <буква>

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

Многим слово «идентификатор» не нравится, и в настоящее время чаще употребляют слово «имя», поскольку


<имя>::=<идентификатор>.
Программисты выбирают имена по своему усмотрению. Принципы выбора и назначения имен программным объектам естественны. Следует избегать мало выразительных обозначений, не гоняться за краткими именами. Имена должны быть понятны, наглядны, отражать суть обозначаемого объекта. Например,
Summa, Time, i, j, integral, init и т. п.
Некоторым идентификаторам заранее предписан определенный смысл и их называют стантартными, например, Sin - это имя известной математической функции.

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

В некоторых языках стандартные описания простых числовых и символьных данных опускают (описания по умолчанию), или в них задаются правила описания по имени объекта. Например, в Фортране переменные, имена которых начинаются с букв I, J, К, L, M, N, могут принимать целые значения (при отсутствии явного описания типа, которое возможно), т.е. определены как числовые данные целого типа. В Бейсике-MSX данные строкового типа присваиваются переменным, имена которых заканчиваются специальным символом $: A$, S1$.

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

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


Целый - Integer

Вещественный - Real

Логический - Boolean

Символьный - Char

Строковый - String

Массив - Array

Множество -Set

Файл - File

Запись - Record

Объект - Object
Переменные играют важнейшую роль в системах программирования. Понятие «переменная» в языках программирования отличается от общепринятого в математике. Переменная - это программный объект, способный принимать некоторое значение с помощью оператора присваивания. В ходе выполнения программы значения переменной могут неоднократно изменяться. Каждая переменная после ее описания отождествляется с некоторой ячейкой памяти, содержимое которой является ее значением. Синтаксис переменной, точнее, ее идентификатора, как правило, имеет вид:
<имя переменной>::=

——><буква>———>

><буква>———>

><цифра>——>

><спецсимвол>
Семантический смысл переменной заключается в хранении некоторого значения. соответствующего ее типу (например, переменная целого типа может принимать значение произвольного целого числа), а также в выполнении с ней операций пересылки в нее и извлечения из нее этого значения.

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

Выражения строятся из величин - постоянных и переменных, функций, скобок. знаков операций и т.д. Выражение имеет определенный тип, определяемый типом принимаемых в итоге его вычисления значений. Возможны выражения арифметические, принимающие числовые значения, логические, символьные, строковые и т.д. Выражение 5+7 является, несомненно, арифметическим, выражение А + В может иметь cамый разный смысл - в зависимости от того, что стоит за идентификаторами А и В.



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

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

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



Заголовок необходим для ссылок на модуль.

Интерфейс содержит объявления, включая процедуры и функции.

Раздел «реализация» содержит тела процедур и функций, перечисленных в интерфейсной части.

Раздел «инициализация» содержит операторы, необходимые для инициализации модуля.

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


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

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

Существует много версий языка Паскаль. Различия между ними порой весьма велики. Так, базовая версия Вирта имеет многократно меньшие возможности чем, скажем, версия Турбо-Паскаль 7.0 (первая, фактически - язык для обучения будущих программистов, а вторая - орудие профессиональных разработчиков прикладного программного обеспечения). Тем не менее, это версии одного языка, что, в частности, подтверждается их совместимостью «сверху вниз», т.е. любая программа, соответствующая «младшей» версии, соответствует и «старшей» (за исключением малозначащих синтаксических оговорок). Любая Паскаль-программа является текстовым файлом с собственным именем и с расширением .pas. Рассмотрим в качестве примера текст программы 1 решения квадратного уравнения. Паскаль-программа имеет вид последовательности символов латинских и русских букв, арабских цифр, знаков операции, скобок, знаков препинания и некоторых дополнительных символов. В ней можно выделить описания данных и операторы, описывающие действия, которые надо выполнить машине над этими данными.

Язык СИ И ПАСКАЛЬ.

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

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

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


Язык ПРОЛОГ.
Язык Пролог является представителем семейства языков логического программирования и в сравнении с традиционными языками программирования, предназначенными для записи алгоритмов, такими как Бейсик, Фортран, Паскаль, Си, обладает существенными особенностями:

• программа на Прологе не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики (т.е. это дескриптивный, описательный язык программирования);

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

• Пролог требует особого стиля мышления программиста, что затрудняет изучение его теми, кто уже привык к процедурному программированию, поэтому, так называемые, практические программисты не стремятся переходить на этот язык, что мешает росту популярности Пролога; однако во многих странах (Японии, Англии, Франции, Германии, Израиле и т.д.) расширяется практика применения Пролога в образовании как первого изучаемого языка программирования; переход к процедурным языкам типа Паскаля в этом случае трудностей не вызывает.

Все это позволяет отнести Пролог в существующем делении языков программирования на языки низкого и высокого уровня к языкам сверхвысокого уровня. В японском проекте создания в 90-х годах XX века компьютеров 5-го поколения (обладающих искусственным интеллектом) Пролог положен в основу аппаратной организации и разработки программного обеспечения. Нынешний Пролог, безусловно, не является окончательным вариантом языка программирования ЭВМ 5-го поколения и в ближайшие годы получит существенное развитие. По-видимому, он сыграет роль Бейсика дескриптивного программирования: его значение и возможности в популяризации и распространении идей логического программирования чрезвычайно велики.

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

Программирование на Прологе включает в себя следующие этапы:

1) объявление фактов об объектах и отношениях между ними;

2) определение правил взаимосвязи объектов и отношений между ними;

3) формулировка вопроса об объектах и отношениях между ними.



Имена - это последовательности букв и цифр, начинающиеся с буквы (строчной !). Системы программирования на Прологе для компьютеров допускают использование лишь латинских строчных и прописных букв: а .. z, A .. Z. Использование русских строчных и прописных букв: а .. я, А .. Я не допускается. При практической работе с интерпретатором рекомендуется, чтобы смысл имен оставался понятным, использовать в качестве имен запись русских слов латинскими буквами. В данном параграфе мы будем записывать все имена русскими буквами, чтобы сделать смысл программ наиболее понятным. При запуске этих программ в «англо-язычных» системах программирования нужно заменять русские буквы в именах на латинские.