к.р.№1 (14 вариант 2010)
.docВариант 14
Задание 1. Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
При x = 12.310-1, y = 15.4, z = 0.252103 g = 82.8257.
Решение.
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
double x, y, z, a, b, c, rez;
puts("\n\t x, y, z = ");
scanf("%lf %lf %lf", &x, &y, &z);
a = pow(y,x+1)/(pow(fabs(y-2),1 * 1.0/3)+3);
b = (x+(y/2))/(2*fabs(x+y));
c = pow(x+1,(-1)/sin(z));
rez = a+b*c;
printf("\n x = %7.3lf \n y = %7.3lf \n z = %7.3lf \n Rezult = %lf \n", x, y, z, rez);
puts("Press any key ... ");
getch();
}
Введя исходные данные x = 12.310-1, y = 15.4, z = 0.252103 (x и z – в форме с плавающей точкой), результат выполнения программы будет иметь следующий вид:
Задание 2. Составить программу для вычисления значения rez в зависимости от поставленного условия.
rez =
Решение.
Текст программы:
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
double r, m, rez;
puts("Input r, m");
scanf("%lf%lf",&r, &m);
if (r > -2*m)
{ rez = exp(-fabs(m+r))+log10(fabs(m));
puts(" r > -2*m");
printf("\n\t Rezult rez = %8.6lf", rez);
}
else { if ((r <= -2*m)&&(r > -2.5*m))
{ rez = exp(fabs(m+r))-log10(fabs(m));
puts("-2.5*m < r <= -2*m");
printf("\n\t Rezult rez = %8.6lf", rez);
}
else puts(" Net rechenia ");
}
puts("\n Press any key ... ");
getch();
}
Результаты выполнения программы для различных исходных данных:
1 вариант введенные значения соответсвуют первому условию:
2 вариант введенные значения соответсвуют второму условию:
3 вариант введенные значения не будут подходить ни для одного из предложенных условий:
Задание 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 выбрать в зависимости от задания.
, .
Решение.
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float a, b, x, h, t, s, y, r;
int n,k;
puts("Input a,b,h,n");
scanf("%f%f%f%d", &a, &b, &h, &n);
for(x = a; x <= b; x+=h) {
t = x;
s = x;
for(k = 1; k <= n; k++) {
t = t*x*x/(2*k*(2*k+1));
s+=t;
}
y = (exp(x)-exp(-x))/2;
r = fabs(y-s);
printf("\n x= %8.2f sum= %8.5f y= %8.5f |y-s|= %f ", x, s, y, r);
}
puts("\n Press any key ... ");
getch();
}
Результат выполнения программы будет иметь следующий вид:
Задание 4. В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Решение.
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i, inol, s = 0;
printf("\n Input n (<=20) ");
scanf("%i",&n);
printf("\n Input massiv");
for(i = 0; i < n; i++) {
printf("\n a[%i]= ",i);
scanf("%i",&a[i]);
}
for(i = 0; i < n;i++)
if(a[i] == 0) break;
inol = i;
if (inol == n) printf("\n Net nylevix elementov");
else for(i = inol+1; i < n; i++)
s = s+fabs(a[i]);
printf("\n s = %i",s);
printf("\n Press any key ...");
getch();
}
Результат выполнения программы будет иметь следующий вид:
Задание 5. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти число элементов массива = T(вводится с клавиатуры) и перемножить эти элементы.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Решение.
Текст программы:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void pr_kol(int, int, int, int**, int*);
void main()
{
int **a, i, j, n, m, T, kol;
cout << "\t Vvedite n, m, T : ";
cin >> n >> m >> T;
a = new int*[n];
for(i=0; i<n;i++)
a[i] = new int[m];
cout <<"\n Vvedite massiv" << endl;
for(i=0; i<n; i++)
for(j=0; j<m; j++){
cout << "\t a[" << i+1 << "][" << j+1 << "] = ";
cin >> a[i][j];
}
cout <<"\n Massiv:" << endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++)
cout << "\t" << a[i][j];
cout << endl;
}
pr_kol(n, m, T, a, &kol);
if (kol != 0)
cout << "\n Kol-vo = " << kol << "\t Proizvedenie = " << pow(T,kol) << endl;
else cout << "\n Elem = T net" << endl;
delete []a;
cout << "\n\t Delete !" << endl;
cout << " Press any key ... " << endl;
getch();
}
void pr_kol(int a, int b, int T, int **x, int *k)
{
int i, j;
*k = 0;
for(i=0; i<a;i++)
for(j=0; j<b;j++)
if(x[i][j] == T) (*k)++;
}
Результат выполнения программы будет иметь следующий вид: