
- •А.И.Бородина, л.И.Крошинская, о.Л.Сапун
- •1.Понятие и классификация языков программирования
- •Машинно-независимые языки
- •Вопросы для самоконтроля
- •2.Основные понятия языков программирования
- •Вопросы для самоконтроля
- •3.Основы программирования
- •Паскаль
- •Языки моделирования
- •Вопросы для самоконтроля
- •4.Процедурный и объектный подходы в программировании
- •Вопросы для самоконтроля
- •5.МакрОсредства
- •5.1. Понятие макроса
- •5.2. Технология создания макроса
- •Заключительный этап
- •5.3. Выполнение макроса
- •5.4. Ошибки в макросах
- •5.5. Изменение макросов
- •5.6. Защита макросов
- •Вопросы для самоконтроля
- •6.Общая характеристика языка программирования vba
- •Когда следует использовать макросы
- •Когда следует использовать vba
- •Основные особенности программирования в среде Microsoft Office
- •Программирование диалоговых форм
- •Программирование панелей инструментов и меню
- •Программирование офисного помощника
- •Вопросы для самоконтроля
- •7.Основы Программирования на vba
- •Классы и объекты в Microsoft Office
- •Объектная модель Excel
- •Ключевые объекты Excel
- •Порядок создания приложения в Excel
- •Вопросы для самоконтроля
- •8.Объектно-ориентированное программирование на языке java
- •Вопросы для самоконтроля
- •9.Краткий обзор языков программирования
- •Вопросы для самоконтроля
- •Литература
- •Глоссарий
- •В процессе отладки, работая в режиме протоколирования макроса, можно:
- •Для вызова макроса можно создать свою панель инструментов:
- •Тренинг умений1 Макросы в среде microsoft word
- •Тренинг 1
- •Рекомендации по выполнению
- •Годовой отчёт предприятия
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Тренинг 2
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Макросы в среде microsoft excel
- •Тренинг 1
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Тренинг 2
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Рекомендации по выполнению
- •Задания для самостоятельной работы
- •Задания для подготовки к зачетам и экзаменам Задание 1
- •Уведомление
- •Задание 2
- •Задание 3
- •Приказ № ________ от ________ 2005 года о приеме на работу
- •Задание 4
- •Курсовая работа
- •Задание 5
- •Экзаменационная ведомость
- •Задание 6
- •Выполненных работ к договору ________ от _______г.
- •Задание 7
- •По результатам переоценки
- •Задание 8
- •Заявление.
- •Задание 9
- •Адказны сакратар прыемнай камісіі___________________________________
- •Задание 10
- •Содержание
- •Учебное издание
- •Основы информатики и вычислительной техники
Языки моделирования
В широком смысле, моделирование может быть определено как процесс представления динамической системы моделью для получения информации об этой системе путем проведения экспериментов над ее моделью. Применение этого метода полезно в том случае, когда исследуемая система не поддается изучению аналитическими методами, а прямое экспериментирование с самой системой не целесообразно. Применяемые типы моделей и проводимые с ними эксперименты охватывают широкий диапазон задач – от изучения профилей крыла в аэродинамической трубе до изучения игр и, в частности, игр с участием людей.
В настоящее время широкое распространение получило моделирование на электронных вычислительных машинах, когда система объектов представляется в виде абстрактной модели, принимающей форму машинной программы. Цифровое моделирование в настоящее время широко используется для изучения широкого класса явлений: производственных систем, уличного движения, транспортных и административных систем, нервных сетей, социальных и экономических систем, систем связи и т.п.
Следует подчеркнуть, что моделирование является, по существу, разновидностью эксперимента, непосредственная цель которого – изучить поведение данной модели в данной среде. Конечной целью такого изучения может быть нахождение оптимальных либо осуществимых правил управления системой, а также определение ее конфигурации, установление основы для долгосрочного и каждодневного планирования. Применение языков моделирования позволяет:
предоставить в распоряжение исследователя, строящего модель системы, концептуальную основу для ясного и четкого мышления;
предоставить средства для описания динамических моделей;
облегчить процесс программирования (модели для имитации известны своей сложностью программирования даже при использовании алгоритмических языков высокого уровня).
Наибольшую известность среди таких языков получил язык Симула. Язык Симула (на русском языке описание языка Симула сделано в 1967 г.) базируется на Алголе-60, и основной определяющий материал в нем оформлен как дополнения и изменения к «Сообщению о языке «Алгол-60». То есть, язык Симула является почти правильным расширением языка Алгол-60, и чисто вычислительные возможности языка Симула не меньше, чем у Алгола-60.
Главная роль в этом языке моделирования отводится понятию параллельного оперирования с процессами в системном времени, а также понятию универсальной обработки списков с процессами в роли компонентов. Специальные средства предусмотрены для манипуляций с упорядоченными множествами процессов.
Имя языка программирования Симула (Simula) происходит от английских слов SIMUlation LAnguage, что в переводе и означает язык моделирования. В принципе этим именем называли два языка программирования: Симула-1 и Симула-67. Оба языка основываются на языке Алгол-60 и содержат его в качестве своего подмножества.
Симула-1 разработан в Норвежском компьютерном центре У.Далом и К.Нюгордом в 1964 г. Язык предназначен для моделирования систем с дискретными событиями, т.е. систем, представляющих последовательность сменяемых друг друга мгновенных событий. Термин «моделирование» У.Дал определил в 1966 г. как «процесс представления динамической системы моделью для получения информации об этой системе путем проведения экспериментов над моделью».
В 1967 – 1968 гг. авторами Симула-1 и присоединившимся к ним Б.Мюрхаугом был создан язык Симула-67, который по своей универсальности близок к таким языкам, как Алгол-68 и Ада. Средства, включающие в себя все возможности языка Симула-1, одновременно являются частью языка Симула-67.
Элементы языка суть абстракции, применяемые к широкому классу явлений. А применение языка заключается в том, чтобы отождествить компоненты данной системы с соответствующими языковыми единицами, описать их на языке принятых понятий и установить соотношения между этими компонентами.
Фундаментальным новым понятием языка Симула-67 является понятие «объект», которое эволюционизировало из понятия «процесс» языка Симула-1. Под объектом понимается экземпляр описания класса, который имеет свои собственные локальные данные и действия. В языке Симула-67 имеются элементарные операторы, которые позволяют организовать исполнение программы в виде последовательных активных фаз объектов. Это исполнение называют «квазипараллельным». Квазипараллельное исполнение программ позволяет отойти от обычной схемы решения (в виде последовательности шагов) задачи и представить ее в виде ряда взаимодействующих объектов, получивших название «сопрограмм».
Установление в языке таких понятий, как «класс», «подкласс» и других механизмов позволяет использовать Симула-67 в качестве основы для построения специализированных языков, ориентированных на различные предметные области. Одним из преимуществ языка, по сравнению с базовым предшественником, является наличие средств ввода-вывода.
Идеи, заложенные в языке Симула-67, оказали существенное влияние на языки программирования, появившиеся после него. В частности, понятие «класс» нашло свое воплощение в понятии «абстрактные типы данных», а понятие «объект» – в объектно-ориентированном программировании, которое утвердило свой статус в разработанном А.Кейем языке Смолток.
Характеризуя значение языка, У.Дал пишет: «Язык Симула-67 выходит за традиционные рамки языков программирования и может служить основой, на которой строятся различные математические теории – от геометрии и алгебры до химической технологии и сельского хозяйства [7].
Пролог
Рост мощностей вычислительных комплексов выдвинул в ряд основных языки сверх высокого уровня. Задачей таких языков является сведение процесса программирования к указанию того, что именно необходимо получить, не говоря о том, как это сделать. В этом смысле Алгол, Си, Pascal – это языки только высокого, а не сверх высокого уровня. К языкам сверхвысокого уровня относят язык Пролог.
Он (Prolog) создан во Франции в Марсельском университете в 1971 году Аленом Кольмеро (Colmerauer). Разрабатывая новый язык программирования для задач анализа и понимания естественных языков, А.Кольмеро решил использовать язык формальной логики предикатов первого порядка и метод автоматического доказательства теорем. Поэтому, в дальнейшем его стали расшифровывать как «ПРОграммирование в терминах ЛОГики» (PROLOG – PROgramming LOGiki).
Язык Пролог основан на концепциях логического программирования, предложенных профессором Лондонского университета Робертом Ковальским, и представляет собой среду, ориентированную на рассуждения, или дедукцию. Этот язык, базируясь на логическом программировании, является его первым применением. При логическом программировании осуществляется обработка символьной информации (решение проблем), в ходе которой процесс доказательства теорем интерпретируется как процесс вычисления или процесс выполнения программы.
До начала 80-х годов Пролог был уделом ученых, работавших в основном в области логического программирования, и мало знаком широкому кругу программистов и пользователей компьютеров. Начиная с 80-х годов, Пролог уже не сходит со страниц научных журналов по вычислительной технике и публикаций в области искусственного интеллекта. В 1981 году Япония известила мир о создании вычислительных машин пятого поколения, в которых язык Пролог выбран в качестве базового языка программирования.
Однако растущую популярность Пролога нельзя объяснить только выбором авторов японского проекта, здесь кроются более глубокие причины: Пролог можно рассматривать как универсальный язык сверхвысокого уровня с хорошо определенной и логически обоснованной семантикой. Он не только изменяет стиль программирования задач (в смысле Фон Неймана), но и укоренившуюся архитектуру вычислительных машин.
Программа на языке Пролог содержит две составные части: факты и правила. Факты представляют собой данные, с которыми оперирует программа. Совокупность фактов составляет базу данных Пролога, которая является реляционной базой. Основная операция, выполняемая над данными, – это операция сопоставления, называемая также операцией унификации, или согласия. Правила состоят из заголовка и подцелей. Выполнение программы, написанной на Прологе, начинается с запроса и состоит в доказательстве истинности некоторого логического утверждения в рамках заданной совокупности фактов и правил. Алгоритм этого доказательства (логического вывода) и определяет принципы исполнения программы, написанной на Прологе.
В отличие от программ, составленных на языках процедурного типа (Бейсик, Паскаль и др.), предписывающих последовательность шагов, которые должен выполнять компьютер для решения задач, в Прологе программист описывает факты, правила, отношения между ними, а также запросы по проблеме.
Первый интерпретатор Пролога, написанный на Фортране, разработан А.Кольмеро и Ф.Русселем в 1973 году. Затем появился компилятор Пролога, созданный Д.Уорреном и Ф.Перейра из Эдинбургского университета для машины DEC-10. Впоследствии наибольшую популярность получили версии Пролога, реализованные на персональных компьютерах.
Первая аппаратная реализация языка относится к 1984 году, когда Д.Уорреном был разработан конвейерный процессор языка Пролог-SRI.
Затем, в рамках реализации японского проекта машин пятого поколения, в 1985 году появился действующий макет машины PSI (Personal Sequential Inference Mashine – персональная ЭВМ последовательного вывода), а в 1986 году опытный образец машины CHI – параллельная быстродействующая машина вывода.
Впервые в нашей стране язык Пролог был реализован в конце 70-х годов сотрудниками Института кибернетики им. В.М.Глушкова АН УССР и Рижского политехнического института для ЕС ЭВМ.
Пролог нашел многочисленные и разнообразные применения в символьной математике, планировании, автоматизированном проектировании, построении компиляторов, базах данных, обработке текстов на естественных языках, машинной индукции, отладке.
Но самое характерное применение Пролога – это экспертные системы. Он вносит своеобразный вклад в их создание, особенно для механизма логического вывода. Этот язык можно использовать для применения любой модели, его можно рассматривать и как воплощение модели представления знаний, и как язык представления знаний. Определение, данное Р.Ковальским: Алгоритм=Логика+Управление, подтверждает это утверждение и помогает прояснить термин «управление» в экспертных системах. В этом определении Логика показывает, что является проблемой (областью), а Управление – как эффективно использовать логику для решения проблем.
Пролог сыграл одну из главных ролей в развитии информатики, и в частности, он помогает структурировать мышление.
В свое время велись работы над неалгоритмическими языками программирования, так называемыми эвристическими языками, в основе которых лежат работы алгоритмической неразрешимости определенных процессов. В поисках наиболее универсального языка, который бы годился для машинного перевода, боливийский математик Иван Гусман де Рохас выяснил, что наиболее подходящим является не какой-либо искусственный, специально созданный для ЭВМ язык, а язык индейцев Перу в Боливии – аймара. Еще первый составитель словаря этого языка священник-иезуит из Италии в 1610 году отмечал, что язык аймара удивительно логичен, в нем почти нет исключений из его довольно простых грамматических правил, в частности, в нем не существует неправильных глаголов. Гусман де Рохас, работа которого высоко оценена многими специалистами, создал программу, при помощи которой простой в синтаксическом отношении язык аймара выражен сравнительно небольшим рядом математических символов. Самое парадоксальное заключается в том, что язык народа, который почти поголовно неграмотен, может быть через несколько лет принят к использованию в самых современных компьютерах, существующих в мире.