cpp ---
// Переменные
CString aa [10];
// Константы
double dd = 3.141592653589; // число "пи"
// Описание внешних функций
void bb ();
void bc ();
void bd ();
void be (int);
double bh (int);
void CP42View::OnDraw (CDC *pDC)
{
CP42Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
// TODO: add draw code for native data here
CString a, b; // выводимая строка
int d, e;
unsigned g;
char j;
d = 1996;
a.Format ("42.1. Сейчас %i год.", d);
pDC -> TextOut (10, 10, a);
pDC -> TextOut (10, 35, "47.3.");
bb ();
pDC -> TextOut (10, 60, aa [0]);
bc ();
pDC -> TextOut (10, 85, aa [1]);
bd ();
pDC -> TextOut (10, 110, aa [2]);
d = 5;
be (d);
pDC -> TextOut (10, 135, aa [3]);
a.Format ("49.5. Длина окружности радиуса %i равна %.4g.", d, bh (d));
pDC -> TextOut (10, 160, a);
a = "50.6. ";
for (d = 10; d; d--)
{
b.Format ("%i ", d);
a += b;
}
a += "Старт!";
pDC -> TextOut (10, 185, a);
g = 60000;
d = g;
a.Format ("54.7. d = %i, g = %u.", d, g);
pDC -> TextOut (10, 210, a);
a = "59.8. ";
j = 'c';
a += j;
j = '+';
a = a + j + j;
pDC -> TextOut (10, 235, a);
d = 5;
e = 60;
d++;
++e;
a.Format ("68.10. d = %i, e = %i.", d, e);
pDC -> TextOut (10, 260, a);
a.Format ("d = %i, e = %i.", d++, ++e);
pDC -> TextOut (10, 285, a);
d = 101 <= 105;
e = 101 > 105;
a.Format ("69.11. true - %i, false - %i.", d, e);
pDC -> TextOut (10, 310, a);
d = 5;
e = 60;
d > e ? d : e = 1;
a.Format ("74.12. d - %i, e - %i.", d, e);
pDC -> TextOut (10, 335, a);
a = "81.20. ";
for (d = 0; d < 1000; d++)
{
e = d * d * d;
b.Format ("%i ", e);
a += b;
if (e > 10000) break;
}
pDC -> TextOut (10, 360, a);
a = "82.21. ";
for (d = 0; d < 100; d++)
{
if (d % 7) continue;
b.Format ("%i ", d);
a += b;
}
pDC -> TextOut (10, 385, a);
a = "85.24. Привет, ";
b = "мир.";
a += b;
pDC -> TextOut (10, 410, a);
}
// Функции
void bb () {aa [0] = "Вызвали первую функцию.";}
void bc () {aa [1] = "Вызвали вторую функцию.";}
void bd () {aa [2] = "Вызвали третью функцию.";}
void be (int a) {aa [3].Format ("47.4. Длина окружности радиуса %i равна %.4g.", a, 2 * dd * a);}
double bh (int a) {return 2 * dd * a;}
--- p43Doc.h ---
class CP43Doc:public CDocument
{
protected: // create from serialization only
CP43Doc ();
DECLARE_DYNCREATE (CP43Doc);
int aa, ab, ac; // исходные данные - целые числа
int ad, ae; // указатель ввода в строку данных, <Enter>
int ag, ah; // внутренние переменные для передачи данных
char bb [50]; // место для вводимых символов
CString be [10]; // вывод информации на экран (строка, целые, дробные)
int bh [10]; // bh [0] - код вводимого символа
double bk [10];
void cc (); // перевод данных из символьной формы в цифровую
void cd ();
void ce (); // решение задач
double dd; // число "пи"
};
--- p43Doc.cpp ---
// Подключаемые библиотеки и инициализация
#include "stdafx.h"
#include "stdlib.h"
CP43Doc::CP43Doc ()
{
// TODO: add one-time construction code here
aa = ab = ac = ad = ae = 0;
bb [0] = bh [0] = 0; // bh [0] - код вводимого символа
// Статические переменные
be [7] = ""; // вводимые символы
bh [1] = 0; // счётчик числа вводов данных
bh [2] = rand () % 100 + 1; // случайное число от 1 до 100
// Константы
dd = 3.141592653589; // число "пи"
}
void CP43Doc::cc ()
{
ae = 1; // флаг начала обработки
ag = 0; // временный счётчик символов массива
while ((bb [ag] < '0' || bb [ag] > '9') && bb [ag] != '-' && bb [ag]) ag++;
cd ();
aa = ah;
while ((bb [ag] < '0' || bb [ag] > '9') && bb [ag] != '-' && bb [ag]) ag++;
cd ();
ab = ah;
while ((bb [ag] < '0' || bb [ag] > '9') && bb [ag] != '-' && bb [ag]) ag++;
cd ();
ac = ah; // данные занесены
ce (); // решение задач
}
void CP43Doc::cd ()
{
int a;
ah = 0; // целое число, извлекаемое из массива
a = 1; // знак извлекаемого числа
if (bb [ag] == '-') {a = -1; ag++;}
while (bb [ag] >= '0' && bb [ag] <= '9')
{
ah = ah * 10 + bb [ag] - '0';
ag++;
}
ah *= a;
}
void CP43Doc::ce ()
{
int a, b;
CString d;
// 45.2
bk [0] = 2 * dd * aa;
// 68.9
a = aa;
b = ab;
if (!b) b = 1;
be [0].Format ("68.9. Целая часть %i, остаток от деления %i.", a / b, a % b);
// 75.13
if (aa > 0) {a = 1; be [1].Format ("75.13. Число %i положительное, a = %i.", aa, a);}
if (aa == 0) {a = 0; be [1].Format ("75.13. Число %i равно нулю, a = %i.", aa, a);}
if (aa < 0) {a = -1; be [1].Format ("75.13. Число %i отрицательное, a = %i.", aa, a);}
// 75.14
if (aa > 0) {a = 1; be [2].Format ("75.14. Число %i положительное.", aa);}
else
if (aa < 0) {a = -1; be [2].Format ("75.14. Число %i отрицательное.", aa);}
else {a = 0; be [2].Format ("75.14. Число %i равно нулю.", aa);}
// 60.15
if (bb [0] == 'a')
be [3].Format ("Вы нажали клавишу 'a'.");
else
be [3] = "";
be [4].Format ("Вы нажали клавишу '%c'.", bb [0]);
// 77.16
if (bb [0] >= 'А' && bb [0] <= 'Я')
switch (bb [0])
{
case 'А': be [5] = "Алексеев"; break;
case 'Б': be [5] = "Булгаков"; break;
case 'В': be [5] = "Волошин"; break;
case 'Г': be [5] = "Гоголь"; break;
default: be [5] = "Достоевский, Зощенко и другие";
}
else
be [5] = "Надо было ввести заглавную русскую букву.";
be [5] = "77.16. " + be [5];
// 77.17
if (bb [0] >= 'А' && bb [0] <= 'Я')
switch (bb [0])
{
case 'А': be [6] = "Алексеев";
case 'Б': be [6] = "Булгаков";
case 'В': be [6] = "Волошин";
case 'Г': be [6] = "Гоголь";
default: be [6] = "Достоевский, Зощенко и другие";
}
else
be [6] = "Надо было ввести заглавную русскую букву.";
be [6] = "77.17. " + be [6];
// 79.18
if (bb [0] == 'Q')
be [7] = "";
else
if (bb [0])
be [7] += bb [0];
// 80.19
be [8] = "80.19. ";
if (aa > bh [2]) be [8] += "Загаданное число меньше.";
if (aa < bh [2]) be [8] += "Загаданное число больше.";
if (aa == bh [2])
{
be [8] += "Вы угадали число. ";
d.Format ("Затратили на угадывание %i попыток.", bh [1]);
be [8] += d;
}
}
--- p43View.cpp ---
void CP43View::OnDraw (CDC *pDC)
{
CP43Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
// TODO: add draw code for native data here
CString a, b; // выводимая строка
pDC -> TextOut (10, 10, "Введите три целых числа:");
pDC -> TextOut (10, 35, pdoc -> bb);
a.Format ("code = %i", pdoc -> bh [0]); // код вводимого символа
pDC -> TextOut (10, 60, a);
if (pdoc -> ae)
{
a.Format ("%i %i %i", pdoc -> aa, pdoc -> ab, pdoc -> ac);
pDC -> TextOut (10, 85, a);
a.Format ("45.2. Радиус %i, длина %.4g.", pdoc -> aa, pdoc -> bk [0]);
pDC -> TextOut (10, 125, a);
pDC -> TextOut (10, 150, pdoc -> be [0]);
pDC -> TextOut (10, 175, pdoc -> be [1]);
pDC -> TextOut (10, 200, pdoc -> be [2]);
pDC -> TextOut (10, 225, "60.15.");
pDC -> TextOut (10, 250, pdoc -> be [3]);
pDC -> TextOut (10, 275, pdoc -> be [4]);
pDC -> TextOut (10, 300, pdoc -> be [5]);
pDC -> TextOut (10, 325, pdoc -> be [6]);
a = "79.18. " + pdoc -> be [7];
pDC -> TextOut (10, 350, a);
pDC -> TextOut (10, 375, pdoc -> be [8]);
a = "85.22. Вы ввели строку: ";
b = pdoc -> bb;
a += b;
pDC -> TextOut (10, 400, a);
a = "61.23. Я знаю ваше имя, ваше имя - ";
a += b;
pDC -> TextOut (10, 425, a);
}
}
void CP43View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CP43Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
pdoc -> bh [0] = nChar;
if (nChar == 8) // Обработка <Backspace>
{
if (pdoc -> ad) {pdoc -> ad--; pdoc -> bb [pdoc -> ad] = 0;}
goto aaa;
}
if (nChar == 13) // Обработка <Enter>
{
pdoc -> bh [1]++; // Счётчик числа нажатий <Enter>
pdoc -> cc ();
goto aaa;
}
if (pdoc -> ad < 49) // Ограничение на длину вводимой строки
{
pdoc -> bb [pdoc -> ad] = nChar; // Добавление символа к массиву строки
pdoc -> bb [pdoc -> ad + 1] = 0;
pdoc -> ad++;
}
aaa:
Invalidate ();
CView::OnChar (nChar, nRepCnt, nFlags);
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев