Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

к.р.№1 (14 вариант 2010)

.doc
Скачиваний:
27
Добавлен:
01.04.2014
Размер:
201.73 Кб
Скачать

Вариант 14

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

При x = 12.310-1, y = 15.4, z = 0.252103g = 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.310-1, y = 15.4, z = 0.252103 (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)++;

}

Результат выполнения программы будет иметь следующий вид:

7