середа, 10 лютого 2010 р.

Сортировка обменом (“пузырьковая” сортировка)

Слева направо поочередно сравниваются два соседних элемента, и если их взаиморасположение не соответствует заданному условию упорядоченности, то они меняются местами. Далее берутся два следующих со­седних элемента и так далее до конца массива.

После одного такого прохода на последней n-ой позиции массива будет стоять максимальный элемент (“всплыл” первый “пузырек”). По­скольку максимальный элемент уже стоит на своей последней позиции, то второй проход обменов выполняется до n-1-гo элемента. И так далее. Всего требуется п-1 проход.

понеділок, 8 лютого 2010 р.

Генерация случайных чисел

В заголовок формы записывается случайное, сгенерированное число Z.
Random rnd = new Random();
int Z;
Z = rnd.Next(10);
this.Text = Z.ToString();

Изменение расположения объекта на форме

int X = 100;
int Y = 200;
button1.Location = new Point(X, Y);

Изменение ширины формы в C#

Напрямую менять свойство формы отвечающее за ширину (и высоту) нельзя. Для изменения размеров необходимо создать новый объект (например MySize), который будет принадлежать классу Size и изменить параметры этого объекта. Затем приравнять свойству Size формы значение объекта MySize. Внутри класса Size обращение к ширине будет выглядеть как MySize.Width, а к высоте как MySize.Height.

Размеры формы
Размеры формы

неділя, 7 лютого 2010 р.

Классы и объекты

Основным понятием объектно-ориентированного программирования является класс. Класс это лишь описание методов и свойств. Класс не создается и не используется в программе. Большинство классов заранее определенно. Например класс Button, который содержит в себе перечень возможных свойств и действий производимых с любой экранной кнопкой. Некоторые классы группируются в пространства имен.

Объект - это переменная, которая имеет свойства и методы, описанные в классе, от которого он создается. Вы можете создать несколько объектов от одного класса. Примером объекта может служить кнопка Окей, та что в нижнем левом углу экрана.

субота, 6 лютого 2010 р.

Пространство имен (англ. namespace)

Пространство имён (от англ. namespace) – некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (т.е. имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же (а скорее, другое) значение, как и такой же идентификатор, определённый в другом пространстве. Языки с поддержкой пространств имён определяют правила, указывающие, к какому пространству имён принадлежит идентификатор (т.е. его определение).

пʼятниця, 5 лютого 2010 р.

Роботы десантники

Задача: Смысл такой: у нас есть бесконечная шкала целых чисел (представь себе линейку, обе стороны которой расходятся от нуля в бесконечность). На эту линейку на парашютах спускаются два робота-диверсанта, несущих на себе ядерные заряды. Они приземляются одновременно, но в разных точках. Сбрасывают парашюты и начинают действовать, согласно заложенной в них программе. Программа у обоих одна и та же. Она описывает их движение с помощью четырех операторов:

[<метка>]:Left – команда приказывает роботу сделать шаг вправо
[<метка>]:Right – команда приказывает роботу сделать шаг вправо
[<метка>]:GoTo <метка> – команда отсылает робота на указанную строчку кода
[<метка>]:PGoTo <метка> – то же, что и предыдущая команда, но выполняется она только в том случае, если робот находится на точке приземления (своей или другого робота, т.е. в одной из двух точек, где они сбросили парашюты)


На первый взгляд, оба робота должны прыгать по шкале, нисколько не мешая друг другу, однако не в этом наша цель. Помнишь, что они несут ядерный заряд? Значит, надо сделать так, чтобы они рано или поздно встретились и устроили локальный Армагеддон. Соответственно, тебе нужно написать прогу, которая запрограммирует наших железных камикадзе таким образом, чтобы они всё же оказались в одной точке. Важное дополнение: код может использовать только эти четыре оператора, он должен быть как можно короче и, самое главное, имей в виду что каждый оператор выполняется ровно одну секунду, не зависимо от того, передвинется робот или останется на месте.

HyperComments for Blogger

comments powered by HyperComments