Rambler's Top100


Виртуальный клуб начинающих программистов на Delphi


Заводь
Мелководье
Сокровищница
Рифы
Течения
Архивный грот
Дальние земли
Жемчужница
Ловцы жемчуга
Почтовый грот
Дельфинарий
Карта бухты

Rambler's Top100


Mastak.ru - качественный хостинг на двух континентах

The List of Russian Web Servers WebList.Ru

Основы программирования: (Мелководье)

Как можно научиться программировать?
Программирование как область деятельности.
Этапы разработки программы.

Как можно научиться программировать?

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

Программирование, как область деятельности.

Программирование, как область деятельности, бурно развивается. Если не­сколько лет назад о создании своих собственных программ под Windows ря­довому программисту оставалось только мечтать, так как практически единственным инструментом разработки программ, ориентированных на работу в Windows, был Borland C++ for Windows, явно предназначенный для профессионалов, то сейчас, благодаря появлению Delphi, возможность создания программ под Windows стала реальностью.

Справедливости ради следует упомянуть о Microsoft Visual Basic, как об удобном и достаточно мощном средстве разработки программ под Windows. Однако для большинства программистов Basic остается языком для начинающих и поэтому, как они считают, не заслуживающим внимания. Хотя с последним можно поспорить и не согласиться. Кроме того, последние версии Visual Basic, ориентированные исключительно на объектно-ориентированное программирование, вследствие своей сложности стали практически недоступны для начинающих программистов.

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

Этапы разработки программы.

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

Определение требований к программе - один из важнейших этапов. На этом этапе подробно описывается исходная информация и формулируются требования к результату. Кроме того, описывается поведение программы в особых случаях.
® Например, требования к программе решения квадратного уравнения, которое в общем виде записывается ax2 + bx + c = 0, могут быть такими:

  • Исходными данными для программы являются коэффициенты (a, b, c) при степенях неизвестного, значения которых должны вводиться в режиме диалога во время работы программы
  • Выходные данные - значения корней уравнения
  • Если уравнение не имеет корней, то должно печататься соответствующее сообщение

При разработке программы, предназначенной для работы в Windows, требования к ней могут включать пункты о желаемом виде диалоговых окон программы.
® На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для достижения поставленной цели, по­лучения результата. Если задача может быть решена различными способами, и, следовательно, возможны различные варианты алгоритма решения, то программист, используя некоторый критерий, выбирает наиболее подходящее решение. Затем составляется подробное описание алгоритма.
После того как определены требования к программе и составлен алгоритм решения, он записывается на выбранном языке программирования.
Под отладкой понимается процесс поиска ошибок в программе, которые бывают синтаксические (ошибки в тексте) и алгоритмические. Ошибки в тексте - это наиболее легко устраняемые ошибки. Алгоритмические ошиб­ки обнаружить труднее. Этап отладки можно считать законченным, если программа правильно работает на одном - двух наборах входных данных.
Этап тестирования особенно важен, если вы предполагаете, что вашей программой будут пользоваться другие. На этом этапе следует проверить работу программы на как можно большем количестве наборов входных данных, причем, возможно, и на заведомо неверных. Например, следует проверить, как ведет себя программа вычисления корней квадратного уравнения, если задать равным нулю коэффициент при второй степени неизвестного или задать равными нулю все коэффициенты уравнения.
Алгоритм и программа.
На первом этапе создания программы программист должен определить по­следовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу. Пусть, например, необходимо разработать программу вычисления корней квадратного уравнения. Исходными данными для реше­ния уравнения являются значения коэффициентов уравнения. Результат - значения корней уравнения или вывод, сообщение о том, что уравнение не имеет корней. Метод решения квадратного уравнения известен, т. е. сущест­вуют формулы, используя которые можно вычислить значения корней "вручную". Последовательность шагов решения поставленной задачи оче­видна. Сначала надо по формуле найти значение дискриминанта. Затем, если полученное значение больше нуля, вычислить по формулам значения корней.
Алгоритм - это точное предписание, определяющее процесс перехода от исходных данных к результату.
Следует уточнить, что предписание считается алгоритмом, если оно облада­ет тремя следующими свойствами:

  • Однозначностью
  • Массовостью
  • Результативностью

Под однозначностью алгоритма понимается единственность толкования правил выполнения действий и порядка их выполнения. Таким образом, алгоритм не должен оставлять место произволу при его выполнении.
Массовость алгоритма означает возможность его применения для решения класса задач, предполагает его правильную работу при меняющихся, в за­данных пределах, значениях исходных данных.
Результативность алгоритма предполагает, что выполнение алгоритма долж­но приводить к получению определенного результата. Ниже приведен пример алгоритма математического характера - алгоритм, вычисления корней квадратного уравнения.
Исходные данные - это коэффициенты уравнения: a - при второй степени неизвестного; b - при первой степени неизвестного; c - при нулевой степени неизвестного.
Искомый результат - значения корней уравнения, которые можно обозначить x1 и x2
Предписание:

1. Вычислить значение дискриминанта (d) уравнения по формуле:

d = b2 - 4ac
2. Если значение дискриминанта больше или равно нулю, то вычислить значения корней уравнения по формулам:

3. Если значение дискриминанта меньше нуля, то это значит, уравнение не имеет действительных корней.
Приведенное предписание обладает всеми свойствами алгоритма:
 
  • Однозначностью (в предписании указано, как обозначаются все коэффициенты уравнения, и приведены формулы для вычисления значения дискриминанта и корней уравнения)

  • Массовостью (в предписании указаны не конкретные значения коэффициентов, а приведены формулы, в которых исполь­зованы обозначения коэффициентов)

  • Результативностью (при выполнении предписания получается результат - значения корней уравнения или сообщение о том, что уравнение не имеет решения)

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

        В блок-схемах для обозначения логически различ­ных фрагментов программы используются определенные стандартные символы. Основ­ные элементы блок-схемы: Начало/Конец, Ввод/Вывод, Обработка и Выбор, - изображены на рис. 1. Например, алгоритм вычисления корней квадратного уравнения может быть представлен в виде блок схемы, изображенной на рис. 2. Изображение алгоритма в виде блок-схемы позволяет наглядно представить последовательность действий, необходимых для решения поставленной задачи, убедиться самому программисту в правильности пони­мания поставленной задачи. После разработки алгоритма решения задачи и представления его в виде блок-схемы можно перейти к написанию программы — последовательности инструкций на выбранном языке программирования, соответствующей раз­работанному алгоритму. На листинге приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму.

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

        Алгоритм решения задачи может быть представлен в виде словесного описания или графически в виде блок-схемы. В блок-схемах для обозначения логически различных фрагментов программы используются определенные стандартные символы. Основные элементы блок-схемы: Начало/Конец, Ввод/Вывод, Обработка и Выбор, - изображены на рис. 1.

        На листинге приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму.

    Procedure SqRoot (Edit1, Edit2, Edit3 : TEdit; Label2 : TLabel); var a, b, c : Real; //Коэффициенты уравнения Begin //Ввод исходных данных a := StrToFloat (Edit1.Text); b := StrToFloat (Edit2.Text); c := StrToFloat (Edit3.Text); //Вычисление дискриминанта d := Sqr (b) – 4 * a * c; If d < 0 Then Begin Label2.Color := clRed; Label2.Font.Color := clRed; Label2.Caption := ‘Дискриминант меньше нуля.’ + #13 + ‘Уравнение не имеет корней.’; End Else Begin //Вычисление корней x1 := (b + sqrt (d)) / (2 * a); x2 := (- b + sqrt (d)) / (2 * a); //Вывод результата значений корней Label2.Color := clBlack; Label2.Caption := ‘Корни уравнения:’ + #13 + ‘x1 = ’ + FloatToStr (x1) + #13 + ‘x2 = ’ + FloatToStr (x2) End End;

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

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

    Идеи и пожелания с удовольствием почитаем.

    Хостинг от uCoz