Re[9]: труд программера переоценен
От: awod Россия  
Дата: 28.12.05 16:29
Оценка:
Здравствуйте, ggg, Вы писали:

A>>Если он не ответит — значит зря он пошёл учиться. Значит человек занимает НЕ СВОЁ место.

ggg>Интересно, а сам спрашивающий может _правильно_ ответить, что такое интеграл Римана и интеграл Лебега?
ggg>Или имелось в виду попросить посчитать неопр. интеграл от е в степени х ?

Надеюсь не к Вашему удивлению, но знаю
И не только посчитать, но и с определением и если посидеть, то и кучу доказательств на эту тему вспомню

ЗЫ: Физтехам привет
С уважением AWOD.
Re[15]: труд программера переоценен
От: awod Россия  
Дата: 28.12.05 16:34
Оценка:
A>>Быстрый и бесплатный, не всегда поддерживаемый.

AS>А мозги вам на что ?


Именно по этому на собеседовании оценивается мозг человека

Про поддерживаемый: имелось в виду насколько легко алгоритм переделывается под нужды конкретной задачи. Про STL уже тут говорилось
С уважением AWOD.
Re[13]: труд программера переоценен
От: Gorbatich  
Дата: 28.12.05 16:41
Оценка: -2
Здравствуйте, Pzz, Вы писали:

>> Первая 2-ка тоже должна быть локальным экстемумом

>> pzz, это так по вашей постановке задачи ?

Pzz>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В


Сами дали определение:

Локальный максимум — такой элемент массива, который больше своих соседей.

Слева от "2" — нет соседей!!!
Re[10]: труд программера переоценен
От: piAnd Россия  
Дата: 28.12.05 16:42
Оценка: +1
Здравствуйте, aik, Вы писали:

aik>Зря. Программер должен быть способен безо всякой доки налабать хоть и очень тупой, но рабочий алгоритм на любой случай. Если чел на это не способен, то книжки ему ни разу не помогут.

Хм... странная т.з.
Я думаю этого сам Кнут не сможет, "налабать на любой случай".
Программер широкое понятие.
Алгоритмы надо спрашивать там, где на их понимании основана вся работа. Тем более, что алгоритмов миллион штук и разновидностей и подразновидностей.
Re[14]: труд программера переоценен
От: A_l_e_x_e_y Россия  
Дата: 28.12.05 16:55
Оценка: 1 (1)
Здравствуйте, Gorbatich, Вы писали:
>>> Первая 2-ка тоже должна быть локальным экстемумом
>>> pzz, это так по вашей постановке задачи ?
Pzz>>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В
G>Сами дали определение:
G>Локальный максимум — такой элемент массива, который больше своих соседей.
G>Слева от "2" — нет соседей!!!

Это спорно. На основании исходного задания в этом нельзя быть уверенным.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re[9]: труд программера переоценен
От: execve  
Дата: 28.12.05 16:55
Оценка:
Здравствуйте, aik, Вы писали:

aik>Здравствуйте, execve, Вы писали:


E>>Последние несколько лет сталкиваюсь с компаниями из US — огромное кол-во менеджеров-индусов, иногда попадаются китайцы, но русских — ни одного.


aik>Все верно. Манагер должен бегло говорить по-английски. Наши — не умеют. А индусы — с малолетства.


А это значит, что причина #2 работать практически не будет.

По моим наблюдениям самый частый случай: поработал наш человек там программистом, оброс связями, договорился с тамошними менеджерами (всё ещё оставаясь программистом), потом чего вернулся сюда и уже здесь стал менеджером аутсоурсящей команды.
Re[12]: труд программера переоценен
От: Gorbatich  
Дата: 28.12.05 16:57
Оценка: :))) :))
Здравствуйте, Pzz, Вы писали:

#include<stdio.h>
gopstop(int *a, int *k){
int i;
for(i=1; i<=6; i++)
if(a[i]>a[i-1]&&a[i]>a[i+1])
*k=*k+1;
}

int main(){
int m=0;
int z[7]={2,1,8,6,3,4,1};
gopstop(z, &m);
printf("\n%i", m);

return 0;
}
Re[13]: труд программера переоценен
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 17:09
Оценка: 19 (4) +8
Gorbatich wrote:

Садитесь, два балла.

> #include<stdio.h>

> gopstop(int *a, int *k){
> int i;
> for(i=1; i<=6; i++)
> if(a[i]>a[i-1]&&a[i]>a[i+1])
> *k=*k+1;
> }

1) Кому нужна функция, которая работает только с массивом из 6-и элементов?
2) А Вы пробовали скомпилировать свою программу?
3) А зачем целое число возвращать через указатель?
4) Если уж возвращаете, почему инициализировать его должна вызывающая
сторона?

В общем, чем дальше, тем хуже. Я же сразу Вам сказал, Вам не надо
программировать — Вам надо сразу в Большие Начальники.

Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать,
как работает qsort из принципа, программировать в принципе не могут. Но
я не ожидал получить этому столь быстрое и наглядное подтверждение. Спасибо!

> int main(){

> int m=0;
> int z[7]={2,1,8,6,3,4,1};
> gopstop(z, &m);
> printf("\n%i", m);
>
> return 0;
> }

\n в начале строки — это круто. Это явно способствует формированию
хорошего вкуса у пользователей Вашей программы.
Posted via RSDN NNTP Server 2.0
Re[15]: труд программера переоценен
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 17:17
Оценка:
A_l_e_x_e_y wrote:
>
> Pzz>>Я об этом умышленно умолчал. Я рад, что Вы это заметили и спросили. В
> G>Сами дали определение:
> G>Локальный максимум — такой элемент массива, который больше своих соседей.
> G>Слева от "2" — нет соседей!!!
>
> Это спорно. На основании исходного задания в этом нельзя быть уверенным.

Мда. Вот с Вами я бы поговорил насчет возможного сотрудничества, если бы
у меня были открытые вакансии...
Posted via RSDN NNTP Server 2.0
Re[14]: offtopic
От: xtile  
Дата: 28.12.05 18:42
Оценка: 23 (3)
Спасибо за очередную демонстрацию локальной победы разума над коллективной мыслью.


Вообще такие вот простенькие задачки очень хорошо позволяют оценить человека в первом приближении. имхо, конечно.

В частности:

— дефенсивность кода — ассерты, проверки, эксепшены — depends on предметной области и необходимости.
— краевые условия задачи, частные случаи
— обобщенность (отвлеченность от конкретных входных данных), и в то же время отсутствие излишней обобщенности (i.e. виртуальные интерфейсы и шаблонные функции )
— адекватность — когда на задачку дают 2 минуты, ее нужно сразу же закодить, а над душой сидят 2 человека — почти все допускают ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы, которые могут вывести его на правильный путь — очень многое можно сказать о человеке
Re[15]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 18:52
Оценка: :))
xtile wrote:
>
> — адекватность — когда на задачку дают 2 минуты, ее нужно сразу же
> закодить, а над душой сидят 2 человека — почти все допускают
> ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы,
> которые могут вывести его на правильный путь — очень многое можно
> сказать о человеке

Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли,
как найти туалет, и выходили на час-полтора из комнаты
Posted via RSDN NNTP Server 2.0
Re[14]: труд программера переоценен
От: Gorbatich  
Дата: 28.12.05 18:54
Оценка: +1 :))
Здравствуйте, Pzz, Вы писали:



Pzz>1) Кому нужна функция, которая работает только с массивом из 6-и Pzz>элементов?


Если я и сделаю "умный" список, то наверное не бесплатно и уж явно не чтобы сюда кинуть.


Pzz>2) А Вы пробовали скомпилировать свою программу?


0 err, 1 warn — забыл слово void

Pzz>3) А зачем целое число возвращать через указатель?


Не люблю конструкции типа y=f(x). Предпочитаю f(x,&y).
Поработайте с большим объемом дыннах — узнаете почему.

Pzz>В общем, чем дальше, тем хуже.


а дальше только распечатка

Pzz>Я же сразу Вам сказал, Вам не надо

Pzz>программировать — Вам надо сразу в Большие Начальники.

Сразу не быывает. Только универ закончил.

Pzz>Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать,

Pzz>как работает qsort из принципа, программировать в принципе не могут. Но
Pzz>я не ожидал получить этому столь быстрое и наглядное подтверждение. Pzz>Спасибо!

Может быть когда-нибудь я буду вашим начальником Но я не буду таким занудным это уж точно )

>> int main(){

>> int m=0;
>> int z[7]={2,1,8,6,3,4,1};
>> gopstop(z, &m);
>> printf("\n%i", m);
>>
>> return 0;
>> }

Pzz>\n в начале строки — это круто. Это явно способствует формированию

Pzz>хорошего вкуса у пользователей Вашей программы.

Каждый считает себя самым умным. Удачи Вам в этом, возможно, заблуждении.
Re[15]: труд программера переоценен
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 18:59
Оценка:
Gorbatich wrote:
>
> Pzz>1) Кому нужна функция, которая работает только с массивом из 6-и
> Pzz>элементов?
>
> Если я и сделаю "умный" список, то наверное не бесплатно и уж явно не
> чтобы сюда кинуть.

Сколько же Вы хотите получить за решение этой простенькой задачки?

> Pzz>Я же сразу Вам сказал, Вам не надо

> Pzz>программировать — Вам надо сразу в Большие Начальники.
>
> Сразу не быывает. Только универ закончил.

Надо было МГИМО заканчивать.

> Pzz>Я, вообще-то, и раньше предполагал, что люди, которые не хотять знать,

> Pzz>как работает qsort из принципа, программировать в принципе не могут. Но
> Pzz>я не ожидал получить этому столь быстрое и наглядное подтверждение.
> Pzz>Спасибо!
>
> Может быть когда-нибудь я буду вашим начальником Но я не буду таким
> занудным это уж точно )

Вот это вряд ли. Но и я Вашим начальником тоже вряд ли буду
Posted via RSDN NNTP Server 2.0
Re[15]: труд программера переоценен
От: Chris Россия  
Дата: 28.12.05 19:04
Оценка: 7 (2) +7 :))) :))) :)))
Код у Gorbatich конечно гавняненький , но Pzz — за-ну-да. Дальше тим-лидера не вырастет
Re[16]: offtopic
От: sigsegv  
Дата: 28.12.05 19:34
Оценка:
Pzz wrote:
> xtile wrote:
>
>>— адекватность — когда на задачку дают 2 минуты, ее нужно сразу же
>>закодить, а над душой сидят 2 человека — почти все допускают
>>ошибки/описки. По тому, как кандидат реагирует на наводящие вопросы,
>>которые могут вывести его на правильный путь — очень многое можно
>>сказать о человеке
>
>
> Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли,
> как найти туалет, и выходили на час-полтора из комнаты

ну так взяли кого-нибудь в итоге-то ?

--
SKV
Posted via RSDN NNTP Server 2.0
Re[17]: offtopic
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 19:48
Оценка: 12 (1) +1 :)
sigsegv wrote:
>
>> Мы, кстати были не такимы злыми. Мы давали несколько задачек, объясняли,
>> как найти туалет, и выходили на час-полтора из комнаты
>
> ну так взяли кого-нибудь в итоге-то ?

Да.
Posted via RSDN NNTP Server 2.0
Re[11]: труд программера переоценен
От: LuciferMoscow Россия  
Дата: 28.12.05 20:02
Оценка:
Здравствуйте, aik, Вы писали:

aik>Здравствуйте, LuciferMoscow, Вы писали:


LM>>У меня знакомая преподает в ВУЗе. В таком выражение:

LM>>dx/dt букву d сокращали!
aik>боян. Нам его еще училка в школе рассказывала
Так я все время считал это анекдотом. А тут в реале такое...
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[15]: труд программера переоценен
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 20:20
Оценка:
Gorbatich wrote:
>
> Pzz>\n в начале строки — это круто. Это явно способствует формированию
> Pzz>хорошего вкуса у пользователей Вашей программы.
>
> Каждый считает себя самым умным. Удачи Вам в этом, возможно, заблуждении.

Вы, кстати, не расстраивайтесь так. Вы смелый человек — кроме Вас никто
не рискнул выставить свой код на публичное обсуждение. Думаю, многие из
тех, кто сейчас сидит и посмеивается, выступили бы не лучше Вас...
Posted via RSDN NNTP Server 2.0
Re[16]: труд программера переоценен
От: sigsegv  
Дата: 28.12.05 21:01
Оценка:
Pzz wrote:
>
> Вы, кстати, не расстраивайтесь так. Вы смелый человек — кроме Вас никто
> не рискнул выставить свой код на публичное обсуждение.

Можно и выставить

<cut>

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <err.h>

struct e_list {
struct e_list *next;
int ind;
};

int
find_max(int *a, int size, struct e_list **e)
{
int i;
struct e_list *new;

#define ADD do { \
new = calloc(1, sizeof(*new)); \
if (new == NULL) { \
errx(1, "get more ram"); \
} \
new->ind = i; \
new->next = *e; \
*e = new; \
} while(0)

if (size < 0) {
return -1;
}

if (size == 1) {
i = 0;
ADD;
return 0;
}

for (i = 0; i <= size — 1; i++) {
if (i == 0) {
if (a[i] > INT_MIN && a[i] > a[i + 1]) {
ADD;
}
} else if (i == size — 1) {
if (a[i] > a[i — 1] && a[i] > INT_MIN) {
ADD;
}
} else {
if (a[i] > a[i — 1] && a[i] > a[i + 1]) {
ADD;
}
}
}

return 0;
}

int
main()
{
struct e_list *e, *curr;
int l[] = {2, 1, 4, 1, 1, 1, 5, 6};
int rc;

e = calloc(1, sizeof(*e));
if (e == NULL) {
errx(1, "get more ram");
}

rc = find_max(l, sizeof(l)/sizeof(l[0]), &e);
if (rc != 0) {
errx(1, "shit happens!");
}

while (e->next != NULL) {
fprintf(stdout, "%5i", e->ind);
curr = e;
e = e->next;
free(curr);
}

fprintf(stdout, "\n");
fflush(stdout);

free(e);

return 0;
}

</cut>

--
SKV
Posted via RSDN NNTP Server 2.0
Re[17]: труд программера переоценен
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.12.05 21:32
Оценка: +1 :))) :)
sigsegv wrote:
>
> Pzz wrote:
>>
>> Вы, кстати, не расстраивайтесь так. Вы смелый человек — кроме Вас никто
>> не рискнул выставить свой код на публичное обсуждение.
>
> Можно и выставить

О Боже! Я не построить список локальных максимумов. Я просил подсчитать
их количество!

Ну давайте вашу алгоритму тоже поругаю, если уж Вам так хочется.

Грубые ошибки:
1. Случай пустого массива (size == 0) не обработан. На пустом массиве
Ваша програмка просто упадет, слазив в a[1].
2. Если про крайние элементы можно еще поспорить, являются ли они
локальными максимумами, или нет, по причине отсутствия соседа с одной
стороны, то уж единственный элемент массива из одного элемента точно на
локальный максимум не тянет
3. Неправильно понято условие задачи — просили количество локальных
максимумов, а не их список. Фактически, поставленная задача не решена.

Придирки:
1. Зачем Вам отдельный терминирующий элемент в списке? Вполне хватило
бы того, что у последнего элемента next == NULL
2. Мне очень не нравится макрос ADD. Он трогает переменные,
определенные вокруг него, но в том месте, где этот макрос вызывается,
этого не видно.
3. Логику, которая аллоцирует память, проверяет на NULL и завершает
программу, я бы предпочел видеть в одном месте, а не размазанную по
всему коду.
4. Зачем эти сравнения с INT_MIN?
5. С крайними элементами эффективнее разобраться вне цикла. Впрочем
ладно, забудем пока про эффективность.
6. Когда Вы печатаете числа printf'ом, было бы неплохо хоть чем-нибудь
их разделять.
7. Зачем нужен fflush(stdout) прямо перед exit'ом. Горе от ума?
8. Я бы не стал называть локальную переменную словом, которое является
зарезервированным в C++ (я имею ввиду, new).

Результат, конечно, лучше, чем у предыдущего оратора, но общем, тоже
цирк с кОнями

И главное, зачем надо было так выпендриваться?...

> #include <stdio.h>

> #include <stdlib.h>
> #include <limits.h>
> #include <err.h>
>
> struct e_list {
> struct e_list *next;
> int ind;
> };
>
> int
> find_max(int *a, int size, struct e_list **e)
> {
> int i;
> struct e_list *new;
>
> #define ADD do { \
> new = calloc(1, sizeof(*new)); \
> if (new == NULL) { \
> errx(1, "get more ram"); \
> } \
> new->ind = i; \
> new->next = *e; \
> *e = new; \
> } while(0)
>
> if (size < 0) {
> return -1;
> }
>
> if (size == 1) {
> i = 0;
> ADD;
> return 0;
> }
>
> for (i = 0; i <= size — 1; i++) {
> if (i == 0) {
> if (a[i] > INT_MIN && a[i] > a[i + 1]) {
> ADD;
> }
> } else if (i == size — 1) {
> if (a[i] > a[i — 1] && a[i] > INT_MIN) {
> ADD;
> }
> } else {
> if (a[i] > a[i — 1] && a[i] > a[i + 1]) {
> ADD;
> }
> }
> }
>
> return 0;
> }
>
> int
> main()
> {
> struct e_list *e, *curr;
> int l[] = {2, 1, 4, 1, 1, 1, 5, 6};
> int rc;
>
> e = calloc(1, sizeof(*e));
> if (e == NULL) {
> errx(1, "get more ram");
> }
>
> rc = find_max(l, sizeof(l)/sizeof(l[0]), &e);
> if (rc != 0) {
> errx(1, "shit happens!");
> }
>
> while (e->next != NULL) {
> fprintf(stdout, "%5i", e->ind);
> curr = e;
> e = e->next;
> free(curr);
> }
>
> fprintf(stdout, "\n");
> fflush(stdout);
>
> free(e);
>
> return 0;
> }
>
Posted via RSDN NNTP Server 2.0
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.