Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2017, 18:19   #91
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,508
По умолчанию

Ну может кто умную мысль скажет. Что подправить, что дальше учить.

Код:
/*   p101
     Язык Turbo C 2.0
     Начальный курс C и C++. Часть 5.   */

/*   1 - 16k, 2 - 21k, 3 - 22k, 5 - 23k   */


#include <conio.h>
#include <stdio.h>

p (int, int);
s (int *, int *);
v (int a [], int b);


main ()
{
   int a, b, c;
   int d [10] = {1, 23, 4, 7, 8, 0, 1, 9, 4, 7};
   int e [10] = {1, 3, -5, 7, 9, 0, 22, 4, 6, 8};
   float g, h;
   float *j;
   int *m, *n;

   printf ("? (1-2) ");
   scanf ("%i", &a);
   if (a == 1) goto aaa;   /*   большие программы   */
   if (a == 2) goto aab;
   printf ("\n");
   return;

aaa:
   printf ("1. Неотсортированный массив:");
   for (a = 0; a < 10; a++) printf (" %i", d [a]);
   for (a = 0; a < 10; a++)
      for (b = 0; b < 9; b++)
	 if (d [b] < d [b + 1])
	 {
	    c = d [b];
	    d [b] = d [b + 1];
	    d [b + 1] = c;
	 }

   printf ("\nОтсортированный массив:");
   for (a = 0; a < 10; a++) printf (" %i", d [a]);
   a = 10;
   printf ("\n5. До сортировки:");
   for (b = 0; b < a; b++) printf (" %i", e [b]);
   v (e, a);
   printf ("\nПосле сортировки:");
   for (b = 0; b < a; b++) printf (" %i", e [b]);
   printf ("\n");

   goto aaz;

aab:
   g = 10.1;
   j = &g;
   h = *j;
   printf ("2. g = %.4g, h = %.4g.\n", g, h);
   (*j)++;
   printf ("g = %.4g, h = %.4g.\n", g, h);
   h = 1 + *j * h;
   printf ("g = %.4g, h = %.4g.\n", g, h);

   a = 10;
   m = &a;
   n = m;
   printf ("3. указатель - %p.\n", m);
   printf ("указатель - %p.\n", n);
   printf ("%i, %i.\n", a, *n);

   a = 5;
   b = 10;
   printf ("4. Сначала a = %i, b = %i.\n", a, b);
   p (a, b);
   printf ("Теперь a = %i, b = %i.\n", a, b);
   printf ("Ничего не изменилось.\n");
   s (&a, &b);
   printf ("Теперь a = %i, b = %i.\n", a, b);
   printf ("Значения поменялись.\n");

aaz:
   getch ();
   printf ("\n");
}


p (int a, int b)
{
   int c = a;
   a = b;
   b = c;
}

s (int *a, int *b)
{
   int c = *a;
   *a = *b;
   *b = c;
}

v (int a [], int b)
{
   int c, d, e;
   for (c = 0; c < b; c++)
      for (d = 0; d < b - 1; d++)
	 if (a [d] < a [d + 1])
	 {
	    e = a [d];
	    a [d] = a [d + 1];
	    a [d + 1] = e;
	 }
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 28.07.2017, 10:05   #92
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,508
По умолчанию

Шестая часть.
Код:
/*   p110
     Язык Turbo C 2.0
     Начальный курс C и C++. Часть 6.   */

/*   1 - 16k   */


#include <conio.h>
#include <stdio.h>

d (int a [3] [3], int b [3] [3], int c [3] [3]);


main (int j, char *k [], char *l [])
{
   int a;
   int g [3] [3] = {0, 1, 2, 3, 4, 5, 6, 7, 8},
       h [3] [3] = {1, 2, 3, 4, 5, 6, 7, 8, 9},
       i [3] [3];

   printf ("? (1) ");
   scanf ("%i", &a);
   if (a == 1) goto aaa;
   printf ("\n");
   return;

aaa:
   d (g, h, i);
   printf ("1. Массив i [3] [3]:\n");
   for (a = 0; a < 3; a++)
      printf ("%-5i%-5i%i\n", i [a] [0], i [a] [1], i [a] [2]);
   printf ("2. Количество аргументов командной строки - %i.\n", j);
   printf ("Аргументы командной строки:\n");
   for (a = 0; a < j; a++) printf ("%s\n", k [a]);
   printf ("Аргументы состояния среды:\n");
   for (a = 0; l [a]; a++) printf ("%s\n", l [a]);

aaz:
   getch ();
   printf ("\n");
}


d (int a [3] [3], int b [3] [3], int c [3] [3])
{
   int g, h, i;
   for (g = 0; g < 3; g++)
      for (h = 0; h < 3; h++)
      {
	 c [g] [h] = 0;
	 for (i = 0; i < 3; i++)  c [g] [h] += a [g] [i] * b [i] [h];
      }
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 28.07.2017, 10:48   #93
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А слабо написать более-менее прогу без гоуту?
p51x вне форума Ответить с цитированием
Старый 28.07.2017, 11:46   #94
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Ну может кто умную мысль скажет. Что подправить, что дальше учить.
А смысл?
Вам изначально говорили, что не нужно заниматься тем,
на что Вы теперь потратили столько своего времени.
Croessmah вне форума Ответить с цитированием
Старый 28.07.2017, 18:58   #95
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,508
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
А смысл?
Вам изначально говорили, что не нужно заниматься тем,
на что Вы теперь потратили столько своего времени.
Хотел книжку прочитать. Вроде прочитал. 1/3. До того момента, где пошли ненужные сложные вещи. Может, под Windows их встречу ещё.

Цитата:
А слабо написать более-менее прогу без гоуту?
goto нужен для того, чтобы распараллелить разные участки кода: есть код, который выполняется просто "без всяких яких"; есть код, где нужно вводить числа (одно или несколько, целые или рациональные); есть код, который слишком длинен или выдаёт длинный результат на экран типа таблицы. То есть исключительно для удобства программиста. Потому что нехорошо "кашу" делать - не для этого пишется. В Windows, похоже, можно будет обойтись.

Думаю, программы можно было и чуть подлиннее делать - раза в полтора. Но я не знал, сколько материала можно будет запихнуть... У меня английский алфавит кончился. Как сказала Аска Сорью Лэнгли в 6-ой серии "Евангелиона" (где битва на море - "Аска наносит удар"):
Цитата:
- Аска, вооружение Евы не предназначено для ведения подводного боя!
- Не попробуешь - не узнаешь!
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось jura_k; 28.07.2017 в 19:37.
jura_k вне форума Ответить с цитированием
Старый 28.07.2017, 19:44   #96
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

goto и распараллелить код? Не употребляйте слова, смысла которых не понимаете... умнее будете выглядеть.

Функции, ООП и прочее, что есть в С++, есть без Виндовс и вообще без всяких ОС. Так что ваши отслыки к "встречу в виндос" выглядят тупо и поидиотски.
p51x вне форума Ответить с цитированием
Старый 28.07.2017, 19:58   #97
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
До того момента, где пошли ненужные сложные вещи.
Здравый подход к обучению.
Предполагает конечный уровень "вечный чайник".
Особенно классно звучит слово "ненужные".
На основании какого это опыта оно, вдруг, оказалось не нужно?
На основании первых двух глав книжки для чайников времен динозавров? )))
Цитата:
Сообщение от jura_k Посмотреть сообщение
goto нужен для того, чтобы распараллелить разные участки кода
И как оно связано? )))
Цитата:
Сообщение от jura_k Посмотреть сообщение
У меня английский алфавит кончился.
Киллер-фича. Дарю:
Код:
#include  <stdio.h>


#define LABEL(x) blabla_##x


int main(void)
{
    int x = 0;
LABEL(1):
    if (x >= 10)
        goto LABEL(2);
    printf("Hello, world!\n");
    ++x;
    goto LABEL(1);
LABEL(2):
    printf("End\n");
    return 0;
}
http://rextester.com/WWON9550
Можете не благодарить. Надеюсь, чисел хватит на какое-то время.

Последний раз редактировалось Croessmah; 28.07.2017 в 20:00.
Croessmah вне форума Ответить с цитированием
Старый 29.07.2017, 10:26   #98
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,508
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
И как оно связано? )))
Если мне нужно одно (протестировать), я иду туда. Если другое - туда. Разные ветки отличаются тем, какие там программы. Об этом я уже говорил.

Речь идёт о назначении переменных, используемых в программе. Я пытался сделать так, чтобы во всей программе использовались одни и те же переменные, но в разных целях, определяемых конкретным примером. В какой-то момент выяснялось, что типов переменных требуется больше, чем имеется букв в алфавите - и тогда я начинал новую программу. С того примера, на котором закончил.

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Здравый подход к обучению.
Предполагает конечный уровень "вечный чайник".
Особенно классно звучит слово "ненужные".
На основании какого это опыта оно, вдруг, оказалось не нужно?
На основании первых двух глав книжки для чайников времен динозавров? )))
Вот я и пытаюсь прочитать одну книжку и перейти к следующей, где опять объясняются "обычные" вещи. Будет новая программа - по второй книжке.
В моей программистской практике на протяжении 15 лет не требовались "указатели на функции". Вот я и остановился. А вот ООП можно было примениить... Пару программ сделал.

Помимо законченых примеров в книжке имеются пояснительные однострочные коды. Вот они:
Код:
/*   Однострочные коды   */

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;
тип <список переменных>;
AB01 - 1010101100000001;
printf ("\n");
char str [80];

p61

тип имя_переменной = константное_выражение;
(тип) выражение;
(float) x / 2;
(float) (x / 2);
int printf (char *управляющая_строка, ...);

p64

printf ("%05i", 15);
int scanf (char *управляющая_строка, ...);
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");
a = b = c = x * y;

p72

if (ch & 4) printf ("Третий бит содержит 1, состояние 'on'.\n");
выр1 ? выр2 : выр3;
max = x > y ? x : y;
abs = x > 0 ? x : -x;
x > y ? x : y = 1;

p78

for (инициализация; проверка условия; изменение)  оператор;
for (выражение1; выражение2; выражение3)  оператор;
for (i = 0; i < 10; i++)  printf ("%i ", i);
for (i = 9; i >= 0; i--)  printf ("%i ", 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++);
while (условие) оператор;
тип <имя массива> [размер1] [размер2] ... [размерN];
тип <имя массива> [размер];
тип <имя массива> [размер1] [размер2];
int a [100];
колич. байт = <размер базового типа> * <колич. элементов>;

p84

unsigned arr [40]; long double al [1000]; char ch [80];
char str [11];
strcpy (); strcat (); strlen (); strcmp ();
strcpy (s1, s2);
strcat (s1, s2);

p86

strcmp (s1, s2);
strlen (s);
колич. байт = <размер типа данных> * <колич. строк> * <колич. столбцов>;
int a [3] [5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int a [3] [5] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
int a [3] [5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int a [3] [5] = {{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10, 11}};
char str [15] = {'B', 'o', 'r', 'l', 'a', 'n', 'd', ' ', 'C', '+', '+'};
char str [15] = "Borland C++";
char str [80] = "Это объявление и инициализация массива символов.";
char str [] = "Это объявление и инициализация массива символов.";

p89

int mass [] = {1, 2, 3, 1, 2, 3, 4};
тип *<имя переменной>;
int *pi;
p = &x;
p = (int *) &x;

/*   Однострочные коды 2   */

p93

p = p + 3;
p1 = p1 + 10;
<p> = <p> + n * <колич. байт памяти базового типа указателя>;
int plus [10];
p1 = plus;

p94

p1 = &plus [0];
plus [5];
*(p1 + 5);
int *x [10];
x [2] = &y;

p96

char *errors [] = {"Не могу открыть файл", "Не могу закрыть файл", "Ошибка размещения", "Системная ошибка"};
int **point;
f (int x, int y, float z);
f (int x, y, float z);
тип <имя функции> (список параметров);
int func (int a, float b, char *c);
int func (int, float, char *);

p103

static int sum;
register int plus;
register int quick;
float global;
extern float global;

p106

static int count = 10;
function (int ar [10]);
function (int ar []);
function (int *ar);
main (int argc, char *argv []) {...}
main (int argc, char *argv [], char *env []) {...}

p113

>if errorlevel value
void main (void) {...}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось jura_k; 29.07.2017 в 10:38.
jura_k вне форума Ответить с цитированием
Старый 29.07.2017, 11:25   #99
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Если мне нужно одно (протестировать), я иду туда. Если другое - туда. Разные ветки отличаются тем, какие там программы. Об этом я уже говорил.
Это называется распараллеливание? Ну ладно, че.
Параллельность действительно сложная тема. )))

Цитата:
Сообщение от jura_k Посмотреть сообщение
В какой-то момент выяснялось, что типов переменных требуется больше, чем имеется букв в алфавите
Это ж сколько типов Вам надо? )))

Цитата:
Сообщение от jura_k Посмотреть сообщение
В моей программистской практике на протяжении 15 лет не требовались "указатели на функции"
Да ладно? За 15 лет не одного callback'а? Ужас. )))
Цитата:
Сообщение от jura_k Посмотреть сообщение
Вот я и пытаюсь прочитать одну книжку
в каком месте:
Цитата:
Сообщение от jura_k Посмотреть сообщение
Хотел книжку прочитать. Вроде прочитал. 1/3. До того момента, где пошли ненужные сложные вещи.
Цитата:
Сообщение от jura_k Посмотреть сообщение
где опять объясняются "обычные" вещи
Это же сложные ненужные вещи.
Croessmah вне форума Ответить с цитированием
Старый 29.07.2017, 11:54   #100
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Даешь каждой переменной свой тип!
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C под DOS jura_k Общие вопросы C/C++ 26 01.08.2015 09:03
Из Dos под Win Nozema Фриланс 3 30.10.2009 17:34
C++ под DOS. Функции Xeon332 Общие вопросы C/C++ 34 29.11.2008 18:01
borland C++под DOS Xeon332 Помощь студентам 9 20.09.2008 20:50