Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по Высокоуровневым метода...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
5.15 Mб
Скачать

Порядок выполнения

  1. C помощью данных методических указаний научиться писать и вызывать пользовательские функции;

  2. Написать программу согласно заданию;

  3. Оформить отчет.

Задание

  1. Используя таймер написать программу, рисующую на компоненте ePaper рисунок из символов согласно заданию.

варианта

Рисунок

1

Треугольник

2

Квадрат

3

Прямоугольник

4

Круг

5

Символ «0»

6

Спираль

7

Волну

8

Зигзаг

9

Елку

10

Символ «Z»

11

Символ «4»

12

Символ «И»

13

Символ «∞»

Контрольные вопросы

  1. Что такое таймер? В каких целях применяются таймеры?

  2. Какие параметры необходимо передать при вызове таймера?

  3. Что возвращает функция, вызвавшая таймер?

  4. Напишите программу на языке C# , которая отображает текущее время.

  5. Напишите программу на языке C#, которая последовательно отображает числа от 0 до 15. Каждый символ должен выводиться с интервалом в две секунды.

  6. Напишите программу на языке C#, которая при первом нажатии на клавишу «пробел», запускала процесс вывода чисел, начиная с нуля. При повторных нажатиях на данную клавишу, процесс вывода должен останавливаться или возобновляться.

  7. Используя таймер, напишите программу на языке C#, которая выводила бы числа в обратном порядке, начиная с 15 до 0 с интервалом в одну секунду. По достижению нуля, должно выводиться модальное окно с сообщением, что время окончено.

  8. Напишите программу на языке C#, которая бы анимировала движения строки текста по диагонали. Движение должно начинаться с верхнего левого угла.

  9. Напишите программу на языке 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 типа «консольное приложение»:

  • Выбрать в строке меню следующую команду ФайлСоздатьПроект… (FileNewProject…);

  • Открывается диалоговое окно мастера создания проектов (см. Рисунке 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()