С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33

Задача: написать программу для вычисления модуля вектора

18.06.2013, 10:33. Показов 6758. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.Начал изучение c++, дошёл до указателей и массивов, теперь решаю задачи.И вот одна из них, самая первая (возможно, она покажется многим "детской", но я почему-то не могу её решиь):
{ссылка удалена} (условие на картинке, уберите пробелы).

Вот что я сумел написать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath> //подключение мат. библиотеки
using namespace std;
int main()
{
int i; //индексная переменная
double a1[3]; //указываем массивы
double a2[3];
double a3[3];
double res=0; //переменная для хранения результата
cout << "Vvedite a1=";
for(i=0; i<3; i++) cin>> a1[i];
cout << "Vvedite a2=";             //ввод параметров "a"
for(i=0; i<3; i++) cin>> a2[i];
cout << "Vvedite a3=";
for(i=0; i<3; i++) cin>> a3[i];
//считаем резульат
for(i=0; i<3; i++) res+=sqrt(pow(a1[i]*a2[i]*a3[i], 2));
cout << "Pe3yJIbTaT= " <<res << endl; //выводим результат на экран
return 0;
}
Программа работает, но правильно ли?
И вот вопросы:
1.Нужно ли было указывать аж 3 массива: a1, a2, a3? Или нужно было просто указать 1 (т.к. всего 3 элемента)
2.Правильно ли я записал формулу: res+=sqrt(pow(a1[i]*a2[i]*a3[i], 2)) ? ( ну ясно что не правильно, скажите как надо..)
3.Как создать этот модуль (о котором говорится в задаче)? Я что-то не понял..

Добавлено через 12 минут
Эх, жаль что нельзя больше редачить сообщение, вот как должно быть:

Написать программу для вычисления модуля вектора.Компоненты вектора вводятся пользователем.Напомним, что модулем вектора a(вектор)=(a1,a2,a3) называется число a(вектор, по модулю)=sqrt(a1 ^2 + a2^2 + a3^2) (извините, что так тупо написал, но картинки мне пока нельзя загружать )

Вот что я сумел написать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath> //подключение мат. библиотеки
using namespace std;
int main()
{
int i; //индексная переменная
double a1[3]; //указываем массивы
double a2[3];
double a3[3];
double res=0; //переменная для хранения результата
cout << "Vvedite a1=";
for(i=0; i<3; i++) cin>> a1[i];
cout << "Vvedite a2=";             //ввод параметров "a"
for(i=0; i<3; i++) cin>> a2[i];
cout << "Vvedite a3=";
for(i=0; i<3; i++) cin>> a3[i];
//считаем резульат
for(i=0; i<3; i++) res+=sqrt(pow(a1[i]+a2[i]+a3[i], 2));
cout << "Pe3yJIbTaT= " <<res << endl; //выводим результат на экран
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2013, 10:33
Ответы с готовыми решениями:

Написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции
Была поставлена задача написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции. Сам код я...

Составить программу вычисления модуля вектора
Составить программу вычисления модуля вектора b=(b1,b2,..,bn)

Даны два вектора b=(b1,b2,.,b6),x=(x1,x2,.,x6) и матрица А(6х6).написать программу вычисления длины вектора Ax-b
Даны два вектора b=(b1,b2,...,b6),x=(x1,x2,...,x6) и матрица А(6х6).написать программу вычисления длины вектора Ax-b. очень прошу...

4
26 / 26 / 17
Регистрация: 29.12.2010
Сообщений: 90
18.06.2013, 14:51
Цитата Сообщение от S1GeR Посмотреть сообщение
sqrt(pow(a1[i]+a2[i]+a3[i], 2))
Корень из квадрата суммы это, а не суммы квадратов. Да и вообще, нелогично. Зачем аж три массива? В одном массиве хранить три элемента - три компоненты вектора. Обобщение теоремы Пифагора, просто сумму квадратов.
Цитата Сообщение от S1GeR Посмотреть сообщение
double a1[3]; //указываем массивы
double a2[3];
double a3[3];
заменяем на
C++
1
double a[3];
Соответственно, ввод только один.

Цитата Сообщение от S1GeR Посмотреть сообщение
for(i=0; i<3; i++) res+=sqrt(pow(a1[i]+a2[i]+a3[i], 2));
Если очень хочется общно (чтобы можно было сделать для k координат, например), то:
C++
1
2
3
for(i = 0; i < 3; i++)
   res += a[i]*a[i];
res = sqrt(res);
В таком случае вы сможете поменять потом 3 на k (количество компонент) и сделать общий случай.

P.S. Если очень охото писать по-русски, setlocale() поможет.

Добавлено через 3 минуты
Например, так можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath> //подключение мат. библиотеки
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    double a[3]; //указываем массивы
    double res = 0; //переменная для хранения результата
    cout << "Введите элементы массива a:\n";
    for(int i = 0; i < 3; i++) 
        cin >> a[i];
    for(int i = 0; i < 3; i++) 
        res += a[i]*a[i];
    res = sqrt(res);
    cout << "Результат = " << res << endl; //выводим результат на экран
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33
18.06.2013, 15:01  [ТС]
Nikoys, так?:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath> //подключение мат. библиотеки
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int i; //индексная переменная
double a[3]; //указываем массив
double res=0; //переменная для хранения результата
cout << "Ведите a=";
for(i=0; i<3; i++) cin>> a[i];
 
//считаем резульат
for(i = 0; i < 3; i++)
   res += a[i]*a[i];
res = sqrt(res);
cout << "Pe3yJIbTaT= " <<res << endl; //выводим результат на экран
return 0;
}
Только на счёт "setlocale" "каракули" выводятся.Читаю пока инфу о нём)
0
26 / 26 / 17
Регистрация: 29.12.2010
Сообщений: 90
18.06.2013, 15:05
S1GeR, я выше написал как можно, у меня на вижуалке все нормально с этим выписывает.
А так да, теперь, вроде, правильно.
1
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33
18.06.2013, 15:09  [ТС]
Спасибо! (вбил +1 =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2013, 15:09
Помогаю со студенческими работами здесь

Написать программу вычисления вектора Z=X+Y
заданы две матрицы А(4.4) и В(4.4). Написать прогамму вычисления вектора Z=X+Y, где X-строка матрицы А, включающая минимальный элемент ее...

Написать программу вычисления длины вектора
Даны два вектора b=(b1, b2, ..., bn), x=(x1, x2, ..., xn) и матрица A(nxn). Написать программу вычисления длины вектора Аx+b. Числа...

Написать программу вычисления длины вектора
Даны два вектора b=(b1, b2, ..., bn), x=(x1, x2, ..., xn) и матрица A(nxn). Написать программу вычисления длины вектора Аx+b. Числа...

Написать программу вычисления вектора Z = X + Y с использованием процедур
условия задание : Написать программу, осуществляющую заданные вычисления с использованием процедур. Вид используемых классов и методов...

Написать программу вычисления вектора с использованием процедур
Написать программу, осуществляющую заданные вычисления с использованием процедур. 2. Заданы две матрицы А (4, 4) и В (4, 4). Написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru