Přejít na obsah

Recommended Posts

Odesláno

ОФФ. :D

Даны числа от 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])

  • Odpovědi 67
  • Created
  • Poslední odpověď

Top Posters In This Topic

Top Posters In This Topic

Odesláno
То есть разница несущественна... вообще.

 

Ну хз... а попробуй не 1000 а 10.000 или 100.000, чтобы снизить долю времени на запуск и окончание.

 

Odesláno

При 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

:)

По хорошему, все эти тесты к ничему, мне лень смотреть и разбираться с дизасм, как все это будет выглядеть после компиляции.

Odesláno
По хорошему, все эти тесты к ничему, мне лень смотреть и разбираться с дизасм, как все это будет выглядеть после компиляции.

 

Выигрыш всё же есть небольшой. Но, конечно, быстрее всего будет работать пример выше :)

Профессиональный программер:
а:аггау[1..10]:=(1,0,1,0,1,0,1,0,1,0); write(a[x])

Odesláno

Да выигрыш есть, но совсем не большой. Я прекрасно осознаю, что операция деления не есть лучший вариант. :)

Кстати, с -O3 будут real 0m1.831s для делений и, о чудо, real 0m2.133s для цикла. :P

а:аггау[1..10]:=(1,0,1,0,1,0,1,0,1,0); write(a[x])

Ну с этим-то никто не спорит. :)

Odesláno

ото нефиг вам делать. :)

 

$ time ./chess 1000 >/dev/null

real 0m0.074s

user 0m0.060s

sys 0m0.000s

 

 

Odesláno

По теме:

А оно точно надо? :) Если задача стоит общаться с инженерами, то, как и в программировании есть уровень абстракции, на котором и следует общаться. Т.е. изучить понятия, в которых спрашивают клиенты и передать их в понятном виде инженерам. Т.е. минимум требуется понимание терминологии, чтобы передать точно запрос, максимум перевод из терминологии клиента в терминологию иженеров. При этом без дигностики - это задача инженеров. А уж инженеры пускай и разбираются, чего там не так в коде. Но если хочется перебраться к примеру в инженеры (зп увеличить или душа лежит), то тогда конечно оно того стоит.

Если есть конкретная ориентировка на работу, изучать лучше стоит именно те вещи, которые там и используются. Общие понятия вы освоите в любом случае, но время потратите меньше и пользы получите больше. Абстрактный пример: вы знаете PHP отлично, а вам нужно работать с Bitrix. Расковырять ядро и написать ручками нужное вы сможете быстро, а вот понять как оно там делается согласно их системе (и может вообще без программирования и за 5 мин.) - надо изучить систему все равно.

 

Так что если работа на С++ учите именно его и остальные инструменты, что используются в работе.

Насчет репититора: помощь при самостоятельном изучении это хорошо, но лучше всего, если кто-то из коллег согласится вас поучить в привязке к реальным задачам. Репититор скорее научит базовому, тому что можно узнать и из книжек.

Еще хороший метод: Вам что-то нужно в повседневной деятельности, что можно бы оптимизировать и это можно сделать с помощью программы. Возьмите и напишите это. Будет полезно как с точки зрения изучения, так и для реальной жизни.

 

По примерам приведенным: Задача примеров как правило помочь изучить принципы и обычно оговаривается, "не выводим "*-*-*-*-*-*-*-*-*" на четных строках и

-*-*-*-*-*-*-*-*- на нечетных" Нообычно примеры усложняются, а методика упрощается и код пишется типа Button1_OnClick{Product->Manufacturer="Bosch"; Product->Model="BR12333"; Product->Price=123; slqCommand="INSERT INTO ...} Т.е. пример сознательно не усложняют, но в реальности он иллюстрирует только работу того или иного объекта и с реальностью плохо свзан. А человек прочитав, воспринимает что так и надо делать "при добавлении продукта в базу данных"

А оптимизация это вообще отдельный вопрос и как правило идет в разрез с ООП, читаемостью и т.д.

Pokud chcete odpovídat, musíte se přihlásit nebo si vytvořit účet.

Pouze registrovaní uživatelé mohou odpovídat

Vytvořit účet

Vytvořte si nový účet. Je to snadné!

Vytvořit nový účet

Přihlásit se

Máte již účet? Zde se přihlašte.

Přihlásit se



  • Kdo si právě prohlíží tuto stránku

    • Žádný registrovaný uživatel si neprohlíží tuto stránku
×
×
  • Vytvořit...