Язык Visual C++ 6.0
Начальный курс C
Функции */
#include <math.h>
#include <setjmp.h>
#define am 1
#define an 2
CDC *aa; // указатель на контекст вывода
int ad; // координата 'y'
CString ag, ah;
double aj = 3.141592653589; // число 'пи'
jmp_buf ap;
// Функции 'void'
void bb ();
void bc ();
void bd ();
void bn ();
void bo ();
void bp ();
void be (int);
void bh (CString); // вывод строки на экран
void bk (int *);
void bq (const char *);
// Функции, возвращающие значение
double cc (int);
double cf (double);
double cg (double); // f ()
double ch (double); // f1 ()
double cu (double); // f2 ()
int ci (int *);
int cl ();
int cm ();
int cn ();
double co (double (*a) (double)); // ff ()
double (*cr) (double); // указатель на функцию 'ptrf'
void CP47View::OnDraw (CDC *pDC)
{
CP47Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
int a;
double d, e; // z, y
aa = pDC; // указатель на контекст вывода
ad = 10; // координата 'y'
// 47.4.1
bb ();
bc ();
bd ();
// 47.5.2
a = 5;
be (a);
// 49.6.3
ag.Format ("3. Длина окружности радиуса %i равна %.4g.", a, cc (a));
bh (ag);
// 100.33.4
d = 5.2;
ag.Format ("4. Квадрат числа %g равен %g.", d, cf (d));
bh (ag);
// 100.34.5
bk (&a);
// 101.35.6
a = 10;
ci (&a);
// 101.36.7
bn ();
// 102.37.8
a = 1;
bo ();
ag.Format ("В функции 'main ()' значение 'a' равно %i.", a);
bh (ag);
// 118.46.9
bq (" Это тест ");
ad += 25;
// 121.48.10
// Вызов функции, содержащей функцию 'setjmp ()'
bh ("10. Вызываем функцию 'bp ()': (1)");
bp ();
bh ("Конец функции 'bp ()': (2)");
ad += 25;
// 116.45.11
d = 1.1;
cr = cg;
e = (*cr) (d);
ag.Format ("11. d = %g, e = %g. [1]", d, e);
bh (ag);
e = cr (d);
ag.Format ("d = %g, e = %g. [2]", d, e);
bh (ag);
cr = sin;
e = cr (d);
ag.Format ("d = %g, sin (d) = %.4g. [3]", d, e);
bh (ag);
e = (*cr) (2.5);
ag.Format ("d = %g, e = %.4g. [4]", d, e);
bh (ag);
e = co (ch);
ag.Format ("d = %g, e = %g. [5]", d, e);
bh (ag);
e = co (cos);
ag.Format ("d = %g, e = %.4g. [6]", d, e);
bh (ag);
e = co (cr);
ag.Format ("d = %g, e = %.4g. [7]", d, e);
bh (ag);
}
// Функции 'void'
void bb () {bh ("1. Вызвали первую функцию.");}
void bc () {bh ("Вызвали вторую функцию.");}
void bd () {bh ("Вызвали третью функцию.");}
void be (int a)
{
ag.Format ("2. Длина окружности радиуса %i равна %.4g.", a, 2 * aj * a);
bh (ag);
}
void bh (CString a) // вывод строки на экран
{
aa -> TextOut (10, ad, a);
ad += 25;
}
void bk (int *a) {*a = *a * *a;}
void bn ()
{
int a;
ag = "";
for (a = 0; a < 80; a++) ag += '-';
bh (ag);
}
void bo ()
{
int a;
a = 10;
ag.Format ("8. В функции 'bo ()' значение 'a' равно %i.", a);
bh (ag);
}
void bp ()
{
int a;
if ((a = setjmp (ap)) != 0)
switch (a)
{
case am: bh ("Кончилась память: (3)"); return;
case an: bh ("Не могу открыть файл: (4)"); return;
}
ag.Format ("Результат: %i: (5)", cl ());
bh (ag);
}
void bq (const char *a)
{
ag = "9. ";
while (*a) ag += *a++ + 1;
bh (ag);
}
// Функции, возвращающие значение
int ci (int *a) {return *a = *a * *a;}
int cl () {return cm ();}
int cm ()
{
void *a;
// Ошибка - недостаточно памяти.
if ((a = malloc (4096)) == NULL) longjmp (ap, am);
cn ();
free (a);
return 1;
}
int cn ()
{
FILE *a;
if ((a = fopen ("a.txt", "r")) == NULL) longjmp (ap, an);
fclose (a);
return 2;
}
double cc (int a) {return 2 * aj * a;}
double cf (double a) {return a * a;}
double cg (double a)
{
bh ("В функции cg (). [8]");
return a;
}
double ch (double a)
{
bh ("В функции ch (). [9]");
return a * a;
}
double co (double (*a) (double))
{
ag.Format ("В функции co (): %.4g. [11]", a (3));
bh (ag);
return a (3);
}
double cu (double a)
{
bh ("В функции cu (). [10]");
return a * a * a;
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев