fork download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int* createArrow(int k){
  5. int* arr=new int [k];
  6. return arr;
  7. }
  8. double* createDoubleArrow(int k){
  9. double* arr=new double [k];
  10. return arr;
  11. }
  12.  
  13.  
  14. void readArrow(int* arr, int k) {
  15. for (int i = 0; i < k; i++) {
  16. cin >> arr[i];
  17. }
  18. }
  19. void printArrow(int* arr,int k){
  20. for (int i = 0; i < k; i++) {
  21. cout<<arr[i]<<" ";
  22. }
  23.  
  24. }
  25. void printDoubleArrow(double* arr,double k){
  26. cout<<endl<<"Нормирования компонент вектора(массив 1): ";
  27. for (int i = 0; i < k; i++) {
  28. cout<<arr[i]<<" ";
  29. }
  30.  
  31.  
  32. }
  33. void sumArrow(int* arr,int* arr1,int* result, int k){
  34. for (int i = 0; i < k; i++) {
  35. result[i]=arr[i]+arr1[i];
  36. }
  37. cout<<endl<<"Сумма масивов: ";
  38.  
  39.  
  40. }
  41. void minusArrow(int* arr,int* arr1,int* result, int k){
  42. for (int i = 0; i < k; i++) {
  43. result[i]=arr[i]-arr1[i];
  44. }
  45.  
  46. }
  47. double vectorLength(int* arr, int k){
  48. double sum=0;
  49. for (int i = 0; i < k; i++) {
  50. sum=sum+(arr[i]*arr[i]);
  51. }
  52.  
  53. return sqrt(sum);
  54. }
  55. void normVector(int* arr,double* result, int k, double vectorLength1){
  56. for (int i = 0; i < k; i++) {
  57. result[i]=arr[i]/vectorLength1;
  58. }
  59. ;
  60. }
  61.  
  62.  
  63. int skalyarniyDobutokVectoriv(int* arr, int* arr1, int k){
  64. int sum=0;
  65. for (int i = 0; i < k; i++) {
  66. sum=sum+(arr[i]*arr1[i]);
  67. }
  68. cout<<endl<<"Скалярное произведение векторов(массива 1 и 2): ";
  69. return sum;
  70. }
  71.  
  72.  
  73. double seredneArifmetichneKomponentVectora(int* arr, int k){
  74. int sum=0;
  75. for (int i = 0; i < k; i++) {
  76. sum=sum+arr[i];
  77. }
  78. return sum/k;
  79. }
  80.  
  81.  
  82. double euclidVidstan(int* arr, int k){
  83. int sum=0;
  84. for (int i = 0; i < k; i++) {
  85. sum=sum+(arr[i]*arr[i]);
  86. }
  87. return sqrt(sum);
  88. cout<<endl;
  89. }
  90.  
  91.  
  92. int main() {
  93.  
  94. int n, m;
  95. cin>>n;
  96. int* v = createArrow(n);
  97.  
  98. cout<<"Массив1: ";
  99. readArrow(v, n);
  100. printArrow(v, n);
  101.  
  102. int* v1 = createArrow(n);
  103. readArrow(v1, n);
  104.  
  105. int* v2 = createArrow(n);
  106. sumArrow(v,v1,v2,n);
  107. printArrow(v2, n);
  108.  
  109. cout<<endl<<"Разница масивов: ";
  110. minusArrow(v, v1, v2, n);
  111. printArrow(v2, n);
  112.  
  113. cout<<endl<<"Длина вектора(массив1): "<<vectorLength(v,n);
  114.  
  115. double* v3 = createDoubleArrow(n);
  116. normVector(v,v3,n,vectorLength(v,n));
  117. printDoubleArrow(v3, n);
  118.  
  119. cout<<skalyarniyDobutokVectoriv(v, v1,n);
  120.  
  121. cout<<endl<<"Среднее арифметическое компонент вектора: "<<seredneArifmetichneKomponentVectora(v, n);
  122.  
  123. minusArrow(v, v1, v2, n);
  124. cout<<endl<<"Евклидово расстояние: "<<euclidVidstan(v2,n);
  125.  
  126.  
  127. }
  128.  
Success #stdin #stdout 0s 5332KB
stdin
5
1 2 3 4 5
5 4 3 2 1
stdout
Массив1: 1 2 3 4 5 
Сумма масивов: 6 6 6 6 6 
Разница масивов: -4 -2 0 2 4 
Длина вектора(массив1): 7.4162
Нормирования компонент вектора(массив 1): 0.13484 0.26968 0.40452 0.53936 0.6742 
Скалярное произведение векторов(массива 1 и 2): 35
Среднее арифметическое компонент вектора: 3
Евклидово расстояние: 6.32456