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

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

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

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

Неявно типизированные массивы Как пояснялось в главе 3, в версии С() 3.0 появилась возможность объявлять неявно типизированные переменные с помощью ключевого слова уаг. Это переменные, тип которых определяется компилятором, исходя из типа инициализирующего выражения. Следовательно, все неявно типизированные переменные должны быть непременно инициализированы. Используя тот же самый механизм, можно создать и неявно типизированный массив. Как правило, неявно типизированные массивы предназначены для применения в определенного рода вызовах, включающих в себя элементы языка 1Д]5)О, о котором речь пойдет в главе 19.

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

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

А в правой части этого выражения, где происходит инициализация массива, квадратные скобки присутствуют. В данном контексте они обязательны. Рассмотрим еще один пример, в котором создается двумерный массив типа к[оп)71е: наг уа1з = лен[,) ( (1.1, 2.2), (3.3, 4.4),( 5.5, 6.6) ); В данном случае получается массив на1з размерами 2н3. Объявлять можно также неявно типизированные ступенчатые массивы.

В качестве примера рассмотрим следующую программу: // Продемонстрировать неявно типизированный // ступенчатый массив. Глава 7. Мвссивн и строки 189 пвьпд Яуясеао с1авя Оаддек( ( апак1с уоьп Маап() ( чаг 3аддеб = пен[] ( пеи[] ( 1, 2, 3, 4 пен[] ( 9, 8, 7 ), пеи[] ( 11, 12, 13, 14, 15 ) )т гог(ьпс 3 - От 3 < заддек(.ьепдсь) 3++) ( Гсг(тпк 1-04 1 < ]аддес[3].Ьепдклт 1+4) сспас1е .нгьсе (3аддеп [3 ) [1] + " " ) т Сспло1е.игькепапе()т ) ) ) Выполнение этой программы дает следующий результат: 1234 987 11 12 13 14 15 Обратите особое внимание на объявление массива 3 аддесй сап 3 адде<( = пеи (] ( пен(] (1, 2, 3, 4 лен[](9,8,7 пеи[] ( 11, 12, 13, 14, 15 ) Как видите, оператор пеи [ ] используется в этом объявлении двояким образом.

Вопервых, этот оператор создает массив массивов. И во-вторых, он создает каждый массив в отдельности, исходя из количества инициализаторов и их типа. Как и следовало ожидать, все инициализаторы отдельных массивов должны быть одного и того же типа. Таким образом, к объявлению любого неявно типизированного ступенчатого массива применяется тот же самый общий подход, что и к объявлению обычных ступенчатых массивов. Как упоминалось выше, неявно типизированные массивы чаще всего применяются в ] ПЩ-ориентированных запросах. А в остальных случаях следует использовать явно типизированные массивы. Оператор цикла йотеасЬ Как упоминалось в главе 5, в языке С№ определен оператор цикла гогеас]т, но его рассмотрение было отложено до более подходящего момента.

Теперь этот момент настал. Оператор гогеас]т служит для циклического обращения к элементам коллею4ии, представляюшей собой группу объектов. В С№ определено несколько видов коллекций, каждая из которых является массивом. Ниже приведена общая форма оператора цикла гогеас]п Гсгеасп (тип имя переменной цикла 1п «сллекция) оператор; 190 Часть!. язык Сз Здесь тип имя переменной цикла обозначает тип и имя переменной управления циклом, которая получает значение следующего элемента коллекции на каждом шаге выполнения цикла гогеасп. А коллекция обозначает циклически опрашиваемую коллекцию, которая здесь и далее представляет собой массив.

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

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

Следует, однако, иметь в виду, что переменная цикла в операторе тогеасп служит только для чтения. Это означает, что, присваивая этой переменной новое значение, нельзя изменить содержимое массива Ниже приведен простой пример применения оператора цикла г огеасп. В этом примере сначала создается целочисленный массив и задается ряд его первоначальных значений, а затем эти значения выводятся, а по ходу дела вычисляется их сумма. // Использовать оператор цикла топеасв.

ив1нч Бувпелц с1авв Гогевспввпю ( впапхс чо1п( иван() ( 1пс вив От 1пс[] оиив лен 1сп[10]т О Задать первоначальные значения элементов // массива пизв. гот(1пс 1 = 0; 1 < 10т 1+~) пипа [1) = 1; О Использовать цикл тотевс)т для вывода значений // элементов массива и подсчета их суммы. тогввсп(1ви х 1п оиив) ( СОПВО1в.нттпвпгвв(пЗНВЧЕНИЕ ЭЛЕМЕНта раВНО: " В Х)т вим += х; ) Сопво1е.нггпеьгпе(ьСуьыа равна: " + виы)т ) Выполнение приведенного выше кода дает следующий результат: Значение элемента равно: 0 Значение элемента равно: 1 Значение элемента равно: 2 Значение элемента равно: 3 Значение элемента равно: 4 Глава 7.

Массивы и строки 191 Значение элемента равно: 5 Значение элемента равно: б Значение элемента равно: 7 Значение элемента равно: 8 Значение элемента равно: 5 СУмма равна: 45 Как видите, оператор гогеасп циклически опрашивает массив по порядку индексирования от самого первого до самого последнего его элемента. Несмотря на то что цикл гогеасп повторяется до тех пор, пока не будут опрошены все элементы массива, его можно завершить преждевременно, воспользовавшись оператором Ьгеак. Ниже приведен пример программы, в которой суммируются только пять первых элементов массива пцвз. // Использовать оператор ЬгеаК для преждевременного // завершения цикла Еогеасп. цягпд 5уясепп с1аяз Гогеаспоепю ( ягаг1с чогц Магд() ( ьпг яцв = 07 гпг[) пцвя = пен гик[10) // Задать первоначальные значения элементов // массива пцвя.

Гог(ьпг 1 = От 1 < 10) 1+т) пцвя[1) 1; // Использовать цикл Гогеасп для вывода значений // элементов массива и подсчета их суммы. Гогеасп(гпг х 1п ппвя) ( сопяо1е.нг1сеь1пе("значение элемента равно: " + х) яшп += х) 15(х == 4) ЬгеаК) // прервать цикл, как только // индекс массива достигнет 4 ) Сопяо1е.иг1ге51пе("Сумма первых 5 элементов: " + зшп) т ) ) Вот какой результат дает выполнение. этой программы: Значение элемента равно: 0 Значение элемента равно: 1 Значение элемента равно. "2 Значение элемента равно.

"3 Значение элемента равно: 4 Сумма первых 5 элементов: 10 Совершенно очевидно, что цикл гогеасп завершается после выбора и вывода значения пятого элемента массива Оператор цикла гогеасп можно также использовать для циклического обращения к элементам многомерного массива. В этом случае элементы многомерного массива возвращаются по порядку следования строк от первой до последней, как демонстрирует приведенный ниже пример программы. 192 Часть (. Язык С() // Испольэовать оператор цикла Еогеасп для обращения // к двумерному массиву.

цзьпд Зувпещ; с1аза Гогеасппещо2 ( агавгс чогд Магп() ( Епг зша = 0; Епг(,) пцща = пеи Епв(3,5]; // Задать первоначальные значения элементов // массива пцщз. еог(1пс 1 0) 1 < 3) Ет+) ЕОГ (ЕПС 3 0; 3 < 5) 3++) пцщэ[ 1, 3 ) = (1+1) * (3+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 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее