Эврика!

Регистрация

Как нормировать вектор

С самого момента появления компьютер считался в первую очередь вычислительной машиной и сейчас все еще остается таковой. Любая команда, отдаваемая пользователем, переводится в набор нулей, единиц и операций с ними. Именно по этой причине на начальных этапах обучения программисты постоянно моделируют способы решения различных математических задач, например – нормировки вектора.Как нормировать вектор

Ознакомьтесь с математической теорией. Вектор имеет два основных параметра, характеризующих его: длину и направление. Задать и то, и другое можно, записав вектор в виде: a=xi+yj+zk, где i, j, k – единичные векторы системы координат, а x, y, z – коэффициенты. Т. е. фактически вектор задается как некоторое количество единичных отрезков. Если длина его не имеет значения, то проводится «нормировка»: процесс, в ходе которого вектор сокращается до стандартной единичной длины, сохраняя лишь информацию о направлении. Математически операция заключается в том, что каждую координату нужно поделить на модуль вектора, равный (x^2+y^2+z^2)^1/2 (корень из суммы квадратов).

Алгоритм реализации аналогичен для всех языков программирования, однако, во избежание путаницы, код будет приведен только для языка С.

Выведите на экран информацию о запросе. Сделать это можно командой printf(“Введите коэффициенты перед i, j, k:”);.Пользователю понадобится ввести три значения через пробел. В коде они будут сохранены как x, y, z типа float (дробные).

Сохраните введенные пользователем данные. Считывание удобнее всего организовать при помощи команды cin, находящейся в библиотеке iostream.h. Строка кода при этом будет выглядеть следующим образом: cin>>x>>y>>z;.

Рассчитайте и сохраните значение модуля вектора. Подключите библиотеку math.h, создайте переменную M типа float и введите расчетную формулу: S=sqrt(x*x+y*y+z*z);. Использование функции «квадрата» в данном случае нерационально.

Проверьте, не является ли вектор нулевым. Для этого поставьте условие: if (S==0) printf(“Вектор - нулевой”), следующую часть программы запишите под вкладкой else {…}, где троеточие – нижеприведенный код. Таким образом вы реализуете развилку для двух случаев.

Нормированные значения сохранять не обязательно, если нужно всего лишь вывести их на экран. Расчет и вывод в этом случае можно совместить в одно действие, записав строку кода: printf (“a(n)=%di+%dy+%dz”, x/s, y/s, z/s).

Поставьте команду getch(); чтобы консоль не закрывалась после выполнения задачи.

© CompleteRepair.Ru