Сделал ещё раз всё то же самое. Остановился, когда размер программы превысил 5 килобайт. На всё ушло два дня - вчера и сегодня.
...Я тут полистал тему и обнаружил, что один из предыдущих постов почти такой же. Ну ладно, ещё раз опубликую. В этот раз всё будет иначе! Мы пойдём другим путём!
» Кликните сюда для просмотра оффтоп текста.. «
Код
/* p42
Язык Turbo C 2.0
Начальный курс C и C++ */
/* 1 - 15k, 2 - 20k, 3 - 21k, 5 - 22k, 12 - 23k
17 - 24k, 20 - 25k, 22 - 28k */
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
float ga = 3.1415926; /* число пи */
char dd;
pa (); pb (); pc ();
sa (float);
float va (float);
gd (int);
main ()
{
int aa, ab, ac;
int da, db; /* ввод данных */
float ja, jb;
float ma; /* ввод данных */
unsigned ya;
char ad; /* ввод данных */
char jd;
char md [80], me [10]; /* ввод данных */
printf ("? (1-4) ");
scanf ("%i", &aa);
if (aa == 1) goto aaa;
if (aa == 2) goto aab; /* ввод данных */
if (aa == 3) goto aac; /* дополнительный ввод данных */
if (aa == 4) goto aad; /* большие программы */
printf ("\n");
return;
aaa:
aa = 1996;
printf ("1. Сейчас %i год.\n", aa);
printf ("4. ");
pa (); pb (); pc ();
printf ("5. ");
ja = 5;
sa (ja);
printf ("6. Длина окружности радиуса %.4g равна %.4g.\n", ja, va (ja));
printf ("7.");
for (aa = 10; aa > 0; aa--) printf (" %i", aa);
printf ("\nСтарт!\n");
ya = 60000;
aa = ya;
printf ("8. aa = %i, ya = %u.\n", aa, ya);
jd = 'c'; printf ("10. %c", jd);
jd = '+'; printf ("%c%c\n", jd, jd);
aa = 5; ab = 60;
aa++; ++ab;
printf ("15. aa = %i, ab = %i.\n", aa, ab);
printf ("aa = %i, ab = %i.\n", aa++, ++ab);
aa = 101 <= 105;
ab = 101 > 105;
printf ("16. True - %i, false - %i.\n", aa, ab);
goto aaz;
aab:
printf ("Введите два целых числа: ");
scanf ("%i%i", &da, &db);
printf ("Введите рациональное число: ");
scanf ("%f", &ma);
printf ("Введите символ: ");
scanf ("%c", &ad); scanf ("%c", &ad);
printf ("Введите строку: ");
gets (md); gets (md);
ja = ga * 2 * da;
printf ("2. Радиус %i, длина %.4g.\n", da, ja);
ja = ga * 2 * ma;
jb = ga * ma * ma;
printf ("3. Радиус %.4g, длина окружности %.4g, площадь круга %.4g.\n",
ma, ja, jb);
printf ("9. ");
dd = ad;
gd (da);
printf ("12. Я знаю ваше имя; ваше имя %s.\n", md);
aa = db;
if (aa == 0) aa = 1;
printf ("14. Целая часть %i, остаток от деления %i.\n",
da / aa, da % aa);
printf ("17. ");
if (ma > 0) {aa = 1; printf ("Число %.4g положительное, aa = %i.\n", ma, aa);}
if (ma == 0) {aa = 0; printf ("Число %.4g равно нулю, aa = %i.\n", ma, aa);}
if (ma < 0) {aa = -1; printf ("Число %.4g отрицательное, aa = %i.\n", ma, aa);}
printf ("18. ");
if (ma > 0) {aa = 1; printf ("Число %.4g положительное.\n", ma);}
else if (ma < 0) {aa = -1; printf ("Число %.4g отрицательное.\n", ma);}
else {aa = 0; printf ("Число %.4g равно нулю.\n", ma);}
goto aaz;
aac:
printf ("11. Нажмите какую-либо клавишу: ");
jd = getche ();
if (jd == 'a') printf ("\nВы нажали клавишу 'a'.");
printf ("\nВы нажали клавишу '%c'.\n", jd);
printf ("13. Введите строку: ");
gets (md);
scanf ("%[0123456789]%s", md, me);
printf ("%s..%s\n", md, me);
printf ("21. Введите символ: ");
getchar ();
for (;;)
{
jd = getchar ();
if (jd == 'Q') break;
printf ("%c", jd);
}
goto aaz;
aad:
printf ("19. Введите прописную букву русского алфавита: ");
jd = getchar (); jd = getchar ();
if (jd >= 'А' && jd <= 'Я')
switch (jd)
{
case 'А': printf ("Алексеев.\n"); break;
case 'Б': printf ("Булгаков.\n"); break;
case 'В': printf ("Волошин.\n"); break;
case 'Г': printf ("Гоголь.\n"); break;
default: printf ("Достоевский, Зощенко и другие.\n"); break;
}
else printf ("Надо было ввести прописную русскую букву.\n");
printf ("20. Введите прописную букву русского алфавита: ");
jd = getchar (); jd = getchar ();
if (jd >= 'А' && jd <= 'Я')
switch (jd)
{
case 'А': printf ("Алексеев.\n");
case 'Б': printf ("Булгаков.\n");
case 'В': printf ("Волошин.\n");
case 'Г': printf ("Гоголь.\n");
default: printf ("Достоевский, Зощенко и другие.\n");
}
else printf ("Надо было ввести прописную русскую букву.\n");
randomize ();
aa = random (100) + 1;
ab = 0;
printf ("22. ");
do {
printf ("Введите число от 1 до 100: ");
scanf ("%i", &ac);
ab++;
if (aa < ac) printf ("Загаданное число меньше.\n");
if (aa > ac) printf ("Загаданное число больше.\n");
} while (aa - ac);
printf ("Вы угадали число.\n");
printf ("Затратили на угадывание %i попыток.\n", ab);
aaz:
getch ();
printf ("\n");
}
pa () {printf ("Вызвали первую функцию.\n");}
pb () {printf ("Вызвали вторую функцию.\n");}
pc () {printf ("Вызвали третью функцию.\n");}
sa (float a) {printf ("Длина окружности радиуса %.4g равна %.4g.\n",
a, ga * 2 * a);}
float va (float a) {return ga * 2 * a;}
gd (int a)
{
int b;
if (a < 1) return;
if (a > 200) a = 200;
for (b = 0; b < a; b++) printf ("%c", dd);
printf ("\n");
}
Кроме программ, в книге встречались однострочные коды. Вот они.
» Кликните сюда для просмотра оффтоп текста.. «
Код
p43
#include <stdio.h>
/* Пример 1. */
main ()
{
int year, month;
p44
year = 1996;
printf ("Сейчас %i год.\n", year);
}
float func (int n, float f, long double ld);
float func (int, float, long double);
p50
if (условие) оператор;
if (0 < 1) printf ("0 меньше 1");
if (0 > 1) printf ("0 больше 1");
if (0 == 1) printf ("0 равно 1");
for (инициализация; условие; изменение) оператор;
p55
i = -5536; j = 60000;
тип <список переменных>;
printf ("\n");
char str [80];
тип имя_переменной = константное_выражение;
p63
(тип) выражение;
(float) x / 2;
(float) (x / 2);
printf ("%05i", 15);
scanf ("%i%*c%i", &i, &j);
scanf ("%5s", str);
scanf ("%iplus%i", &i, &j);
p66
scanf ("%10[A-Z1-5]%s", s);
x = x + 1; ++x; x++;
a < 0; 101 >= 105; 'a' == 'A'; 'a' != 'A';
if ((f = x - y) > 0) printf ("Число x больше, чем y.\n");
a = b = c = x * y;
m -= 20; m *= 20; m /= 10; m %= 10;
p72
ch = ch & 127;
ch = ch | 128;
if (ch & 4) printf ("Третий бит содержит 1, состояние 'on'.\n");
value >> число позиций;
value << число позиций;
x = 9 << 3;
x = 9 >> 3;
x = 9 >> 5;
(выр1) ? (выр2) : (выр3);
max = x > y ? x : y;
abs = x > 0 ? x : -x;
p74
x > y ? x : y = 1;
if (условие) оператор; else оператор;
if (x == 0) printf ("Число равно нулю.\n"); else printf ("Число не равно нулю.\n");
if (!x) printf ("Число равно нулю.\n"); else printf ("Число не равно нулю.\n");
for (инициализация; проверка условия; изменение) оператор;
for (выражение1; выражение2; выражение3) оператор;
p79
for (i = 0; i < 10; i++) printf ("%i\n", i);
for (i = 9; i >= 0; i--) printf ("%i\n", i);
for (ch = '0'; ch != 'N';) scanf ("%c", &ch);
for (;;) printf ("Бесконечный цикл. ");
for (i = 1; 1; i++) printf ("Бесконечный цикл. ");
for (i = 10; i > 6; i++) printf ("Бесконечный цикл. ");
p80
for (i = 0; i < 10000; i++);
Ещё там были многострочные отрывки кодов.
» Кликните сюда для просмотра оффтоп текста.. «
Код
p49
<тип возвращаемого значения> <имя функции> (список параметров)
{
/* тело функции */
}
p51
if (i > 10)
{
printf ("Слишком много.\n");
i /= 2;
}
x = y;
y++;
mul (x, y);
x = y;
y++;
mul (x, y);
p55
int x, y, z;
float radius;
unsigned char ch;
long double integral;
p58
ch = '\n';
printf ("%c", ch);
p59
printf ("\a");
printf ("\07");
printf ("\7");
printf ("\0x7");
p61
int pr = 24;
char c = 'c', ch = '0';
p62
char ch;
int i;
float f;
double d;
long double r;
r = ch * 2 + (i - .5) + (f + d) - 7;
p75
if (условие) оператор;
else if (условие) оператор;
else if (условие) оператор;
...
else оператор;
p76
if (x)
if (y) оператор1;
else оператор2;
if (x)
{
if (y) оператор1;
}
else оператор2;
p79
unsigned char ch;
for (ch = 'А'; ch <= 'Я'; ch++) printf ("%c", ch);
Вот почему букеты из шаров придумали, а аниме-библиотеку – нет? Ведь то же самое (bunch – связка).