- •Глава 1. Основы информационных технологий
- •1. Информация, ее виды. Свойства информации. Способы передачи информации. Кодирование информации, представление информации в компьютере. Файл. Измерение объемов информации.
- •Компьютерная графика и мультимедиа
- •5. Техн. Обработки графич. Инф-и. Виды компьютерной графики, средства ее создания. Растровая графика. Достоинства и недостатки растровой графики. Фотошоп.
- •3. Группа инструментов «Ретуширование» (Retouching tools)
- •5. Группа инструментов «Рисование» и «Текст» (Drawing and type tools)
- •Изменение формы кривой. С помощью инструмента Форма можно менять положение узлов и форму кривых путем перетаскивания узлов, их направляющих точек и линий.
- •Технологии программирования и методы алгоритмизации
- •8. Алгоритм и его св-ва. Сп-бы опис. Алг-мов. Базовые структуры алгоритмов. Основные этапы полного построения алг-мов. Структурный подход при конструировании алг-мов.
- •1. Полная форма, if–then–else:
- •If условие
- •2). Неполная форма, if–then:
- •2. Структура «Построение с известным числом повторений»
- •Структура «Повторение с постусловием»
- •10. Процедуры и функции пользователя: формальные и фактические параметры, глобальные и локальные переменные, входные и выходные данные.
- •11. Типы данных: структурный (массив) и комбинированный (запись). Алг-мы сортировки и поиска в массивах. Массивы из записей. Оператор With.
- •Var имя_записи: имя_типа;
- •Ves: real;
- •12. Понятие физ. И логич. Файла данных. Классификация файлов данных. Про-ры и ф-и работы с файлами (созд., дополн. Новыми данными, использ. Данных из файла).
- •15. Перегрузка методов и конструкторов как механизм реализации полиморфизма. Перегрузка операторов. Перегрузка бинарных, унарных оп-й и операторов отношений.
- •16. Наслед. В c#: наслед., базовые и производн. Классы. Доступы к членам базовых классов. Конструкторы и наслед-е. Вирт. Методы и их переопределение. Абстр. Классы.
- •Информационные системы и сети
- •18. Технологии обработки и хранения сложно структурированных данных. Базы данных, системы управления базами данных (субд). Модели данных. Субд ms Access:
- •19. Структурированный язык запросов: назначение, возможности и достоинства. Типовые задачи, решаемые средствами sql. Структура команды sql. Выборка данных.
- •Insert into student (student_id, city, surname, name)
- •If условие Then выражение.
- •24. Протокол http и способы передачи данных на сервер. Использование html-форм для передачи данных на сервер. Методы get и post. Обработка запросов с помощью php. Примеры разработки запросов.
- •Архитектура и программное обеспечение вычислительных систем
- •26. Память. Основная память: бит, адреса памяти, упорядочение байта, код исправления ошибок (код Хэмминга), кэш-память; модели, типы памяти. Вспомогательная память.
- •27. Базовые структуры в ассемблере. Программы с ветвлениями. Циклические программы: условие перехода Jnnn (больше, меньше, равно); безусловные переходы Jmp; команда Loop.
- •История информатики
- •Глава 2. Прикладная математика Дискретная математика
- •Способы задания графов
- •2 Рисунка графа
- •3. Эйлеровы циклы и цепи. Эйлеровы графы. Критерий эйлеровости графа. Реш. Зад. О кенигсбергских мостах. Гамильтоновы циклы и цепи. Гамильтоновы графы. Достаточные условия гамильтоновости графа.
- •Теория вероятностей и математическая статистика
- •Основные свойства плотности распределения. , т.К. – неубывающая функция; ; ; Вероятность того, что св попадет в интервал от α до β ;
- •5. Основные законы распределения случайных величин: биномиальный закон, закон Пуассона, показательный закон, нормальный закон. Функция Лапласа.
- •6. Виды измерений в статистике: количественные, порядковые, номинальные. Дискретные и интервальные вариационные ряды. Кумулятивные ряды.
- •Вычислительные методы и компьютерное моделирование
- •7. Числ. Методы решения алгебраич-х и трансцендентных уравнений с одной переменной (метод деления отрезка пополам, метод простой итерации, метод Ньютона
- •8. Приближенное вычисление значения определенного интеграла (метод трапеций, метод Симпсона, метод Монте-Карло).
- •Глава 3. Мпи
- •Шк. Курс инф-ки: цели, стр-ра. Анализ содерж. Линий курса информатики.
- •Метод. Особен. Шк. Курса инф-ки. Специфика орг-ции ур. Инф-ки, типы и стр-ра.
- •Шк. Кабинет инф-ки и информ. Технологий. Требования к технич. И методич. Оснащению кабинета. Док-ция. Беседа с уч-ся по охране труда.
- •Контроль уч. Достижений уч-ся по инф-ке. Виды и ф-мы орг. Контроля. Оценивание зн. И ум. Уч-ся по инф-ке: хар-ка 10бал. С-мы, критерии, особ-ти оцен-я в соотв. С видами к.
- •11. Методика обучения учащихся работе с базами данных: тема учебной программы, формирование основных понятий и умений, примеры заданий для учащихся.
- •15. Обуч-е уч-ся сост-ю алгоритмов с управляющей структурой «ветвление»: тема учеб. Прог-мы, формиров-е основных понятий, примеры заданий для учащихся.
- •Var a:integer;
- •Var имя_массива : array[индекс1..ИндексN] of тип_элементов;
- •Var t, f, p, s : char;
- •Var t, f, p, s : string;
- •19. Факульт-е занятия по инф-ке. Цели, анализ сод-я программ факульт-х курсов.
- •Современные информационные технологии в образовании
- •20. Совр-е усл-я внедрения инф-ых технологий (ит) в образование. Классификация ит. Информатизация с-мы образования. Актуальные направления раз-я инф-и образования.
- •21. Электр-е ср-ва обуч-я (эсо), применяемые в учебном процессе. Сценарий эсо, процесс его разработки. Классификация, цели, специфика применения различных видов эсо.
- •26. Электр учебник: требования к нему, особенности оформления и использования, средства создания. Разработка электр. Учебных материалов и их публикация в www,
- •27. Компьютерный контроль знаний: виды программ, требования к ним и особенности применения. Тестирование, как вид компьютерного контроля.
- •28. Визуализация обуч-я, виды наглядности, ср-ва созд-я объектов комп-ной графики, графич-е форматы, требования к созданию и оформлению компьютерной наглядности.
Var имя_записи: имя_типа;
Компоненты записи называются полями. Пример:
Type zap = record;
Fio : string;
God,rost: integer;
Ves: real;
End;
Var c:zap;
Обращение к полю:
c.ves= 62.5;
Вводятся данные в каждое поле отдельно. Часто записи объединяют в массивы.
Чтобы обращение к полям было более простым, используют оператор над записями, который имеет вид: With имя_записи do Begin … End;
Тогда имя самой записи при обращении к полю писать не обязательно.
Type Student = record {запись}
FIO:string[20]{Длина ФИО не более 20 символов}
Z{номер зачетки}:string[6]
B{средний балл}:real
End; Gr{перем, опис группу } = array[2…N] of Student
Var GR1, GR2:GR
Begin Writeln(‘Введите фамилию ’); Readln(GR1[3].FIO) End.
Можно привести пример: даны две обыкн.дроби, найти их сумму. Обращение к полям записей сокращено With GR1[3] do
Это записи со строго фиксированной структурой. Записи с вариантами
Type zap=record
nomer : integer;
Spis : string[20];
Case flag : Boolean of
True : (alfa : integer);
False : (beta : Real); End; end; Var a : zap;
12. Понятие физ. И логич. Файла данных. Классификация файлов данных. Про-ры и ф-и работы с файлами (созд., дополн. Новыми данными, использ. Данных из файла).
Одни и те же данные удобно исп-ть в разн. прог-ах. Эти дан. сохран-ся в готов. виде так, чтоб к ним можно было обрат-ся в люб. мом. Структура логического файла – это способ его восприятия в программе; шаблон, с помощью которого рассматривается физическая структура файла.Под файлом понимают любой набор элементов одного и того же типа. Количество элементов файла (длина файла) не фиксировано. В этом основное отличие файла от массива. Ввод. понят файл: Физич. – обл. памяти на тверд. носит. под уникальн. именем. Логич. – структурирированный тип данных, состоящий из комп-ов одного типа и длины в Паскаль. Логич. файлы – это файлы данных. Типизированый файл – логический файл, содержащий компоненты одного и того же типа (например, только целые числа). В типизированных файлах возможно считывание произвольного элемента. Курсор движется в любую позицию, достаточно указать ее номер. Файлы по методу доступа к их элементам делятся на файлы последовательного и прямого доступа. В стандарте языка Pascal определены только файлы последовательного доступа, в которых каждый элемент становится доступным только после перебора всех предыдущих элементов.
Относительно программы файлы могут быть внешними и внутренними. Внутренними являются файлы, которые образуются, используются и существуют только во время работы данной программы. Примерами внутренних файлов могут служить исходные данные в стандартном файле ввода Input или итоги выполнения программы в стандартном файле вывода Output. Файлы, которые существуют за программой, называются внешними файлами. Внешние файлы должны быть описаны в разделе описаний программы.
Описание файлов имеет следующий вид: Type имя типа = file of базовый тип; Var имя файла : имя типа; Или Var имя файла : file of базовый тип;
В качестве базового типа элементов файла можно использовать любой тип данных кроме типа file.
Стандартные процедуры и функции для работы с файлами.
Процедуры: Assign (var F : file; Name : string); - связывает имя файловой переменной F в программе с именем внешнего файла на диске Name. Если вместо Name указать ‘’,то файл F окажется связанным со стандартным файлом ввода Input или со стандартным файлом вывода Output (в зависимости от того, как он был открыт – для чтения или для записи). После выполнения процедуры Assign все действия над переменной F будут эквивалентны действиям над файлом, что определяется спецификацией Name. Процедуру Assign необходимо использовать до начала работы с файлом. Reset (var F : file); - открывает файл F для чтения. При этом указатель файла устанавливается на первый элемент файла. Rewrite (var F : fale); - открывает новый файл F для записи. При этом уничтожается вся предыдущая информация в F. Read (var F : file; x1, x2, …, xn); - считывает в переменную x1 один элемент файла F (или несколько элементов в переменные x1, x2, …, xn), начиная считывание с элемента, на который показывает указатель. Write (var F : file; x1, x2, …, xn); - записывает одно (x1) или больше (x1, x2, …, xn) значений переменных в файл F, начиная с той позиции, на которую поставлен указатель. Close (var F : file); - закрывает файл F. Seek (var F : file; N : longint); - устанавливает указатель файла к элементу с номером N. При этом первый
элемент файла имеет номер N=0, второй – N=1 и т.д. Позволяет осуществить прямой доступ к элементам файла F. Erase (var F : file); - уничтожает внешний файл, связанный с файловой переменной F. Rename (var F : file; NewName : string); - присваивает внешнему файлу, связанному с файловой переменной F, новое имя NewName.
Функции:Относительно определения, количество элементов файла не задаётся, поэтому в Turbo Pascal для нахождения конца файла введена функция: Eof (var F : file) : Boolean, Если достигнут конец файла, Eof принимает значение True, в противном случае – False. FilePos (var F : file) : longint – позволяет определить бегущее положение указателя (номер элемента). FileSize (var F : file) : longint – позволяет определить размерность (количество элементов) файла.
Чтение файла.
Под чтением файла понимают ввод данных с внешнего файла, который находится на диске, в оперативной памяти. Внешний файл, с которого читаются данные, называют входным файлом.
Для чтения файла в программе необходимо выполнить следующие действия: Открыть файл для чтения (Reset (F)) Ввести данные файла в программу (Read (F, x1, x2, …, xn)) Закрыть файл для чтения (Close (F)).
Запись в файл.
Под записью в файл понимают вывод результатов работы программы из оперативной памяти на диск, это значит создание нового файла на внешнем устройстве. Внешний файл, на который записываются данные из программы, называют выходным.
Для записи файла в программе необходимо выполнить следующие действия: Открыть файл для записи (Rewrite (F)) Вывести данные из программы в файл (Write (F, x1, x2, …, xn)) Закрыть файл для записи (Close (F)).
Добавление данных в файл.
Пусть необходимо к уже существующему файлу добавить ряд элементов. Для этого необходимо выполнить следующие действия: Открыть уже существующий файл процедурой (Reset (F)) Установить указатель файла на последний его компонент процедурой (Seek (F, FileSize (F))) Записать дополнительные данные (Write (F, x1, x2, …, xn)) Закрыть файл (Close (F)).
Прямая выборка элементов файла.
Можно осуществить прямой выбор элементов файла. Для этого используется процедура Seek (F, N);, где F – имя файла, который был раньше открыт процедурой Reset (F);, N – целое положительное число, которое соответствует порядковому номеру элемента в файле.
После выполнения процедуры Seek (F, N) первое обращение к операторам Read или Write будет связано с N-м элементом файла.
Используя процедуру Seek, можно корректировать отдельные элементы файла непосредственно. Для этого необходимо выполнить следующие действия:
Открыть файл, который корректируется (Reset (F)); 1) Подвести указатель файла к элементу, который корректируется (Seek (F, N)); 2) Прочитать элемент, который корректируется (Read (F, x)); 3) Откорректировать элемент файла (заменить x); 4) Повторить процедуру подведения указателя файла (Seek (F, N)); 5) Записать откорректированный элемент (Write (F, x)); Закрыть файл (Close (F)).
13. Опр-е классов в C#: члены; ф-ма опр-я класса; библиотека базовых классов .NET. Конструкторы. Параметриз. конструкторы. Оператор new. Типы значений и ссылочные типы. Динамич. использ-е памяти: стеки и кучи. Упаковка и распаковка.
Все C# - программы оформляются в виде класса. Определяя класс, мы определяем данные, которые он содержит, и код, манипулирующий этими данными. Данные содержатся в переменных экземпляров, определяемых классом, а код в методах. Класс определяет также ряд специальных членов. Например, статистические переменные, конструкторы, деструкторы, индексаторы, события, операторы и свойства.
Класс создается с помощью ключевого слова class. Общая форма определения класса, который содержит только переменные экземпляров и методы, имеет следующий вид:
class Имя_класса
{ // Объявление переменных экземпляров
доступ тип переменная 1;
…..
доступ тип переменная n;
// Объявление методов
доступ тип_возвращаемого_значения Имя_метода1 (список параметров)
{
// тело метода
}
доступ тип_возвращаемого_значения Имя метода2 (список параметров)
{
// тело метода
} ... }
Библиотека базовых классов .NET - public, private, protected, internal и др.,
public (общий, открытый член класса) — обращения к члену класса допускаются из любого места программного кода;
private (закрытый, внутренний член класса) — обращения к члену класса допускаются только из кодов методов класса, в котором он определен. Любые наследники класса уже не смогут получить доступ к этому члену.
По умолчанию (без указания спецификатора доступа) будет установлен доступ private.
Конструкторы. Параметризованные конструкторы. Конструктор – это специальный метод, который инициализирует объект при его создании.
Формат записи конструктора:
доступ Имя_класса(список параметров)
{ //тело конструктора }
Характеристики конструктора:
1) имя конструктора совпадает с именем класса;
2) конструктор не может возвращать значение, даже void (неопределенный тип значения);
3) конструкторы могут быть перегружены (иметь одинаковые имена, но разные списки параметров).
Обычно в качестве модификатора доступа используется public, т.к. конструктор вызывается вне класса. Если конструктор не создан, то компилятор C# автоматически предоставляет конструктор по умолчанию, который инициализирует все члены-переменные, имеющие числовые типы, нулями, а члены-переменные ссылочного типа (строки, массивы, объекты классов) – null- значениями.
Параметризованные конструкторы. В классе может быть несколько конструкторов, например, конструктор без параметров, конструктор с параметрами (параметризованный конструктор), конструктор-копировщик. Параметризованные конструкторы принимают один или несколько параметров, чтобы инициализировать объект в момент его создания соответствующими значениями. Какой конструктор вызвать компилятор определяет по его сигнатуре (списку параметров).
Ключевое слово this. При вызове конструктора или метода класса ему автоматически передается неявно заданный аргумент, который представляет собой ссылку на вызывающий объект. Слово this можно использовать для доступа к членам-переменным класса в теле конструктора (метода), если имена параметров совпадают с именами членов-переменных.
Пример определения класса:
public MyClass( double a, double b)
{
this.a=a;
this.b=b;
Console.WriteLine(.Работает конструктор с параметрами.);
}
Использование оператора new. Чтобы протестировать конструкторы и методы класса, в Main( ) нужно создать экземпляр (объект) класса. Для этого нужно определить ссылочную переменную класса следующим образом:
Имя_класса Имя_переменной = new Имя_класса(…);
Создание экземпляра класса (объекта) происходит в следующей строке MyClass ob1=new MyClass();. Здесь выполняются два действия. Во-первых, объявляется переменная ob1 классового типа MyClass. Но эта переменная не определяет объект, а может лишь ссылаться на него. Во-вторых, рассматриваемое объявление создает новый объект и присваивает переменной ob1 ссылку на этот объект. Оператор new динамически (т. е. во время выполнения программы) выделяет память для объекта и возвращает ссылку на него. Эта ссылка (сохраненная в конкретной переменной ob1) служит адресом объекта в памяти, выделенной для него оператором new. Такое определение объекта называется ранним связыванием.
Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка. Все типы в C# разделяются на две основные разновидности: структурные типы (value- based) или типы значений (простые типы, структуры и перечисление) и ссылочные типы (reference- based).
Стек резервируется для хранения данных, создаваемых во время выполнения программы. В стеке применяется принцип обслуживания типа LiFO (Last in First Out – последний пришел, первым обслужен). Согласно этому методу, первым обрабатывается последний из поступивших запросов.
Ссылочные типы (классы, интерфейсы, массивы, строки) хранят ссылки на данные, вместо действительных значений и ведут себя по-другому Память для ссылочных переменных выделяется в управляемой (динамической) куче. Ссылочная переменная содержит информацию о месте хранения, т.е. ссылку на данные. Когда операционная система запускает приложение на выполнение, CLR резервирует непрерывный диапазон адресов адресного пространства, который называют управляемой кучей. Выделение памяти из кучи в среде .NET происходит очень быстро. После того как приложение использует оператор new для создания объекта, CLR проверяет, доступно ли в куче необходимое количество байт для запрашиваемого объекта. Система возвращает указатель на эту память и переводит указатель на следующий после последнего объекта адрес. В начальный момент,
когда в куче еще нет ни одного объекта, этот указатель указывает на базовый адрес зарезервированного адресного пространства.
Упаковка и распаковка. В C# предусмотрен очень простой механизм для преобразования структурного типа в ссылочный. Он получил название упаковки (boxing). Предположим, что у нас есть переменная простого структурного типа данных short: short S=25;
А вот как выглядит процесс упаковки – преобразование объекта структурного типа в ссылочный: object objshort=s;
Упаковка – это процесс явного преобразования структурного типа в ссылочный. При этом происходит следующее: в управляемой куче создается новый объект и в него копируются внутренние данные из стека (число 25).
Противоположная операция называется распаковкой (unboxing). Распаковка – это преобразование ссылки на объект в оперативной памяти обратно в структурный тип. Перед выполнением распаковки среда выполнения CLR производит проверку на совместимость между типом объекта в оперативной памяти и тем структурным типом, в который будет производиться распаковка:
Объект С
Объект В
Объект А
short anotherShort=(short) objshort;
Сбор «мусора» и использование деструкторов. В ситуации, когда после использования памяти, выделенной для ресурса, она не освобождается, или доступ к ресурсу продолжается, несмотря на освобождение памяти, работа приложения становится нестабильной и непредсказуемой. Для предотвращения подобных проблем разработана программа сборщика мусора. Сборщик мусора – один из наиболее важных компонентов среды CLR. Сборщик мусора освобождает память, занимаемую неиспользуемыми объектами. Иными словами, при удалении последней ссылки на объект он становится кандидатом на удаление сборщиком мусора. Основная проблема сборки мусора заключена в том, что невозможно точно предсказать, когда сборщик мусора освободит память. Обычно это происходит при недостатке объема памяти для хранения данных создаваемых объектов.
Деструктор – это специальный метод, который вызывается перед тем, как объект будет окончательно разрушен системой сбора мусора. Деструктор используется для операций освобождения памяти, выделенной для объектов класса.
Формат записи деструктора:
~Имя_класса ( )
{
// тело деструктора
}
Характеристики деструктора:
1) имя деструктора совпадает с именем класса;
2) для деструктора неявно устанавливается спецификатор доступа public;
3) деструктору нельзя передать аргументы, поэтому в классе может быть определен только один деструктор;
4) деструктор не возвращает значения.
Деструктор вызывается в момент, предшествующий процессу утилизации объекта. В теле деструктора указываются действия, которые должны быть выполнены перед разрушением объекта.
14. Пользовательские методы класса: определение методов класса; модификаторы доступа к методам класса. Модификаторы ref, out, params параметров методов. Возращение методами объектов класса; возвращение методами массивов.
Метод – это набор действий, который рассматривается как единое целое и может быть выполнен в ходе работы программы. В C# не существует глобальных методов. Любой метод обязательно должен быть членом класса или структуры. Методы могут принимать или не принимать параметры, могут возвращать или не возвращать значения, могут быть статическими (например, методы класса Math) или обычными методами экземпляров.
Модификаторы доступа к методам класса:
рublic (общий) – общедоступный метод, доступен вне определения класса и иерархии производных классов;
private (частный, закрытый) – метод недоступен за пределами области видимости определяющего его класса. Поэтому доступа к этим методам нет даже у производных классов. По умолчанию установлен модификатор доступа private. Рrivate-методы применяют при создании класса как вспомогательные методы;
protected (защищенный) – метод будет доступен как из класса, в котором он определ.н , так и из любого производного класса. Для остальных вызовов из внешнего мира этот метод будет недоступен;
internal (внутренний)– метод будет доступен из всех классов внутри сборки, в которой он определ.н. За пределами этой сборки обратиться к нему невозможно;
protected internal – для обеспечения дополнительной гибкости; к члену класса могут иметь доступ либо классы из той же сборки, либо подклассы данного класса.
Как происходит передача аргументов (фактических параметров) методу класса (формальным параметрам)?
1)Способ передачи аргумента встроенного типа называется вызовом по значению (call-by-value). Значения аргументов копируются в формальные параметры метода. Вывод: При передаче методу значения структурного типа происходит вызов по значению.
2)Способ передачи аргумента ссылочного типа называется вызовом по ссылке (cale-by-reference). Это значит, что изменения, внесенные в параметр, воздействуют на аргумент, используемый при вызове метода. Вывод: Объекты передаются методу путем вызова по ссылке. Модификатор ref параметров методов. Если не ссылочный параметр передается методу по значению, то, изменяя параметр, мы не влияем на реальный аргумент. Однако такое поведение можно изменить, т.е. позволить методу менять аргументы. Для таких случаев используется модификатор параметра метода ref (от слова reference – ссылка). Модификатор параметра метода ref позволяет передавать не
копию значения, а его адрес. Модификатор параметра метода ref можно также использовать для получения нескольких значений из метода.
Примечания:
1) Модификатор ref должен быть указан и перед параметром в методе, и перед аргументом в вызове метода.
2) Аргументу, передаваемому методу со словом ref, должно быть присвоено значение до вызова метода, ведь параметр должен ссылаться на действительное значение.
3) ref обычно применяют для того, чтобы метод внес изменения в существующие значения (например, обмен значениями, сортировка массива, или преобразование массива).
Модификатор out параметров методов чаще всего используется не для передачи значения методу, а для его получения из метода. Модификатор out работает точно так же, как и модификатор ref с единственным исключением: в метод out-аргументы можно передавать и не инициализируемыми. Тогда переменной (аргументу со словом out) присваивать начальное значение до вызова метода не нужно.
Примечание: Метод до своего завершения обязательно должен присвоить out-параметру полученное значение.
Модификаторы ref и out можно применять и к ссылочным параметрам, т.е. параметрам-объектам. В этом случае реализуется передача ссылки по ссылке. Это позволяет методу изменять объект, на который указывает ссылка-параметр.
Модификатор params используется для объявления параметра-массива, который сможет получить некоторое количество аргументов (в том числе и нулевое). Количество элементов в массиве будет равно числу аргументов, переданных методу.
Примечания: В любом методе может быть только один модификатор params. Параметр с модификатором params должен быть только последним параметром в списке параметров метода.
Возвращение методами объектов класса
Метод может возвращать данные любого типа, в том числе классового. В тех случаях, когда метод возвращает объект, существование этого объекта продолжается до тех пор, пока на него есть хотя бы одна ссылка. И только когда на объект больше нет ни одной ссылки, он подвергается утилизации, т.е. попадает в поле действия процесса сбора мусора. Таким образом, объект не будет разрушен только по причине завершения метода, который его создал.
Возвращение методами массивов
Так как в C# массивы реализованы как объекты, метод может возвратить и массив. Для этого в заголовке метода в качестве возвращаемого значения нужно указать тип элементов массива и [] (оператор массива). Далее, в теле метода, нужно создать массив или получить его в качестве параметра, выполнить необходимые действия и в операторе return указать имя массива.
