Найти новичку работу на Паскале в 2016 году

Модератор: Модераторы

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 06.02.2016 22:26:19

Да фиг знает этот else. Я воспользовался им. Толку никакого.
Потому что необходим иной подход и переписать по другому. Постаравшись избавиться от if в функции. Это самый скользкий момент потому что нет гарантии "ещё быстрее".
Заметил одну штуку. В лазаре добиться того что можно в дельфине куда сложнее.

какого лешего for tmp_i := 0 to 1000000 do ????

п.с.

Из переписки стало понятно: То что стандартно - есть повод для приема, а то что нет... Похоже на инквизицию. :mrgreen:
Т.е. при приеме необходимо сделать вид голодной собачки и хватать косточку. При этом стараться вспомнить штудентсво и не отходить от требуемого. Иначе посчитают странным и неадекватным. Тем более, не дай бог, при приёме показать что ты знаешь чутку больше работодателя.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение resident » 06.02.2016 22:39:09

pupsik писал(а):Тем более, не дай бог, при приёме показать что ты знаешь чутку больше работодателя

И у программистов тоже самое???
Я как-то устраивался на работу и спросил: возьмете меня слесарем газового хозяйства? (У меня и удостоверение есть.)
Они спросили: А какое у вас образование? Ну я и ляпнул сдуру, что высшее.
Мне ответили: Ээээ, не, с высшим не берем.
Так что на вопрос об образовании хорошо бы ответить, что 20 лет отсидел и еще белый билет на руках. А на вопрос: выпиваете? Отвечать: А что ж я по вашему сюда пришел? В этом случае в нашей стране примут с распростертыми объятьями. Тут чем меньше знаешь и работаешь, тем больше в авторитете :mrgreen:

Добавлено спустя 3 минуты 18 секунд:
pupsik писал(а):какого лешего for tmp_i := 0 to 1000000 do ????

Быстро комп считает, увеличил тем самым время и уменьшил погрешность.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Найти новичку работу на Паскале в 2016 году

Сообщение Verx0Laz » 06.02.2016 23:08:45

Мне ответили: Ээээ, не, с высшим не берем.

Не взяли не потому что высшее образование, а потому что в очереди из людей в камуфляжах и спецовках, ты был единственный во фраке, бабочке и с виолончелью :D
А про образование спросили уже после того, как ты удостоверение показал, или до? )))
Аватара пользователя
Verx0Laz
постоялец
 
Сообщения: 125
Зарегистрирован: 11.09.2007 11:24:07

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 06.02.2016 23:25:45

Исчо наколки надо :lol:

Шутки шутками а ситуация (по крайней мере то с чем сталкиваюсь я) такая.... Чем меньше знаешь и больше делаешь видимость тем выше зп. Я не встречал иного (точнее 2 из 100 было по другому). И с программистами общался, и не только... У всех одно: знание - ничто, пятая точка - всё.
Чем дальше тем хуже. Жаль...
Последний раз редактировалось pupsik 06.02.2016 23:30:26, всего редактировалось 1 раз.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение bormant » 06.02.2016 23:26:31

А не проще обойтись вовсе без вызова функции?
Код: Выделить всё
case Ord(n mod 3=0)+Ord(n mod 5=0) shl 1 of
0: s:=IntToStr(n);
1: s:='Fizz';
2: s:='Buzz';
3: s:='FizzBuzz';
end;
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Найти новичку работу на Паскале в 2016 году

Сообщение resident » 06.02.2016 23:30:35

Verx0Laz писал(а):Не взяли не потому что высшее образование, а потому что в очереди из людей в камуфляжах и спецовках, ты был единственный во фраке, бабочке и с виолончелью :D

Папка кожаная была, а нужно было с авоськой идти :)

Verx0Laz писал(а):А про образование спросили уже после того, как ты удостоверение показал, или до? )))

Я вообще ничего не показывал, поговорили и разошлись.

pupsik писал(а):Исчо наколки надо

Точно! :mrgreen:

Добавлено спустя 10 минут 27 секунд:
bormant писал(а):А не проще обойтись вовсе без вызова функции?

Я поначалу тоже задумался над таким решением, но не смог сразу реализовать и задал себе вопрос: а зачем? Красоты никакой, понятность нулевая, экономия на нескольких строчках здесь не важна. И успокоился.
И, кстати, это из тех вариантов:
pupsik писал(а):не дай бог, при приёме показать что ты знаешь чутку больше работодателя
Последний раз редактировалось resident 06.02.2016 23:43:49, всего редактировалось 1 раз.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 06.02.2016 23:42:36

bormant может и проще, а результат не сильно то меняется.

resident не берите плохого в голову. У каждого разная ситуация.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение bormant » 07.02.2016 00:19:02

pupsik,
ну как сказать "не очень", 66% от вашего варианта (если отсечь все лишнее), 34% на дороге не валяются.
Код: Выделить всё
Test1: 31
Test2: 47
Test3: 47

Код: Выделить всё
{$mode ObjFPC}
{$H+}
uses Windows;
const Count=1000000;

procedure Test1;
var i: Integer; s: String;
begin
  for i:=1 to Count do
    case Ord(i mod 3=0) or Ord(i mod 5=0) shl 1 of
    0: s:='number';
    1: s:='Fizz';
    2: s:='Buzz';
    3: s:='FizzBuzz';
    end;
end;

procedure Test2;
var i: Integer; s: String;
begin
  for i:=1 to Count do begin
    s := '';
    if (i mod 3) = 0 then s := 'Fizz';
    if (i mod 5) = 0 then s := s + 'Buzz';
    if s = '' then s := 'number';
  end;
end;

type
   rez = (fFizz, fBuzz, fFizzBuzz, fnoFizzBuzz);
function Check(a_value: Integer): rez;
var
  a, b: Integer;
begin
  result := fnoFizzBuzz;
  a := a_value mod 3;
  b := a_value mod 5;
  if (a = 0) and (b = 0) then
    result := fFizzBuzz;
  if a = 0 then
    result := fFizz;
  if b = 0 then
    result := fBuzz;
end;
procedure Test3;
var i: Integer; s: String;
begin
  for i:=1 to Count do
    case Check(i) of
    fFizz: s:='Fizz';
    fBuzz: s:='Buzz';
    fFizzBuzz: s:='FizzBuzz';
    fnoFizzBuzz: s:='number';
    end;
end;

var t: Integer;
begin
  Write('Test1: ');
  t:=Windows.GetTickCount; Test1; t:=Windows.GetTickCount-t;
  WriteLn(t);
  Write('Test2: ');
  t:=Windows.GetTickCount; Test2; t:=Windows.GetTickCount-t;
  WriteLn(t);
  Write('Test3: ');
  t:=Windows.GetTickCount; Test3; t:=Windows.GetTickCount-t;
  WriteLn(t);
end.

Код: Выделить всё
fpc -O3 test.pas
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 07.02.2016 00:27:00

Test1: 73
Test2: 37
Test3: 20

И..и?

п.с.
Дебиан 8, гном3. Лазарь 1.5, фпс 3...

2-й запуск
Test1: 31
Test2: 51
Test3: 25

3-й запуск
Test1: 41
Test2: 45
Test3: 37

4-й запуск
Test1: 69
Test2: 39
Test3: 28

п.сп.с.
Может я что то не так делаю?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение bormant » 07.02.2016 00:34:40

Для FPC-3 надо посмотреть на ассемблерный код, не готов сказать, откуда такая картинка.
FPC-2.6.4 точно не выбрасывает ни цикла, ни присваиваний. И результаты не гуляют туда-сюда при повторных запусках. Способ замера времени для Линукса допустимый?
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 07.02.2016 00:44:35

Зато я готов :)))
В топку "вывод в терминал" лазаря...
Код: Выделить всё
Test1: 30
Test2: 33
Test3: 22
@debian:~/work_project/tst32$ ./project1
Test1: 33
Test2: 50
Test3: 23
@debian:~/work_project/tst32$ ./project1
Test1: 35
Test2: 39
Test3: 29
@debian:~/work_project/tst32$ ./project1
Test1: 33
Test2: 37
Test3: 21
@debian:~/work_project/tst32$ ./project1
Test1: 29
Test2: 33
Test3: 31

упс... лазарь 1.6...

в коде подправил: uses sysutils; и GetTickCount Т.е. виндовые вещи...

Способ замера времени для Линукса допустимый?
э..э: пардон за тупость... Чё..ё? :)

п.с.
В общем итоге... Пару десятков раз запустил... Test3 - рулит.... Остальное скачет до 50... Возможно из-за лазаря и фпс. Возможно система кривая. Возможно еще что то. Вывод один: скользкая тема...
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение bormant » 07.02.2016 00:55:16

Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 07.02.2016 01:11:42

Как я понял должно быть нечто такое:
Код: Выделить всё
function Clock: Int64;
var Dummy: tms;
begin
Clock := FpTimes(Dummy);
end;

var t: Int64;
begin
  Write('Test1: ');
  t:= Clock;//GetTickCount;
  Test1;
  t:=Clock-t;
  WriteLn(t);
  Write('Test2: ');
  t:=Clock; Test2;
  t:=Clock-t;
  WriteLn(t);
  Write('Test3: ');
  t:=Clock; Test3;
  t:=Clock-t;
  WriteLn(t);
end.


если да, то:
Код: Выделить всё
@debian:~/work_project/tst32$ ./project1
Test1: 6
Test2: 5
Test3: 6
@debian:~/work_project/tst32$ ./project1
Test1: 6
Test2: 5
Test3: 4
@debian:~/work_project/tst32$ ./project1
Test1: 7
Test2: 7
Test3: 11
@debian:~/work_project/tst32$ ./project1
Test1: 5
Test2: 8
Test3: 5
@debian:~/work_project/tst32$ ./project1
Test1: 3
Test2: 3
Test3: 3
@debian:~/work_project/tst32$ ./project1
Test1: 2
Test2: 3
Test3: 3
@debian:~/work_project/tst32$ ./project1
Test1: 4
Test2: 4
Test3: 3


увеличил на порядок count. Вывод:
Код: Выделить всё
Test1: 28
Test2: 28
Test3: 24
@debian:~/work_project/tst32$ ./project1
Test1: 29
Test2: 29
Test3: 22
@debian:~/work_project/tst32$ ./project1
Test1: 32
Test2: 34
Test3: 24
@debian:~/work_project/tst32$ ./project1
Test1: 31
Test2: 34
Test3: 27
@debian:~/work_project/tst32$ ./project1
Test1: 30
Test2: 32
Test3: 24
@debian:~/work_project/tst32$ ./project1
Test1: 31
Test2: 38
Test3: 25
@debian:~/work_project/tst32$ ./project1
Test1: 26
Test2: 29
Test3: 23
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Найти новичку работу на Паскале в 2016 году

Сообщение bormant » 07.02.2016 01:44:16

FPC-3.0.0 под Wndows дает картинку от
Код: Выделить всё
Test1: 31
Test2: 78
Test3: 47
до
Код: Выделить всё
Test1: 46
Test2: 79
Test3: 46
В 3.0 общее время увеличилось из-за вызова fpc_ansistr_assign вместо FPC_ANSISTR_DECR_REF в 2.4.6.
Результаты Test3 улучшились за счет оптимизации сохранения/восстановления регистров PUSH/POP против mov ebx,dword ptr [ebp-...].

Это что бросилось в глаза при беглом просмотре ассемблерного листинга.

В целом есть пища для размышления.
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Найти новичку работу на Паскале в 2016 году

Сообщение pupsik » 07.02.2016 02:20:11

хм..м не сильно то и "улучшились". Если посмотреть что вы ранее давали...

поднял Count=100000000 :twisted:
результат:
Код: Выделить всё
Test1: 262
Test2: 275
Test3: 216
@debian:~/work_project/tst32$ ./project1
Test1: 262
Test2: 274
Test3: 218
@debian:~/work_project/tst32$ ./project1
Test1: 262
Test2: 275
Test3: 217
@debian:~/work_project/tst32$ ./project1
Test1: 262
Test2: 275
Test3: 218


В лине как то по другому.... По крайней мере под жтк....
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Пред.След.

Вернуться в Помощь за вознаграждение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru