рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Работа с массивами как с объектами

Работа с массивами как с объектами - раздел Программирование, Основы алгоритмизации и объектно-ориентированного программирования В C# Массивы Являются Объектами (Экземплярами). Класс ArrayПредоставл...

В C# массивы являются объектами (экземплярами). Класс Arrayпредоставляет методы для создания, изменения, поиска и сортировки массивов, т.е. выступает в роли базового класса для всех массивов.

Если мы поставим точку после имени массива, например, a, то мы получим доступ к методам экземпляра и свойствам экземпляра типа Array.

 

double[] a = new double[5] {

4.0, -3.0, 4.0, -5.0, 7.0 };

Console.WriteLine(a.Length);

Console.WriteLine(a.Rank);

Для одномерного массива размера 5 выбраны свойства, возвращающие длину массива и размерность массива, которые выводятся на консоль.

Поставив точку после имени типа Array, мы получаем доступ к методам типа Array. Выберем в качестве примера статический метод Sort и укажем в качестве его параметра имя массива a.

double[] a = new double[5] { 4.0,-3.0,9.0,-5.0,7.0 };

Array.Sort(a);

for (int i = 0; i < a.Length; i++)

Console.Write("{0:f1} ", a[i]);

Console.WriteLine();

В результате работы программы мы получили массив, элементы которого упорядочены по возрастанию.

Пример 3.1. Задан массив x, содержащий 14 элементов. Вставить после максимального элемента новый элемент, значение которого равно среднему арифметическому положительных элементов, расположенных перед максимальным элементом:

const int n = 15;

double[] x = new double[n]{

5.0, -7.0, -9.0, 6.0, 4.0, 12.0, 2.0,

8.0, 7.0, 6.0, 5.0, 3.0, 1.0, 1.0, 0.0};

//Поиск максимального элемента и его индекса

double amax = x[0];

int imax = 0;

for (int i = 0; i < n; i++)

{

if (x[i] > amax)

{

amax = x[i];

imax = i;

}

}

//Нахождение среднего арифметического

double s = 0.0;

int k = 0;

for (int i = 0; i < imax; i++)

{

if (x[i] > 0)

{

s += x[i];//вместо = s = s + x[i]

k++;

}

}

double sr = s / k;

//вставка нового элемента

for (int i = n - 2; i >= imax + 1; i--)

x[i + 1] = x[i];

x[imax + 1] = sr;

for (int i = 0; i < n; i++)

Console.Write("{0:f} ", x[i]);

Console.WriteLine();

Console.ReadKey();

Пример 3.2. Упорядочить положительные элементы массива a, содержащего 7 элементов, по убыванию, оставив отрицательные элементы массива на прежних местах:

const int n = 7;

int[] a = new int[n] { 4, 7, 9, -10, 3, -12, 8 };

for (int i = 0; i < n - 1; i++)

{

if (a[i] > 0)

{

int amax = a[i];

int imax = i;

for (int j = i + 1; j < n; j++)

{

if (a[j] > amax)

{

amax = a[j];

imax = j;

}

}

a[imax] = a[i];

a[i] = amax;

}

}

 

for (int i = 0; i < n; i++)

Console.Write("{0:d} ", a[i]);

Console.ReadKey();

Пример 3.3. Включить заданное значение p в качестве элемента в массив x, содержащий 12 элементов, с сохранением упорядоченности (массив упорядочен по убыванию):

const int n = 13;

int[] x = new int[n] {

18, 15, 14, 13, 12, 9,

8, 7, 6, 5, 4, 3, 0 };

int p = 10;

int i;

for (i = 0; i < n - 1; i++)

if (x[i] < p) break;

for (int k = n - 2; k >= i; k--)

x[k + 1] = x[k];

x[i] = p;

for (i = 0; i < n; i++)

Console.Write("{0:d} ", x[i]);

Console.WriteLine();

Console.ReadKey();

Пример 3.4. Массив M содержит оценки 25 студентов по курсу «Информатика». Определить, сколько студентов получили оценку «5», «4», «3», «2» или «0» (в случае неявки на экзамен).

Исходные данные содержатся в массиве M размера 25. Результат получим в массиве K размера 5, где каждый элемент содержит количество соответствующих оценок. Сформируем также вспомогательный массив MK размера 5, в который поместим сами оценки:

int[] M = new int[25] { 4, 4, 5, 0, 2,

3, 0, 3, 3, 3,

4, 3, 0, 4, 4,

5, 2, 4, 3, 4,

3, 3, 5, 4, 4 };

int[] MK = new int[5] { 5, 4, 3, 2, 0 };

int[] K = new int[5];

int i;

for (i = 0; i < 25; i++)

if (M[i] == 0) K[4]++;

else K[5 - M[i]]++;

for (i = 0; i < 5; i++)

Console.Write("{0:d} - {1:d}, ", MK[i], K[i]);

Console.WriteLine();

Console.ReadKey();

Здесь само значение оценки в массиве М (т.е. М[i]) связано с индексом j соответствующего элемента в массиве МK: j = 5 – M[i], т.е. количество оценок «5» будет помещаться в 1-й элемент массива МK, количество оценок «4» – во 2-й элемент массива МK и т.д. Исключение составляют только значения «0», количество которых необходимо поместить в 5-й элемент массива МK, что и сделано в программе отдельно.

Вопросы для самопроверки

1. Понятие массива. Элемент массива. Индекс элемента массива. Описание массива. Ввод массива. Организация вывода массива в строку, в столбец.

2. Суммирование элементов массива. Суммирование элементов массива, удовлетворяющих условию.

3. Формирование другого массива из элементов заданного массива, удовлетворяющих условию. Перестановка элементов массива.

4. Удаление элемента массива. Включение элемента в массив.

5. Нахождение максимального (минимального) элемента массива.

6. Упорядочение элементов массива.

7. Массивы как объекты. Доступ к методам и свойствам экземпляра типа Array.

8. Доступ к методам типа Array.

Задание для самостоятельного выполнения

1. Найти сумму элементов одномерного массива размера 6. Разделить каждый элемент исходного массива на полученное значение. Результат получить в том же массиве.

2. Положительные элементы массива заменить средним арифметическим среди положительных элементов.

3. Каждый отрицательный элемент заменить первым положительным из расположенных после него.

4. Вычислить сумму и разность двух одномерных массивов размера 4. (Суммой (разностью) двух массивов одинакового размера называется третий массив такого же размера, каждый элемент которого равен сумме (разности) соответствующих элементов исходных массивов.)

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

6. Вычислить скалярное произведение двух векторов размера 4. (Скалярным произведением называется сумма попарных произведений соответствующих элементов массивов.)

7. Вычислить длину вектора размера 5. (Длина вектора вычисляется по формуле

.)

8. Элементы одномерного массива, большие среднего значения элементов массива, заменить на 0.

9. Подсчитать количество отрицательных элементов заданного одномерного массива.

10. Определить, сколько элементов заданного одномерного массива больше среднего значения элементов этого массива.

11. Дан одномерный массив размера 10 и два числа P и Q (P < Q). Определить, сколько элементов массива заключено между P и Q.

12. Сформировать массив из положительных элементов заданного массива размера 10.

13. Определить значение и номер последнего отрицательного элемента массива размера 8.

14. Дан массив размера 10. Сформировать два массива размера 5, включая в первый массив элементы исходного массива с четными индексами, во второй – с нечетными.

15. Найти сумму квадратов элементов, расположенных до первого отрицательного элемента массива.

16. Дан одномерный массив размера 10. Минимальный элемент массива увеличить в два раза.

17. Дан одномерный массив размера 10. Найти сумму элементов, расположенных до максимального элемента массива.

18. Все элементы одномерного массива, расположенные перед минимальным, увеличить в 2 раза.

19. В одномерном массиве все элементы, расположенные после максимального, заменить средним значением элементов массива.

20. Задан одномерный массив размера 10. Сформировать другой одномерный массив из отрицательных элементов, расположенных между максимальным и минимальным элементами исходного массива.

21. Задан одномерный массив и число P. Включить элемент, равный Р, после того элемента массива, который наиболее близок к среднему значению его элементов.

22. Увеличить в 2 раза элемент, расположенный непосредственно после максимального элемента массива.

23. Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального.

24. Найти среднее арифметическое значение элементов массива, расположенных между минимальным и максимальным элементами массива.

25. Удалить минимальный среди положительных элементов массива.

26. Включить заданный элемент после последнего положительного в массиве.

27. Первый отрицательный элемент массива заменить суммой элементов, расположенных после максимального.

28. Максимальный элемент массива среди элементов с четными индексами заменить значением его индекса.

29. Найти все максимальные элементы одномерного массива (предполагается, что в массиве несколько одинаковых максимальных элементов) за один проход исходного массива. Сформировать массив из их индексов.

30. В одномерном массиве увеличить максимальные элементы на их порядковые номера (1-й максимальный – на 1; 2-й – на 2; 3-й – на 3 и т.д.).

31. В одномерном массиве размера 14 поменять местами соседние элементы (1-й со 2-м, 3-й с 4-м и т.д.), распложенные перед максимальным элементом массива.

32. Упорядочить по возрастанию элементы массива с четными индексами (остальные элементы оставить на своих местах).

33. Задан массив В. Максимальный элемент (или максимальные элементы, если их несколько) заменить суммой элементов массива, расположенных до него (до каждого из них, если их несколько).

34. В массиве А найти максимальное количество следующих подряд упорядоченных по убыванию элементов.

35. Заданы массивы А и В, содержащие n и m элементов соответственно. Вставить массив В между k-м и (k + 1)-м элементами массива А (k задано).

36. Задан массив х размера 10. Вычислить значения функции у = 0,5lnx при значениях аргумента, заданных в массиве х. Вычисленные значения поместить в массив y. Вывести массивы х и y в виде двух столбцов.

37. Поменять местами максимальный и первый отрицательный элементы массива.

38. Все отрицательные элементы переставить в конец массива с сохранением порядка их следования.

39.Определить индексы элементов массива, меньших среднего. Результат получить в виде массива.

40. Упорядочить по убыванию положительные элементы массива, сохраняя остальные элементы на прежних местах.

41. В заданной последовательности чисел длиной n (n £ 100) определить длину самой большой упорядоченной по возрастанию подпоследовательности.

42. В массиве, заполненном наполовину, продублировать все элементы с сохранением порядка следования. (Например, задан массив Х = (3, 8, ...), получить массив Х = (3, 3, 8, 8, ...)).

43. Из массива удалить повторяющиеся элементы. Массив сжать.

44. Вычислить значения функции y = cosx + xsinx в n точках отрезка [a,b]. Результат получить в двух массивах х (аргумент), y (функция). Используя сформированные массивы, определить все значения аргумента, при которых функция имеет максимум или минимум (включая локальные). Для точек, в которых достигается экстремум, вывести значения аргумента, функции и вид эстремума (максимум или минимум).

Указание. Функция имеет локальный (или глобальный) максимум со значением yi (из массива Y) при значении аргумента xi (из массива Х), если значения функции yi–1 и yi+1 в двух соседних точках меньше yi. Аналогично для минимума.

45. Из массива размера 12 удалить все отрицательные элементы. Массив сжать.

– Конец работы –

Эта тема принадлежит разделу:

Основы алгоритмизации и объектно-ориентированного программирования

Федеральное государственное образовательное учреждение высшего профессионального образования Национальный исследовательский технологический.. Кафедра инженерной кибернетики Т В Куренкова Г И..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Работа с массивами как с объектами

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Переменные. Типы данных
C# имеет две разновидности типов: типы значений и ссылочные типы. Переменные, основанные на типах значений, содержат непосредственно значения. Переменные ссылочных типов сохраняют ссылки (адреса в

Литералы
Литералы используются в тексте программы для обозначения числовых значений, строк символов или логических констант. Другими словами, литерал представляет собой постоянное значение, у которого нет и

Порядок вычисления выражения в программе
1. Вычисляется Cos(x) обращением к методу Cos(x)класса Math (обозначим результат через p1). 2. Вычисляется 6 + p1 (обозначим результат этой операции через p2). 3. Вычисляется x &a

Ввод данных
Ввод данных осуществляется следующим образом: из входного потока при помощи метода ReadLine (класса Сonsole) считывается строка символов. Ее значение присваивается какой-либо переменной типа string

Вывод данных
Вывод данных осуществляется с использованием метода WriteLine (или Write) (класса Сonsole). После выполнения WriteLine производится перевод строки и последующий вывод происходит в новую строку. Пос

Циклы по счетчику
Рассмотрим вначале циклы по счетчику, т.е. когда количество повторений цикла известно до начала его выполнения. При организации цикла по счетчику необходимо: 1) выделить по

Циклы по условию
Циклы по условию необходимо организовывать, когда количество повторений цикла неизвестно и в ряде случаев является искомой величиной при решении задачи. Средства языка C# для организации цик

Вложенные циклы
Пример 2.13. Вычислить при x, изменяющемся в пределах от 0,1 до 1 с шагом 0,05. Вначале ограничимся вычисле

Одномерные массивы и алгоритмы их обработки
Все массивы должны быть объявлены и инициализированы перед их использованием. При объявлении массива нужно указать тип элементов массива (элементы массива могут быть любых типов), далее следуют пус

Работа с матрицами
Матрица – это двухмерный массив, который можно представить себе как совокупность строк (или совокупность столбцов). Положение элемента в массиве определяется двумя индексами: номером строки

Использование структур
Массивы состоят из элементов одного типа. В тех случаях, когда единообразно нужно обрабатывать наборы данных, представляющих совокупность величин различного типа, рассматривая их как единое целое,

Использование массивов в качестве параметров
Массив является ссылочным типом и если массив является параметром метода, то передача его всегда осуществляется по ссылке, независимо от наличия ключевого слова ref. Поскольку массивы являются ссыл

Работа с текстовыми строками
Текстовые строки – переменные типа string – могут содержать любое количество символов. Каждый символ представлен в кодировке UNICODE, предполагающей представление одного символа в 2 байтах п

Файлы данных (Пространство имен System.IO). Файлы и потоки
Файл данных – это совокупность (последовательность) компонент, имеющая имя, расположенная на внешнем носителе. Файлы могут быть объединены в каталоги (директории, папки), также имеющие имя.

Работа с элементом управления Button
Button – класс пространства имен System.Windows.Forms, представляет элемент управления Windows «Кнопка». 1. В меню «Вид» выберите команду «Панель элементов», чтобы открыть список элементов

Работа с элементом управления RichTextBox
Элемент управления Windows Forms RichTextBox используется для отображения, ввода и изменения текста (если необходимо, с форматированием). Методы этого класса предоставляют возможности, схожие с воз

Создание объекта Graphics пространства имен System.Drawing для рисования
Класс Graphics является основой интерфейса GDI+ (специальная библиотека). Этот класс непосредственно выполняет рисование прямых и кривых линий, геометрических фигур, вывод рисунков и текста.

Открытие существующего проекта
В меню «Файл» выберите команду «Открыть проект». Откроется окно «Открыть проект». В этом окне проект необходимо войти в папку ConsoleApplication1 (или другое имя, которое вы выбрали для консольного

Обозреватель решений
В меню «Вид» выберите команду «Обозреватель решений». Откроется окно «Обозреватель решений». В окне «Обозреватель решений», в виде иерархического дерева показаны все файлы проекта. Если в открытом

Значки обозревателя объектов
В обозревателе объектов отображаются значки, служащие для представления сущностей кода, таких как пространства имен, классы, функции и переменные. Обозреватель объектов позволяет выбирать

Платформа Microsoft .NET Framework
Microsoft .NET технология предоставляет: 1) современный набор инструментальных средств для разработки программного обеспечения; 2) общеязыковую исполняющую среду, которая предоста

Таблицы встроенных типов
Таблица целых типов Тип Диапазон Размер sbyte От –128 до 127 8-разрядное целое число с

Региональные стандарты
Региональные стандарты выбираются как параметры установки пользователем при установке Windows. Платформа .NET Framework предоставляет широкие возможности для разработки международных прило

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги