Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1450

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.18 Mб
Скачать

Окончание табл. 7

Номер Математическое выражение варианта

10y ln x2 b x2 b eb x

11y (x a)/(x a) ex a (x a)/ln x a

12y (x b)2 /sin2 (x b) ln(x b)

13y (p (p a) (p b) ln | p a |)/(p b)

14y ((x b)2 sin2 (x b))/ex b

15y (x a)/(x a) sin2 (x a) cos(x a)2

16y (cos(a x) |sin(a x)| /(a x) eax

17y ln | x b|/(x b) (x b)/ex b

18y (sin(x c2 8))/(x c2 8) ln | x c2 8|

19y (x b)2 / | x b| 1 ln | x b|

20

y

 

 

 

 

 

 

 

 

 

 

(x a)2 ln2 | x a| (x a)/ex a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

2

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

y ((x

 

c) sin(x

 

 

c))/ln

x

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

y cos(x2

a2 )

 

 

 

 

 

sin(x2

a2 )

 

 

| x2

a2 |

23y (sin(x d) cos(x d))/ex d ln x d

24y (a x)/(1 (a x)2 ) | sin(a x) | /(a x)2

25

y | x a | /(x a) ln | x a| (x a) ex a

26y (x а)2 /sin2 (x a) ln x a

27y (x b)2 /ln x b 1/ (x b)

28y (x c)/(x c) ex c (x c)/lnx c

31

3.2. Программирование разветвляющихся вычислительных задач

Цель работы - приобретение практических навыков написания и отладки программ, реализующих разветвляющиеся вычислительные задачи.

Общие рекомендации

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

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

Пример. Составить программу вычисления функции

 

x a

sin

2

(x), еслиx a;

ln

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

x a, если x a.

 

 

Программа на C++

#include "stdafx.h" // Ставится по умолчанию в 2010 #include <iostream> // Подключение заголовочного файла

// с функциями ввода-вывода

using namespace std; // Определение пространства имен int _tmain(int argc, _TCHAR* argv[]) //Ставится по

// умолчанию в 2010

{

 

 

setlocale(LC_ALL, "Russian");

//Установка

 

 

//соответствующей

 

 

//кодовой страницы

float a, x, y;

//Объявление переменных

cout << "Введите a" << endl;

//Вывод фразы

cin >> a;

 

// Ввод а

cout << "Введите x" << endl;

//Вывод фразы

cin >> x;

32

// Ввод х

 

 

if (x < a)

//Оператор ветвления

y = log(abs(x + a)) + pow(sin(x), 2);//Ветвь 1

else

 

y = a + sqrt(x - a);

//Ветвь 2

cout << "Результат = " << y << endl; //Вывод надписи // и y

system("pause"); // Ожидание нажатия клавиши return 0;

}

Результат работы программы приведен на рис. 12.

Рис. 12. Результат работы программы

33

Задание

При выполнении задания необходимо:

-составить структурную схему программы;

-написать и отладить программу в консольном режиме

всоответствии с вариантом задания;

-варианты задания приведены в табл. 8; номер варианта совпадает с порядковым номером студента в списке;

-проверить работу программы в консольном режиме.

Отчет

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

Таблица 8

Варианты заданий для реализации разветвляющихся вычислений

Номер

 

 

 

 

 

 

 

 

Функция

варианта

 

 

 

 

 

 

 

 

 

1

 

 

2

 

ax

 

 

y a x

e

; еслиx 10;

 

 

 

 

 

 

 

b x c x3;еслиx 10.

2

 

 

 

 

 

3

 

 

 

y a x b x

;

еслиx 13.4;

 

 

 

 

 

eax 1.3;еслиx 13.4.

3

x ln(a x); еслиx 7.3;

 

y

x3 ebx ;еслиx 7.3.

 

 

4

b asin(b x); еслиx 12;

 

y

x bx ;еслиx 12.

 

 

5

 

x2/3; еслиx 4.3;

 

y

 

 

 

 

 

 

 

 

 

a x2

b;еслиx 4.3.

 

 

 

 

 

 

 

 

34

 

 

 

 

 

 

 

 

 

 

 

Продолжение табл. 8

Номер

 

 

 

 

 

 

 

 

 

Функция

 

варианта

 

 

 

 

 

 

 

 

 

 

 

 

6

 

x

3

1;

еслиx 0.1;

 

y

 

 

cos( x3 );еслиx 0.1.

 

7

 

 

sin x2 x3; еслиx 1;

 

y

 

 

 

 

 

 

 

 

 

 

 

 

a x b ln(1 x);еслиx 1.

8

x a cos(ln(x)); еслиx 3;

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b x2 ;еслиx 3.

 

 

 

 

 

9

 

 

 

tg(x); еслиx 5;

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

a x ln(b x) c;еслиx 5.

 

10

a x b x sin(c x); еслиx 3.4;

 

y

 

 

sin(a x) b;еслиx 3.4.

 

 

 

 

 

11

 

 

 

 

 

abx

; еслиx 2.7;

 

 

 

 

 

 

 

 

y a b e

 

 

 

 

ln(a b x);еслиx 2.7.

 

12

 

 

 

a x2; еслиx 4;

 

y

 

 

 

 

 

 

 

 

 

 

 

 

a bx3

ln(x);еслиx 4.

 

 

13

 

 

 

 

 

 

2

 

 

 

 

 

 

y a/(b x

c); еслиx 7.3;

 

 

 

a x b x3 c;еслиx 7.3.

14eax b; еслиx 6.4; y e ax c;еслиx 6.4.

15ln(a x) b; еслиx 3.9; y b x c;еслиx 3.9.

35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Продолжение табл. 8

Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция

 

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

2

(a x) b x; еслиx 3.7;

 

sin

 

 

y

 

 

 

 

 

 

 

 

 

 

 

ln3 (x);еслиx 3.7.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

ln

 

x

 

; если x 3;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если x 2;

 

y x;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

| sin(x) |;востальных случаях.

 

 

 

 

18

 

 

ax

; если x 3;

 

e

 

 

 

 

 

 

 

 

y 0.75 a x; если x 2;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a x;востальных случаях.

 

19

(1 b x2 )2 ; если x 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

(1 b x3 )2 ; если x 3;

 

 

 

 

 

 

 

x;востальных случаях.

 

 

 

 

 

 

 

 

20

ln

 

sin( x)

 

; если x 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y e

 

x

 

 

 

 

x

 

; если x 2;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5 | x|;востальных случаях.

21tg(x); если x 1;

sin(x) cos(x); если x 2;

y

x2 1; если x 3;

 

 

востальныхслучаях.

 

7;

22

 

3

x

2

5; если x 1;

 

x

 

 

 

y 1;

если x 2;

 

 

востальных случаях.

 

1;

 

 

 

 

 

 

36

Окончание табл. 8

Номер

 

 

 

 

 

 

 

 

 

Функция

варианта

 

 

 

 

 

 

 

 

 

 

23

x5

x; если x 1;

 

 

 

1

 

 

 

 

 

 

 

 

 

;

если x 2;

 

 

 

 

x

 

 

 

 

 

 

y

1

 

 

 

 

 

 

 

; если x 3;

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

x5 x

 

 

;востальных случаях.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

ctg(x 5); если x 0или x 2;

 

 

 

 

 

 

 

 

 

 

 

 

y 2.5; если x 2;

 

 

 

 

 

 

 

 

 

 

 

 

1/(sin(x 5) 1);востальныхслучаях.

25

cos(x a);если x 1;

 

 

 

 

 

 

2

; еслиx 2 илиx 3илиx 4;

 

7 a x

 

y

1

 

 

 

 

 

 

 

;в остальныхслучаях.

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

26

ln(b x) b; еслиx 5;

 

y

 

 

 

b x a;еслиx 5.

 

 

 

 

 

 

 

27

cos2 (a x) b x; еслиx 6

 

y

 

 

 

 

ln3 (x);еслиx 6.

 

 

 

 

 

 

 

 

28

ea x ; если x 1;

 

 

 

 

 

 

 

 

 

 

 

 

y 0.75 a x; если x 2;

 

 

 

 

 

 

 

 

 

 

 

 

a x;востальных случаях.

 

 

 

 

 

 

 

37

4.МАССИВЫ

4.1.Одномерные массивы

Конечная именованная последовательность однотипных элементов называется массивом. При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов [1]. Например:

float a[10]; int b[15];

Из описания массивов следует, что массив a состоит из 10 вещественных чисел, а массив b – из 15 целых чисел.

Элементы массива нумеруются с нуля.

Инициализирующие значения для массивов записы-

ваются в фигурных скобках. Например: int b[5] = {3, 2, 1, 4, 2};

Элементы массива получают следующие значения: b[0] = 3; b[1] = 2; b[2] = 1; b[3] = 4; b[4] = 2;

Пример ввода массива а[10] приведен ниже.

float a[10];

// Описание массива

cout << "Введите массив a размерностью 10 элементов"

<<endl;

// Вывод фразы и перевод курсора

// на следующую строку for (int i = 0; i < 10; i++)

{

cout << "Введите a[" << i <<"]="; // Вывод фразы и i

cin >> a[i];

// Ввод a[i]

}

 

 

38

Пример вывода массива а[10] приведен ниже. cout << "Массив a[10]" << endl; // Вывод заголовка

// и переход // на следующую строку

for (int i = 0; i < n; i++)

cout << a[i] << " "; // Вывод элемента массива // и пробела

cout << endl;

4.2. Многомерные массивы

Многомерные массивы задаются указанием каждого измерения в квадратных скобках [1]. Например:

float a[3][5]; float b[2][2];

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

Впамяти такие массивы располагаются в последовательных ячейках построчно. Например, элементы матрицы b будут располагаться так:

b[0][0] b[0][1] b[1][0] b[1][1]

Примеры инициализации многомерного массива: int mas2 [][]={ {1, 1}, {0, 2}, {1, 0}, {1, 2} };

int mas2 [3][2]={1, 1, 0, 2, 1, 0};

Пример ввода вещественной матрицы размером 3 на 4. В данной матрице будет три строки, номера которых из-

меняются от 0 до 2.

39

В матрице будет четыре столбца, номера которых меняются от 0 до 3.

const int n = 3; const int m = 4; float x[n][m];

cout <<"Введите матрицу x размерностью 3 на 4" << endl;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

{

cout << "Введите x[" << i << "][" << j << "]=";

cin >> x[i][j];

}

Пример вывода вещественной матрицы приведен ниже. const int n = 3;

const int m = 4; float x[n][m];

cout << "\nМатрица x[" << n << "][" << m << "]\n"; for (int i = 0; i < n; i++)

{

for (int j = 0; j < m; j++) printf("%5.2f ", x[i][j]);

printf("\n");

}

С помощью оператора printf каждый элемент матрицы выводится как вещественное число, занимающее 5 позиций, из которых две последние отводятся под дробную часть. Матрица выводится по строкам как таблица. Оператор printf("\n") обеспечивает переход курсора на следующую строку при окончании вывода строки матрицы.

40