if vs ()?():()===> 978 978
if vs ()?():()===> 415 951
if vs ()?():()===> 878 878
if vs ()?():()===> 666 202
if vs ()?():()===> 322 322
if vs ()?():()===> 261 261
if vs ()?():()===> 86 86
if vs ()?():()===> 52 52
if vs ()?():()===> 598 134
if vs ()?():()===> 308 308
if vs ()?():()===> 402 402
if vs ()?():()===> 984 984
if vs ()?():()===> 627 163
if vs ()?():()===> 821 357
if vs ()?():()===> 55 55
if vs ()?():()===> 271 807
if vs ()?():()===> 291 291
if vs ()?():()===> 359 359
if vs ()?():()===> 706 706
if vs ()?():()===> 758 294
if vs ()?():()===> 241 241
if vs ()?():()===> 479 479
if vs ()?():()===> 740 276
if vs ()?():()===> 399 399
if vs ()?():()===> 837 373
if vs ()?():()===> 848 384
Женя, разве какая-то версия стандарта требовала размещения в одну строку?
Нет, а вот трогательная забота разработчиков Ардуино о блондинках и беременных доярках (чтобы они могли функции в любом порядке определять) опять подговнила.
Я взял 1.8.5 как у Upper, получил такую же ошибку. А теперь посмотри как IDE перекорёжила твой файл перед подсовыванием компилятору.
Версия 1.8.5
#include <Arduino.h>
#line 1 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
#line 1 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
const int16_t Modulo = 1000;
template<typename T>
#line 4 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
T mod (T a, int16_t b) ;
#line 10 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
int Wprintf(const char* __fmt, ...);
#line 19 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
void setup();
#line 23 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
void loop();
#line 4 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
T mod (T a, int16_t b) {
T x = a % b;
if (x < 0) return x + b;
return x;
}
int Wprintf(const char* __fmt, ...) {
char s[64];
va_list ap;
va_start(ap, __fmt);
vsnprintf(s, 64, __fmt, ap);
va_end(ap);
Serial.print(s);
}
void setup() {
Serial.begin(115200);
}
void loop() {
int16_t x = random(Modulo);
int16_t y = random(Modulo);
uint16_t ux = x;
uint16_t uy = y;
int rIF, rTER;
if (x < y) rIF = mod((x - y), Modulo) ;
else rIF = mod((uy - ux), Modulo) ;
rTER = mod((x < y) ? (x - y) : (uy - ux), Modulo);
Wprintf ("if vs ()?():()===> %d %d\n", rIF, rTER);
delay(1000);
}
Версия 1.8.13
#include <Arduino.h>
#line 1 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
const int16_t Modulo = 1000;
#line 2 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
template<typename T>T mod (T a, int16_t b);
#line 10 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
int Wprintf(const char* __fmt, ...);
#line 19 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
void setup();
#line 23 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
void loop();
#line 2 "D:\\GoogleD\\Soft\\Kaka\\Kaka1\\Kaka1.ino"
template<typename T>
T mod (T a, int16_t b) {
T x = a % b;
if (x < 0) return x + b;
return x;
}
int Wprintf(const char* __fmt, ...) {
char s[64];
va_list ap;
va_start(ap, __fmt);
vsnprintf(s, 64, __fmt, ap);
va_end(ap);
Serial.print(s);
}
void setup() {
Serial.begin(115200);
}
void loop() {
int16_t x = random(Modulo);
int16_t y = random(Modulo);
uint16_t ux = x;
uint16_t uy = y;
int rIF, rTER;
if (x < y) rIF = mod((x - y), Modulo) ;
else rIF = mod((uy - ux), Modulo) ;
rTER = mod((x < y) ? (x - y) : (uy - ux), Modulo);
Wprintf ("if vs ()?():()===> %d %d\n", rIF, rTER);
delay(1000);
}
Конкретно надо сравнить строки №№ 6-8 у версии 1.8.5 со строкой №5 у версии 1.8.13
andriano, я бы обновил IDE. ХЗ чего ещё от неё прилетит :-(
Сережа! Ну проверь себя. Ну пожалуйста!!! Все работает в штатной ИДЕ 1.8.13. Форум попросить помочь скомпилировать??? Ну блин! Я никогда не публикую код, не запустив. Ты просто оскорбляешь меня, прости за резкость.
Влад, не срача ради. На UNO/IDE 1.6.4. Палеозоефил я, и чо?
Хоть из твоего поста, хоть от Сергея.
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
Но нельзя же до такой степени не знать язык программирования
Почему нельзя? Непросто, конечно, но специалисты имеются. Как-то больно быстро ты забываешь великих людей осчастлививших нас своим присутствием. Вот читай и наслаждайся, тут каждая буква - шедевр:
ЕвгенийП пишет:
Ваш множитель, определённый как
#define TSC_PERIOD (1000/1024)
попросту равен нулю в силу специфики целочисленной арифметики.
Arhat109-2 пишет:
:) Он не равен 0 даже в целочисленной арифметике. Это макропродстановка и в нормальном выражении он будет выглядеть так:
int time = 100*TSC_PERIOD; что после разворачивания макроса даст
int time = 100*(1000/1024); что после предвычисления компилятором константы даст 97,65625 что после преобразования компилятором к целой константе даст 97, что и требовалось. :)
Но нельзя же до такой степени не знать язык программирования
Почему нельзя? Непросто, конечно, но специалисты имеются. Как-то больно быстро ты забываешь великих людей осчастлививших нас своим присутствием. Вот читай и наслаждайся, тут каждая буква - шедевр:
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
to All:
1. М.б., следует всегда указывать в листингах релиз IDE?
2. ИМХО, добавить 1 раз в файл BareMinimum.ino первой строкой /* Arguino 1.8.13 */ (или что там у кого) совсем несложно.
Я согласен с тобой, но не указание версии может извинить, разве что, совсем чайника.
Влад, я вроде сразу сказал, "не срача ради". И даже проверять не собирался, но ты сам попросил. Как то так.
Так к тебе вопросов вроде нет? Ты ж не называешь себя программистом ;)) и не споришь со мной или Женей. Ты прояснил ситуацию, что и правда на древних версиях - бардак, за что тебе большое спасибо!
И, кстати, почему? Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Сережа! Ну проверь себя. Ну пожалуйста!!! Все работает в штатной ИДЕ 1.8.13. Форум попросить помочь скомпилировать??? Ну блин! Я никогда не публикую код, не запустив. Ты просто оскорбляешь меня, прости за резкость.
А в IDE версии 1.8.5 не компилируется.
Мне казалось, что в этой теме обсуждаются свойства языка, а не хакерские приемы. Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции. Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров, значит, код - неправильный, а потому не может быть использован для доказательства чего бы то ни было.
Мне казалось, что в этой теме обсуждаются свойства языка, а не хакерские приемы. Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции. Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров, значит, код - неправильный, а потому не может быть использован для доказательства чего бы то ни было.
Все перечисленные требования соблюдены. Укажи, какое из ТОБОЙ перечисленных требований не соблюдается, или ты - трепло.
Какие хакерские приемы??????????????????????????? Та с ума сошел?
Прочти, что написал Женя. Это именно глюк старых иде. В последней версии нормально все собирается, что и подтвердили участники. Я виноват, что у тебя старая версия с неисправленной ошибкой??? НЕ КОМПИЛЯТОРА.
Я настаиваю на извинениях!!!! Просто очень стыдно должно быть тебе! Или ты просто ......, не признающий своих ошибок.
Влад, ну понимаю, вчера вечером принял на грудь, но с утра-то...
Пока на сегодняшний момент последняя версия: результат компиляции зависит от версии IDE.
На мой взгляд, этот факт однозначно свидетельствует о том, что такой код является неправильным, а потому не имеющим доказательной силы. Другими словами, код, демонстрирующий различие операторов, на Си пока не приведен. Повторяю: настоящий абзац - мое личное мнение, предыдущий абзац, на мой взгляд, отражает текущее положение дел, ну а самый первый абзац - всплеск эмоций, имеющий под собой такую же эмоциональную (но не доказательную) основу.
Да, первоначально пытался скомпилировать под Uno, но коль скоро было оговорено, что компилировать следует под Nano, именно так и было сделано. Но - чудес не бывает, результат от смены платформы не изменился.
Андриано, я предлагаю Вам внимательно прочитать сообщения в теме, опубликованные после Вашего неподобающего, на мой взгляд, выпада.
После этого ответить на вопросы:
1. Есть ли ошибка в моем коде. ?
2. Если есть, в какой строке?
3. В какой строке использован "хакерский прием"?
4. В чем причина того, что в Вашей версии ИДЕ не собирается скетч? (ошибка в моем коде, недопустимый прием в моем коде, особенность компилятора или что-то еще).
И, кстати, почему? Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Во первых, тебе я в общем то верю на слово, не замечал лукавства и манипуляций.
Во вторых, я не пользуюсь тернарными операторами и согласен с ранее озвученной версией, что не надо плодить сущности без надобности. Их присутствие в кодах, в основной массе есть заявка на: дывитеся як я умею. Это ИМХО.
Сам стараюсь писать так, чтобы человек-непрограммист, мог взять словарик и перевести мой алгоритм на обычный язык. Это тоже ИМХО.
Другими словами, код, демонстрирующий различие операторов, на Си пока не приведен.
Я пока, все-таки надеюсь на Вашу порядочность и напоминаю, что когда я был неправ в горячности, я извинился, хотя Вы в хамской форме и предположили противное.
Если Ваша квалификация не позволила Вам понять, что шаблон функции - не более, чем украшение кода, то я ниже приведу код без него, не использующий никаких конструкций из С++. это ТОТ ЖЕ САМЫЙ код. Из него убран шаблон и добавлен возврат из обертки печати, вот про него я действительно забыл, но он не вызывает ошибок нигде, кроме ESP32.
Во первых, тебе я в общем то верю на слово, не замечал лукавства и манипуляций.
Спасибо на добром слове.
bwn пишет:
не надо плодить сущности без надобности.
Сам стараюсь писать так, чтобы человек-непрограммист, мог взять словарик и перевести мой алгоритм на обычный язык.
Это, конечно не так. Инструменты языка созданы не для "понтов", а для удобства разработчика и читателя. Не реально требовать воспринимать код для неподготовленного человека. ;)) Тоже имхо, конечно, но это как разбираться в вине.
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
Влад, K&R изданы 43 года назад, но мы до сих пор рекомендуем эту книгу для изучения. А ты меня попрекаешь не обновлявшейся 3 года IDE. Где логика?
Я поступаю по древнему программистскому правилу: "Если работает, ничего не трогай".
Цитата:
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
А я не знаю именно до такой степени. Так что, оказывается, - можно.
Нет, я ведь никогда не скрывал, что Си/Си++ - не мои родные языки. Я пользуюсь их подмножеством, которое является полным - в том смысле, что позволяет записать любой алгоритм. И мне этого хватает. Естественно, я время от времени интересуюсь теми свойствами языка, которые ранее выпадали из сферы моего познания. И, в частности, я всегда с интересом и удовольствием читаю статьи ЕП, из которых нередко черпаю для себя новое. Но, тем не менее, для меня знание языков Си/Си++ - не самоцель. Поэтому - мне хватает полного подмножества, а остальное - факультатив.
Теперь, на какую аудиторию ориентирована статья Евгения?
Мне кажется, всех посетителей форума можно грубо разделить на 4 категории:
1. Новички, которые еще не вполне освоили даже минимальное полное подмножество Си/Си++.
2. Люди, занимающиеся программированием от случая к случаю и не видящие причин выходить за минимальное полное подмножество указанных языков.
3. Люди, программирующие на нескольких разных языках, среди которых Си/Си++ не являются доминирующими.
4. Люди в совершенстве знающие Си/Си++.
Так вот, для 1-й категории статья бесполезна, для 4-й - не интересна, 2-я тоже вряд ли проявит интерес к написанному. Остается одна 3-я категория, к которой я себя и отношу. Другими словами, IMHO статья написана для таких людей как я.
То, что я написал, что я сильно разочарован статьей - это чистая правда. Я, прочитав начало, понял, что сам я не способен придумать пример, иллюстрирующий разницу приведенных в начале конструкций. Поэтому я с интересом стал читать, надеясь такой пример найти. Увы, такого примера не нашлось, а для тех примеров, что были приведены, у меня оказалось недостаточно знаний, чтобы переделать их именно под шаблон, который приведен в начале статьи. Т.е. я ожидал от этой статьи определенного знания, а это знание не получил, чем и был разочарован. И мое разочарование, пока я не увижу (а сам я их составить не способен, по крайней мере, - сходу) примеров, иллюстрирующих разницу операторов на примере как Си, так и Си++, не пройдет.
В общем, мир таков, каков он есть, а не таков, каким бы мы хотели его видеть. И знания наши такие, какие они есть, а не такие, какими они должны были бы быть, исходя из реплики "нельзя же до такой степени не знать язык". Я вот не знаю именно до такой степени. Но мое "незнание" лежит за пределами минимального полного набор свойств языка, а потому оно не мешает мне писать, возможно, не оптимальные, но - любые программы. И еще я думаю, что статья нацелена на аудиторию, в которой знание языка находится примерно на моем уровне (хотя это, признаю, достаточно сильное допущение). Поэтому предполагать иное (т.е. то, что читатели обязаны знать язык в совершенстве) - не более, чем повод покрасоваться.
Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Влад, вот не поверишь! Я действительно получил ну совершенно неожиданный результат! Получить от тебя код, который не будет компилироваться, я себе раньше и представить такого не мог.
Мне казалось, что в этой теме обсуждаются свойства языка
Совершенно верно
andriano пишет:
Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции.
Он именно так и работает.
andriano пишет:
Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров,
Не наблюдается.
andriano пишет:
результат компиляции зависит от версии IDE.
Стоп! В данной теме обсуждаются свойства языка, а не свойства IDE, которая является глючной прокладкой между программистом и компилятором языка. Прокладкой, которая преиначивает написанное программистом так, что нарушает синтаксис языка.
Позвольте ещё раз напомнить Вашу цитату:
andriano пишет:
.... должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции ... Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров
Не наблюдается, т.к. версии IDE среди вышеприведённых параметров нет. А различие наблюдается именно в зависимости от неё.
Сергей, но Вы же видите (см. пост #56) что из-за ошибки в IDE код оказался испорченным до синтаксической неправильности. Видите. Так зачем упираться-то и говорить, что программист виноват или там язык?
Я настаиваю на извинениях!!!! Просто очень стыдно должно быть тебе! Или ты просто ......, не признающий своих ошибок.
А мне вот, представь, - не стыдно. Я столкнулся с непонятным мне поведением приведенного тобой кода (заметь, я никого ни в чем не обвинял), задал по этому поводу вопрос на форуме. Как я должен был поступить?
Ну а с извинениями, так без проблем:
Владислав, я приношу Вам свои искренние извинения.
4. В чем причина того, что в Вашей версии ИДЕ не собирается скетч? (ошибка в моем коде, недопустимый прием в моем коде, особенность компилятора или что-то еще).
Да, признаю, что я сделал неправильный вывод: IDE не равно КОМПИЛЯТОР.
Извинений за испорченный Шаббат можно не ждать, жаль, что мои ожидания не оправдались.
andriano пишет:
Поэтому предполагать, что читатели обязаны знать язык в совершенстве - не более, чем повод покрасоваться.
Знание, что конструкция вида:
template<typename T>
T mod (T a, int16_t b) {
//код
}
не содержит ошибок, и сделать вывод о неадекватном преобразовании в ИДЕ, это "знание в совершенстве"? Прошу меня простить, но шаблоны функций это знание С++ на уровне школьника, а никак не "в совершенстве". Равно как и знание тернарного оператора, который присутствует в ЛЮБОМ языке программирования, кроме уж совсем диких. И в ЛЮБОМ языке с неявными преобразованиями типов будет наблюдаться схожий эффект. Просто потому, что у оператора есть тип результата.
Неужели это не интересно, как важный для программирования вопрос? Мы же на программистском форуме, а не на форуме электриков! Это первоосновы - подводные камни неявного преобразования типов. Просто одно из проявлений.
Статья Жени важна именно для чуть продвинутых новичков. Стараться избегать двусмысленностей при написании кода и научиться видеть те места, которые компилятору покажутся двусмысленными. Ровно как в соседней ветке про счетчик цикла на границе INT_MAX.
А вот по этому поводу как раз я хотел бы поинтересоваться: извинения будут?
Вы, Андриано, defacto обвинили меня в подлоге и подтасовке. Думаю, что любое дальнейшее действие должно предваряться либо извинениями, либо объяснениями с подтверждением обвинений. Вам (пока) никто оскорблений не наносил.
Теперь я могу снова и без понтов написать некий оффтоп.
=======================================
Я никогда не вру, это некий пунктик в историю которого нет смысла вдаваться. Еще в матшколе шутили: "у Л..на(моя фамилия) честность, доходящая до глупости или глупость, доходящая до честности?". И, как следствие, чрезвычайно болезненно отношусь к обвинениям подобного толка.
Я очень прошу тебя, если ты не разберешься в чем-то, написанном мной, задай вопрос в менее двусмысленной форме.
Это, конечно не так. Инструменты языка созданы не для "понтов", а для удобства разработчика и читателя. Не реально требовать воспринимать код для неподготовленного человека. ;)) Тоже имхо, конечно, но это как разбираться в вине.
Сорри, неверно выразил мысль. Имел в виду применение тернарных операторов не программистом, а новообращенным ардуинщиком, рисующим очередную реинкарнацию блинка. Сейчас нечасто здесь бываю, а раньше натыкался регулярно, вот это и расцениваю как туфли с помадой и тенями на пятикласснице. Аналогичное отношение к тому же бедному блинку, который решили написать манипуляцией битами, засунутыми в регистры, перемежая это врущими диджиталями.
Неподготовленных сейчас уже просто нет, осталось еще наше поколение, хотя возможно уже и у тебя была информатика в школе, у нас этого предмета не было, а у супруги 71 года уже был.
Ну а уроки от ЕП читаю с удовольствием, даже если сегодня и не требуется, буду знать что так можно и место где освежить память.
Если Ваша квалификация не позволила Вам понять, что шаблон функции...
Моей квалификации о шаблоне известно только две вещи:
1. Где-то в дебрях Си существует такая штука, называемая шаблоном.
2. Без этих шаблонов вполне успешно можно писать программы. Причем, любые программы.
Все.
Ну а за пример - спасибо. Хотя вот лично на меня принудительное преобразование отрицательного числа в соответствующее ему по бинарному представлению положительное производит ощущение хакерского трюка. Хотя по существу - все правильно: разница между операторами заключается именно в насильственном приведении типа, а эффект от насильственного приведения типа проявляется исключительно при преобразовании отрицательного числа.
Кстати, если в примере вместо 16-разрядных чисел использовать 32-разрядные, демонстрационный эффект сохраняется, т.е. можно сказать, что работа примера не зависит от разрядности используемых чисел, за что ему безусловный плюс.
Ну а за пример - спасибо. Хотя вот лично на меня принудительное преобразование отрицательного числа в соответствующее ему по бинарному представлению положительное производит ощущение хакерского трюка.
Еще раз благодарю за извинения. Теперь я могу спокойно общаться.
Тогда вопрос: в какой строке "принудительное" преобразование отрицательного числа?
То есть я не "ловлю" тебя. x и y - положительные и в строках 23 и 24 нет принудительного преобразования.
"Принудительное" собственно и возникает, ТОЛЬКО благодаря описанной Женей проблеме, в строке 34. Ради неё все и затевалось ;)).
Если ты не паясничаешь, а действительно считаешь, что я перегнул палку, то мне жаль. Приношу извинения.
Плохо то, что ты не понимаешь оскорбительности твоих заявлений и переводишь в шутку. Не хотел бы обидеть - спросил бы "почему у меня не компилируется? ", но ты несколько раз самоуверенно заявил, что я опубликовал неправильный код с ошибками. Ты всё еще настаиваешь на этой дефиниции? Прямо ответь, плз.!
Женя, дорогой. В принципе я удовлетворен и в дальнейшем "дожатии" Сергея не вижу смысла. Если ты сочтешь нужным, то предлагаю всё потереть к чертям, оставив только примеры. С темплейтом для красоты и последний, на "чистом С".
Дискуссия, имхо, не имеет ценности для потомков.
--------------------------------
Еще раз, если я кого задел - прошу прощения. Я вспыльчив, это приобретенное на работе качество.
Плохо то, что ты не понимаешь оскорбительности твоих заявлений и переводишь в шутку.
Влад, я в свою очередь рекомендую тебе перечитать собственные сообщения и подумать, а не содержатся ли в них оскорбительные заявления в адрес других участников форума. Ну и вспомнить пословицу про соринку и бревно.
Цитата:
... что я опубликовал неправильный код с ошибками. Ты всё еще настаиваешь на этой дефиниции? Прямо ответь, плз.!
Вообще-то я уже прямо ответил в сообщении №82. Если тебе будет приятно, процитирую:
andriano пишет:
Да, признаю, что я сделал неправильный вывод: IDE не равно КОМПИЛЯТОР.
Почему, очень даже. У меня есть блокнотик, куда я пишу как я не должен себя вести в 70 (через 25 лет, если доживу). Весь этот тред как раз и есть наглядный пример, каким не нужно становиться с возрастом Так-то это лютый пиздец
Влад, я в свою очередь рекомендую тебе перечитать собственные сообщения и подумать, а не содержатся ли в них оскорбительные заявления в адрес других участников форума. Ну и вспомнить пословицу про соринку и бревно.
Сорян, конечно, но поскольку не я первый начал, то "руки мои чисты"(с). Странно, что я от матюгов удержался.Пиво себе за это налью пожалуй...
Объяснить не могу. Но исходный код у меня не UNO не запустился как и у andriano.
Потом, (после заверений, что код точно рабочий) проверил в Протеусе - компилируется.
Методом тыка - у меня если в IDE написать на одной строчке, то компилируется
template <typename T> T mod (T a, int16_t b) {
Если как в исходнике, то не компилируется
Объяснить не могу. Но исходный код у меня не UNO не запустился как и у andriano.
Потом, (после заверений, что код точно рабочий) проверил в Протеусе - компилируется.
Методом тыка - у меня если в IDE написать на одной строчке, то компилируется
template <typename T> T mod (T a, int16_t b) {
Если как в исходнике, то не компилируется
Видео посмотри пожалуйста. Нельзя же до такой степени.........!!!
Объяснить не могу. Но исходный код у меня не UNO не запустился как и у andriano.
Если троллинг - тебе простительно, ты моих "больных мест" не знаешь, но все равно брехня - отвратительное занятие!
Если же и правда на старых версиях есть такой глюк, то даже не знаю что и сказать...
---------------------------
Женя, разве какая-то версия стандарта требовала размещения в одну строку? Это уже такие тонкости, которые я на память не воспроизведу.
Спасибо, дорогой!
Женя, разве какая-то версия стандарта требовала размещения в одну строку?
Нет, а вот трогательная забота разработчиков Ардуино о блондинках и беременных доярках (чтобы они могли функции в любом порядке определять) опять подговнила.
Я взял 1.8.5 как у Upper, получил такую же ошибку. А теперь посмотри как IDE перекорёжила твой файл перед подсовыванием компилятору.
Версия 1.8.5
Версия 1.8.13
Конкретно надо сравнить строки №№ 6-8 у версии 1.8.5 со строкой №5 у версии 1.8.13
andriano, я бы обновил IDE. ХЗ чего ещё от неё прилетит :-(
Сережа! Ну проверь себя. Ну пожалуйста!!! Все работает в штатной ИДЕ 1.8.13. Форум попросить помочь скомпилировать??? Ну блин! Я никогда не публикую код, не запустив. Ты просто оскорбляешь меня, прости за резкость.
Влад, не срача ради. На UNO/IDE 1.6.4. Палеозоефил я, и чо?
Хоть из твоего поста, хоть от Сергея.
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
Спасибо, Женя.
Не считаю, что это может служить оправданием. Отсутствие ошибок все-таки видно в коде из 20 строк.
Почему нельзя? Непросто, конечно, но специалисты имеются. Как-то больно быстро ты забываешь великих людей осчастлививших нас своим присутствием. Вот читай и наслаждайся, тут каждая буква - шедевр:
Почему нельзя? Непросто, конечно, но специалисты имеются. Как-то больно быстро ты забываешь великих людей осчастлививших нас своим присутствием. Вот читай и наслаждайся, тут каждая буква - шедевр:
;)) Я помню эту прелесть! Спасибо за позитив!
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
to All:
1. М.б., следует всегда указывать в листингах релиз IDE?
2. ИМХО, добавить 1 раз в файл BareMinimum.ino первой строкой /* Arguino 1.8.13 */ (или что там у кого) совсем несложно.
to All:
1. М.б., следует всегда указывать в листингах релиз IDE?
2. ИМХО, добавить 1 раз в файл BareMinimum.ino первой строкой /* Arguino 1.8.13 */ (или что там у кого) совсем несложно.
Я согласен с тобой, но не указание версии может извинить, разве что, совсем чайника.
Я согласен с тобой, но не указание версии может извинить, разве что, совсем чайника.
Влад, я вроде сразу сказал, "не срача ради". И даже проверять не собирался, но ты сам попросил. Как то так.
Я согласен с тобой, но не указание версии может извинить, разве что, совсем чайника.
Влад, я вроде сразу сказал, "не срача ради". И даже проверять не собирался, но ты сам попросил. Как то так.
Так к тебе вопросов вроде нет? Ты ж не называешь себя программистом ;)) и не споришь со мной или Женей. Ты прояснил ситуацию, что и правда на древних версиях - бардак, за что тебе большое спасибо!
И даже проверять не собирался
И, кстати, почему? Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Сережа! Ну проверь себя. Ну пожалуйста!!! Все работает в штатной ИДЕ 1.8.13. Форум попросить помочь скомпилировать??? Ну блин! Я никогда не публикую код, не запустив. Ты просто оскорбляешь меня, прости за резкость.
А в IDE версии 1.8.5 не компилируется.
Мне казалось, что в этой теме обсуждаются свойства языка, а не хакерские приемы. Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции. Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров, значит, код - неправильный, а потому не может быть использован для доказательства чего бы то ни было.
Сергей! Твое поведение - недопустимо!!!!!!!!!!!!!!!!!!!!!!!!!!!
Я так понимаю, на форуме царит абсолютная монархия, позволяющая одному участнику форума безоговорочно оценивать поведение любых других участников?
А в IDE версии 1.8.5 не компилируется.
Мне казалось, что в этой теме обсуждаются свойства языка, а не хакерские приемы. Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции. Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров, значит, код - неправильный, а потому не может быть использован для доказательства чего бы то ни было.
Все перечисленные требования соблюдены. Укажи, какое из ТОБОЙ перечисленных требований не соблюдается, или ты - трепло.
Какие хакерские приемы??????????????????????????? Та с ума сошел?
Прочти, что написал Женя. Это именно глюк старых иде. В последней версии нормально все собирается, что и подтвердили участники. Я виноват, что у тебя старая версия с неисправленной ошибкой??? НЕ КОМПИЛЯТОРА.
Я настаиваю на извинениях!!!! Просто очень стыдно должно быть тебе! Или ты просто ......, не признающий своих ошибок.
Сергей! Твое поведение - недопустимо!!!!!!!!!!!!!!!!!!!!!!!!!!!
Я так понимаю, на форуме царит абсолютная монархия, позволяющая одному участнику форума безоговорочно оценивать поведение любых других участников?
Извинения будут?
Меня Андриано обвинил в подлоге...
Влад, ну понимаю, вчера вечером принял на грудь, но с утра-то...
Пока на сегодняшний момент последняя версия: результат компиляции зависит от версии IDE.
На мой взгляд, этот факт однозначно свидетельствует о том, что такой код является неправильным, а потому не имеющим доказательной силы. Другими словами, код, демонстрирующий различие операторов, на Си пока не приведен. Повторяю: настоящий абзац - мое личное мнение, предыдущий абзац, на мой взгляд, отражает текущее положение дел, ну а самый первый абзац - всплеск эмоций, имеющий под собой такую же эмоциональную (но не доказательную) основу.
Да, первоначально пытался скомпилировать под Uno, но коль скоро было оговорено, что компилировать следует под Nano, именно так и было сделано. Но - чудес не бывает, результат от смены платформы не изменился.
Андриано, я предлагаю Вам внимательно прочитать сообщения в теме, опубликованные после Вашего неподобающего, на мой взгляд, выпада.
После этого ответить на вопросы:
1. Есть ли ошибка в моем коде. ?
2. Если есть, в какой строке?
3. В какой строке использован "хакерский прием"?
4. В чем причина того, что в Вашей версии ИДЕ не собирается скетч? (ошибка в моем коде, недопустимый прием в моем коде, особенность компилятора или что-то еще).
С уважением, Владислав.
На мой взгляд, этот факт однозначно свидетельствует о том, что такой код является неправильным
Прошу Вас прочесть сообщение №56. А потом принести извинения.
И, кстати, почему? Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Во первых, тебе я в общем то верю на слово, не замечал лукавства и манипуляций.
Во вторых, я не пользуюсь тернарными операторами и согласен с ранее озвученной версией, что не надо плодить сущности без надобности. Их присутствие в кодах, в основной массе есть заявка на: дывитеся як я умею. Это ИМХО.
Сам стараюсь писать так, чтобы человек-непрограммист, мог взять словарик и перевести мой алгоритм на обычный язык. Это тоже ИМХО.
Другими словами, код, демонстрирующий различие операторов, на Си пока не приведен.
Я пока, все-таки надеюсь на Вашу порядочность и напоминаю, что когда я был неправ в горячности, я извинился, хотя Вы в хамской форме и предположили противное.
Если Ваша квалификация не позволила Вам понять, что шаблон функции - не более, чем украшение кода, то я ниже приведу код без него, не использующий никаких конструкций из С++. это ТОТ ЖЕ САМЫЙ код. Из него убран шаблон и добавлен возврат из обертки печати, вот про него я действительно забыл, но он не вызывает ошибок нигде, кроме ESP32.
Во первых, тебе я в общем то верю на слово, не замечал лукавства и манипуляций.
Спасибо на добром слове.
не надо плодить сущности без надобности.
Сам стараюсь писать так, чтобы человек-непрограммист, мог взять словарик и перевести мой алгоритм на обычный язык.
Это, конечно не так. Инструменты языка созданы не для "понтов", а для удобства разработчика и читателя. Не реально требовать воспринимать код для неподготовленного человека. ;)) Тоже имхо, конечно, но это как разбираться в вине.
[/quote]
:)) Прочти выше реплику Жени. ...и обнови ИДЕ ;)).
==========================
ЗЫ: Если я потерял 4 часа сна в Шаббат и почти получил очередной сердечный приступ ПРОСТО от того, что у некоторых некрофилов не обновлено ИДЕ, то сегодня точно не мой день! Блин!!!!!!!!!
====================
Влад, K&R изданы 43 года назад, но мы до сих пор рекомендуем эту книгу для изучения. А ты меня попрекаешь не обновлявшейся 3 года IDE. Где логика?
Я поступаю по древнему программистскому правилу: "Если работает, ничего не трогай".
ЗЗЫ: Но нельзя же до такой степени не знать язык программирования, чтобы не понять, что там нет ошибки, а значит есть глюки ИДЕ????
А я не знаю именно до такой степени. Так что, оказывается, - можно.
Нет, я ведь никогда не скрывал, что Си/Си++ - не мои родные языки. Я пользуюсь их подмножеством, которое является полным - в том смысле, что позволяет записать любой алгоритм. И мне этого хватает. Естественно, я время от времени интересуюсь теми свойствами языка, которые ранее выпадали из сферы моего познания. И, в частности, я всегда с интересом и удовольствием читаю статьи ЕП, из которых нередко черпаю для себя новое. Но, тем не менее, для меня знание языков Си/Си++ - не самоцель. Поэтому - мне хватает полного подмножества, а остальное - факультатив.
Теперь, на какую аудиторию ориентирована статья Евгения?
Мне кажется, всех посетителей форума можно грубо разделить на 4 категории:
1. Новички, которые еще не вполне освоили даже минимальное полное подмножество Си/Си++.
2. Люди, занимающиеся программированием от случая к случаю и не видящие причин выходить за минимальное полное подмножество указанных языков.
3. Люди, программирующие на нескольких разных языках, среди которых Си/Си++ не являются доминирующими.
4. Люди в совершенстве знающие Си/Си++.
Так вот, для 1-й категории статья бесполезна, для 4-й - не интересна, 2-я тоже вряд ли проявит интерес к написанному. Остается одна 3-я категория, к которой я себя и отношу. Другими словами, IMHO статья написана для таких людей как я.
То, что я написал, что я сильно разочарован статьей - это чистая правда. Я, прочитав начало, понял, что сам я не способен придумать пример, иллюстрирующий разницу приведенных в начале конструкций. Поэтому я с интересом стал читать, надеясь такой пример найти. Увы, такого примера не нашлось, а для тех примеров, что были приведены, у меня оказалось недостаточно знаний, чтобы переделать их именно под шаблон, который приведен в начале статьи. Т.е. я ожидал от этой статьи определенного знания, а это знание не получил, чем и был разочарован. И мое разочарование, пока я не увижу (а сам я их составить не способен, по крайней мере, - сходу) примеров, иллюстрирующих разницу операторов на примере как Си, так и Си++, не пройдет.
В общем, мир таков, каков он есть, а не таков, каким бы мы хотели его видеть. И знания наши такие, какие они есть, а не такие, какими они должны были бы быть, исходя из реплики "нельзя же до такой степени не знать язык". Я вот не знаю именно до такой степени. Но мое "незнание" лежит за пределами минимального полного набор свойств языка, а потому оно не мешает мне писать, возможно, не оптимальные, но - любые программы. И еще я думаю, что статья нацелена на аудиторию, в которой знание языка находится примерно на моем уровне (хотя это, признаю, достаточно сильное допущение). Поэтому предполагать иное (т.е. то, что читатели обязаны знать язык в совершенстве) - не более, чем повод покрасоваться.
Ведь интересные же примеры? У Жени сразу результаты приведены, а мне хотелось, чтобы читатель именно сам запустил и увидел неожиданный результат.
Влад, вот не поверишь! Я действительно получил ну совершенно неожиданный результат! Получить от тебя код, который не будет компилироваться, я себе раньше и представить такого не мог.
Мне казалось, что в этой теме обсуждаются свойства языка
Совершенно верно
Если различие между условным и тернарным оператором - свойство языка, то правильный код, демонстрирующий это различие, должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции.
Он именно так и работает.
Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров,
Не наблюдается.
Стоп! В данной теме обсуждаются свойства языка, а не свойства IDE, которая является глючной прокладкой между программистом и компилятором языка. Прокладкой, которая преиначивает написанное программистом так, что нарушает синтаксис языка.
Позвольте ещё раз напомнить Вашу цитату:
.... должен одинаково работать при любом компиляторе, любой версии последнего и любых ключах компиляции ... Если же наблюдается различие в поведении в зависимости от какого-либо из вышеприведенных параметров
Не наблюдается, т.к. версии IDE среди вышеприведённых параметров нет. А различие наблюдается именно в зависимости от неё.
Сергей, но Вы же видите (см. пост #56) что из-за ошибки в IDE код оказался испорченным до синтаксической неправильности. Видите. Так зачем упираться-то и говорить, что программист виноват или там язык?
Я настаиваю на извинениях!!!! Просто очень стыдно должно быть тебе! Или ты просто ......, не признающий своих ошибок.
А мне вот, представь, - не стыдно. Я столкнулся с непонятным мне поведением приведенного тобой кода (заметь, я никого ни в чем не обвинял), задал по этому поводу вопрос на форуме. Как я должен был поступить?
Ну а с извинениями, так без проблем:
Владислав, я приношу Вам свои искренние извинения.
Сергей! Твое поведение - недопустимо!!!!!!!!!!!!!!!!!!!!!!!!!!!
Я так понимаю, на форуме царит абсолютная монархия, позволяющая одному участнику форума безоговорочно оценивать поведение любых других участников?
Извинения будут?
А вот по этому поводу как раз я хотел бы поинтересоваться: извинения будут?
4. В чем причина того, что в Вашей версии ИДЕ не собирается скетч? (ошибка в моем коде, недопустимый прием в моем коде, особенность компилятора или что-то еще).
Да, признаю, что я сделал неправильный вывод: IDE не равно КОМПИЛЯТОР.
Извинений за испорченный Шаббат можно не ждать, жаль, что мои ожидания не оправдались.
Поэтому предполагать, что читатели обязаны знать язык в совершенстве - не более, чем повод покрасоваться.
Знание, что конструкция вида:
не содержит ошибок, и сделать вывод о неадекватном преобразовании в ИДЕ, это "знание в совершенстве"? Прошу меня простить, но шаблоны функций это знание С++ на уровне школьника, а никак не "в совершенстве". Равно как и знание тернарного оператора, который присутствует в ЛЮБОМ языке программирования, кроме уж совсем диких. И в ЛЮБОМ языке с неявными преобразованиями типов будет наблюдаться схожий эффект. Просто потому, что у оператора есть тип результата.
Неужели это не интересно, как важный для программирования вопрос? Мы же на программистском форуме, а не на форуме электриков! Это первоосновы - подводные камни неявного преобразования типов. Просто одно из проявлений.
Статья Жени важна именно для чуть продвинутых новичков. Стараться избегать двусмысленностей при написании кода и научиться видеть те места, которые компилятору покажутся двусмысленными. Ровно как в соседней ветке про счетчик цикла на границе INT_MAX.
А вот по этому поводу как раз я хотел бы поинтересоваться: извинения будут?
Вы, Андриано, defacto обвинили меня в подлоге и подтасовке. Думаю, что любое дальнейшее действие должно предваряться либо извинениями, либо объяснениями с подтверждением обвинений. Вам (пока) никто оскорблений не наносил.
To Adriano. Наверное вас тролят
Владислав, я приношу Вам свои искренние извинения.
Спасибо! Это правда очень важно для меня.
Теперь я могу снова и без понтов написать некий оффтоп.
=======================================
Я никогда не вру, это некий пунктик в историю которого нет смысла вдаваться. Еще в матшколе шутили: "у Л..на(моя фамилия) честность, доходящая до глупости или глупость, доходящая до честности?". И, как следствие, чрезвычайно болезненно отношусь к обвинениям подобного толка.
Я очень прошу тебя, если ты не разберешься в чем-то, написанном мной, задай вопрос в менее двусмысленной форме.
И такое тоже нужно пояснять?
Разница в неявном преобразование между знаковым и беззнаковым типами в данном случае.
Человек, назвавший себя программистом должен как-то сам подобные преобразования производить.
Добавлю, всё остально - украшалки, можно и модуль не брать. Не так красиво печатать будет. Ну это же понятно?
Это, конечно не так. Инструменты языка созданы не для "понтов", а для удобства разработчика и читателя. Не реально требовать воспринимать код для неподготовленного человека. ;)) Тоже имхо, конечно, но это как разбираться в вине.
Сорри, неверно выразил мысль. Имел в виду применение тернарных операторов не программистом, а новообращенным ардуинщиком, рисующим очередную реинкарнацию блинка. Сейчас нечасто здесь бываю, а раньше натыкался регулярно, вот это и расцениваю как туфли с помадой и тенями на пятикласснице. Аналогичное отношение к тому же бедному блинку, который решили написать манипуляцией битами, засунутыми в регистры, перемежая это врущими диджиталями.
Неподготовленных сейчас уже просто нет, осталось еще наше поколение, хотя возможно уже и у тебя была информатика в школе, у нас этого предмета не было, а у супруги 71 года уже был.
Ну а уроки от ЕП читаю с удовольствием, даже если сегодня и не требуется, буду знать что так можно и место где освежить память.
Если Ваша квалификация не позволила Вам понять, что шаблон функции...
Моей квалификации о шаблоне известно только две вещи:
1. Где-то в дебрях Си существует такая штука, называемая шаблоном.
2. Без этих шаблонов вполне успешно можно писать программы. Причем, любые программы.
Все.
Ну а за пример - спасибо. Хотя вот лично на меня принудительное преобразование отрицательного числа в соответствующее ему по бинарному представлению положительное производит ощущение хакерского трюка. Хотя по существу - все правильно: разница между операторами заключается именно в насильственном приведении типа, а эффект от насильственного приведения типа проявляется исключительно при преобразовании отрицательного числа.
Кстати, если в примере вместо 16-разрядных чисел использовать 32-разрядные, демонстрационный эффект сохраняется, т.е. можно сказать, что работа примера не зависит от разрядности используемых чисел, за что ему безусловный плюс.
Ну а за пример - спасибо. Хотя вот лично на меня принудительное преобразование отрицательного числа в соответствующее ему по бинарному представлению положительное производит ощущение хакерского трюка.
Еще раз благодарю за извинения. Теперь я могу спокойно общаться.
Тогда вопрос: в какой строке "принудительное" преобразование отрицательного числа?
То есть я не "ловлю" тебя. x и y - положительные и в строках 23 и 24 нет принудительного преобразования.
"Принудительное" собственно и возникает, ТОЛЬКО благодаря описанной Женей проблеме, в строке 34. Ради неё все и затевалось ;)).
НУМЕРАЦИЯ СТРОК по сообщению №88
А вот по этому поводу как раз я хотел бы поинтересоваться: извинения будут?
Вы, Андриано, defacto обвинили меня в подлоге и подтасовке.
Разве?
Позволю себе процитировать себя же:
Наслаждаемся.
Оно, вроде, красиво, но:
Вам (пока) никто оскорблений не наносил.
Да?
А как же это?
Здесь меня явно (подчеркиваю - ЯВНО!) обвиняют в невнимательности и в совершении предосудительных действий (в виде потери строчки).
Читаем дальше:
Обвинения в подлоге - это серьезное обвинение.
Теперь, когда выяснилось, что код не компилируется не только у меня, где опровержение насчет подлога и сопутствующие извинения?
Я оскорблен!
Кушать не могу!
Если я не получу извинений, умру от голода!
Если ты не паясничаешь, а действительно считаешь, что я перегнул палку, то мне жаль. Приношу извинения.
Плохо то, что ты не понимаешь оскорбительности твоих заявлений и переводишь в шутку. Не хотел бы обидеть - спросил бы "почему у меня не компилируется? ", но ты несколько раз самоуверенно заявил, что я опубликовал неправильный код с ошибками. Ты всё еще настаиваешь на этой дефиниции? Прямо ответь, плз.!
Дуэль, однозначно. Масштаб проблемы и градус пикировки не оставляют вариантов.
А ведь верно! На мясорубках! ;)
======================
Женя, дорогой. В принципе я удовлетворен и в дальнейшем "дожатии" Сергея не вижу смысла. Если ты сочтешь нужным, то предлагаю всё потереть к чертям, оставив только примеры. С темплейтом для красоты и последний, на "чистом С".
Дискуссия, имхо, не имеет ценности для потомков.
--------------------------------
Еще раз, если я кого задел - прошу прощения. Я вспыльчив, это приобретенное на работе качество.
Плохо то, что ты не понимаешь оскорбительности твоих заявлений и переводишь в шутку.
Влад, я в свою очередь рекомендую тебе перечитать собственные сообщения и подумать, а не содержатся ли в них оскорбительные заявления в адрес других участников форума. Ну и вспомнить пословицу про соринку и бревно.
... что я опубликовал неправильный код с ошибками. Ты всё еще настаиваешь на этой дефиниции? Прямо ответь, плз.!
Вообще-то я уже прямо ответил в сообщении №82. Если тебе будет приятно, процитирую:
Да, признаю, что я сделал неправильный вывод: IDE не равно КОМПИЛЯТОР.
Дискуссия, имхо, не имеет ценности для потомков.
Почему, очень даже. У меня есть блокнотик, куда я пишу как я не должен себя вести в 70 (через 25 лет, если доживу). Весь этот тред как раз и есть наглядный пример, каким не нужно становиться с возрастом Так-то это лютый пиздец
Главное в этом деле - не забыть, куда положил блокнот.
Влад, я в свою очередь рекомендую тебе перечитать собственные сообщения и подумать, а не содержатся ли в них оскорбительные заявления в адрес других участников форума. Ну и вспомнить пословицу про соринку и бревно.
Сорян, конечно, но поскольку не я первый начал, то "руки мои чисты"(с). Странно, что я от матюгов удержался.Пиво себе за это налью пожалуй...
Сорян, конечно, но поскольку не я первый начал, то "руки мои чисты"(с).
Разве?
Тогда можно указать номер поста, с которого, по твоему мнению, все и началось?