Основы языка Delphi

         

Основы языка Delphi

Уже при первом знакомстве со средой разработки, представлении ее возможностей у автора возникает проблема: чтобы описать процесс разработки программы, объяснить, как работает программа, нужно оперировать такими терминами, как объект, событие, свойство, понимание которых на начальном этапе изучения программирования весьма проблематично. Как поступить? Сначала дать описание языка, а затем приступить к описанию среды разработки и процесса программирования в Delphi? Очевидно, что это не лучший вариант. Поэтому при изложении материала принят подход, в основу которого положен принцип соблюдения баланса между языком программирования, методами программирования и средой разработки. В начале книги некоторые понятия, без которых просто невозможно изложение материала, даются на уровне определений.
Книга, которую вы держите в руках, — это не описание языка Delphi или среды разработки Delphi 7 Studio. Это учебное пособие по программированию на языке Delphi в одноименной среде. В нем рассмотрена вся цепочка, весь процесс создания программы: от разработки диалогового окна и функций обработки событий до создания справочной системы и установочного диска.
Цель этой книги может быть сформулирована так: научить программировать в среде Delphi, т. е. создавать законченные программы различного назначения: от простых однооконных приложений до вполне профессиональных программ работы с базами данных.
Научиться программировать можно только программируя, решая конкретные задачи. При этом достигнутые в программировании успехи в значительной степени зависят от опыта. Поэтому, чтобы получить максимальную пользу от книги, вы должны работать с ней активно. Не занимайтесь просто чтением примеров, реализуйте их с помощью вашего компьютера. Не бойтесь экспериментировать — вносите изменения в программы. Чем больше вы сделаете самостоятельно, тем большему вы научитесь!

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

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

Управляющие структуры языка Delphi
На практике редко встречаются задачи, алгоритм решения которых является линейным. Часто оказывается, что алгоритм решения даже элементарной задачи не является линейным. Например, пусть надо вычислить по формуле ток в электрической цепи. Если предположить, что пользователь всегда будет вводить верные данные, то алгоритм решения этой задачи действительно является линейным. Однако полагаться на то, что пользователь будет вести себя так, как надо программе, не следует. Формула расчета предполагает, что величина сопротивления не равна нулю.

Символы и строки
Компьютер может обрабатывать не только числовую информацию, но и символьную. Язык Delphi оперирует с символьной информацией, которая может быть представлена как отдельными символами, так и строками (по-cледовательностью символов).

Консольное приложение
Хотя данная книга посвящена программированию в Windows, нельзя обойти вниманием так называемые консольные приложения. Консоль — это монитор и клавиатура, рассматриваемые как единое устройство. Консольное приложение — программа, предназначенная для работы в операционной системе MS-DOS (или в окне DOS), для которой устройством ввода является клавиатура, а устройством вывода — монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).

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

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

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

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

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

Графические возможности Delphi
Программа выводит графику на поверхность объекта (формы или компонента Image). Поверхности объекта соответствует свойство canvas. Для того чтобы вывести на поверхность объекта графический элемент (прямую линию, окружность, прямоугольник и т. д.), необходимо применить к свойству canvas этого объекта соответствующий метод. Например, инструкция Form1.Canvas.Rectangle (10,10,100,100) вычерчивает в окне программы прямоугольник.

Мультимедиа возможности Delphi
Хотя анимация, находящаяся в AVI-файле может сопровождаться звуковыми эффектами (так ли это — можно проверить, например, при помощи стандартной программы Проигрыватель Windows Media), компонент Animate обеспечивает воспроизведение только изображения. Для полноценного воспроизведения сопровождаемой звуком анимации следует использовать компонент меdiaPlayer.

Зарезервированные слова и директивы
Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.

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

Иллюстрированный самоучитель по Delphi 7 для начинаюших

В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать. Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем -фантастическая! Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

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

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

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

Символы и строки
Компьютер может обрабатывать не только числовую информацию, но и символьную. Язык Delphi оперирует с символьной информацией, которая может быть представлена как отдельными символами, так и строками (поcледовательностью символов).

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

Алгоритм простого перебора
Ниже приведен текст программы поиска в массиве целых чисел. Перебор элементов массива осуществляется инструкцией repeat, в теле которой инструкция if сравнивает текущий элемент массива с образцом и присваивает переменной found значение true, если текущий элемент и образец равны.

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

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

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

Класс
Классический язык Pascal позволяет программисту определять свои собственные сложные типы данных — записи (records). Язык Delphi, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы.

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

Компонент Animate
Хотя анимация, находящаяся в AVI-файле может сопровождаться звуковыми эффектами (так ли это — можно проверить, например, при помощи стандартной программы Проигрыватель Windows Media), компонент Animate обеспечивает воспроизведение только изображения.

Понятие рекурсии
Рекурсивным называется объект, частично состоящий или определяемый с помощью самого себя. Факториал — это классический пример рекурсивного объекта. Факториал числа п — это произведение целых чисел от 1 до п. Обозначается факториал числа п так: n!.

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

Использование редактора Microsoft Word
Сначала нужно набрать текст разделов справки (каждый раздел в отдельном файле). Заголовки разделов и подразделов нужно оформить одним из стилей Заголовок. Заголовки разделов, как правило, оформляют стилем Заголовок1, подразделов — Заголовок2.

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

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

Создание псевдонима
Псевдоним базы данных создается при помощи входящей в Delphi утилиты BDE Administrator, которая запускается из Windows выбором из меню Программы | Borland Delphi 7 команды BDE Administrator.

Программа InstallShield Express
Одним из популярных инструментов создания инсталляционных программ является пакет InstallShield Express. Borland настоятельно рекомендует использовать именно эту программу, поэтому она есть на установочном диске Borland Delphi 7 Studio.

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

Зарезервированные слова и директивы
Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.

Кодировка символов в Windows
В Windows в основном используется кодировка, которая называется ANSI. Разновидность набора ANSI, содержащая символы русского алфавита, называется Windows-1251.

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

Приложение
Рекомендуемая дополнительная литература

Описание программ диска
На прилагаемой к книге дискете находится файл Проекты.ziр, который содержит программы (проекты), приведенные в книге в качестве примеров. Скопируйте файл Проекты.ziр в каталог проектов Delphi и, используя один из стандартных архиваторов, например, WinZip, распакуйте его.

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

Использование открытых интерфейсов среды программирования Delphi
Одной и наиболее сильных сторон среды программирования Delphi является ее открытая архитектура, благодаря которой Delphi допускает своего рода метапрограммирование, позволяя “программировать среду программирования”. Такой подход переводит Delphi на качественно новый уровень систем разработки приложений и позволяет встраивать в этот продукт дополнительные инструментальные средства, поддерживающие практически все этапы создания прикладных систем

Язык С в вопросах и ответах

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

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

Oбъекты языка VHDL
Сигналы, переменные, константы и другие объекты языка VHDL служат для содержания и переноса некоторых значений. Эти значения могут быть присвоены объектам в одном месте и затем использованы в другом месте программы, как операнды в выражениях, функциях и т.п. На данной страничке приведены объекты языка и синтаксис их объявления (декларации).

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

Языки пространственных запросов
Пользователи взаимодействуют с данными, находящимися в СУБД, посредством языка запросов. В отличие от традиционных языков программирования языки запросов к базам данных относительно просты в изучении и использовании. В этом разделе мы обсудим два таких языка запросов. Первый из них, РА, является более формальным, нежели второй, и обычно не реализуется в коммерческих базах данных.

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

Программирование на Shell
Среди операционных систем особое место занимает Unix. Беспрецедентным является то, что ОС Unix может работать практически на всех выпускаемых платформах. UNIX - это стандарт де факто открытых и мобильных операционных систем. (поскольку название UNIX запатентовано компанией ATT - различные юниксы называются различно: SCO UNIX, BSDI, Solaris, Linux, DG/UX, AIX и т.д.).

Объектно-ориентированное программирование.Язык Смолток
Язык Смолток начал разрабатываться с начала 70-х гг. в исследовательском центре автоматизации учрежденческого труда ПАРС в Пало-Альто (Калифорния, США) фирмой "Ксерокс". В основу его были положены идеи алгоритмического языка Simula, а также идеи Алана Кея (Alan Kay), суть которых сводилась к созданию однородной объектно-ориентированной среды программирования, основанной на малом числе взаимосвязанных понятий.

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

Интерпретатор командного языка shell
Обычно shell ждет завершения выполнения команды. Однако имеется возможность запустить задачу в асинхронном режиме, т.е. без ожидания ее завершения. Для этого после команды (после всех ее аргументов и указаний о переназначении ввода-вывода) надо поставить знак . При этом по умолчанию стандартный ввод команды назначается на пустой файл /dev/null.

Учебник по VRML 97

Изложение опирается на спецификацию VRML97 ( - это то, что Вам обязательно надо иметь под рукой!), личный опыт, разнообразные англоязычные tutorial'ы и другие источники.
Все, что мне попадалось в сети, касающееся VRML, я сливал на винт и накопил множество файлов. К сожалению, не на всех из них проставлено авторство, а я уже не помню, где что брал. Поэтому иногда я ссылаюсь не на оригиналы, затерявшиеся где-то в сети, а на копии, лежащие в виде файлов у меня. Чтобы отличать их от моих собственных документов, я сохранил исходный стиль. Если же Вы нашли свой файл здесь или уже видели такое в сети - просьба намылить, где именно лежат оригиналы!
Что касается англоязычных public domain документов (типа спецификации VRML97, разнообразных FAQ'ов и т.д.), то, возможно постепенно, как соберусь с силами, переведу на русский. Я, например, так и не нашел на русском спецификацию VRML97, а от этого документа пляшут создатели и редакторов, и броузеров!

Программы для создания 3D объектов и миров
Вы найдете старенький обзор некоторых подобных программ. От себя могу добавить, что лично я работал с Cosmo Worlds 2.0, Internet Space Builder 3 и RenderSoft VRML Editor 1.72. Сильно рекомендую Cosmo Worlds 2.0 (жаль, что силиконцы продали это отделение Platinum :(, а там разработка увязла). Есть полнофункциональная ограниченная по времени демка, которую я долго тащил с sgi.com, которая лежит у меня на ftp-сервере

VRML. Справка по языку
VRML (Virtual Reality Modeling Language) - это язык и формат файлов описания интерактивных трехмерных объектов и виртуальных миров. VRML спроектирован для использования в Internet (и является de facto стандартом 3D графики в Сети). Однако VRML файлы можно использовать и в локальных системах. VRML также является перспективным универсальным форматом хранения и обмена мультимедиа-информашией.

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

XTML-справочник

Коротко о справочнике Это не перевод скучной спецификации и не попытка написать учебник. Задача справочника ? коротко и ясно описать действие всех элементов языка HTML, которые вы можете без опаски использовать при создании Internet-страниц, не боясь, что какая-то версия какого-либо браузера сделает вам неприятный сюрприз.
Иначе говоря, здесь представлен "классический" HTML, употребляемый профессиональными web-разработчиками. И ничего лишнего.
Все теги, не описанные в этом справочнике, можете смело выбросить в помойку.
Как устроен справочник
Очень просто. Эталоном построения справочника стали классические брошюры по всевозможным языкам программирования, описывающие элементы языка парой "элемент ? описание".

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

BODY
Указывает начало иконец тела HTML-документа. Между начальным иконечным тегами содержится текст документа, изображения итаблицы. Одним словом, все HTML-элементы, отвечающие заотображение документа, управление им игипертекстовые ссылки. Элемент BODY должен встречаться вдокументе неболее одного раза

FORM
Используется для создания заполяемой формы. Необходимо присутствие начального иконечного тегов. Внутри элемента FORM разрешается использовать большинство HTML-элементов

FRAME
Определяет фрейм иего свойства внутри FRAMESET-структуры. (см. элемент FRAMESET)

BASE
Указывает базовый адрес текущего документа (URL), который станет отправной точкой для расчета относительных адресов внутри документа. Элемент неимеет конечного тега. Обязательно присутствие хотя бы одного из атрибутов.

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

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


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

Definition Description
Открывает и закрывает список определений (терминов иих описаний). Определения задаются спомощью элементов DT иDD.

AREA
Создает область карты, определенной спомощью элемента MAP. Элемент должен располагаться между начальным иконечным тегами элемента MAP. Не имеет конечного тега.

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

NOSCRIPT
Определяет текст, который будет отображен, если браузер покакой-либо причине неработает со скриптами.

CAPTION
Задает заголовок таблицы. Содержание заголовка должно состоять только из текста. Использование блочных элементов вэтом случае недопустимо.

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

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

На работе и дома
Практически каждый сайт в той или иной мере страдает эгоизмом. А выражается этот эгоизм, как правило, в лени его создателя. Сейчас дизайнеру лень добиваться того, чтобы его сайт нормально смотрелся на браузерах, которые почему-то неустановлены на рабочем компьютере дизайнера. "Третий Нетскейп? Вы шутите! Им уже давно никто непользуется, посмотрите статистику!" ? вот его основной аргумент.

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

Введение в программирование на Лиспе

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

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

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

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

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

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

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

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

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

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

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

Вызов Лисп-интерпретатора и/или компилятора
Без аргументов (опций) выполняется цикл "чтение-вычисление-печать", при котором выражения читаются поочередно из стандартного потока ввода, вычисляются Лисп-интепретатором, и полученные результаты выводятся в стандартный поток вывода. Опция –c специфицирует Лисп-файлы, предназначенные для компиляции в байт-код, который выполняется более эффективно

Введение в язык АвтоЛИСП. Лекции
Графический язык программирования Автолисп (AutoLisp) является расширением языка программирования Лисп (LISP). Лисп - это язык высокого уровня, ориентированный на обработку списков, который выбран в качестве базового потому, что графические примитивы (начиная с точки), блоки, наборы примитивов и блоков представляются в Автокаде в виде списков.

Обучение AutoLISP в 8 уроках
ЛИСП осначает "обработку списков" или " программирование списков". В ЛИСПЕ, основным обрабатывающим средством есть " нахождение значения объекта "; то-есть обработка - метод которым Lisp определяет значение любого выражения, сложного объекта, или простого объекта.

Введение в язык Питон

Если вы знакомы с английским языком, то легко поймёте, что слово if переводится как “если”. Этот оператор выполняет блок кода, следующий после него с отступами, только в случае, если выражение в его заголовке не нуль(т.е. верно).
>>> x = int(raw_input("Введите целое число: ")) >>> if x < 0: ... x = 0 ... print 'Отрицательное число стало нулём' ... elif x == 0: ... print 'Это число - нуль' ... elif x == 1: ... print 'Это число - 1' ... else: ... print `Это число больше единицы' ...
Далее могут быть ещё операторы elif(аналог case в Си). Оператору if, как видно, сопутствуют операторы else(“иначе” - блок кода выполняется если условие в заголовке if приняло нулевое значение, т.е стало ложным) и elif(“иначе если” - блок кода выполняется если условие в заголовке if приняло нулевое значение, т.е стало ложным, а значение в заголовке данного оператора стало ненулевым, т.е истинным).

Основные операторы
Оператор for несколько необычен в Питоне, он имеет вид for некая_переменная in некий_диапазон. Блок кода после заголовка выполняется, пока некая_переменная принадлежит некому_диапазону(причём этот диапазон может быть списком, числовой последовательностью, массивом каких-либо значений)

Программирование метаклассов на Python
Пользователи должны понимать различия между программированием метаклассов и традиционным объектно-ориентированным программированием и их взаимосвязь (при единичном и множественном наследовании). В Python 2.2 появились встроенные функции staticmethod() и classmethod(), предназначенные для создания методов, которые не требуют экземпляра во время вызова.

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

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

WSGI, введение
С аббревиатурой WSGI я столкнулся, когда возникла задача развертывания Django-приложения, а mod_python у меня что-то не захотел работать. И в то время для меня WSGI было неким buzz-word, туманным и далеким. Так или иначе, Django я "завел" при помощи flup и lighttpd, но "виски" засел у меня занозой в мозгу.

Основы конструирования компиляторов

Компиляторы составляют существенную часть программного обеспечения ЭВМ. Это связано с тем, что языки высокого уровня стали основным средством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования. Наряду с традиционными языками, такими, как Фортран, широкое распространение получили так называемые «универсальные» языки (Паскаль, Си, Модула-2, Ада и другие), а также некоторые специализированные (например, язык обработки списочных структур Лисп). Кроме того, большое распространение получили языки, связанные с узкими предметными областями, такие, как входные языки пакетов прикладных программ.
Для некоторых языков имеется довольно много реализаций. Например, реализаций Паскаля, Модулы-2 или Си для ЭВМ типа IBM PC на рынке десятки.

Место компилятора в программном обеспечении
постоянно растущая потребность в новых компиляторах связана с бурным развитием архитектур ЭВМ. Это развитие идет по различным направлениям. Совершенствуются старые архитектуры как в концептуальном отношении, так и по отдельным, конкретным линиям. Это можно проиллюстрировать на примере микропроцессора Intel-80X86. Последовательные версии этого микропроцессора 8086, 80186, 80286, 80386, 80486, 80586 отличаются не только техническими характеристиками, но и, что более важно, новыми возможностями и, значит, изменением (расширением) системы команд.

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

Проблема представления: коды, сохраняющие разности
Комбинаторная математика является старой дисциплиной. Она получила свое наименование в 1666 г. от Лейбница в его "Dissertation de Arte Combinatori". Комбинаторные алгоритмы с их акцентом на разработку, анализ и реализацию практических алгоритмов являются продуктом века вычислительных машин.

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

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

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

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

Множества и мультимножества
Не существует формального определения множества; считается что это понятие первичное и не определяется. Так, можно говорить, что множество есть объединение различных элементов, но при этом мы оставляем неопределяемыми понятия "объединение" и "элементы". Дадим следующее определение множеству: множество - это неупорядоченная совокупность различных объектов или структура данных, используемая для представления множества.

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

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

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

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

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

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

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

Внутренняя сортировка
Рассматриваемые здесь задачи можно отнести к наиболее часто встречающимся классам комбинаторных задач. Почти во всех машинных приложениях множество объектов должно быть переразмещено в соответствии с некоторым заранее определенным порядком. Например, при обработке коммерческих данных часто бывает необходимо расположить их по алфавиту или по возрастанию номеров.

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

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

Автоматическое построение лабиринтов
Тезей должен был найти выход из Критского лабиринта или погибнуть, убитый Минотавром. Но что поразительно: найти вход в лабиринт - задача не менее трудная. Здесь не представляется возможным описать все мыслимые лабиринты, да это и не требуется. Мы займемся простыми лабиринтами, построенными на прямоугольнике

Общая характеристика CASE-средства IBM Rational Rose 2003
CASE-средство IBM Rational Rose со времени своего появления претерпело серьезную эволюцию, и в настоящее время представляет собой современный интегрированный инструментарий для проектирования архитектуры, анализа, моделирования и разработки программных систем. Именно в IBM Rational Rose язык UML стал базовой технологией визуализации и разработки программных систем, что определило популярность и стратегическую перспективность этого инструментария

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

Особенности разработки диаграмм вариантов использования
Работа над моделью в среде IBM Rational Rose начинается с общего анализа проблемы и построения диаграммы вариантов использования, которая отражает функциональное назначение проектируемой программной системы. Для вновь создаваемого проекта можно воспользоваться мастером типовых проектов, если он установлен в данной конфигурации

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

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

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

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

Особенности разработки диаграммы последовательности
Диаграмма последовательности является другой формой визуализации взаимодействия в модели и, как и диаграмма кооперации, оперирует объектами и сообщениями. Общие рекомендации по построению диаграммы последовательности были рассмотрены в лекции 8 курса «Основы объектно-ориентированного моделирования в нотации UML».

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

Особенности разработки диаграммы деятельности
Щелкнуть на кнопке с изображением диаграммы состояний на стандартной панели инструментов, после чего следует выбрать представление и тип разрабатываемой диаграммы - диаграмма деятельности.Выделить логическое представление (Logical View) или представление вариантов использования (Use Case View) в браузере проекта и выполнить операцию контекстного меню

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

Особенности разработки диаграммы компонентов
Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов (Component View), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчанию Main (Главная).

Особенности разработки диаграммы развертывания
Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление развертывания (Deployment View), в котором уже содержится диаграмма развертывания с пустым содержанием и без собственного имени.

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

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

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

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

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

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

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

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

Что такое 1-Wire
Однопроводной интерфейс 1-Wire , разработанный в конце 90-х годов фирмой Dallas Semiconductor Corp., регламентирован разработчиками для применения в трех основных сферах-приложениях: приборы в специальных корпусах MicroCAN для решения проблем идентификации, переноса или преобразования информации (технология iButton), программирование встроенной памяти интегральных компонентов, системы автоматизации (технология сетей 1-Wire-сетей).

Последовательный интерфейс RS-232
Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально создавался для связи компьютера с терминалом. В настоящее время используется в самых различных применениях

Подключение нестандартных устройств к IBM PC через интерфейс Centronics
Согласно правилам передачи данных по протоколу Centronics данные D0-D7 действительны по фронтам сигнала –STROBE. Поэтому на тактовый вход Dd1 подается сигнал –STROBE. Для работы устройства под управлением Windows 9x. Контакты разъема 11(BUSY) и 12(PE) необходимо заземлить, иначе Windows выводить сообщения о неготовности принтера и необходимости вставить бумагу, если в системе установлены драйвера принтера, иначе сообщение не выдается.