Задания для самостоятельной работы.

1. .

При x=14.26, y=-1.22, z=3.5´10-3. Ответ: h=0.749155.

 

2. .

При x=-4.5, y=0.75´10-4, z=-0.845´102. Ответ: s=-3.23765.

 

3. .

При x=3.74´10-2, y=-0.825, z=0.16´102. Ответ: s=1.05534.

 

4. .

При x=0.4´104, y=-0.875, z=-0.475´10-3. Ответ: s=1.98727.

 

5. .

При x=-15.426, y=4.642´10-2, z=21. Ответ: s=-182.038.

 

6. .

При x=16.55´10-3, y=-2.75, z=0.15. Ответ: s=-40.6307.

 

7. .

При x=0.1722, y=6.33, z=3.25´10-4. Ответ: s=-205.306.

 

8. .

При x=-2.235´10-2, y=2.23, z=15.221. Ответ: s=39.3741.

 

9. .

При x=1.825´102, y=18.225, z=-3.298´10-2. Ответ: s=1.21308.

 

10. .

При x=3.981´10-2, y=-1.625´103, z=0.512. Ответ: s=1.26185.

11. .

При x=6.251, y=0.827, z=25.001. Ответ: s=0.712122.

 

12. .

При x=3.251, y=0.325, z=0.466´10-4. Ответ: s=4.23655.

 

13. .

При x=17.421, y=10.365´10-3, z=0.828´105. Ответ: s=0.330564.

 

14. .

При x=12.3´10-1, y=15.4, z=0.252´103. Ответ: s=82.8256.

 

15. .

При x=2.444, y=0.869´10-2, z=-0.13´103. Ответ: s=-0.498707.


 

Лабораторная работа №2

Тема занятия: Программирование разветвляющихся алгоритмов.

 

Оператор условной передачи управления if

Формат оператора выбора:

If (логическое выражение) оператор1;

Else оператор2;

Если логическое выражение истинно, то выполняется оператор 1, иначе оператор 2.

Оператор множественного выбора switch

Общая форма оператора следующая:

switch (переменная выбора) {

case const 1: оператор1; break;

¼

case const N: операторы N; break;

default: операторы N+1;

}

При использовании оператора switch сначала анализируется переменная выбора и проверяется, совпадает ли ее значение со значением одной из констант. При совпадении выполняются операторы этого case. Конструкция default (может отсутствовать) выполняется, если результат выражения не совпал ни с одной из констант.

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

Условие: вычислить значение выражения

При выполнении задания предусмотреть выбор вида функции

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

#include <iostream.h>

#include <math.h>

int main()

{

double x,y,f,a,s;

int k;

cout << ''Vvedite x: ''; cin >> x;

cout << ''Vvedite y: ''; cin >> y;

cout << ''Viberite f: 1 – sh(h) , 2 – x^2, 3 – exp(x) ''; cin >> k;

switch(k)

{

case 1: f=sinh(x); break;

case 1: f=pow(x,2); break;

case 1: f=exp(x); break;

default: cout << ''Ne vybrana funkciya ''; return 1;

}

a=fabs(x*y);

if (a<5) {

cout << ''Net rezultata'' << endl;

return 1;

} else

If (a>10) s=fabs(f)+log(y);

Else

if (a<=10 && a>5) s=exp(f+y);

else s=sin(x)+tan(y);

cout << ''RESULT ='' << s << endl;

return 0;

}

Задания для самостоятельной работы

Напишите программу вычисления одной из следующих функций, используя оператор If. При выполнении задания предусмотреть выбор вида функции f(x): sh(x) , или . Проект сохранить в рабочей папке LabRab12.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.


Лабораторная работа №3

Тема занятия: Программирование циклических алгоритмов.

 

Оператор цикла for

Общий вид оператора:

for (инициализирующее выражение; условие;

инкрементирующее выражение)

{

тело цикла

}

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

Условие содержит операцию отношения, которая выполняется в начале каждого цикла. Если условие равно 1(true), то цикл повторяется, иначе выполняется следующий за телом цикла оператор.

Инкрементирующее выражение, как правило, предназначено для изменения значения счетчика цикла. Модификация счетчика происходит после каждого выполнения тела цикла.

Оператор цикла while

Оператор цикла с предусловием. Общий вид оператора:

while (условие);

{

тело цикла

}

Организует повторение операторов тела цикла до тех пор, пока условие истинно.

Оператор цикла do

Оператор цикла с постусловием. Общий вид оператора:

do (условие);

{

тело цикла

}

while (условие);

Организует повторение операторов тела цикла до тех пор, пока условие истинно.

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

Условие 1. Вычислить простое рекуррентное выражение

Перед написанием алгоритма следует получить рекуррентную формулу. Для этого рассматриваются значения слагаемых при различных k: при k=1 ; при k=2 ; при k=3 и т.д. Видно, что очередное слагаемое отличается от предыдущего на множитель . Исходя из этого, формула рекуррентной последовательности имеет вид . Полученная формула позволяет избавиться от многократного вычисления факториала и возведения в степень.

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

¼

s=a=1;

for(int i=1; i<101; i++)

{

a *=x/i;

s +=a;

}

Условие 2. Вывести на экран таблицу значений функции и ее разложения в ряд , n=50, на интервале [-3,3], h=0.1.

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

int main()

{

double a,b,h,x,y,s,p;

int n,i;

cout << ''Vvedite a,b,h,n: ''; <<endl;

cin >> a>>b>>h>>n;

x=a;

do

{

p=s=1;

for (i=1; i<=n; i++)

{

p *=log(9)*x/i;

s +=p;

}

y=pow(9,x);

cout << setw(15) << x<< setw(15) << y << setw(15) << s << endl;

x +=h;

}

while (x<=b+h/2);

cout << endl;

return 0;

}