Language Turbo C 2.0
Text mode */
#include <conio.h>
main ()
{
int a, b;
char d [288];
char *g = "это строка";
/* p53 - 1 */
clrscr ();
gotoxy (40, 13);
putch ('*');
cprintf (" < 1 > ");
getch ();
/* p54 - 2 */
window (1, 1, 40, 12);
textbackground (WHITE);
clrscr ();
window (41, 1, 80, 12);
textbackground (RED);
clrscr ();
window (1, 13, 40, 25);
textbackground (RED);
clrscr ();
window (41, 13, 80, 25);
textbackground (GREEN);
clrscr ();
cprintf (" < 2 > ");
getch ();
/* p55 - 3 */
textbackground (WHITE);
gotoxy (1, 5);
for (a = 0; a < 16; a++)
{
textcolor (a);
cprintf ("%-4i", a);
}
cprintf (" < 3 > ");
getch ();
/* p150 - 4 */
window (1, 1, 80, 25);
gotoxy (1, 1);
for (a = 0; a < 16; a++)
{
textcolor (a);
for (b = 0; b < 8; b++)
{
textbackground (b);
cprintf (" тест ");
}
cprintf (" - - - ");
}
textcolor (WHITE|BLINK);
textbackground (BLACK);
cprintf (" конец текста ");
cprintf (" < 4 > ");
getch ();
/* p152 - 5 */
window (5, 5, 20, 10);
textattr ((GREEN << 4) + RED);
clrscr ();
cputs ("привет, мир");
textattr ((GREEN << 4) + RED + BLINK);
cputs ("нажми любую клавишу");
getch ();
window (1, 1, 80, 25);
gettext (4, 4, 21, 11, d);
textbackground (BLUE);
textcolor (WHITE);
for (a = 1; a < 23; a++)
{
gotoxy (1, a);
cputs (g); cputs (g); cputs (g); cputs (g);
}
getch ();
puttext (24, 5, 41, 12, d);
getch ();
for (a = 1; a < 5; a++)
movetext (22, 4, 32, 8, 10 * a, 17);
cprintf (" < 5 > ");
getch ();
window (1, 1, 80, 25);
textbackground (BLACK);
textcolor (LIGHTGRAY);
clrscr ();
}
- - - - - - - - - - - - - - -
/* p112
Язык Turbo C 2.0
Аргументы функции "main" */
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
/* Определения функций */
float aa (float);
float ab (float);
float ac (float);
float ad (float (*a) (float));
double am (double (*a) (double));
ap (const char *);
main (int a, char *b [], char *c [])
{
int d;
float g, h;
int *j, *k;
float (*ag) (float);
double (*aj) (double);
printf ("112.1. ");
if (a < 2)
printf ("Вы забыли набрать имя.\n");
else
printf ("Привет, %s.\n", b [1]);
printf ("112.2. Количество аргументов командной строки: %i.\n", a);
printf ("Аргументы командной строки: ");
for (d = 0; d < a; d++)
printf ("%s ", b [d]);
printf ("\nАргументы состояния среды: ");
for (d = 0; c [d]; d++)
printf ("%s ", c [d]);
printf ("\n\n116.3. ");
g = 1.1;
ag = aa;
h = (*ag) (g);
printf ("< 5 >, g = %.4g, h = %.4g.\n", g, h);
h = ag (g);
printf ("< 6 >, g = %.4g, h = %.4g.\n", g, h);
aj = sin;
h = aj (g);
printf ("< 7 >, g = %.4g, sin (g) = %.4g.\n", g, h);
h = (*ag) (2.5);
printf ("< 8 >, g = %.4g, h = %.4g.\n", g, h);
h = ad (ab);
printf ("< 9 >, g = %.4g, h = %.4g.\n", g, h);
h = am (cos);
printf ("< 10 >, g = %.4g, h = %.4g.\n", g, h);
h = ad (ag);
printf ("< 11 >, g = %.4g, h = %.4g.\n", g, h);
printf ("\n118.4. ");
ap (" Это тест ");
printf ("\n120.5. ");
k = j = malloc (40 * sizeof (int));
if (!j)
{
printf ("Недостаточно памяти.\n");
return;
}
for (d = 0; d < 40; d++)
*(j + d) = d;
for (d = 0; d < 40; d++)
printf ("%i ", *j++);
free (k);
printf ("\n");
getch ();
printf ("\n");
}
float aa (float a)
{
puts ("[1] In aa ().");
return a;
}
float ab (float a)
{
puts ("[2] In ab ().");
return a * a;
}
float ac (float a)
{
puts ("[3] In ac ().");
return a * a * a;
}
float ad (float (*a) (float d))
{
printf ("[4] In ad () = %.4g.\n", a (2.9));
return a (2.9);
}
double am (double (*a) (double d))
{
printf ("[12] In am () = %.4g.\n", a (2.8));
return a (2.8);
}
ap (const char *a)
{
while (*a) printf ("%c", *a++ + 1);
}
- - - - - - - - - - - - - - -
/* p121
Язык Turbo C 2.0
Нелокальный переход */
#include <conio.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
#define A 1
#define B 2
#define C 100
jmp_buf d;
aa (); ab (); ac (); ad ();
main ()
{
printf ("121.1. Вызываем 'aa ()'.\n");
aa ();
printf ("< 1 > Конец функции 'main ()'.\n");
printf ("135.2. ");
#if C > 99
printf ("C больше 99.\n");
#else
printf ("C равно %i.\n", C);
#endif
printf ("139.3. %s, %i, %s, %s. ",
__FILE__, __LINE__, __DATE__, __TIME__);
printf ("Используется версия 'v.%x' Turbo C.\n", __TURBOC__);
getch ();
printf ("\n");
fcloseall ();
}
aa ()
{
int g;
printf ("< 2 > ");
if ((g = setjmp (d)) != 0)
{
switch (g)
{
case A: puts ("Нет памяти."); return;
case B: puts ("Не могу открыть файл."); return;
}
}
printf ("< 3 > Результат: %i.\n", ab ());
}
ab ()
{
printf ("< 4 > ");
ac ();
printf ("< 5 > ");
return 3;
}
ac ()
{
void *g;
printf ("< 6 > ");
if ((g = malloc (4096)) == NULL)
longjmp (d, A);
ad ();
free (g);
printf ("< 7 > ");
return 1;
}
ad ()
{
FILE *g;
printf ("< 8 > ");
if ((g = fopen ("data.dat", "r")) == NULL)
longjmp (d, B);
fclose (g);
printf ("< 9 > ");
return 2;
}
- - - - - - - - - - - - - - -
/* p122
Язык Turbo C 2.0
Работа с файлами */
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main ()
{
int a;
float d, e;
FILE *g;
printf ("121.1. ");
g = fopen ("data.dat", "w");
for (a = 0; a < 20; a++)
{
d = rand () / 32767. * 20 - 10;
fprintf (g, "%.4g ", d);
}
fclose (g);
g = fopen ("data.dat", "r");
for (a = 0; a < 10; a++)
{
fscanf (g, "%f", &d);
printf ("%.4g ", d);
}
fclose (g);
g = fopen ("data.dat", "r");
e = 0;
while (!feof (g))
{
fscanf (g, "%f", &d);
e += d;
}
printf ("\nСумма %f.\n", e);
fclose (g);
getch ();
printf ("\n");
}
- - - - - - - - - - - - - - -
/* p171
Language Turbo C 2.0 */
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
/* Объявления функций */
aa (int *, int *);
float ad (int a, int b []); /* норма вектора */
ag (int a, int b []); /* функция сортировки */
aj (char *); /* длина строки */
ak (char *);
float am (float, float, float, float); /* длина отрезка */
float ap (float, float, float); /* формула Герона */
main ()
{
int a, b, c, d;
int g [] = {6, 4, 9, 3, 2, 1, 5, 7, 8, 10};
int j [10] [10];
char *m = "fh5j";
char *n = "123456789";
float p [9];
float z [8]; /* ввод данных */
printf ("171.1. Hello, world!\n");
printf ("205.2.\n\n");
for (a = 0; a < 8; a++)
for (b = 0; b < 8; b++)
printf ("%i * %i = %-5i", a, b, a * b);
printf ("\n\n205.3. ");
for (a = 0; a < 101; a++)
{
if (a % 2) continue;
printf ("%-4i", a);
}
printf ("\n");
for (a = 0; a < 80; a++) printf ("*");
a = sizeof g / sizeof g [0];
for (b = 0; b < a - 1; b++)
for (c = 0; c < a - b - 1; c++)
if (g [c] > g [c + 1])
{
d = g [c];
g [c] = g [c + 1];
g [c + 1] = d;
}
printf ("219.4. ");
for (b = 0; b < a; b++) printf ("%i ", g [b]);
printf ("\n220.5.\n\n");
for (a = 0; a < 10; a++)
{
for (b = 0; b < 10; b++)
{
j [a] [b] = a * b;
printf ("%-4i", j [a] [b]);
}
printf ("\n");
}
a = b = 0;
printf ("\n221.6.\n\n");
for (c = 0; c < 5; c++)
{
for (d = 0; d < 5; d++)
{
j [c] [d] = rand () % 100;
printf ("%-4i", j [c] [d]);
if (j [a] [b] < j [c] [d])
{
a = c;
b = d;
}
}
printf ("\n");
}
printf ("\nМаксимум: j [%i] [%i] = %i.\n", a, b, j [a] [b]);
a = 1;
b = 2;
aa (&a, &b);
printf ("225.7. a = %i, b = %i.\n", a, b);
printf ("226.8. ");
for (a = 0; a < 5; a++)
printf ("Норма %i-ой строки равна %g.\n", a, ad (10, j [a]));
for (a = 0; a < 10; a++) ag (10, j [a]);
printf ("227.9.\n\n");
for (a = 0; a < 10; a++)
{
for (b = 0; b < 10; b++)
printf ("%-4i", j [a] [b]);
printf ("\n");
}
a = 0;
printf ("\n230.10. %s", m);
while (m [a])
{
m [a] = '*';
printf (", %s", m);
a++;
};
printf (". Длина строки %i.\n", a);
ak (n);
printf ("232.11. %s.\n\n", n);
printf ("Input 8 float: ");
for (a = 0; a < 8; a++)
scanf ("%f", &z [a]);
printf ("218.12. ");
for (a = 0; a < 5; a++) printf ("%g ", z [a]);
/* Вычисление длин отрезков четырехугольника */
p [0] = am (z [0], z [1], z [2], z [3]);
p [1] = am (z [2], z [3], z [4], z [5]);
p [2] = am (z [4], z [5], z [6], z [7]);
p [3] = am (z [6], z [7], z [0], z [1]);
p [4] = am (z [0], z [1], z [4], z [5]);
/* Вычисление площадей двух треугольников */
p [5] = ap (p [0], p [1], p [4]);
p [6] = ap (p [2], p [3], p [4]);
p [7] = p [5] + p [6];
printf ("\n211.13. Площадь четырехугольника %g.\n", p [7]);
p [8] = 0;
for (a = 0; a < 8; a++) p [8] += z [a];
p [8] /= 8;
printf ("219.14. Среднее арифметическое %g.\n", p [8]);
getch ();
printf ("\n");
}
aa (int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
}
float ad (int a, int d []) /* норма вектора */
{
int g;
long j;
j = 0;
for (g = 0; g < a; g++)
j += d [g] * d [g];
return sqrt (j);
}
ag (int a, int d []) /* функция сортировки */
{
int g, h, i;
for (g = 0; g < a - 1; g++)
for (h = 0; h < a - g - 1; h++)
if (d [h] < d [h + 1])
{
i = d [h];
d [h] = d [h + 1];
d [h + 1] = i;
}
}
aj (char *a) /* длина строки */
{
int d;
d = 0;
while (a [d]) d++;
return d;
}
ak (char *a)
{
char d;
int g, h;
g = aj (a);
for (h = 0; h < g / 2; h++)
{
d = a [h];
a [h] = a [g - h - 1];
a [g - h - 1] = d;
}
}
float am (float a, float b, float c, float d) /* длина отрезка */
{
return sqrt ((c - a) * (c - a) + (d - b) * (d - b));
}
float ap (float a, float b, float c) /* формула Герона */
{
float d, e;
d = (a + b + c) / 2;
e = d * (d - a) * (d - b) * (d - c);
if (e < 0)
e = 0;
return sqrt (e);
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев