- •Лабораторная работа №1 Использование встроенных функций компонента «Художник»
- •Краткая теория
- •Порядок выполнения
- •Задание
- •Контрольные вопросы
- •Лабораторная работа №2 Пользовательские функции
- •Краткая теория
- •Порядок выполнения
- •Задание
- •Контрольные вопросы
- •Лабораторная работа №3 События
- •Краткая теория
- •Порядок выполнения
- •Задание
- •Контрольные вопросы
- •Лабораторная работа №4 Работа с таймером
- •Краткая теория
- •Порядок выполнения
- •Задание
- •Контрольные вопросы
- •Лабораторная работа №5 Массивы
- •Кратная теория
- •Порядок выполнения
- •Задание
Порядок выполнения
C помощью данных методических указаний научиться писать и вызывать пользовательские функции;
Написать программу согласно заданию;
Оформить отчет.
Задание
Используя таймер написать программу, рисующую на компоненте ePaper рисунок из символов согласно заданию.
№ варианта |
Рисунок |
1 |
Треугольник |
2 |
Квадрат |
3 |
Прямоугольник |
4 |
Круг |
5 |
Символ «0» |
6 |
Спираль |
7 |
Волну |
8 |
Зигзаг |
9 |
Елку |
10 |
Символ «Z» |
11 |
Символ «4» |
12 |
Символ «И» |
13 |
Символ «∞» |
Контрольные вопросы
Что такое таймер? В каких целях применяются таймеры?
Какие параметры необходимо передать при вызове таймера?
Что возвращает функция, вызвавшая таймер?
Напишите программу на языке C# , которая отображает текущее время.
Напишите программу на языке C#, которая последовательно отображает числа от 0 до 15. Каждый символ должен выводиться с интервалом в две секунды.
Напишите программу на языке C#, которая при первом нажатии на клавишу «пробел», запускала процесс вывода чисел, начиная с нуля. При повторных нажатиях на данную клавишу, процесс вывода должен останавливаться или возобновляться.
Используя таймер, напишите программу на языке C#, которая выводила бы числа в обратном порядке, начиная с 15 до 0 с интервалом в одну секунду. По достижению нуля, должно выводиться модальное окно с сообщением, что время окончено.
Напишите программу на языке C#, которая бы анимировала движения строки текста по диагонали. Движение должно начинаться с верхнего левого угла.
Напишите программу на языке C#, которая бы при запуске отрисовывала символ. При одинарном клике мышки на холсте, символ должен сместиться к левому краю, при двойном клике – к правому.
Лабораторная работа №5 Массивы
Цель работы: изучить назначение и принцип работы с массивами в языке C#.
Оборудование: персональный компьютер, Microsoft Visual Studio 2010.
Кратная теория
Массив — упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа. Благодаря тому, что элементы массива имеют одно имя и отличаются друг от друга лишь индексом, имеется возможность компактно записывать множество операций с помощью циклов.
Синтаксис объявления массива имеет следующий вид:
Тип_массива [] имя_массива;
Создание переменной типа массив еще не создает экземпляры этого массива. Такие переменные имеют объектный тип и хранят ссылки на объекты, однако изначально имеют значение null. тобы создать экземпляр массива, нужно воспользоваться ключевым словом new, после чего указывается тип массива и в квадратных скобках – длина массива.
Int[] a=new int[5];
Point[] p = new Point[10];
Рисунок 14 – Синтаксис определения массива
Переменная инициализируется ссылкой, указывающей на только что созданный массив. После его создания можно обращаться к элементам, используя ссылку на массив, далее в квадратных скобках указывается индекс элемента. Индекс меняется от нуля, пробегая всю длину массива, до максимально допустимого значения, на единицу меньшего длины массива.
int [] massiv = new int[5];
for (int i=0; i<5; i++) {
massiv[i]=i*i;
}
for (int j=0; j<5; j++) {
Console.WriteLine(j+"*"+j+"="+massiv[j]);
}
Console.ReadLine();
Рисунок 15 – Пример программы, заполняющей элементы массива и выводящая значения ее элементов в консоли
Результат выполнения программы представлен на рисунке 16.
Рисунок 16 – Результат выполнения программы по заполнению и выводу значений элементов массива
Также при объявлении массива можно сразу присваивать значения его элементам. Синтаксис такого объявления представлен ниже:
string[] month = new string[]{“January”, “February”, “March”};
Количество элементов в массиве (размерность) не является частью его типа, это количество задается при выделении памяти и не может быть изменено впоследствии. Размерность может задаваться не только константой, но и выражением. Результат этого выражения должен быть не отрицательным, а его тип должен иметь неявное преобразование к int, uint, long и ulong.
Специально для работы с массивами в языке C# существует цикл foreach. Он применяется, когда необходимо проводить однотипные операции над всеми элементами массива. Синтаксис конструкции foreach приведен ниже:
int[] elements = new int[]{1, 2, 3, 4, 9};
foreach(int element in elements)
Console.WriteLine(element);
Console.ReadLine();
Рисунок 17 – Пример использования цикла foreach
Результат выполнения программы представлен на рисунке 17.
Рисунок 17 – Результат работы цикла foreach
Свойства и методы массивов
Каждый создаваемый массив получает большую часть функциональности от класса System.Array. Общие члены этого класса позволяют работать с массивом с использованием объектной модели. В таблице 1 приведено краткое описание некоторых часто встречающихся свойств и методов класса System.Array.
Таблица 1 – Некоторые методы и свойства класса System.Array
Член класса System.Array |
Описание |
Clear() |
Статический метод, который позволяет устанавливать для всего ряда элементов пустые значения (0 – для чисел, null – для объектных ссылок, false – для булевых значений) |
CopyTo() |
Метод, который позволяет копировать элементы из исходного массива в целевой |
Length |
Свойство, которое возвращает информацию о количестве элементов в массиве |
Rank |
Свойство, возвращающее информацию о количестве измерений в массиве |
Reverse() |
Статический метод, который представляет содержимое одномерного массива в обратном порядке |
Sort() |
Статический метод, который позволяет сортировать одномерный массив внутренних типов. |
Для закрепления навыков работы с данными свойствами и методами создадим новый проект в Microsoft Visual Studio 2010 типа «консольное приложение»:
Выбрать в строке меню следующую команду ФайлСоздатьПроект… (FileNewProject…);
Открывается диалоговое окно мастера создания проектов (см. Рисунке 18);
Рисунок 18 – Окно «Создать проект»
Выберите в дереве типов проектов тип «Консольное приложение»;
введите имя проекта в текстовом поле «Имя» (Name), например, Massivsys;
введите имя каталога размещения файлов проекта в текстовом поле «Расположение» (Location) (по указанному пути создается каталог, название которого совпадает с названием проекта);
щелкните левой кнопкой мыши по кнопке OK.
После выполнения вышеуказанных шагов окно Visual Studio примет следующий вид (Рисунок 19).
Рисунок 19 – Окно Microsoft Visual Studio после создания проекта Massivsys
В ниже приведенном листинге (Рисунок 20) приведен пример работы со статическими методами Reverse() и Clear(). Информация о изменениях, производимых в массиве после использования данных методов, выводится в консольном окне (Рисунок 21).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Massivsys
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("=> работа с System.Array");
// Инициализация элементов при запуске
string[] gothicBands = { "Tones on Tail", "Bahaus", "System of Mercy"};
// Вывод элементов в порядке их объявления
Console.WriteLine("-> Это наш массив:");
for(int i = 0; i < gothicBands.Length; i++)
{
// вывод элемента
Console.Write(gothicBands[i] + ", ");
}
Console.WriteLine("\n");
// Изменение порядка следования элементов на обратный
Array.Reverse(gothicBands);
Console.WriteLine("-> Это обратный массив");
// ... и их вывод
for (int i = 0; i < gothicBands.Length; i++)
{
// вывод элемента
Console.Write(gothicBands[i] + ", ");
}
Console.WriteLine("\n");
// Удаление всех элементов, кроме одного
Console.WriteLine("-> Удаление всех элементов, кроме одного");
Array.Clear(gothicBands, 1, 2);
for (int i = 0; i < gothicBands.Length; i++)
{
// вывод элемента
Console.Write(gothicBands[i] + ", ");
}
Console.ReadLine();
}
}
}
Рисунок 20 – Пример работы с методами Reverse() и Clear()
Рисунок 21 – Результат работы методов Reverse() и Clear()
