serj_nv 2568 Nahlásit příspěvěk Odesláno February 6, 2011 ОФФ. Даны числа от 1 до 10. Надо напечатать 0, если число четное, и 1 ? в противном случае. Как решают эту задачу: Учитель информатики в школе: if х=2 or x=4 or х=6 or x=8 or x=10 then write(0) else write(1) Преподаватель в институте: if not odd(x) then write(0) else write(1) Студент: write(x mod 2) Профессиональный программер: а:аггау[1..10]:=(1,0,1,0,1,0,1,0,1,0); write(a[x]) Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 То есть разница несущественна... вообще. Ну хз... а попробуй не 1000 а 10.000 или 100.000, чтобы снизить долю времени на запуск и окончание. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 При 10000. Циклы с (&): real 0m2.227s user 0m1.940s sys 0m0.283s Деления c (% для определения четности): real 0m2.609s user 0m2.367s sys 0m0.227s Но в делении, с & для определения четности дает: real 0m2.383s user 0m2.147s sys 0m0.230s По хорошему, все эти тесты к ничему, мне лень смотреть и разбираться с дизасм, как все это будет выглядеть после компиляции. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 По хорошему, все эти тесты к ничему, мне лень смотреть и разбираться с дизасм, как все это будет выглядеть после компиляции. Выигрыш всё же есть небольшой. Но, конечно, быстрее всего будет работать пример выше Профессиональный программер: а:аггау[1..10]:=(1,0,1,0,1,0,1,0,1,0); write(a[x]) Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 Да выигрыш есть, но совсем не большой. Я прекрасно осознаю, что операция деления не есть лучший вариант. Кстати, с -O3 будут real 0m1.831s для делений и, о чудо, real 0m2.133s для цикла. а:аггау[1..10]:=(1,0,1,0,1,0,1,0,1,0); write(a[x]) Ну с этим-то никто не спорит. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
zloj 1 Nahlásit příspěvěk Odesláno February 6, 2011 ото нефиг вам делать. $ time ./chess 1000 >/dev/null real 0m0.074s user 0m0.060s sys 0m0.000s Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Irina. 0 Nahlásit příspěvěk Odesláno February 8, 2011 Может какой-то такой онлайн курс agate бы подошел? http://www.extension.harvard.edu/openlearn...id=OIMFIAJPGFOH Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Gard 0 Nahlásit příspěvěk Odesláno February 8, 2011 По теме: А оно точно надо? Если задача стоит общаться с инженерами, то, как и в программировании есть уровень абстракции, на котором и следует общаться. Т.е. изучить понятия, в которых спрашивают клиенты и передать их в понятном виде инженерам. Т.е. минимум требуется понимание терминологии, чтобы передать точно запрос, максимум перевод из терминологии клиента в терминологию иженеров. При этом без дигностики - это задача инженеров. А уж инженеры пускай и разбираются, чего там не так в коде. Но если хочется перебраться к примеру в инженеры (зп увеличить или душа лежит), то тогда конечно оно того стоит. Если есть конкретная ориентировка на работу, изучать лучше стоит именно те вещи, которые там и используются. Общие понятия вы освоите в любом случае, но время потратите меньше и пользы получите больше. Абстрактный пример: вы знаете PHP отлично, а вам нужно работать с Bitrix. Расковырять ядро и написать ручками нужное вы сможете быстро, а вот понять как оно там делается согласно их системе (и может вообще без программирования и за 5 мин.) - надо изучить систему все равно. Так что если работа на С++ учите именно его и остальные инструменты, что используются в работе. Насчет репититора: помощь при самостоятельном изучении это хорошо, но лучше всего, если кто-то из коллег согласится вас поучить в привязке к реальным задачам. Репититор скорее научит базовому, тому что можно узнать и из книжек. Еще хороший метод: Вам что-то нужно в повседневной деятельности, что можно бы оптимизировать и это можно сделать с помощью программы. Возьмите и напишите это. Будет полезно как с точки зрения изучения, так и для реальной жизни. По примерам приведенным: Задача примеров как правило помочь изучить принципы и обычно оговаривается, "не выводим "*-*-*-*-*-*-*-*-*" на четных строках и -*-*-*-*-*-*-*-*- на нечетных" Нообычно примеры усложняются, а методика упрощается и код пишется типа Button1_OnClick{Product->Manufacturer="Bosch"; Product->Model="BR12333"; Product->Price=123; slqCommand="INSERT INTO ...} Т.е. пример сознательно не усложняют, но в реальности он иллюстрирует только работу того или иного объекта и с реальностью плохо свзан. А человек прочитав, воспринимает что так и надо делать "при добавлении продукта в базу данных" А оптимизация это вообще отдельный вопрос и как правило идет в разрез с ООП, читаемостью и т.д. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky