- •1. Краткие теоретические сведения
- •1.1. Вычисления в цикле с несколькими одновременно изменяющимися параметрами
- •1.2. Вложенные циклы
- •1.3. Программирование произвольных цвп
- •1.4. Использование циклических алгоритмов в решении содержательных задач
- •2. Задание
- •2.1. Изучить теоретические сведения
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Цвп с одновременно меняющимися параметрами
- •2.4.1.1. Условие задания
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Вложенные цвп
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Произвольные цвп
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.5.1.2. Пример для варианта 30
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.2. Задание 2. Двойной вложенный цикл
- •2.5.2.1. Условие задания
- •2.5.2.2. Пример для варианта 30
- •2.5.2.3. Программа
- •2.5.2.4. Тестирование
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Вычисления в цикле с несколькими одновременно изменяющимися параметрами 2
Министерство финансов Российской Федерации
Всероссийская государственная налоговая академия
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
Бакалавры: 230700 "Прикладная информатика"
Язык программирования С++
Лабораторная работа № 09
ПРОГРАММИРОВАНИЕ ВЛОЖЕННЫХ И ПРОИЗВОЛЬНЫХ
(СЛОЖНЫХ) ЦИКЛИЧЕСКИХ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Автор профессор кафедры "Прикладной информатики в экономике"
кандидат технических наук Л.К. Кузнецов
15 апреля 2012 г.
Москва
ВГНА
2012
Лабораторная работа № 03
программирование вложенных и произвольных
(сложных) циклических вычислительных процессов
Цель работы:
Ознакомиться:
с особенностями программирования произвольных (сложных) циклических вычислительных процессов (ЦВП);
с организацией ЦВП с несколькими одновременно изменяющимися параметрами;
с понятием вложенных ЦВП;
со структурной схемой и правилами организации вложенных ЦВП;
Получить практические навыки по программированию:
ЦВП с несколькими одновременно изменяющимися параметрами;
вложенных ЦВП;
произвольных (сложных) ЦВП.
1. Краткие теоретические сведения
Ниже приводятся минимальные сведения, необходимые только для выполнения лабораторной работы
1.1. Вычисления в цикле с несколькими одновременно изменяющимися параметрами
В рассмотренных ранее примерах алгоритмов циклической структуры (в предыдущих лабораторных работах) изменяется только один параметр. На практике же часто встречаются задачи, в которых необходимо использовать несколько параметров цикла, изменяющихся одновременно. Цикл с несколькими одновременно изменяющимися параметрами организуется по схеме, аналогичной схеме организации цикла с одним параметром. Но при этом один из параметров цикла обязательно выступает в роли управляющего. Для остальных параметров до входа в цикл необходимо задать их начальные значения, а затем внутри цикла вычислять (изменять) их текущие значения.
Как известно, оператор цикла языка С++ позволяет задавать закон изменения только одного параметра. Для задания закона изменения всех остальных параметров необходимо использовать операторы присваивания, которые перед началом цикла устанавливают начальные значения, а в цикле вычисляют их текущие значения.
Пример 9.1
Вычислить значения функции , где х изменяется от 1 с шагом 0,1 до 2, а y изменяется от 50 с шагом 4 до 90. При этом переменные х и у меняют свои значения одновременно.
В данном примере в качестве управляющей переменной цикла можно выбрать любую из переменных: как х, так и у. Выбор конкретной из них не принципиален, так как приведет к одним и тем же результатам. Для определенности выберем в качестве управляющей переменной параметр у. Тогда блок-схема алгоритма решения рассматриваемой задачи будет иметь вид, показанный на рис. 9.1.
Рис. 9.1. Блок-схема алгоритма задачи примера 9.1
Программа на языке С++, реализующая указанные вычисления может иметь вид:
int main()
{
float x, y, z;
x = 1;
for(y=50; y<=90; i+=4);
{
z = х*sqrt(x*y);
cout << x << y << z << endl;
x = x + 0.1;
}
}
Пример 9.2
Вычислить значение функции у = (а + b + c)/k, если a изменяется от 0 до 1 с шагом 0,1, b изменяется от 1 до 3 с шагом 0,2, k изменяется от 1 до 11 с шагом 1. При этом, переменные a, b, k меняют свои значения одновременно.
Выберем в качестве управляющей переменной параметр k, тогда фрагмент программы на языке С++, реализующий указанные вычисления может иметь вид:
int main()
{
int k;
float a, b, c, y;
cout << "Введите c: "
cin >> c;
a = 0;
b = 1;
for(k=1; k<=11; t++);
{
y = (a + b + c)/k);
cout << k << a << b << y << endl;
a = a + 0.1;
b = b + 0.2;
}
}
В данном примере выбор управляющей переменной также не принципиален. Вместо управляющей переменной k можно было бы взять переменную a или переменную b.
Пример 9.3
Вычислить значение функции , где t =- 5; 5.5; 6; 6,5; 7; s = 0,1; 0,7; 1.3; 1,9; 2,5.
Величины s и t меняются одновременно. Значение функции y вывести на печать.
Программа на языке C++ может иметь вид
int main()
{
int k;
float y, t, s, pi;
s= 0,1;
for(t=-5; 7<=7.1; t+=0.5);
{
y = t*log(fabs(pi*s/t)));
cout << t << s << y << endl;
s = s + 0.6;
}
}