Язык Visual C++ 6.0
Начальный курс C
Input 3 int */
class CP95Doc:public CDocument
{
protected:
CP95Doc ();
DECLARE_DYNCREATE (CP95Doc);
int aa, ab, ac;
char ad [50];
int ag, ah, ai, aj;
/* ah - режим отображения.
ah = 0: нет данных
ah = 1: нажатие <Enter>
ah = 2: отображение таблицы
ah = 3: выбор меню <Input 3 int> */
int am [30]; // результаты
double an [10];
CString ao [20], ap [11];
void bb ();
void bc ();
void bd (); // решение задач
void be (); // меню <Input 3 int>
};
- - - - - - - - - - - - - - - - - - - -
#include <math.h>
bf (int); // рекурсивная функция "квадрат числа"
CP95Doc::CP95Doc ()
{
ad [0] = 0;
aa = ab = ac = 0;
ag = ah = 0;
am [0] = rand () % 100 + 1;
an [0] = 3.141592653589;
}
void CP95Doc::bb ()
{
ai = 0;
while ((ad [ai] < '0' || ad [ai] > '9') && ad [ai] != '-' && ad [ai]) ai++;
bc ();
aa = aj;
while ((ad [ai] < '0' || ad [ai] > '9') && ad [ai] != '-' && ad [ai]) ai++;
bc ();
ab = aj;
while ((ad [ai] < '0' || ad [ai] > '9') && ad [ai] != '-' && ad [ai]) ai++;
bc ();
ac = aj;
if (ah < 3) bd (); // решение задач
if (ah == 3) be (); // меню <Input 3 int>
}
void CP95Doc::bc ()
{
int a;
aj = 0;
a = 1;
if (ad [ai] == '-') {a = -1; ai++;}
while (ad [ai] >= '0' && ad [ai] <= '9')
{
aj = aj * 10 + ad [ai] - '0';
ai++;
}
aj *= a;
}
void CP95Doc::bd () // решение задач
{
int a, b, c, m, n;
CString d, e;
double g, h;
char j;
char *cc [] = {"exe", "com", "dat", "c", "pas", "cpp"};
char cf [80];
// 95.33.1
if (ad [0] > '0' && ad [0] < '7')
{
strcpy (cf, "dir *.");
strcat (cf, cc [ad [0] - '1']);
// Выполнение команды DOS
// system (cf);
}
// 80.18.2 Игра "угадай число"
if (am [0] < aa) ao [0] = "2. Загаданное число меньше.";
if (am [0] > aa) ao [0] = "2. Загаданное число больше.";
if (am [0] == aa) ao [0] = "2. Вы угадали число.";
// 45.2.3 Длина окружности
an [1] = an [0] * 2 * aa;
// 55.9.4
d = "4. ";
for (a = 0; a < aa && a < 20; a++) d += ad [0];
ao [1] = d;
// 68.10.5
a = ab;
if (a == 0) a = 1;
am [1] = aa / a;
am [2] = aa % a;
// 73.2.6
am [3] = aa > ab ? aa : ab;
am [4] = aa > 0 ? aa : -aa;
a = aa;
b = ab;
(a > b ? a : b) = 1;
am [5] = a;
am [6] = b;
// 75.13.7
if (aa > 0) {a = 1; d.Format ("7. Число %i положительное, знак равен %i.", aa, a);}
if (aa == 0) {a = 0; d.Format ("7. Число %i равно нулю, знак равен %i.", aa, a);}
if (aa < 0) {a = -1; d.Format ("7. Число %i отрицательное, знак равен %i.", aa, a);}
ao [2] = d;
// 75.14.8
if (aa > 0) {a = 1; d.Format ("8. Число %i положительное.", aa);}
else if (aa == 0) {a = 0; d.Format ("8. Число %i равно нулю.", aa);}
else {a = -1; d.Format ("8. Число %i отрицательное.", aa);}
ao [3] = d;
// 98.1.9 Возведение в степень: aa ^ ab
a = 1;
b = ab;
if (b > 1000) b = 1000;
for (c = 0; c < b; c++) a *= aa;
am [7] = a;
// 98.2.10 Большее из двух чисел
a = aa;
if (a < ab) a = ab;
am [8] = a;
// 113.1.11 Факториал aa!
a = 1;
b = aa + 1;
if (b > 13) b = 1;
for (c = 2; c < b; c++) a *= c;
am [9] = a;
// 190.1.12 Площадь треугольника по формуле Герона
g = (aa + ab + ac) / 2.;
h = g * (g - aa) * (g - ab) * (g - ac);
if (h < 0) h = 0;
an [2] = sqrt (h);
// 198.1.13 y = sign (x)
a = 0;
if (aa < 0) a = -1;
if (aa > 0) a = 1;
am [10] = a;
// 199.3.14
if (aa < ab)
{
am [11] = aa;
am [12] = ab;
}
else
{
am [11] = ab;
am [12] = aa;
}
// 200.5.15
switch (aa)
{
case 2: ao [4] = "15. Это неудовлетворительно."; break;
case 3: ao [4] = "15. Это удовлетворительно."; break;
case 4: ao [4] = "15. Это хорошо."; break;
case 5: ao [4] = "15. Это отлично."; break;
default: ao [4] = "15. Нет такой оценки.";
}
// 201.6.16 y = aa ^ ab
a = 1;
switch (ab)
{
case 5: a *= aa;
case 4: a *= aa;
case 3: a *= aa;
case 2: a *= aa;
case 1: a *= aa; ao [5].Format ("16. x ^ y = %i.", a); break;
default: ao [5] = "16. Степень больше 5.";
}
// 203.2.17 Сумма гармонического ряда
a = aa;
if (a > 1000000) a = 1000000; // предел суммирования
g = 0; // сумма гармонического ряда
while (a > 0)
{
g += 1. / a;
a--;
}
an [3] = g;
// 207.1.18 Максимум из трёх чисел
a = aa;
if (a < ab) a = ab;
if (a < ac) a = ac;
am [13] = a;
// 210.4.19 Алгоритм Евклида
a = aa + ab;
b = aa - ab;
c = aa * ab;
if (a < 0) a = -a;
if (b < 0) b = -b;
if (c < 0) c = -c;
if (a == 0 || a > 1000000) a = 1;
if (b == 0 || b > 1000000) b = 1;
if (c == 0 || c > 1000000) c = 1;
while (a - b) if (a > b) a -= b; else b -= a;
while (a - c) if (a > c) a -= c; else c -= a;
am [14] = a;
// 225.1.20
a = aa;
b = ab;
c = a;
a = b;
b = c;
am [15] = a;
am [16] = b;
// 233.3.21 Вставка символа в строку
a = aa; // позиция вставки
j = 0; // вставляемый символ
if (ag > 3) j = ad [3];
if (a < 10)
if (ag > 2)
j = ad [2];
d = "21. ";
if (j) // если есть вставляемый символ
if (ag > 3) // если существует строка
{
b = 4; // счётчик положения указателя
c = 0; // счётчик строки
while (ad [b + c])
{
if (ad [4] == ' ' && b < 5) b = 5; // пропускаем пробел в начале строки
if (c == a) d += j; // вставляем символ
d += ad [b + c];
c++;
}
if (c == a) d += j; // вставляем символ
}
ao [6] = d; // результат
// 13.2.22 Квадратное уравнение
if (aa == 0)
if (ab == 0)
if (ac == 0)
ao [7] = "22. Решение - любое число.";
else
ao [7] = "22. Решений нет.";
else
ao [7].Format ("22. x = %.4g.", (double) -ac / ab);
else
{
a = ab * ab - 4 * aa * ac; // дискриминант
if (a < 0)
ao [7] = "22. Решений нет.";
else
if (a == 0)
ao [7].Format ("22. x = %.4g.", -ab / 2. / aa);
else
{
g = (-ab - sqrt (a)) / 2 / aa;
h = (-ab + sqrt (a)) / 2 / aa;
ao [7].Format ("22. x1 = %.4g, x2 = %.4g.", g, h);
}
}
// 18.4.23 Алгоритм Евклида
a = aa;
b = ab;
if (a < 0) a = -a;
if (b < 0) b = -b;
if (a == 0 || a > 1000000) a = 1;
if (b == 0 || b > 1000000) b = 1;
while (a - b) if (a > b) a -= b; else b -= a;
am [17] = a;
// 65.1.24 Сумма арифметической прогрессии
a = aa;
b = ab;
if (abs (a) > 1000000) a = 0;
if (abs (b) > 1000000) b = 0;
m = 0; // сумма арифметической прогрессии
for (c = a; c <= b; c++) m+= c;
am [18] = m;
// 82.1.25 Арифметическая прогрессия
a = aa; // номер элемента
if (a > 1000000) a = 1000000;
b = 1; // элемент арифметической прогрессии
for (c = 1; c < a; c++) b += 2;
am [19] = b;
// 83.2.26 Сумма геометрической прогрессии
b = 1; // элемент геометрической прогрессии
m = 0; // сумма геометрической прогрессии
for (c = 0; c < a; c++)
{
m += b;
b *= 2;
}
am [20] = m;
// 145.1.27 Число цифр в записи числа
a = aa;
b = 0;
while (a)
{
b++;
a /= 10;
}
am [21] = b;
// 145.2.28
a = aa;
b = a % 10;
while (a < -9 || a > 9) a /= 10;
if (aa < -9 || aa > 9) b += a;
am [22] = b;
// 83.3.29 Числа Фибоначчи
d = "29. 1";
if (aa < 1) d = "29.";
a = b = 1; // числа Фибоначчи
c = 1; // номер числа Фибоначчи
n = 0; // число чётных чисел в последовательности
while (c < aa && c < 30)
{
e.Format (" %i", b);
d += e;
c++;
if (b % 2 == 0) n++;
m = a + b; // следующее число Фибоначчи
a = b;
b = m;
}
am [23] = n;
ao [8] = d;
// 101.3.30
d = "";
for (a = 0; a < aa && a < 100; a++) d += '*';
ao [9] = d;
// 117.3.31 Простые числа
d = "31. ";
for (a = 2; a <= aa && a < 200; a++) // проверяемое число
{
b = (int) sqrt (a); // порог проверки числа
m = 1; // маркер делимости числа
for (c = 2; c <= b; c++)
if (a % c == 0) {m = 0; break;}
if (m)
{
e.Format ("%i ", a);
d += e;
}
}
ao [10] = d;
// 55.9.32
d = "32. "; // генерируемая строка
a = aa; // число символов в строке
if (a > 20) a = 20;
j = ' '; // вставляемый символ
if (ag > 2) j = ad [2];
if (ag > 3 && a > 9) j = ad [3];
for (b = 0; b < a; b++) d += j;
ao [11] = d;
// 230.1.33
ap [0] = ad; // первоначальная строка
for (a = 1; a < 11 && a <= ag; a++)
{
ap [a] = ""; // генерируемая строка
for (b = 0; b < a && b < ag; b++) ap [a] += '*';
for (b = a; b < 10 && b < ag; b++) ap [a] += ad [b];
}
// 60.8.34
// 61.9.35
// 65.9.36
a = 0; // счётчик символов в строке
d = "36. ";
while (ad [a] >= '0' && ad [a] <= '9')
{
d += ad [a];
a++;
}
d += "..";
while (ad [a])
{
d += ad [a];
a++;
}
ao [12] = d;
// 77.15.37
d = "37. ";
j = ad [0];
if (j >= 'А' && j <= 'Я')
switch (j)
{
case 'А': d += "Алексеев "; break;
case 'Б': d += "Булгаков "; break;
case 'В': d += "Волошин "; break;
case 'Г': d += "Гоголь "; break;
default: d += "Достоевский, Зощенко и др.";
}
else d += "Надо было ввести прописную русскую букву.";
ao [13] = d;
// 77.16.38
d = "38. ";
if (j >= 'А' && j <= 'Я')
switch (j)
{
case 'А': d += "Алексеев ";
case 'Б': d += "Булгаков ";
case 'В': d += "Волошин ";
case 'Г': d += "Гоголь ";
default: d += "Достоевский, Зощенко и др.";
}
else d += "Надо было ввести прописную русскую букву.";
ao [14] = d;
// 79.17.39
d = "39. ";
ao [15] = d + ad [0];
// 85.22.40
d = "40. ";
ao [16] = d + ad;
a = 0;
d = "";
while (ad [a] != ' ' && ad [a])
{
d += ad [a];
a++;
}
ao [17] = d;
// 86.24.41
ao [18].Format ("41. Строка '%s' имеет длину %i символов.", ad, strlen (ad));
// 99.3.42 Адрес пробела
a = 0;
while (ad [a] != ' ' && ad [a]) a++;
am [24] = a;
// 231.2.43 Обращение строки
d = "43. ";
a = ag;
while (a)
{
a--;
d += ad [a];
}
ao [19] = d;
// 232.1.44 Длина строки
// 102.4.45
a = 0; // указатель символа в строке 'ad'
b = 0; // число цифр в строке
while (ad [a] && ad [a] != '!')
{
if (ad [a] >= '0' && ad [a] <= '9') b++;
a++;
}
am [25] = b;
// 102.5.46 Интерпретатор строки
c = 0;
if (ag > 4)
{
a = ad [0] - '0'; // первая цифра
b = ad [4] - '0'; // вторая цифра
switch (ad [2])
{
case '-': c = a - b; break;
case '*': c = a * b; break;
default: c = a + b;
}
}
am [26] = c;
// 116.1.47
a = 0; // указатель символов в строке
b = 0; // число знаков
while (ad [a])
{
j = ad [a];
a++;
if (j == '.' || j == '-' || j == ',' || j == ';' || j == ':' || j == '!'
|| j == '*' || j == '?') b++;
}
am [27] = b;
}
void CP95Doc::be () // меню <Input 3 int>
{
int a, b, c, d;
CString g, h;
// 10.3.1
am [0] = aa + ab;
// 15.4.2 Арифметическая прогрессия
a = aa;
b = 0;
if (a > 1000000) a = 0;
for (c = 0; c <= a; c++) b += c;
am [1] = b;
// 28.1.3
am [2] = 1;
if (aa < 0) am [2] = 0;
if (aa > 0) am [2] = 2;
// 29.2.4
switch (aa)
{
case 5: ao [0] = "4. Отлично."; break;
case 4: ao [0] = "4. Хорошо."; break;
case 3: ao [0] = "4. Удовлетворительно."; break;
case 2: ao [0] = "4. Неудовлетворительно."; break;
case 1: ao [0] = "4. Плохо."; break;
default: ao [0] = "4. Такой отметки нет.";
}
// 44.1.5 Модуль числа
a = aa;
if (a < 0) a = -a;
am [3] = a;
// 107.4.6
ao [1] = "6. Небольшое.";
if (aa > 10) ao [1] = "6. Большое.";
if (aa > 100) ao [1] = "6. Очень большое.";
// 108.5.7
a = aa;
if (a > 1000000) a = -1;
while (a >= 10) a -= 10;
am [4] = a;
// 113.6.8 Деление двух чисел с остатком
a = aa; // делимое
b = ab; // делитель
c = 0; // частное
if (a < 0) a = -a;
if (b < 0) b = -b;
if (a > 1000000) a = 0;
if (b == 0) b = 1;
while (a >= b)
{
a -= b;
c++;
}
am [5] = a; // остаток
am [6] = c; // частное
// 114.9.9 Наименьший делитель числа
// a - наименьший делитель числа
// b - верхняя граница проверки делимости числа
a = b = aa;
if (aa > 3)
{
a = 2;
b = (int) sqrt (aa) + 2;
while (aa % a && a < b) a++;
}
if (a == b) a = aa;
am [7] = a;
// 50.7.10 Квадрат числа
am [8] = bf (aa);
// 116.2.11
a = 0; // адрес первого пробела в строке ad
while (ad [a] && ad [a] != ' ') a++;
g = "11. ";
for (b = 'a'; b <= 'z'; b++) // перебираем символы алфавита
{
c = 0; // флаг присутствия символа в строке
d = 0; // перебираем символы строки
while (ad [d] && d < a)
{
if (ad [d] == b) {c = 1; break;}
d++;
}
if (c)
{
d = a;
while (ad [d])
{
if (ad [d] == b) {c = 2; break;}
d++;
}
}
if (c == 2)
{
h.Format ("%c", b);
g += h;
}
}
ao [2] = g;
// 53.1.12
a = 0; // указатель на символ в строке
b = 0; // число букв 'a' в тексте
while (ad [a])
{
if (ad [a] == 'a') b++;
a++;
}
am [9] = b;
// 55.3.13
a = 0; // указатель на символ в строке
g = "13. ";
while (ad [a])
{
if (ad [a] == 'а') g += 'б'; else g += ad [a];
a++;
}
ao [3] = g;
// 188.2.14
a = aa;
g.Format ("14. %i", a++);
a = aa;
h.Format (" %i", ++a);
g += h;
a = aa;
h.Format (" %i, %i %.4g", a % 2, a / 3, a / 3.);
g += h;
a = aa;
h.Format (" %i", ++a + 5);
g += h;
a = aa;
h.Format (", %i", 5 + a++);
g += h;
a = aa;
h.Format (" %g %i, %i.", (double) a / 4, sizeof a, sizeof (1. * a));
g += h;
ao [4] = g;
// 189.4.15
a = aa;
a += 2;
g.Format ("15. %i", a);
a = aa;
a /= 10;
h.Format (" %i", a);
g += h;
a = aa;
a *= a + 1;
h.Format (" %i", a);
g += h;
a = aa;
a += a += a += 1;
h.Format (" %i.", a);
g += h;
ao [5] = g;
// 189.5.16
a = aa;
g.Format ("16. %i", a > 1 ? 2 * a : a);
h.Format (" %i", a / 5 == 2 ? 5 : a / 10);
g += h;
h.Format (" %i.", a > 0 && a <= 1 ? 1 : 0);
g += h;
ao [6] = g;
// 196.2.17
am [10] = aa / 3600;
am [11] = aa % 3600 / 60;
// 197.3.18
am [12] = aa * 3600 + ab * 60;
// 197.4.19
am [13] = aa * aa * aa;
am [14] = 6 * aa * aa;
// 201.1.20
a = aa;
b = ab;
c = ac;
if (a > b) {d = a; a = b; b = d;}
if (b > c) {d = b; b = c; c = d;}
if (a > b) {d = a; a = b; b = d;}
am [15] = a;
am [16] = b;
am [17] = c;
// 201.2.21
switch (aa)
{
case 1: ao [7] = "21. Получите суп."; break;
case 2: ao [7] = "21. Получите картошку."; break;
case 3: ao [7] = "21. Получите компот."; break;
default: ao [7] = "21. Оставайтесь голодным.";
}
// 207.5.22 Двоичная система счисления
a = aa;
if (a < 0) a = -a;
if (a == 0) g = "0."; else g = ".";
while (a)
{
h.Format ("%i", a % 2);
g = h + g;
a /= 2;
}
h = "22. ";
g = h + g;
ao [8] = g;
// 207.6.23 Шестнадцатеричная система счисления
}
bf (int a) // рекурсивная функция "квадрат числа"
{
if (a < 0) return bf (-a);
if (a == 0 || a > 100) return 0;
return bf (a - 1) + a + a - 1;
}
- - - - - - - - - - - - - - - - - - - -
void CP95View::OnDraw (CDC* pDC)
{
CP95Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
CString a;
int d;
pDC -> TextOut (10, 10, "Введите три целых числа:");
pDC -> TextOut (10, 35, pdoc -> ad);
if (pdoc -> ah && pdoc -> ah < 3) // user pressed <Enter>
{
if (pdoc -> ah == 1)
{
pdoc -> ah = 2;
for (d = 0; d < 11 && d <= pdoc -> ag; d++)
pDC -> TextOut (850, 10 + d * 25, pdoc -> ap [d]);
}
a.Format ("%i %i %i", pdoc -> aa, pdoc -> ab, pdoc -> ac);
pDC -> TextOut (10, 60, a);
pDC -> TextOut (10, 110, pdoc -> ao [0]);
a.Format ("3. Длина окружности %.4g.", pdoc -> an [1]);
pDC -> TextOut (10, 135, a);
pDC -> TextOut (10, 160, pdoc -> ao [1]);
a.Format ("5. Целая часть %i, остаток от деления %i.", pdoc -> am [1], pdoc -> am [2]);
pDC -> TextOut (10, 185, a);
a.Format ("6. %i, %i, %i, %i.", pdoc -> am [3], pdoc -> am [4], pdoc -> am [5], pdoc -> am [6]);
pDC -> TextOut (10, 210, a);
pDC -> TextOut (10, 235, pdoc -> ao [2]);
pDC -> TextOut (10, 260, pdoc -> ao [3]);
a.Format ("9. %i.", pdoc -> am [7]);
pDC -> TextOut (10, 285, a);
a.Format ("10. %i.", pdoc -> am [8]);
pDC -> TextOut (10, 310, a);
a.Format ("11. %i! = %i.", pdoc -> aa, pdoc -> am [9]);
pDC -> TextOut (10, 335, a);
a.Format ("12. Площадь треугольника %.4g.", pdoc -> an [2]);
pDC -> TextOut (10, 360, a);
a.Format ("13. sign (%i) = %i.", pdoc -> aa, pdoc -> am [10]);
pDC -> TextOut (10, 385, a);
a.Format ("14. %i, %i.", pdoc -> am [11], pdoc -> am [12]);
pDC -> TextOut (10, 410, a);
pDC -> TextOut (10, 435, pdoc -> ao [4]);
pDC -> TextOut (10, 460, pdoc -> ao [5]);
a.Format ("17. Сумма гармонического ряда %g.", pdoc -> an [3]);
pDC -> TextOut (10, 485, a);
a.Format ("18. Максимум %i.", pdoc -> am [13]);
pDC -> TextOut (10, 510, a);
a.Format ("19. НОД %i.", pdoc -> am [14]);
pDC -> TextOut (10, 535, a);
a.Format ("20. %i, %i.", pdoc -> am [15], pdoc -> am [16]);
pDC -> TextOut (10, 560, a);
pDC -> TextOut (10, 585, pdoc -> ao [6]);
pDC -> TextOut (400, 10, pdoc -> ao [7]);
a.Format ("23. НОД равен %i.", pdoc -> am [17]);
pDC -> TextOut (400, 35, a);
a.Format ("24. Сумма арифметической прогрессии %i.", pdoc -> am [18]);
pDC -> TextOut (400, 60, a);
a.Format ("25. %i.", pdoc -> am [19]);
pDC -> TextOut (400, 85, a);
a.Format ("26. Сумма %i.", pdoc -> am [20]);
pDC -> TextOut (400, 110, a);
a.Format ("27. Число цифр %i.", pdoc -> am [21]);
pDC -> TextOut (400, 135, a);
a.Format ("28. Сумма %i.", pdoc -> am [22]);
pDC -> TextOut (400, 160, a);
pDC -> TextOut (10, 635, pdoc -> ao [8]);
a.Format ("Число чётных чисел %i.", pdoc -> am [23]);
pDC -> TextOut (10, 660, a);
pDC -> TextOut (10, 685, pdoc -> ao [9]);
pDC -> TextOut (10, 710, pdoc -> ao [10]);
pDC -> TextOut (400, 185, pdoc -> ao [11]);
a.Format ("33. Длина строки %i.", pdoc -> ag);
pDC -> TextOut (400, 210, a);
a.Format ("34. Вы нажали клавишу %c.", pdoc -> ad [0]);
pDC -> TextOut (400, 235, a);
a.Format ("35. Я знаю ваше имя, ваше имя %s.", pdoc -> ad);
pDC -> TextOut (400, 260, a);
pDC -> TextOut (400, 285, pdoc -> ao [12]);
pDC -> TextOut (400, 310, pdoc -> ao [13]);
pDC -> TextOut (400, 335, pdoc -> ao [14]);
pDC -> TextOut (400, 360, pdoc -> ao [15]);
pDC -> TextOut (400, 385, pdoc -> ao [16]);
pDC -> TextOut (400, 410, pdoc -> ao [17]);
pDC -> TextOut (400, 435, pdoc -> ao [18]);
a.Format ("42. Адрес пробела %i.", pdoc -> am [24]);
pDC -> TextOut (400, 460, a);
pDC -> TextOut (400, 485, pdoc -> ao [19]);
a.Format ("44. Длина строки %i.", pdoc -> ag);
pDC -> TextOut (400, 510, a);
a.Format ("45. Число цифр %i.", pdoc -> am [25]);
pDC -> TextOut (400, 535, a);
a.Format ("46. %i.", pdoc -> am [26]);
pDC -> TextOut (400, 560, a);
a.Format ("47. %i.", pdoc -> am [27]);
pDC -> TextOut (400, 585, a);
}
if (pdoc -> ah == 3) // меню <Input 3 int>
{
a.Format ("%i %i %i", pdoc -> aa, pdoc -> ab, pdoc -> ac);
pDC -> TextOut (10, 60, a);
a.Format ("1. %i.", pdoc -> am [0]);
pDC -> TextOut (10, 110, a);
a.Format ("2. Сумма %i.", pdoc -> am [1]);
pDC -> TextOut (10, 135, a);
a.Format ("3. %i.", pdoc -> am [2]);
pDC -> TextOut (10, 160, a);
pDC -> TextOut (10, 185, pdoc -> ao [0]);
a.Format ("5. Модуль числа %i.", pdoc -> am [3]);
pDC -> TextOut (10, 210, a);
pDC -> TextOut (10, 235, pdoc -> ao [1]);
a.Format ("7. %i.", pdoc -> am [4]);
pDC -> TextOut (10, 260, a);
a.Format ("8. Частное %i, остаток %i.", pdoc -> am [6], pdoc -> am [5]);
pDC -> TextOut (10, 285, a);
a.Format ("9. Наименьший делитель числа %i.", pdoc -> am [7]);
pDC -> TextOut (10, 310, a);
a.Format ("10. Квадрат числа %i.", pdoc -> am [8]);
pDC -> TextOut (10, 335, a);
pDC -> TextOut (10, 360, pdoc -> ao [2]);
a.Format ("12. %i.", pdoc -> am [9]);
pDC -> TextOut (10, 385, a);
pDC -> TextOut (10, 410, pdoc -> ao [3]);
pDC -> TextOut (10, 435, pdoc -> ao [4]);
pDC -> TextOut (10, 460, pdoc -> ao [5]);
pDC -> TextOut (10, 485, pdoc -> ao [6]);
a.Format ("17. Это %i часов %i минут.", pdoc -> am [10], pdoc -> am [11]);
pDC -> TextOut (10, 510, a);
a.Format ("18. Это %i секунд.", pdoc -> am [12]);
pDC -> TextOut (10, 535, a);
a.Format ("19. Объём %i, площадь поверхности %i.", pdoc -> am [13], pdoc -> am [14]);
pDC -> TextOut (10, 560, a);
a.Format ("20. %i %i %i.", pdoc -> am [15], pdoc -> am [16], pdoc -> am [17]);
pDC -> TextOut (10, 585, a);
pDC -> TextOut (10, 610, pdoc -> ao [7]);
pDC -> TextOut (10, 635, pdoc -> ao [8]);
a.Format ("23. %x.", pdoc -> aa);
pDC -> TextOut (10, 660, a);
}
}
void CP95View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
{
CP95Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
if (nChar == 8)
{
if (pdoc -> ag) {pdoc -> ag--; pdoc -> ad [pdoc -> ag] = 0;}
goto aaa;
}
if (nChar == 13)
{
pdoc -> ah = 1;
pdoc -> bb ();
goto aaa;
}
if (pdoc -> ag < 49)
{
pdoc -> ad [pdoc -> ag] = nChar;
pdoc -> ad [pdoc -> ag + 1] = 0;
pdoc -> ag++;
}
aaa:
Invalidate ();
CView::OnChar (nChar, nRepCnt, nFlags);
}
void CP95View::OnCommandInput3int ()
{
CP95Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
pdoc -> ah = 3;
pdoc -> bb ();
Invalidate ();
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев