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 hereCString 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 onlyCP43Doc ();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 hereaa = 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.2bk [0] = 2 * dd * aa;// 68.9a = aa;b = ab;if (!b) b = 1;be [0].Format ("68.9. Целая часть %i, остаток от деления %i.", a / b, a % b);// 75.13if (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.14if (aa > 0) {a = 1; be [2].Format ("75.14. Число %i положительное.", aa);}elseif (aa < 0) {a = -1; be [2].Format ("75.14. Число %i отрицательное.", aa);}else {a = 0; be [2].Format ("75.14. Число %i равно нулю.", aa);}// 60.15if (bb [0] == 'a')be [3].Format ("Вы нажали клавишу 'a'.");elsebe [3] = "";be [4].Format ("Вы нажали клавишу '%c'.", bb [0]);// 77.16if (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] = "Достоевский, Зощенко и другие";}elsebe [5] = "Надо было ввести заглавную русскую букву.";be [5] = "77.16. " + be [5];// 77.17if (bb [0] >= 'А' && bb [0] <= 'Я')switch (bb [0]){case 'А': be [6] = "Алексеев";case 'Б': be [6] = "Булгаков";case 'В': be [6] = "Волошин";case 'Г': be [6] = "Гоголь";default: be [6] = "Достоевский, Зощенко и другие";}elsebe [6] = "Надо было ввести заглавную русскую букву.";be [6] = "77.17. " + be [6];// 79.18if (bb [0] == 'Q')be [7] = "";elseif (bb [0])be [7] += bb [0];// 80.19be [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 hereCString 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 defaultCP43Doc *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);}
Группа для программистов ( programming )
:Юрий Казекин
--- p42View.
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);
}