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

Перегрузка операций и функций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оптимизировать функцию http://www.cyberforum.ru/cpp-beginners/thread1032996.html
Помогите оптимизировать функцию она работает правильно только очень медленно :cry: уже несколько дней над ней сижу и ничего не выходит void Partition_File( const char* s_file_name, char **file_name, int num, int number_file ) { int fnum = num / number_file; double *str_number = new double; int k = 0, incr = 0, i, number = number_file - 1; FILE *sfile = fopen( s_file_name, "rt" ),...
C++ считывание матрицы из файла Всем привет. Возникла проблема с задачей. Даны две динамические прямоугольные матрицы. Первая заполняется случайными числами, вторая считывается из файла. Нужно найти количество столбцов в матрице где нету елементов равных 0(при помощи функции). С матрицей которая заполняется случайными числами вс нормально работает, а с матрицей которая считывается из файла возникают проблемы. Если я указываю ее... http://www.cyberforum.ru/cpp-beginners/thread1032994.html
TAR архив C++
Добрый день! Как реализовать архивацию указанного каталога TAR-архивом? Добавлено через 3 минуты Извините забыл добавить написание на Visual C++ Добавлено через 3 минуты Заранее спасибо!
C++ Перегрузка операций и функций
Пожалуйста помогите. Выполнить перегрузку перечисленных операций Дата в формате (день, месяц, год) + прибавление к дате указанного количества дней - вычитание из даты указанного количества дней % вычисление числа дней, прошедших между двумя датами
C++ оформить в виде функции одномерный массив http://www.cyberforum.ru/cpp-beginners/thread1032947.html
Необходимо выполнить задание, каждый пункт задания оформить в виде функции. В одномерном массиве, состоящем из n вещественных элементов, вычислить: − количество элементов массива, меньших С; − сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. прошу помочь...к экзамену очень надо(
C++ Из компонентов исходного файла сформировать массивы положительных и отрицательных простых чисел Создать двоичный файл ,куда записать n вещественных чисел. Из компонентов исходного файла сформировать массивы положительных и отрицательных простых чисел.Вычислить количество нулевых компонентов файла #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main() { int i, n;float a,bmassiv,cmassiv; ofstream f; подробнее

Показать сообщение отдельно
D3fend0r
17 / 17 / 1
Регистрация: 14.09.2013
Сообщений: 37
10.12.2013, 03:02     Перегрузка операций и функций
Вот код. Я добавил оператор вывода. В коде я использовал перевод даты в номер юлианского дня, и потом только операции сложения/вычитания. После переводим номер дня в дату григорианского календаря. Здесь можете прочитать об этом https://ru.wikipedia.org/wiki/%D0%AE...B0%D1%82%D0%B0
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
 
using namespace std;
 
 
 
class Date
{
    int day;
    int month;
    int year;
 
    static unsigned long From_Date_To_Days(Date d);
    static Date From_Days_To_Date(unsigned long n);
 
    friend Date operator+(Date d, int n);
    friend Date operator-(Date d, int n);
    friend int operator%(Date d1, Date d2);
    friend ostream& operator<<(ostream& os, Date d);
 
public:
    Date(int d, int m, int y);
 
};
 
/////////////////OPERATORS////////////////////////////////
 
Date operator+(Date d, int n);
Date operator-(Date d, int n);
int operator%(Date d1, Date d2);
ostream& operator<<(ostream& os, Date d);
///////////////////////////////////////////////////////////
 
 
 
int main()
{
    Date d1(9, 12, 2013);
    Date d2(29, 11, 2013);
    Date d3 = d1 + 10;
    Date d4 = d2 - 365*2;
    int i1 = d2%d1;
    cout << d1 << endl << d2 << endl << d3 << endl << d4 << endl << i1 << endl;
    system("pause");
}
 
 
////////////////////////////////////////////////
//////////////////DEFINITION////////////////////
////////////////////////////////////////////////
 
 
Date::Date(int d, int m, int y)
{
    this->day = d;
    this->month = m;
    this->year = y;
}
 
 
Date operator+(Date d, int n)
{
    return Date::From_Days_To_Date(Date::From_Date_To_Days(d) + n);
}
 
 
Date operator-(Date d, int n)
{
    return d+(-n);
}
 
 
int operator%(Date d1, Date d2)
{
    return Date::From_Date_To_Days(d2) - Date::From_Date_To_Days(d1);
}
 
 
ostream& operator<<(ostream& os, Date d)
{
    os << d.day << '.' << d.month << '.' << d.year;
    return os;
}
 
 
unsigned long Date::From_Date_To_Days(Date d)
{
    unsigned long a = (14 - d.month) / 12;
    unsigned long y = d.year + 4800 - a;
    unsigned long m = d.month + 12 * a - 3;
    return (d.day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045);
}
 
 
Date Date::From_Days_To_Date(unsigned long jdn)
{
    unsigned long a = jdn + 32044;
    unsigned long b=(4*a+3)/146097;
    unsigned long c = a - (146097 * b) / 4;
    unsigned long d = (4 * c + 3) / 1461;
    unsigned long e = c - (1461 * d) / 4;
    unsigned long m = (5 * e + 2) / 153;
    int day = e - (153 * m + 2) / 5 + 1;
    int month = m + 3 - 12 * (m / 10);
    int year = 100 * b + d - 4800 + (m / 10);
    return Date(day, month, year);
}
 
Текущее время: 15:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru