JavaRush /Java блогы /Random-KK /Әзірлеуші лауазымына арналған типтік тест тапсырмасын тал...
Uniges
Деңгей
Санкт-Петербург

Әзірлеуші лауазымына арналған типтік тест тапсырмасын талдау

Топта жарияланған
Бүгін мен интерн әзірлеуші ​​лауазымына арналған техникалық тапсырманы қарастырғым келеді. Бір кездері мен оны жаздым: Мен осы мәселе бойынша өз ойымды бөліскім келеді. Жаңадан бастаушыларға жұмыс табу кезінде болашақта оларды не күтіп тұрғаны туралы түсінік болуы пайдалы болады.
Әзірлеуші ​​лауазымына типтік тест тапсырмасын талдау – 1
Бос орын келесідей: 30 000 рубльден бастап PostgreSQL әзірлеушісінің стажеры . жеке табыс салығын шегергенге дейін Business Technologies ЖШҚ Санкт-Петербург, Коломяжский даңғылы, 33к2 Бизнес технологиялар Талап етілетін жұмыс тәжірибесі: талап етілмейді
  • Толық күн, толық уақыт
Міндеттері:
  • Әзірлеушінің басшылығымен күрделілігі төмен тапсырмаларды орындау
  • Біліктіліктің тұрақты өсуі
Талаптар:
  • Құрылымдық программалау принциптерін, реляциялық мәліметтер қоры теориясын түсіну.
  • Жауапкершілік, дербестік, бастамашылық
  • Қарым-қатынас дағдылары, командада жұмыс істеу қабілеті мен ұмтылысы
  • Оқу қабілеті жоғары
Қалаулы:
  • Білім
  • Sql;
  • Pl\sql;
  • Pl\pgSql;
  • C++, java, паскаль.
Шарттары:
  • Тұрақты, серпінді дамып келе жатқан компанияда жұмыс жасаңыз
  • Ыңғайлы жұмыс жағдайлары
  • Формализм мен бюрократизмнің болмауы
  • Кәсіби және мансаптық өсу үшін кең мүмкіндіктер
  • Әңгімелесу нәтижелері бойынша жалақы
  • Еңбек codeексіне сәйкес тіркелу, еңбек заңнамасына сәйкес ақылы еңбек демалысы.
  • Хаттың тақырыбына жұмыс codeын көрсетіңіз: Project04
Тест тапсырмасының сипаттамасы: Тест талапкердің әңгімелесуге өз уақытын жұмсауға тұрарлық екенін өзі анықтауы үшін өзін-өзі бақылауға арналған. Псевдоcode Бұл псевдоcode алгоритмдерді сипаттау үшін қолданылады.
  1. Сол жақтағы шегініс ұя салу деңгейін көрсетеді.
  2. while, for, қайталау және шартты құрылымдар Паскаль тіліндегідей мағынаға ие.
  3. “--” таңбасы түсініктемені білдіреді
  4. “:=” таңбасы тапсырманы білдіреді
  5. Айнымалылар, егер басқаша көрсетілмесе, proceduresа үшін жергілікті болып табылады
  6. Массив индексі шаршы жақшада жазылады, A[i] конструкциясы А массивіндегі i элементін білдіреді.
  7. Бірнеше өрістерден тұратын немесе бірнеше атрибуттары бар нысандарды пайдалануға болады, өріс мәндері FieldName[ObjectName] ретінде жазылады.

    Мысалы, А массивінің ұзындығы Length[A] түрінде жазылады; шаршы жақшалар нені білдіретіні контекст арқылы анықталады (массивті білдіретін айнымалы немесе нысан оның құрамдас деректерінің көрсеткіші). Кез келген f өрісі үшін y:=x тағайындағаннан кейін f[y]=f[x] теңдігі орындалады; Төлсипаттың функция, айнымалы немесе басқа кез келген нәрсе екенін анықтау контекст арқылы орындалады.

  8. Көрсеткіш NIL арнайы мәніне ие болуы мүмкін, ол ешқандай нысанды көрсетпейді.
  9. Параметрлер мән бойынша беріледі: шақырылатын proceduresа параметрлердің жеке көшірмесін алады; proceduresаның ішіндегі параметрлерге өзгертулер сырттан көрінбейді. Объектілерді беру кезінде сол нысанға сәйкес деректерге көрсеткіш көшіріледі.
Мәселе A элементтерінің массивін сұрыптайтын функция: Сұрыптау(A,p,r) 1, егер p < r 2 болса, q := round_half_down((p+r)/2) 3 Сұрыптау(A,p,q) 4 Сұрыптау (A,q +1,r) 5 Біріктіру(A,p,q,r) Жиым мысалы: A = (5,2,4,6,1,3,2,6) Орындау мысалы: Сұрыптау(A,1) ,length[A ]) Міндетті: Біріктіру(A,p,q,r) функциясының алгоритмін өзіңізге ыңғайлы кез келген тілде, қосымша жадты пайдаланбай немесе қолданбай, қайсысы жылдамырақ немесе іске асыруға ыңғайлы болса, әзірлеу. . Егер сіз сәтті өтсеңіз, біз сізді қосымша тестілеуге қуана қарсы аламыз. Менің жауабым: Pseudocode мысалында сипатталған алгоритм Біріктіру сұрыптау алгоритмі болып табылады. Біздің функциямыздың негізгі міндеті ретсіз сандар массивін сұрыптау болып табылады: мысалы, өсу ретімен. Мәселе ішкі тапсырмаларға бөлінеді: массив бір мәнді болғанша массивтегі сандар тізбегі кішірек массивтерге бөлінеді, массивтердің элементтері салыстырылады, олар ауыстырылады (үлкенірек, индекс бойынша) және біріктіріледі.
Әзірлеуші ​​лауазымына типтік тест тапсырмасын талдау – 2
public class Main {
    public static void main(String[] args) {
        int[] massif = {13, 3, 8, 1, 15, 2, 3, 7, 4};
        System.out.print("Массив до сортировки: ");
        for (int i = 0; i < massif.length; i++)
            System.out.print(massif[i] + " ");
        System.out.println("");
        massif = sort(massif);
        System.out.print("Массив после сортировки: ");
        for (int i = 0; i < massif.length; i++)
            System.out.print(massif[i] + " ");
    }

    public static int[] sort(int x[]) {
        if (x.length == 1) //Рекурсия идет до тех пор, пока массив делится
            return x;
        else {
            int half = (int) Math.floor(x.length / 2); //Разбиваем массив на 2 части
            int halfFirst[] = new int[half]; //1 часть, пустой массив
            int halfSecond[] = new int[x.length - half]; //2 часть, пустой массив
            for (int i = 0; i < x.length; i++) { //Заполняем новосозданные массивы значениями
                if (i < half)
                    halfFirst[i] = x[i];
                else
                    halfSecond[i - half] = x[i];
            }
            halfFirst = sort(halfFirst); //Рекурсия
            halfSecond = sort(halfSecond); //Рекурсия
            x = sortNext(halfFirst, halfSecond); //Отправляем заполненные значениями массивы в следующий метод
            return x;
        }
    }

    public static int[] sortNext(int x[], int y[]) {
        int c[] = new int [x.length + y.length]; //Создаем результирующий массив из суммы длин массивов из аргументов метода
        int a = 0, b = 0;
        for (int i = 0; i < x.length + y.length; i++) { //Сравниваем массивы, меняем местами элементы, заполняем новосозданный массив
            if (a == x.length) {
                c[i] = y[b];
                b++;
            }
            else if (b == y.length) {
                c[i] = x[a];
                a++;
            }
            else if (x[a] > y[b]) {
                c[i] = y[b];
                b++;
            }
            else {
                c[i] = x[a];
                a++;
            }
        }
        return c;
    }
}
Разбор типичного тестового задания на позицию разработчика - 3
Ideone-ге жұмыс codeы сілтемесі: МҰНДА тапсырма сәтті орындалды, содан кейін мені сұхбатқа шақырды, онда олар сұхбаттың орнына маған ұқсас тапсырмалардың тағы бір партиясын лақтырып, екі сағатқа қалдырып, қалам берді және 2 А4 қағаз парағы. Жапырақтарды оларға қарамай алып, қайта хабарласамыз деді. Менің мұндай ермектен ләззат алғанымды цензуралық сөзбен айтып жеткізу мүмкін емес. Бірақ, кем дегенде, бұл көптеген адамдар сапардың басында кездесетін қатал шындық.
Разбор типичного тестового задания на позицию разработчика - 4
Сізге шын жүректен қызықты және сындарлы сұхбаттар тілеймін. Жұмыс берушіңізді ақылмен таңдаңыз. Бар жақсылық!) P.S.: 2018 жылдың сәуір айындағы (Санкт-Петербор) жұмыс беруші компанияларға шолуымды ОСЫ ЖЕРДЕ көруге болады.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION