Ви тут: Головна | Алоритми | Лабораторні роботи | ЛР 1

Гуртом і батька легше бити

або
дещиця колективного досвіду колективної розробки ПЗ

 

"У нашого бігбоса
завжди дурні вопроси..."

В. Іпсаєнко, Думки вголос в курилці.

 

"Дівчинко-краса!
Чи ти не з ІПСА?"

В. Іпсаєнко, до Лесі, подумки.

Леся Вовчик

Лабораторні роботи

  1. Лабораторна робота № 1.
    Гуртом і батька легше бити...

  2. Лабораторна робота № 2.
    По порядку номєров становісь!

  3. Лабораторна робота № 3.
    Архімед, розумом Зевсу подібний...

  4. Лабораторна робота № 4.
    Крик мандрагори

Тарас Іпсаєв, колишній випускник Інституту прикладного системного аналізу, а тепер головний менеджер проекту "Geometry", якого співробітники заочі називали "Big Boss", сидів у своєму кабінеті за столом, розлягшись у фотелі.

— Коли ТИ будеш головним менеджером проекту, то ТИ будеш вирішувати, як саме визначати пряму лінію. А допоки Я тут начальник, Я приймаю рішення. Цей проект було розпочато, коли ти ще тут не працював. І взагалі, у тебе — випробувальний термін. І конкретне завдання — написати конкретну функцію для нашої бібліотеки. Отож, іди і працюй.

Вовка Іпсаєнко, студент ННК "ІПСА", вискочив з кабінету боса, мов обпечений. Два тижні він ретельно писав програму, яку йому доручили як випробувальне завдання. І тут такий ляпас. Фіаско.

З іншого боку, випробувального терміну — місяць. Ще зо два тижні є. Проковтнути сльози, підтягнути штани, пригадати, що там верз бігбос у педагогічному екстазі, і справді, йти і працювати.

Пару років тому Вовчик, вступивши до вишу з невимовною назвою (глибоко втягли повітря) Навчально-науковий комплекс «Інститут прикладного системного аналізу» Міністерства освіти та науки України і Національної академії наук України в структурі Національного технічного університета України «Київський політехнічний інститут» (фуф, можна видихнути), здійснив, начебто, свою мрію. У школі йому математика давалася легко, а у комп'ютерному класі він просто "пропадав", допоки не вмовив мати купити йому до дня народження компа, що його вчасно продавав один з паралельного класу. Мати зі своїм братом дядьком Семеном скинулися грошима, "щоби дитині програмування не шкодило вчитися". Вчитися комп допоміг не сильно, ба, навіть завадив, бо Вовчик тепер сидів за машиною вдома навіть більше, ніж до того у шкільному класі.

Тож питання "куди вступати" стояло у форматі "куди саме вступати" — був ще факультет кібернетики Київського університету (але це сильно круто), був у них в райцентрі т. зв. Міжнародний університет права, лінгвістики, менеджменту та інформатики, але платний, був ще ФІОТ у КПІ, але коли настав час прийняття рішення, Вовчикова мати Ганна Володимирівна завела його саме до ІПСА. Хоч самі батьки тут не вчилися, але дядько Семен, аналітик відділу системного аналізу одного з відділень одного з банків (не скажу, якого, бо буде реклама), сказав "На ІПСА". За що ми йому і вдячні. А ще — двом нашим випускникам, що працюють в Семена Володимировича у відділі, і які теж доклали своєю роботою дещицю до рішення Іпсаєнків щодо вибору вишу для сина/племінника.

Оселившись у гуртожитку № 14, Вовчик занурився у навчання і ні про що таке не думав. Оповідки старших про сесії, про матан, функан та дискретку в принципі стимулюють... Відмінником наш герой не був, але перші сесії якось склалися, чого і решті читачів бажаємо.

Мати якісь гроші йому надсилала, небагато, але прожити вистачало. По суботах Вовчик навіть ходив з хлопцями на пиво разів кілька. Але пиво йому не подобалося, а на рано ще й голова була, мов та довбня... Тож пивом фестивалити він покинув, і ніщо не віщувало наґлих змін у житті.

Але... Завжди буває "але". Жила собі людина, вчилася, писала програми, контрольні, курсові. Ну й хай би собі жила, маму радувала.

Але... Тут на обрії з'явилася Леся. Ні, вона, власне, не з'явилася, вона так само жила в общазі, даруйте, в гуртожитку, тільки поверхом нижче. І навчалася весь цей час на "сусідньому" потоці. І, певно, Вовчик її бачив майже щодня протягом місяців і років. Бачив, але минав. А тут... зайшов до студради надрукувати пару сторінок до звіту з ЛР, і раптом ПОБАЧИВ її. І все, пропав козак, за понюшку табаки пропав!

* * *

Ні, не подумайте нічого. Леся — дівчинка хороша, і Вовчик — таки козак. Все у них добре, порадіймо за хороших людей.

