элементы форматирования,языки программирования.
Свойства, основные действия и типы файлов, используемые редактором WordPad. Технология внедрения и связывания объектов OLE. Классификация и обзор языков программирования. Особенности, основы объектно-ориентированного и функционального программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 10.11.2008 |
Размер файла | 39,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Вариант 7.
Вопросы 9, 19.
9.Элементы форматирования текста. Шрифты. Вставка объектов в текстовый документ, Технологии внедрения и связывания объектов (OLE - Object Linking and Embedding разработчик Microsoft). На примере WordPad.
Программа WordPad.
Текстовый редактор WordPad предоставляет возможности создания несложных форматированных текстов и является упрощенным вариантом профессионального редактора Word. Пользовательский интерфейс WordPad является стандартным для Windows-приложений и включает в себя строку меню, стандартную панель инструментов, панель инструментов для форматирования текста, размерную линейку и строку состояния.
Важнейшие из команд редактора продублированы пиктограммами инструментальных панелей.
WordPad допускает несложное форматирования абзацев, а также использование различных шрифтов и начертаний, позволяет задавать параметры страниц, форматировать текст, выравнивать абзацы, копировать и вставлять текст, осуществлять его поиск и др.
С помощью WordPad можно выполнять следующие действия:
устанавливать макет страницы документа и такие его параметры, как размер бумаги и поля страницы;
вводить, править и удалять текст наряду с его копированием или перемещением с одного места на другое;
изменять параметры шрифта (гарнитуру, размер, начертание, цвет), устанавливать требуемые параметры абзаца (выключку, интерлиньяж);
отыскивать символы, слова, предложения в предварительно введенном тексте и заменять их новыми;
создавать комбинированные документы, содержащие текст, графику, числовые данные электронных таблиц и диаграмм и даже звуковую информацию.
Запуск программы WordPad осуществляется из Главного меню по команде: Программы, Стандартные, редактор Wordpad или предварительно созданным на Рабочем столе ярлыком.
Вставка объектов в текстовый документ.
Объект - это обычно фрагмент некоторого документа, поэтому объектом может быть все, что угодно: файл, текст, диапазон ячеек из электронной таблицы, векторная графика, отсканированная фотография, видеоклип и т.д.
Для вставки объекта из другого документа можно воспользоваться буфером обмена.
Для внедрения объектов можно применить также команду Вставка > Объект. Однако способ использования данной команды зависит от того, существует ли уже объект, который хотим внедрить. Если объект пока не существует, то выбираем команду Вставка > Объект, щелкаем на вкладке «Создание». Выбираем из списка «Тип объекта» объект, который необходимо создать. Если необходимо, чтобы положение вставляемого объекта в документе определялось специальным образом, то устанавливаем флажок в поле «Поверх текста», если необходимо, чтобы объект вел себя так же, как и другие символы, снимите этот флажок. Щелкните на кнопке «ОК». В результате будет запущена программа, в которой можно создать объект выбранного типа. После создания нового объекта, щелкаем в другом месте редактируемого документа (подальше от внедренного объекта), чтобы вернуться в WordPad.
Если объект уже существует, то щелкаем на вкладке «Создание из файла». В поле имя файла вводим полный путь к файлу или находим нужный файл в диалоговом окне «Обзор». Щелкните на кнопке «ОК».
Если понадобится отредактировать вставленный объект, то щелкаем на нем дважды. Для возвращения к редактированию текущего документа щелкаем вне объекта.
Форматирование текста. Определение вида и начертания шрифта. Выбор шрифтов.
Одна из первых характеристик, которую пользователь обычно и чаще всего меняет в тексте -- тип и размер шрифта. Например, хотя шрифты группы Times прекрасно выглядят на экране, они могут не очень хорошо получаться при печати и определенно не рекомендуются для документов, предназначенных для электронного считывания или сканирования. Самый простой способ поменять шрифт -- это обратиться к панели форматирования. Здесь имеется выпадающий список шрифтов. Когда он свернут, в его окне виден текущий тип шрифта. Щелкнув на окне, мы получим список шрифтов, доступных в системе.
Размер шрифта измеряется в точках. Этот термин пришел из индустрии принтеров. В одном дюйме 72 пункта, поэтому в области печатной страницы высотой 1 мм поместится, например, 6 строк текста размером 12 точек.
Следовательно, чем больше размер шрифта в точках, тем выше (но не обязательно шире) будут литеры текста.
Одним из важных моментов при выборе шрифта является вопрос, будет ли распространяться электронная версия документа. Если документ предназначен для немедленной печати на месте и распространения печатных копий, то выбор шрифта не будет иметь значения. Однако, если распространяться будет электронная версия документа в виде файла, то следует стараться пользоваться системными шрифтами Windows, избегая оригинальных шрифтов -- адресаты могут не иметь таких шрифтов.
По умолчанию все операции изменения шрифта применяются к выделенному фрагменту текста или, при отсутствии выделения, к слову, на котором находится курсор. Для простейших операций по изменению вида и начертания шрифта используют панель инструментов "Форматирование". В раскрывающемся списке ("Шрифт") выбирают тип (гарнитуру) шрифта, в списке ("Размер шрифта") определяют размер символов, а кнопками ("Полужирный", "Курсив" и "Подчеркнутый") изменяют их начертание.
Эффекты, недоступные с панели "Форматирование", можно создать в диалоговом окне "Шрифт", которое открывают командой Формат > Шрифт или пунктом Шрифт в контекстном меню.
Элементы управления вкладки "Шрифт" соответствуют элементам панели инструментов "Форматирование". Раскрывающийся список "Подчеркивание" предоставляет нестандартные варианты подчеркивания текста. Цвет отображения текста изменяют в раскрывающемся списке "Цвет". Нестандартные эффекты оформления текста создают установкой флажков на панели "Эффекты".
Элементы управления вкладки "Интервал" позволяют изменить интервал между символами. Средства вкладки "Анимация" используют для динамического оформления текста, но только в электронных документах.
Форматирование абзацев
Основной смысловой единицей текста обычно является абзац. Поэтому команды выравнивания и операции форматирования предназначены для изменения вида отдельных абзацев. Абзацем считается любой фрагмент документа заключенный между двумя соседними символами абзаца.
Выравнивание абзаца - это расположение его текста в соответствии с заданными правилами. Выравнивание задают щелчком на соответствующей кнопке на панели инструментов "Форматирование". Из четырех кнопок ("По левому краю", "По центру", "По правому краю", "По ширине") может быть включена только одна.
Для полного форматирования абзаца используют диалоговое окно "Абзац", которое открывают командой Формат > Абзац или с помощью пункта Абзац в контекстном меню, вызываемом щелчком правой кнопки мыши в рабочем окне.
Панель "Отступ" определяет правую и левую границу абзаца относительно правой и левой границ страницы. Список "Первая строка" позволяет задать наличие и размеры "красной строки" (абзацного отступа). Панель "Интервал" позволяет задать промежутки между абзацами, а также между строками данного абзаца.
Список
Упорядоченную информацию часто удобно представлять в виде списков. WordPad поддерживает маркированные списки, в которых каждый пункт помечается одинаковым маркером.
Для преобразования существующего текста в маркированный список, надо выделить этот текст и щелкнуть на кнопке ("Маркеры") на панели инструментов. При вводе элементов списка следующий абзац автоматически начинается с маркера. Создание списка заканчивают двукратным нажатием на клавишу <Enter> в конце абзаца.
Чтобы изменить или настроить формат списка, следует дать команду Формат > Список или выбрать в контекстном меню пункт Список. При этом открывается диалоговое окно "Список".
Вкладка "Маркированный" позволяет выбрать вид маркера списка. Если стандартное оформление списка не подходит, можно щелкнуть на кнопке "Изменить" и задать как вид, так и положение маркеров, а также пунктов списка.
Табуляция
Линейку можно использовать для задания позиций табуляции. Позиции табуляции применяют, когда строка состоит из нескольких полей, например в несложной таблице. По умолчанию позиции табуляции располагаются через каждые полдюйма и отмечаются на линейке короткими вертикальными засечками.
Символ, обозначающий позицию табуляции, располагается на линейке слева. Он имеет вид "уголка". Щелкнув на нем, можно изменить вид символа табуляции, и, соответственно, метод отображения текста (с выравниванием относительно этой позиции табуляции по левому, правому краю, по центру или по символу).
Выбранный символ табуляции устанавливают щелчком на линейке. В дальнейшем его положение можно изменять перетаскиванием. Для удаления символа табуляции его перетаскивают за пределы линейки. После установки позиции табуляции вручную все позиции табуляции, заданные по умолчанию и расположенные до нее удаляются.
Все изменения, связанные с табуляциями, можно вносить также в диалоговом окне "Табуляция", вызываемом командой Формат > Табуляция.
Типы файлов, используемые редактором WordPad.
WordPad может работать с файлами четырех типов:
Текст (text). Этот тип файла содержит только печатаемые буквенно-числовые символы, включая знаки и символы пунктуации. Такие файлы называются также ASCII-файлами. Они не содержат никакого абзацного или символьного форматирования. WordPad может читать и сохранять файлы в этом формате.
Файл Word (Word). Этот тип файлов используется для хранения документов в формате редактора Word. WordPad может открывать документы, созданные с использованием любой из версий Word для Windows, a сохранять - только в формате Word 6. Однако при импортировании в WordPad файлов, созданных редактором Word для Windows, возможна потеря части форматирования, например расположения текста в несколько колонок. Теряются также шаблоны документов.
Файл Write (Write). Write - текстовый редактор - входил в состав Windows 3.х. Можно открыть в WordPad документы, которые были созданы этим редактором, но сохранить файлы в формате Write нельзя.
Файл RTF (Rich text Format). Формат RTF является стандартным форматом для сохранения текстовых документов с символьным и абзацным форматированием. Формат RTF можно использовать для передачи файлов между различными текстовыми редакторами. Вы можете, например, создать документ, используя программу Word Perfect, и сохранить его как файл типа RTF, затем открыть его и работать с ним, используя WordPad. WordPad может читать и сохранять документы в формате RTF.
Подобно большинству прикладных программ для Windows WordPad поддерживает работу с буфером обмена. Можно скопировать в WordPad текст и графику из других прикладных программ. Можно также выбрать команды "Вставка" (Insert), "Объект" (Object) для вставки объектов типа OLE, таких как электронные таблицы, в документ WordPad.
Технология внедрения и связывания объектов OLE. Представление о технологии OLE
Появление технологии OLE обусловлено необходимостью формирования документов из данных разного типа. Основное достоинство технологии OLE , которая была разработана фирмой Microsoft , состоит в том, что она не имеет ограничений и позволяет организовать передачу данных практически между любыми приложениями. Технология OLE определяется правилами (протоколом) взаимодействия Windows - приложений. Базовый вариант технологии OLE был впоследствии расширен до версии OLE 2.0, которая в настоящее время является наиболее употребительной.
Примечание. Аббревиатура OLE означает Object Linking and Embedding , что переводится как связывание и внедрение объекта.
Технологию OLE полностью поддерживают не все Windows -приложения, а только те, которые предназначены для разработки составных документов. Одни приложения можно использовать только в качестве приемника, другие - только в качестве источника, но есть приложения, которые могут выступать и в той, и в другой роли.
Например, текстовый редактор WordPad полностью обеспечивает работу по технологии OLE , так как он предназначен для создания текстовых документов, в которых могут быть рисунки, звуки, таблицы, видеоклипы и др.
Технология OLE обеспечивает пользователю возможность редактировать вставленный в составной документ объект средствами, которые предоставляет приложение - источник. OLE -объект всегда сохраняет связь с приложением - источником (эта связь активизируется двойным щелчком), но может и не быть связанным с документом - источником.
Технология OLE предусматривает два варианта обмена данными:
- внедрение объекта, при котором в документ-приемник вставляется сам объект. Для отображения на экране или распечатки документа OLE -объект не использует средств приложения - источника. Например, при переносе составного документа на другой компьютер OLE -объект будет отображаться нормально, даже если на этом компьютере нет соответствующего приложения-источника. Однако OLE -объект сохраняет связь с приложением-источником, которая позволяет обеспечить редактирование OLE -объекта внутри составного документа;
- связывание объекта, при котором в документ-приемник помещается не сам объект, а лишь ссылка на документ - источник. В этом случае OLE -объект будет связан не с приложением - источником, а с документом - источником, в котором находится этот объект. Эта связь позволяет изменить представление объекта в документе - приемнике, как только этот объект будет изменен в документе - источнике.
Внедрение объекта
При внедрении объекта в документ-приемник вставляется сам объект. Если этот объект получен копированием данных из некоторого документа-источника, то данные сохраняются на прежнем месте, а в документ-приемник вставляется их копия, причем связь между объектом и его копией не устанавливается. При этом наряду с командой Вставить можно использовать команду Специальная вставка.
Внедрить объект в документ можно несколькими способами:
- из открытого документа (с помощью команд Вставить и Специальная вставка);
- из файла (специальной командой вставки файла или импорта файла);
- непосредственным вызовом OLE -сервера (командой Вставить объект).
Внедрение объекта из открытого документа выполняется следующим образом:
- в приложении-источнике выделяется объект, который будет внедряться;
- выделенный объект копируется в буфер обмена с помощью команды Копировать или Вырезать;
- осуществляется переход в приложение-приемник, где формируется составной документ, и указатель мыши устанавливается в место вставки объекта;
- вставляется объект с помощью команды «вставить» или «специальная вставка»;
- при использовании команды «специальная вставка» на экране появляется диалоговое окно «Специальная вставка» , в котором необходимо выбрать способ вставки данных как объекта, отметить кнопку выбора <Вставить> и нажать кнопку <ОК>. Данные можно вставлять в составной документ также в виде значка, для чего в диалоговом окне «Специальная вставка» следует отметить соответствующий переключатель.
Для других приложений технология аналогична, отличие состоит в конкретных названиях команд.
В составной документ новый объект внедряется следующим образом:
- в составном документе указывается место внедрения;
- вводится команда Вставить объект:
- в диалоговом окне «Вставка объекта» выбирается тип внедряемого объекта, т.е. приложение-источник. Флажок <Связь с файлом> устанавливать не следует, для того чтобы объект оказался внедренным;
- нажимается кнопка <ОК>;
- в приложении-источнике создается новый объект, который после выхода из приложения-источника будет вставлен в документ - приемник.
Объект, внедренный по технологии OLE , можно редактировать средствами приложения - источника следующими способами:
выбрать соответствующую команду в управляющем или контекстном меню;
дважды щелкнуть левой кнопкой мыши на внедренном объекте.
Отметим, что если один и тот же объект внедряется в несколько документов, то в каждом документе будет храниться своя копия объекта. В этом случае хранение объекта и всех его копий требует дополнительного расхода внешней памяти. Кроме того, не сохраняется никакой связи между копиями объекта, изменение одной из копий никак не влияет на остальные копии объекта.
Связывание объекта
При просмотре или распечатке составного документа связанный объект ничем не отличается от внедренного. Различие проявляется лишь при редактировании объекта. Связанный объект всегда находится в документе - источнике, а в составном документе - приемнике хранится ссылка (указание местонахождения) на файл с этим документом.
Таким образом, при связывании объекта в документах - приемниках указываются ссылки на объект, а сам объект хранится в единственном экземпляре в документе - источнике. Любые изменения объекта, проводимые в документе - источнике, обязательно отражаются на представлении объекта в составных документах. При открытии составного документа необходимо позаботиться о том, чтобы присутствовали все файлы, в которых хранятся связанные с ним объекты, причем в точности в тех папках, в которых они находились при связывании.
Технологией связывания объекта целесообразно пользоваться в следующих случаях:
объект вставляется в несколько разных документов, и необходимо, чтобы любые изменения этого объекта отражались в этих документах;
объект занимает слишком много места и затрудняет работу с составным документом;
при недостатке внешней памяти.
Создание связанных объектов в составном документе возможно двумя способами:
из открытого документа. При этом в составной документ можно включить лишь некоторый фрагмент из документа - источника;
из файла. При этом документ - источник полностью включается в составной документ.
Для связывания объекта необходимо, чтобы объект был сохранен в файле как документ или его часть. Связывание объекта из открытого документа выполняется следующим образом:
в приложении - источнике выделяется объект, который будет связываться;
выделенный объект переносится в буфер обмена с помощью команды Копировать;
осуществляется переход в приложение-приемник, в котором формируется составной документ, и указатель мыши устанавливается в место вставки объекта;
вводится команда Специальная вставка;
в диалоговом окне «Специальная вставка» отмечается кнопка выбора <Связать>, указывается способ вставки объекта (в обычном виде или в виде значка) и нажимается кнопка <ОК>.
Связывание с файлом (на примере текстового процессора Word) состоит в следующем:
в составном документе указывается место вставки;
вводится команда Файл из меню Вставка;
в диалоговом окне «Вставка файла» устанавливаются флажок <Связь с файлом> и другие необходимые параметры, затем выбирается документ, в котором хранится объект;
нажимается кнопка <ОК>.
Изменить связанный объект можно, отредактировав документ - источник, в котором он размещен. Это можно осуществить одним из двух способов. Первый способ - открыть документ-источник непосредственно в среде приложения-источника, второй способ - открыть документ-источник из составного документа, где находится связанный объект. Открытие можно осуществить либо с помощью контекстного меню, либо двойным щелчком кнопки мыши на этом объекте.
Поскольку связанные объекты хранятся отдельно от составного документа в своих документах-источниках, важно иметь сведения о связях составного документа. Просмотреть, обновить и изменить связи составного документа можно в диалоговом окне «Связи» (« Links »), которое, например, в приложении WordPad вызывается командой Связи из меню Правка .Это диалоговое окно содержит информацию о связях данного объекта:
спецификацию (путь) файла;
тип или формат объекта;
режим обновления объекта в составном документе - автоматическое или ручное (по запросу).
При автоматическом обновлении связанный объект в составном документе изменяется сразу, как только он изменился в документе-источнике. При ручном обновлении необходимо явное указание со стороны пользователя.
19.Классификация и обзор языков программирования. Процедурное программирование Функциональное программирование Логическое программирование. Объектно - ориентированное программирование (ООП).
Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов - языков программирования. Смысл появления такого языка - оснащенный набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм.
Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко.
Связь между языком, на котором мы думаем/ программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть, по крайней мере, двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств.
Может показаться удивительным, но конкретный компьютер способен работать с программами, написанными на его родном машинном языке. Существует почти столько же разных машинных языков, сколько и компьютеров, но все они суть разновидности одной идей простые операции производятся со скоростью молнии на двоичных числах.
Персональные компьютеры IBM используют машинный язык микропроцессоров семейства 8086, т.к. их аппаратная часть основывается именно на данных микропроцессорах.
Можно писать программы непосредственно на машинном языке, хотя это и сложно. На заре компьютеризации (в начале 1950 - х г.г.), машинный язык был единственным языком, большего человек к тому времени не придумал. Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (т.е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и, в конечном итоге, заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.
1. Интерпретаторы
Одно, часто упоминаемое преимущество интерпретаторной реализации состоит в том, что она допускает "непосредственный режим". Непосредственный режим позволяет вам задавать компьютеру задачу вроде PRINT 3.14159*3/2.1 и возвращает вам ответ, как только вы нажмете клавишу ENTER (это позволяет использовать компьютер стоимостью 3000 долларов в качестве калькулятора стоимостью 10 долларов). Кроме того, интерпретаторы имеют специальные атрибуты, которые упрощают отладку. Можно, например, прервать обработку интерпретаторной программы, отобразить содержимое определенных переменных, бегло просмотреть программу, а затем продолжить исполнение.
Больше всего программистам нравится в интерпретаторах возможность получения быстрого ответа. Здесь нет необходимости в компилировании, так как интерпретатор всегда готов для вмешательства в вашу программу. Введите RUN - и результат вашего самого последнего изменения оказывается на экране.
2. Компиляторы
Компилятор - это транслятор текста на машинный язык, который считывает исходный текст. Он оценивает его в соответствии с синтаксической конструкцией языка и переводит на машинный язык. Другими словами, компилятор не исполняет программы, он их строит. Интерпретаторы невозможно отделить от программ, которые ими прогоняются, компиляторы делают свое дело и уходят со сцены. При работе с компилирующим языком, таким как Турбо-Бейсик, вы придете к необходимости мыслить о ваших программах в признаках двух главных фаз их жизни: периода компилирования и периода прогона. Большинство программ будут прогоняться в четыре - десять раз быстрее их интерпретаторных эквивалентов.
Классификация языков программирования
Машинно - ориентированные языки
Машинно - ориентированные языки - это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно - ориентированные языки позволяют использовать все возможности и особенности Машинно - зависимых языков:
высокое качество создаваемых программ (компактность и скорость выполнения);
возможность использования конкретных аппаратных ресурсов;
предсказуемость объектного кода и заказов памяти;
для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
низкая скорость программирования;
невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.
Машинный язык
Отдельный компьютер имеет свой определенный Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.
В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно - аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.
Языки Символического Кодирования
Языки Символического Кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
Использование символических адресов - первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.
Автокоды
Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.
В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования , доступный программисту. Макрокоманды переводятся в машинные команды двумя путями - расстановкой и генерированием. В постановочной системе содержатся “остовы” - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в “остов” программы, превращая её в реальную машинную программу.
В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию.
Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода.
Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. Более полная информация о языке Ассемблера см. ниже.
Макрос
Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены).
В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов - выдача выходного текста.
Макрос одинаково может работать, как с программами, так и с данными.
Машинно - независимые языки
Машинно - независимые языки - это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС.
Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ.
Т.о., командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
Проблемно - ориентированные языки
С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно - ориентированные языки. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме.
Проблемных языков очень много, например:
Фортран, Алгол - языки, созданные для решения математических задач;
Simula, Слэнг - для моделирования;
Лисп, Снобол - для работы со списочными структурами.
Универсальные языки
Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/ 1. Второй по мощности универсальный язык называется Алгол - 68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл / 1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.
Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.
Диалоговые языки
Появление новых технических возможностей поставило задачу перед системными программистами - создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.
Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.
Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик.
Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.
Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены, прежде чем переходить к какому - либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок - схемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
Одним из важнейших признаков классификации языков программирования является принадлежность их к одному из стилей, основными из которых являются следующие: процедурный, функциональный, логический и объектно - ориентированный.
Процедурное программирование
Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Процедурные языки характеризуются следующими особенностями:
необходимостью явного управления памятью, в частности, описанием переменных;
малой пригодностью для символьных вычислений;
отсутствием строгой математической основы;
высокой эффективностью реализации на традиционных ЭВМ.
Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. Дадим краткую характеристику реализованным на ПЭВМ языкам программирования в порядке возрастания их уровня.
Двоичный язык является непосредственно машинным языком. В настоящее время такие языки программистами практически не применяются.
Язык Ассемблера -- это язык, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, присваивать удобные имена ячейкам и областям памяти, а также задавать наиболее удобные схемы адресации.
Язык Макроассемблера представляет средства определения и использования новых, более мощных команд как последовательности базовых инструкций, что несколько повышает его уровень.
Языки Ассемблера и Макроассемблера применяются системными программистами - профессионалами с целью использования всех возможностей оборудования ЭВМ и получения эффективной по времени выполнения и по требуемому объему памяти программы. На этих языках обычно разрабатываются относительно небольшие программы, входящие в состав системного программного обеспечения: драйверы, утилиты и другие.
Язык программирования С (Си) первоначально был разработан для реализации операционной системы UNIX в начале 70 - х годов. В последующем приобрел высокую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован на большинстве ЭВМ.
В С сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и структур данных с возможностями доступа к аппаратным средствам ЭВМ на уровне, который обычно ассоциируется с языком низкого уровня типа языка Ассемблера. Язык С имеет синтаксис, обеспечивающий краткость программы, а компиляторы способны генерировать эффективный объектный код.
Одна из наиболее существенных особенностей С состоит в нивелировании различий между выражениями и операторами, что приближает его к функциональным языкам.
Ваsic(Бэйсик) (Beginners All - purpose Symbolic Instruction Code) -- многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.
Согласно концепциям, заложенным в Basic, этот язык в смысле строгости и стройности является антиподом языка Pascal. В частности, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа.
Basic широко распространен на ЭВМ различных типов и очень популярен в среде программистов, особенно начинающих. Существует множество диалектов этого языка, мало совместимых между собой. Basic активно поглощает многие концепции и новинки из других языков. Поэтому он достаточно динамичен, и нельзя однозначно определить его уровень.
Pascal (Паскаль) является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился настолько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера.
В языке Pascal реализован ряд концепций, рассматриваемых как основа «дисциплинированного» программирования и заимствованных впоследствии разработчиками многих языков. Одним из существенных признаков языка Pascal является последовательная и достаточно полная реализация концепции структурного программирования. Причем это осуществляется не только путем упорядочивания связей между фрагментами программы по управлению, но и за счет структуризации данных. Кроме того, в языке реализована концепция определения новых типов данных на основе уже имеющихся. Этот язык, в отличие от языка С, является строго типизированным. Pascal характеризуется:
высоким уровнем;
широкими возможностями;
стройностью, простотой и краткостью;
строгостью, способствующей написанию эффективных и надежных программ;
высокой эффективностью реализации на ЭВМ.
Объектно - ориентированное программирование
Прототипом объектно - ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA - 67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.
В основе объектно - ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой: «объект - данные + процедуры». Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами. Объединение данных и процедур в одном объекте называется инкапсуляцией и присуще объектно-ориентированному программированию.
Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса.
Программирование рассматриваемого стиля заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними. При создании новых объектов свойства объектов могут добавляться или наследоваться от объектов-предков. В процессе работы с объектами допускается полиморфизм -- возможность использования методов с одинаковыми именами для обработки данных разных типов.
К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
Язык C++ был разработан в начале 80 - х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL, Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее -- C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.
В 1990 году сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно - ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка, получила название Java. Первый броузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтоном и получил название HotJava. С января 1995 года Java получает распространение в Internet.
Согласно официальному определению авторов, Java является простым объектно - ориентированным и архитектурно - нейтральным языком интерпретирующего типа, обеспечивающим надежность, безопасность и переносимость, обладающим высокой производительностью в сочетании с многопоточностью и динамичностью.
Принципиальной разницей между Java и C++ является то, что первый из них является интерпретируемым, а второй - компилируемым. Синтаксис языков практически полностью совпадает.
С точки зрения возможностей собственно объектно - ориентированных средств язык Java обладает рядом преимуществ перед языком C++. Так, язык Java демонстрирует более гибкую и мощную систему инкапсуляции информации. Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что улучшает надежность и понимаемость кода. Язык же C++ обладает сложной, неадекватной и трудной для понимания системой наследования. Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, однако, синтаксическая избыточность C++ заставляет и здесь отдать предпочтение языку Java.
В силу своей конструктивности идеи объектно - ориентированного программирования используются во многих универсальных процедурных языках. Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации Borland International) версии 5.5 входит специальная библиотека объектно - ориентированного программирования Turbo Vision.
В последнее время многие программы, в особенности объектно - ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых «строительных блоков», позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций. К числу объектно-ориентированных систем визуального программирования относятся; Visual Basic, Delphi, C++Builder и Visual C++.
Логическое и функциональное программирование.
Целью логического и функционального программирования является вывод решений, и они тесно связаны с задачами, решаемыми в искусственном интеллекте и экспертных системах (ЭС). На начальном этапе развития систем искусственного интеллекта (СИИ) и ЭС даже выделился целый класс специализированных языков программирования: языки логического и функционального программирования.
Процедурная программа состоит из последовательности операторов и предложений, управляющих последовательностью их выполнения. В основе такого программирования лежат взятие значения какой-то переменной, совершение над ним действия и сохранение нового значения с помощью оператора присваивания, и так до тех пор, пока не будет получено желаемое окончательное значение.
Функциональная программа состоит из совокупности определений функций. Функции, в свою очередь, представляют собой вызовы других функций и предложений, управляющих последовательностью вызовов. Каждый вызов возвращает некоторое значение и вызвавшую ее функцию, вычисление которой после этого продолжается. Этот процесс повторяется до тех пор пока запустившая процесс функция не вернет результат пользователю.
В логических языках программирования для решения задачи достаточно описания структуры и условий этой задачи. Поскольку последовательность и способ выполнения программы не фиксируется, как при описании алгоритма, программы могут в принципе работать в обоих направлениях, то есть программа может, как на основе исходных данных вычислить результаты, так и по результатам - исходные данные.
Наиболее известными языками функционального программирования являются ЛИСП и РЕФАЛ, а логического - Пролог. Однако, с развитием языков программирования (в частности, с появлением объектно-ориентированных языков) и баз данных область их применения сузилась. Так ЛИСП используется как оболочка Автокад, а РЕФАЛ как средство для построения метаязыков и метакомпиляторов.
Поэтому в дальнейшем внимание будет уделено не рассмотрению конкретных языков функционального и логического программирования, а подходам, лежащим в основе их реализации и являющимися базовыми при создании систем принятия решений.
ЛИСП и Пролог в свое время являлись базовыми для создания экспертных систем. Поэтому, для того чтобы наглядно представить какой круг задач решается с помощью логического и функционального программирования, рассмотрим задачи, возникающие в ЭС. Прежде всего, это задачи прямого и обратного вывода.
Прямой и обратный вывод.
При использовании прямой цепочки рассуждений решается задача по известным условиям найти последствия. Обратная цепочка рассуждений применяется для того, чтобы по известным результатам найти причины их вызвавшие.
Такие задачи часто записывают в терминах продукционных систем представления знаний, в которых знания записываются в виде продукций/правил, имеющих вид:
Если <условие>, То <вывод>.
Рассмотрим сначала построение обратной цепочки рассуждений. Обратная цепочка рассуждений всегда начинается со следствия (часть То правила). Если в правилах, относящихся к проблемной области, не удается найти условную часть с выполняющимися условиями, необходимо ввести дополнительную информацию.
Для представления таких задач принято использовать дерево решений - специальную диаграмму для представления возможных решений. Дерево решений состоит из вершин двух типов. Вершины решений, содержащие вопросы, обозначаются окружностями. Цели или логические выводы обозначаются прямоугольниками. Вершины нумеруются. Каждая вершина может иметь не более одного входа.
Алгоритм
Определить переменную логического вывода и ее значение.
Найти первое вхождение этой переменной в таблицу дерева решений с заданным значением и типом вершины «вывод». Если переменная не найдена - неудача. Установить переменную var = 1.
Выбрать исходную по отношению к полученной вершине вершину. Если ее нат, перейти к шагу 5. Если есть, записать в таблицу вывода новую строку со значениями полей № варианта = var, Переменная = Переменная из исходной вершины таблицы дерева решений, Значение = Дуга текущей вершины.
Сделать исходную вершину текущей. Перейти к шагу 3.
Найти следующее вхождение переменной вывода в таблицу дерева решений. Если нет, конец, иначе var = var + 1. Перейти к шагу 3.
Механизм, основанный на прямой цепочке рассуждений, функционирует следующим образом:
Вводится условие.
Для каждой ситуации система ищет в базе данных (знаний) правила, в условной части которых содержится соответствующее условие.
В соответствии с констатирующей частью (частью ТО) каждое правило может генерировать новые ситуации, которые добавляются к уже существующим.
Система обрабатывает каждую вновь сгенерированную ситуацию. При наличии хотя бы одной такой ситуации выполняются действия, начиная с шага 2. Рассуждения заканчиваются, когда больше нет необработанных ситуаций
Алгоритм CLS
Для построения деревьев решений часто используется алгоритм CLS. Этот алгоритм циклически разбивает обучающие примеры на группы/классы в соответствии с переменной, имеющей наибольшую классифицирующую силу. Каждое подмножество примеров (объектов), выделяемое такой переменной, вновь разбивается на классы с использованием следующей переменной с наибольшей классифицирующей способностью и т.д. Разбиение заканчивается, когда в подмножестве оказываются объекты лишь одного класса. В ходе процесса образуется дерево решений. Пути движения по этому дереву с верхнего уровня на самые нижние определяют логические правила в виде цепочек конъюнкций.
Список используемой литературы:
1) Соболь Б.В., Галин А.В. и др. Информатика. Ростов н / Д, Феникс, 2006.
2) Острейковский В.А. Информатика. -- М.: Высшая школа, 1999.
3) Симонович С.В. Информатика - базовый курс. -- СПб: Питер, 2001.
4) Справка WordPad
5) Интернет
Подобные документы
Основные сведения о языках программирования и их состав. Программа для компьютера. Использование компилятора и операторы. Языки программирования высокого уровня. Концепции объектно-ориентированного программирования. Языки искусственного интеллекта.
презентация [6,3 M], добавлен 14.08.2013Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Программа WordPad. Технология работы. Типы файлов, используемые редактором WordPad. WordPad представляет собой текстовый редактор для работы с небольшими документами. Он допускает несложное форматирования абзацев, а также использование различных шрифтов.
реферат [11,1 K], добавлен 10.04.2005Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Семантика языков программирования. Процедурные и объектно-ориентированные языки программирования. Стандартная библиотека шаблонов. Независимость байт-кода от операционной системы и оборудования и возможность выполнения Java-приложения на любом устройстве.
реферат [50,5 K], добавлен 24.11.2009Развитие и классификация языков программирования. Методические рекомендации по изучению языков программирования. Основные понятия объектно-ориентированного программирования. Создание электронного учебного пособия с помощью языка гипертекстовой разметки.
курсовая работа [331,1 K], добавлен 06.09.2011Изучение основных стилей программирования: процедурного, функционального, логического, объектно-ориентированного. Язык Ассемблера, предназначенный для представления в символической форме программ, записанных на машинном языке. Многоцелевой язык Basic.
презентация [905,2 K], добавлен 23.03.2011Эволюция языков программирования от низкого уровня до современности. Языки программирования второго поколения - ассемблер. Императивные, функциональные, логические и объектно-ориентированные языки. Машинная независимость. Парадигмы программирования.
презентация [353,5 K], добавлен 14.10.2013Языки программирования низкого и высокого уровней и среды реализации. Особенности процедурных, логических, объектно-ориентированных языков. Состав системы программирования: трансляторы, библиотеки и отладчик программ, компоновщик, средства редактирования.
презентация [11,9 K], добавлен 23.10.2013