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

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

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

Сообщение WAYFARER » 06.02.2016 10:40:38

stanilar писал(а):Под веб знают ПХП и НЕТ, Ява уже давно следует за дельфей, но оракел и андроид портят статистику. Все мои знакомые джависты давно с нее спрыгнули, несмотря на большое наличие вакансий за 150.

Тут не соглашусь. В серьезных больших проектах все еще лидирует Java, набирают обороты Ruby и Python (в основном Ruby on rails и django).
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 520
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

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

Сообщение pupsik » 06.02.2016 12:14:18

Мдя.. не прополз :)
Но:
Mirage
1.что то одно.... тут много факторов "сработало" у меня. Больше привычка избыточности вывода.
2 Гуи, возможно, избыточно. Все программы пишутся используя гуи. Так же я "показал" что могу не только консольки писать. А и верно (?) подбирать необходимый набор компонентов.
3. case. Хм... Покажите свою реализацию.
4. Как я понимаю - оптимизация. Что, кажись, не было в условиях.

resident
1. хм.. 4 символа в секунду.... Я знаю ребят которые могут быстрее и не смотря на клаву. Решается довольно таки просто: есть программы для развития скорости. Плюс маленький опыт рерайта делает свое.
2. хм.. выложите свой вариант.

Критика - хорошее дело. Но критика без кода - простой бзик. Т.е. хорошо но не очень.

По поводу темы вопроса. Вот мне интересно: 1$ в час - это как можно? С одной стороны, если по курсу, вполне нормально для некоторых стран. А вот с другой. Получается: что полы мыть, что программу написать одна фигня.

п.с.
В-четвертых в условиях стоит использовать else и, соот-но, поменять порядок.
попробовал.... "скорость" падает. Может что то не то делаю?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 17:20:54

pupsik писал(а):Я знаю ребят которые могут быстрее и не смотря на клаву. Решается довольно таки просто: есть программы для развития скорости.

Да я не про скорость набора, а про скорость придумывания кода.

pupsik писал(а):Покажите свою реализацию

Эх, меня б уже наверное выгнали под конец рабочего дня. :oops:
Два с половиной часа на вторую задачу, первую смысл копировать.
Взял URL данной страницы и захотел выцепить все вхождения от "=" до "&".
Сначала мучился с ошибкой, Hellow World не запускался. :mrgreen:
Через двадцать минут, осточертело - нашел ответ в инете, что надо галочку снять в параметрах проекта. Я как-то давно пробовал консоль, но ради прикола и подзабыл.
Потом была еще коварность консоли, нужно подключить SysUtils для работы IntToStr. А чтобы это узнать пришлось создать графическое приложение и посмотреть где эта функция находится. Вот и консоль - пол часа в трубу.
Потом кое как сделал и ради теста набил белиберды.
И тест не заработал, т.к. два случая не были учтены
1) Что порядок следования "=" и "&" может быть изменен
2) Что может быть будет серия нескольких "=".

Добавлено спустя 13 минут 14 секунд:
pupsik писал(а):Вот мне интересно: 1$ в час - это как можно? С одной стороны, если по курсу, вполне нормально для некоторых стран. А вот с другой. Получается: что полы мыть, что программу написать одна фигня.

Фриланс?
У меня знакомый работает ночным сторожем. Пришел, открыл ноут, закрыл, поспал и домой. Почему бы и не подработать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

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

Сообщение pupsik » 06.02.2016 18:04:54

а про скорость придумывания кода.
а мысли ограничены как то? Набор - да. Много факторов влияет.
У меня знакомый работает ночным сторожем.
Есть некоторые факторы не позволяющие такое искать.

В вашем коде есть нюансы. Но он не относится к задаче FizzBuzz.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 18:56:29

pupsik писал(а):Но он не относится к задаче FizzBuzz.

Код: Выделить всё
program Project1;

uses SysUtils;

var
  i: integer;
  s: string;
begin

for i := 1 to 100 do
  begin
    s := '';
    if (i mod 3) = 0 then s := 'Fizz';
    if (i mod 5) = 0 then s := s + 'Buzz';
    if s = '' then s := IntToStr(i);
    WriteLn(s);
  end;
ReadLn;

end.


Добавлено спустя 10 минут 6 секунд:
Mirage писал(а):В-четвертых в условиях стоит использовать else

Смысл else здесь в чем?
Вроде скорость вывода на экран намного медленней любой дополнительной проверки при отсутствии else в данной задаче.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

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

Сообщение Mirage » 06.02.2016 19:10:43

resident писал(а):program Project1;


Вот что-то такое простенькое обычно и хотят.

resident писал(а):Это вселяет надежду. А по SQL что-нить спрашиваете?


Нет, но не мешало бы.

По задаче с урлом - это слишком сложно. Я обычно прошу написать функцию, отвечающую на вопрос, присутствует ли в урле параметр с заданным именем.

Мне как-то задали такую задачку:
Даны N символов - (A, B, C,...)
Надо вывести все возможные множества из этих символов.
Т.е. для A и B
это будут [A, B, AB]
Надеюсь, не переврал.

Увидев рабочее решение, очень обрадовались и сказали, что обычно ерунду пишут..

Но, на мой взгляд, это сложновато для собеса и слишком просто для тестового на дом.
Да и задачи там подобные не планировались.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

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

resident :D
Стандартный вариант. Просто и по учебнику.

А теперь я не понял "юмор". Я убрал визуальщину и вывод. Просто 2 цикла.... У меня странность, а у вас?
Да... второй чутка больше. Может я время не так меряю? :?

п.с.
А задача с юрл - "Взял URL данной страницы и захотел выцепить все вхождения от "=" до "&"." ????
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 20:05:30

Mirage писал(а):Даны N символов - (A, B, C,...)
Надо вывести все возможные множества из этих символов.
Т.е. для A и B
это будут [A, B, AB]

Код: Выделить всё
program project1;

var
  Arr: array [0..5] of Char = ('A','B','C','D','E','F');
  i, j: integer;
  s: string;

function Comb(const i: integer; const depth: integer): string;
  begin
    if i < depth then exit else
      if i = 0 then
        Result := Arr[i] else
        Result := Comb(i - 1, depth) + Arr[i];
  end;

begin
  for i := 0 to pred(Length(Arr)) do
    for j := 0 to pred(Length(Arr)) do begin
      s := Comb(i, j);
      if s <> '' then WriteLn(s);
    end;
  ReadLn;
end.


Добавлено спустя 1 минуту 29 секунд:
Mirage писал(а):присутствует ли в урле параметр с заданным именем

Функция Pos? :mrgreen:

Добавлено спустя 15 минут 14 секунд:
pupsik писал(а):У меня странность, а у вас?

А циклы до скольких считают?
Код: Выделить всё
for i := 1 to 10000 do   
...
for tmp_i := 0 to 99999 do
...

pupsik писал(а):Да... второй чутка больше.

Вы о чем? Поставил одинаковое количество, ваш быстрее. Это вроде вроде логично, уже обсуждали, что для строк Паскаль - тормоз. А у меня там сложение строк. Может из-за этого?

pupsik писал(а):А задача с юрл

Так на предыдущей странице
viewtopic.php?f=43&t=10921&start=15#p93263

Добавлено спустя 7 минут 55 секунд:
pupsik
А вы вроде вывод чисел (которые не физ и не буз) забыли в своей функции?
case по новому:
Код: Выделить всё
fnoFizzBuzz   : tmp_s := inttostr(tmp_i + 1); 

И все равно ваш быстрей на 2.2% :)

Добавлено спустя 21 минуту 5 секунд:
pupsik писал(а):Может я время не так меряю?

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

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

Сообщение Mirage » 06.02.2016 20:57:46

resident писал(а):program project1;


Что-то не то оно выдает. Много повторяющихся результатов и далеко не все варианты.

resident писал(а):Функция Pos?


В общем-то да. Несколько раз. :)
Но не все даже берутся.

resident писал(а):И все равно ваш быстрей на 2.2%


Шо вы там меряете, ведь все время там уходит на вывод?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

Сообщение pupsik » 06.02.2016 21:10:32

resident я убрал визуальный вывод. Оставил цикл. Единственное что было лишним
Код: Выделить всё
{  if (a <> 0) and (b <> 0) then
    result := fnoFizzBuzz; }
ну..у прогнал я данный момент. Ведь result := fnoFizzBuzz; :cry:

"А вы вроде вывод чисел" ..., а вот это что?
Код: Выделить всё
    tmp_s := '';
    case Check_old(tmp_i + 1) of
      fFizz         : tmp_s := 'Fizz';
      fBuzz         : tmp_s := 'Buzz';
      fFizzBuzz     : tmp_s := 'FizzBuzz';
      fnoFizzBuzz   : tmp_s := '';
    end;

у вас это тройка if.... Т.е. работу цикла я оставил.

Странность в том что то что я набросал у меня от 0 до 1 "кидало". Гном 3. Лазарь 1.5, фпс 3... Поэтому и странно. А стандартный вариант (ваш) 1.6 - 3.3. Увеличив на порядок (мое) стало более одинаково. Иногда 9 выдавало (моё)... Т.е. 2.3-9...

п.с.
ваш быстрей на 2.2%
угу, зато не стандартно и поэтому я не прополз :)

что для строк Паскаль - тормоз
а я на си писал? :twisted:

А циклы до скольких считают?
10 тыс (стандарт) и 100 тыс (не стандарт)

Шо вы там меряете, ведь все время там уходит на вывод?
Вывод в label :)
Последний раз редактировалось pupsik 06.02.2016 21:14:53, всего редактировалось 1 раз.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 21:14:24

Mirage писал(а):Что-то не то оно выдает. Много повторяющихся результатов и далеко не все варианты.

Я что-то ни одного повторяющегося не вижу, вот может быть каких-то не хватает. Глаза разбегаются :)

Mirage писал(а):Шо вы там меряете, ведь все время там уходит на вывод?

pupsik закомментировал вывод.
Мои три if выполняются медленнее чем три if и case. Но у меня сложение строк и в одном if так же сравнение строки. Тормозит наверное на строках Lazarus.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

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

Сообщение pupsik » 06.02.2016 21:20:35

Не в if дело. Просто используются 2 разных подхода. Стандартный подход будет проигрывать по скорости. Зато выиграет при поступлении на работу. :wink:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 21:24:21

pupsik писал(а):"А вы вроде вывод чисел" ..., а вот это что?

Код: Выделить всё
tmp_s := '';
    case Check_old(tmp_i + 1) of
      fFizz         : tmp_s := 'Fizz';
      fBuzz         : tmp_s := 'Buzz';
      fFizzBuzz     : tmp_s := 'FizzBuzz';
      fnoFizzBuzz   : tmp_s := '';
    end;

Это ошибка. Не должно быть по условиям задачи вывода "ничего", а у вас как раз ничего выводит при fnoFizzBuzz.
Вместо "" при fnoFizzBuzz в переменную должно заносится IntToStr(tmp_i + 1) символьное значение цифры.
(Это я делаю в третьем if).

Добавлено спустя 21 минуту 25 секунд:
Даже и не знаю как объяснить проще: Свой IntToStr вы закомментировали, а мой почему-то нет.
На выходе строковая переменная tmp_s ваша и моя s должны быть одинаковыми.
Моя соответствует условиям задачи, а ваша нет. У моей при ни физ ни буз в значении цифра IntToStr(i), а у вас пустышка "".

Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz»


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

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

Сообщение pupsik » 06.02.2016 21:47:01

Это ошибка.
хм.. из-за этого он, зараза, медленнее стандарта работает?
Согласен: ткнули носом... Забыл я этот нюанс.
п.с.
Кошмар просто какой то. Кода больше, а работает быстрее.
По поводу юрл. Там конечный автомат применить надо. Будет куда быстрее работать.

Да: мой вывод избыточен.. И не стандартен. И..и? Т.е. вы считаете что:
Код: Выделить всё
    case Check_old(tmp_i + 1) of
      fFizz         : tmp_s := 'Fizz';
      fBuzz         : tmp_s := 'Buzz';
      fFizzBuzz     : tmp_s := 'FizzBuzz';
      fnoFizzBuzz   : tmp_s := inttostr(tmp_i + 1) ;
    end;
    WriteLn(tmp_s);

ухудшит работу программы?
Так же было странное замечание: поменять местами и else добавить... Вот это как раз и уменьшит скорость работы (последнее). А первое: если сменить слагаемое сумма изменится?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось pupsik 06.02.2016 22:02:13, всего редактировалось 1 раз.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение resident » 06.02.2016 22:00:26

pupsik писал(а):ухудшит работу программы?

Кхе, как понять ухудшит? Ответ будет соответствовать условию задачи.
Тест на скорость покажет почти одинаковое время. Разница времени будет всего 2%, а не на порядок 1000% :)
Эта функция получается - самая медленная часть кода.

Добавлено спустя 18 минут 57 секунд:
pupsik писал(а):По поводу юрл. Там конечный автомат применить надо. Будет куда быстрее работать.

Ок

pupsik писал(а):Так же было странное замечание: поменять местами и else добавить... Вот это как раз и уменьшит скорость работы (последнее)

Вроде время не изменилось.
Код: Выделить всё
    case Check_old(tmp_i + 1) of
      fnoFizzBuzz   : tmp_s := inttostr(tmp_i + 1);
      fFizz         : tmp_s := 'Fizz';
      fBuzz         : tmp_s := 'Buzz';
      else            tmp_s := 'FizzBuzz';
    end;   


pupsik писал(а):А первое: если сменить слагаемое сумма изменится?

Вы о чем? :)

з.ы.
Код: Выделить всё
unit u_fizzbuzz;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Windows;

type
   rez = (fFizz, fBuzz, fFizzBuzz, fnoFizzBuzz);

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function Check_old(a_value : integer) : rez;
var
  a, b, c : 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;
{  if (a <> 0) and (b <> 0) then
    result := fnoFizzBuzz; }
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  s : string;
  t : integer;
begin
  t := Windows.GetTickCount;;
  for i := 1 to 1000000 do
    begin
      s := '';
      if (i mod 3) = 0 then s := 'Fizz';
      if (i mod 5) = 0 then s := s + 'Buzz';
      if s = '' then s := IntToStr(i);
//      WriteLn(s);
    end;
  t := Windows.GetTickCount - t;
  Label1.Caption := FloatToStr(t);
  Application.ProcessMessages;
//
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  tmp_i : integer;
  tmp_s : string;
  t : integer;
begin
  t := Windows.GetTickCount;;
  for tmp_i := 0 to 1000000 do
  begin
    tmp_s := '';
    case Check_old(tmp_i + 1) of
      fFizz         : tmp_s := 'Fizz';
      fBuzz         : tmp_s := 'Buzz';
      fFizzBuzz     : tmp_s := 'FizzBuzz';
      fnoFizzBuzz   : tmp_s := inttostr(tmp_i + 1);
    end;
//    WriteLn(inttostr(tmp_i + 1) + ' - ' + tmp_s);
  end;
  t := Windows.GetTickCount - t;
  Label2.Caption := FloatToStr(t);
  Application.ProcessMessages;
end;

end.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Пред.След.

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

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

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

Рейтинг@Mail.ru