Остановился, когда размер программы превысил 5 килобайт. На всё ушло два дня - вчера и сегодня....Я тут полистал тему и обнаружил, что один из предыдущих постов почти такой же. Ну ладно, ещё раз опубликую. В этот раз всё будет иначе! Мы пойдём другим путём![code]/* p42Язык Turbo C 2.0Начальный курс C и C++ *//* 1 - 15k, 2 - 20k, 3 - 21k, 5 - 22k, 12 - 23k17 - 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");}[/code]
Группа для программистов ( programming )
:Юрий Казекин
Сделал ещё раз всё то же самое.
Остановился, когда размер программы превысил 5 килобайт. На всё ушло два дня - вчера и сегодня.
...Я тут полистал тему и обнаружил, что один из предыдущих постов почти такой же. Ну ладно, ещё раз опубликую. В этот раз всё будет иначе! Мы пойдём другим путём!
[code]/* 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");
}[/code]