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

Лабораторный практикум

.pdf
Скачиваний:
48
Добавлен:
15.06.2021
Размер:
3 Mб
Скачать

cout<<"y="<<y<<endl; return 0;

}

По я сн е н ия к пр о гр ам м е . В данной программе использован один оператор if. Если логическое выражение, записанное с применением операции отношения: x<a*b, истинно, то выполнится оператор, стоящий сразу за логическим выражением, если же оно будет ложным, то выполнится оператор, стоящий за ключевым словом else.

Для того чтобы убедиться, что вычисления выполняются по разным формулам, выведем на экран информацию о том, по какой формуле вычисляется значение y.

Текст измененной программы:

#include <iostream> #include <math.h> using namespace std; int main()

{

setlocale(LC_CTYPE,"Russian"); double a,b,x,y;

cout<<"a>";cin>>a; cout<<"b>";cin>>b; cout<<"x>"; cin>>x;

if(x<a*b)

{

cout<<"Верхняя формула"<<endl;

y = sqrt(pow(tan(log(a*b*b)),2) + a*a*pow(sin(exp(2*x+5)),2));

}

else

{

cout<<"Нижняя формула"<<endl;

y = pow(tan(log(fabs(a*x*x+pow(b,4)))),2) + atan(a+b);

}

cout<<"y="<<y<<endl; return 0;

}

По я сн е н ия к пр о гр ам м е . Если логическое выражение x<a*b истинно, то должны выполниться два оператора: вывод сообщения на экран и вычисление значения y. Поэтому данные операторы сгруппиро-

33

ваны в блок с использованием операторных скобок { }. Аналогичным образом сгруппированы в блок операторы, стоящие после ключевого слова else.

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

Рис.4. Результат выполнения программы при вычислении по верхней формуле

Пример 4. По введенному символу с клавиатуры определить, является ли он латинской буквой.

Решение. Схема алгоритма представлена на рис.5.

Пуск

Ввод с

 

 

 

 

 

 

 

 

 

'a'<c<'z'

Да

или

 

 

'А'<c<'Z'

 

 

Нет

 

 

«Это не

«Это

буква»

буква»

Останов

Рис.5. Схема алгоритма к примеру 3

34

Текст программы:

#include <iostream> #include <math.h>

using namespace std; int main()

{

setlocale(LC_CTYPE,"Russian"); char c;

cout<<"Символ>";cin>>c;

if((c>='a'&& c<='z')||(c>='A'&& c<='Z')) cout<<"Это буква";

else cout<<"Это не буква"; cout<<endl;

}

По я сн е н ия к пр о гр ам м е . Все символы латинского алфавита располагаются последовательно один за другим, поэтому здесь правомерно использование неравенства, т.е. если введенный с клавиатуры символ попадает в интервал от а до z или от А до Z, то на экран будет выведено сообщение, что это буква, в противном случае - это не буква.

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

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

Оператор ветвления switch. Оператор множественного выбора switch позволяет, так же как и if, реализовать ветвящийся алгоритм. Общий вид оператора:

Switch (селектор)

{

case значение 1: оператор 1; break; case значение 2: оператор 2; break;

case значение n: оператор >; break;

35

default: оператор ;

}

или

switch (селектор)

{

case <значение 1: case значение 2: оператор 1; break;

case значение n: оператор n; break; default: оператор ;

}

Селектор представляет собой переменную перечислимого типа, т.е. целого, символьного или логического. Если селектор принимает одно из значений, стоящих после ключевого слова case, то выполнится оператор, соответствующий строке с case. Обратите внимание, что после каждого оператора стоит оператор break, означающий выход из оператора switch. Если break отсутствует, то выполнится оператор, соответствующий ветви case, а также все операторы, стоящие под этой ветвью, пока не встретится оператор break. Если ни одно из значений селектора не равно значению, стоящему после case, то выполнится оператор, стоящий после ключевого слова default.

Приведем пример программирования с использованием оператора switch.

Пример 5. По введенной отметке-цифре вывести ее название. Например, 5 - «отлично».

Решение. Схема алгоритма представлена на рис.7.

Текст программы:

#include <iostream> using namespace std; int main()

{

setlocale(LC_CTYPE,"Russian"); char c;

cout<<"Оценка>"; cin>>c; switch(c)

{

case '1':case '2':cout<<"Неуд";break; case '3':cout<<"Удовлетворительно";

break;

case '4':cout<<"Хорошо";break; case '5':cout<<"Отлично";break;

36

default:cout<<"Это не оценка";

}

cout<<endl; return 0;

}

 

 

 

 

Пуск

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод с

 

 

 

 

 

 

 

 

с=?

 

 

 

 

'1' или '2'

'3'

'4'

 

 

'5'

 

≠1..5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«Неуд»

«Удовл»

«Хорошо»

«Отлично»

«Ошибка»

 

 

 

 

 

 

 

 

 

Останов

Рис.7. Схема алгоритма к примеру 5

По я сн е н ия к пр о гр ам м е . В программе использована перечислимая переменная символьного типа с. В зависимости от принимаемого значения c будет выполнен оператор, соответствующий ветви case. После выполнения оператора управление будет передано оператору cout<<endl, поскольку после оператора ветви case стоит оператор break. Заметим, что данную задачу можно реализовать и с использованием оператора if.

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

37

Рис.8. Результат выполнения программы к примеру 5

Оператор безусловного перехода goto. Ветвление можно органи-

зовать и с помощью оператора безусловного перехода, хотя среди программистов это считается плохим стилем программирования. При использовании оператора goto необходимо с помощью метки - идентификатора языка С++ помечать оператор, которому будет передано управление. Например, в нижеприведенном тексте программы выполнение будет проходить до тех пор, пока не будет введена латинская буква (рис.9). Меткой здесь является идентификатор l1.

#include <iostream>

using

namespace std;

int main()

{

 

setlocale(LC_CTYPE, "Russian");

char c;

 

l1:

cout << "Символ>"; cin >> c;

if ((c >= 'a'&& c <= 'z') || (c >= 'A'&& c <= 'Z')) cout << "Это буква";

else { cout << "Это не буква, введите букву"<<endl; goto l1; }

cout << endl; return 0;

}

38

Рис.9. Результат выполнения программы с использованием оператора goto

Порядок выполнения работы

1.Разработать и выполнить программы в соответствии с вариантом задания. В данной работе выполняется два задания.

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

3.Показать результаты работы преподавателю.

Требования к отчету

Отчет должен содержать:

1)наименование лабораторной работы;

2)формулировки заданий;

3)тексты программ для варианта задания;

4)результаты выполнения программ.

39

Варианты заданий

Блок № 1

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция

п/п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

x 2

 

 

x 2,5

 

 

y

1 x2

 

0 x 2,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ln | cos( x) |

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin(2,3x 1)

x 2,5

 

y

 

3ln |1 x |

0 x 2,5

 

1

 

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tg(x

2

1)

x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 x 1

 

y 2x

 

 

 

 

 

 

 

 

 

cos(x)

 

 

 

 

x 0

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

x2

 

3 2,5x2

 

x 12,5

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 cos(0,001x)

0 x 12,5

 

y e

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

x 0

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

1

 

 

 

 

 

 

 

 

 

 

x 1

 

 

 

 

 

| cos x |

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

0,5 x 1

 

x 1

 

 

 

 

 

 

 

x

2

 

 

 

 

x 0,5

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40

Продолжение

 

 

 

 

 

 

 

 

 

 

 

 

Функция

п/п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

2,5x3 6x2

30

x 1,5

 

y

 

 

1

 

 

 

 

0 x 1,5

 

x

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

1 x

 

 

x 14,5

 

 

y

e x

 

 

3 x 14,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos x

 

x 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

ln |1 x |

 

x 3,8

 

 

y

e x

 

 

 

2,8 x 3,8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos x

 

 

 

x 2,8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

1

 

 

 

 

 

 

x 4

 

 

cos x

 

 

 

y

 

 

1

 

 

 

0 x 4

 

 

x

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

x 0

 

 

 

1 x

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

( x 8)

 

 

 

x 3,61

 

 

y

 

 

 

 

 

0 x 3,61

 

 

1

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

11

 

x

 

 

 

 

 

 

 

 

x 1,5

 

y

2x2

 

 

 

0 x 1,5

 

 

| cos 2x |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e cos3x

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

1

 

 

 

 

 

 

x 2,5

 

cos 2x

 

 

 

 

2

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

1 x 2,5

 

x

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

x 1

 

 

 

1 x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

41

Продолжение

 

 

 

 

 

 

 

 

 

 

 

Функция

 

п/п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

2x

 

 

 

 

 

x 4,5

 

 

y

1 ln |1 x2

 

0 x 4,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e x

 

 

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

ln(x2 1)

 

x 2

 

 

 

 

 

 

3

 

 

 

 

 

y

 

2x

 

 

0 x 2

 

 

 

 

 

 

 

 

 

 

 

sin x

 

 

 

 

x 0

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

2x

3

 

 

 

 

 

 

1

 

 

 

x 3,5

 

 

 

 

 

 

 

 

 

 

 

 

1 x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

cos(2x

1)

 

0 x 3,5

 

 

 

 

 

 

 

 

e cos2 x

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

x 1

 

 

x 2,5

 

 

y

1 x5

 

 

0 x 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ln | sin x |

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

x 2

 

 

 

x 2,5

 

 

y

1 x2

 

 

0 x 2,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ln | cos x |

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

1 3x

 

 

x 4,5

 

 

y

e 2x

 

 

1 x 4,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos 2x

 

 

x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

| tg(x2

1) |

x 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 x 4

 

 

y 2x

 

 

 

 

 

 

 

 

 

cos x

 

 

 

 

x 0

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

42