Форум программистов, компьютерный форум CyberForum.ru

программирование математических вычислений - C++

Восстановить пароль Регистрация
 
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
28.09.2012, 16:40     программирование математических вычислений #1
Для 5 векторов, координаты которых записаны в массиве 5x3, определить номер того, длина которого минимальна, с помощью функции, которая вычисляет модуль вектора как массива 3 чисел. ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
28.09.2012, 16:46     программирование математических вычислений #2
Цитата Сообщение от dimas28 Посмотреть сообщение
?
В этом невысказанном вопросе вы интересуетесь формулой вычисления модуля вектора?
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
28.09.2012, 17:02  [ТС]     программирование математических вычислений #3
нет - всего задания вообще
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 17:21     программирование математических вычислений #4
Ответ: 42.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
28.09.2012, 17:28     программирование математических вычислений #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
inline double vector_length(const double v[3]) {
    return v[0] * v[1] * v[2];
}
 
int main() {
    double v[5][3];
    for (char i = 0; i < 5; i++) {
        for (char j = 0; j < 3; j++)
            cin >> v[i][j];
        cout << vector_length(v[i]);
    }
}
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
28.09.2012, 17:44  [ТС]     программирование математических вычислений #6
подскажите, а как проверить результат - в какой последовательности - сколько символов в строку вводить
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 17:54     программирование математических вычислений #7
C++
1
2
3
inline double vector_length(const double v[3]) {
    return v[0] * v[1] * v[2];
}
Вам, батенька, матчасть учить надо :-)
severus-x
18 / 18 / 0
Регистрация: 21.09.2012
Сообщений: 78
28.09.2012, 18:01     программирование математических вычислений #8
длина вектора разве не по этой формуле расчитывается?
sqrt(v[i]^2+....v[n]^2)
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
28.09.2012, 18:06  [ТС]     программирование математических вычислений #9
и что значит - ответ: 42??? вроде как разные результаты значений там должны быть в итоге
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
28.09.2012, 18:10     программирование математических вычислений #10
dimas28, это главный ответ. На главный вопрос.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
29.09.2012, 15:08     программирование математических вычислений #11
Цитата Сообщение от Герц Посмотреть сообщение
Вам, батенька, матчасть учить надо :-)
Действительно, туплю что-то.
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
29.09.2012, 17:10     программирование математических вычислений #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <math.h>
 
using namespace std;
 
double Modul(double x, double y, double z)  {
    return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
}
 
int main(int argc, char *argv[])  {
    setlocale(LC_ALL, "Russian");
    const int n = 5, m = 3;
    int minIndex = 0;
    double temp;
    double vector[n][m];
    double moduls[n];
    cout << "Vector coords: \n";
    for(int i = 0; i < n; i++)  {
        cout << "x(" << i << ") = ";
        cin >> vector[i][0];
        cout << "y(" << i << ") = ";
        cin >> vector[i][1];
        cout << "z(" << i << ") = ";
        cin >> vector[i][2];
        moduls[i] = Modul(vector[i][0], vector[i][1], vector[i][2]);
        if(i == 0)  {
            temp = moduls[i];
            minIndex = i;
        }
        else  {
            if(temp > moduls[i])  {
                temp = moduls[i];
                minIndex = i;
            }
        }
        cout << "Модуль (" << i << ") вектора: " << moduls[i] << endl;
    }
    cout << "Минимальная длинна вектора: " << minIndex << endl;
    return 0;
}
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
29.09.2012, 18:12  [ТС]     программирование математических вычислений #13
в коде сказано про минимальную длину вектора, но при запуске программы этого не видно
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
29.09.2012, 18:14     программирование математических вычислений #14
Цитата Сообщение от dimas28 Посмотреть сообщение
не видно
Что видно то ? если не видно того что сказано ?
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
29.09.2012, 18:26  [ТС]     программирование математических вычислений #15
при каждом новом запуске программы(с разными значениями) минимальная длина вектора всегда получается нуль?
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
29.09.2012, 18:51     программирование математических вычислений #16
Цитата Сообщение от m1Rr0r Посмотреть сообщение
cout << "Минимальная длинна вектора: " << minIndex << endl;
заменить на это
C++
1
2
cout << "\nМинимальная длинна вектора: " << moduls[minIndex] << endl;
cout << "Индекс " << minIndex << endl;
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
29.09.2012, 19:13  [ТС]     программирование математических вычислений #17
спасибо

вот только не совсем понятно несколько моментов:
1) ...return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2))

2)...setlocale(LC_ALL, "Russian")

3)что подразумевает переменная temp
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2012, 20:05     программирование математических вычислений
Еще ссылки по теме:

C++ Решение математических задач
Решение математических задач C++
C++ Программирование математических выражений в C++

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

Или воспользуйтесь поиском по форуму:
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
29.09.2012, 20:05     программирование математических вычислений #18
Цитата Сообщение от dimas28 Посмотреть сообщение
1)...return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2))
http://www.cyberforum.ru/cgi-bin/latex.cgi?|vector| = sqrt(x^2 + y^2 + z^2)
это собственно модуль вектора
sqrt - функция для вычисления корня
pow(x,y) - для возведения числа "x" в степень "y"
Цитата Сообщение от dimas28 Посмотреть сообщение
2)...setlocale(LC_ALL, "Russian")
Для возможности вывода на русском языке.
Цитата Сообщение от dimas28 Посмотреть сообщение
3)что подразумевает переменная temp
Обычно так называют временные переменные.
В данно случае для того чтобы найти самый мелкий вектор нужно:
1. будем считать первый элемент массива вектором с минимальной длиной
2. запишем его во временную переменную temp
3. перейдем к следующему элементу массива
4. сравним, если текущий элемент массива меньше элемента который записан в temp, поместим в temp новое значение из текущего элемента массива, тем самым из двух проверенных элементов там будет находиться самый маленький
5. переходим к след. элементу в массиве, снова проверяем не является ли он еще меньше того что в temp, если да перезапишем, если нет двигаемся дальше. и т.д.
пройдя весь массив поэлементно, будет найден вектор с самой маленькой длиной.
Yandex
Объявления
29.09.2012, 20:05     программирование математических вычислений
Ответ Создать тему
Опции темы

Текущее время: 15:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru