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

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

  1. C помощью данных методических указаний изучить работу освоить работу с компонентом ePaper;

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

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

Задание

При помощи встроенных функций и свойств компонента ePaper написать программу, рисующую на холсте Вашу фамилию.

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

  1. Сколько и какие существуют базовые конструкции структурного программирования?

  2. Опишите порядок работы конструкции ifelse

  3. Перечислите операторы условия, которые можно использовать в конструкции ifelse

  4. Используя компонент художник, напишите программу на языке C#, которая бы отрисовывала определенное количество символов в строке. Если же количество символов больше заданного, то отрисовка символов начинается со следующей строки. В коде программы должна использоваться конструкция ifelse.

  5. Объясните, для чего нужна конструкция switch case?

  6. Приведите синтаксис оператора switch case, полную и сокращенную форму.

  7. Проиллюстрируйте синтаксис операторов while и dowhile. В каком случае целесообразнее применять тот или другой оператор?

  8. Перечислите унарные операторы, поддерживаемые в языке C#.

  9. Опишите синтаксис и порядок работы конструкции for.

  10. Используя конструкцию for, напишите программу, которая бы высчитывала произведение четных чисел в диапазоне от 13 до 24 включительно.

Лабораторная работа №2 Пользовательские функции

Цель работы: научиться писать и работать с пользовательскими функциями.

Оборудование: персональный компьютер, Microsoft Visual Studio 2010.

Краткая теория

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

Синтаксис описания функций достаточно прост:

[модификаторы]{void | тип результата функции}

имя метода ([список формальных аргументов])

{

// тело функции

}

Для представления синтаксиса описания функций используются следующие условные обозначения:

  1. Элементы, находящиеся в квадратных скобках «[]» являются необязательными, то есть их наличие при объявлении функции не является необходимым;

  2. Элементы, находящиеся в фигурных скобках «{}» являются обязательными;

  3. Модификаторы указывают на уровень доступа к функции в программе. В C# существует 4 модификатора доступа:

    • public - функция может быть вызвана в любой части кода;

    • protected – функция может быть вызвана объектом класса, в которой определена функция, или в объекте класса, наследующего класс, в которой определена функция;

    • private – функция может быть вызвана только внутри класса, в котором она определена;

    • internal – функция может быть вызвана в любой части кода, в пределах сборки, в которой она определена.

Если модификатор видимости функции не был задан в коде, по умолчанию компилятором он выставляется в значение private.

  1. Тип возвращаемого значения указывает на то, какого типа значение возвращает функция: int(целое число), decimal(число с плавающей точкой), string(строку), bool (булевое значение) и т.д. Если же функция не должна возвращать значение, тогда ставится ключевое слово void.

  2. Имя функции – при присваивании имени функции необходимо придерживать следующих правил:

    • Имя функции должно начинаться с символа латинского алфавита, знака доллара («$») или подчеркивания («_»), затем следует произвольные символы (буквы, числа и т.д.)

    • Если имя функции состоит из нескольких слов, то они пишутся слитно, каждое новое слово начинается с заглавного символа или отделяется знаком подчеркивания. Недопустимо разделять имя функции символом пробела. Пример допустимого именования функций:

void someFunction();

public void SomeFunction();

protected int Super_Fuctorial(int i, int j);

protected int Super_Fuctorial2(int i, int j);

  • Имя функции должно быть осмысленным, то есть отражать смысл того, делает функция.

  1. Список формальных аргументов – представляют собой переменные, массивы и т.п. аргументы которые принимает функция в качестве входных параметров, производя с ними в теле функции определенные действия. Если же функция не получает аргументов, то круглые скобки после имени функции остаются пустыми.

Простейшими примерами описания функций являются следующие:

private void A()

{}

public int B()

{}

public long Stepen(int a, int b)

{

long r;

r = (long)Math.Pow(a, b);

return (r);

}

Функция A является закрытой процедурой, функции B и Stepen - открытыми функциями. У методов A и B не определены формальные параметры, в то время как у метода Stepen два формальных параметра: a и b.

В качестве передаваемых параметров функции может выступать не только переменная, но и другая функция.

Для примера опишем функцию рисования числа ноль в программе «Художник». При ее описании будут использовать встроенные функции и свойства в компонент ePaper, приведенные в лабораторной работе №1.

Прежде чем начинать писать собственные функции необходимо определиться с их интерфейсом. В ниже приведенном примере num0 рисует на компоненте ePaper символ ноль. Символ начинает рисоваться из нижнего левого угла. После отрисовки символа, перо поднимается и переносится на 5 пикселов от предыдущего символа и опускается снова в левую нижнюю точку (Рисунок 6).

Рисунок 6 – Перенос пера после отрисовки символа

Окончательный вариант функции num0:

// Функция для рисования числа ноль

void num0()

{

Paper.PenDown();

Paper.PenMove(20, 0);

Paper.PenMove(0, -40);

Paper.PenMove(-20, 0);

Paper.PenMove(0, 40);

Paper.PenUp();

Paper.PenMove(25, 0);

}

При выполнении данного кода мы не увидим изменений на холсте программы, так как сама функция была только описана. Для ее работы внутри функции Main() необходимо ее вызвать. Вызов функции осуществляется следующим образом: указывается имя функции, затем круглые скобки, внутри которых могут находиться параметры функции, в конце точка с запятой.

Пример вызова функции num0 в теле программы:

num0(); num0();

Теперь же при запуске программы на холсте компонента будет нарисована число ноль два раза (рисунок 7).

Рисунок 7 – Результат вызова пользовательской функции num()