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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2018, 06:50   #381
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Пока что стоит задача-минимум - заставить это работать.
Смысла в тех учебных примерах немного, это перекладывание песка из одного кулечка в другой.

Насчет абстракции в именах переменных - у нас с вами мышление разное. Тормозить я буду не только на ошибке, но и на очевидных вещах.
И это не "как попало", а в определенной системе именования, созданной как раз для того, чтобы не запутаться. Кто забыл - может почитать комментарии к описаниям переменных, это займет секунд десять.
Сейчас у меня мозги не такие быстрые, как 20 лет назад, хотя знаний, где я ошибаюсь и где другие ошибаются - прибавилось.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 23.12.2018, 07:15   #382
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Насчет абстракции в именах переменных - у нас с вами мышление разное. Тормозить я буду не только на ошибке, но и на очевидных вещах.
Извините, но, вы идиот? Дело в том что чтобы перестать ошибаться и заставить все что необходимо работать, надо, хотя бы, перестать путаться в переменных самому. А может вы так специально делаете чтобы потом, сливая исходник на форум отвлекать других участников совершенно не задумываясь над тем что кто то, по вашей вине, будет расходовать свое время(за которое, кстати, мог бы заработать деньги) только на то, чтобы понять что означает та или иная переменная?

Цитата:
Сообщение от jura_k Посмотреть сообщение
Кто забыл - может почитать комментарии к описаниям переменных, это займет секунд десять.
Что то я не разу не видел комментов, да и потом, ты же не вставляешь комментарии на каждом шагу а при чтении исходника не редки случаи когда можно запутаться не смотря на комментарии указанные в начале, особенно, по той причине что ты исходник выкладываешь в несколько страниц.

И еще, для справки, если уж мне не верите, то, прочтите, хотя бы, это:

Цитата:
Совет из личного опыта – давайте переменным осмысленные имена. Оно может состоять от 1 до 32 символов. Не называйте переменные – А, b или xffgdf. Через день вы уже не будете помнить, что за данные в ней хранятся. При задании имя переменной можно использовать строчные и прописные буквы, цифры и символ подчёркивания, который в Сишке считается буквой. Первым символом обязательно должна быть буква. Имя переменной не должно совпадать со служебными командами.
И это, не только один из программистов советует, гляньте, хотя бы ссылки, которые выдает поисковая система:

https://duckduckgo.com/?q=почему+пер...t=opera&ia=web

p.s. Т.С. опять нажаловался модераторам... Удивительно одно- с какой стати вопрос, теперь, является утверждением, а следовательно и оскорблением?

Цитата:
Сообщение от vasek123 Посмотреть сообщение
Извините, но, вы идиот? Дело в том что чтобы перестать ошибаться и заставить все что необходимо работать, надо, хотя бы, перестать путаться в переменных самому. А может вы так специально делаете чтобы потом, сливая исходник на форум отвлекать других участников совершенно не задумываясь над тем что кто то, по вашей вине, будет расходовать свое время(за которое, кстати, мог бы заработать деньги) только на то, чтобы понять что означает та или иная переменная?

Последний раз редактировалось vasek123; 23.12.2018 в 07:30.
vasek123 вне форума Ответить с цитированием
Старый 23.12.2018, 07:28   #383
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Вот тот исходник, который я сливаю - вот он-то как раз и работает.

А комментарии всегда идут в начале, где переменные описываются - куда ж еще?
В середине есть комментарии, только если алгоритм сложноватый или промежуточных переменных много и можно запутаться.
Если я чувствую, что могу что-то забыть - то оставляю комментарий, чтобы потом не тратить 10 минут на лазание по всему тексту с целью выяснить, "а что это такое".
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 23.12.2018, 07:34   #384
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Вот тот исходник, который я сливаю - вот он-то как раз и работает.

А комментарии всегда идут в начале, где переменные описываются - куда ж еще?
В середине есть комментарии, только если алгоритм сложноватый или промежуточных переменных много и можно запутаться.
Если я чувствую, что могу что-то забыть - то оставляю комментарий, чтобы потом не тратить 10 минут на лазание по всему тексту с целью выяснить, "а что это такое".
Если вы пишете, это, для себя, то не стоит это выкладывать на всеобщее обозрение, экстрасенсов тут нет чтобы понимать что ты задумал изначально.
vasek123 вне форума Ответить с цитированием
Старый 27.12.2018, 17:07   #385
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Собрался учить ООП по книжке "Начальный курс C и C++". Там материал дается с разбивкой по темам в справочной форме, к каждой теме небольшой пример. Это уже не учебник получается, а справочник по вопросам программирования ООП в C++.
А мне нужны практические примеры, а не теоретическая демонстрация.
Для учебника кое-чего не хватает. Примерно половины.
Эх, сотворю-ка я что-нибудь вечное!
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 27.12.2018, 18:36   #386
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Собрался учить ООП по книжке "Начальный курс C и C++". Там материал дается с разбивкой по темам в справочной форме, к каждой теме небольшой пример. Это уже не учебник получается, а справочник по вопросам программирования ООП в C++.
Может вам еще и готовый исходник отправить? Без теории нынче ни куда и если у вас не хватает ума что то прочесть то это только ваши трудности а не кого то еще.
vasek123 вне форума Ответить с цитированием
Старый 29.12.2018, 04:56   #387
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Изучение структур.
Код:
//   p126 - одиночные строки

struct student stud1, stud2;
strcpy (stud1.name, "Иванов М. С.");
printf ("%s", stud2.group);
struct student stud1kurs [200];
stud1kurs [24].kurs;

stud1.name [4];
stud1 = stud2;
func1 (first.a);
func2 (&second.b);
struct stru *adr_pointer;

//   p127

(*a).x;
a.address.house = 101;
union u alpha, beta;
u.ch = '5';
printf ("%i, %i", win, aut);

enum value {one = 1, two, three, ten = 10, thousand = 1000, next};
printf ("%i, %i, %i, %i, %i", one, two, ten, thousand, next);
typedef char SYMBOL;
typedef unsigned UNSIGN;
typedef float real;

//   p131

struct st_tag avar;
student avar;
То же самое, но в блочном варианте.
Код:
//   p125 - группы операторов

struct student
{
   char name [30];
   int kurs;
   char group [3];
   int stip;
};

struct student
{
   char name [30];
   char kurs;
   char group [3];
   int stip;
} stud1, stud2;

struct complex
{
   float x;
   float y;
} c1, c2;

struct complex *a;
a = &c1;

//   p127

struct addr
{
   char city [30];
   char street [30];
   int house;
};

struct fulladdr
{
   struct addr address;
   int room;
   char name [30];
} f, g;

struct onebit
{
   unsigned one_bit: 1;
} obj;

//   p128

union u
{
   int i;
   char ch;
   long l;
};

enum seasons {win, spr, sum, aut};
enum seasons s;

typedef struct st_tag
{
   char name [30];
   int kurs;
   char group [3];
   int stip;
} student;
То же самое, но готовая программа.
Код:
//   Локальные структуры

struct aa      //   struct first, stru
{
   int a;
   char b;
};

struct ab      //   struct second
{
   int a;
   char b;
};

struct ac      //   struct byte
{
   int b1: 1; int b2: 1; int b3: 1; int b4: 1; int b5: 1; int b6: 1; int b7: 1; int b8: 1;
};

union ad      //   union bits
{
   char a;
   struct ac b;
};

struct aa bb;
struct ab bc;
union ad bd;

//   Локальные функции

ee (struct aa, CDC *);
ef (union ad, CDC *);      //   decode

//   Локальные переменные

int gg = 10, gh = 10;      //   координаты вывода текста
int gi = 100;


void CP127View::OnDraw (CDC *pDC)
{
   CP127Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);

   int a;
   double d;
   CString g;
   int gi = 5;

   //   p125
   bb.a = 1;
   bb.b = 'f';
   bc.a = bb.a;

   //   p126
   bb.a = 1;
   bb.b = '2';
   ee (bb, pDC);

   //   p129
   bd.a = 'a';
   ef (bd, pDC);

   //   p164
   pDC -> TextOut (gg, gh, "4. C++ - хороший язык.");
   gh += 25;

   a = 100;
   g.Format ("Вы ввели число %i.", a);
   pDC -> TextOut (gg, gh, g);
   gh += 25;

   d = 1.2345;
   g.Format ("Переменная типа double %g.", d);
   pDC -> TextOut (gg, gh, g);
   gh += 25;

   //   p166
   g.Format ("5. Локальная переменная %i.", gi);
   pDC -> TextOut (gg, gh, g);
   gh += 25;

   g.Format ("Глобальная переменная %i.", ::gi);
   pDC -> TextOut (gg, gh, g);
   gh += 25;
}


//   Локальные функции

ee (struct aa bb, CDC *pDC)
{
   CString a;

   a.Format ("2. %i, %i.", bb.a, bb.b);
   pDC -> TextOut (gg, gh, a);
   gh += 25;
   return 0;
}

ef (union ad bd, CDC *pDC)
{
   CString a = "3. ";

   if (bd.b.b8) a += '1'; else a += '0';
   if (bd.b.b7) a += '1'; else a += '0';
   if (bd.b.b6) a += '1'; else a += '0';
   if (bd.b.b5) a += '1'; else a += '0';
   if (bd.b.b4) a += '1'; else a += '0';
   if (bd.b.b3) a += '1'; else a += '0';
   if (bd.b.b2) a += '1'; else a += '0';
   if (bd.b.b1) a += '1'; else a += '0';

   pDC -> TextOut (gg, gh, a);
   gh += 25;
   return 0;
}
ООП.
Я пытался дальше. Но не получилось. Там совсем другой подход нужен. Поэтому остановился на трех объектах, хотя можно было бы и больше, гораздо больше...
Код:
//   Класс queue (очередь)

class aa
{
   int queue [10];      //   очередь
   int begin, end;      //   начало и конец очереди

public:
   void initialization ();      //   инициализация очереди
   void put (int);      //   поместить элемент в очередь
   int get ();      //   получить элемент из очереди
};


//   Класс dataclass

class ab
{
private:
   int privatedatamember;
public:
   ab (int);
   int publicdatamember;
   publicmethod ();
};


//   Методы aa

void aa::initialization ()
{
   begin = end = 0;
}

void aa::put (int a)
{
   if (end < 10) queue [end++] = a;
}

int aa::get ()
{
   if (begin == end) return 0; else return queue [begin++];
}


//   Методы ab

ab::ab (int a)
{
   privatedatamember = a;
}

int ab::publicmethod ()
{
   return privatedatamember;
}


void CP169View::OnDraw (CDC *pDC)
{
   CP169Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);
   
   CString a, b;
   aa bb, bc;      //   класс queue (очередь)
   ab bd (1);      //   класс dataclass
   int d;

   //   p169 - 1
   
   bb.initialization ();
   bc.initialization ();

   bb.put (7); bb.put (9); bb.put (11);   //   заполнение очереди

   a.Format ("1. %i, ", bb.get ());
   b += a;
   a.Format ("%i, ", bb.get ());
   b += a;
   a.Format ("%i, ", bb.get ());
   b += a;
   a.Format ("%i.", bb.get ());
   b += a;
   pDC -> TextOut (10, 10, b);

   bb.put (7); bb.put (9); bb.put (11);   //   заполнение очереди

   a.Format ("%i, %i, %i, %i.", bb.get (), bb.get (), bb.get (), bb.get ());
   pDC -> TextOut (10, 35, a);

   b = "";
   for (d = 0; d < 12; d++) bc.put (d * d);
   for (d = 0; d < 12; d++)
   {
      a.Format ("%i ", bc.get ());
      b += a;
   }

   pDC -> TextOut (10, 60, b);

   //   p25 - 2

   pDC -> TextOut (10, 85, "2. Добро пожаловать в C++");

   //   p36 - 3

   bd.publicdatamember = 2;
   a.Format ("3. dataobject.publicdatamember = %i.", bd.publicdatamember);
   pDC -> TextOut (10, 110, a);
   a.Format ("dataobject.privatedatamember = %i.", bd.publicmethod ());
   pDC -> TextOut (10, 135, a);
}
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 29.12.2018, 06:39   #388
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
Я пытался дальше. Но не получилось. Там совсем другой подход нужен.
Конечно требуется- включать мозги и читать учебник а не разглядывать картинки...
vasek123 вне форума Ответить с цитированием
Старый 29.12.2018, 07:07   #389
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
stud1kurs [24].kurs;

stud1.name [4];
А в чем смысл этих строк? Что вы от них хотите?
p51x вне форума Ответить с цитированием
Старый 29.12.2018, 13:01   #390
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Да так в учебнике написано. А я соединил всё вместе, чтоб было красиво (и можно было охватить одним взглядом).
Конкретно эти строчки демонстрируют работу с массивом в структурах.
В принципе, если прочитать всё вместе, можно понять, как программировать, даже не заглядывая в учебник. Поэтому пишу.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что учить? Vad1m198 Свободное общение 2 12.09.2012 20:16
Что учить? jojo97 Помощь студентам 48 11.03.2011 16:48
что учить? veter48 Свободное общение 11 05.08.2010 00:38
Что учить... beskon Свободное общение 7 17.09.2008 20:54