Добавил:
Берегите себя и своих близких. По всем вопросам - пишите в мой вк, помогу чем смогу. Всем УЗС привет! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++ программы НОВИКОВ / Панюкова Путеводитель по языку С++ Глава 1

.pdf
Скачиваний:
63
Добавлен:
25.11.2016
Размер:
375.52 Кб
Скачать

16

Свойства переменной

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

- - другими управляющими структурами.

Развилка. Структура соответствует выражению «Если условие истинно, то выполнить действие А, в противном случае выполнить действия В». Эта структура может быть неполной, когда отсутствует действие В, выполняемое при ложном значении логического выражения.

Повторение. Действие А повторяется до тех пор, пока условие продолжения остается истинным. Поэтому в действии А должно изменяться значение переменных, от которых зависит условие Р. Если изменения параметров не происходит, алгоритм зациклится. В данном случае вычисление условия Р происходит до начала действия А.

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

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

Соседние файлы в папке C++ программы НОВИКОВ