JavaRush /Java Blogu /Random-AZ /Tərtibatçı vəzifəsi üçün tipik test tapşırığının təhlili
Uniges
Səviyyə
Санкт-Петербург

Tərtibatçı vəzifəsi üçün tipik test tapşırığının təhlili

Qrupda dərc edilmişdir
Bu gün stajyer developer vəzifəsi üçün texniki şərtlərə baxmaq istərdim. Bir vaxtlar bunu yazmışdım: Bu mövzuda öz fikirlərimi bölüşmək istəyirəm.İş taparkən gələcəkdə onları nələrin gözlədiyi barədə fikir sahibi olmaq yeni başlayanlar üçün faydalı olacaq.
Tərtibatçı vəzifəsi üçün tipik test tapşırığının təhlili - 1
Vakansiya aşağıdakı kimidir: Təcrübəçi PostgreSQL developeri 30.000 rubldan. fərdi gəlir vergisi tutulmazdan əvvəl Business Technologies MMC Sankt-Peterburq, Kolomyazhsky Prospekt, 33k2 Biznes Texnologiyaları Tələb olunan iş təcrübəsi: tələb olunmur
  • Tam iş günü, tam iş günü
Məsuliyyətlər:
  • Tərtibatçının rəhbərliyi altında aşağı mürəkkəblikli tapşırıqların yerinə yetirilməsi
  • Kvalifikasiyaların daimi artımı
Tələblər:
  • Strukturlaşdırılmış proqramlaşdırmanın prinsiplərini və əlaqəli verilənlər bazaları nəzəriyyəsini başa düşmək.
  • Məsuliyyət, müstəqillik, təşəbbüskarlıq
  • Ünsiyyət bacarığı, komandada işləmək bacarığı və istəyi
  • Yüksək öyrənmə qabiliyyəti
Arzu olunan:
  • Bilik
  • Sql;
  • Pl\sql;
  • Pl\pgSql;
  • C++, java, paskal.
Şərtlər:
  • Stabil, dinamik inkişaf edən şirkətdə işləmək
  • Rahat iş şəraiti
  • Formalizm və bürokratiyanın olmaması
  • Peşəkar və karyera yüksəlişi üçün geniş imkanlar
  • Əmək haqqı müsahibənin nəticələrinə görə
  • Əmək Məcəlləsinə uyğun qeydiyyat, əmək qanunvericiliyinə uyğun olaraq ödənişli məzuniyyət.
  • Məktubun başlığında iş kodunu göstərin: Project04
Test tapşırığının təsviri: Test abituriyentin vaxtını müsahibəyə sərf etməyə dəyər olub olmadığını özü müəyyənləşdirməsi üçün özünə nəzarət üçün nəzərdə tutulub. Pseudocode Bu psevdokod alqoritmləri təsvir etmək üçün istifadə olunur.
  1. Sol kənardan girinti yuva səviyyəsini göstərir.
  2. Döngülər while, for, repeat və şərti konstruksiyalar Paskalda olduğu kimi eyni məna daşıyır.
  3. “--” simvolu şərhi göstərir
  4. “:=” simvolu tapşırığı bildirir
  5. Başqa cür göstərilmədiyi təqdirdə dəyişənlər prosedur üçün lokaldır
  6. Massiv indeksi kvadrat mötərizədə yazılır, A[i] konstruksiyası A massivindəki i elementini bildirir.
  7. Bir neçə sahədən ibarət olan və ya bir neçə atributlu obyektlərdən istifadə etmək mümkündür; sahənin dəyərləri FieldName[ObjectName] kimi yazılır.

    Məsələn, A massivinin uzunluğu Length[A] kimi yazılır; kvadrat mötərizələrin nə demək istədiyi kontekstlə müəyyən edilir (massivi bildirən dəyişən və ya obyekt onun tərkib məlumatlarına göstəricidir). İstənilən f sahəsi üçün y:=x təyin edildikdən sonra f[y]=f[x] bərabərliyi təmin ediləcək; Atributun funksiya, dəyişən və ya başqa bir şey olub-olmadığını müəyyən etmək kontekstlə həyata keçirilir.

  8. Göstərici heç bir obyektə işarə etməyən NIL xüsusi dəyərinə malik ola bilər.
  9. Parametrlər qiymətə görə ötürülür: çağırılan prosedur parametrlərin öz nüsxəsini alır; prosedur daxilindəki parametrlərdə edilən dəyişikliklər xaricdən görünmür. Obyektləri ötürərkən həmin obyektə uyğun olan verilənlərin göstəricisi kopyalanır.
Problem A elementlərinin massivini çeşidləyən funksiya: Sort(A,p,r) 1 əgər p < r 2 isə q := round_half_down((p+r)/2) 3 Sort(A,p,q) 4 Sort (A,q +1,r) 5 Birləşdirmə(A,p,q,r) Massiv nümunəsi: A = (5,2,4,6,1,3,2,6) İcra nümunəsi: Sort(A,1) ,length[A ]) Tələb olunur: Merge(A,p,q,r) funksiyası üçün alqoritmi sizə uyğun olan istənilən dildə, əlavə yaddaşdan istifadə etməklə və ya istifadə etmədən, hansını həyata keçirmək üçün daha sürətli və ya daha əlverişlidirsə, hazırlayın. . Müvəffəqiyyət qazansanız, sizi əlavə sınaq üçün salamlamaqdan məmnun olarıq. Cavabım: Pseudocode misalında təsvir edilən alqoritm Merge çeşidləmə alqoritmidir. Funksiyamızın əsas vəzifəsi düzülməmiş ədədlər massivini çeşidləməkdir: məsələn, artan qaydada. Problem alt tapşırıqlara bölünür: massivdən gələn ədədlərin ardıcıllığı massiv təkqiymətli olana qədər daha kiçik massivlərə bölünür, massivlərin elementləri müqayisə edilir, onlar dəyişdirilir (kiçik, böyük, indekslə) və birləşdirilir.
Tərtibatçı vəzifəsi üçün tipik test tapşırığının təhlili - 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
İş kodu ilə Ideone ilə əlaqə: BURADA Tapşırıq uğurla başa çatdı, bundan sonra məni müsahibəyə dəvət etdilər, burada müsahibə əvəzinə başqa bir oxşar tapşırıqlar toplusunu mənə atdılar və mənə qələm verdilər və iki saat qaldılar. 2 ədəd A4 kağızı. Onlar yarpaqlara baxmadan götürüb, zəng edəcəklərini dedilər. Belə bir əyləncədən aldığım həzz senzuralı sözlərlə ifadə edilə bilməz. Ancaq, ən azı, bu, bir çoxlarının səyahətlərinin əvvəlində qarşılaşacağı sərt reallıqdır.
Разбор типичного тестового задания на позицию разработчика - 4
Sizə səmimi qəlbdən maraqlı və konstruktiv müsahibələr arzulayıram. İşəgötürəninizi ağıllı seçin. Hər vaxtınız xeyir!) P.S.: 2018-ci ilin aprel ayı üçün (Sankt-Peterburq) işə götürən şirkətlərlə bağlı icmalıma BURADAN baxa bilərsiniz
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION