Однако, алгоритмический язык не обходится одними символами, также необходимо давать имена величинам и происходящим действиям.
"Более высокие" языки программирования как, например, BASIC, FORTRAN, Pascal или C разрабатывались, чтобы облегчить решение различных задач. Автор описывает разработчиков и назначение данных языков и особо останавливается на языках Pascal и C.
Прежде чем писать программу, необходимо иметь алгоритм для решения задания. Алгоритм резюмирует все шаги, которые нужно пройти на пути к решению. Он представлен таким образом, что может образовывать основу для программы, но еще не формулирует ее на языке программирования. Хороший программист может перенести алгоритм без труда из разговорной речи в любой язык программирования. Для начинающего "нечеткость" разговорной речи представляет напротив большую проблему.
В этом параграфе автор рассказывает о самом важном этапе создания программ - целях программирования: зачем и почему программное обеспечение должно создаваться и что должно уметь делать. Имеются минимум 2 участника процесса создания ПО: клиент и разработчик.
· Первый шаг - это запись требований клиентов. Разработчик пытается уловить необходимые для создания программного обеспечения связи и отбросить несущественное.
· На следующем шаге разработчик предстает в роли дизайнера. Подобно архитектору он создает структуру программного обеспечения.
· На 3 этапе он играет роль программиста.
· На 4 этапе клиент испытывает программное обеспечение и рассчитывается.
Самая важная фаза при составлении алгоритма - это анализ постановки проблемы и размышление о решении. Эта часть требует больше времени, чем собственно работа с каким-либо языком программирования.
В программировании необходимо заменять вербально представленный алгоритм командами языка. При этом проходят такие этапы, как кодирование, ввод данных, перевод и тестирование. Компилятор помогает нам находить синтаксические ошибки, однако логические ошибки в программе можно узнавать только с помощью размышлений и письменных тестов.
В этом параграфе Юрген Плате обращает внимание, что команды программы состоят из четырех основных структур: последовательностей, выбора, повторения и подпрограмм.
Последовательность - это набор команд, которые запускаются в очередности их записи. Поэтому говорят также о линейной последовательности и повторяющейся последовательности.
Выбор обозначается нелинейной последовательностью с ветвлением. Выбор пути решения зависит от условия.
Структура повторение получается, если последовательность команд должна повторяться неоднократно для решения задания. Минимум одна команда должна заботиться о том, чтобы после конечного числа прохождений не было больше выполнено условие повторения.
При написании программы желательно разбиение ее на модули. Во всех более высоких языках программирования эта возможность реализована в форме подпрограмм. За применение подпрограмм говорят следующие причины: наглядность, экономичность, возможность быстрого внесения изменений.
Затем автором рассматриваются основные способы представления алгоритмов: вербальное описание, графические способы представления (логическая схема программы и структограммы).
В этом параграфе профессор рассказывает о причинах появления новой дисциплины в рамках информатики, а также пытается определить область ее применения.
Основной причиной появления новой дисциплины является невозможность полностью устранить ошибки программирования. В рамках дисциплины «Разработка программного обеспечения» разрабатываются модели и методы, с помощью которых даже самые большие программные системы могут работать безошибочно.
Важнейшими критериями здесь являются: надежность и корректность, удобство и гибкость (возможность быстрых изменений в программе) работы, удобочитаемость программного кода, эффективность создания и применения.
В этом параграфе достаточно подробно рассматриваются теоретические основы разработки ПО и особое внимание уделяется подготовке, анализу проблемы и постановке задач программирования.
В этом разделе автор рассказывает о том, что дисциплина разработки программ сформировалась наряду с проблемно-ориентированным программированием. При этом сначала определяется структура данных для каждого обрабатываемого объема данных. Затем устанавливают, какие виды связей между ним существуют.
Огромное значение здесь имеют типы данных, а также их значения и свойства. Тип переменных величин характеризуется диапазоном принимаемых значений. В каждой программе договариваются о имени и типе переменных.
Помимо переменных автор упоминает и о константах, значения которых могут непосредственно вноситься в структуру программы.
Каждая переменная характеризуется своим именем и значением. Особое внимание Плате обращает на различие между распределением значений и уравнением в математическом смысле. Таким образом, математическое уравнение X = X + 1 не имеет решения, а в языке программирования эта запись значит, что “прибавляют 1 к значению X и сохраняют результат снова в X " или короче "Повышают X на 1".
Автор объясняет также, из чего состоят выражения в языках программирования. Это формулы, которые всегда дают какой-то результат и состоят из операндов (константа, переменные величины и функции) и операторов (однозначных и двузначных).
Далее автор подробно останавливается на стандартных типах данных, которые используются во всех языках программирования:
· Boolean – логический тип (принимает значения True или False).
· Integer – тип целых чисел.
· Character – символьный тип.
· Real – тип действительных чисел.
Также он рассматривает структурные типы данных:
· Feld (Array) - Поле (массив). Переменные величины этого типа содержат множество элементов одинакового стандартного типа.
· Record (Structure) – Записи (связи). Содержат элементы различного типа и имеют каждый свое имя.
В заключении обзора рассматривается общий тип данных – файлы. Они состоят из большого количества данных различных типов. Вместе с данным типом определяется несколько стандартных операций: открытие и закрытие доступа к файлу, чтение из файла и запись данных в файл.
Профессор определяет данное в заголовке понятие так:
Качество программного обеспечения - это совокупность признаков и значений программного продукта, которые необходимы для нормального функционирования программы и удовлетворения потребностей пользователей.
Плате выделяет следующие признаки ПО, которые определяют его качество:
Для того, чтобы создать качественный программный продукт автор говорит о необходимости выполнения ряда действий:
1. Тестирование ПО
2. Проверка подлинности ПО - это комплекс мероприятий, направленных на безупречное функционирование программы при любых входных данных, которое показывается с помощью математического аппарата.
3. Тестовое планирование и тестовая документация. Так как достаточно часто тестирование проходит непродуманно и внепланово, то необходимо составлять план тестов и протоколировать ход тестирования, чтобы исключить появление других ошибок в программе.
Таким образом, разработка ПО включает в себя следующие этапы:
1. Интуитивная разработка алгоритмов.
2. Формализация алгоритма, математическое описание.
3. Изображение алгоритмов структограммой. Разделение на модули и подпрограммы.
4. Разрабатывают алгоритмов с помощью языка программирования высокого уровня.
5. Кодирование.
Прежде чем приступать к программированию, автор обосновывает выбор в качестве изучаемого языка программирования - языка С.
Язык C был первоначально разработан как расширение для операционной системы UNIX, но впоследствии превратился в стандартный ЯП для разных платформ. Этому способствовало:
- богатство операторов,
- относительная машинная независимость,
- возможная высокая мобильность,
- небольшой языковой объем (только 32 ключевых слова),
- много синтаксических возможностей в комбинации с упрощенными стилями.
В этой главе автор знакомит нас с основными синтаксическими единицами языка С:
-Набор символов С-программы – это буквы, цифры, знаки, а также некоторые специфические элементы (пробел, предупреждение, возврат, табуляция)
-Разделители – пробелы, табуляторы, конец строки, перевод страницы, комментарии служат для разделения основных элементов языка
-Директива компилятора #include – подключает к компилятору файлы.
-Функции - из них состоит вся программа. Для каждой программы главной является функция Main, которая начинается с "{" и оканчивается "}".
-Стандартныебиблиотеки - стандартные функции предоставляются стандартными библиотеками.
-Ключевые слова имеют предопределенное значение, которое не может изменяться.
-Идентификаторы и имена – все объекты C имеют идентификаторы, которые состоят из последовательности букв, цифр или подчеркивания.
-Escape-последовательности – с помощью них записываются непечатаемые символы через "\".
Автор знакомит нас с первой нелинейной структурой. Структура If…Else означает ветвление с переходом вперед. Здесь возможны два различных пути решения в зависимости от условия. Существует два вида этой структуры: