Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 36

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 36 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 362019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 36)

Многомерным называется такой массив, который отличается двумя или более измерениями, причем доступ к каждому элементу такого массива осуществляется с помощью определенного сочетания двух или более индексов. 17В Часть!. Язык СЗ Двумерные массивы Простейшей формой многомерного массива является двумерный массив. Местоположение любого элемента в двумерном массиве обозначается двумя иидексами.

Такой массив можно представить в виде таблицы, иа строки которой указывает один иидекс, а иа столбцы — другой. В следующей строке кода объявляется двумерный массив 1псечег размерами 10х20: зпС[, ) Савве = пеы 1пС [10, 20]; Обратите особое внимание иа объявление этого массива. Как видите, оба его размера разделяются запятой. В первой части этого объявления синтаксическое обозначение означает, что создастся переменная ссылки иа двумерный массив.

Если же память распределяется для массива с помощью оператора пеы, то используется следующее сиитаксическое обозначение: 1пС[10, 20] В данном объявлеиии создается массив размерами 10х20, ио и в этом случае его размеры разделяются запятой. Для доступа к элементу двумерного массива следует указать оба индекса, разделив их запятой. Например, в следующей строке кода элементу массива Саиге с координатами местоположения (3,5) присваивается значение 10: СаЬ1е[э, 5] = 10( Ниже приведен более наглядный пример в виде небольшой программы, в которой двумерный массив сначала заполняется числами от 1 до 12, а затем выводится его содержимое.

// Продемонстрировать двумерный массив. нязпЧ Зуясемт с1аяя тноР ( вкаС1с то16 Ма1п() ( 1пС С, 1; ъпс[,] саЪ1е = пен 1пс[3, 4]> гог(с=от с < з; ььс) ( Гог(1=04 1 < 4; ++1) ( СаЬ1е[С,'] = (С*4)е ь1; Сопяо1е.ыс).Се(СаЬ1е[С, 1] + " "); ) Сопяо1е.исъсеьъпе() т ) ) В данном примере элемент массива саЬ1е [О, О] будет иметь значение 1, элемент массива саьге [О, 1] — значение 2, элемент массива саь1е [О, 2] — значение 3 и тд. А значение элемента массива саЬ1е [2, 3] окажется равным 12. На рис.

7.1 показано схематически расположение элементов этого массива и их значений. Глава 7. Массивы а строки 179 0 1 2 3< — правый индекс левый (аые[1][2] Рис. 7.1. Схематическое представление массива са)з1е, СОЗДаннагО в прсграМмв т о На заметку! Если вы ранее программировали на С, С++ или ]аоа, гпо будьте особенно внимательны, обьяеляя или организуя доступ к многомерным массивам в С№. В этих языках программирования размеры массива и индексы указываются в отдельных квадратных схобках, тогда как в С№ они разделяются запятой.

Массивы трех и более измерений В С№ допускаются массивы трех и более измерений. Ниже приведена общая форма объявления многомерного массива. тип[,..., ] нмя массива = пен тнп[резмер1, резмер2, ... размеры]; Например, в приведенном ниже объявлении создается трехмерный целочисленный массив размерами 4х10хЗ. ъпь[,,] вц1К101в = пен 1пс[4, 10, 3]г А в следующем операторе элементу массива вц111г]1в с координатами местоположения [2,4,1) присваивается значение 100: вц1С161в[2, 4, 1] = 100) Ниже приведен пример программы, в которой сначала организуется трехмерный массив, содержащий матрицу значений Зхдхд. А затем значения элементов этого массива суммируются по одной из диагоналей матрицы.

// Суммировать значения по одной из диагоналей // матрицы ЗхЗхЗ. цз1пч Бузкееи с1азз ТьгееОМакгух ( зкакгс то1с( Ма1п() ( 1пк[,,] в = пен 1пс[3, 3, 3]г 1пк зцв = Ог 1пк и = 1; лог(тпк х=04 х < Зг хьь) лог(1пс у=04 у < Зг уьь) Гок(1пь г=сг г < Зг гьь) в[х, у, г] = и н-; 180 Часть ). Язык С№ зцв = и[0, О, 0] 4 в[1, 1, 1] + и[2, 2, 2]) Сопзо1е.вггкеЬ1пе("Сумма значений по первой диагонали: " + вцв); ) ) Вот какой результат дает выполнение этой программы: Сумма значений по первой диагонали: 42 Инициализация многомерных массивов Для инициализации многомерного массива достаточио заключить в фигурные скобки список ииициализаторов каждого его размера. Ниже в качестве примера приведена общая форма инициализации двумерного массива.

тип[,) имл массива = ( (га1, га1, уа1, ..., га1], (га1, 1а1, 1а1, ..., га1], (уа1, уа1, уа1, ..., уа1] )' где уа1 обозначает инициализирующее значение, а каждый внутренний блок — отдельиый ряд. Первое значение в каждом ряду сохраняется иа первой позиции в массиве, второе зиачеиие — иа второй позиции и т.д. Обратите внимание иа то, что блоки ииициализаторов разделяются запятыми, а после завершающей эти блоки закрываюшей фигурной скобки ставится точка с запятой. В качестве примера ниже приведена программа, в которой массив зс[гз ииициализируется числами от 1 до 10 и квадратами этих чисел.

// Инициализировать двумерный массив. цзьпд зузкев) с1азв эяцагез ( всас1с чо1к) Маьп() ( 1пп[,] впгз = ( ( 1, 1 ( 2, 4 (3, 9], ( 4, 16 (5,25], ( б, 36), [7, 49), ( 8, 64 ( 9, 81 (10, 100) 1пс 1, бог(1=0; 1 < 10) 1++) Глава 7. Массивы и строки 181 тот(1=0; 3 < 2; ]+а) Сопао1е.ыт)те (аята [!.,3] ь " "); Сопио1е.итгтеь1пе(): ) ) При выполнении этой программы получается следующий результат: 11 2 4 3 9 4 16 5 25 б 36 7 49 8 64 9 81 10 100 Ступенчатые массивы В приведенных выше примерах применения двумерного массива, по существу, создавался так называемый прямоугольный массив. Двумерный массив можно представить в виде таблицы, в которой длина каждой строки остается неизменной по всему массиву.

Но в С№ можно также создавать специальный тип двумерного массива, называемый стуленчатькммассивом. Ступенчатый массив представляет собой массив массивов, в котором длина каждого массива может быть разной. Следовательно, ступенчатый массив может быть использован для составления таблицы из строк разной длины. Ступенчатые массивы объявляются с помощью ряда квадратных скобок, в которых указывается их размерность. Например, для объявления двумерного ступенчатого массива служит следуюшая обшая форма: тип[][) ммя массива = пеи тип[размер][]: где размер обозначает число строк в массиве. Память для самих строк распределяется индивидуально, и поэтому длина строк может быть разной.

Например, в приведенном ниже фрагменте кода объявляется ступенчатый массив 3 аддес). Память сначала распределяется для его первого измерения автоматически, а затем для второго измерения вручную. 1пт[! [] Заддес( = пеи тот [3] []; )аддек([0] = пеи тпт(4); 3аддек[(1! = пеи 1пт(3]; )аддек[[2] = пеи 1пт[5]; После выполнения этого фрагмента кода массив ]аддек[ выглядит так, как показано ниже. (аяяек[ (О] [Ц (аяяек] [О] [2] ]анке() [О] [3] ]аййек) [0][0] ]аяяек) [Ц (О] ]аяяек) (Ц[Ц ]аяйек) [1Ц2] ]аяяек) [2][0] (аяйек[ [2][Ц ]аяйек) (2](2] [аяйек) [2][3] [аяяек) [2][4] 182 часть ). Взык с№ Теперь нетрудно понять, почему такие массивы называются ступенчатыми! После создания ступенчатого массива доступ к его элементам осуществляется по индексу, указываемому в отдельных квадратных скобках.

Например, в следующей строке кода элементу массива 3 аддес), находящемуся иа позиции с координатами (2,1), присваивается значение 10: Оаддеа[г)[1) = 10з Обратите внимание иа синтаксические отличия в доступе к элементу ступенчатого и прямоугольного массива. В приведенном ниже примере программы демонстрируется создание двумерного ступенчатого массива. // Продемонстрировать применение ступенчатых массивов.

пв1пд Бувсеиз с1авв Оаддес ( вгаг1с чо10 ма1п() ( зпс[] (] Оаддео = пеи 1пь[3] [) з )аддео[0] = пен тпг[4)з Заддей[1] = пен тпс[3); Оаддео[2] = пен 1пс[5)," 1пс 1) // Сохранить значения в первом массиве. Гог(1=Оз 1 < 4; 1++) Оаддез)[0][1] = з.з // Сохранить значения во втором массиве. тот(г=Оз 1 < Зз 1++) Оаддес[1![1] = 1з // Сохранить значения в третьем массиве.

Хог(1=Оз г < 5з 1ьь) )аддеп[2] [1] = 1; // Вывести значения из первого массива. Гог(1=Оз г < 4з 1++) Сопво1е.иг1се(3аддес[0] [1] + " "); Сопво1е.иг1се11пе() // Вывести значения из второго массива. тот(1=0з 1 < Зз г++) сопво1е.иг1ге(1аддес)[1][1) + " "): Сопво1е.иг1сеьтпе()з // Вывести значения из третьего массива. тог(1=0) 1 < 5; 1++) сопво1е.игхге(3аддес[2)[1) + " "); Сопво1е.иг№сеЬ№пе()) ) Глава 7. Массивы и строки 183 Выполнение этой программы приводит к следующему результату: 0123 012 01234 Ступенчатые массивы находят полезное применение не во всех, а лишь в некоторых случаях.

Так, если требуется очень длинный двумерный массив, который заполняется не полностью, т.е. такой массив, в котором используются не все, а лишь отдельные его элементы, то для этой цели идеально подходит ступенчатый массив. И последнее замечание: ступенчатые массивы представляют собой массивы массивов, и поэтому они не обязательно должны состоять из одномерных массивов. Например, в приведенной ниже строке кода создается массив двумерных массивов. ].пс[)[,] засчет( = пен гни[3][,]; В следующей строке кода элементу массива 3 ассе<] [ 0 ] присваивается ссылка на массив размерами 4к2: засчеа(0] = пен ьпя[4, 2] А в приведенной ниже строке кода элементу массива 3 ассе<( [ О] [1, О] присваивается значение переменной 1.

]ачсет][0) [1, 0] = 1) Присваивание ссылок на массивы Присваивание значения одной переменной ссылки на массив другой переменной, по существу, означает, что обе переменные ссылаются на один и тот же массив, и в этом отношении массивы ничем не отличаются от любых других объектов. Такое присваивание не приводит ни к созданию копии массива, ни к копированию содержимого одного массива в другой.

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее