Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР9-С++-17-апреля-2012.doc
Скачиваний:
28
Добавлен:
15.09.2019
Размер:
1.15 Mб
Скачать

Министерство финансов Российской Федерации

Всероссийская государственная налоговая академия

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

Бакалавры: 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;

}

}