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

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

Радиотехника (з.), ОАиП, Контрольная работа №2, вар.14, 2015
Подробности о скачивании 12.03.2016, 16:22
Министерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Кафедра «Вычислительные методы и программирование»

КОНТРОЛЬНАЯ РАБОТА № 1
по дисциплине
«ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ»
Вариант № 14




Выполнил:
студент группы 400441
Гусаров С. В.



Минск БГУИР 2015
ЗАДАНИЕ №1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
При x = 12.310-1, y = 15.4,
z = 0.252103 : 82.825623.

#include <iostream.h>
#include <math.h>
#include <conio.h>
int main ()
{
double x, y, z, g, a, b, c, d, e, f, i, h;

cout << "Vvedite x: ";
cin >> x;
cout << "Vvedite y: ";
cin >> y;
cout << "Vvedite z: ";
cin >> z;
a = pow(y,x+1);
b = pow(fabs(y-2),1/3.)+3;
c = a/b;
d = x+y/2;
e = 2*fabs(x+y);
f = d/e;
i = pow(x+1,-1/sin(z));
h = f*i;
g = h+c;
cout << "Result g=" << g << endl;
cout << "press any key ..." << endl;
getch();
return 0;
}




ЗАДАНИЕ №2
Вычислить значение y в зависимости от выбранной функции (x), аргумент которой определяется из поставленного условия. Возможные значения функции (x): 2x, x2, х/3 (в оконном приложениии выбор выполнить с помощью компоненты RadioGroup). Предусмотреть вывод сообщений, показывающих, при каком условии и с какой функцией производились вычисления у.
, где
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main ()
{
double y, x, a, b, f, z;
int kod;
cout << "Vvedite a:";
cin >> a;
cout << "Vvedite b:";
cin >> b;
cout << "Vvedite z:";
cin >> z;
if (z>0) {
x = sqrt(z);
cout << " Z > 0, x = " << x << endl;
}
else {
x = 3*z+1;
cout << " Z <= 0, x = " << x << endl;
}
cout << "\n 1 - 2x (for Default)\n 2 - x^2\n 3 - x/3" << endl;
cin >> kod;
switch(kod) {
case 1: default:
f = 2*x; cout << " f = 2x (defaul) = " << f << endl;
break;
case 2:
f = x*x; cout << " f = x*x = " << f << endl;
break;
case 3:
f = x/3; cout << " f = x/3 = " << f << endl;
break;
}
y = b*cos(a*f)+sin(x/5)+a*exp(x);
cout << " y = " << y << endl;
cout << "\n\tPress any key ..." << endl;
getch();
return 0;
}





ЗАДАНИЕ №3
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания (10, 20, 50, 100).
, .
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main ()
{
double x, a, b, h, n, r, s, y, g;
int k;
cout << "Vvedite a: ";
cin >> a;
cout << "Vvedite b: ";
cin >> b;
cout << "Vvedite h: ";
cin >> h;
cout << "Vvedite n: ";
cin >> n;
for(x = a; x<=b; x+=h) {
r = s = x;
for(k = 1; k<=n; k++) {
r = r * x*x/(2*k*(2*k+1));
s += r;
}
y = (exp(x) - exp(-x))/2;
g = fabs(y-s);
cout << "\n x = " << x << "\t sum = " << s
<< "\t y = " << y << "\t g = " << g;
}
cout << "\nPress any key ... " << endl;
getch();
return 0;
}





ЗАДАНИЕ №4
По заданию лабораторной работы №3 написать программу расчета выбранной функции Y(x), или S(x) (желательно и |Y(x)–S(x)|), вид которой определяется в функции вывода (Out_Rez) в зависимости от переданного ей параметра kod.
#include <iostream.h>
#include <math.h>
#include <conio.h>
double fun(double);
double sum(double, int);
int main ()
{
double x, a = 0.1, b = 1.0, h = 0.1, y, g, s;
int n = 10;
char code;
cout << "1 - Test, Else - Input " << endl;
code = getch();
if(code != '1') {
cout << "Vvedite a: ";
cin >> a;
cout << "Vvedite b: ";
cin >> b;
cout << "Vvedite h: ";
cin >> h;
cout << "Vvedite n: ";
cin >> n;
}
for(x = a; x<=b; x+=h) {
s = sum(x, n);
y = fun(x);
g = fabs(y-s);
cout << "\n x = " << x << "\t sum = " << s
<< "\t y = " << y << "\t g = " << g;
}
cout << "\nPress any key ... " << endl;
getch();
return 0;
}
//------------------------------------------
double fun(double x)
{
return (exp(x) - exp(-x))/2;
}
//------------------------------------------
double sum(double x, int n)
{
double r, s;
int k;
r = s = x;
for(k = 1; k <= n; k++) {
r = r * x*x/(2*k*(2*k+1));
s += r;
}
return s;
}


ЗАДАНИЕ №5
Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random().
Сумму модулей элементов массива, расположенных после первого элемента, рав¬ного нулю.
#include <iostream.h>
#include <math.h>
void main()
{
const int N = 50;
int n, i, s=0, massiv[N];
cout << "Vvedite razmer: ";
cin >> n;
if(n < 1 || n > 50) {
cout << "Error Size, for Default size = 5" << endl;
n = 5;
}
cout<<"Vvedite massiv\n";
for(i=0;i<n;i++)
cin >> massiv[i];
for(i=0;i<n;i++)
cout<<"\n massiv["<<i<<"] = "<<massiv[i];
for(i=0; i<n; i++) {
if(massiv[i]==0)
{
for(i=i+1; i<n; i++)
s += abs(massiv[i]);
break;
}
}
if(s == 0)
cout << "\nNet 0, ili 0 poslednij!" << endl;
else cout<<"\nSumma = "<<s << endl;
}





ЗАДАНИЕ №6
Написать программу по обработке динамических массивов. Размеры массивов вводить с клавиатуры.
В матрице размером NM поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <math.h>
int main()
{
double **a, tmp;
int i, j, n, m, imin, jmin, imax, jmax;
cout << "Vvedite razmer: n, m" << endl;
cin >> n >> m;
a = new double*[n];
for(i=0; i<n; i++)
a[i] = new double[m];
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
cout << "Vvedite a[" << i << "][" << j << "]: " ;
cin >> a[i][j];
}
cout << "Massiv A:" << endl;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
cout << setw (9) << a[i][j] << " ";
cout << endl;
}
imin=jmin=imax=jmax=0;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
if (a[i][j]<a[imin][jmin]) { imin=i;
jmin=j;
}
if (a[i][j]>a[imax][jmax]) { imax=i;
jmax=j;
}
}
for (j=0; j<m; j++)
{
tmp = a[imin][j];
a[imin][j] = a[imax][j];
a[imax][j] = tmp;
}
cout << "Result :" << endl;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
cout << setw (9) << a[i][j] << " ";
cout << endl;
}
for(i=0; i<n; i++)
delete [] a[i];
delete []a;
a = NULL;
getch();
return 0;
}




ЗАДАНИЕ №7
Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки с которой оно начинается.
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
void main()
{
int n, i, k, pos, nom, max,nmax;
char st[81];
char sl[30];
puts(" Vvedite stroku ");
gets(st);
strcat(st," ");
n = strlen(st);
if (n < 3) return;
sl[0] = '\0';
k=0;
nom=0;
max=0;
for (i=0; i<n; i++)
if (st[i+1] != ' ')
{
sl[k] = st[i+1];
sl[k+1] = '\0';
k++;
}
else
{

nom++;
if (strlen(sl)>max) {max=strlen(sl); nmax=nom; pos=i-max+2;}
sl[0] = '\0';
k = 0;
}
cout << "Nomer slova maksimal`noj dlini = " << nmax << endl;
cout << "Ono nachinaetsja s pozicii " << pos << endl;
puts("\nPress any key ... ");
getch();
}
Категория: Другое | Добавил: Stigmant
Просмотров: 890 | Загрузок: 3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]