Истории с тегом: образование

Всего историй: 725

3668

Конца-края не видно

Лето третьего курса. Защита практики. Обсуждаем друг с другом, как да что. Один из сдающих объявил, что результаты подсчитывались у него пять суток. Стало интересно.

— Ну, там массив 65536×65536, всего восемь гигов, пришлось в файл загонять. А с файлами, сам понимаешь, работа небыстрая, особенно если нужно считать нужно переменную из самого конца.

— Ты про функцию fseek() когда-нибудь слышал? Не поверишь: можно перейти к заданному байту файла.

— Бли-и-ин!

Так программа и работала: для того, чтоб считать два байта из конца файла, она пережёвывала все восемь гигов.

3667

Два танкиста без собаки

В свое время писали мы с соавтором курсовую работу в форме танка для RoboCode — по-честному, с эвристическими алгоритмами и кучей различных хитростей. На сдачу пришли (получилось так) в камуфляже. Изложили комиссии суть проекта, продемонстрировали работу, провели показательный бой, в котором наш Т-256 благополучно раскатал нескольких ботов по карте. Вопрос у преподавателей был один:

— Ребята, на вас ещё военные не вышли?

3653

Контрольный разлом

Давным-давно я учился на первом курсе компьютерной инженерии. Нужно мне было написать контрольную, состоящую из ряда программ на Паскале. Но вот незадача: сестра пролила на клавиатуру чай, из-за чего половина кнопок перестала работать. Ладно бы буквы — не работали оба Shift и Ctrl. Контрольную сдавать завтра, рабочую клавиатуру взять уже негде (поздний вечер), но ни один символ в верхнем регистре не набрать, даже элементарное двоеточие. Как писать программу? Подумал я немного, вспомнил об ASCII-кодах и полночи, зажав Alt, перебирал цифровые клавиши.

Одну программу в процессе отладки случайно загнал в бесконечный цикл. А завершается он как? Правильно — Ctrl+Break. В сердцах стукнул по Reset и ушёл курить.

Закончилось всё благополучно: за ночь я выучил наизусть коды доброй половины символов, а контрольную сдал на отлично. Теперь я с грустью смотрю на людей, набирающих (с) вместо © или спрашивающих: «А где найти такой-то символ на клавиатуре?»

3627

Рыцарь удалённого образа

Мой младший брат двадцати лет от роду — разгильдяй, каких свет не видывал. Учится в универе с тройки на тройку, зато с информатики его выгнали, написав расписку об автомате — он в предмете шарит, хоть и гуманитарную специальность выбрал, и помогает всем подряд. Преподам это не понравилось, разумеется, и они его спровадили за ненадобностью присутствия.

В прошедшую сессию этот оболтус слонялся в перерыве между экзаменами в учебном корпусе, припёрся в компьютерный класс, сел на свободное место и давай чёртиков гонять. Рядом мадама благородная сидит: чего-то ковыряет в компьютере и делает брату замечание: «Чего фигнёй маешься? Не видишь — тут экзамен у заочников». Ну, он ей язык показал, интеллектуал фигов.

Заходит преподаватель, видимо, новенький, раз брательника сразу не выгнал. Начинает вызывать, спрашивать, потом подходить и проверять, чего там наваяли студенты. Дошла очередь до мадамы, препод её грузит и глазки строит — к пересдаче, видимо, склоняет. А студентка того стоит: и ростом удалась, и лицом. Подходит препод с ней к компьютеру, нажимает что-то, тыкает в монитор, говорит, что тут и тут неправильно: «Если за десять минут до конца экзамена успеешь — хорошо; если нет, то на пересдачу».

Девчонка — чуть не в слёзы. Малолетний родственник заявил соседке, что так людей угнетать нельзя, и вступился. Спорить не стал ни с кем — себе дороже, а вот удалённо залезть на соседний компьютер и поправить код в нескольких местах труда не составило. Экзамен был сдан, преподаватель скрежетал зубами и хотел у девушки хотя бы телефон стрельнуть, но не вышло. Брательник сам не догадался, но это полбеды.

Поведав мне эту историю, младшой двинул в магазин по продовольственной части. Вернулся только через два дня, когда его уже по милициям и больницам искать начали, с рукой в гипсе на перевязи. Его машина сбила, оказывается, несильно совсем: вроде как просто неудачно упал. За рулём сидела незадачливая ученица, которой он помог на экзамене. Она опять в слёзы: «Я только хотела поближе подъехать и спасибо сказать, а в результате покалечила».

Языкастый родственник сказал что-то вроде: «Раз такое дело, „спасибом“ не отделаешься — придётся тебе за меня замуж выходить».

Через месяц свадьба, раньше не получилось: жених в гипсе не канает. Сижу и думаю, чего дарить.

3626

Сигнал доставлен без потерь

Дело было ещё в студенческие годы, когда я учился на программиста. Дали нам задание на лабораторной работе написать программу, которая шифрует введенную строку и дешифрует её. Проект приложения: Edit1 — исходная строка; Edit2 — зашифрованная; Edit3 — расшифрованная.

С алгоритмом шифрования проблем не возникло: наша извращённая фантазия коверкала введённую строку и так, и эдак, но вот расшифровать обратно было труднее. Пара подходит к концу, а у нас при попытке дешифрования либо китайский текст, либо access violation. Пальцы бегают по клавиатуре, отладчик дымится. Как спасти положение? Мой товарищ хватает клавиатуру и в самый конец нашей процедуры пишет:

Edit3.text := Edit1.text;

Когда подошёл препод, мы, едва сдерживая смех, на два голоса рассказали, какой у нас замечательный алгоритм, который не под силу взломать даже КГБ. «Отлично»!

3619

Сбиты прицелы

Писали с однокурсниками в качестве дипломной работы «игры для программистов». Основная идея была заимствована из Robocode.

Вкратце: игроку необходимо написать класс на языке C++, унаследованный от предоставленного ему класса. Методами этого класса реализовывается логика поведения танка, который ездит по полю брани, подбирает различные бонусы, стреляет в противников, умирает и т. п. У кого больше очков в конце боя, тот и победил. Далее исходники компилируются на стороне сервера, и игрок может сразиться с танками противников. Для удобства клиентская часть позволяла сохранять проведённые бои для последующих повторов.

Итак, ночь перед дипломом. Нужно сделать презентацию. Чтобы не быть голословными, решили написать пару ботов и сделать видео с их участием. Один бот должен был просто ездить и собирать бонусы, другой — только стрелять по другим танкам, игнорируя бонусы, третий — ездить полностью рандомно. Написали, запустили. Выяснилось, что правильно ездит только рандомный бот (и то лишь потому, что его трудно проверить). На часах уже пять утра, а ошибку найти не получается. Решили, что глюк у нас где-то в расчётах движения, и оставить следует только «рандомщика», а остальных просто не показывать.

Комиссия была в восторге — всем поставили по пятёрке. Только недавно товарищ скинул мне сохранённый бой, где все трое ездят «честно».

— Разобрался с физикой? — спрашиваю.

— Нет.

— Понял, как по существующей физике ездить?

— Нет.

— А что тогда случилось? Почему они вдруг так хорошо работать стали?

— Да у нас угол до цели неправильно считался. Исправил — и сами поехали...

Невольно вспоминается шутка о том, что русский программист может написать правильный код даже для в корне неправильного проекта.

3567

Сетевая штука эта будет посложней «Корвета»

На днях зашёл к бывшей школьной учительнице по информатике. С порога:

— Женя, у меня к тебе вопрос. Я тут компьютер перезагрузила, у меня куда-то потерялась сетевая штука эта, ну, с модемом которая соединяется.

Меня шандарахнуло.

— Давайте по порядку. Вы перезагрузили компьютер? Может, переустановили систему?

— Нет, Женя, нет. Мне Дима загрузил, мы ничего не устанавливали! Только загрузили.

— Не может такого быть.

— Может, Женя, может! — улыбнулась учительница.

Пообещал посмотреть.

— Женя, а еще вопрос: у меня вся нужная информация была на старом рабочем столе, можно ли её на новый рабочий стол перенести?

«Можно», — сказал я и выбежал прочь, понимая, что не могу совладать с упорством бывшего учителя информатики, мастера «Корветов» и Дельфи.

3557

Лирики в лаборатории

После школы я решила предать свою мечту и вместо непрестижного, но безумно любимого филологического факультета поступила в технический вуз. Глобальность ошибки была осознана полтора года спустя, и я, радостно повизгивая, совершила побег в сторону гуманитариев.

Окончив первый курс, отправилась проходить практику в лаборатории. К слову, туда набирали только тех, кто «шарит в компах». Задача — посильно помочь в наведении порядка в архиве фольклорной лаборатории, то есть составлении электронного каталога.

Придя в первый день на консультацию, я поняла, насколько любимый факультет филологичен. Я понимаю, писать каталог с нуля — денег нет, но то, что я увидела, поразило до глубины души. Даже бедный Access был безжалостно отметён в сторону — каталог делался в... Экселе! Куча разрозненных таблиц, даже листы не поменяли своих названий: «Лист 1», «Лист 2»... Их порядка двадцати, найти нужную вкладку — задачка не для слабонервных. О шаблонах и прочих прелестях я вообще молчу. И, конечно, «не смейте ничего трогать» — это же компьютер, страшный железный монстр!..

Задача одной из главных работ по информатике в следующем семестре — нарисовать в Пейнте осень. Гуманитарно.

3545

Наследственный враг

Этим летом выдался мне огромный отпуск. Дабы потратить его с умом и пользой, я отправился на курсы бухучёта, рассудив, что врага надо знать в лицо. На деле наука эта оказалась нехитрой (в сравнении со всеми прелестями мехмата — точно), время сжирала отлично и создавала видимость активного процесса обучения для работодателей, которые всё это дело и оплатили.

Не стоит и говорить, что вся группа состояла из фанаток «косынки» и «паука», которые на курсах 1С делали жуткие глаза и визжали дурными голосами, нажимая все кнопки подряд (на чужих клавиатурах), и мне приходилось исправлять за ними все ошибки. Но больше всего меня порадовала преподаватель — главбух «Рогов и копыт», которая доступно и понятно объяснила всем, что если у них возникает ошибка, то это не у них, а у программы, и надо звать «одинэсника».

Я сидел с печальным лицом, понимая, откуда ноги растут у вечного противостояния. Боюсь, у нас нет ни шанса объяснить им, что 90% ошибок сидит прямо перед монитором.

3506

Поднажми, сынок

Читая истории становления юных айтишников, вспомнил, как родители купили новый компьютер. Купили его даже не мне, а отцу, который, имея педагогическое образование и обладая гуманитарным складом ума, писал на этом компьютере рефераты и, благодаря хорошему знанию офисного софта, работал сисадмином в местной редакции. Я же с детства увлекался электроникой, а потом мне попался «Самоучитель» небезызвестного Александра Левина. Книга зачитывалась до дыр, и в процессе чтения я представлял себя работающим за электронным чудом. Когда я узнал о покупке, счастью моему не было предела.

Чем заниматься девятилетнему парню за компьютером? Правильно — играть! Почти всё время я проводил, проходя уровни в Quake 2 да разворачивая баталии в Blitzkrieg. И когда я в очередной раз раздумывал над тем, какую игру запустить, отец подошел ко мне и спросил: «А тебе не надоело в игрушки играть?» С этими словами он положил на стол фолиант «Excel 2000». Строить таблицы быстро надоело; порадовала же меня возможность… рисовать кнопки. Как добавлять элементы управления, я не знал, поэтому просто рисовал кнопку серой заливкой и чёрно-белой рамочкой. Вскоре я научился делать «взрослые» кнопки и писать для них код на VBA, а через пару лет занял шестое место на областной олимпиаде по программированию среди старших товарищей, решив задачи, да простят меня, на том же Visual Basic.

Прошли годы, я — студент-радиофизик, программирую на C++ для микроконтроллеров. К VB, как и к другим продуктам мелкомягкой фирмы, отношусь с явным недоверием, но ту увесистую жёлтую книжицу я не забуду.