Обложка Программирование с нуля

Программирование с нуля

Владимир Молочков

0% прочитано
Стандартный
Владимир Молочков

Программирование с нуля

Глава 1. Программирование на Delphi для начинающих

Данное издание можно было бы назвать “Школа программирование с нуля”. Цель учебного пособия – ввести обычного пользователя ПК в мир программирования в самой популярной сегодня в мире системе программирования - Delphi. Мне могут возразить, мол Python актуальнее. Но, Python – это мода сегодня, а Delphi – классика программирования. При этом авторы не оговаривают возраст читателя – это может быть любой пользователь домашнего компьютера от школьника до пенсионера. Главное – интерес к теме и желание в нее углубиться.

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

Процесс программирования на любом языке состоит из ряда этапов, таких как анализ требований заказчика к программе, проектирование логической структуры программы, формализация логики работы приложения, перевод формального описания процедур на конкретный язык программирования (кодирование). Среди получивших известность языков: Basic (особенно Visual Basic), Си (и его потомки Си++, Java, PHP и прочие) и, наконец, Паскаль (в том числе Object Pascal), заложенный в систему программирования Delphi.

Delphi-среда визуального программирования

Сегодня на место классического программирования сайтов на Html и CSS пришли визуальные конструкторы Тильда и WordPress. Так и в программировании – на место сложного языка Pascal пришел визуальный Delphi. Назначение Delphi – быстрая разработка приложений, качественное создание любых программ: от простейшего калькулятора до многоуровневой системы управления предприятием. В основе изучения Delphi лежат три составляющие:

qязык программирования Pascal;

qвизуальные средства программирования и обработка стандартных событий Windows;

qобъектно-ориентированное программирование.

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

qв языке программирования Pascal необходимо отработать такие понятия как процедура, функция, глобальные и локальные переменные;

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

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

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

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

Более детально об инспекторе объектов и менеджере проектов мы поговорим позднее в главе 2.

Структура книги

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

В целом книга пригодится пользователям любой версии системы программирования Delphi. Листинги программ не зависят от версии Delphi, а на иллюстрациях, при необходимости, показано, как описываемое действие выполняется в обеих указанных версиях (7 и 2006). Различия между ними для начинающего программиста сводятся к интерфейсу, то есть внешнему виду и расположению на экране окон программы Delphi. Настоящие различия, состоящие в появлении новых возможностей, начинающему программисту почти не будут заметны, потому что эти новые возможности чаще всего ориентированы на уже весьма профессиональных программистов.

Используемые в книге обозначения

В книге можно встретить элементы оформления и обозначения, смысл которых пояснен ниже. Так, например, выражение “Выберите команду Edit (Правка) | Copy (Копировать)” означает, что нужно открыть меню Edit (Правка) и в этом меню выбрать команду Copy (Копировать).

Если в тексте встречаются два обозначения клавиш, между которыми стоит знак плюс (например, Shift+F10), то это означает, что сначала нажимают и удерживают первую клавишу, затем коротко, без удерживания, нажимают вторую, после чего отпускают и первую тоже.

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

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

Совет

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

Примечание

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

Внимание

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

Введение

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

О программировании в двух словах

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

Аппаратная часть и программное обеспечение (ПО)

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

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

Компьютер как исполнитель устроен довольно сложно. Рассмотрим как пример исполнителя некоего раба, покупаемого нами (в Древнем Риме) для работы в качестве писца. Вариант первый: раб здоров и полон сил, но неграмотен. Пригоден ли он для наших целей? Нет. Вариант второй: раб отлично научен письму и всем наукам, но он инвалид без рук и языка. Пригоден ли он? Тоже нет. Отсюда видно, что возможности исполнителя определяются как его физическим устройством, так и интеллектуальной сферой. Все, что относится к физическому устройству исполнителя (его "тело"), называется аппаратная часть (hard). А все нематериальные возможности: знания, умения (его "ум") — это программное обеспечение (ПО) или, что то же - soft. Исполнитель обязательно состоит из этих двух частей, будь то человек, компьютер, учреждение, животное или что-то иное.

Примечание

Интересно, что в одной аппаратной части (hard) может быть несколько вариантов ПО (soft). Тогда это несколько разных исполнителей. Для исполнителя-человека такое бывает редко (скажем, раздвоение личности или игра актера), а для ПК это — обычное дело.

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

Алгоритм

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

Работа исполнителя (ПО) определяется двумя понятиями: алгоритм и система команд.

Система команд — это все то, что может (умеет) делать исполнитель, это набор его элементарных действий (операций).

Алгоритм — это порядок работы исполнителя при решении им какой-либо задачи, порядок выполнения операций из его системы команд.

Система команд есть собственное (внутреннее) свойство исполнителя, а алгоритм — нет. Алгоритм определяется способом решения задачи. То есть система команд у исполнителя одна, а алгоритмов он может выполнять много.

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

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

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

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

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

Для записи алгоритма используют три основных способа:

qсловесное описание алгоритма, его описание обычным языком. Например, алгоритм забивания гвоздя: "Поставить гвоздь вертикально и ударять молотком, пока не забьется". Алгоритм покупки: "Узнать цену. Если цена меньше 10 руб., то купить, иначе сказать «Дорого!»;

qпрограмма на каком-либо языке программирования;

qграфическое представление алгоритма в виде схемы.

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

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

передвинуться до края тротуара;

посмотреть налево;

если машин нет, то:

передвинуться до середины улицы;

посмотреть направо;

если машин нет, то:

передвинуться до противоположного тротуара.

Если вы внимательно обдумаете этот алгоритм, то заметите, что он не очень-то хорош. В нем не хватает определенности и правильности.Почему? Потому что неизвестно, что делать, если машины есть. Лучше будет другой алгоритм:

передвинуться до края тротуара;

посмотреть налево;

ждать, пока не окажется, что машин нет;

передвинуться до середины улицы;

посмотреть направо;

ждать, пока не окажется, что машин нет;

передвинуться до противоположного тротуара.

Как видите, исполнителю в системе команд необходимо еще действие «ждать».

Словесные конструкции типа «если…то» и «…, пока не окажется, что…» не являются ни командами, ни параметрами команд. Это алгоритмические конструкции, о которых речь пойдет позже.

От алгоритма к информации и объекту

Курс "Основы информатики вычислительной техники" был введен в школьную программу в 1986 году. За 20 лет курс претерпел значительные изменения как количественные, так и качественные. В начале преподавание курса предполагалась в 10-11 классах, основное содержание заключалось в изучении алгоритмического языка. Преподавание курса в старших классах позволило сделать вывод о необходимости сквозногонепрерывного курса информатики с 1 по 11 класс, так как на каждом возрастном этапе развития школьника надо формировать соответствующие навыки и умения. Изучение алгоритмического языка стало лишь частью программы, в курс были включены такие вопросы, как общая теория информации, моделирование, языки программирования, информационные технологии и т.д. В результате был сделан переход от курса по основам программирования на языке Basic, к курсу, основанного на идеях системного анализа и использования для их реализации информационных технологий.

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

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

Основы объектно-ориентированного программирования

В основе объектно-ориентированного язык программирования лежат два основных понятия: объект и класс.

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

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

Визуальное программирование

Идея визуального программирования, реализованная в Delphi, заключается в создании некоторой интегрированной среды, позволяющей автоматизировать определенную часть работы программиста. Сегодня, для того чтобы написать небольшую любительскую программу в стандарте Windows, необходимо лишь четко представлять, что она должна делать, какие компоненты могут выполнить данные действия, ну и знания о команде присваивания и о типах переменных. Хотя, конечно, дальнейшая профессиональная доработка такой программы потребует от программиста знаний по объектно-ориентированному программированию, общим принципам структурного программирования и общим вопросам алгоритмизации.

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

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

Delphi 7

Delphi 7 – самая популярная из всех ныне существующих версий Delphi. Отличительной чертой пакета является полная поддержка Web-сервисов, интегрированная модельно-управляемая разработка и возможности предварительного просмотра для Microsoft .NET Framework. Используя Delphi 7 разработчики программ могут создавать приложения для .NET с использованием уже существующих наработок и навыков работы на платформе Windows. Характерной чертой Delphi 7 Studio также является возможность разработки и развертывания корпоративных приложений. Среди возможностей Borland Delphi 7 Studio:

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

