Бүгүн мен стажер-иштеп чыгуучу кызматына техникалык тапшырмаларды карагым келет. Бир жолу мен аны жазганмын: Мен бул маселе боюнча өз оюм менен бөлүшкүм келет.Бул жаңы баштагандарга жумуш табууда келечекте аларды эмне күтүп тургандыгы жөнүндө түшүнүккө ээ болуу пайдалуу болот.
Вакансия төмөнкүчө: PostgreSQL иштеп чыгуучу стажери 30 000 рубльдан. жеке киреше салыгын чегерүүгө чейин Бизнес Технологиялар ООО Санкт-Петербург, Коломяжский проспекти, 33k2 Бизнес технологиялар Талап кылынган иш тажрыйбасы: талап кылынbyte
Иш codeу менен Ideone менен байланышуу: БУЛ жерде тапшырма ийгorктүү аяктады, андан кийин мени интервьюга чакырышты, анда алар интервьюнун ордуна мага окшош тапшырмалардын дагы бир партиясын ыргытып, эки саатка кетип калышты. 2 даана А4 кагаз. Жалбырактарды карап туруп алып, кайра чалабыз дешти. Мындай эрмектен ырахат алганымды цензуралык сөз менен айтып жеткирүү мүмкүн эмес. Бирок, жок дегенде, бул көптөгөн адамдар сапарынын башында туш боло турган катаал чындык.
Кызыктуу жана конструктивдүү маектерди чын жүрөктөн каалайм. Жумуш берүүчүңүздү акылдуулук менен тандаңыз. Баары жакшы!) P.S.: 2018-жылдын апрель айындагы (Санкт-Петербург) жумуш берүүчү компаниялар тууралуу менин баяндамамды бул жерден көрсөңүз болот.
- Толук убакыт, толук убакыт
- Иштеп чыгуучунун жетекчorги астында татаалдыгы аз тапшырмаларды аткаруу
- Квалификациянын тынымсыз өсүшү
- Структураланган программалоонун принциптерин жана реляциялык маалымат базаларынын теориясын түшүнүү.
- Жоопкерчorк, ез алдынчалык, демилгелуулук
- Коммуникация жөндөмү, жөндөмү жана командада иштөө каалоосу
- Жогорку окуу жөндөмдүүлүгү
- Бorм
- Sql;
- Pl\sql;
- Pl\pgSql;
- C++, Java, Паскаль.
- Туруктуу, динамикалуу өнүгүп жаткан компанияда иштеңиз
- Ыңгайлуу иштөө шарттары
- Формализмдин жана бюрократизмдин жоктугу
- Кесиптик жана карьералык өсүү үчүн кеңири мүмкүнчүлүктөр
- Интервьюнун жыйынтыгы боюнча эмгек акы
- Эмгек codeексине ылайык каттоо, эмгек мыйзамдарына ылайык акы төлөнүүчү өргүү.
- Каттын баш жагында жумуш codeун көрсөтүңүз: Project04
- Сол четинен чегинүү уянын деңгээлин көрсөтөт.
- Циклдердин while, for, кайталоо жана шарттуу конструкциялары Паскальдагыдай эле мааниге ээ.
- "--" белгиси комментарийди билдирет
- “:=” белгиси тапшырманы билдирет
- Эгерде башкасы көрсөтүлбөсө, өзгөрмөлөр proceduresа үчүн жергorктүү болуп саналат
- Массивдин индекси чарчы кашаанын ичинде жазылат, A[i] конструкциясы А массивиндеги i элементин билдирет
-
Бир нече талаалардан турган же бир нече атрибуттарга ээ an objectтерди колдонсо болот, талаанын маанилери FieldName[ObjectName] катары жазылат.
Мисалы, А массивинин узундугу Length[A] катары жазылат; чарчы кашаалар эмнени билдирери контекст менен аныкталат (массивди билдирген өзгөрмө же an object анын түзүүчү маалыматтарынын көрсөткүчү). y:=x каалаган f талаасына ыйгарылгандан кийин f[y]=f[x] теңдиги аткарылат; Атрибут функция, өзгөрмө же башка нерсе экендигин аныктоо контекст боюнча жүргүзүлөт.
- Көрсөткүч эч кандай an objectти көрсөтпөгөн NIL өзгөчө мааниге ээ болушу мүмкүн.
- Параметрлер маани боюнча өткөрүлөт: чакырылган proceduresа параметрлердин өзүнүн көчүрмөсүн алат, proceduresанын ичиндеги параметрлердеги өзгөртүүлөр сырттан көрүнбөйт. Объекттерди өткөрүүдө ошол an objectке тиешелүү маалыматтарга көрсөткүч көчүрүлөт.
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;
}
}
GO TO FULL VERSION