Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Первый шаг Второй шаг Третий шаг НОД(А, В)=5
А=25 А=10 А=10 А=5
В=15 В=15 В=5 В=5

В блок–схеме для решения поставленной задачи используется цикл с предусловием, то есть тело цикла повторяется до тех пор, пока А не равно В.

Пример 2. Вводится последовательность чисел, 0 – конец последовательности. Определить, содержит ли последовательность хотя бы два равных соседних числа.

Например, в последовательности 7, 12, 25, 25, 6, 9, 9, 14, 0 – две пары равных соседних чисел: 25 и 9.

Входные данные: X0 – текущий член последовательности, X1 – следующий член последовательности.

Выходные данные: сообщение о наличии в последовательности двух равных соседних элементов. Усилим задачу подсчетом количества таких совпадающих пар.

Вспомогательные переменные: Fl – логическая переменная, сохраняет значение «истина», если в последовательности есть равные рядом стоящие члены и «ложь» - иначе. К – количество совпадающих пар. Первоначальное значение К = 0. Если находим совпадающую пару, количество совпадающих пар К увеличивается на единицу: К = К + 1.

Блок–схема решения задачи приведена на рис.12. Применение здесь цикла с постусловием обосновано тем, что необходимо вначале сравнить два элемента последовательности, а затем принять решение об окончании цикла. Обратите внимание на то, что выражение «Х0=Х1» в логическом блоке (ромб) имеет смысл сравнения, т.е. выясняется, совпадают ли эти значения, а в блоке присваивания (прямоугольник) эта же запись имеет смысл присваивания, т.е. в ячейку с именем Х0 записывается число Х1.

 

Рис.12. Блок-схема нахождения совпадающих элементов

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

Рассмотрим несколько примеров с использованием таких циклов.

Пример 3. Составить таблицу значений функции y = esin(x)cos(x) на отрезке [0; 2] с шагом h= 0.1.

Входные данные: начальное значение аргумента A = 0, конечное значение аргумента B = 2, шаг изменения аргумента – 0.1.

Выходные данные: множество значений аргумента X и соответствующее им множество значений функции Y.

 
 

 


Рис. 13. Создание таблицы значений функции y = esin(x)cos(x) (1–й способ)

Пример 4. Составить таблицу значений функции y = esin(x)cos(x) на отрезке [0; 2] с шагом h= 0.1. Второй способ.

Входные данные: начальное значение аргумента A = 0, конечное значение аргумента B = 2, шаг изменения аргумента – 0.1.

Выходные данные: множество значений аргумента X и соответствующее им множество значений функции Y.

Решение. Поскольку известно, как изменяется параметр цикла X и каковы его начальное и конечное значения, можно, предварительно определив количество повторений тела цикла n, воспользоваться безусловным циклическим оператором. Итак, если параметр цикла Х принимает значения в диапазоне от Хn до Хk, изменяясь с шагом hх, то количество повторений тела цикла можно определить по формуле: , округлив результат деления до целого числа.

       
   
 
 

 

 


Рис. 14. Создание таблицы значений функции y = esin(x)cos(x) (2–й способ)

 

Выполнение алгоритма: здесь i – переменная типа пересчета, которая принимает значения 1, 2, ….. (с шагом h=1); для каждого значения i для текущего значения Х вычисляется соответствующее значение функции Y, до тех пор, пока переменная пересчета i не примет значение, равное n.

Пример 5. Вычислить факториал числа N (N! =1·2·3· …N).

Входные данные: N– целое число, факториал которого необходимо вычислить.

Выходные данные: Fact– значение факториала числа N, произведение чисел от 1 до N, целое число.

Промежуточные данные: i– целочисленная переменная, принимающая значения от 2 до N с шагом 1, параметр цикла. Блок-схема приведена на рис.15.

 
 

 

 


Рис. 15. Вычисление факториалачисла N

Итак, вводится число N. Переменной Fact, предназначенной для хранения значения произведения последовательности чисел, присваивается начальное значение, равное единице. Затем организуется цикл, параметром которого выступает переменная i. Если значение параметра цикла меньше или равно N, то выполняется оператор тела цикла, в котором из участка памяти с именем Fact считывается предыдущее значение произведения, умножается на текущее значение параметра цикла, а результат снова помещается в участок памяти с именем Fact. Когда параметр i становится больше N, цикл

заканчивается, и на печать выводится значение переменой Fact, которая была вычислена в теле цикла.

Пример 6. Вычислить an (n > 0).

Входные данные: a – вещественное число, которое необходимо возвести в целую положительную степень n.

Выходные данные: p (вещественное число) результат возведения вещественного

числа a в целую положительную степень n.

Промежуточные данные: i– целочисленная переменная, принимающая значения

от 1 до n с шагом 1, параметр цикла. Блок-схема приведена на рис.16.

 
 

 


Рис. 16. Возведение вещественного числа в целую степень

Итак, известно, что для того, чтобы получить целую степень n числа a, нужно умножить его само на себя n раз. Результат этого умножения будет храниться в участке памяти с именем Р. При выполнении очередного цикла из этого участка предыдущее значение будет считываться, умножаться на основание степени a и снова записываться в участок памяти Р. Цикл выполняется n раз.

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

в пятую степень: a=2, n=5. Подобные таблицы, заполненные вручную, используются для тестирования – проверки всех этапов работы программы.

i          
P          





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.