Описать структуру Трехмерный вектор с полями Координата х, Координата у, Координата z - C (СИ)
Формулировка задачи:
Описать структуру Трехмерный вектор с полями Координата х, Координата у, Координата z. Создать функцию длина (v), возвращающую дину вектора v, и функцию произведения (v,k) умножающую вектор v на число k.
Должна быть реализована функция ввода и вывода данных объекта структуры на экран . для структуры Точка- вывод вида (x,y,z)
Решение задачи: «Описать структуру Трехмерный вектор с полями Координата х, Координата у, Координата z»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
struct Vector{
double x;
double y;
double z;
};
double length(Vector v){
return sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
}
void product(Vector& v, double k){
v.x *= k;
v.y *= k;
v.z *= k;
}
void input(Vector& v){
printf("Input three coordinates: ");
double x = 0, y = 0, z = 0;
scanf("%lf%lf%lf", &x, &y, &z);
printf("%f %f %f\n", x, y, z);
v.x = x;
v.y = y;
v.z = z;
}
void output(Vector v){
printf("(%f, %f, %f)", v.x, v.y, v.z);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями и структурой
Vector. - Объявляем структуру
Vectorс полямиx,y,zтипаdouble. - Определяем функцию
length, которая вычисляет длину вектора по формулеsqrt(x^2 + y^2 + z^2). - Определяем функцию
product, которая масштабирует векторvпо коэффициентуk. - Определяем функцию
input, которая запрашивает у пользователя ввод координат вектораvи присваивает их соответствующим полям структуры. - Определяем функцию
output, которая выводит векторvна экран в формате(x, y, z). - В основной функции программы создаем экземпляр структуры
Vectorи вызываем функцииinputиoutputдля ввода и вывода вектора. - Вызываем функцию
lengthдля вычисления длины вектора. - Вызываем функцию
productдля масштабирования вектора. - Вводим и выводим измененный вектор.
- Выводим исходный вектор.
- Завершаем программу.