- •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
2.4.1.2. Пример для варианта 30
Составить программу для табуляции функции вида
,
где аргументы х и у изменяются одновременно (синхронно): х = -5 (1) 5; у = -20 (4) 20.
2.4.1.3. Программа
Ниже представлена программа табулирования функции с использованием цикла for:
//Лабораторная работа № 9
//Задание 9-1k
//Цикл с одновременноменяющимися параметрами
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 16.04.2012
//= = = = = = = = = = = = == = = = == = = = ==
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <math.h> // подключение библиотеки математических функций
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int main ()
{
// Объявление переменных
float x, xn, xk, dx, y, yn, yk, dy, fxy;
// Ввод значений для переменных хn, xk, dx, yn, yk, dy
cout << "Bвeдите хn: " , cin >> xn;
cout << "Введите xk: ", cin >> xk;
cout << "Bвeдите шаг dx: ", cin >> dx;
cout << "Bвeдите yn: " , cin >> yn;
cout << "Введите yk: ", cin >> yk;
cout << "Bвeдите шаг dy: ", cin >> dy;
// вывод заголовка и шапки таблицы
cout << " Та6лица значений функции у = f (х,y) " << endl
<< " |------------------------------------------------|" << endl
<< " | х | y | у = f (х,y) |" << endl
<< " |-------------|------------|----------------------|" << endl;
// Табуляция функции у = f (x,y)
y = yn;//Начальное значение для синхронной переменной y
for(x=xn;x<=xk;x+=dx)
{
if (x==0) continue; //Исключаем особую точку
// Вычисление значения функции fxy
fxy=pow((x*x+y*y)/fabs(sin(x*y)), 1.0/5.0);
// Вывод очередной строки таблицы
// Вывод аргумента x
cout << " I " << "x= "<< setw(3) << x << setw(7) << " I ";
// Вывод аргумента y
cout << "y= "<< setw(4) << y << " I ";
// Вывод значения функции fxy
cout << " " << setw(4) << "fxy = " << setw(10) <<fxy << " I " << endl;
y = y + dy;//подготовка значения синхронной переменной y для следующего
//цикла
}
cout << " |-------------|------------|---------------------|" << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
2.4.1.4. Тестирование
2.4.2. Задание 2. Вложенные цвп
2.4.2.1. Условие задания
Задание заключается в составлении программы, содержащей вложенные циклы, которая рассчитывает и выводит на экран таблицу функции двух переменных f(х,у) при x = xнач (Dx) xкон и y = yнач (Dy) yкон.
Замечание: аргументы х и у являются вложенными, не путать со случаем когда аргументы функции изменяются одновременно (синхронно).
Примечание. Запись вида z = zнач (Dz) zкон означает, что переменная z изменяется от zнач до zкон с шагом Dz.
Результаты вычислений следует представить в виде таблицы с шапкой и делением на графы. Если некоторые из значений f(x,y) оказываются неопределенными (например, возникает деление на нуль или аргументы элементарных функций, входящих f(x,y), выходят за допустимые пределы), то следует воспользоваться оператором continue и исключить эту особую точку из расчетов.
Варианты задания приведены в табл. 9.3. Вариант соответствует номеру в журнале группы.
Таблица 9.3
Индивидуальные варианты задания
№ |
Вид функции |
Аргумент x |
Аргумент y |
1 |
|
x = 0 (0,1) 0,5 |
y = 0,1 (0,05) 0,75 |
2 |
|
x = 0 (0,1) 0,5 |
y = -1 (0,2) +1 |
3 |
|
х = 0 (0,25) 2 |
у = 0 (0,1) 1 |
4 |
|
х = -1 (0,25) + 1
|
у = 0 (0,1) 2 |
5 |
|
х = 0 (0,25) 2 |
у = -0,5 (0,1) + 0,5 |
6 |
|
х = 1 (1) 5 |
у = 0 (0,25) 2 |
7 |
|
х = -1 (0,25) 1 |
у = -1 (0,1) 1 |
8 |
|
х = -1 (0,25) 1 |
у = 0 (0,2) 2 |
9 |
|
х = -1 (0,2) 1 |
у = 0 (1) 10 |
10 |
|
х = -1 (0,2) + 1 |
у = -1 (0,1) 1 |
11 |
|
х = 0 (/10) |
у = -0 (/10) |
12 |
|
х = 0 (/5) 2 |
у = - (/10) |
13 |
|
х = 0(0,5)5; |
у = -1(1)3. |
14 |
|
х = 0 (/10) 2 |
у = 0 (/3) 2 |
15 |
|
х = -1(0,2)1; |
у = -2(0,5)2. |
16 |
|
х = 0 (/8) |
у = 0 (/16) |
17 |
|
х = - (/4) |
у = -2 (/4) 2 |
18 |
|
х= 1 (0,1) 2 |
у = -2 (0,5) 2 |
19 |
|
х= 1 (0,1) 2 |
у = -2 (0,5) 2 |
20 |
|
х = - (/4) |
у = -2 (/4) 2 |
21 |
|
х = 0 (0,1) 1 |
у = -3 (0,5) 3 |
22 |
|
х = 0 (0,2) 2 |
у = -5 (1) 5 |
23 |
|
х= 0 (0,1) 1 |
у = 1 (0,1) 2,5 |
24 |
|
х = 0 (0,1) 1 |
у = -3 (0,5) 3 |
25 |
|
х = 0 (0,25) 2 |
у = -0,5 (0,1) + 0,5 |
26 |
|
х = 0 (0,25) 2 |
у = -0,5 (0,1) + 0,5 |
27 |
|
х = 0 (0,25) 2 |
у = -0,5 (0,1) + 0,5 |
28 |
|
х = - (/4) |
у = -2 (/4) 2 |
29 |
|
х= 1 (0,1) 2 |
у = -2 (0,5) 2 |
30 |
|
х = 0 (0,1) 1 |
у = -3 (0,5) 3 |