ГЛАВНАЯ | СТАТЬИ | О ЯЗЫКАХ | РАЗВЛЕЧЕНИЯ | ГОСТЕВАЯ | ССЫЛКИ


СТАТЬИ НАЗАД/td>

Общая теория программирования


Введение

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

Ввод-вывод данных

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

Ввод-вывод в графических системах

Современные технологии позволяют вводить данные не только с клавиатуры, но и с помощью мыши, джойстика, сканера и т.п. Данные аппаратные средства используются в основном в графических системах, но могут быть использованы и в текстовых системах.
Важным в графических системах является местоположение указателя, так как ввод или вывод данных будет производиться именно в это место. Форма графических объектов должна соответствовать назначению. Например, кнопка не должна быть похожа на надпись, а поле ввода текста на список. Примером графической системы является операционная система Windows. При программировании графических объектов можно не писать подсказки на каждый объект, а внешне оформить его так, чтобы не возникал вопрос об его использовании. Внешне кнопка может отличаться от надписи двойной рамкой, а поле ввода теста от списка - наличием курсора внутри рамки.
Существует несколько способов получения справки по какому-либо объекту:
1. Справочная служба, обычно вызываемая кнопкой F1;
2. Контекстная справка, вызывается нажатием правой кнопки мыши и выбором соответствующего пункта всплывающего меню;
3. Всплывающая подсказка, появляющаяся автоматически при наведении на объект и удерживании указателя на некоторое время;
4. Указание, которое пишется рядом с объектом надписью.
Справочная служба может быть вызвана как из прикладной программы, так и отдельно. Обработка и вывод справочной информации осуществляется операционной системой из отдельного файла, имеющего обычно расширение .hlp.
Контекстная справка вызывает справочную службу и открывает раздел, посвященный данному объекту. При использовании контекстной справки не возникает потребность поиска раздела. Каждый объект имеет свой индекс в справочной службе и по этому индексу открывается соответствующий раздел справки. При отсутствии соответствующего раздела выводится сообщение, что раздел не найден или не существует.
Всплывающая подсказка является невидимым объектом справки. Текст подсказки нельзя вызвать отдельно от программы и даже отдельно от объекта, поэтому во многих графических объектах присутствует соответствующее свойство.
Надпись - это видимый объект, содержащий текст справки. Данный вид справки не зависит от объекта, но его невозможно использовать отдельно от прикладной программы.

Определение переменных


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

Использование выражений


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

Простейшая анимация


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

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

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

Прямой доступ к аппаратным средствам

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

© Pakhomov Kirill, Moscow - 2004

Hosted by uCoz