Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
S1GeR
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33
#1

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

18.06.2013, 10:33. Просмотров 1095. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 10:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача: написать программу для вычисления модуля вектора (C++):

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

Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя - C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя.

Написать функцию и программу для ее проверки для вычисления функции sin(x) C++ - C++
Написать функцию и программу для ее проверки для вычисления функции sin(x).

Написать программу для вычисления энтропии по формуле Шеннона для заданной последовательности - C++
Очень нужна программа для Dev С ++ для вычисления энтропии по формуле Шеннона для последовательности от 1 до 256

Написать программу для вычисления суммы f(a)+2f(a+h)+2f(a+2h)+...+2f(a+(n-1)h)+f(a+nh) - C++
Напишите программу, которая вычисляет значение выражения по формуле f(a)+2f(a+h)+2f(a+2h)+...+2f(a+(n-1)h)+f(a+nh) где...

Написать программу для вычисления функции F - C++
помогите решить данные 2 задачи 1.Использовать оператор while Написать программу для вычисления функции F, при этом, если не указано...

4
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
18.06.2013, 14:51 #2
Цитата Сообщение от 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
S1GeR
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33
18.06.2013, 15:01  [ТС] #3
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
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
18.06.2013, 15:05 #4
S1GeR, я выше написал как можно, у меня на вижуалке все нормально с этим выписывает.
А так да, теперь, вроде, правильно.
1
S1GeR
1 / 1 / 0
Регистрация: 04.05.2013
Сообщений: 33
18.06.2013, 15:09  [ТС] #5
Спасибо! (вбил +1 =)
0
18.06.2013, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 15:09
Привет! Вот еще темы с ответами:

Написать программу для вычисления суммы - C++
1)Написать программу для вычисления суммы S=1+1*2+1*2*4+1*2*4*6+...+1*2*...*n

Написать программу для вычисления ряда - C++
Не очень понимаю как вычислять подобные ряды. Подскажите пожалуйста может есть какой то общий алгоритм?

Написать программу для вычисления выражения - C++
помогите написать программу для вычесления

Написать программу для вычисления по формуле - C++
Помогите написать программу для этого примера пожалуйста. G=\frac{\sqrt{\left|m-n \right|}-sin\,m\,cos\,n}{ln\,tg\,\frac{m}{n}+e^{m^2}}


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.