Комментарии
- 30 мар 2019 19:50сори, думал интересуешься
А ему бесполезно. Он на своей волне. Даже тут умыл руки - все претензии к автору - 31 мар 2019 09:59Хорошо когда исключение можно перехватить и найти ошибку, а если оно вообще происходит из другой сборки, например сторонней dll, написаной каким-нибудь китайцем за чашку риса? можно же несколько дней танцевать с бубном. Вот из-за таких "учителей" и безразличных к своему обучению "учеников" потом и совершаются такие глупейшие ошибки, из-за которых страдают остальные разработчики!
- 31 мар 2019 10:03Этот мой вопрос который я ему задал - риторический, я хочу понять зачем он выкладывает эти листинги? может этот человек гениальный самородок и выдающаяся личность, которую никто не замечает))).... но нет всё дело в авторе... тот автор просто сочинил херню... чтобы ее потом перепостили здесь... я постепенно теряю веру в человечество...
- 31 мар 2019 11:25Я уже пытался выяснить. Не удалось. И спорить бесполезно - любая критика в штыки. На любой совет - мы академий не заканчивали, делаем как можем и ваши советы не уместны. Так что просто забей...
- 31 мар 2019 11:33Так я то понимаю что границы массива нужно проверять. Про динамические массивы скромно молчу
Но в том то и дело, что не смог я донести человеку эту мысль. Ему говоришь что было бы неплохо сделать по другому, так не хорошо. Но он сразу ссылается на книгу, что ему и так хорошо и пр. Т.е. человек априори не готов думать. Он вроде как учится... Но похоже учится на кодера, а не программиста. Лично мне не понятно зачем тупо переписывать задачи из книги и не пытаться хотя бы их улучшить.
Ну каждому свое - 31 мар 2019 17:31А зачем усложнять жизнь? Главное пример сделать. А вот будут свои программы - что-нибудь напишу. Но обычно я массив "руками" заполняю, действую аккуратно.
- 31 мар 2019 18:18Бездумно переписать пример из книги - сомнительный способ обучения. Я полагал что вы пытаетесь чему то научится. Но вижу что "тяп-ляп и так сойдет".
Хотя мы уже обсуждали этот вопрос. Делайте как считаете нужным - ваше право. - 31 мар 2019 18:22Так вот в этом вся соль! Если вам это не надо - не понятно зачем это делать. Более того, непонятно зачем это публиковать и калечить мозг другим начинающим.
- 31 мар 2019 18:35Нужно разобраться с книгой. Что там написано.
- 31 мар 2019 18:36Пытаюсь свети примеры в одну программу, чтобы можно было охватить взглядом (то, что прошел).
- 31 мар 2019 18:51Вот, вот... Все учебники (и не только) учат разбивать большие задачи на мелкие. А вы наоборот.
- 31 мар 2019 18:56Для того что бы с книгой разобратся, ее надо читать, а не переписывать. Примеры в книге тоже для чтения. Потому их и делают намеряно короткими и простыми. Помните про массив да? Автор наверняка не стал делать проверки индексов, что бы не усложнять пример. А вот вы, могли бы это сделать и показать как это делается. И вам тренировка и новичкам польза. А тупо переписать - пользы для всех 0.
- 31 мар 2019 19:14Не совсем. Это была вводная глава в программирование на ООП. Для совсем новичков.
Для того чтобы оставить комментарий, войдите или зарегистрируйтесь
Группа для программистов ( programming )
:Юрий Казекин
Изучаем очередную технологию программирования - ООП.
/* p25
Язык Borland C++ 3.1
Visual C++ 6.0 - учебный курс
Начальный курс C и C++ */
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
int j = 100; // Глобальная переменная
long ee (int);
float ee (float);
float ee (long);
// (1) Класс DataClass
class cc
{
private:
int pri; // PrivateDataMember
public:
cc (int); // конструктор класса
int pub; // PublicDataMember
int met (); // PublicMethod ();
};
// (2) Класс SchoolClass
class cd
{
int *data; // ClassData, перечень оценок
int index; // ClassDataIndex, номер обрабатываемой оценки
public:
cd (int); // конструктор класса
~cd (); // деструктор класса
void add (int); // AddScore ();
int get (int); // GetScore ();
float average (); // AverageScore ();
};
// (3) Класс vehicle
class ce
{
public:
void start ();
void move ();
};
// (4) Класс helicopter
class cf:public ce
{
public:
void move ();
};
// (5) Класс DisplayClass
class cg
{
public:
void display (char);
void display (char *);
};
// (6) Класс "очередь" queue
class ch
{
int queue [10]; // Данные класса "очередь" q [10]
int begin; // Адрес начала очереди rloc
int end; // Адрес конца очереди sloc
public:
void initialization (); // Инициализация очереди init ();
void put (int); // Добавление данных в очередь qput ();
int get (); // Извлечение данных из очереди qget ();
};
// ********** (1) Методы DataClass **********
cc::cc (int a) {pri = a;}
int cc::met () {return pri;}
// (2) Методы SchoolClass
cd::cd (int a)
{
data = new int [a];
index = 0;
}
cd::~cd () {delete data;}
void cd::add (int a) {data [index++] = a;}
int cd::get (int a)
{
if (a < index) return data [a]; else return -1;
}
float cd::average ()
{
float a;
int d;
a = 0;
if (index < 1) return -1;
for (d = 0; d < index; d++)
a += data [d];
return a / index;
}
// (3) Методы класса vehicle
void ce::start () {cout << "1 - Стартую...\n";}
void ce::move () {cout << "2 - Двигаюсь...\n";}
// (4) Методы класса helicopter
void cf::move () {cout << "3 - Лечу...\n";}
// (5) Методы класса DisplayClass
void cg::display (char a) {cout << a;}
void cg::display (char *a) {cout << a;}
// (6) Методы класса queue
void ch::initialization ()
{
begin = end = 0;
}
void ch::put (int a)
{
if (end == 10)
{
cout << "Очередь полна.\n";
return;
}
queue [end++] = a;
}
ch::get ()
{
if (begin == end)
{
cout << "Очередь пуста.\n";
return 0;
}
return queue [begin++];
}
// ********** Функция main (); **********
main ()
{
// Объявления объектов
cc dd (1); // DataObject
cd de (9); // HistoryClass
cd df (10); // EnglishClass
cf dg; // Helicopter Whirly
cg dh; // DisplayClass DisplayObject
ch di, dj, dk; // Очередь queue
int a;
char d [80];
float g;
int j = 5; // Локальная переменная
long m;
unsigned p;
// p25 - 1
cout << "1. Добро пожаловать в C++.\n";
// p37 - 2
dd.pub = 2;
cout << "2. DataObject.PublicDataMember = " << dd.pub << ".\n";
cout << "DataObject.PrivateDataMember = " << dd.met () << ".\n";
// p46 - 3
de.add (80); de.add (81); de.add (82); de.add (83); de.add (84);
de.add (85); de.add (86); de.add (87); de.add (88);
df.add (91); df.add (92); df.add (93); df.add (94); df.add (95);
df.add (96); df.add (97); df.add (98); df.add (99); df.add (100);
cout << "3. Средний балл по истории: " << de.average () << ".\n";
cout << "Средний балл по английскому: " << df.average () << ".\n";
// p53 - 4
cout << "4. ";
dg.start ();
dg.move ();
// p56 - 5
cout << "5. ";
dh.display ('h');
dh.display ("i");
cout << "\n";
// p164 - 6
cout << "6. C++ - хороший язык.\n";
printf ("Можно использовать функцию printf ().\n");
cout << "Введите число: ";
cin >> a;
cout << "Вы ввели число " << a << ".\n";
cout << "Введите строку: ";
cin >> d;
cout << d << ".\n";
g = 1.2345;
cout << "Переменная типа float g = " << g << ".\n";
// p166 - 7
cout << "7. Локальная переменная: " << j << ".\n";
cout << "Глобальная переменная: " << ::j << ".\n";
// p170 - 8
di.initialization ();
dj.initialization ();
dk.initialization ();
di.put (7);
di.put (9);
di.put (11);
dj.put (8);
dj.put (10);
dj.put (12);
cout << "8. " << di.get () << " ";
cout << di.get () << " ";
cout << di.get () << " ";
cout << di.get () << ".\n";
cout << dj.get () << " " << dj.get () << " " << dj.get () << " "
<< dj.get () << ".\n";
for (a = 0; a < 12; a++)
dk.put (a * a);
for (a = 0; a < 12; a++)
cout << dk.get () << " ";
// p171 - 9
a = 7;
g = 1.1;
m = 20;
cout << "\n9. ";
cout << ee (a) << ".\n";
cout << ee (g) << ".\n";
cout << ee (m) << "...\n";
cout << ee (10) << ".\n";
cout << ee ((float) 10.1) << ".\n";
cout << ee (70000) << "...\n";
cout << ee (10l) << ".\n";
p = 4;
cout << ee ((int) p) << ".\n";
cout << ee ((int) 8u) << ".\n";
getch ();
cout << "\n";
return 0;
}
long ee (int a)
{
cout << "Функция использует целый аргумент ";
return (long) a * a;
}
float ee (float a)
{
cout << "Функция использует вещественный аргумент ";
return a * a;
}
float ee (long a)
{
cout << "Функция использует аргумент типа \"long\" ";
return (float) a * a;
}