к.р.№1 (13 вариант 2010)
.docВариант 13
Задание 1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
. |
При x = 17.421, y = 10.36510-3, z = 0.828105 f = 0.33056. |
Решение:
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
void main(void) {
float x, y, z, f;
x = 17.421f;
y = 0.010365f;
z = 82800.0f;
f = pow( y + pow( x-1 , 1/3.0f ), 1/4.0f ) / (abs(x-y)*(sin(z)*sin(z) + tan(z)));
cout << "f = " << f << endl;
cout << "Press any key to continue";
getch();
}
Задание 2
Составить программу для вычисления значения rez в зависимости от поставленного условия.
rez =
Решение:
#define _USE_MATH_DEFINES
#include <math.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
void main(void) {
float k, p, rez;
cout << "Enter k: ";
cin >> k;
cout << "Enter p: ";
cin >> p;
if( k > abs(p) ) {
rez = (atan(7*k) - 5*p)/(2*sin(k*k)+3*p*p);
cout << "k > |p|" << endl;
cout << "s = " << rez;
}
else if ( k > 0.1f*abs(p) ) {
rez = abs(k-p)*(M_PI/2.0f - atan(2*k));
cout << "0.1*|p| < k <= |p|" << endl;
cout << "s = " << rez;
}
else {
cout << "Nope";
}
printf("\nPress any key to exit");
getch();
}
Задание 3
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
, .
Решение:
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
int fact( int value ) {
if( value == 0 )
return 1;
int f = 1;
for( int i = 1; i <= value; ++i ) {
f *= i;
}
return f;
};
float my_func( float x, int n ) {
float s = 0;
for( int k = 0; k < n; ++k ) {
s += pow(-1.0f, k) * pow(2.0f*x,2*k) / (float)fact( 2*k );
}
return s;
}
void main(void) {
float a, b, h, y, s;
int n;
cout << "Enter a: ";
cin >> a;
cout << "Enter b: ";
cin >> b;
cout << "Enter h: ";
cin >> h;
cout << "Enter n: ";
cin >> n;
for( float x = a; x < b; x+=h ) {
s = my_func( x, n );
y = 2.0f*(cos(x)*cos(x)-1.0f);
cout << "S(x)=" << s << "; Y(x)=" << y << "; |Y(x)-S(x)|=" << abs(y-s) <<"; x=" << x << endl;
}
cout << "\nPress any key to exit";
getch();
}
Задание 4
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить:
Сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Решение:
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <math.h>
#include <conio.h>
// ввод значений массива
void mass_in( int *m, int n ) {
for( int i = 0; i < n; ++i ) {
cout << "M[" << i << "] = ";
cin >> m[i];
}
}
void main(void) {
const int size = 10;
int m[size];
// ввод значений массива
cout << "\nEnter array:\n";
mass_in( m, size );
int ind = -1;
for( int i = 0; i < size; ++i ) {
if( m[i] < 0 ) {
ind = i + 1;
break;
}
}
int s = 0;
if( ind != -1 ) {
for( int i = ind; i < size; ++i ) {
s += abs( m[i] );
}
cout << "S = " << s << "; Count = " << size - ind << endl;
}
else {
cout << "There are no negative elements\n";
}
cout << "Press any key to exit";
getch();
}
Задание 5
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Найти число элементов массива = T* и сложить эти элементы.
Решение:
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <conio.h>
void get_sum( int *count, int *sum, int t, int *mass, int size ) {
*sum = 0;
*count = 0;
for( int i = 0; i < size; ++i ) {
if( mass[i] == t ) {
(*count) ++;
*sum += mass[i];
}
}
}
void matrix_in( int *matrix, int n, int m ) {
for( int j = 0; j < n; ++j ) {
for( int i = 0; i < m; ++i ) {
cout << "MATRIX[" << j << "][" << i << "] = ";
cin >> *(matrix + j*m + i);
}
}
}
int main(void) {
int *matrix;
int n, m;
cout << "Enter N: ";
cin >> n;
cout << "Enter M: ";
cin >> m;
matrix = new int[n*m];
if( !matrix ) {
cout << "Memory allocation error";
return 1;
}
cout << "Enter matrix:\n";
matrix_in( matrix, n, m );
int t;
cout << "Enter T: ";
cin >> t;
int count;
int sum;
get_sum( &count, &sum, t, matrix, n*m );
cout << "\nCount: " << count << "; Sum = " << sum << ";";
cout << "\nPress any key to exit";
getch();
return 0;
}