Так ніхто не кохав. Через тисячі літ
лиш приходить подібне кохання...
В день такий розквітає весна на землі,
і земля убирається зрання...

Дише тихо і легко в синяву вона,
простирає до зір свої руки...
В день такий на землі розквітає весна
і тремтить од солодкої муки...

Зайві клопоти — зайві гроші. Ні, неправильно. Клопоти геть не зайві. Коли кохаєш, то думка про зайвість будь-чого, що ти ще можеш зробити для Неї, здається смертельно образливою, єретичною.

Я для неї зірву Оріон золотий,
я — поет робітничої лані...

Але Вовчик — не Сосюра, щоби сузір'я з неба зривати. І коли ти не один, а поруч ще й Леся, то грошей якось все'дно утіка більше. А гроші ж теж, власне, не зайві.

Все це була приказка, а казка ще попереду. В матері просити грошей на дівчину, звісно, сором. Тож Вовчик, як нормальний мужчина, вирішив, що треба іти на роботу. Он на п'ятому курсі, здається, взагалі всі працюють і нічого (цікаво, а коли ж вони, тіпа, вчаться?).

Ось так і опинився наш герой перед ясні очі Тараса Іпсаєва, свого теперішнього бігбоса, колишнього сусіда по поверху у гуртожитку (тільки Вовчик тоді ледве на перший курс вступив, а Тарас вже диплом захищав). Його взяли на випробувальний термін на місяць, віддавши йому перевагу перед ще півдесятком претендентів. Конкуренти, очікуючи черги перед співбесідою, виглядали крутими "кулхацкерами", і Вовчик спочатку був злякався. Але йому через день перетелефонували ейчари (HR) і запросили на наступну співбесіду, до менеджера проекту.

Довелося написати пару програм на папері. Останнім запитанням було: "У компонентів спискового типу у системах Дельфі, Білдер тощо, реалізовано метод .Sort(). А яким методом там сортуються елементи?" На щастя, Вовчик, коли треба було реалізовувати методи сортування на лабках з програмування, погуууглив трохи (ні, трохи більше, от так: "погууууууууууууглив") і надибав вихідний текст на Паскалі методу Sort з Дельфі. Його відповідь виявилася вирішальною. Як потім казав Тарас, серед претендентів на вакансію кого тільки не буває... І економісти, і перекладачі, і механіки. А тут людина на конкретні запитання дає конкретні відповіді.

Перше завдання здавалося простим. Група розробляла бібліотеку на тему аналітичної геометрії. Власне, бібліотека вже існувала, основні рішення вже було прийнято бігбосом та іншими "старими". А Вовцеві доручили написати ще одну функцію для бібліотеки.

А тепер — перше завдання квесту. Ви — Вовчик, і заради Лесі Ви спроможні на багато чого. Доведіть це. Або — Ви Леся, і хоч Вовко хлопець хороший, але для Вас фінансова незалежність — не пусте слово. Вас прийнято на роботу і доручено перше відповідальне завдання. Вам дано конкретну задачу з аналітичної геометрії. Насправді завдання звучить так: "Написати для бібліотеки Geometry фунцію (процедуру, метод певного об'єкту, конструктор тощо, залежно від конкретної задачі, надалі — модуль), яка буде розв'язувати БУДЬ-ЯКУ задачу такого типу, незалежно від конкретних чисел, що стоять в умові задачі для прикладу.

Позаяк бігбос бачить себе якщо не Біллом Г., то вже Стівом В. точно, то для експансії на ринок прийнято рішення розробляти одразу декілька версій бібліотеки Geometry. Виберіть той, у реалізації якого Ви будете приймати участь:

  1. Процедурно-функціональний варіант без об'єктів (цур їм!). Мова — Паскаль.
  2. Структурно-функціональний варіант без об'єктів ("Ето ми нє проходілі"! ООП буде на третьому курсі!). Мова — С++.
  3. Об'єктно-орієнтований варіант мовою Паскаль (Проходили, проходили! І дві лабки на об'єкти робили).
  4. Українці — геть усі — пишуть в класах і на Сі. І нехай собі москаль обира Турбо-Паскаль...
  5. Супермегапуперпроект "Пишемо CLR-програму: dll-ку на C# та/або на C++ під MS Visual Studio!"

Звіт має містити:

  1. Умову задачі та її аналітичний розв'язок у числах, як на першому курсі.
  2. Опис множини вхідних даних із вказівкою на заборонені точки.
  3. Опис множини вихідних даних із вказівкою на те, які є неможливими.
  4. Текст програми.
  5. Результати роботи програми:
    • з коректними даними;
    • з некоректними даними.

Mail-to: oselin@mmsa.ntu-kpi.kiev.ua
http://mmsa.ntu-kpi.kiev.ua/~oselin (KPI Intranet)
http://www.iasa.kiev.ua/~oselin
Copyright © Olexander Selin 2006 (web-design); Olexander Selin 2006 (content).