Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Интересная задача от HR (http://forum.oszone.net/showthread.php?t=277197)

Zer0Dаy 05-02-2014 21:28 2303541

Интересная задача от HR
 
Я студент, и подрабатываю админом в одной конторе.Работа временная, перспектив никаких да и задач чтобы повысить свой скилл тоже, я решил для интереса сходить и на собеседование в крупную фирму(софтверная фирма, (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 2303555

Цитата:

Цитата Zer0Dаy
дали одну задачу, которую надо решить при помощи скрипта »

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

Цитата:

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

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

Цитата:

Цитата Zer0Dаy
и за какой срок самообучаясь их можно достичь? »

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

Цитата:

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

Ни насколько.

Kazun 05-02-2014 22:35 2303599

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 2303623

Перетасовать и сдать:
Код:

@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 2305287

Цитата:

Цитата Iska
Что конкретно подразумевается под «скриптом»: пакетный файл, KiXtart, WSH, AutoIt, PoSH или что-то совсем оригинальное? »

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

Цитата:

Цитата Iska
Знать язык, на котором будете писать. »

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

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

Iska 08-02-2014 22:52 2305676

Цитата:

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

1. Разумеется, без наличия алгоритма знание языка не поможет.
2. Моих скриптов в этой теме нет.

Цитата:

Цитата Zer0Dаy
Мне было бы интересно понять к чему относится это задание к программированию или администрированию »

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

Цитата:

Цитата Zer0Dаy
и является ли подобный уровень знаний того же Pshel обязательным при устройстве в более-менее солидную фирму »

Именно, как Вы выразились:
Цитата:

Цитата Zer0Dаy
это все-таки блаж конкретного работодателя »


Zer0Dаy 12-02-2014 23:06 2308123

Цитата:

Цитата Iska
1. Разумеется, без наличия алгоритма знание языка не поможет.
2. Моих скриптов в этой теме нет. »

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

Iska 12-02-2014 23:35 2308132

Цитата:

Цитата Zer0Dаy
запутала подпись »

3. У нас с коллегой Foreigner нет подписи ;).


Время: 20:31.

Время: 20:31.
© OSzone.net 2001-