Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 1445
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1336
∙ повысить рейтинг »
Micren
Статус: Бакалавр
Рейтинг: 1173
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1437
Дата выхода:05.12.2009, 19:00
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:675 / 184
Вопросов / ответов:8 / 13
IRC-канал по теме:#C

Вопрос № 174681: Доброго времени суток! Необходимо написать программку на C++ (желательно в VS 2008): из элементов массива А сформировать массив D той же размерности по правилу: первые 10 элементов Di = Ai*i, остальные Di = Ai-i. Заранее благодарен....


Вопрос № 174684: Здравствуйте!Помогите,пожалуйста,с задачей! Вычислить значение функции f(x) в заданной точке с помощью интерполирования кубическим сплайном . Граничные условия: S**(X0)=A; и S*(Xn)=B //знак * -знак производной// Во входном файле :...
Вопрос № 174686: Уважаемые эксперты помогите решить задачу: Подсчитать количество слов меньше 4 символов, разделенных одним или несколькими пробелами и состоящие из латинских букв....
Вопрос № 174689: Доброго времени суток! Необходимо написать программку на C++ (желательно, чтобы работала на VS 2008). Задача: найти номера всех элементов массива n[10] = {1,43,23,77,0,34,11,8,6,77}, равных максимальному элементу этого массива. Заранее благода...
Вопрос № 174693: Уважаемые эксперты помогите решить задачу: Вид массива (полученный массив напечатать) 4 3 2 1 3 2 1 0 2 1 0 0 1 0 0 0 В каждом столбце найти наименьший элемент, затем найти их произведение. Помогите пожалуйста, а то я не очень ...
Вопрос № 174698: Добрый вечер Уважаемые эксперты. Пожалуйста помогите со следующей задачей: Организовать поиск введенного с клавиатуры файла в введенной с клавиатуры директории и ее поддиректории. (С использованием функций findfirst и findnext). То, ...
Вопрос № 174702: Доброго времени суток! Есть задачка: вычислить сумму Z = 1 + 2 + 3 + .... Вычисления прекратить, когда значение Z превысит заданное значение A. Понимаю не сложная, но не могу понять, что вообще требуется. Нужно написать программку на C++. Заран...
Вопрос № 174722: Здравствуйте Уважаемые Эксперты! Помогите пожалуйста: необходимо перегрузить операции разности и векторного произведения. Заранее благодарен!...

Вопрос № 174681:

Доброго времени суток!
Необходимо написать программку на C++ (желательно в VS 2008): из элементов массива А сформировать массив D той же размерности по правилу: первые 10 элементов Di = Ai*i, остальные Di = Ai-i.
Заранее благодарен.

Отправлен: 29.11.2009, 18:36
Вопрос задал: starcode, Посетитель
Всего ответов: 3
Страница вопроса »


Отвечает AMV007, 3-й класс :
Здравствуйте, starcode.

[CODE]
#include <windows.h>


#define MAX_ARRAY_EL 10000
int _tmain(int argc, _TCHAR* argv[])
{
int ElementCount=0;
int TempElement=0;
int *A=new int[MAX_ARRAY_EL]; // массив A
int *D=new int[MAX_ARRAY_EL]; // массив D
printf("Please input array A, no more %d elements, to end input type any symbol and enter\n",MAX_ARRAY_EL);
while(scanf("%d",&A[ElementCount++])>0);

ElementCount--;

for(int i=0;i<ElementCount;i++)
{
if(i<10)
{
D[i]=A[i]*i;
}
else
{
D[i]=A[i]-i;
}
}

printf("Array D, %d elements : \n",ElementCount);
for(int i=0;i<ElementCount;i++)
{
printf(" [%d] ",D[i]);
}
system("pause");
return 0;
}
[/CODE]
-----
для благодарностей: Webmoney : R142922098315, yandex-деньги : 41001397131636

Ответ отправил: AMV007, 3-й класс
Ответ отправлен: 29.11.2009, 19:35

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257071 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Micren, Бакалавр :
    Здравствуйте, starcode.
    Программа. C++.

    Код:
    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    #include <ctime>

    using namespace std;

    // Размерность массива
    const size_t Dim=20;

    // Заполняет массив случайными числами
    template<size_t Dim>
    void genArray(int (&array)[Dim])
    {
    for(size_t i=0;i<Dim;++i)
    {
    array[i]=rand()%50;
    }
    }

    // Выводит массив на экран
    template<size_t Dim>
    void printArray(const char* const msg,const int (&array)[Dim])
    {
    cout<<msg<<endl;
    for(size_t i=0;i<Dim;++i)
    {
    cout<<setw(4)<<array[i]<<' ';
    }
    cout<<endl;
    }

    // Решение задачи
    te mplate<size_t Dim>
    void solve(const int (&src)[Dim],int (&dst)[Dim])
    {
    for(size_t i=0;i<Dim;++i)
    {
    if(i<10)
    {
    dst[i]=src[i]*i;
    }
    else
    {
    dst[i]=src[i]-i;
    }
    }
    }

    int main()
    {
    srand(time(0));
    int A[Dim],D[Dim];
    genArray(A);
    printArray("Array A:",A);
    solve(A,D);
    printArray("Array D:",D);
    return 0;
    }

    Пример вывода:
    Код:
    Array A:
    35 42 23 12 15 27 5 44 37 19 15 20 13 22 3 49 43 41 6 43
    Array D:
    0 42 46 36 60 135 30 308 296 171 5 9 1 9 -11 34 27 24 -12 24

    Ответ отправил: Micren, Бакалавр
    Ответ отправлен: 29.11.2009, 19:38

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257072 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает LfiN, 9-й класс :
    Здравствуйте, starcode.
    Вот простейший код с подробными комментариями

    Код:
    #include <iostream>
    #include <ctime>
    using namespace std;

    const k=1000;
    void main(){
    int i, n;
    int A[k],B[k];

    locale::global(locale("russian_russia.866")); // Чтобы печатать русскими буквами
    srand(time(0)); //Так как массив будет заполняться случайными числами, то эта функция необходима,
    //чтобы при каждом запуске генерировались разные цифры
    wcout<<L"Ведите размерность массива: ";
    cin>>n;
    for(i=0;i<n;i++){ //Заполняем и выводим элементы массива A
    A[i] = rand()%100; //так генерируются случайные числа
    cout<<"A["<<i<< "]="<<A[i]<<endl;
    }

    for(i=0;i<10;i++) B[i]=A[i]*i; //заполняем первые 10 элементов массива В
    for(i=10;i<n;i++) B[i]=A[i]-i; //заполняем остальные элементы массива и

    cout<<"____________________________________"<<endl;

    for(i=0;i<n;i++){ //выводим элементы массива B
    cout<<"B["<<i<<"]="<<B[i]<<endl;
    }

    }

    Ответ отправил: LfiN, 9-й класс
    Ответ отправлен: 29.11.2009, 23:03

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257087 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174684:

    Здравствуйте!Помогите,пожалуйста,с задачей!
    Вычислить значение функции f(x) в заданной точке с помощью интерполирования кубическим сплайном .
    Граничные условия:
    S**(X0)=A; и S*(Xn)=B //знак * -знак производной//

    Во входном файле :

    n - размер таблицы
    X - вектор значения аргумента в порядке возрастания
    Y - вектор значения функции в заданной точке
    A,B - константы граничных условий
    XX-заданная точка

    В выходном файле :

    YY- вычисленное значение функции
    IER- сообщение об ошибке:
    IER=0 - ошибок нет
    IER=1 - если нарушено возрастание
    IER=2 - XX не принадлежит отрезку интерполирования (X0,Xn)
    IER=3- если N < 3

    Отправлен: 29.11.2009, 20:01
    Вопрос задал: РАИ, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Dr_Andrew, Старший модератор :
    Здравствуйте, РАИ!
    По ссылкам ниже приводятся готовые программные решения аналогичных Вашей задач. Доработки минимальны.
    На C: http://www.srcc.msu.su/num_anal/lib_na/cat/cat914.htm
    На Delphi: http://hacker.3dn.ru/load/3-1-0-31

    Ответ отправил: Dr_Andrew, Старший модератор
    Ответ отправлен: 02.12.2009, 10:26
    Казахстан, Алма-Ата
    Организация: Казахский научный центр карантинных и зоонозных инфекций
    Адрес сайта: Медицинские программы для Linux
    ICQ # 256452186

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257190 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174686:

    Уважаемые эксперты помогите решить задачу:
    Подсчитать количество слов меньше 4 символов, разделенных одним или несколькими пробелами и состоящие из латинских букв.

    Отправлен: 29.11.2009, 20:16
    Вопрос задал: vovan595, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Boriss, Академик :
    Здравствуйте, vovan595.
    В приложении код решения, написанный в VS 2008.
    Пример окна программы:
    Код:
    Input of string with length upto 80:
    asdfhg h jjk jhkhkh sj jjj j
    Count of words with length upto 4 equals 5
    Press any key ...


    Я считал, что в состав слов могут входить любые символы. Если хотите только буквы, то точнее сформулируйте, что делать, если внутри слова встретилась, например, цифра

    Что не понятно будет - спрашивайте.

    Приложение:

    -----
    Вывод - то место в тексте, где вы устали думать

    Ответ отправил: Boriss, Академик
    Ответ отправлен: 29.11.2009, 22:41

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257086 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174689:

    Доброго времени суток!
    Необходимо написать программку на C++ (желательно, чтобы работала на VS 2008). Задача: найти номера всех элементов массива n[10] = {1,43,23,77,0,34,11,8,6,77}, равных максимальному элементу этого массива.
    Заранее благодарен.

    Отправлен: 29.11.2009, 20:47
    Вопрос задал: starcode, Посетитель
    Всего ответов: 3
    Страница вопроса »


    Отвечает AMV007, 3-й класс :
    Здравствуйте, starcode.
    например :

    Приложение:

    -----
    для благодарностей: Webmoney : R142922098315, yandex-деньги : 41001397131636

    Ответ отправил: AMV007, 3-й класс
    Ответ отправлен: 29.11.2009, 21:02

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257077 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Micren, Бакалавр :
    Здравствуйте, starcode.
    Программа. C++.

    Код:
    #include <iostream>
    #include <limits>

    using namespace std;

    int main()
    {
    // Массив
    int n[] = {1,43,23,77,0,34,11,8,6,77};
    // Размер массива
    size_t size=sizeof(n)/sizeof(n[0]);
    // Максимальный элемент
    int max=numeric_limits<int>::min();
    cout<<"Массив:"<<endl;
    for (size_t i=0;i<size;++i)
    {
    cout<<n[i]<<' ';
    if (max<n[i])
    {
    max=n[i];
    }
    }
    cout<<endl<<"Индексы максимальных элементов:";
    for (size_t i=0;i<size;++i)
    {
    if (max==n[i])
    {
    cout<<i<<' ';
    }
    }
    cout<<endl;
    return 0;
    }

    Вывод программы:
    Код:
    Массив:
    1 43 23 77 0 34 11 8 6 77
    Индексы максимальных элементов:3 9

    Ответ отправил: Micren, Бакалавр
    Ответ отправлен: 29.11.2009, 21:05

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257078 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает LfiN, 9-й класс :
    Здравствуйте, starcode.
    Еще как вариант можно рассмотреть следующую программу

    Код:
    #include <iostream>
    using namespace std;

    const k=10;
    void main(){
    int i, max;
    int n[k] = {1,43,23,77,0,34,11,8,6,77}; // Пропишем матрицу

    for(i=0;i<k;i++) //Выводим элементы массива
    cout<<"n["<<i<<"]="<<n[i]<<endl;

    max=n[0];
    for(i=1;i<k;i++) //Определяем максимальный элемент
    if (n[i]>max) max=n[i];

    cout<<"Nomera maksimal'nyh elementov massiva: ";
    for(i=0;i<k;i++) //выводим номера всех максимальных элементов
    if(n[i]==max)cout<<i<<",";

    }

    Ответ отправил: LfiN, 9-й класс
    Ответ отправлен: 29.11.2009, 22:37

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257084 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174693:

    Уважаемые эксперты помогите решить задачу:
    Вид массива (полученный массив напечатать)
    4 3 2 1
    3 2 1 0
    2 1 0 0
    1 0 0 0
    В каждом столбце найти наименьший элемент, затем найти их произведение.
    Помогите пожалуйста, а то я не очень разбираюсь в массивах..ю

    Отправлен: 29.11.2009, 23:31
    Вопрос задал: marina595, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает LfiN, 9-й класс :
    Здравствуйте, marina595.
    Так как у данной матрицы соответствующие столбцы и строки равны, то транспонирование матрицы делать не обязательно в целях сделать строку столбцом. Но в данной программе транспонирование реализовано.
    Программа написана и проверена на Microsoft Visual C++ 6.0.
    Комментарии в программе.
    Код:
    #include <iostream>
    using namespace std;

    const k=4;
    void main(){
    int i,j,min,proiz;
    int a[k][k]=
    {
    4,3,2,1,
    3,2,1,0,
    2,1,0,0,
    1,0,0,0
    };
    int at[k][k];

    locale::global(locale("russian_russia.866")); // Чтобы печатать русскими буквами

    wcout<<L"Данная матрица:"<<endl;
    for(i=0;i<k;i++){ //выводим данную матрицу
    for(j=0; j<k;j++){
    cout<<a[i][j]<<" ";
    if(j==3)cout<<endl; //Печатаем каждую строчку с новой строки
    }
    }

    for(i=0;i<k;i++){ //Транспонируем матрицу, то есть меняем местами строки со столбцами
    for(j=0;j<k;j++){
    at[j][i]=a[i][j];
    }
    }

    cout<<endl;

    wcout<<L"Транспонированная матрица:"<<endl;
    for(i=0;i<k;i++){ //Выводим транспонированную матрицу
    for(j=0;j<k;j++){
    cout<<at[i][j]<<" ";
    if(j==3)cout<<endl;
    }
    }

    cout<<endl;

    min=at[0][0];
    proiz=1;
    for(i=0;i<k;i++){ //Определяем минимальный элемент
    for(j=0;j<k;j++){
    if (at[i][j]<min)
    min=at[i][j];
    if(j==3){
    proiz*=min; //высчитываем произведение элементов каждой строки транспонированной матрицы
    wcout<<L"Наименьший элемент "<<i<<L" столбца: "<&l t;min<<endl;
    }
    }
    }

    wcout<<L"Произведение наименьших элементов: "<<proiz<<endl;

    }

    Ответ отправил: LfiN, 9-й класс
    Ответ отправлен: 30.11.2009, 00:42

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257088 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174698:

    Добрый вечер Уважаемые эксперты. Пожалуйста помогите со следующей задачей:
    Организовать поиск введенного с клавиатуры файла в введенной с клавиатуры директории и ее поддиректории.
    (С использованием функций findfirst и findnext).
    То, что удалось реализовать в приложении. программа ищет файл только в каталоге с одного слова. Например - C:\WORK\*, а C:\Program files\* не понимает. И обрывается на пробеле. Не понимаю в чем здесь проблема. А также не знаю как организовать поиск по поддиректориям. Заранее благодарен за помощь.

    Отправлен: 30.11.2009, 01:46
    Вопрос задал: Dimon4ik, 5-й класс
    Всего ответов: 1
    Страница вопроса »


    Отвечает amnick, 6-й класс :
    Здравствуйте, Dimon4ik.

    Судя про приведенному Вами исходнику, программа должна работать под DOS и компилироваться в Borland C++ (например, в MSVC++ 6.0 функции поиска и структуры другие). Приведенный мной код (см. приложение) может компилироваться как в MSVC++ 6.0, так и в Borland C++ (я проверял с версией 3.1). Но под DOS допустимые длины путей (_MAX_PATH определено как 80) меньше, чем под Windows, поэтому при попытке найти глубоко расположенный файл программа может повиснуть. При этом версия, скомпилированная в MSVC++ 6.0, работает нормально. Попытка переопределить _MAX_PATH на большее значение к успеху не привела. (Тут надо действовать по-другому — при входе в подкаталог, переопределять текущий каталог и выполнять поиск от него, а не от первоначально заданного пользователем, как в приведенной программе.)
    Пример (версия для win32):

    Path where to search: d:\windows
    File to search: hosts

    < ... пропущено... >

    d:\windows\system32\dll cache\
    d:\windows\system32\drivers\
    d:\windows\system32\drivers\disdn\
    d:\windows\system32\drivers\etc\

    File 'hosts' has been found in 'd:\windows\system32\drivers\etc\'
    Press [Enter] to exit...

    Версия, скомпилированная в Borland C++ 3.1, при этих же входных данных у меня виснет (из-за длинных путей где-то в Microsoft.NET). Но, например, нормально находит bc.exe, начиная от C:\

    Path where to search: c:\
    File to search: bc.exe
    c:\
    c:\DOS\
    c:\UTILS\
    c:\ASM\
    c:\BC\
    c:\BC\BGI\
    c:\BC\BIN\

    File 'bc.exe' has been found in 'c:\BC\BIN\'
    Press [Enter] to exit...

    Кроме того, Borland C++ 3.1 ничего не знает о длинных именах. Поэтому, даже если Ваша версия DOS понимает длинные имена, о таких именах, в частности, о пробелах в имени, лучше забыть.

    Как работает программа.
    После запуска запрашиваются имена каталога и файла для поиска. Каталог можно вводить как с конечным '\ ', так и без него (добавляется при необходимости в программе). Имя файла должно быть именно именем файла, маски не поддерживаются. Затем вызывается функция поиска, которая рекурсивно обходит подкаталоги, пока искомый файл не найден. Функция ищет только первое вхождение файла. Если нужно найти все файлы с заданным именем (их может быть несколько в разных подкаталогах), то надо

    if( search( subdir, filename ) == 0 )
    return 0; // файл был найден в каком-то подкаталоге

    заменить на

    search( subdir, filename );

    а также или убрать сообщение "File not found", или устанавливать какой-либо флаг "найден/не найден".

    Проверка на метку тома введена для гарантии (метка тома может встретиться только один раз в корневом каталоге диска).

    Успехов!

    Приложение:

    Ответ отправил: amnick, 6-й класс
    Ответ отправлен: 30.11.2009, 17:12

    Оценка ответа: 5
    Комментарий к оценке:
    Отличная программа! Большое спасибо! Я пошел разбираться.

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257121 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174702:

    Доброго времени суток!
    Есть задачка: вычислить сумму Z = 1 + 2 + 3 + .... Вычисления прекратить, когда значение Z превысит заданное значение A. Понимаю не сложная, но не могу понять, что вообще требуется. Нужно написать программку на C++.
    Заранее благодарен.

    Отправлен: 30.11.2009, 08:53
    Вопрос задал: starcode, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает LfiN, 9-й класс :
    Здравствуйте, starcode.
    Программа проверена на MV C++ 6.0;
    Комментарии в программе
    Код:
    #include <iostream>
    using namespace std;

    void main()
    {
    int i;
    int Z, A;

    locale::global(locale("russian_russia.866")); //чтобы писалось по-русски

    wcout<<L"Введите число Z:";
    cin>>Z;

    A=0;//Сумма ряда первоначально равна 0
    i=1;
    while(Z>A){ //программа будет выполняться до тех пор, пока сумма рzда не достигнет число Z
    A+=i;
    cout<<"A("<<i<<")="<<A<<endl;
    i++;
    }
    wcout<<L"Сумма ряда Z = 1 + 2 + 3 + ...:"<<A<<endl;;
    }

    Ответ отправил: LfiN, 9-й класс
    Ответ отправлен: 30.11.2009, 09:15

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257096 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает vladisslav, 5-й класс :
    Здравствуйте, starcode!
    Вот вариант решения на c++;
    Из C++ тут только cin/cout.

    Приложение:

    Ответ отправил: vladisslav, 5-й класс
    Ответ отправлен: 30.11.2009, 09:24

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257097 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 174722:

    Здравствуйте Уважаемые Эксперты!
    Помогите пожалуйста: необходимо перегрузить операции разности и векторного произведения.
    Заранее благодарен!

    Отправлен: 30.11.2009, 17:31
    Вопрос задал: Мих@ил, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Micren, Бакалавр :
    Здравствуйте, Мих@ил.
    Код:
    #include <iostream>
    #include <cmath> //библиотека атематических функций

    using namespace std;

    class Vector3d //структура трехмерного вектора
    {
    private:
    float x;
    float y;
    float z; //состоящая из трех координат в пространстве

    public:
    Vector3d() {}; //конструктор по умолчанию
    ~Vector3d() {}; //деструктор

    double abs () const //функция возвращающая модуль(длину) трехмерного вектора
    {
    return sqrt(x * x + y * y + z * z); //корень квадратный из суммы квадратов координат
    }

    Vector3d operator*(const Vector3d &) const; //Перегрузка оператора умножения (векторное произведение)
    Vector3d operator+(const Vector3d &) const; //Перегрузка оператора сложения
    Vector3d operator-(const Vector3d &) const; //Перегрузка оператора вычитания (разность векторов)

    //Перегрузка оператора << для вывода класса Vector3d
    friend ostream &operator<<(ostream &, Vector3d &);

    //Перегрузка оператора >> для вывода класса Vector3d
    friend istream &operator>>(istream &, Vector3d &);
    };

    //Перегрузим оператор умножения
    Vector3d Vector3d::operator *(const Vector3d &v) const //перегружаем операцию умножения
    {
    Vector3d result;
    result.x=this->y*v.z-this->z*v.y;
    result.y=this->z*v.x-this->x*v.z;
    result.z=this->x*v.y-this->y*v.x;
    return result;
    }
    //Перегрузим оператор сложения
    Vector3d Vector3d::operator +(const Vector3d &v) const //перегружаем операцию сложения
    {
    Vector3d result;
    result.x = v.x+this->x;
    result.y = v.y+this->y;
    result.z = v.z+this->z; //складываются соответствующие координаты трехмерного вектора
    return result;
    }
    //Перегрузим оператор вычитания
    Vector3d Vector3d::operator -(const Vector3d &v) const //перегружаем операцию вычитания (разность векторов)
    {
    Vector3d result;
    result.x=this->x-v.x;
    result.y=this->y-v.y;
    result.z=this->z-v.z;
    return result;
    }
    //Перегрузка <<
    ostream &operator<<(ostream &fo, Vector3d &fp)
    {
    fo<<" "<<fp.x;
    fo<<" "<<fp.y;
    fo<<" "<<fp.z;
    cout<<"\n";
    return fo;
    }
    //Перегрузка >>
    istream &operator>>(istream &fi, Vector3d &fp)
    {
    cout<<"Vvedite vector (x, y, z) cherez probel: \n";
    fi>>fp.x>>fp.y>>fp.z;
    return fi;
    }

    void main()
    {
    Vector3d v1, v2;

    // Ввод векторов
    cin>>v1;
    cin>>v2;

    // Вывод в екторов
    cout<<"Vector 1: "<<v1;
    cout<<"Vector 2: "<<v2;
    cout<<"Dlina vectora = "<<v1.abs ();
    cout<<"\n";
    cout<<"Summa vectorov = "<<(v1+v2);
    cout<<"Raznost vectorov = "<<(v1-v2);
    cout<<"Vectornoe proizvedenie = "<<(v1*v2);
    }

    Ответ отправил: Micren, Бакалавр
    Ответ отправлен: 30.11.2009, 21:48

    Оценка ответа: 5

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257133 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное