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

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

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

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

ьепдс)г используется в циклах гог для управления числом повторяющихся шагов цикла. У каждого массива имеется своя длина, поэтому вместо отслеживания размера массива вручную можно использовать информацию о его длине. Следует, однако, иметь в виду, что значение свойства Ьепдг)г никак не отражает число элементов, которые в нем используются на самом деле. Свойство Ьепдг]т содержит лишь число элементов, из которых может состоять массив. Когда запрашивается длина многомерного массива, то возвращается общее число элементов, из которых может состоять массив, как в приведенном них<е примере кода. Использовать свойство Ьепдгп трехмерного массива.

ояьпд Буясеяч 190 Часть!. Язык б№ с1аяя ЬепдсьбевоЗО ( япап1с чо1б Магп() ( гпс[,,) опия пен 1пп[10, 5, 6); Сопяо1е.иг1пеььпе("Длина массива поия равна " + опия.ьепдГП) При выполнении этого кода получается следующий результат. Длина массива поия равна 300 Как подтверждает приведенный выше результат, свойство Ьепдгп содержит число элементов, из которых может состоять массив (в данном случае — 300 [10х5хб) элементов).

Тем не менее свойство ьепдс)з нельзя использовать для определения длины массива в отдельном его измерении. Благодаря наличию у массивов свойства Ьепдг[т операции с массивами во многих алгоритмах становятся более простыми, а значит, и более надежными. В качестве примера свойство Ьепдг[т используется в приведенной ниже программе с целью поменять местами содержимое элементов массива, скопировав их в обратном порядке в другой массив. Поменять местами содержимое элементов массива. пягпд Зуясеи) с1аяя Вечсору ( ягап1с чо10 Магд() ( 1пг г,); гпс[) ппия1 = пен 1пс[10); гпс() ппия2 = пеи гпс[10); гог(г=б; г < ппжя1.ьепдгп; г+т) поея1[г) = 1; Сопяо1е.иг1ге("Исходное содержимое массива: ") Гог(1=0; 1 < ппжя2.ЬепдСП; 1++) Сопяо1е.иг1се(ппия1[1) + " "); Сопяо1е.игггеЬ1пе () 1 // Скопировать элементы массива ппия1 в массив поея2 в обратном порядке.

11(ппея2.Ьепдсь >= ппия1.ЬепдГП) // проверить, достаточно ли длины массива ппия2 Гог(1=0, з=пптя1.ЬепдГП-1; 1 < ппия1.ЬепдГП; 1++, 1--) ппия2[1) = ппия1[1); Сопяо1е.иг1пе("Содержимое массива в обратном порядке: "); Гог(1=0) г < ппвя2.Ьепдпьи 1++) Сопяо1е.игьпе (ппия2[г) т " ") 1 Сопяо1е.иг1геЬ1пе()/ ) ) Глава т. Массивы х строки 191 Выполнение этой программы дает следующий результат.

Исходное содержимое массива: 0 1 2 3 4 5 б 7 8 9 Содержимое массива в обратном порядке: 9 8 7 б 5 4 3 2 1 0 В данном прймере свойство ЬепдСЛ помогает выполнить две важные функции. Вопервых, оно позволяет убедиться в том, что длины целевого массива достаточно для хранения содержимого исходного массива. И во-вторых, оно предоставляет условие для завершения цикла Год, в котором выполняется копирование исходного массива в обратном порядке.

Конечно, в этом простом примере размеры массивов нетрудно выяснить и без свойства ЬепдСЛ, но аналогичный подход может быть применен в целом ряде других, более сложных ситуаций. Применение свойства т.епдСЬ при обращении со ступенчатыми массивами Особый случай представляет применение свойства ЬепоСЛ при обращении со ступенчатыми массивами. В этом случае с помощью данного свойства можно получить длину каждого массива, составляющего ступенчатый массив.

В качестве примера рассмотрим следующую программу, в которой имитируется работа центрального процессора (ЦП) в сети, состоящей из четырех узлов. Продемонстрировать применение свойства ЬепчСЛ // при обращении со ступенчатыми массивами. пяьпч зуягещ; с1аяя заччеб ягаС1с усто Маьп() гпС[] [] пегиогс побея = пеи Ьпг[4] [] пегиогк посев[0] = пеи ьпС[3]; пегиогс посев[1) = пеи ьпС[7); пееиосс побея[2] = пеи ьпС[2]; пеСиосс побея[3] = пеи ьпС[5]; 1пс 1, Сфабриковать данные об использовании ЦП. Гос(1=0; 1 < пегиоск посев.ЬепчСЛ; Гог(3=04 3 < пегиогс побея[1].ЬепчСЛ; 3++) пегиоск посев[1][3] = 1 * 3 + 70; Сопяо1е.ис1сеЬ1пе("Общее количество узлов сети: пегиоск побея.ьепдСЛ + "1п"); Гос(я=О; 1 < пегиоск посев.ьепчСЛ; 1++) ( ГОГ(Э=04 3 < ПЕСИОГХ ПОС1ЕЯ[1].ЬЕПОСЛ; 3++) ( Сопяо1е.ильге("Использование в узле сети "ПП" ~-3+": "); Сопяо1е.Хсьге(пегиоск побея[1][3] + "% "); Сопяо1е.нс1Сеьтпе(); ) Сопяо1е.иг1Сеьтпе () 4 192 Часть б Язык 044 При выполнении этой программы получается следующий результат.

Общее количество узлов сети: 4 Использование в узле 0 ЦП О: 704 Использование в узле 0 ЦП 1: 70$ Использование в узле О ЦП 2: 70$ в узле 1 ЦП 0: 70$ в узле 1 ЦП 1: 71$ в узле 1 ЦП 2: 72Ь в узле 1 ЦП 3: 73$ в Узле 1 ЦП 4: 744 в узле 1 ЦП 5: 75% в узле 1 ЦП 6: 76% Использование Использование Использование Использование Использование Использование Использование Использование в узле 2 ЦП 0: 70$ Использование в узле 2 ЦП 1: 72% в узле 3 ЦП 0: 70% в узле 3 ЦП 1: 73$ в узле 3 ЦП 2; 76$ в узле 3 ЦП 3: 79% в узле 3 ЦП 4: 82% Использование Использование Использование Использование Использование Обратите особое внимание на то, как свойство Ьеп9С[7 используется в ступенчатом массиве песногк пес[ее.

Напомним, что двумерный ступенчатый массив представляет собой массив массивов. Следовательно, когда используется выражение пегногк посев.Ьепэбь то в нем определяется число массивов, хранящихся в массиве пегиогх пес[ее [в дан- ном случае — четыре массива). А для получения длины любого отдельного массива, составляющего ступенчатый массив, служит следующее выражение. пегногк посев[0).ЬепчСП В данном случае это длина первого массива. Неявно типизированные массивы Как пояснялось в главе 3, в версии СФ 3.0 появилась возможность объявлять неявно типизированные переменные с помощью ключевого слова уаг.

Зто переменные, тип которых определяется компилятором, исходя из типа инициализирующего выражения. Следовательно, все неявно типизированные переменные должны быть непременно инициализированы. Используя тот же самый механизм, можно создать и неявно типизированный массив. Как правило, неявно типизированные массивы предназначены для применения в определенного рода вызовах, включающих в себя элементы языка [.1)Щ, о котором речь пойдет в главе 19. А в большинстве остальных случаев используется "обычное" объявление массивов.

Неявно типизированйые массивы рассматриваются здесь лишь ради полноты представления о возможностях языка СФ. Неявно типизированный массив объявляется с помощью ключевого слова уаг, но без последующих квадратных скобок [) . Кроме того, неявно типизированный мас- Глава 2. Массивы и строки 193 сив должен быть непременно инициализирован, поскольку по типу инициализаторов определяется тип элементов данного массива. Все инициализаторы должны быть одного и того же согласованного типа. Ниже приведен пример объявления неявно типизированного массива. чатча1в =пен[] ( 1, 2, 3, 4, 5 ); В данном примере создается массив типа 1пс, состоящий из пяти элементов. Ссылка на этот массив присваивается переменной ча1з.

Следовательно, тип этой переменной соответствует типу 1пс массива, состоящего из пяти элементов. Обратите внимание на то, что в левой части приведенного выше выражения отсутствуют квадратные скобки []. А в правой части этого выражения, где происходит инициализация массива, квадратные скобки присутствуют. В данном контексте они обязательны. рассмотрим еще один пример, в котором создается двумерный массив типа с]ои)51е.

чат ча1в = пен[,] ( (1.1, 2.2), (3.3, 4.4),( 5.5, 6.6) ]; В данном случае получается массив ча1 в размерами 2нЗ. Объявлять можно также неявно типизированные ступенчатые массивы. В качестве примера рассмотрим следующую программу. /у Продемонстрировать неявно типизированный ступенчатый массив. ов1п9 5увсевн с1авз Паччег( ( втат1с чоьг( Мвтп() чат зачче<( = пен(] ( пеи() ( 1, 2, 3, 4 ), пен[] ( 9, 8, 7 пен[) ( 11, 12, 13, 14, 15 )' тот (тпт 3 = О; 3 < заччед.ьепчс)н 3тт) ( тот(ьпг т=о; т < заччео[3).ьепчтв( 1++) сопво1е.итьте(]ачче<((з)[1) + " ")„. Сопво1е.ит1теььпе()," Выполнение этой программы дает следующий результат. 1234 987 11 12 13 14 15 Обратите особое внимание на объявление массива 3 аддес].

чат заччег( = пен[] ( пен[) ( 1, 2, 3, 4 ), пен[) ( 9, 8, 7 ), пеи[) ( 11, 12, 13, 14, 15 ) 194 Часть (. Язык С№ Как видите, оператор пеи ( ( используется в этом объявлении двояким образом. Во-первых, этот оператор создает массив массивов.

И во-вторых, он создает каждый массив в отдельности, исходя из количества инициализаторов и их типа. Как и следовало ожидать, все инициализаторы отдельных массивов должны быть одного и того же типа. Таким образом, к объявлению любого неявно типизированного ступенчатого массива применяется тот же самый общий подход, что и к объявлению обычных ступенчатых массивов. Как упоминалось выше, неявно типизированные массивы чаще всего применяются в г.1М3-ориентированных запросах. А в остальных случаях следует использовать явно типизированные массивы. Оператор цикла Ко~еасЬ Как упоминалось в главе 5, в языке С(Г определен оператор цикла гогене(ь но его рассмотрение было отложено до более подходящего момента.

Теперь этот момент настал. Оператор гогеас(г служит для циклического обращения к элементам коллекции, представляющей собой группу объектов. В СФ определено несколько видов коллекций, каждая из которых является массивом. Ниже приведена общая форма оператора цикла гогеас(г. Гогеаов (тип имн переменной цикла гп коллекция( операторг Здесь тип имя переменной цикла обозначает тип и имя переменной управления циклом, которая получает значение следующего элемента коллекции на каждом шаге выполнения цикла гогеас(г. А коллекция обозначает циклически опрашиваемую коллекцию, которая здесь и далее представляет собой массив. Следовательно, тип переменной цикла должен соответствовать типу элемента массива.

Кроме того, тип может обозначаться ключевым словом таг. В этом случае компилятор определяет тип переменной цикла, исходя из типа элемента массива. Это может оказаться полезным для работы с определенного рода запросами, как будет показано далее в данной книге. Но, как правило, тип указывается явным образом. Оператор цикла гогеас(г действует следующим образом. Когда цикл начинается, первый элемент массива выбирается и присваивается переменной цикла.

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

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

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее