Смекни!
smekni.com

Алгоритмы и структуры данных. Программирование в Cи (стр. 2 из 7)

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

"Более высокие" языки программирования как, например, BASIC, FORTRAN, Pascal или C разрабатывались, чтобы облегчить решение различных задач. Автор описывает разработчиков и назначение данных языков и особо останавливается на языках Pascal и C.

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

1.4 От проблемы до решения

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

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

· На следующем шаге разработчик предстает в роли дизайнера. Подобно архитектору он создает структуру программного обеспечения.

· На 3 этапе он играет роль программиста.

· На 4 этапе клиент испытывает программное обеспечение и рассчитывается.

Самая важная фаза при составлении алгоритма - это анализ постановки проблемы и размышление о решении. Эта часть требует больше времени, чем собственно работа с каким-либо языком программирования.

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

1.5 Развитие и изображение алгоритма

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

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

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

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

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

Затем автором рассматриваются основные способы представления алгоритмов: вербальное описание, графические способы представления (логическая схема программы и структограммы).

1.6 Развитие программного обеспечения

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

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

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

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

1.7 Введение в структуры данных

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

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

Помимо переменных автор упоминает и о константах, значения которых могут непосредственно вноситься в структуру программы.

Каждая переменная характеризуется своим именем и значением. Особое внимание Плате обращает на различие между распределением значений и уравнением в математическом смысле. Таким образом, математическое уравнение X = X + 1 не имеет решения, а в языке программирования эта запись значит, что “прибавляют 1 к значению X и сохраняют результат снова в X " или короче "Повышают X на 1".

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

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

· Boolean – логический тип (принимает значения True или False).

· Integer – тип целых чисел.

· Character – символьный тип.

· Real – тип действительных чисел.

Также он рассматривает структурные типы данных:

· Feld (Array) - Поле (массив). Переменные величины этого типа содержат множество элементов одинакового стандартного типа.

· Record (Structure) – Записи (связи). Содержат элементы различного типа и имеют каждый свое имя.

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

1.9 Обеспечение высокого качества разработки программ

Профессор определяет данное в заголовке понятие так:

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

Плате выделяет следующие признаки ПО, которые определяют его качество:

1. Функциональность
2. Надежность
3. Пригодность к употреблению
4. Эффективность
5. Изменчивость
6. Переносимость

Для того, чтобы создать качественный программный продукт автор говорит о необходимости выполнения ряда действий:

1. Тестирование ПО

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

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

Таким образом, разработка ПО включает в себя следующие этапы:

1. Интуитивная разработка алгоритмов.

2. Формализация алгоритма, математическое описание.

3. Изображение алгоритмов структограммой. Разделение на модули и подпрограммы.

4. Разрабатывают алгоритмов с помощью языка программирования высокого уровня.

5. Кодирование.


2. Структура программы

Прежде чем приступать к программированию, автор обосновывает выбор в качестве изучаемого языка программирования - языка С.

Язык C был первоначально разработан как расширение для операционной системы UNIX, но впоследствии превратился в стандартный ЯП для разных платформ. Этому способствовало:

- богатство операторов,

- относительная машинная независимость,

- возможная высокая мобильность,

- небольшой языковой объем (только 32 ключевых слова),

- много синтаксических возможностей в комбинации с упрощенными стилями.

2.1 Основные элементы программы на C

В этой главе автор знакомит нас с основными синтаксическими единицами языка С:

-Набор символов С-программы – это буквы, цифры, знаки, а также некоторые специфические элементы (пробел, предупреждение, возврат, табуляция)

-Разделители – пробелы, табуляторы, конец строки, перевод страницы, комментарии служат для разделения основных элементов языка

-Директива компилятора #include – подключает к компилятору файлы.

-Функции - из них состоит вся программа. Для каждой программы главной является функция Main, которая начинается с "{" и оканчивается "}".

-Стандартныебиблиотеки - стандартные функции предоставляются стандартными библиотеками.

-Ключевые слова имеют предопределенное значение, которое не может изменяться.

-Идентификаторы и имена – все объекты C имеют идентификаторы, которые состоят из последовательности букв, цифр или подчеркивания.

-Escape-последовательности – с помощью них записываются непечатаемые символы через "\".

2.2 Условные операторы

Автор знакомит нас с первой нелинейной структурой. Структура If…Else означает ветвление с переходом вперед. Здесь возможны два различных пути решения в зависимости от условия. Существует два вида этой структуры: