| Vladimir's profileImprove your skill © 200...BlogGuestbookNetwork | Help |
Improve your skill © 2008 |
||||||||||||||||||||||||||||||||
|
October 27 Improve your skill of C# programming. Часть 1. Введение.Где-то месяц назад читал курс от Microsoft 2124 “Programming with C#”. Курс простой и дает базовое знание синтаксиса C# для программистов, которые хотят научится на нем писать. В итоге вспомнил много интересного.
В общем те, кто хочет научиться писать на C#, могут почитать посты в моем блоге из серии “Improve your skill of C# programming”. Расскажу, все что знаю. В комментариях можно дополнять материал, а я буду вносить изменения в пост. Задача №6. О квартире Правила решения задач можно прочитать тут. О квартире. Диспетчер скорой помощи принял вызов. Он спросил адрес, номер квартиры, но забыл узнать номер подъезда и этаж. Эта информация ему необходима для того, чтобы врач быстрее добрался до больного. Диспетчер был опытный. Он вспомнил, что в этот дом уже были вызовы, в которых были указаны и номера квартир, и этажи, и подъезды. Помогите диспетчеру вычислить этаж и подъезд для квартиры N, если известно, что квартира с номером M в этом доме располагается в подъезде P (P > 1) на этаже K, а дом имеет L этажей, и на каждой площадке расположено одинаковое количество квартир. Входные данныеПервая строка входного
файла содержит целое число N (0 < N < 500)
— номер квартиры, откуда поступил вызов.Вторая строка состоит
из четырех целых чисел M, P, K, L, записанных
через пробел, обозначающих, соответственно,
номер квартиры, подъезд и этаж также
количество этажей в доме. Выходные данные Выходной файл состоит из одной строки, в которой через пробел записан номер подъезда и этаж для квартиры N. Если из входных данных нельзя узнать номер подъезда или этажа, то на соответствующем месте должна стоять строка 'UNK' Пример
October 05 Пять секунд - полет нормальный.. Итак, через SCART я-таки подключил. В чем была проблема ранее - непонятно. Первые ощущения довольно смешанные.. С одной стороны все кажется супер, потому что консоль работает, потому что есть что поизучать и т.д. и т.п. Но вот в Call Of Duty 4 я играю с трудом, уж очень сложно играть в FPS используя джойстик, и это немного портит ощущения клевости приставки. Хочется каких-нибудь гонок или файтингов. Посмотрим, может привыкну к управлению.=) Вообще очень хочется проходить все игры по-максимуму, т.е.до 1000 очков за ачивменты. October 04 А провода-то нет=( Обшарив пару магазинов в городе, так и не нашел провод для подключения Xbox к монитору. Теперь ненавижу Техносилу с ее вечно занятыми консультантами, которые тебя вообще не замечают, а если их о чем-то спросить, то отмахиваются со словами "Изззните, я ща занят. Как только освобожусь, я вам помогу." В итоге меня в магазине заметили, только через минут 10 моего стояния посреди зала. Бррр.. не пойду больше в Техносилу. Сегодня сделал предзаказ в Техносити. Должны позвонить в понедельник. Но я завтра еще еду в Мегу, где теоретически этот провод могу встретить. Так что либо завтра покупаю в Меге, либо жду следующей недели. А пока первые ощущения от Xbox'а, хоть и не работающего(пока). 1. Джойстик оказался на удивление удобным. Приятно держать в руках. Но только играя в игры, наверное, смогу научиться автоматически нажимать на все эти кнопки. 2. Сам XBox пока что думаю как поставить(стоя или лежа). Стоя не очень хочется, потому как нельзя двигать, когда там диск(двигать-то не собираюсь, но все-таки мало ли что..). Вроде все. October 03 Xbox доставили. Ну, вот! Xbox Наконец-то приехал из Москвы. Пробное подключение к старенькому телевизору прошло неудачно, т.к. не было ни звука, ни изображение(скорее всего из-за того что SCART не работает). Поэтому завтра вечером куплю провод для подключения к монитору и сделаю новую попытку. September 28 Задача №5. О выражении Правила решения задач можно прочитать тут. О выражении Условия
Входные данные Выходные данные Пример
September 24 nVidia Goggles
nVidia, кажется, всерьез рассчитывает перевернуть мир электронных развлечений своей свежей разработкой - 3D Goggles, очередными стереоскопическими "очками виртуальной реальности" для подключения к компьютеру. В недалеком прошлом такие штуки уже неоднократно появлялись на рынке, но завоевать хоть какую-то популярность не смогли "благодаря" удивительно разрушительному влиянию на зрение и самочувствие пользователя. nVidia клянется не повторять ошибок первопроходцев и заняться эргономикой самым серьезным образом. Техническая составляющая, между тем, оригинальность не блещет: видеокарта отсылает на монитор поочередно кадры для левого и правого глаза; очки синхронизируются с монитором и поочередно "открывают" глаза пользователя. Картинка, таким образом, приобретает удивительную глубину и правдоподобность. Для всего этого счастья, правда, потребуется специальный монитор с разверткой не менее 120 Гц, иначе все заботы nVidia о здоровье потребителя пойдут прахом. ©CGTalk September 10 Про XboxНу, что, товарищи! Я таки выйграл Xbox 360 в конкурсе от Балтики 7 =)) Что ж ждем, когда с нами выйдут на связь и пришлют его. September 04 Spore вышла на PCSPORE - это ваша собственная вселенная. Здесь вы можете создавать и развивать новые формы жизни, стать правителем цивилизаций и даже изменять облик окружающего мира. В игре вы получите доступ к широкому набору инструментов, с помощью которых можно создавать новых существ, технику, постройки и даже космические корабли. Хотя SPORE является индивидуальной игрой, ваши творения будут доступны другим пользователям, а их творения - вам, благодаря чему у вас будут бесконечные возможности для исследования новых миров. В игре вам предстоит пройти 5 этапов, на каждом из которых вы будете сталкиваться с различными испытаниями и выполнять различные задачи. Вы можете начать игру с этапа клетки или же сразу перейти к этапу племени или цивилизации. Вы можете делать в своей вселенной что захотите. September 03 Задача № 4. О компьютерах.Правила решения задач можно прочитать тут. О компьютерах Ограничения Условия Входные данные Выходные данные Пример
T-sql тест №1.Работая с MS SQL, переодически натыкаюсь на такие интересные вещи. Что выведется на экран в случае запуска? September 01 Задача №1: Потерянная лодка. Решение. Всем привет. Условия задачи можно найти тут. Файл с решением на C++ Решение Вся соль задачи - в ее ограничениях. Действительно, нельзя хранить названия всех лодок, потому что можно использовать всего лишь 16 Мб памяти. С другой стороны ограничение по времени в 2 секунды, за которое нельзя не только сравнить строки при помощи функции strcmp, но и просто считать файл. Когда я тестировал решения, то получил примерно такие результаты для считывания данных(тест был только один: 1000000 лодок с названиями в 20 символов длиной): fscanf - 4-5 сек. ifstream fout >> - 10 сек. ifstream fout.read(somestring, 100) - 1.5-1.6 сек. //этот вариант вполне подходит, правда нужно пробегать по строке и вытаскивать оттуда названия лодок, потому что точной длинны мы не знаем. Итак, со считывание разобрались, осталось сравнение строк. Заметим, что по условию названия всех лодок кроме одной встречаются по 2 раза, следовательно мы можем использовать свойство функции XOR. A ^ B ^ A = B. Т.е. делаем посимвольный xor названий, после этого мы получаем название нужной нам лодки. August 31 Ответы на С#-тесты №1 и №2Ответ на первый тест: В первом случае будет ABCD Так как блок finally обязательно выполняется, то после создания исключения в блоке catch функции SomeMethod сначала сработает он, а потом уже обработчик исключений в функции Main. Во втором - AB[Отчет об ошибке]C Т.е. если исключение ничем не ловится в вашей программе, то сначала пишется отчет об ошибке, а потом уже срабатывает finally. Объяснения этому различию я пока не нашел, так что нужно запомнить - вдруг пригодится. Ответ на второй тест: В первом задании переменная i будет равна 0. Все дело в приоритете операций. Во втором задании по идее переменные должны поменяться значениями, однако из-за какого-то бага в C# при выполнении y станет равна 1, а вот переменная х обнулится. Если переписать вот так: x ^= y; y ^= x; x ^= y; то все работает. August 28 Задача №3. О гирях на весах.Итак, новая интересная задачка. Правила решения задач читаем тут.
О гирях на весах Ограничения
Дополнительно Можно присылать алгоритм. Правила решения задач.В общем решил правила вынести в отдельный пост. Итак.. О публикуемых задачах В данном блоге публикуются условия задач с различных олимпиад по программированию. Во всех задачах входные и выходные данные содержатся в файлах input.txt и output.txt соответственно. Некоторые задачи имеют ограничения по времени и памяти, которые нужно учитывать при решении. О решениях Решения присылать мне по адресу vvovas@rambler.ru. Убедительная просьба, в комментариях решения не публиковать. При нарушении этого правила никакие ваши решения данной задачи рассматриваться не будут В комментариях нужно объявлять о решении поучаствовать. Решения задач можно писать на языках c, c++, c#. Использование других языков лучше оговорить в комментариях. В некоторых случаях можно присылать просто описание алгоритма решения(это будет отмечено в условиях задачи). О результатах Результаты тестирования я буду писать в комментариях. Через некоторое время после публикации задачи(около недели) будет написан пост с описанием алгоритма решения и ссылкой на решение, которое показало лучшее время. О тестах К некоторым задачам у меня нет тестов, поэтому в условии будет пометка о том, что можно вместе с решением присылать тестовые данные, которые, по вашему мнению, смогут проверить правильность работы программы. August 27 Задача №2. Расставь коней.Всем привет. Вот нашел еще одну простенькую задачку. Правила по решению задач читать тут. Расставь коней Ограничения Временное ограничение: 1 сек. Условия Дана прямоугольная шахматная доска m на n клеток. Определить максимально возможное количество шахматных коней, которых можно расставить на доске, так чтобы они не били друг друга. Входные данные Строка содержит 2 натуральных числа M(2 <= M <= 10000), N(2 <= N <= 10000) Выходные данные Выводится максимальное число коней. Пример
Дополнительно Можно присылать алгоритм. August 26 Задача №1: Потерянная лодка.В свое время я долго ходил на воскресные тренировки по программированию в университете, а также участвовал в различных олимпиадах(вплоть до уровня России). В связи с этим, у меня осталась куча различных олимпиадных задач, которые я буду тут периодически выкладывать. Итак, вот условие задачи. Потерянная лодка. Ограничения Временное ограничение: 2 сек. Ограничение по памяти: 16 Мб Условия “Арагорн очень обрадовался лодкам, ибо он все еще не мог решить, по какому берегу вести Отряд. Остальные Хранители тоже приободрились. Впереди их ждали великие опасности, в этом ни один из них не сомневался; ну а все-таки плыть навстречу опасностям гораздо приятней, чем тащиться пешком. Всеобщей радости не разделял лишь Сэм: он был уверен, что речные лодки гораздо опаснее диких кобылиц (которых, как он думал, вообще не бывает).” Осторожный Сэм даже решил лично выбрать ту лодку, на которой поплывёт он. Сэм долго ходил по берегу, с недоверием изучая хрупкие на вид суда и аккуратно переписывая названия каждой из них. Последняя лодка ему понравилась больше... Он придирчиво её осмотрел, и решил, что если уж суждено плыть, то лучше на этой. Но вышла незадача — вечером Сэм понял, что как раз название этой лодки на радостях и не записал. Он вернулся на берег — и понял, что лодки уже как-то переставлены — правда, ни одна не исчезла и не появилась. Повторять розыски просто не было сил. “Садовая твоя голова, Сэм”, — ругался он на себя, но надо было что-то делать. Сэм переписал названия всех лодок, надеясь потом найти ту, которой нет в первом списке. Но беда не приходит одна — по дороге назад он умудрился перетасовать листы этих двух списков. Необходимо найти в получившемся большом списке выбранную лодку. Входные данные “Первая строка во входном файле содержит число N — количество лориэнских лодок на берегу Андуина (2 ≤ N ≤ 106). Далее следуют (2 * N – 1) названий лодок, разделённых пробелами или символами конца строки. Название может состоять не более чем из 20 заглавных или прописных латинских букв, а также цифр. Заглавные и прописные латинские буквы считать различными. Выходные данные В выходной файл необходимо вывести название выбранной Сэмом лодки. Пример
August 25 С#-тест №2Про эти фишки я узнал, как только начал учить шарп. Итак, что будет если запустить следующие фрагменты? ... int i = 0; i = ++i; Console.WriteLine(i); ... и ... int x = 1; int y = 2; x ^= y ^= x ^= y; Console.WriteLine("x = {0}; y = {1}", x, y); ... |
|
|||||||||||||||||||||||||||||||
|
|