int main(int argc, char* argv[]){ double x,y,z,res; double a,b,c,d,e,f,g; puts("\n\t x,y,z = "); res = scanf("%lf%lf%lf",&x,&y,&z); a = pow(x,y/x); b = pow(y/x,1.0/3.0); c = a-b; d = cos(y)-z/(y-x); e = 1+pow(y-x,2); f = d/e; g = (y-x)*f; res = c+g; printf("\n x = %7.3lf\n y = %7.3lf\n z = %7.3lf\nResult = %lf\n",x,y,z,res); puts("Press any key ..."); getch(); return 0; }
Задание №2. Реализация разветвляющихся алгоритмов 2.3.9 Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий. rez = Код программы: #include <stdio.h> #include <conio.h> #include <math.h>
int main(int argc, char* argv[]){ double m1,m2,a,res; puts("Input m1, m2"); res = scanf("%lf%lf",&m1,&m2); a = fabs(m1-2*m2); if (a>1) { res = 2*(m1-m2)*exp(m1/m2-1.0); puts(" |m1-2*m2|>1"); printf("\n\t Result = %8.6lf", res); } else if (a>0.1) { res = (m1-2*m2)/(m1*m1+2*m2*m2); puts(" 0.1<|m1-2*m2|<=1"); printf("\n\t Result = %8.6lf", res); } else { puts(" |m1-2*m2|<=0.1"); puts("\n\t “Уважаемый преподаватель, я обратил внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий. Собственно это и есть тот самый случай"); // Codepage 866 } puts("\nPress any key ..."); getch(); return 0; }
Задание №3. Реализация циклических алгоритмов
3.3.9 Для каждого 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>
int main(int argc, char* argv[]){ double a,b,x,h,r,s,y,m; int k,n,zn; puts("Input a,b,h,n"); r = scanf("%lf%lf%lf%d",&a,&b,&h,&n); for (x=a; x<=b; x+=h){ zn = -1; for (k=1; k<=n; k++){ zn *= -1; r = zn*pow(x,2*k+1)/(4.0*k*k-1.0); s += r; } y = (1+x*x)/2*atan(x)-x/2; m = fabs(y-s); printf("\n x=%8.2lf\tY(x)=%8.5lf\tS(x)=%8.5lf\t|Y(x)-S(x)|=%8.5lf",x,y,s,m); } puts("\nPress any key ..."); getch(); return 0; }
Задание №4. Обработка одномерных массивов 4.3.9 В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить: Сумму элементов массива, расположенных после последнего элемента, равного нулю. Код программы: #include <stdio.h> #include <conio.h> #include <math.h>
int main(int argc, char* argv[]){ int a[20],n,i,t,r,s = 0,ni = -1; puts("Input N (<=20)"); r = scanf("%d",&n); for (i=0; i<n; i++){ printf("\t a[%d]=",i+1); r = scanf("%d",&t); a[i] = t; if (t==0){ s = 0; ni = i; } else s += t; } if (ni>-1) printf("Sum = %d\n",s); else printf("В массиве нет элементов равных нулю. Сумма всех элементов равна %d\n",s); puts("Press any key ..."); getch(); return 0; }
Задание №5. Обработка двухмерных динамических массивов. Функции пользователя 5.3.9 В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение. Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных. Найти число элементов массива, больших T (вводится с клавиатуры) и просуммировать эти элементы.
int sum_count(int a, int b, int c, int **x, int *k){ int i,j,s=0; *k = 0; for (i=0; i<a; i++) for (j=0; j<b; j++) if (x[i][j]>c){ s += x[i][j]; (*k)++; } return s; }
int main(int argc, char* argv[]){ using namespace std; int **a,i,j,n,m,t,sum,count; cout << "\t Input N, M, T : "; cin >> n >> m >> t; a = new int*[n]; cout << "\n Input A\n"; for (i=0; i<n; i++){ a[i] = new int[m]; for (j=0; j<m; j++){ cout << "\t a[" << i+1 << "][" << j+1 << "] = "; cin >> a[i][j]; } } cout << "\n Matrix A:\n"; for (i=0; i<n; i++){ for (j=0; j<m; j++) cout << "\t" << a[i][j]; cout << endl; } sum = sum_count(n,m,t,a,&count); cout << "\n Count = " << count << "\t Sum = " << sum << endl; delete []a; cout << "\n\t Delete !\n"; cout << " Press any key ...\n"; getch(); return 0; }