[14:29:11] <Kemet> кто на жабе пишет?
[14:41:18] <Kemet> есть примерно такой код
void proc( int i ) {
....
}
....
int x = 1;

proc( x++ );

какое значение i будет внутри proc и какое значение x будет после отработки процедуры
[14:44:08] <Kemet> ну то есть вот такая хрень бессмысленна: i = i++; есть ли смысл в коде выше
[14:51:58] <_valexey_> Есть
[14:52:18] <_valexey_> Экономим строчки
[14:54:30] <Kemet> _valexey_: дык какие значения то будут?
[15:00:32] <Kemet> _valexey_: внутрях то ничего не экономится, а от одного инкремента руки не отсохнут, а вот за такой кот надо по рукам
[15:05:28] <Kemet> блин, сижу и думаю, чего ж у меня кот не правильно работает, а я ж его вчера закомментировал. во что значит ночью херней маяться
[15:13:43] <valexey> void proc( int i ) {
....
}
....
int x = 1;

proc( x++ );
[15:13:50] <valexey> будет 1
[15:14:16] <valexey> но переменная x же после строчки proc(x++) будет еще использоваться
[16:05:18] <Kemet> valexey: дык х то не изменится же, изменится i
[16:33:49] <TRUE> i - это формальный параметр. Фактический параметр - x.
[16:35:10] <TRUE> Kemet> ну то есть вот такая хрень бессмысленна: i = i++; есть ли смысл в коде выше
что в этой фразе имелось в виду?
[16:39:18] <TRUE> Kemet> valexey: дык х то не изменится же, изменится i
i не изменится. В i присвоится изначальное значчение x, и потом x увеличится.
[16:47:48] <valexey> Kemet: после строчки proc(x++) значение x будет равно 2
[16:47:58] <valexey> вне зависимости от того, что там proc делает
[16:48:44] <Kemet> TRUE, то и имелось что после i = i++ значение i не изменится
[16:51:00] <Kemet> valexey, Я привел код жабисту и он сказал что кот с процедурой не изменит x
[16:51:13] <TRUE> а там в коде где-то есть i = i++; ?
[16:51:26] <valexey> Kemet: ты или что-то недоговариваешь, либо что-то не так спрашиваешь :-)
[16:51:45] <TRUE> в жабе все параметры передаются по значению
[16:52:00] <Kemet> TRUE, Нет
[16:52:21] <Kemet> TRUE, на предыдущий пост
[16:52:23] <TRUE> указатели и простые типы
[16:52:29] <valexey> void proc( int i ) {System.out.println(i);}
void main() { int x = 1; proc(x++); System.out.println(x);}
[16:52:37] <valexey> вот это напечатает следующее:
[16:52:38] <valexey> 1
[16:52:40] <valexey> 2
[16:54:05] <TRUE> кстати, да i = i++ не меняет значение i, хотя вроде как должно...
[16:55:05] <valexey> я не помню как оно в жабе
[16:55:14] <valexey> в этом месте оно от плюсов сильно отличается
[16:55:17] <TRUE> я проверил - не меняет.
[16:55:39] <valexey> я к тому, что я не помню насколько оно там что должно или не должно
[16:56:00] <TRUE> ++ это вообще геморройная вещь
[16:56:07] <valexey> та не, норм
[16:56:10] <Kemet> valexey, А в каком порядке оно напечатало?
[16:56:18] <valexey> 1 2
[16:56:33] <valexey> с фига ли оно будет печатать иначе? :-)
[16:58:09] <Kemet> valexey, Дык ты проверял? ибо жабист зренов сказал что 2 будет в процедуре, а х не из енится
[16:59:08] <valexey> 5 минут, проверю
[17:01:03] <Kemet> TRUE, i = i++ и не должно ничего менчть ибо инкрементируется локалноая копия после присваивания поэтому такая операция бессмысленна
[17:01:32] <TRUE>
   private static void p(int i) {
       System.out.println(i);
   }

   public static void main(String[] args) {
       int x = 0;
       System.out.println(x);
       p(x++);
       System.out.println(x);

       System.out.println("------------");
       int i = 0;
       System.out.println(i);
       i = i++;
       System.out.println(i);
   }

[17:01:38] <TRUE> 0
0
1
------------
0
0

[17:02:17] <valexey> Kemet: проверил
[17:02:20] <valexey> жабиста на мыло.
[17:02:44] <valexey> //*******************************************************************
// NOTE: please read the 'More Info' tab to the right for shortcuts.
//*******************************************************************

// one class needs to have a main() method
public class HelloWorld
{
 // arguments are passed using the text field below this editor
 static void proc(int i) {System.out.print(i);}
 public static void main(String[] args)
 {
   int x = 1;
   proc(x++);
   System.out.print(x);
 }
}

[17:02:49] <valexey> 12
[17:03:00] <valexey> проверить можно тут: https://www.compilejava.net/
[17:09:14] <Kemet> valexey,  тогда вообще хрень какачто ибо даже по логике алгоритма там x не должен увеличиваться (((
[17:09:43] <valexey> ну, я хз что там по логике алгоритма, но по логике языка всё четко
[17:10:19] <valexey> естественно в proc нет никаких иксов, в proc у нас i а не x :-)
[17:12:51] <Kemet> valexey, Дык это аонятно и именно i там и нужно увеличивать, вернее использовать x + 1
[17:13:14] <valexey> ну, может у программера руки кривые :-)
[17:13:25] <valexey> public class HelloWorld
{
 // arguments are passed using the text field below this editor
 static void proc(int i) {System.out.print(i);}
 public static void main(String[] args)
 {
   int x = 1;
   proc(++x);
   System.out.print(x);
 }
}
[17:13:30] <valexey> тогда вот так надо было писать :-)
[17:26:23] <TRUE> нет, он пишет, что i нужно увеличить, а x должен остаться неизменным.
[17:26:47] <Kemet> valexey: ну попробую на оберон перевести
[17:27:02] <TRUE> а что это за программа?
[17:29:13] <Kemet> TRUE: работа с матрицами
[17:29:49] <TRUE> и она работала правильно? Или она недоделанная, и ты её на обероне решил сделать?
[17:30:15] <valexey> тесты то оно проходит?
[17:30:15] <Kemet> TRUE: она работает
[17:30:19] <valexey> жабна прога эта
[17:30:46] <valexey> а код открытый? можешь оригинальное место показать?
[17:30:58] <valexey> может ты просто не совсем верно упростил задачу
[17:31:19] <TRUE> не, меня больше интересует не работает ли она, а работает ли она _правильно_
[17:32:10] <Kemet> valexey: с учетом что это часть финсофта и она выдает правильные результаты в матрице, то видимо да, по корайней мере на тех наборах данных. Но не исключено, что как и в А2, косяки здексь корректируются гдето выше
[17:32:31] <TRUE> какой программист сказал тебе, что proc(x++) передаст внутрь увеличенное значение? Тот же, что и эту программу написал?
[17:32:49] <Kemet> не
[17:33:01] <valexey> не, ну может там ваще лямбды и замыкания и вообще хз что ;-)
[17:33:11] <valexey> надо смотреть сам код, знать коньтекст
[17:34:08] <Kemet> не, там всё просто, такое тз было, никакой хрени, простой как валенок код
[17:46:35] <Kemet> на обероне не работает, если я не увиличиваю i, но увеличиваю x или увеличиваю и то и другое, если увеличиваю только i, то проверить не могу ибо стек заканчивается
[17:47:20] <valexey> чудес не бывает
[17:47:32] <valexey> либы ты нам тут не верно сформулировал задачу, либо воспроизводишь не так :-)
[17:47:39] <valexey> как ты на оберон переписал этот код?
[17:56:32] <Kemet> условно так, играя incэами и + 1, в разных комбинациях
[17:56:39] <Kemet> procedure proc( i: longint );
begin
..
inc( matrix(j, i + 1), baseMatrix( j, i + 1 ));
..
end proc;

var x := 1: longint;

procedure main( );
begin
...
for a to b do
proc( x );
inc( x );
end;
..
end main;
[17:59:30] <valexey> а в оригинале что внутри proc было?
[17:59:37] <valexey> ну и цикл в main как выглядел
[18:02:09] <Kemet> всё по привнеденному типу, правда там не mainб а другая вызываемая процедура
[18:02:35] <valexey> ну это пофиг
[18:02:45] <valexey> меня просто смущает строчка inc( matrix(j, i + 1), baseMatrix( j, i + 1 ));
[18:03:02] <valexey> каво она там инкрементирует, что было в оригинале?
[18:03:14] <Kemet> то есть там a и b это некий диапазон, а да, j там уменьшается в цикле
[18:03:45] <Kemet> денги инрементирует, да
[18:04:06] <valexey> дело хорошее :-)
[18:04:15] <valexey> весь смысл любой коммерческой организации именно в этом!
[18:04:47] <Kemet> ды, свои деньги лучше инкрементировать, причем себе же
[18:06:10] <Kemet> там матриц несколько больше, но они все одного размера, некоторые ячейки нужно сложить, другие отнять
[18:06:43] <valexey> себе деньги инкрементировать, при этом отнимать и делить чужие деньги!
[18:06:47] <valexey> всё правильно сделали!
[18:59:30] <valexey> TRUE: http://feederio.com/book/37/the-little-book-about-os-development
[19:00:09] <TRUE> спасибо, а это к чему?
[19:00:50] <valexey> я просто помню, что ты вроде бы интересовался подобной темой
[19:01:08] <valexey> сейчас вот новость про эту книжку проскочила
[19:01:29] <valexey> хотя книге уже два года почти
[19:04:16] <TRUE> у меня есть Танненбаум. Я ещё эту распечатаю, переплету и поставлю рядом на полочке.
[19:05:21] <TRUE> у них явно не масм используется.
[19:05:45] <TRUE> а, насм
[19:07:03] <TRUE> книга похожа на написание HelloWorldOS
[19:07:31] <TRUE> максимум практики, обучение на примерах.
[19:07:59] <valexey> ну да. максимум того, чтобы начать действовать и пощупать это всё
[19:08:45] <TRUE> но она малополезна, если не знаешь теории. А как лабораторный практикум к курсу - самое то.
[19:09:06] <valexey> теории там необходимый минимум, IMHO
[19:09:19] <valexey> и оно всяко полезней чем например виртовская книжка, где теории считай вообще нет.
[19:11:41] <TRUE> Всё никак не засяду за чтение виртовской книги. Но мне всегда казалось, что там не курс по осям (осью же Мёссенбёк занимался, да?), а воспоминания о том, что за работа была проделана.
[19:12:12] <valexey> не, он там именно ось делает
[19:12:34] <valexey> но оно такое... довольно специфическое и прикладное. т.е. больше не прикладуху смахивает нежели на системщину
[19:12:49] <valexey> у него же там комп простой как топор, ни mmu ни защиты, нифига
[19:12:54] <valexey> прерываний тоже нет
[19:13:16] <valexey> кешей тоже нет
[19:13:20] <valexey> ничего нет короче :-)
[19:13:32] <valexey> поэтому там например треть книжки про то, как окошки рисовать.
[19:13:42] <valexey> глава про сборщик мусора
[19:13:45] <valexey> ну и так далее
[19:14:11] <valexey> это немного не то, чего ожидаешь от книжки про написание своей оси
[19:54:10] <valexey> Блин, эта Gogland IDE когда ничего не делает (т.е. в фоне - её даже на экране нет) стабильно жрет 2.7% от CPU
[19:54:13] <valexey> это капец
[19:54:26] <valexey> иногда 3%
[19:54:54] <valexey> т.е. эта штука абсолютно противопоказана использованию на ноутах
[19:55:58] <valexey> причем оно жрет даже если перевести её в power safe mode
[21:19:19] <TRUE> а идея?
[21:21:44] <TRUE> может, это из-за того, что она в разработке, и разработчики так собирают статистику и прочую информацию?
[22:07:36] <valexey> TRUE: идея подобным тоже страдала, помнится.
[22:07:50] <valexey> но power safe mode вроде помогал