Вариант 30 Задача №1 Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях. 14. . При x = 12.310-1, y = 15.4, z = 0.252103 g = 82.8257. 187.345
Обобщенная схема алгоритма:
#include <iostream.h> #include <conio.h> #include <math.h> int main() { double x, y, z, g ; // ввод исходных даных cout << "\n\t x,y,z = " << endl; cin >> x >> y >> z; //вычисляем g = pow(y,x+1)/(pow(fabs(y-2),1/3.)+3)+(x+y/2)*pow(x+1,-1/sin(z))/(2*fabs(x+y)); // вывдим исходные данные и результат cout << "\n x = " << x << "\n y = " << y << "\n z = " << z << "\ng = " << g << endl; cout << "Press any key ... " << endl; getch();// задержка return 0; }
Задача №2 Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен.
14. rez =
Обобщенная схема алгоритма:
#include <conio.h> #include <iostream.h> #include <stdio.h> #include <math.h> void main() { double r,m ,rez; cout << "Input r, m" << endl; cin >> r >> m; if (r>-2*m) // первая ветвь { rez = exp(-fabs(m+r))+log(fabs(m)); cout << " r > -2m " << endl; cout << "\n\t Rezultat rez = " << rez; } else if ((-2.5*m<r)&&(r<=-2*m)) // вторая { rez = exp(fabs(m+r))-log(fabs(m)); cout << " -2.5m<r<=-2m" << endl; cout << "\n\t Rezultat rez = " << rez; } else cout << " vne diapazona!!! " << endl; cout <<"\nPress any key ... " << endl; getch(); }
Задача №3 Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
14. , .
Обобщенная схема алгоритма:
#include <iostream.h> #include <conio.h> #include <iomanip.h> #include <math.h> int main() { double a,b,h,x,y,s,p; int n,k; cout << "Vvedite a,b,h,n" << endl; cin >> a >> b >> h >> n; x=a; cout <<"---- x ---- "<<" ---- y ---- "<<" ---- s ----"<<endl; do { s=p=x; for (k=1; k<=n; k++) {p *= x*x/((2*k+1)*2*k); s += p; } y=(exp(x)-exp(-x))/2; cout << setw(9) << x << setw(15) << y << setw(15) << s << endl; x += h; } while (x <= b+h/2); cout << endl; getch(); return 0; }
Задача №4 В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить: 1. Сумму модулей элементов массива, расположенных после первого элемента, рав¬ного нулю.
Обобщенная схема алгоритма:
#include <iostream.h> #include <conio.h> #include <math.h> void main() { int a[20], n, i, s = 0; do { cout << "\t Input N (<=20) "; cin >> n; if (n>20) cout << "\t n > 20, vvedite zanovo"<< endl; } while (n>20); cout <<"\n\t Massiv A" << endl; for(i = 0; i < n; i++) { cout << "\t a[ " << i+1 << " ] = "; cin >> a[i]; } i=0; while (a[i]) i++; while (i<n-1) {i++; s+=abs(a[i]); } cout << "\n "<< "\t Summa = " << s << endl; cout << "\n Press any key ... " << endl; getch(); }
Задача №5 В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение. Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных. 14. Найти число элементов массива = T* и перемножить эти элементы.
Обобщенная схема алгоритма:
Обобщенная схема алгоритма функции int Fun_Sum_Kol(int, int, int**, int*,int):
#include <iostream.h> #include <conio.h> int Fun_Sum_Kol(int, int, int**, int*,int); // Описание прототипа функции void main() { int **a, i, j, n, m, pr, kol,T; cout << "\t Input N, M, T : "; cin >> n >> m>>T; a = new int*[n]; // Захват памяти под указатели for(i=0; i<n;i++) a[i] = new int[m]; // Захват памяти под элементы cout <<"\n Input A" << 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 Matrix A:" << endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) cout << "\t" << a[i][j]; cout << endl; } // Обращение к функции с указанием фактических аргументов pr = Fun_Sum_Kol(n, m, a, &kol,T); cout << "\n Kol-vo = " << kol << "\t Proizvedenie = " << pr << endl; for(i=0; i<n;i++) delete a[i]; delete []a;// Освобождение памяти cout << "\n\t Delete !" << endl; cout << " Press any key ... " << endl; getch(); } /* Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде */ int Fun_Sum_Kol(int a, int b, int **x, int *k,int t) { int i, j, s = 1; *k = 0; for(i=0; i<a;i++) for(j=0; j<b;j++) if(x[i][j] ==t){ (*k)++; // Скобки обязательны s *= x[i][j]; } return s; }