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

Векторный калькулятор на классах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ будьте добры правильная программа надо( http://www.cyberforum.ru/cpp-beginners/thread1192583.html
4. Определить номера строк матрицы R, хотя бы один элемент которых равен с, и элементы этих строк умножить на d.
C++ C++ try catch throw в разных функциях try и catch находятся в одной функции а throw вызывается из другой. ну MVS выкидывает исключение вместо передачи управления. что делать? проект консольный, не CLI Добавлено через 1 минуту даже если они находятся в одной функции, передача управления не происходит http://www.cyberforum.ru/cpp-beginners/thread1192582.html
Треугольник в С++ C++
Добрый день! Я уже обращался к Вам (http://www.cyberforum.ru/cpp-beginners/thread1158188.html) по этому вопросу, однако так и не разобрался. Еще раз перепишу задачку "Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, вычисление периметра, площади, длин сторон". Если вкратце, то все, до чего я дошел, это то, что: 1. Раз надо найти длины...
Числа Спрага-Грюнди C++
Разработать программную модель следующей игры двух игроков (пользователь-компьютер), реализовав выигрышную стратегию для пользователя: На стол выкладываются 50 спичек. Каждый игрок по очереди вынимает спички из кучи, по меньшей мере, 1 и не более 6. Кто берет последнюю спичку, тот выигрывает. С выйгрышной ситуацией, при которой мы оставляем противнику число спичек, кратное 7, мы разобрались....
C++ Конструктор копирования http://www.cyberforum.ru/cpp-beginners/thread1192493.html
есть класс, в нем есть указать на участок памяти, как написать для этого класс конструктор копирования? как работает конструктор с указателями?
C++ Нумерация особых строк матрицы Подскажите, пожалуйста, какой код нужен для того, чтобы пронумеровать только некоторые строки матрицы. Например, мне по заданию нужно пронумеровать только те строки, в которых хотя бы некоторые элементы = значению c. Наглядный пример: с = 3 моя матрица такова 1 2 3 1 1 1 3 1 1 Код программы делает следующее 1) 1 2 3 1 1 1 подробнее

Показать сообщение отдельно
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
29.05.2014, 16:54  [ТС]     Векторный калькулятор на классах
Kuzia domovenok, кода на классах нету. Предыдущий вариант что сам писал мог скинуть.
.h файл
Кликните здесь для просмотра всего текста
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
#pragma once
#include <stdio.h>      //Подключение библиотеки стандартного ввода-вывода; 
#include <conio.h>      //Подключение библиотеки консольного ввода-вывода; 
#include <iostream>     //Подключение библиотеки потокового ввода-вывода;
#include <stdlib.h>
#include <windows.h>
 
using namespace std;
//---------------------------------------------------------
//-----------Создание структуры данных
typedef struct
{
    double x, y, z;
}vector;                // Возвращает вектор (x,y,z)
//----------------------------------------------------------
//-----------Создание класса "Векторы"
class vectors           // Класс векторов
{
private:
    vector c1, c2, sum, proizved, vec;  //
    double composit;    // Переменная, хранит произведение векторов
//-----------------------------------------------------------
//-----------Для ввода данных
public:
    void init (vector a, vector b); // Инициализация координат двух векторов
    void inita (vector a);          // Инициализация для одного вектора
//-----------Для операций
    vector add ();                  // Суммирование векторов
    double proizv ();               // Скалярное произведение
    vector vectorn ();              // Векторное произведение
    vector proizvch (int k);        // Умножение вектора на число
//-----------Для вывода данных
    void printV (vector z1);        // Вывод суммы векторов или произведение вектора на число
    void printN (double nn);        // Вывод произведения векторов
 
};
//-------------------------------------------------------------

Файл для ввода вывода
Кликните здесь для просмотра всего текста
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
#include "Calc.h"
//-----------Файл для ввода/вывода данных
 
//-----------Инициализация координат двух векторов
void vectors::init (vector a, vector b) 
{
    c1.x=a.x; c2.x=b.x; // Координаты x
    c1.y=a.y; c2.y=b.y; // Координаты y
    c1.z=a.z; c2.z=b.z; // Координаты z
 
}
//-----------Инициализация координат одного вектора
void vectors::inita (vector a)
{
    c1.x=a.x;           // Координата x
    c1.y=a.y;           // Координата y
    c1.z=a.z;           // Координата z
}
//-----------Вывод результата в виде (x,y,z).
//Для вывода суммы, векторного произведения и произведения вектора на число
void vectors::printV (vector z1)
{
    cout<<"> Результат = {"<<z1.x<<","<<z1.y<<","<<z1.z<<"}"<<endl;
}
//-----------Вывод результата в виде числа
//Для вывода скалярного произведения
void vectors::printN (double nn)
{
    cout<<"> Результат = "<<nn<<endl;
}
//-------------------------------------------------------------

Файл для расчётов
Кликните здесь для просмотра всего текста
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
#include "Calc.h"
//-----------Файл операций
//-----------Сложение векторов
vector vectors::add ()  
{
    sum.x=c1.x+c2.x;    // Суммируем x
    sum.y=c1.y+c2.y;    // Суммируем y
    sum.z=c1.z+c2.z;    // Суммируем z
    return sum;         // Сохраняем результат
}
//-----------Умножение вектора на число
vector vectors::proizvch (int k)
{
    proizved.x=c1.x*k;
    proizved.y=c1.y*k;
    proizved.z=c1.z*k;
    return proizved;
}
//-----------Векторное произведение
vector vectors::vectorn ()
{
    vec.x=c1.y*c2.z-c1.z*c2.y;
    vec.y=c1.z*c2.x-c1.x*c2.z;
    vec.z=c1.x*c2.y-c1.y*c2.x;
    return vec;
}
//-----------Скалярное произведение
double vectors::proizv ()
{
    composit=c1.x*c2.x+c1.y*c2.y+c1.z*c2.z; 
    return composit;    
}
//-------------------------------------------------------------

Ну и main.cpp
Кликните здесь для просмотра всего текста
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "Calc.h"
//----------- Основной рабочий файл
int main ()
{
    system("title Калькулятор векторов");   // Заголовок окна консоли
    system("color F0");  // Установка белого фона и черного текста
    setlocale( LC_ALL,"Russian" );          // Великий и могучий
    int ch;                                 // Для выбора операции через свитч кейс
    // Сообщения о выборе операций
    cout << "\tКакие действие вы будете выполнять." << endl;
    cout << ">1. Сложение двух векторов. " << endl;
    cout << ">2. Скалярное произведение. " << endl;
    cout << ">3. Векторное произведение. " << endl;
    cout << ">4. Умножение вектора на число.\n" << endl;
    cout << "Введите цифру для выбора действия" << endl;
 
    cin>>ch;
    while (ch<1 || ch>4)                            // Выполняется пока условие истинно
        {
        cout<<"Введите корректное число (1-4): ";   // Выводим если ввели что-то не то из цифр
        cin>>ch;                                    // Берем число, введенное пользователем
        }
    switch(ch)  
    {
    case 1: 
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printV(a1.add ());
            break;  
        }
 
    case 2:
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printN(a1.proizv());
            break;  
        }
    case 3:
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printV(a1.vectorn());
            break;  
        }
    case 4:
        {
            vector b1;
            vectors a1;
            int k;
            cout<<"Введите координаты вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z;  // Ввод координат первого
            cout<<"Введите число, на которое умножим вектор"<<endl;
            cin>>k;                 // Ввод числа   
            a1.inita (b1);          // 
            a1.printV(a1.proizvch(k));
        }
 
    }
            system("pause");
}

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