Войти

Показать полную графическую версию : Интересная задача от HR


Zer0Dаy
05-02-2014, 21:28
Я студент, и подрабатываю админом в одной конторе.Работа временная, перспектив никаких да и задач чтобы повысить свой скилл тоже, я решил для интереса сходить и на собеседование в крупную фирму(софтверная фирма, (10 серваков: Windows Server AD, SQL Server, TFS, IIS, DNS150пк) зп от 60 и.т.д) Ну там помимо теории дали одну задачу, которую надо решить при помощи скрипта


Есть файл, представляющий колоду с 52 картами, по строке на карту. Нужно написать скрипт, умеющий выполнять нижеуказанные действия. Действие передается аргументом командной строки:
1) Перетасовать колоду - случайным образом перемешать строки в оригинальном файле
2) Раздать карты - скрипт принимает аргументами количество игроков и количество карт, получаемых каждым игроком; нужно убрать карты из оригинального файла и разместить в несколько файлов
3) Собрать карты обратно в колоду - скрипт принимает список файлов; нужно переместить карты в оригинальный файл (порядок карт не важен), файлы игроков удалить
Содержимое файла:
clubs ace
clubs 2
clubs 3
clubs 4
clubs 5
clubs 6
clubs 7
clubs 8
clubs 9
clubs 10
clubs jack
clubs queen
clubs king
diamonds ace
diamonds 2
diamonds 3
diamonds 4
diamonds 5
diamonds 6
diamonds 7
diamonds 8
diamonds 9
diamonds 10
diamonds jack
diamonds queen
diamonds king
hearts ace
hearts 2
hearts 3
hearts 4
hearts 5
hearts 6
hearts 7
hearts 8
hearts 9
hearts 10
hearts jack
hearts queen
hearts king
spades ace
spades 2
spades 3
spades 4
spades 5
spades 6
spades 7
spades 8
spades 9
spades 10
spades jack
spades queen
spades king





Я хочу слышать ваше мнение по поводу того какими знаниями нужно обладать чтобы решить эту задачу(я не прогер), и за какой срок самообучаясь их можно достичь?
Ну и вообще насколько эти знания могут пригодиться на практике?

Iska
05-02-2014, 21:44
дали одну задачу, которую надо решить при помощи скрипта »
Что конкретно подразумевается под «скриптом»: пакетный файл, KiXtart, WSH, AutoIt, PoSH или что-то совсем оригинальное?

Я хочу слышать ваше мнение по поводу того какими знаниями нужно обладать чтобы решить эту задачу(я не прогер), »
Знать язык, на котором будете писать.

и за какой срок самообучаясь их можно достичь? »
Целенаправленно, по восемь часов в день?! За пару-тройку дней. Писать скрипты Вы, конечно, не научитесь, но поставленную задачу решить сможете.

Ну и вообще насколько эти знания могут пригодиться на практике? »
Ни насколько.

Kazun
05-02-2014, 22:35
PowerShell:
1) Get-Random (Get-Content cards.txt) -Count (Get-Content cards.txt).Count | Out-File cards.txt
2)

Function Get-Cards ([int]$i,[int]$k,$file= "cards.txt") {
if($i*$k -le 52 -and $i*$k -ge 1) {
$cards = Get-Content $file
1..$i | Foreach {
Get-Random $cards -Count $k -OutVariable t | Out-File "$_.txt"
$cards = $cards | Where {$t -notcontains $_}
}
$cards | Out-File $file
}
}

Get-Cards -i 5 -k 7

3) Get-ChildItem *.txt -Exclude cards.txt | Foreach {Get-Content $_.FullName;Remove-Item $_.FullName} | Out-File cards.txt -Append

Foreigner
05-02-2014, 22:55
Перетасовать и сдать:

@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%i in (deck.txt) do set "c_!random!=%%i"
for /f "tokens=2,3 delims=_=" %%i in ('set c_') do (

set /a cnt+=1
set "card_!cnt!=%%j"

)


set /a alldeal=%1*%2

for /l %%i in (%1,-1,1) do (

for /l %%j in (%%i,%1,%alldeal%) do set "player_%%i_%%j=!card_%%j!"

)

for /l %%i in (1,1,%1) do (


echo player %%i
echo -----------
for /f "tokens=2 delims==" %%j in ('set player_%%i') do echo %%j
echo.

)

Вызывать:

deal.cmd 3 5

где первый аргумент (3) - кол-во игроков, второй (5) - по скольку карт

Zer0Dаy
08-02-2014, 06:07
Что конкретно подразумевается под «скриптом»: пакетный файл, KiXtart, WSH, AutoIt, PoSH или что-то совсем оригинальное? »

Так как вакансия для Вин админа, то я предполагаю, что имелся ввиду повершелл, или ВБскрипт.

Знать язык, на котором будете писать. »
Но разве язык не просто инструмент, например как я смогу написать такой скрипт не понимая его алгоритм ?(кстати какой алгоритм заложен в вашем скрипте?)

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

Iska
08-02-2014, 22:52
Но разве язык не просто инструмент, например как я смогу написать такой скрипт не понимая его алгоритм ?(кстати какой алгоритм заложен в вашем скрипте?) »
1. Разумеется, без наличия алгоритма знание языка не поможет.
2. Моих скриптов в этой теме нет.

Мне было бы интересно понять к чему относится это задание к программированию или администрированию »
По сути — ни к тому, ни к другому. Это скорее как олимпиадные задания для школьников — оно столь же далеко от мало-мальски реальных задач.

и является ли подобный уровень знаний того же Pshel обязательным при устройстве в более-менее солидную фирму »
Именно, как Вы выразились:
это все-таки блаж конкретного работодателя »

Zer0Dаy
12-02-2014, 23:06
1. Разумеется, без наличия алгоритма знание языка не поможет.
2. Моих скриптов в этой теме нет. »

Перепутал вас с Foreigner (запутала подпись) .И все же какой алгоритм используют эти скрипты?

Iska
12-02-2014, 23:35
запутала подпись »
3. У нас с коллегой Foreigner нет подписи ;).




© OSzone.net 2001-2012