Главная страница

КР по ОАиП для заочников. Основы алгоритмизации и программирования


Скачать 1.08 Mb.
НазваниеОсновы алгоритмизации и программирования
АнкорКР по ОАиП для заочников.pdf
Дата09.09.2018
Размер1.08 Mb.
Формат файлаpdf
Имя файлаКР по ОАиП для заочников.pdf
ТипДокументы
#24304
страница2 из 5
1   2   3   4   5
1.4. Индивидуальные задания
Составить согласно индивидуальному варианту блок-схему алгоритма и
программу вычисления значения выражения при заданных исходных данных.
Сравнить полученное значение с указанным правильным результатом.
1.
2 2
2 2
2cos
3 1
1 3
/ 5
sin
2
x
z
s
z
y




 











при x = 14,26; y = –1,22; z = 3,5·
2 10

. Ответ s = 0,749155.
2.
2 3
3 2
2 9
(
)
tg
2
x y
x
y
s
e
z
x
y







при x = –4,5; y = 0,75·
4 10

; z = –0,845 2
10

. Ответ s = –3,23765.
3.


2 2
2 2
1 sin
1
cos arctg
2 1
y
x
y
s
x
z
y
x
x y












при x = 3,74 2
10


; y = –0,825; z = 0,16 2
10

. Ответ s = 1,05534.
Ввод значений x, y, z с клавиатуры

13
4.


2 2
3 4
1 2sin cos cos
1 2
3 4
y
z
z
z
s
x
y
z





 






при x = 0,4 4
10

; y = –0,875; z = –0,475 3
10


. Ответ s = 1,98727.
5.
 
2
ln sin (arctg( ))
2
x
y
s
y
x
z










при x = –15,246; y = 4,642 2
10


; z = 21. Ответ s =–182,038.
6.




2 2
3 10
arcsin
y
s
x
x
z
x
y



 
при x = 16,55 3
10


; y = –2,75; z = 0,15. Ответ s = –40,6307.
7.
 
 
2 2
3 1
5arctg arccos
4
x
x
y
x
s
x
x
x
y z
x

 




при x = 0,1722; y = 6,33; z = 3,25 4
10


. Ответ s = –205,306.
8.
 
 
6 2
3
ln arctg arctg
x y
x y
e
x
y
s
x
y
x
z







при x = –2,235 2
10


; y = 2,23; z = 15,221. Ответ s = 39,3741.
9.






3 2
cos
1
y
x
z
y
y
x
y
s
x
y
x
x
y
x








при x = 1,825 2
10

; y = 18,225; z = –3,298 2
10


. Ответ s = 1,21308.
10.
3 1/ sin
4 2
x
x
z
s
x
y
e




при x = 3,981 2
10


; y = –1,625 3
10

; z = 0,512. Ответ s = 1,26185.
11.
 
3 3
2
cos sin
1 2
x
x y
y
z
s
y
x
y
x
x
y
e





 









при x = 6,251; y = 0,827; z = 25,001. Ответ s = 0,712122.
12.
 
 
2 1
arctg
3 2
3 1
1
x
y
y
x
y
z
s
x
y












при x = 3,251; y = 0,325; z = 0,466 4
10


. Ответ s = 4,23655.
13.


3 4
2 1
sin tg
y
x
s
x
y
z
z





при x = 17,421; y = 10,365 3
10


; z = 0,828 5
10

. Ответ s = 0,330564.

14
14.


1 1/ sin
3 2
1 2
2 3
x
z
y
x
y
s
x
x
y
y







 
при x = 12,3 1
10


; y = 15,4; z = 0,252 3
10

. Ответ s = 82,8256.
15.


2 3
1 1
1 1
tg
2 3
y
y
y
x
y
x
x
e
s
y
x
x y
z






 




при x = 2,444; y = 0,869 2
10


; z = –0,13 3
10

. Ответ s = –0,498707.

15
ЗАДАНИЕ №2
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ
АЛГОРИТМОВ
2.1. Логические операции и операции сравнения
Операции сравнения применяются при работе с двумя операндами и воз- вращают
true
(
1
), если результат сравнения – истина, и
false
(
0
), если резуль- тат сравнения – ложь. В языке С определены следующие операции сравнения:
<
(меньше
), <=
(меньше или равно),
>
(больше),
>=
(больше или равно),
!=
(не равно),
==
(равно).
Логические операции работаютс операндами скалярных типов и возвра- щают результат булева типа. Существует три логические операции:
!
– отрицание или логическое НЕ;
&&
–логическое И;
||
– логическое ИЛИ.
Например:
0 ≤ х ≤ 10 =>
0<=x && x<=10
x ≠ y или z = x => x!=y || z==x
2.2. Оператор условной передачи управления if
Форматы оператора
if
:
1. Полная форма:
if (
логическое_выражение
)
оператор_
1;
else
оператор_2
;
Если логическое выражение истинно, то выполняется оператор_1, иначе – оператор_2.
2. Сокращенная форма:
if (
логическое_выражение
)
оператор_
1;
Если логическое_выражение истинно, то выполняется оператор_1.
3.
Вложенная
форма:
if (
логическое_выражение_1
)
оператор_
1;
else if (
логическое_выражение_2
)
оператор_
2;
else
оператор_3
;
Если логическое_выражение_1 истинно, то выполняется оператор_1, иначе, если логическое_выражение_2 истинно, то выполняется опера-
тор_2, иначе выполняется оператор_3.
Примеры:
1. найти максимальное значение из х, y, z (max(x,y,z)):
if (x>y) max=x;
else max=y;
if (z>max) max=z;

16 2.
Вычислить выражение:
 




3 3
3 2
ln
,
/
0
ln
/
,
/
0
,
иначе
x
y
x y
s
x y
x
y
x y
x
y






 






Так как на ввод значения переменной y
по условию примера не преду- смотрено никаких ограничений, то при вводе значения
y
=0 может возникнуть ситуация деление на 0, поэтому следует записывать оператор
if
, начиная с вет- ви иначе:
if (!x || !y) s =pow(pow(x,2)+y,3); // x=0 или y=0 - иначе
else if (x/y >0) s=log(x)+ pow(fabs(y),1./3); // x/y>0
else s= log(fabs(x/y))* pow(x+y,3); // x/y<0
2.3. Оператор множественного выбора switch
Общая форма оператора:
switch (
переменная_выбора
)
{ case const_1:
операторы_1
; break;

case const_N:
операторы_N
; break;
default:
операторы_
N+1;
}
переменная_выбора,
const
_1,…,
const_N
– константа, переменная или вы- ражение целого, символьного или логического типа.
При использовании оператора switch сначала анализируется перемен-
ная_выбора и проверяется, совпадает ли еѐ значение со значением одной из констант
const
_1, …,
const_N
. При совпадении выполняются операторы этого
case
. Конструкция
default
(может отсутствовать) выполняется, если результат выражения не совпал ни с одной из констант.
Например: выбор функции f(x): х
2
, |x|,
x
switch (k)
{
case
1: f=pow(x,2); break;
case
2: f=fabs(x); break;
case
3: f=sqrt(x); break;
default
: cout<<‖\nf(x) ne zadana!\n‖;
return 1;
}

17
2.4. Пример выполнения задания
Написать программу вычисления выражения
2
cos( )
ln( ),
10
,
3 10 2tg( ),
иначе
x y
x
y
xy
s
e
xy
x
y












Предусмотреть вывод информации о выбранной ветви вычислений.
Блок-схема алгоритма
Код программы
#include
#include int main()
{

18
double x, y, s, f_xy;
cout << "Vvedite x: ";
cin >> x;
cout << "Vvedite y: ";
cin >> y; f_xy=fabs(x*y);
if (f_xy>10) { //
10
xy

s=fabs(cos(x))+log(y);
cout<<"\nVetv 1\n";
}
else if (f_xy>3 && f_xy<=10) //
3 10
xy


{ s=exp(2*x+y);
cout<<"\nVetv 2\n";
}
else { // иначе s=sqrt(fabs(x))+2*tan(y);
cout<<"\nVetv 3\n";
}
cout<<"\nResult="< return 0;
}
Рисунок 3 – Результат выполнения программы

19
2.5. Индивидуальные задания
Составить согласно индивидуальному варианту блок-схему алгоритма и
программу вычисления выражения. Предусмотреть вывод информации о вы-
бранной ветви вычислений.
1.






2 3
2 2
3
,
0
sin( ),
0
,
иначе
x
y
x
xy
s
x
y
x
xy
x
y
y
 













2.
 




3 3
3 2
ln
,
/
0
ln
/
,
/
0
,
иначе
x
y
x y
s
x y
x
y
x y
x
y






 






3.
 


 


 
2 3
2 2
sin
,
0
ln
,
0
tg
, иначе
x
y
y
x
y
s
x
y
x
x
y
y
x
y
 

 




 





4.
 


 


3 3
2 3
tg
,
cos
,
,
иначе
x
y
x
x
y
s
y
x
x
x
y
y
x
x

 












5.
3 3
3sin( ),
,
/ ,
иначе
y
x
x
x
y
s
x
x
x
y
x
x
y











6.
3 2
,
0,5 10
,
0,1 0,5 2
,
иначе
x y
e
xy
s
x
y
xy
x












7.
3 2
,
1 10 4 ,
12 40
,
иначе
x
e
xb
s
x
y
xb
y x













8.


3 2
3
,
/
0
ln
/
/ ,
/
0
sin( ) ,
иначе
x
y
x y
s
x y
x y
x y
y











9.
3 2
3 2
3
,
,
3
,
иначе
x
y
x
y
s
x
y
x
y
x
y






 




10.


3
ln
,
10
,
10
,
иначе
x y
x
y
xy
s
e
xy
x
y











11.
 
3 2
3 2
tg
,
0
ln
,
0
sin ( ),
иначе
x
x
xy
y
s
x
y
xy
x
y










 

12.
2 3
3
tg( )
,
2
,
2
sin( ),
иначе
x
x
y
x
s
x
y
y
x
x
x












20
13.
3 3
2
(
ln(
)) ,
/
0 2 / 3 ln( sin( ) ),
/
0
,
иначе
x
y
x y
s
y
x y
x
y
 









14.
 
3 3
3 3
3 2
3
ln
,
0
tg(
)
,
0
,
иначе
x
x
s
x
y x
x
y
x





 





15.
 
2 3
3 2
3
(
) / ,
0
ln cos
,
0
sin ( ),
иначе
x
y
y
x
s
x
y
x
y











21
ЗАДАНИЕ №3
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ.
ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ
3.1. Оператор цикла с параметром for
Общий вид оператора:
for (
инициализирующее_выражение
;
условие
;
инкрементирующее_выражение
)
{
тело цикла;
}
Инициализирующее_выражение выполняется только один раз в начале выполнения цикла и, как правило, инициализирует счетчик цикла.
Условие содержит операцию отношения, которая выполняется в начале каждого цикла. Если условие равно
true
(
1
), то цикл повторяется, иначе вы- полняется следующий за телом цикла оператор.
Инкрементирующее_выражение, как правило, предназначено для из- менения значения счетчика цикла. Модификация счетчика происходит после каждого выполнения тела цикла.
Например: вычислить значение факториала n = 1∙2∙3∙…∙n = n! (0!=1) f=1;
for (i=1;i<=n;i++)
f*=i;
3.2. Оператор цикла с предусловием while
Общий вид оператора:
while (
условие
)
{
тело цикла
;
}
Операторы тела цикла повторяются до тех пор, пока условие истинно.
Например: найти НОД(a,b)
while (a!=b) if (a>b) a-=b; else b-=a;
3.3. Оператор цикла с постусловием do
Общий вид оператора:
do {
тело цикла
;
} while (
условие
);
Операторы тела цикла повторяются до тех пор, пока условие истинно.

22
Например: ввести такие длины сторон, чтобы из них можно было составить треугольник
do { cout<<”\nVvedite dlini storon (a,b,c): ”; cin>>a>>b>>c;
} while (a+b>c || c+b>a || a+c>b);
3.4. Операторы перехода
Оператор
break
прекращает выполнение ближайшего к нему цикла или оператора
switch
while (
условие
) do {
{
оператор
;
оператор
; break;
break;
оператор
;
оператор
; } while (
условие
);
}
оператор
;
оператор
;
Оператор
continue
передает управление на проверку условия циклов
while
и
do while
, либо на инкрементирующее_выражение цикла
for
while (
условие
) do {
{
оператор
;
оператор
;
1   2   3   4   5


написать администратору сайта