Программу я не смогу написать, но примерный алгоритм дам. Если (M = 1, 3, 5, 7, 8, 10, или 12) И (D <= 30), то (D = D + 1) Если (M = 1, 3, 5, 7, 8, 10) И (D = 31), то (M = M + 1, D = 1) Если (M = 12) И (D = 31), то (G = G + 1, M = 1, D = 1) Если (M = 4, 6, 9, 11) И (D <= 29), то (D = D + 1) Если (M = 4, 6, 9, 11) И (D = 30), то (M = M + 1, D = 1) Если (M = 2) И (D <= 27), то (D = D + 1) Если (M = 2) И (G mod 4 <> 0) И (D = 28), то (M = 3, D = 1) Если (M = 2) И (G mod 4 = 0) И (D = 28), то (D = D + 1) Если (M = 2) И (G mod 4 = 0) И (D = 29), то (M = 3, D = 1) Если (M = 2) И (G = 1900 или 2100) И (D = 28), то (M = 3, D = 1) В последней строчке я учёл разницу между Григорианским и Юлианским календарями. По Юлианскому после 28.02 1900 или 2100 года наступит 29.02. По Григорианскому наступит 01.03.
Если (M = 1, 3, 5, 7, 8, 10, или 12) И (D <= 30), то (D = D + 1)
Если (M = 1, 3, 5, 7, 8, 10) И (D = 31), то (M = M + 1, D = 1)
Если (M = 12) И (D = 31), то (G = G + 1, M = 1, D = 1)
Если (M = 4, 6, 9, 11) И (D <= 29), то (D = D + 1)
Если (M = 4, 6, 9, 11) И (D = 30), то (M = M + 1, D = 1)
Если (M = 2) И (D <= 27), то (D = D + 1)
Если (M = 2) И (G mod 4 <> 0) И (D = 28), то (M = 3, D = 1)
Если (M = 2) И (G mod 4 = 0) И (D = 28), то (D = D + 1)
Если (M = 2) И (G mod 4 = 0) И (D = 29), то (M = 3, D = 1)
Если (M = 2) И (G = 1900 или 2100) И (D = 28), то (M = 3, D = 1)
В последней строчке я учёл разницу между Григорианским и Юлианским календарями.
По Юлианскому после 28.02 1900 или 2100 года наступит 29.02.
По Григорианскому наступит 01.03.
#include <iostream>
#include <string>
#include <conio.h>
#define ESC 27
using namespace std;
int main() {
char ch;
int sum = 0;
do {
ch = _getch();
if (ch == ESC) {
cout << "Output of the program:\n" << sum;
putchar('\n');
} else {
cout << ch;
sum += (int)ch;
putchar('\n');
}
} while (ch != ESC);
system("pause");
return 0;
}
Объяснение: