Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Формирование задержки с помощью таймера 2 страница




9-8+76-5+4+3+21 = 100

Найти все возможные варианты таких выражений.

 

Задача 8. Дан двумерный массив, заполненный нулями и единицами. Найти прямоугольник, наибольшей площади, заполненный единицами.

Площадь прямоугольников изменяется от максимальной (весь массив) до минимальной (прямоугольник, состоящий из одной 1). Каждый прямоугольник конкретной площади может быть построен множеством способов. Для площади S допустимый прямоугольник это такой, произведение сторон которого, равно S. Мы должны для каждого значения площади перебрать все допустимые способы построения прямоугольников. Каждый прямоугольник конкретной площади и формы может располагаться в массиве различным образом. Точнее сказать, его левая верхняя вершина может находиться в разных точках массива. Следовательно, для прямоугольника определённой площади и формы мы должны перебрать все возможные расположения.

Может показаться, что программа для большого массива будет работать слишком долго, но есть серьёзные возможности для её ускорения. А именно:

1. Если площадь перебирать от максимальной к минимальной, то первый найденный прямоугольник и будет искомым.

2. Прямоугольник конкретной площади и формы не поместится в любом положении в массив.

Учёт этих утверждений ведёт к очень серьёзному ускорению программы.

 

Задание 9. «Вирус» Колония клеток представляет собой квадратную матрицу порядка N (N < 500). В колонию проникает M (M < 11) вирусов, которые поражают клетки с координатами (X1, Y1),... (Xm, Ym). За одну единицу времени вирус проникает в клетки, соседние с зараженными (соседними считаются клетки, имеющие общую сторону). Требуется написать программу, которая определит время заражения всей колонии. Графически показать процесс заражения.

 

Задание 10. «Сундук Билли Бонса» Билли Бонс положил в сундук некоторое количество золотых монет. На второй год он вынул из сундука сколько-то монет. Начиная с третьего года, он добавлял столько монет, сколько было в сундуке два года назад.

Требуется написать программу, определяющую количество монет в сундуке в первый и во второй года, если в X-м году там оказалось ровно Y монет. (3<=X<=20) и Y (1<=Y<=32767).

Пояснение: если в первый год положить 5 монет, а во второй год вынуть 3 монеты, то начиная с первого года в сундуке будет 5, 2, 7, 9, 16, 25,... монет.


·

Приложение 1. Свойства элементов управления

Многие стандартные визуальные элементы управления имеют одинаковые свойства. Поэтому имеет смысл рассмотреть их отдельно.

 

Свойства Пояснения
Name Возвращает или задает имя элемента управления. Значение этого свойства используется в программе для обращения к объекту по его имени.
Size Возвращает или задает размер элемента управления. Это свойство позволяет одновременно установить высоту и ширину (в точках) вместо того, чтобы устанавливать по отдельности свойства Height и Width.
Height Возвращает или задает высоту элемента управления.
Width Возвращает или задает ширину элемента управления.
Location Возвращает или задает координаты левого верхнего угла элемента управления относительно левого верхнего угла контейнера.
Dock Используется для определения способа автоматического изменения размеров элемента управления при изменении размеров родительского элемента управления. Например, задание для свойства Dock значения DockStyle.Left приводит к выравниванию самого элемента управления по левому краю его родительского элемента управления и к изменению размеров при изменении размеров родительского элемента управления.   Внимание: свойства Anchor и Dock являются взаимоисключающими. Одновременно может быть задано только одно из них, которое и получает преимущество.
Anchor Возвращает или задает границы контейнера, с которым связан элемент управления, и определяет способ изменения размеров элемента управления при изменении размеров его родительского элемента. Элемент управления можно привязать к одной или нескольким границам контейнера. Например, если имеется объект Form с объектом Button, для свойства Anchor которого заданы значения Top и Bottom, то объект Button растягивается, чтобы сохранить закрепленное расстояние до верхней и нижней границ объекта Form при увеличении значения свойства Height объекта Form.   Внимание: Свойства Anchor и Dock являются взаимоисключающими. Одновременно может быть задано только одно из них, которое и получает преимущество.
Margin Возвращает или задает пустое пространство между элементами управления. Элементы управления получают для свойства Margin значения по умолчанию, которые достаточно близки к рекомендациям по пользовательскому интерфейсу Windows. Для конкретных приложений по-прежнему могут быть необходимы некоторые корректировки.
BackColor Возвращает или задает цвет фона для элемента управления. Свойство BackColor является внешним свойством.
ForeColor Получает или задает основной цвет элемента управления. Свойство ForeColor является внешним свойством.
Font Возвращает или задает шрифт текста, отображаемого элементом управления. Нельзя поменять отдельные элементы свойства Font – можно только создать новый объект Font с требуемыми параметрами и назначить его свойству Font. Свойство Font является внешним свойством. Внешнее свойство – это свойство элемента управления, которое (если оно не задано) получается из родительского элемента управления.
Text Получает или задает текст, сопоставленный с этим элементом управления. Свойство Text элемента управления по-разному используется каждым производным классом. Например, свойство Text объекта Form отображается в заголовке окна в верхней части формы, содержит небольшое количество символов и, как правило, отображает имя приложения или документа. Однако свойство Text объекта RichTextBox может быть большим и включать в себя многочисленные невидимые символы, применяемые для форматирования текста. Например, отображаемый в объекте RichTextBox текст можно отформатировать, настроив свойства Font либо добавив символы пробелов или табуляции для выравнивания текста.
TextAlign Получает или задает выравнивание текста для элемента управления.
Enabled Возвращает или задает значение, показывающее, сможет ли элемент управления отвечать на действия пользователя. Значение true, если элемент управления может отвечать на действия пользователя; в противном случае – значение false. Значением по умолчанию является true. С помощью свойства Enabled можно включать или отключать элементы управления во время выполнения. Например, можно отключить элементы управления, не применяемые при данном состоянии приложения. Можно также отключить элемент управления, чтобы ограничить его использование. Например, возможно отключить кнопку, чтобы пользователь не смог ее нажать. Если элемент управления отключен, его невозможно выделить.
Visible Получает или задает значение, указывающее, отображаются ли элемент управления и все его дочерние элементы управления. Значение true, если элемент управления и все его дочерние элементы управления отображаются; в противном случае – значение false. Значение по умолчанию – true. Обратите внимание, что даже если для Visible задано значение true, элемент управления может быть невидимым для пользователя, если он находится позади других элементов управления.
Items С помощью этого свойства можно получить ссылку на список элементов, хранящихся в настоящее время в элементе управления (например, ListBox). С помощью этой ссылки можно добавлять и удалять элементы, а также определять число элементов в коллекции.

 

Приложение 2. События элементов управления

Событие Пояснения
Load Происходит до первоначального отображения элемента управления (обычно формы).
Resize Происходит при изменении размеров элемента управления (например, формы).
Move Происходит при перемещении элемента управления.
Click Происходит при щелчке элемента управления. Событие Click передает объект EventArgs его обработчику событий, указывая только, что щелчок был выполнен. Если необходимы более точные сведения о мыши (кнопка, количество щелчков, вращение колесика или положение), следует использовать событие MouseClick. Однако событие MouseClick не возникает, если щелчок был выполнен не с помощью мыши, а например, при нажатии клавиши Enter.
DoubleClick Происходит, когда элемент управления дважды щелкается. Двойной щелчок определяется параметрами мыши в операционной системе пользователя. Пользователь может задать время между нажатиями кнопки мыши, которые будут считаться двойным щелчком, а не двумя отдельными щелчками. Событие Click вызывается каждый раз, когда элемент управления дважды щелкается. Например, при наличии обработчиков для событий Click и DoubleClick объекта Form события Click и DoubleClick вызываются, когда форма дважды щелкается и оба метода вызываются. Если элемент управления дважды щелкается и этот элемент управления не поддерживает событие DoubleClick, событие Click может быть вызвано дважды.
MouseClick Происходит при щелчке элемента управления мышью. Если нажать кнопку мыши, когда курсор находится на элементе управления, обычно возникает следующая последовательность событий, относящихся к этому элементу управления: · Событие MouseDown. · Событие Click. · Событие MouseClick. · Событие MouseUp.
MouseDoubleClick Генерируется при двойном щелчке элемента управления мышью. Событие MouseDoubleClick происходит, когда пользователь быстро дважды нажимает кнопку мыши, когда курсор находится на элементе управления. Интервал времени, позволяющий отличить два отдельных щелчка мыши от двойного щелчка, определяется параметрами мыши в операционной системе. При выполнении пользователем такого действия элемент управления вызывает следующую последовательность событий: · Событие MouseDown. · Событие Click. · Событие MouseClick. · Событие MouseUp. · Событие MouseDown. · Событие DoubleClick. · Событие MouseDoubleClick. · Событие MouseUp.
MouseDown Происходит при нажатии кнопки мыши, если указатель мыши находится на элементе управления.
MouseUp Происходит при отпускании кнопки мыши, когда указатель мыши находится на элементе управления.
MouseMove Происходит при перемещении указателя мыши по элементу управления. Обычно использование события MouseMove приводит к изменению цвета элемента управления или к прорисовке приподнятого прямоугольника вокруг элемента управления.
MouseLeave Происходит, когда указатель мыши покидает элемент управления.
KeyPress Происходит при нажатии клавиши, если элемент управления имеет фокус. Событие KeyPress вызывается только нажатием клавиш с символами. Остальные клавиши вызывают события KeyDown и KeyUp. Свойство KeyChar используется для выбора образцов нажатий клавиш во время выполнения и для использования или изменения подмножества стандартных нажатий клавиш. Чтобы обрабатывать события клавиатуры только на уровне формы без предоставления другим элементам управления возможности получать события клавиатуры, необходимо задать для свойства KeyPressEventArgs.Handled в методе обработки события KeyPress формы значение true. События нажатия клавиши происходят в следующем порядке. 1. KeyDown 2. KeyPress 3. KeyUp
KeyDown Происходит при нажатии клавиши, если элемент управления имеет фокус. Чтобы обрабатывать события клавиатуры только на уровне формы без предоставления другим элементам управления возможности получать события клавиатуры, необходимо задать для свойства KeyPressEventArgs.Handled в методе обработки события KeyPress формы значение true. Некоторые клавиши, такие как Tab, Enter, Escape и клавиши со стрелками, автоматически обрабатываются элементами управления.
KeyUp Происходит, когда отпускается клавиша, если элемент управления имеет фокус.
Enter Происходит при входе в элемент управления (при получении фокуса). Когда выполняется изменение фокуса с помощью клавиатуры (Tab, Shift+Tab и т. д.), события фокуса происходят в следующем порядке: 1. Enter 2. GotFocus 3. Leave 4. Validating 5. Validated 6. LostFocus При изменении фокуса с помощью мыши или посредством вызова метода Focus события фокуса возникают в следующем порядке. 1. Enter 2. GotFocus 3. LostFocus 4. Leave 5. Validating 6. Validated События Enter и Leave подавляются классом Form. В классе Form им эквивалентны события Activated и Deactivate. Не пытайтесь задать фокус из обработчиков событий Enter, GotFocus, Leave, LostFocus, Validating или Validated. Это может привести к тому, что приложение перестанут отвечать.
Leave Происходит, когда фокус ввода покидает элемент управления. События Enter и Leave подавляются классом Form. В классе Form им эквивалентны события Activated и Deactivate.
TextChanged Происходит при изменении значения свойства Text. Данное событие возникает в том случае, если свойство Text изменено программой или в результате действий пользователя.
Paint Происходит при перерисовке элемента управления.

 

Приложение 3. Методы для работы со строками

Метод или свойство Пояснения
Compare() Сравнивает две строки и возвращает целое число, которое показывает их относительное положение в порядке сортировки. Возвращаемое число будет равно нулю, если значения параметров равны.
Concat() Соединяет в одну строку две и более строки. При этом разделители не добавляются.
Copy() CopyTo() Методы Copy и CopyTo служат для копирования строки или подстроки в другую строку или в массив типа Char.
Format() Форматирует строку, используя строго заданный формат. Для этого заменяет каждый элемент формата в указанной строке текстовым эквивалентом значения соответствующего объекта.
Join() Конкатенация (соединение) массива строк в единую строку. При конкатенации между элементами массива вставляются разделители. Операция, заданная методом Join, является обратной к операции, заданной методом Split.
Length Свойство, которое возвращает количество символов в строке.
EndsWith() Проверяет, заканчивается ли строка определённой последовательностью символов.
Insert() Вставляет новую строку в уже существующую.
LastIndexOf() Возвращает индекс последнего вхождения элемента в строку.
PadLeft() Выравнивает строку по правому краю, пропуская все пробелы или другие специально заданные символы.
PadRight() Выравнивает строку по левому краю, пропуская все пробелы или другие специально заданные символы.
Remove() Удаляет заданное число символов из строки.
Replace() Заменяет подстроку в заданной позиции на новую подстроку.
Split() Возвращает подстроку, отделённую от основного массива определённым символом. На вход методу Split передается один или несколько символов, интерпретируемых как разделители. Объект string, вызвавший метод, разделяется на подстроки, ограниченные этими разделителями. Из этих подстрок создается массив, возвращаемый в качестве результата метода. Другая реализация позволяет ограничить число элементов возвращаемого массива.
StartsWith() Определяет, начинается ли строка с определённой последовательности символов.
Substring() Извлекает подстроку из строки.
ToCharArray() Копирует символы из строки в массив символов.
ToLower() Преобразует символы в строке к нижнему регистру.
ToUpper() Преобразует символы в строке к верхнему регистру.
Trim() Удаляет все вхождения определённых символов в начале и в конце строки.
TrimEnd() Удаляет все вхождения определённых символов в конце строки.
TrimStart() Удаляет все вхождения определённых символов в начале строки.

 

Приложение 4. Методы для работы с массивами

Метод или свойство Пояснения
Concat() Объединяет две последовательности.
Contains() Определяет, содержится ли указанный элемент в массиве.
CopyTo() Копирует все элементы текущего массива в заданный массив.
GetLength() Получает 32-разрядное целое число, представляющее количество элементов в заданном измерении массива. Примером метода GetLength может служить метод GetLength(0), который возвращает число элементов в первом измерении массива (например, количество строк в двухмерном массиве).
Intersect() Находит пересечение множеств, представленных двумя массивами.
Length Свойство, которое возвращает целое число, представляющее общее число элементов во всех измерениях массива.
Max() Возвращает максимальное значение, содержащееся в массиве.
Min() Возвращает минимальное значение, содержащееся в массиве.
Reverse() Изменяет порядок элементов массива на противоположный.
Sum() Вычисляет сумму последовательности числовых значений.

 


 

Литература

1. Есипов А.С., Паньгина Н.Н., Громада М.И. Информатика. Сборник задач и решений для общеобразовательных учебных заведений. СПб.: Наука и техника, 2001. 368 с.

2. Окулов С.М. Программирование в алгоритмах. М.: Бином. Лаборатория знаний, 2004. 341 с.

3. Юркин А.Г. Задачник по программированию. СПб.: Питер, 2002. 192 с.

4. Эндрю Троелсен. Язык программирования C# 5.0 и платформа.NET 4.5. М.: Вильямс. 2013 г. 1312 с.

5. Албахари, Дж. С# 3.0. Справочник: Пер. с англ./ Дж. Албахари, Б. Албахари. ­– 3-е изд. – Спб.: БХВ-Петербург, 2009. – 944 с.: ил.

6. Биллиг В. Основы программирования на C# // Интуит [2013]. Дата обновления: 22.11.2005. URL: http://www.intuit.ru/studies/courses/2247/18/info (дата обращения: 27.06.2013).

7. Павлоская Т. Программирование на языке высокого уровня C# // Интуит [2013]. Дата обновления: 15.09.2010. URL: http://www.intuit.ru/studies/courses/2247/18/info (дата обращения: 27.06.2013).

8. Вихтенко Э. М. Геометрические задачи в олимпиадах по программированию. Изд-во МИФ-2 №2. 2005 г.

9. Липский В. Комбинаторика для программистов. – М.: Мир, 1988. –200 с.

 

 


 

Учебное издание

 

ДЕМИН Антон Юрьевич

ДОРОФЕЕВ Вадим Анатольевич

 

 

ПРОГРАММИРОВАНИЕ НА С#

 

Учебное пособие

 

 

Рецензенты

Доктор технических наук,

доцент кафедры «Комплексной информационной безопасности электронно-вычислительных систем», ТУСУР

Р.В. Мещеряков

Кандидат технических наук, доцент каф. «Программирова-ния», ФПМК, ТГУ

О.И. Голубева

 

Компьютерная вёрстка И.О. Фамилия

Дизайн обложки И.О. Фамилия

 

 




Поделиться с друзьями:


Дата добавления: 2014-11-07; Просмотров: 916; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.