q использование RAD Visual Web Development дает возможность визуальной разработки Web-приложений в среде Delphi 7 Studio и исключает задачи разработки общего сервера Application Mode;

q встроенная в Delphi 7 Studio межплатформенная поддержка Linux является эффективной, визуальной интегрированной средой разработки (IDE) для быстрого создания баз данных, GUI-, Web-приложений, а также Web-сервисов для операционной системы Linux.

Delphi 2006

Delphi 2006 (или Delphi 9) – самая новая из всех версий этой программы. Delphi 2006 реализует поддержку каждой из платформ и объединяет теперь два языка - собственно Delphi и C#. Помимо традиционно улучшаемых с каждым релизом функциональных возможностей IDE и интеграции с ALM-системами, Delphi 2006 включает новую версию платформы ECO. ECO II позволяет ускорить разработку корпоративных приложений для .NET с использованием архитектуры MDA за счет автоматического создания .NET-объектов и применения масштабируемого кэша. В рамках единой комплексной среды Delphi 2006 реализована поддержка Win32, .NET, Delphi и C#, что позволяет значительно повысить производительность труда как отдельных разработчиков, так и групп. Кроме того, Delphi 2006 интегрируется с решениями Borland для управления жизненным циклом приложений (ALM). Среда Delphi 2006 не только поддерживает несколько языков и SDK Win32 и .NET, но и обладает целым рядом принципиально новых усовершенствований, в числе которых - средства рефакторинга текстов программ, тестирования программных модулей, а также новая платформа ECO II (Enterprise Core Objects), предназначенная создания программных средств корпоративного класса для .NET. Кроме того, Delphi 2006 позволяет группам разработчиков осуществлять сопровождение и доработку уже выпущенных ими приложений для Windows с использованием новых технологий и возможностей. Delphi 2006 позволяет работать с языками программирования для Windows с использованием Win32 и .NET SDK, интегрируется с другими решениями Borland, обеспечивающих управление жизненным циклом приложений. При помощи Delphi 2006 разработчики смогут как расширить возможности приложений для Win32, так и совершенствовать свои навыки в области .NET и ASP.NET, не жертвуя уже имеющимися у них наработками. Версия Delphi 2006 предлагает усовершенствованные высокопроизводительные инструменты, благодаря которым разработчики смогут работать намного продуктивнее. На всех этапах работы над программным кодом приложения, от написания до тестирования, среда Delphi 2006 использует новейшие технологии (как для .NET, так и для Win32), которые существенно ускоряют процесс разработки. Вызываемые одним щелчком кнопкой мыши, улучшенные методы рефакторинга позволят мгновенно внести необходимые изменения в исходный код приложения. В справочной системе Help Insights разработчики смогут найти необходимую информацию о компонентах и объектах, не отрываясь от написания кода. Система ErrorInsight «на лету» обнаружит и отобразит допущенные ошибки в коде приложения. Инструменты History Manager и Auto Backup позволят сохранить информацию о состоянии кода на определенный момент и вернуться к этому состоянию в случае необходимости. Среда RAD for ADO.NET существенно упростит разработку приложений для Microsoft .NET, использующих базу данных. При совместном использовании, решения Borland дополняют функциональные возможности друг друга, предоставляя разработчикам полный контроль над жизненным циклом приложений. Новая среда разработки тесно интегрируется с программой Borland StarTeam, позволяя членам группы взаимодействовать между собой и упрощая управление исходными кодами приложений. Для быстрой разработки приложений высочайшего качества в состав решения вошли интегрированные средства блочного тестирования для .NET и Win32.

Резюме

В преамбуле к книге авторы попытались «не переливать из пустого в порожнее», а сразу «взять быка за рога». Обозначено содержание книги, введены новые термины, такие как пользователь, интерфейс, аппаратная часть и программное обеспечение ПК, дано начальное представление о системе команд, алгоритме, структуре данных, объектах, классах и компонентах. Авторы попытались простым и ясным языком объяснить такие понятия как форма, модуль, объектно-ориентированное и визуальное программирование. Далее мы перейдем к первой главе книги, где говориться об установке Delphi и элементах интерфейса этой программы.

Спасибо за чтение

Вернуться к книге