Информационные технологии: вчера, сегодня и завтра. — Разное

1 2 3

Написано ground — значит земля :sarcastic:

Обычно писали Signal Ground(SG). А контроллер до сих пор помню 580ИК51.
Связисты чаще использовали «токовую петлю» — всего два провода «+» и «-«. Ну или для дуплекса две пары проводов.

Signal Ground(SG). контроллер. «токовую петлю». дуплекса.

Алексей, кончай матерно ругаться, я тоже умею :sarcastic:
«Рефакторинг полиморфных методов дерева классов обработки неориентированных графов». Что в переводе означает «что за фигню я вчера написал, надо переделать» :crazy:

Алексей, кончай матерно ругаться, я тоже умею :sarcastic:

Ну почему же? Матерно я ругался когда по столбам с когтями лазил зимой по токовой петле на кусках военно-полевого кабеля. В своё время их связали узлами, а торчащие кончики зачистили и соединили. В местах узлов изоляция пережималась и появлялось сопротивление, для тока телетайпа (там 20-40 mA) заметное. Он перетекал по узлу и телетайпная связь пропадала. А телефонная связь продолжала работать. У неё ток заметно меньше и информация передаётся изменением напряжения. Вот и лазили по линии в два с половиной километра, перевязывали узлы. Я уже связывал каждый провод только с одним.
Так в 1989-90 гг. передавали данные измерений, выдаваемых аэрологическим вычислительным комплексом АВК-1. Тоже своего рода IT-технологии :crazy:

Я думаю, каждый айтишник может вспомнить нечто подобное :crazy:
Когда мы однажды ставили сетку в одном из филиалов, еще во времена коаксиала, перед приездом дали задание местным монтёрам пробросить кабели по помещениям. А они проявили инициативу. По этажу шел основной кабель, а по комнатам сделали ответвления. И тщательно зачистили и спаяли. Экран к экрану, центральные жилы к центральным жилам. :sarcastic: Всё тщательно заизолировали и уложили в короба. Очень удивились, когда мы припёрлись с кучей Т-коннекторов и терминаторов.

Помню однажды у меня мышь переставала работать строго по расписанию каждый день. В 10 часов выключалась и в 11 включалась. Кстати, мыши тогда стоили 20 долларов — в корзину не выкинешь. Однажды меня осенило! Идеи есть ?

Слушай, ABC_1982, уровень айтишников двухтысячных по сравнению с уровнем девяностых просто нулевой. Знаешь почему? Им знать и ументь нужно меньше. И думать кстати тоже. Про восьмидесятые даже говориь не будем — это были боги.

Смотря, что подразумевать под словом «айтишник».
В профессиональной разработке программного обеспечения это не так.

Мнение такого убелённого сединами программера, как вы, тут особенно ценно.

В профессиональной разработке программного обеспечения

А можно услышать вашу версию определения данного понятия?

Помню однажды у меня мышь переставала работать строго по расписанию каждый день. В 10 часов выключалась и в 11 включалась. Кстати, мыши тогда стоили 20 долларов — в корзину не выкинешь. Однажды меня осенило! Идеи есть ?

С ходу нет. Но я бы сначала часы перевёл на компьютере, что бы узнать откуда воздействие. Мышь какая, на RS-232?

Да, обычная мышь для COM порта.

Да, обычная мышь для COM порта.

Прямо точно с 10:00 до 11:00?
А как мышка питается? Никогда не интересовался почему-то устройством мыши :umnik2:
Может просто в офисе в это время чайники все включали и напряжение подсаживалось, а какое-то сигнальное напряжение на RS-232 не стабилизировано было?

Нет, ну не прямо в 10:00 и 11:00. Но именно в одно и то же время выключалась и включалась.
В-общем, не буду принуждать гадать долго. Однажды в в ту минуту, когда мышь в очередной раз утром перестала работать, я в очередной раз оторвал глаза от экрана и опустил взгляд на то место на столе, где она лежала… Но в этот раз — блииин, эврика! Я увидел то, на что раньше не обращал внимания. На угол стола вместе с мышью падали прямые лучи солнца из окна. Я вскочил со стула и задёрнул штору. Пошевелил мышь — работает! Ах, что б ты была здорова.

Нет, ну не прямо в 10:00 и 11:00. Но именно в одно и то же время выключалась и включалась.
В-общем, не буду принуждать гадать долго. Однажды в в ту минуту, когда мышь в очередной раз утром перестала работать, я в очередной раз оторвал глаза от экрана и опустил взгляд на то место на столе, где она лежала… Но в этот раз — блииин, эврика! Я увидел то, на что раньше не обращал внимания. На угол стола вместе с мышью падали прямые лучи солнца из окна. Я вскочил со стула и задёрнул штору. Пошевелил мышь — работает! Ах, что б ты была здорова.

А как Солнце влияет? Нагревалась мышь что-ли?

А как Солнце влияет? Нагревалась мышь что-ли?

Засветка оптодатчиков даже сквозь корпус. Правда, небось, из светлой пластмассы.

Засветка оптодатчиков даже сквозь корпус. Правда, небось, из светлой пластмассы.

Первые оптические мыши вообще могли работать только РЅР° специальных ковриках. Разрешение сенсоров было очень РЅРёР·РєРѕРµ, Р° РєСѓСЂРѕСЃРѕСЂ РїРѕСЂРѕР№ сам начинал движение если кто-то включал настольную лампу. Р’ те времена (1993Рі) обычные «С€Р°СЂРёРєРѕРІС‹Рµ» мыши были РІ разы лучшим выбором. До СЃРёС… РїРѕСЂ валяется РіРґРµ-то гениус СЃ шариком — вполне рабочая :)

Давайте разложим. Преобразование типа float в int отбрасывает дробную часть. В одну строчку напишите, как нам сделать математическое округление ?
РЇ РѕС‚ РґРѕ СЃРёС… РїРѕСЂ изучаю нюансы — Р° РѕРЅ — знает…

Олег, ты повернут, по моему мнению, не в ту сторону. А ты думаешь, что я повернут не туда. Мы ни о чем не договоримся. Да и времени нет, на разговоры с тобой.

Давайте разложим. Преобразование типа float РІ int отбрасывает РґСЂРѕР±РЅСѓСЋ часть.Р’ РѕРґРЅСѓ строчку напишите, как нам сделать математическое округление ?РЇ РѕС‚ РґРѕ СЃРёС… РїРѕСЂ изучаю нюансы — Р° РѕРЅ — знает…

integer:=round(float) :sarcastic:

РџСЂСЏРјРѕР№, интегральный, дифференциальный — это понятн, РіРё Рё обдолбанские автопилоты.

Пропорциональный,интегральный, дифференциальный…

Давайте разложим. Преобразование типа float в int отбрасывает дробную часть. В одну строчку напишите, как нам сделать математическое округление ?

Вот так:

int a;
float b;
a = int(b+0.5);

?

А вообще, откуда такая ненависть к приборам Грицевского? По-моему, ничего более реалистичного для сима никто не сделал (рассматриваю только бесплатные модели отечественных самолетов, других я не пробовал).

Володь, в случае, если округление нужно делать не до целых, а до нужных долей, делается так:
например до десятых:
float float_result = floor(float_value * 10.0f + 0.5f) / 10.0f;
до сотых:
float float_result = floor(float_value * 100.0f + 0.5f) / 100.0f;

Если к целому числу по правилам математики, то да, как у тебя.

Феликс, в C/C++ нет функции округления.
Но сути это не меняет :)
Ranger наверняка покажет другой способ и скажет, что именно по этому у вас автопилоты и глючат, что вы дятлы не умеете эффективно округлять.

Ну конечно если не утрировать, то весь разговор сводится к тому, что вы дятлы не знаете возможностей сима и что все там есть.

Я знаю, что нет там всего и не будет.

Хотя, изучать сим конечно нужно, чем кроме портирования творений Степана Грицевского в FSX и создания с Кириллом Коноваловым ВК на базе приборных комплексов Степана, я по мере возможности периодически и занимаюсь.

Феликс, в C/C++ нет функции округления.Но сути это не меняет :)

Я знаю, что C++ это язык для садо-мазохистов, который готовы всякий раз когда им понадобится что-то округлить с радостю готовы писать нечто типа a = int(b+0.5), да при это ещё учитывать знак b надобно. Но им в голову не придёт это дело упрстить один раз и навсегда.
По большому счёту никто никаких функций не имеет ибо это по сути просто вызываемые процедуры. Была бы сама процедура. Ну типа.
procedure _ROUND;
asm
{ -> FST(0) Extended argument }
{ <- EDX:EAX Result }
SUB ESP,8
FISTP qword ptr [ESP]
FWAIT
POP EAX
POP EDX
end;

Ну как бы никто не мешает сделать свою функцию и использовать везде. Причем ее не обязательно писать на асме. Компиляторы C/C++ обычно очень умны и сами могут создавать хороший код. Нужно только умело ими управлять. Можно вообще сделать свою библиотеку или библиотеки. Можно привлечь сторонние.

Феликс, РЎ/РЎ++ — это язык РЅР° котором пишут профи. Пишут операционные системы, оффисы, 3DsMax-С‹, Photoshop-С‹, симуляторы Рё просто РёРіСЂС‹. Собственно — это общеизвестный факт. (Да собсвенно РІСЃРµ API РЅР° C/C++). Этот СЃРїРѕСЂ тебе РЅРµ выиграть. РћРЅ давно СѓР¶Рµ разрешен. Рђ аргумент Сѓ тех, кто РЅРµ может ужиться РІ C/C++ всегда РѕРґРёРЅ — язык мазахистов. РќРѕ для того что Р±С‹, что-то серьезно говорить Рѕ нем, РЅСѓР¶РЅРѕ хотя Р±С‹ РіРѕРґРѕРє пожить РІ нем. Рђ так, РІСЃРµ аргументы обычно смешны.

Ты похоже просто не видел, как пишут профи на C/C++. Это очень красиво и очень мощно. Хотя, профи красиво пишут на любом языке, но здесь они могут развернуться во всю. Этот язык просто по природе своей не способен стеснять воображение. Собственно на нем возможно все. Нужно только время. Хотя, в тех случаях, когда не нужна такая мощь, а нужно выиграть время, лучше взять узкозаточенный, например PHP, ASP/ASP.NET, PL/SQL, внутренний язык 1С, ну и т.д. Тут уже зависит от контекста.

Рђ еще, Феликс, СЏ рекомендую тебе окунуться, РєРѕРіРґР°-РЅРёР±СѓРґСЊ РІ РјРёСЂ Unix/Linux-Р°, хотя Р±С‹ просто для расширения РєСЂСѓРіРѕР·РѕСЂР°. РћСЃРЅРѕРІР° всего там — C/C++. РњРѕСЂРµ красивых Рё свободных проектов. РўРѕРєР° присоединяйся (если конечно сможешь). Удивительный РјРёСЂ.

Да СЏ, собственно РіРѕРІРѕСЂСЏ, РІ РєСѓСЂСЃРµ, Сергей. Поэтому Рё спорить РЅРµ Р±СѓРґСѓ. РўС‹, разумеется прав. Р’СЃРµ сишники РіРѕРІРѕСЂСЏС‚ чистейшую правду Рё именно твоими словами «СЏР·С‹Рє РЅР° котором пишут профи. Пишут операционные системы, оффисы, 3DsMax-С‹, Photoshop-С‹, симуляторы Рё просто РёРіСЂС‹».

Ты похоже просто не видел, как пишут профи на C/C++.

РҐРј. РќРµ поверишь — РЅРµ только видел, РЅРѕ ещё Рё удавалось дождаться окнчания писания Рё попользоваться :sarcastic:

А еще, Феликс, я рекомендую тебе окунуться, когда-нибудь в мир Unix/Linux-а, хотя бы просто для расширения кругозора

Сергей, я его начал расширять лет 20 тому назад. Спасибо :)

Ребята, извините, что перенес, но для той темы это оффтопик всё-таки. Прошу прощения, но движок форума не позволяет копировать сообщения, поэтому здесь осталось кое-что про автопилоты.

У меня есть несколько слов.

Я знаю, что C++ это язык для садо-мазохистов

Феликс, РЎ/РЎ++ — это язык РЅР° котором пишут профи.

Сначала Рѕ языках. РЎРїРѕСЂ Рѕ том, какой язык «Р»СѓС‡С€Рµ», ведется СЃ незапамятных времен. Только языки меняются. Сначала это были Паскаль Рё РЎРё, потом Объектный Паскаль Рё РЎРё++. Были СЃРїРѕСЂС‹ Рѕ РЎРё Рё РЎРё++. Р�РЅРѕРіРґР° фигурировали РІСЃСЏРєРёРµ Лиспы, Бэйсики Рё прочие. Р� РґРѕ СЃРёС… РїРѕСЂ никто РЅРµ пришел Рє РѕРґРЅРѕРјСѓ-единственному выводу. РћРЅРѕ Рё понятно — ответа РЅР° этот РІРѕРїСЂРѕСЃ РЅРµ существует. Какой язык лучше — английский или французский? Немецкий или СЂСѓСЃСЃРєРёР№? Нет ответа. Каждый язык РїРѕ-своему С…РѕСЂРѕС€. Каждый лучше пригоден для определенной задачи. Поэтому профессиональный программист выбирает язык РїРѕРґ задачу. Р� совершенно неважно, РЅР° чем написана программа, главное, чтобы РѕРЅР° была эффективной Рё безглючной.

Поэтому, Феликс, говорить Рѕ том, что некий язык «Рђ» плохой — некорректно. Это просто ты РЅРµ умеешь РЅР° нем писать, только Рё всего.

Поэтому, Сергей, настоящие профи не пишут только на Си, они пишут на том, на чем удобнее и эффективнее. Хоть на Бэйсике.

Теперь по округлению. Наворотили вы конечно знатно.

Проблема округления РЅР° интеловской платформе упирается РІ команды процессора. Рљ сожалению, Сѓ Р�нтела РґРѕ недавних РїРѕСЂ РЅРµ было встроенных команд округления. Поэтому приходилось извращаться. Причем извращались РІСЃРµ — как сишники, так Рё паскалевцы.

Феликс, в C/C++ нет функции округления.

В языке Си нет вообще ни одной функции, не правда ли? Есть только средство для их организации.
Надо четко отличать язык программирования от библиотек и встроенных функций. Ну и что, что нет функции округления? Это не мешает языку прекрасно себя чувствовать с теми тысячами функций, которые уже написаны. Если же требуемой функции нет, то ничто не мешает написать ее самому. � необязательно в одну строчку, можно и в несколько.

integer:=round(float)

Феликс, в реализации этой замечательной функции есть один огромный подводный камень. Дело в том, что у процессора �нтел есть 4 (четыре) метода округления. � перед командой FIST, в которую все упирается, надо быть абсолютно уверенным в том, какой метод сейчас установлен в управляющем слове процессора. К примеру, реализация функции round, которую ты привел, не учитывает установленный метод округления. Можно очень сильно напороться.

float float_result = floor(float_value * 10.0f + 0.5f) / 10.0f;

А почему бы не написать универсальную функцию? Причем не фыркая на Паскаль, а используя то, что на нем написано? �сключительно для расширения кругозора :) Вот например:

function RoundTo(const AValue: Double; const ADigit: Integer): Double;
var
LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := Round(AValue / LFactor) * LFactor;
end;

Опять Р¶Рµ надо еще помнить, каким методом округления пользоваться — «Р±Р°РЅРєРѕРІСЃРєРёРј» или может быть, каким-то РґСЂСѓРіРёРј.

function RoundTo(const AValue: Double; const ADigit: Integer): Double;
var
LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := Trunc((AValue / LFactor) + 0.5) * LFactor;
end;

Рђ вообще РіРѕРІРѕСЂСЏ, если отвлечься РѕС‚ суеты сует, СЏ всеми силами стараюсь избегать операций СЃ плавающей точкой. Рљ сожалению, РЅРµ всегда это РІРѕР·РјРѕР¶РЅРѕ, РЅРѕ тем РЅРµ менее. Рљ примеру, возьмем первый попавшийся пример — представление географической координаты.

Пусть Сѓ нас будет координата 25°45’35». Совершенно РѕС‚ балды. Если записывать её числом СЃ плавающей точкой, то получится 25,75972. РќРѕ ведь РјРѕР¶РЅРѕ записать Рё РїРѕ-РґСЂСѓРіРѕРјСѓ — целым числом 254535. Р� если прикинуть, сколько процессорного времени будет затрачено например РЅР° операцию разбивки РЅР° градусы, минуты Рё секунды, то получится, что целочисленные операции потребуют РІ 2,5 раза меньше времени, чем операции СЃ плавающей точкой. Есть над чем задуматься :)

1 2 3