Скласти блок-схеми розв’язку задач обробки одновимірних та двовимірних масивів та програму на мові С++
Задано одновимірний масив(и). Заповнити масив(и) випадковим чином. Вивести елементи масиву на екран, виконати необхідну обробку масиву та вивести результат перетворень
Знайти косинус кута між двома векторами (прийняти за вектор масив з 10 елементів).
Ответы
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
const int SIZE = 10;
void fill(int a[], int s) { for (int i = 0; i < s; i++) a[i] = rand() % 100; }
void print(int a[], int s) { for (int i = 0; i < s; i++) std::cout << a[i] << " "; std::cout << std::endl; }
double cosAngle(int a[], int b[], int s) { double d = 0, nA = 0, nB = 0; for (int i = 0; i < s; i++) { d += a[i] * b[i]; nA += a[i] * a[i]; nB += b[i] * b[i]; } return d / (sqrt(nA) * sqrt(nB)); }
int main() {
srand(time(NULL));
int v1[SIZE], v2[SIZE];
fill(v1, SIZE); fill(v2, SIZE);
std::cout << "Первый вектор: "; print(v1, SIZE);
std::cout << "Второй вектор: "; print(v2, SIZE);
std::cout << "Косинус угла между векторами: " << cosAngle(v1, v2, SIZE) << std::endl;
return 0;
}