Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиУвТС / Отчет по ОАиП 3 вариант.doc
Скачиваний:
21
Добавлен:
01.04.2014
Размер:
338.94 Кб
Скачать

Задание №1

Тема: Линейный вычислительный процесс

Цель работы: изучить правила составления текстов программ, научиться реализовывать линейные алгоритмы. Написать и отладить программу линейного алгоритма в консольном приложении.

Условие: создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

При x = 3.7410-2, y = –0.825,

z = 0.16102 v = 1.0553.

Листинг программы:

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, y, z, a, b ,c, rez;

cout << "\n\t x,y,z = " << endl;

cin >> x >> y >> z;

a = (1+pow(sin(x+y),2))/(fabs(x-(2*y/(1+(pow(x,2)*pow(y,2))))));

b = pow(x,fabs(y));

c = pow(cos((atan2(1,z),2)),2);

rez = a*b+c;

cout << "\n x = " << x << "\n y = " << y << "\n z = " << z

<< "\nRezult = " << rez << endl;

cout << "Press any key ... " << endl;

getch();

return 0;

}

Результаты выполнения:

Задание №2

Тема: Реализация разветвляющихся алгоритмов

Цель работы: изучить операции сравнения, логические операции, операторы передачи управления if, switch, break. Написать и отладить программу с разветвлениями.

Условие: Составить программу для вычисления значения rez в зависимости от поставленного условия.

rez =

Листинг программы:

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

double x, y, z, u;

puts("Input x, y");

scanf("%lf%lf",&x, &y);

if ((0<x*y)&&(x*y<=1)){

u = sqrt(fabs(2*x-5*pow(y,2)))*exp(x+y);

puts("0 < x*y < 1");

}

else {

u = sqrt(fabs(2*pow(x,2)+5*y))*exp(x-y);

puts(" x*y > 1");

}

printf("\n\t Rezult U = %8.6lf", u);

puts("\nPress any key ... ");

getch();

}

Результаты выполнения:

Задание №3

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

Цель работы: изучить циклические операторы while, do-while, for, научиться реализовывать циклические алгоритмы. Составить и отладить программу.

Условие: Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.

Листинг программы:

#include<iostream>

#include<iomanip>

#include<math.h>

using namespace std;

void main() {

float i,x,n,k,h;

double S=0,Y=0,P;

cout<<"Vvedite nachalnoe znachenie"<<endl;

cin>>k;

cout<<"Vvedite konechnoe znachenie"<<endl;

cin>>n;

cout<<"Vvedite shag"<<endl;

cin>>h;

cout<<"Vvedite x"<<endl;

cin>>x;

cout<<"---------------------------------"<<endl;

for (i=k;i<n;i+=h) {

S+=(float)pow(x,k)*pow(3,14*k)/4;

Y+=x*sin((float)(3.14*4)/(1-2*x*cos(4*3.14)+pow(x,2)));

P=abs(Y-S);

cout<<"N="<<n;

cout<<" H="<<h;

cout<<" X="<<x;

cout<<" K="<<k<<endl;

cout<<"S="<<setprecision(4)<<S;

cout<<" Y="<<setprecision(4)<<Y;

cout<<" P="<<setprecision(4)<<P<<endl;

cout<<"---------------------------------"<<endl;

}

}

Результаты выполнения: