bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [43]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ПЭ » Другое

ОАиП, вариант 4
Подробности о скачивании 09.05.2012, 18:48
Задание 1. Создать программу вычисления указанной величины. Результат
проверить при заданных исходных значениях.

z2 z3 z4 
1 + z +
+ + 

2
3
4


При x = 0.4×104, y = –0.875, z = –0.475×10-3 → w = 1.9873.
Решение:

w = cos x − cos y

(1+ 2 sin 2 y ) 

#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{
float x,y,z,w;
// Необходимые данные
cout<<"Vvedite x: "<<endl;
cin>>x;
cout<<"Vvedite y: "<<endl;
cin>>y;
cout<<"Vvedite z:"<<endl;
cin>>z;
// вычислить значение w согласно заданию
w=pow(fabs(cos(x)-cos(y)),(1+2*pow(sin(y),2)))*(1+z+pow(z,2)/2+pow(z,3)/3+pow(z,4)/4);
cout<<"w= "<<w<<endl; // выводим w
// далее для завершения программа ждёт нажатия любой клавиши
cout<<"Press any key..."<<endl;
getch();
}

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

Задание 2. Составить программу для вычисления значения rez в зависимости от
поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы
выполнялись все возможные ветви алгоритма. Перед выводом полученного
результата должно выводиться сообщение о ветви, при прохождении которой он
получен.


<
+


 >+
 <+
rmrrm
mrm
rm
cos;0.5;
32
sin;0.50.5;
23
43

rez =
Решение:

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
double r,m,rez;
// Значения переменных
cout<<"Vvedite r: "<<endl;
cin>>r;
cout<<"Vvedite m: "<<endl;
cin>>m;
if((0.5<fabs®)&&(fabs®<fabs(m+0.5))) // Проверка 1-го условия
{
rez=(4*r+3*m)/((pow(r,3)+pow(m,3))*pow(sin(pow(m,3)),2));
cout<<"Pervaya vetka. rez="<<rez<<endl;
}
else if((fabs®>(fabs(m)+0.5))) // Проверка 2-го условия
{
rez=sqrt(fabs(r-m))*pow(cos(pow(r,2)),3);
cout<<"Vtoraya vetka. rez="<<rez<<endl;
}
else cout<<"Tret'ya vetka. ERROR!"<<endl;
cout<<"Press any key..."<<endl;
getch();
}

Рисунок 2 – Результат программы по условию 1

Рисунок 3 – Результат программы по условию 2

Рисунок 4 – Результат программы, если данные не подходят условиям

Задание 3. Для каждого 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
выбрать в зависимости от задания.
n
Y ( x) = cos( x)
x 2k

S ( x) = ∑ (−1) k

k =0

Решение:

#include<iostream.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>
int fac(int);
int fac(int g) //Функция для вычисления факториала
{
if(g==0)return 1;
return g*fac(g-1);
}
void main()
{
int a,b,k,n;
double s,y,x,h,c=0;
//Ввести значения
cout<<"Vvedite znacheniya a,b, shag h, i n"<<endl;
cin>>a>>b>>h>>n;
for(x=a;x<=b;x+=h) //В цикле перебираем значения x
{
s=0;
y=cos(x);
for(k=0;k<=n;k++) //цикл для определения суммы s
{
c=pow(-1,k)*(pow(x,2*k)/fac(2*k));
s+=c;
}
//значения в виде таблицы
printf("x=%5.3f y=%5.3f s=%5.3f |y(x)-s(x)|=%5.3f\n",x,y,s,fabs(y-s));
}

(2k )! ,

.

cout<<"Press any key..."<<endl;
getch();
}

Рисунок 5 – Результат выполнения задания 3

Задание 4. В одномерном целочисленном массиве (размер массива (не
больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму
элементов массива, расположенных между первым и последним положительными
элементами.
Решение:

#include<iostream.h>
#define n 20
#include<conio.h>
void main()
{
int i,s[n],a,b,sum=0;
cout<<"Vvedite massiv:"<<endl;
for(i=0;i<n;i++)

{cout<<"Vvedite "<<i+1<<" element massiva:"<<endl;

cin>>s[i];}

for(i=0;i<n;i++)
if(s[i]>0){a=i;break;}
for(i=n-1;i>=0;i--)
if(s[i]>0){b=i;break;}
for(i=a+1;i<b;i++)sum+=s[i];
cout<<"Summa elementov: "<<sum<<endl;
cout<<"Press any key..."<<endl;
getch();
}

Рисунок 6 – Результат выполнения задания 4

Задание 5. В двухмерном целочисленном массиве (размеры массива N, M и
значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new
и delete), ввод исходных данных и вывод полученных результатов выполнить
в основной функции, а решение задачи оформить в виде отдельной функции
пользователя. Не использовать глобальных переменных.
Найти минимальный элемент и поменять его с первым элементом.
Решение:

#include<iostream.h>
#include<conio.h>
void fun(int,int,int**);
void main()
{
int **a,i,n,m,j;
cout<<"Vvedite razmery massiva NxM:"<<endl;
cin>>n>>m;

a=new int *[n];
for(i=0;i<n;i++)
a[i]=new int[m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"\ta["<<i+1<<"]["<<j+1<<"]="<<endl;
cin>>a[i][j];
}
cout<<"Massiv:"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<"\t"<<a[i][j];
cout<<endl;}
fun(n,m,a);
cout<<"New massiv:"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<"\t"<<a[i][j];
cout<<endl;}
delete []a;
cout<<"Press any key..."<<endl;
getch();
}
void fun(int a,int b,int **z)
{
int i,j,min,p=0,q=0;
min=z[0][0];
for(i=0;i<a;i++)
for(j=0;j<b;j++)
if(z[i][j]<min){min=z[i][j];p=i;q=j;}
z[p][q]=z[0][0];
z[0][0]=min;
}

Рисунок 7 – Результат выполнения задания 5
Категория: Другое | Добавил: Филя
Просмотров: 1639 | Загрузок: 18
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]