C++ программы НОВИКОВ / Панюкова Путеводитель по языку С++ Глава 1
.pdf16
Свойства переменной
1.Переменная называется неопределенной до тех пор, пока она не получит значение:
а) вводом извне; б) занесением константы;
в) занесением другой, ранее определенной переменной.
2.В каждый момент времени переменная может быть либо неопределенной, либо иметь определенное значение.
3.Последующее значение уничтожает (стирает) предыдущее значение. Выбор (чтение) переменной и ее использование не изменяет значения переменной.
Над значением можно выполнить некоторую последовательность операций, описываемую выражением.
Данные, входящие в выражение, называются операндами.
Результатом вычисления является его значение. Тип значения зависит от типа операндов и вида выполняемых над ними операций. В дальнейшем рассмотрим, как в языке С++ объявляются и определяются данные, как записываются выражения.
1.4. Системы программирования
Для разработки программ используются системы программирования.
Системы программирования – это средство автоматизации программирования, включающее язык программирования, транслятор языка, документацию, а также средства подготовки и выполнения программ.
В системах программирования выделяют следующие составные части:
-компилятор или интерпретатор;
-интегрированная среда разработки;
-средства создания и редактирования текстов программ;
-обширные библиотеки стандартных программ и функций;
-отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программу;
-«дружественная» к пользователю диалоговая среда;
-многооконный режим работы;
-мощные графические библиотеки, утилиты для работы с библиотеками;
-встроенный ассемблер;
-встроенная справочная служба;
-другие специфические особенности.
17
Так, к системам программирования можно отнести KDevelop, Dev-C++,
Borland Delphi, Borland C++ Builder, Visual Studio и многие другие.
Транслятор – это программа, которая переводит с одного языка на другой.
Интерпретатор – это программа, которая сразу выполняет переводимые команды.
Компилятор – это программа, которая переводит конструкции алгоритмического языка в машинные коды.
1.5. Средства изображения алгоритмов
Каждый алгоритм состоит из двух обязательных частей.
1.Декларативная часть: - заголовок алгоритма;
- объявления (тип – переменная).
2.Исполняемая часть:
-начало;
-команды;
-конец.
Команды в свою очередь могут быть двух типов.
1.Простые – предписывают безоговорочно выполнять указанное действие.
2.Составные – последовательность простых команд, либо содержащие условия выбора.
При составлении алгоритма нужно выполнить следующие действия.
1.Определить объекты, с которыми будем работать;
2.Классифицировать их на исходные, вспомогательные, искомые;
3.Искомым объектам присвоить начальные значения;
4.Указать порядок действий, ведущий к искомому результату.
Основными изобразительными средствами алгоритма являются следующие способы их записи:
-словесный;
-формульно-словесный;
-блок-схемный;
-псевдокод;
-структурные диаграммы;
-языки программирования.
18
Словесная форма записи алгоритма предполагает задание этапов вычислений на естественном языке в произвольной форме с требуемой детализацией.
Пример. Задан массив чисел. Требуется проверить, все ли числа принадлежат заданному интервалу (A,B).
Алгоритм.
Шаг 1. Загрузить первое число.
Шаг 2. Если число принадлежит интервалу, то перейти к шагу 3 если нет - к шаге 6.
Шаг 3. Если просмотрены вес элементы массива, то перейти на шаг 5, если нет - на шаг 4.
Шаг 4. Выбрать следующий элемент. Перейти на шаг 2.
Шаг 5. Вывод сообщения: «Все элементы принадлежат интервалу». Перейти на шаг 7.
Шаг 6. Вывод сообщения: «Не вес элементы принадлежат интервалу». Перейти на шаг 7.
Шаг 7. Конец алгоритма.
При использовании этого способа отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации.
Формульно-словесная форма предполагает задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями
Пример. Вычислить площадь треугольника по трем сторонам.
Алгоритм.
Шаг 1. Вычислять полупериметр треугольника р = (a+b + c)/2.
Шаг 2. Вычислить
S =
Шаг 3.Конец алгоритма.
Блок-схемный подход подразумевает графическое изображение логической структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемой операции.
Основные символы блок-схем.
19
Ввод-вывод
Процесс
(выполнение одной или нескольких операций)
Условие (выбор направления)
Линии потока данных
Начало и конец программы
Рассмотрим тот же пример, что и в случае словесной форме. Блоксхема будет выглядеть следующим образом (рис 1.1).
Псевдовектор позволяет формально изображать логику программы, не заботясь при этом о синтаксических особенностях языка программирования. Обычно такая запись представляет собой смесь операторов языка программирования и естественного языка. Является средством представления логики программы, которое можно применять вместо блок-схем.
Пример (тот же).
Выбрать первый элемент (i=0) IF A> OR >B THEN
Печатать сообщение “Не принадлежит” и переход на конец
ELSE
Переход к элементу i = i + 1
IF массив не закончился (i ≤ N) THEN Переход к проверке интервала
ELSE
Печать сообщения, что все элементы входят в [A,B] Конец.
20
НАЧАЛО
Ввод
N,x,A,B
i=1
нет
A<=x<
=B
|
Не все |
|
элементы |
|
принадлежат |
i=i+1 |
отрезку |
|
|
да
i<=N
Все
элементы
принадлежат
отрезку
КОНЕЦ
Рис 1.1 Блок-схема предложенного алгоритма
Структурные диаграммы могут использоваться в качестве структурных блок-схем для показа межмодульных связей, для отображения структур данных, программ и систем обработки данных. На рис. 1.2 приведены все разновидности элементов структурных диаграмм.
Рассмотренный пример в виде структурной схемы выглядит следующим образом (рис. 1.3).
Языки программирования - изобразительные средства для непосредственной реализации программы на компьютере.
Каждая машина имеет свой собственный язык (машинный код) и может выполнить программы только на одном языке. Это последовательность машинных команд. Писать программы на машинном языке очень сложно и утомительно. Для повышения производительности труда программистов применяются искусственные языки программирования.
21
А |
СЛЕДОВАНИЕ |
|
|
В |
|
|
РАЗВИЛКА |
? |
|
|
да |
|
нет |
|
ПОВТОРЕНИЕ |
1 до N
Х > 3
1 до N
Рис 1.2 Различные элементы структурной диаграммы
Текст программ на исходном языке переводится в текст на машинном языке и получается так называемый модуль *obj. Затем объектный модуль должен быть обработан программой-редактором межпрограммных связей и только после этого программа готова к исполнению.
Пример.
#include <iostream> int main () {
const int N=10;
int x[N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, A, B; cin << A<< B;
for (int i=0; i<N; i++) {
if (x[i] <=A && x[i] >= B) {
cout >> “Не все элементы принадлежат отрезку” ; goto L1 ;
} else i++ ; }
cout >> “Все элементы принадлежат отрезку” ; L1: ; }
22
|
Bвод N,x,A,B |
|
i=1 |
?A<= |
<=B |
|
i=i+1 |
|
Не Все элементы, |
|
принадлежат отрезку |
|
Выход |
i>N |
|
Все элементы принадлежат отрезку |
Конец
Рис.1.3. Структурная диаграмма для иллюстрации рассматриваемого алгоритма
1.6. Базовые канонические структуры алгоритмов
Любую программу можно написать, используя комбинации трех
управляющих структур:
-последовательности операторов;
-развилки (условного оператора);
-повторения (оператора цикла).
Программа, составленная из канонических структур, будет называться регулярной программой, т.е. иметь один вход и один выход, каждый оператор в программе может быть достигнут при входе через ее начало (нет недостижимых операторов и бесконечных циклов).
Управление в такой программе передается сверху в низ. Снабженные комментариями, такие программы легко читаемы. Следование. Действия А и В могут быть:
-- отдельными операторами;
-- вызовами некоторых процедур;
23
- - другими управляющими структурами.
Развилка. Структура соответствует выражению «Если условие истинно, то выполнить действие А, в противном случае выполнить действия В». Эта структура может быть неполной, когда отсутствует действие В, выполняемое при ложном значении логического выражения.
Повторение. Действие А повторяется до тех пор, пока условие продолжения остается истинным. Поэтому в действии А должно изменяться значение переменных, от которых зависит условие Р. Если изменения параметров не происходит, алгоритм зациклится. В данном случае вычисление условия Р происходит до начала действия А.
Может случиться и так, что действие А не будет выполняться ни разу. Для этого имеется конструкция с пост-условием, когда действие А выполняется хотя бы один раз.
Выбор. Обобщение развилки, структура, облегчающая программирование без ущерба для ясности программы. Структура полезна в том случае, когда требуется выбрать одну из нескольких альтернатив. В зависимости от значения Р выполняется одно из действий. После чего происходит переход к выполнению следующей управляющей структуры.