Задача 1 Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
При x = 6.251, y = 0.827, z = 25.001 b = 0.8343.
Обобщенная схема алгоритма:
#include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> int main() { double x, y, z, a, b, c, d, rez ; // ввод исходных данных cout << "\n x,y,z = " << endl; cin >> x >> y >> z; //вычисление результата a=pow(y,(pow(fabs(x),1/3))); b=pow(cos(y),3)*fabs(x-y); c=pow(sin(z),2)/sqrt(x+y)+1; d=exp(fabs(x-y))+x/2; rez=b*c/d+a; // вывод на экран исходных данных и результата cout << "\n x = " << x << "\n y = " << y << "\n z = " << z << "\nRezultat = " << rez << endl; cout << "Press any key ... " << endl; getch();// задержка return 0; }
Задача 2 Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратить внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий. rez = Обобщенная схема алгоритма:
#include <conio.h> #include <iostream.h> #include <stdio.h> #include <math.h> void main() { double p, z, rez; cout << "Vvedite p, z" << endl; cin >> p >> z; // ввод данных if ((0<p)&&(p<=(z+1))) // условие для выполнения первой ветви {rez =pow(z,3)-log(fabs(p)+fabs(z)); cout << " 0<p<=z+1 " << endl; //вывод на экран первой ветви и результата cout << "\n\t Rezultat rez = " << rez;} else if (p>(z+1)) // условие для выполнения второй ветви { rez = log(fabs(p-z))+pow(cos(p),2); cout << " p>z+1" << 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 вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки. Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. , . Обобщенная схема алгоритма:
#include <stdio.h> #include <conio.h> #include <iomanip.h> #include<iostream.h> #include <math.h> int main() { double a,b,h,x,y,s,r,m,razn; int n,k; cout << "Vvedite a,b,h,n" << endl; //ввод данных cin >> a >> b >> h >> n; puts("---- x ---- ---- Y(x) ---- ---- S(x) ---- ---- |Y(x)-S(x)| ----"); for(x = a; x<=b; x+=h) { s =m= r=1; for(k = 1; k<=n+1; k++) { // цикл нахождения S(x) и Y(x) m=m*k; // нахождение факториала (k!) r=(k*k+1)*pow(x/2,k)/m; s=s+r; } y=exp(x/2)*(x*x/4+x/2+1); razn=fabs(y-s); cout << setw(9) << x << setw(15) << y << setw(15) << s << setw(15) << razn << endl; //вывод результатов на экран } getch(); return 0; }
Задача 4 В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить cумму элементов массива, расположенных после минимального элемента.
Обобщенная схема алгоритма:
#include <iostream.h> #include <conio.h> void main() { int a[20], n, i, min, sum = 0, k; cout << "\t Input N (<=20) "; //ввод элементов массива cin >> n; cout <<"\n\t Massiv A" << endl; //вывод на экран элементов массива for(i = 0; i < n; i++) { cout << "\t a[ " << i+1 << " ] = "; cin >> a[i]; } min=a[0]; for(i=0; i<n;i++) //цикл нахождения минимального элемента if(a[i] < min){ min=a[i]; k=i; // запоминание позиции минимального элемента } for(i=k+1; i<n;i++) //цикл высчитывания суммы элементов sum+=a[i]; cout << "\n Min. element = " << a[k] << endl; //вывод на экран результатов cout << "\n Summa posle min. elementa= " << sum << endl; cout << "\n Press any key ... " << endl; getch(); }
Задача 5 В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) Найти число элементов массива < T ( T вводить с клавиатуры) и их сумму. Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Обобщенная схема алгоритма:
Обобщенная схема алгоритма функции 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, sum, kol,t; cout << "\t Input N, M: "; // ввод параметров массива cin >> n >> m; cout << "\t Input T: "; cin >> 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; } // Обращение к функции с указанием фактических аргументов sum = Fun_Sum_Kol(n, m, t, a, &kol); cout << "\n Kol-vo elementov < T= " << kol << "\t Summa elementov < T = " << sum << endl; //вывод результатов на экран delete []a; // Освобождение памяти cout << "\n\t Delete !" << endl; cout << " Press any key ... " << endl; getch(); } // Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде int Fun_Sum_Kol(int a, int b, int t, 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] <t){ (*k)++; s +=x[i][j]; } return s; }