Напишите программу, которая позволяет пользователю ввести в консоль три координаты вектора x, y, и z, с основанием у начала координат. Вычислите длину этого вектора и выведите её обратно в консоль. Вывод программы у вас должен быть похож на этот:
#include <iostream>
#include <locale>
#include <cmath>
using std::cout;
using std::cin;
int main()
{
setlocale(LC_ALL,"Russian");
double dX(0.0), dY(0.0), dZ(0.0);
double dVectorLength(0.0);
cout << "\n Введите Х: ";
cin >> dX;
cout << "\n Введите Y: ";
cin >> dY;
cout << "\n Введите Z: ";
cin >> dZ;
cout << "\n Вы ввели следующие числа: X = " << dX << "; Y = " << dY << "; Z = " << dZ;
dVectorLength = sqrt(dX*dX + dY*dY + dZ*dZ);
cout << "\n Длина вектора: " << dVectorLength << ". \n\n\a";
return 0;
}
А вот так выглядит вывод данной программы:
CppStudio.com
Введите Х: 5
Введите Y: 5
Введите Z: 5
Вы ввели следующие числа: X = 5; Y = 5; Z = 5
Длина вектора: 8.66025.
Комментарии
Lee Amstrong
Сделал ввод координат XYZ одной строкой, через регулярки, поддерживается ввод координат в виде чисел с плавающей точкой. У меня тут линуксы, но работать будет и под виндой, разве что только не будут отображаться русские символы, но вы и так знаете что с этим делать.
Это вывод с консоли (он же простым текстом, если изображение недоступно): тыц
alexandr@kompukter ~/Рабочий стол/memory-games/build $ ./main
Введите X Y Z координаты вектора (через пробел): 3.4 10 0.3
Длина вектора: 10.5665
#include <iostream> #include <string> #include <regex> #include <cmath> int main(int argc, char const *argv[]) { std::cout << "Введите X Y Z координаты вектора (через пробел): "; std::string s_coords; std::getline(std::cin, s_coords, '\n'); std::smatch match; std::regex rx("(\\d+[.]*\\d*).+?(\\d+[.]*\\d*).+?(\\d+[.]*\\d*)"); if (!std::regex_search(s_coords, match, rx)) { std::cout << "Неправильный формат, надо через пробел" << '\n'; return -1; } double x = std::stod(match[1]); double y = std::stod(match[2]); double z = std::stod(match[3]); std::cout << "Длина вектора: " << sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2)) << '\n'; }Alexey Kutch
Решение на Си:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { system("chcp 1251 > nul"); int x, y, z; float dlinna; printf("Введите координату X = "); scanf("%d", &x); printf("\nВведите координату Y = "); scanf("%d", &y); printf("\nВведите координату Z = "); scanf("%d", &z); printf("\nВы ввели следующие координаты: X = %d; Y = %d; Z = %d\n", x, y, z); dlinna = sqrt((x * x) + (y * y) + (z * z)); printf("Длина вектора: %3.5f", dlinna); return 0; }raman_by
#include <iostream> #include <conio.h> #include <string.h> #include <math.h> #include <cmath> using namespace std; float vector(int x, int y, int z); int main() { int x,y,z; cout << "Please enter a value of X: ...\n"; cin >> x; cout << "Please enter a value of Y: ...\n"; cin >> y; cout << "Please enter a value of Z: ...\n"; cin >> z; cout << "You entered this values: | X == "<<x<<"| Y == "<<y<<"| Z == "<<z<<endl; cout << "Your Vector is: " << vector(x,y,z) << endl; system("pause"); return 0; } float vector(int x, int y, int z) { float v; v = sqrt(pow(x,2.0)+pow(y,2.0)+pow(z,2.0)); return v; }