Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Циклический алгоритм. В рассмотрении циклического алгоритма следует выделить несколько понятий




В рассмотрении циклического алгоритма следует выделить несколько понятий.

Тело цикла – это набор инструкций, предназначенный для многократного выполнения.

Итерация – это единичное выполнение тела цикла.

Переменная цикла – это величина, изменяющаяся на каждой итерации цикла.

Каждый цикл должен содержать следующие необходимые элементы:

1. первоначальное задание переменной цикла,

2. проверку условия,

3. выполнение тела цикла,

4. изменение переменной цикла.

Циклы бывают двух видов – с предусловием и с постусловием. В цикле с предусловием сначала проверяется условие входа в цикл, а затем выполняется тело цикла, если условие верно. Цикл с предусловием представлен на рис. 3.10. Цикл с предусловием также может быть задан с помощью счетчика. Это удобно в тех случаях, когда точно известно количество итераций. В общем виде блок-схема, реализующая цикл с предусловием, представлена ниже. Сначала задается начальное значение переменной цикла, затем условие входа в цикл, тело цикла и изменение переменной цикла. Выход из цикла осуществляется в момент проверки условия входа в цикл, когда оно не выполняется, т.е. условие ложно. Цикл с предусловием может ни разу не выполниться, если при первой проверке условия входа в цикл оно оказывается ложным.

Рис. 3.10 Циклический алгоритм с предусловием в общем виде

В цикле с постусловием сначала выполняется тело цикла, а потом проверяется условие. Циклический алгоритм с постусловием представлен на рис. 3.11.

Рис. 3.11 Циклический алгоритм с постусловием в общем виде

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

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

Приведем простейшие примеры, соответствующие циклическому алгоритму.

Пример 3.7. Вася звонит Пете, но у Пети может быть занята линия (см. Примеры 3.1, 3.4). Составить блок-схему действий Васи в этом случае.

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

Рис. 3.12 Блок-схема для примера 3.7

Здесь тело цикла состоит из одного действия «Набрать номер Пети», т.к. именно это действие следует повторять, пока линия будет занята. Под итерацией цикла понимается очередная попытка дозвониться до Пети. Как таковой переменной цикла здесь нет, т.к. ситуация взята из жизни. Выход из цикла происходит в тот момент, когда условие «У Пети занята линия» стало неверным, т.е. телефонная линия свободна – действительно, нет необходимости больше набирать номер Пети. В данном примере применен цикл с постусловием, т.к. сначала необходимо набрать номер Пети, ведь иначе мы не можем ответить на вопрос – занята ли линия у Пети.

Пример 3.8. Ученику требуется купить учебник (см. Примеры 3.2, 3.5). Составить блок-схему, описывающую действия ученика в случае, если учебника нет в ряде магазинов.

Решение. Действия ученика в данном примере очевидны: когда он приходит в первый любой последующий магазины, то возможны два варианта – учебник имеется в наличие или учебника нет в продаже. Если учебника нет в продаже, то ученику следует пойти в другой книжный магазин и спросить данный учебник, и т.д. пока учебник не будет куплен, т.к. перед учеником стоит конечная цель – купить учебник. Мы будем использовать цикл с предусловием, т.к. сначала требуется найти магазин, имеющий в наличии данный учебник. Цикл будет выполняться, пока условие «В данном магазине нет учебника» будет верным, а выход из цикла осуществится, когда условие станет ложным, т.е. когда ученик придет в магазин, в котором есть данный учебник. Действительно, в этом случае ученик купит нужный ему учебник и не будет больше искать книжные магазины. Результат блок схемы представлен на рис. 3.13.

Рис. 3.13 Блок-схема для примера 3.8

Здесь тело цикла состоит из одного действия «Найти другой книжный магазин». Переменной цикла в явном виде нет, но можно подразумевать номер магазина, в который пришел ученик в очередной раз. Как любой другой цикл с предусловием, данный цикл может ни разу не выполниться (не иметь итераций), если в первом же магазине окажется нужный учебник.

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

Пример 3.9. Даны числа a, b (см. Примеры 3.3, 3.6). Известно, что число а меняется от -10 до 10 с шагом 5, b =7 и не изменяется. Вычислить сумму S и разность R чисел a и b для всех значений a и b.

Решение. В отличие от Примеров 3.3 и 3.6 здесь число а меняется от -10 до 10 с шагом 5. Это означает, что число а является переменной цикла. Сначала а равно -10 – это первоначальное задание переменной цикла. Далее а будет изменяться с шагом 5, и т.д. пока не будет достигнуто значение 10 – это соответствует изменению переменной цикла. Итерации надо повторять, пока выполняется условие «а ≤10». Итак, а будет принимать следующие значения: -10, -5, 0, 5, 10. Число b не будет являться переменной цикла, т.к. b =7 и не изменяется по условию задачи. Результат блок схемы (с предусловием) представлен на рис. 3.14.

Рис. 3.14 Блок-схема для примера 3.9 (с предусловием)

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

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

Приведем блок-схему, использующую цикл с постусловием рис. 3.15.

Рис. 3.15 Блок-схема для примера 3.9 (с постусловием)

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

Приведем блок-схемы с предусловием и с постусловием рис. 3.16 и рис. 3.17.

   
   

Рис. 3.16 Блок-схема с предусловием Рис. 3.17 Блок-схема с постусловием

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

Приведем пример выполнения блок-схемы с предусловием для Примеров 3.3, 3.6 и 3.9. Для выполнения нам понадобится поле для расчетов (аналог «оперативной памяти») и поле для вывода результата (аналог экрана для вывода данных). Экран будем показывать несколько раз в зависимости от вывода новых данных на экране.

Выполнение блок-схемы для Примера 3.3 представлено на рис.3.18.

Даны числа a =2, b =7. Вычислить сумму S и разность R чисел a и b.

 

 

Расчеты: Начало a =2 b =7 S=a+b ={подставляем значения a и b }= =2+7=9 R=a-b ={подставляем значения a и b }= =2-7=-5 Выводим на экран S =9, R =-5:
Вывод данных (экран)
S=9 R=-5

Конец.

Рис. 3.18 Блок-схема

Выполнение блок-схемы для Примера 3.6 представлены на рис. 3.19.

Даны числа a =2, b =7. Вычислить сумму S и разность R чисел a и b. Сравнить полученные значения S и R и указать большее из них.

Расчеты: Начало a =2 b =7 S=a+b =2+7=9 R=a-b =2-7=-5 Выводим на экран S =9, R =-5:
Вывод данных (экран)
S=9 R=-5

S > R 9>-5 да, верно

Выводим на экран «Max S»:

Вывод данных (экран)
S=9 R=-5 Max S

Конец.

Рис. 3.19 Блок-схема

Выполнение блок-схемы для Примера 3.9 представлено на рис. 3.20.

Даны числа a, b. Известно, что число а меняется от -10 до 10 с шагом 5, b =7 и не изменяется. Вычислить сумму S и разность R чисел a и b для всех значений a и b.

Блок-схема с предусловием представлена на рис. 3.20.

Рис. 3.20 Блок-схема

 

 

Расчеты:

 

Начало

b =7

a =-10

a ≤10 -10≤10 да, верно

S=a+b =-10+7=-3

R=a-b =-10-7=-17

Вывод данных (экран)
S=-3 R=-17

a = a +5=-10+5=-5

{Идем по стрелке вверх}

a ≤10 -5≤10 да, верно

S=a+b =-5+7=2

R=a-b =-5-7=-12

 

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12

a = a +5=-5+5=0

{Идем по стрелке вверх}

a ≤10 0≤10 да, верно

S=a+b =0+7=7

R=a-b =0-7=-7

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7

a = a +5=0+5=5

{Идем по стрелке вверх}

a ≤10 5≤10 да, верно

S=a+b =5+7=12

R=a-b =5-7=-2

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7 S=12 R=-2

a = a +5=5+5=10

{Идем по стрелке вверх}

a ≤10 10≤10 да, верно

S=a+b =10+7=17

R=a-b =10-7=3

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7 S=12 R=-2 S=17 R=3

a = a +5=10+5=15

{Идем по стрелке вверх}

a ≤10 15≤10 нет, ложно {выходим из цикла}

Конец.

Блок-схема с постусловием представлена на рис. 3.21:

Рис. 3.21 Блок-схема

 

 

Расчеты:

 

Начало

b =7

a =-10

S=a+b =-10+7=-3

R=a-b =-10-7=-17

Вывод данных (экран)
S=-3 R=-17

a = a +5=-10+5=-5

a ≤10 -5≤10 да, верно

{Идем по стрелке вверх}

S=a+b =-5+7=2

R=a-b =-5-7=-12

 

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12

a = a +5=-5+5=0

a ≤10 0≤10 да, верно

{Идем по стрелке вверх}

S=a+b =0+7=7

R=a-b =0-7=-7

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7

a = a +5=0+5=5

a ≤10 5≤10 да, верно

{Идем по стрелке вверх}

S=a+b =5+7=12

R=a-b =5-7=-2

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7 S=12 R=-2

a = a +5=5+5=10

a ≤10 10≤10 да, верно

{Идем по стрелке вверх}

S=a+b =10+7=17

R=a-b =10-7=3

Вывод данных (экран)
S=-3 R=-17 S=2 R=-12 S=7 R=-7 S=12 R=-2 S=17 R=3

a = a +5=10+5=15

a ≤10 15≤10 нет, ложно {выходим из цикла}

Конец.

Выполнение блок-схемы для Примера 3.9 на рис. 3.22.

Даны числа a, b (см. Пример 3.3, 3.6). Известно, что число а меняется от -10 до 10 с шагом 5, b =7 и не изменяется. Вычислить сумму S и разность R и сравнить полученные значения суммы и разности для всех значений a и b.

Блок-схема с предусловием представлена на рис. 3.22.

Рис. 3.22 Блок-схема

 

Расчеты:

 

Начало

b =7

a =-10

a ≤10 -10≤10 да, верно

S=a+b =-10+7=-3

R=a-b =-10-7=-17

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7 Max S S=12 R=-2

S > R 12>-2 да, верно

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7 Max S S=12 R=-2 Max S

a = a +5=5+5=10

{Идем по стрелке вверх}

a ≤10 10≤10 да, верно

S=a+b =10+7=17

R=a-b =10-7=3

 

 

Вывод данных (экран)
S=-3 R=-17

S > R -3>-17 да, верно

Вывод данных (экран)
S=-3 R=-17 Max S

a = a +5=-10+5=-5

{Идем по стрелке вверх}

a ≤10 -5≤10 да, верно

S=a+b =-5+7=2

R=a-b =-5-7=-12

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12

S > R 2>-12 да, верно

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S

a = a +5=-5+5=0

{Идем по стрелке вверх}

a ≤10 0≤10 да, верно

S=a+b =0+7=7

R=a-b =0-7=-7

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7

S > R 7>-7 да, верно

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7 Max S

a = a +5=0+5=5

a ≤10 5≤10 да, верно

{Идем по стрелке вверх}

S=a+b =5+7=12

R=a-b =5-7=-2

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7 Max S S=12 R=-2 Max S S=17 R=3

S > R 17>3 да, верно

Вывод данных (экран)
S=-3 R=-17 Max S S=2 R=-12 Max S S=7 R=-7 Max S S=12 R=-2 Max S S=17 R=3 Max S

a = a +5=10+5=15

{Идем по стрелке вверх}

a ≤10 15≤10 нет, ложно {выходим из цикла}

Конец.

Глава 4 Основы программирования на языке С++. Принципы работы в приложениях Borland C++, Microsoft Visual Studio

4.1 Основы программирования на языке С++

Программа – это реализация алгоритма для выполнения задачи компьютером (ЭВМ).

С помощью программы мы формулируем алгоритм на языке, понятном компьютеру. Таким языком служит язык программирования.

На сегодняшний день распространенными языками программирования являются: С, С++, Pascal, Basic, Fortran и т.д.

Язык программирования С++ является одним из самых востребованных на сегодняшний день.

На языке С++ можно составлять программы для инженерных расчетов, также можно строить проекты, имеющие пользовательский интерфейс.

Существует несколько приложений для написания программ на языке С++. Мы будем рассматривать Microsoft Visual Studio и Borland C++.

В языке программирования С++ определены некоторые стандартные типы данных.

 

Ключевое слово типа данных Значение
Int целый тип, размер типа int не определяется стандартом, а зависит от компьютера и компилятора, для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного — 4 байта. Примеры значений типа int: 5, 0, -1, 100.
Double вещественный тип с двойной точностью. Типы данных с плавающей точкой хранятся в памяти компьютера иначе, чем целочисленные. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка. Мантисса — это число, большее 1.0, но меньшее 2.0. Для величин типа double, занимающих 8 байт, под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка — его диапазон. Примеры значений типа double: 5.134, -0.00001, 2.9987.
Float вещественный тип. В компьютерах величины типа float занимают 4 байта, из которых один двоичный разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу. Тип float имеет меньшую точность, чем double. В большинстве случаев лучше использовать double.
Char символьный тип, под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера, что и обусловило название типа. Как правило, это 1 байт. Каждый символ имеет свой собственный целочисленный код, согласно таблице ASCII (англ. American Standard Code for Information Interchange). Примеры значений типа char: ‘A’ (код 65), ‘7’ (код 55), ‘-’ (код 189), ‘/’ (код 191).
fstream, ifstream, ofstream файловый поток. Используется для вывода данных в файл и считывания данных из файла.

Программа на языке С++ имеет определенную структуру.

Существует определенная последовательность заранее определенных строк кода.

#include “stdafx.h” подключение заголовочного файла для сборки проекта. Обязательный пункт в Visual Studio, в среде Borland C++ не используется.
#include <название_библиотеки> подключение библиотек. Необязательный пункт. Подробно о библиотеках смотреть ниже.  
using namespace std; использование пространства имен. Обязательный пункт в Visual Studio, в среде Borland C++ не используется.  
int main(){ или void main(){ главная функция программы. Именно она начинает выполняться, когда запускается программа. Обязательный пункт.  
Тело_функции_main в теле функции main записываются действия и операции, предусмотренные алгоритмом. Обязательный пункт.  
return 0;} или } конец программы. Самый последний оператор. Обязательный пункт.

Библиотека – это файл, в котором описаны функции и операторы. Для каждой группы функций своя библиотека. Библиотек в языке C++ предусмотрено много, мы будем рассматривать только самые необходимые. Нам понадобятся функции для работы с экраном, математические функции.

Основные библиотеки и их основные функции и операторы:

1. <iostream> для Visual Studio, <iostream.h> для Borland C++. Библиотека для работы с консолью (экраном).

cout – оператор вывода данных на экран.

Пример использования:

cout<<”fraza”; //выведет на экран слово fraza. Может вывести любой текст.

cout<<x; //выведет на экран число, хранящееся в переменной х.

cin – оператор считывания с экрана.

Когда у пользователя запрашивают число, программа ждет, пока пользователь не напечатает число и нажмет ENTER. Тогда оператор cin записывает это значение в переменную х.

Пример использования:

cin>>x; //присваивает переменной х значение, введенное с клавиатуры.

cin>>x>>y; //присваивает переменной х первое введенное с клавиатуры значение, переменной у – второе.

endl – оператор перевода каретки на экране на следующую строку.

Самостоятельно не используется.

Пример использования:

cout<<endl; //курсор перейдет на новую строку.

cout<<x<<endl; //сначала на экране появится число, хранящееся в переменной х, потом перейдет на новую строку. Выводимые далее данные будут печататься с новой строки.

cout<<endl<<”fraza”; // курсор перейдет на новую строку, и на новой строке появится надпись fraza.

precision(n) – функция для отображения на экране дробных чисел с n цифрами после запятой.

Пример использования:

cout.precision(3); //число 7.897426 выведется на экран в виде 7.897.

2. <math.h> одинаково для Visual Studio, Borland C++. Библиотека математических функций.

Математическая функция Программная запись Описание
fabs(x) Модуль числа.
sin(x) Синус числа, аргумент в радианах.
cos(x) Косинус числа, аргумент в радианах.
tan(x) Тангенс числа, аргумент в радианах.
exp(x) Экспонента числа.
log(x) Натуральный логарифм числа.
log10(x) Десятичный логарифм числа.
pow(x, y) х в степени y.
pow10(x) Степень десяти.
sqrt(x) Квадратный корень из числа.
asin(x) Арксинус числа, в радианах.
acos(x) Арккосинус числа, в радианах.
atan(x) Арктангенс числа, в радианах.
π M_PI Число π=3.141593

3. <iomanip> для Visual Studio, <iomanip.h> для Borland C++.

setw(n) – для вывода на экран отводится n ячеек.

Используется при построении ровной таблицы значений функции.

Пример использования:

cout<<setw(5)<<x<<setw(5)<<y<<endl;

На экране выведутся два числа: первое (1.5) в первых пяти ячейках, второе (-73) во вторых пяти ячейках. _ _ 1. 5 _ _ - 7 3.

В программах используются переменные. Имя переменной выбирает составитель программы, имя переменной должно начинаться с буквы латинского алфавита и может содержать буквы латинского алфавита, цифры и символы подчеркивания. Заглавные и строчные буквы считаются разными. Примеры имен переменных: х, y, summa, s1, srednee_ar и т.д. Имена переменных не должны совпадать с ключевыми словами языка С++.

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

1. объявить переменную в начале программе, явно указав тип данных для переменной. Пример:

double x; //вещественная переменная х.

int m; //целочисленная переменная m.

Если переменная не будет объявлена, но будет использоваться далее в программе, то программа не запустится, компилятор выдаст ошибку.

2. проинициализировать переменную, т.е. задать переменной значение. Пример:

x=7.81;

m=4; z=x+m;

Если переменная не будет проинициализирована, то компилятор не выдаст ошибки, но расчеты будут выполнены неверно.

3. использовать далее в программе в расчетах или при выводе на экран.

Для числовых переменных определены простейшие арифметические операции. Для их использования не нужно подключать библиотеку.

Операция в С++ Описание Пример в программе
= присвоение х=0.4;
+ сложение х=8+3; y=x+7.9;
- вычитание x=8-3; y=x-7.9;
* умножение x=4*2.5; y=x*4;
/ деление Результатом деления целых чисел является целое число. x=7.5/3.2; y=x/2.6; z=1/3; //z=0 (округление до целого, т.к. делятся целые числа) z=1.0/3.0; //z=0.333(3)

Для сравнения переменных и чисел используются встроенные знаки сравнения. Для их использования не нужно подключать библиотеку.

Сравнение в С++ Описание Пример в программе
> больше чем x>0
< меньше чем y<z
>= больше или равно y>=x
<= меньше или равно z<=8.56
== проверка на равенство x==0.7
!= не равно x!=y
&& логическое И x>0 && x<1 // двойное неравенство 0<x<1
|| логическое ИЛИ s<8 || s>10

Для реализации разветвляющегося алгоритма в С++ используется условный оператор if. Приведем общий вид блок-схем рис. 4.1, рис. 4.2 и общий вид записи оператора if:

Рис. 4.1 Блок-схема разветвляющегося алгоритма if (условие) { Набор_действий_1; } else { Набор_действий_2; }  
Рис. 4.2 Блок-схема разветвляющегося алгоритма if (условие) { Набор_действий_1; }

Примечание. Если необходимо выполнить не набор действий, а всего одно действие, то фигурные скобки можно опустить.

Для реализации циклического алгоритма с предусловием в С++ предусмотрено два оператора while и for. По одной и той же блок-схеме с предусловием можно написать две программы, одну – с оператором while, другую – с оператором for. Оператор while удобно использовать, если неопределенно, сколько итераций нужно сделать, или это трудно сделать. Оператор for удобно использовать, когда мы заранее знаем количество итераций.

Приведем общий вид блок-схем и общий вид записи операторов while и for рис. 4.3:

Рис. 4.3 Блок схема операторов while и for Оператор while: x=xn; while(x<=xk){ Тело_цикла; x=x+hx; }
Оператор for: for(x=xn; x<=xk; x=x+hx){ Тело_цикла; }

Для реализации циклического алгоритма с постусловием в С++ предусмотрен оператор do while. Блок-схема рис. 4.4 и запись оператора do while в общем виде:

Рис. 4.4 Блок схема циклического алгоритма с постусловием   Оператор do while: x=xn; do{ Тело_цикла; x=x+hx; } while(x<=xk);

Существует ряд задач, где изменяется сразу две переменные. Тогда используют вложенные циклы. Внутри одного цикла (внешнего) организуют другой цикл (внутренний).

Для ясности будем делать внешний цикл по переменной х, а внутренний – по переменной у. Обозначим переменные: xn – начальное значение x, xk – конечное значение х, hx – шаг по переменной х, yn – начальное значение у, yk – конечное значение у, hy – шаг по переменной у. Приведем блок-схему на рис. 4.5 и вид записи операторов цикла с предусловием:

Рис. 4.5 Блок-схема вложенного цикла с предусловием Оператор while: x=xn; while (x<=xk){ y=yn; while (y<=yk){ Тело_цикла; y=y+hy; } x=x+hx; }
Оператор for: for (x=xn; x<=xk; x=x+hx){ for(y=yn; y<=yk; y=y+hy){ Тело_цикла; } }

Общий вид записи циклов с постусловием и блок-схема с постусловием приведена на рис. 4.6.

Рис. 4.6 Блок-схема вложенного цикла с постусловием   Оператор do while: x=xn; do { y=yn; do { Тело_цикла; y=y+hy; } while (y<=yk); x=x+hx; } while (x<=xk);



Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 3256; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.