Scribe
Scribe

ชอบมันไหม? ทำให้ Scribe ดียิ่งขึ้นโดย การให้คะแนน

รับส่วนขยาย Chrome

เรียกดู

  • วิดีโอยอดนิยม
  • วิดีโอล่าสุด
  • ช่องทั้งหมด

เครื่องมือฟรี

  • ตัวดาวน์โหลดคำบรรยาย
  • ตัวสร้างเวลา
  • ตัวสรุปวิดีโอ
  • ตัวนับคำ
  • ตัววิเคราะห์ชื่อเรื่อง
  • ค้นหาบทถอดความวิดีโอ
  • การวิเคราะห์วิดีโอ
  • ตัวสร้างบท
  • ตัวสร้างแบบทดสอบ
  • แชทกับวิดีโอ

ผลิตภัณฑ์

  • ราคา
  • บล็อก
  • รับส่วนขยาย Chrome

Developers

  • Transcript API
  • API Documentation

กฎหมาย

  • ข้อกำหนด
  • ความเป็นส่วนตัว
  • การสนับสนุน
  • แผนผังเว็บไซต์

ลิขสิทธิ์ © 2026 สร้างด้วยความรักโดย Scribe

— ถ้านี่ทำให้ชีวิตของคุณง่ายขึ้น (หรืออย่างน้อยก็วุ่นวายน้อยลง) กรุณาให้คะแนนเรา! เราสัญญาว่ามันจะทำให้วันของเราดีขึ้น 😊

Related Videos

СТУПЕНЧАТЫЕ (ЗУБЧАТЫЕ) МАССИВЫ C# | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 33

Video thumbnail
118.03k3,058 คำ15m readGrade 18
แชร์
Channel
#SimpleCode
приветствую вас друзья меня зовут сергей мы с вами продолжаем изучать язык программирования си sharp работаем и над темой многомерных массивов и сегодня мы будем говорить о ступенчатых либо же каких еще называют зубчатых массивах не забудьте подписаться на канал и же маг на колокольчик чтобы не пропускать следующие уроки но и собственно к делу итак прежде чем вы приступите к теме зубчатых или ступенчатых массивов вы должны знать что такой обычный двумерный прямоугольный массив сейчас вы его видите у себя на экране это материал прошлых уроков нужную ссылку вы найдете внизу в описании особенно здесь в том что по
сути обычный прямоугольный двумерный массив это некая табличка и для того чтобы получить доступ к какому-то элементу в этом массиве вот и таблички нам нужно указать индекс который нас будет содержать по факту две координаты по оси y и по оси x ну на этом все с вами рассматривали в прошлых уроках так вот отличие зубчатых либо же ступичных массивов от прямоугольник массивов заключается в том что у них количество элементов в строках может быть разным если в прямоугольном массе каждая строка содержит одинаковое количество элементов зубчатых либо же ступенчатых массива каждый строка может содержать абсолютно любое количество элементов на
самом деле глобальное это и все отличие между зубчатыми и не зубчатыми массивами дело том что помимо этого у нас также есть отличие и в синтаксисе и в работе с такими массивами когда мы уже будем работать с ними непосредственно с помощью кода и сегодня мы рассмотрим эти особенности различием рассмотрим каким образом получать доступ к элементам таких массивов таких перебирать как и заполняйте все такое прочее исходя из тех знаний которые мы с вами получали в прошлых уроках мы знаем что элементом массива может быть абсолютно любой тип dunk данном случае у нас здесь целое число но это может
быть абсолютно все что угодно вот сейчас перед нами обычный одномерный массив в котором содержится целое число давайте для удобства его развернем вот так вот вертикально абсолютно все то же самое по допустим он у нас будет содержать четыре элемента сейчас мы с вами еще не определились какой тип данных у нас будут содержать элементы этого массива и так как мы с вами знаем что массив может содержать и внутри себя качестве его элемента абсолютно любой тип данных давайте в качестве элемента этого массива поместим другой массив соответственно когда мы обратимся к элементам вот такого казалось бы одномерного массива мы
увидим что внутри него лежит какой-то другой массив и по факту все это дело будет выглядеть вот так так как каждый элемент нашего одномерного массива тоже является массивом мы можем указать размерность этого вложенного массива такую как нам захочется соответственно благодаря этой возможности мы можем создать зубчатый массив и хотя выглядит он вроде бы как двумерный массив но только лишь с тем отличием что в каждой строке может быть разное количество элементов но по факту это одномерный массив элементами которого являются одномерные массивы скажем так массив массивов и кстати если мы допустим решим что у нас в этих массивах которые
являются элементами нашего предыдущего массива будем хранить не целые числа а допустим опять-таки массивы можем получить трёхмерную зубчатый массив и так может происходить в принципе до бесконечности но мы сейчас ограничитель с двумя измерениями соответственно если мы сейчас работаем лишь только в двух измерениях для того чтобы получить доступ к примеру в число 44 в нашем вот самым верхним массе нам что необходимо сделать нам в нашем изначально мысе нужно обратиться к элементу под индексом 0 там у нас еще один массив и в этом втором массива вложено мы уже должны обратиться к элементу под индексом 0 12 и там
мы найдем че 144 принципе вот и все отличия зубчатых либо ступенчатых массивов прямоугольник массивов в теории теперь же давайте рассмотрим это все с использованием кода на практике итак прежде всего для того чтобы иметь возможность использовать двумерный зубчатый массив нам необходимо и вам объявить начала давайте оверим обычный одномерный массив с земли mayers что нам говорит вот это вот запись продам говорит о том что мы хотим массив который будет задержать тип int но как я уже сказал массив у нас может содержать абсолютно любые элементы и в нашем случае если мы говорим о зубчатом массиве это массив массивов
таким образом по факту мы хотим некий массив который будет содержать в себе вот такой тип данных то есть вот это вот все массив винтов честно мы должны здесь указать просто-напросто еще одни квадратные скобки и это нам скажет о том что мы хотим массив массивов то есть вот такую вот штуку так же как и для двумерного массива который прямоугольный и так же как при создании одномерного массива для того чтобы мы могли с ним работать помимо того что мы его объявили мы должны еще выделить под него память делается с помощью оператора new и особенности с выделением памяти
здесь такие же мы можем выделить память сразу же после объявления массива либо же где-то потом поход ну мы сейчас сделаем это сразу и что мы должны здесь указать синтаксис таков мы используем оператор new int далее указываем квадратные скобки и указываем сколько элементов у нас будет в вот в этой части нашего массива то есть в нашем одномерном массиве который будет содержать другие одномерные массивы допустим я хочу чтобы у нас там было три элемента и далее просто пустой квадратной скобки таким образом мы объявили двумерный зубчатый массив и выделили подниму память обратите внимание я говорю двумерной зубчатый массиву
но по факту это одномерный массив который содержит в себе одномерные массивы для наглядности давайте создадим еще один массив end of но только в этом случае это будет двумерный прямоугольный массив взяв его май эры 2 и укажем что он будет содержать по вертикали 10 строк и шириной будет пять колонн второй массив я создал для того чтобы продемонстрировать вам очень важное отличие между двумя этими мотивами и так у нас есть две переменные mayers рек и морей два года мы присваиваем значение полей rank которая содержит каждый из этих массивов в этом поле rank хранится информация о том какое
количество измерений у наших массивов и немножечко ниже по коду майя тоже самое делаем для полей лэнс в поле лэнс у нас хранится количество всех элементов нашего массива давайте в нашем и сиама эры 2 тоже укажем же что у него три строки для наглядности я думаю так будет более понятно запускаем то благе нашу программку по факту у нас есть два двумерных массивов но один из них зубчатый в прямоугольный так вот что у нас с переменной май р-р and который мы присваивали значение фил дарэнг который хранится информация количестве измерений здесь у нас значение 1 переменной матери 2
rank где у нас хранится информация количестве измерений нашего второго массива 2 таким образом хотя у нас и как бы имеется два двумерных массива на один из которых зубчатая другой прямоугольный сишарп код считает что 1 массиву нас одномерный а второй двумерный потому что у нас первый массив это просто одномерный массив элементами которые являются одномерные массивы соответственно он и воспринимается как одномерный массив о втором же массиве май эры 2 среда разработки и среда выполнения сразу знает что он двумерный далее посмотрим что у нас в полях лэнс тоже особенность о первом массиве наша среда разработки думаю что там
только три элемента но это же и логично в принципе потому что у нас одномерный мы создали массивно три элемента и среде разработки и среди выполнение абсолютно все равно что там внутри могут быть еще какие-то массивы мы изначально видим только одно измерение и в этом измерении три элемента во втором же массиве среда разработки среда выполнения знает что там уже 15 элементов потому что зная о том что там два измерения были подсчитаны вообще все возможные ячейки этого массива их там 15 потому что у нас три строки и 5 колонок особенность в том что для того чтобы получить
доступ ко второму измерения вот этого вот массива который на зубчатый нам нужно сначала обратиться к какому-то его элементу по индексу как результат мы получим одномерный массив который хранится в качестве элемента в этом массиве и уже можем работать с его элементы у нас присутствует скажем так некой вложенность теперь я уберу весь этот код он нам больше не понадобится и давайте просто возьмем запустим этот код еще раз и нас с вами интересует что же сейчас у нас хранится в объекте мой эрн если мы наведем на него курсор мышки и раскроем вот это вот стрелочка выпадающий список мы
видим что там у нас есть 3 элемента и каждый из них содержит нал почему так произошло на самом деле в прошлых уроках мы уже рассматривали этот вопрос мы рассматривали также с вами тот момент что если мы принято лизации массива явно не указываем какой элемент будет храниться в этом массе то у нас создается элемент массива с дефолтным значением и вот если мы создавали массе винтов одномерный массив винтов то у нас нам были просто цифры 0 и а сейчас мы создаем массив массивов если мы под массив не выделяем места в оперативной памяти то в этом массиве будет
хранится значение значение у нас будет дефолтным значением для всех ссылочных типов данных а массива у нас является ссылочными типами данных вообще о том что такое значимость ссылочные типы различия между ними мы будем говорить в будущих уроках но по факту это означает что мы создали массив которым должны храниться массивы но под те массивы которые будут и в нашем изначально мы сеем и не выделили память внутри этого массива сейчас находятся вот такие вещи давайте вот так вот сделано в этой строчке breakpoint поставим и посмотрим что у нас с переменной r там на это означает что мы не
выделили под его оперативную память с помощью оператора new вот так если мы под этот массиву деле память то там уже будет не нал а соответственно 10 ячеек в данном случае 10 потому что мы там 10 указали под элемента нашего массива ну и как вы помните из прошлых уроков если мы обратимся к какому-то элементу массива в тот момент когда мы еще не выделили под него оперативную память мы получим ошибку на a reference exception потому что он по сути пытаемся извлечь данные из ничего это нас приводит к тому что для каждого элемента такого вот якобы двумерного массива
который на самом деле одномерный массив в котором содержится другие массивы нам нужно выделять оперативную память давайте для элемента под индексом 0 выделим оперативную память допустим на пятерыми на 20 строчки у нас есть breakpoint мы просто запустим эту сидела мы посмотрим что же у нас там теперь смотрите какое отличие элементе под индексом 0 у нас теперь хранится массив который может быть пять элементов а в элементе под индексом 1 2 у нас до сих пор новый я думаю смысл понятен для того чтобы иметь возможность работать со всеми элементами вот это вот массива нам под каждый элемент этого
массива под каждый его внутренний массив нужно выделить оперативную память соответственно для индекс 1 мы можем создать допустим массив но уже не на пять элементов по допустим на два элемента а для массива под индексом 2 выделить память на допустимо 10 элементов почему нет если мы это все запустим мы теперь видим что наш изначальный мотив мохер и содержит три элемента каждый элемент который нас также массив и в первом массе под индексом ноль настоять элемента во втором два элемента в третьем 10 вот мы получили вот такой же ситуации но только размерность у нас другие но смысл тот же
хорошо мы с вами поняли как создать такой массив как уделить под него память как обращаться к его элементом синтаксис чем-то похож на работу с обычными двумерными массивами но только если в случае с двумерными массивами мы указывали yandex вот так вот квадратные скобки через запятую то для ступенчатого массива у нас каждый индекс указывается в отдельных квадратных скобках допустим мы хотим обратиться по индексу 0 и 33 вести его на консоль мы сейчас там получим 0 по той причине что у нас конечный массив который является элементом нашего изначального мы сила содержит ноты а дефолта изучению для in the
это но таким образом если мы где-то до вывода в консоль обратимся к этому же элементу присвоим сюда какое-то значение а допустим 55 а потом ее выведем то на концов мы получим 55 если мы поставим здесь нибудь breakpoint и откроем в отладчике наш массив допустим у нас по индексу нарин находится значит это первый элемент под индексом 3 мы видим что там 55 причем обратите ваше внимание на интересный момент когда мы обращаемся к этому массиву по какому-то индексу мы по факту как результаты работы получаем какой-то одномерный массив и потом когда мы к этому массива опять обращаемся по
индексу к тому же получаем готовое число вот здесь мы это и делаем до первой скобки у нас развлекают одномерный массив индексом ноль а второй вторые скобки с индексом у нас извлекают уже из этого массива какое-то конкретное число если мы к примеру представим что у нас есть какой-то одномерный массив и мы сделаем вот допустим так то это будет работать мы сейчас обратились к нашему зубчатому массиву извлекли у него в первый элемент под индексом 0 в качестве элемента там хранится обычный одномерный массив давайте вот сюда все-таки вернем присваивание какого-то значения чтобы было понятней и смотрим что у
нас происходит и так вот у нас есть двумерный зубчатый массив под индексом можно нас там тоже 10 массив и под индексом 3 у него число 55 так вот мы обращаемся к нашему двумерному за качеством массиву мы пытаемся у него получить элемент под индексом 0 в этом элементе под индексом 0 у нас лежит массив у нас есть под это отдельная переменная если мы сделаем шаг то увидим что он двадцать пятой строчке кода у нас был извлечен элемент из нашего двумерного массива под индексом ноль в одномерный массив вот там-то мы был одномерном и сел мы просто его
извлекли одну переменную и мы видим что там под индексом 3 находится число 55 что собственно еще раз доказывает то что по сути мы имеем одномерный массив одномерных массивов давайте же теперь вот этот вот наш ступенчатый зубчатый массива заполним случайными числами и выведем его табличкой на консоли мы не сможем это сделать именно так как мы это делали с обычными примерной массируем и потому что у нас немножечко другой синтаксис при работе с таким массивом но тем не менее мы рассмотрим как это сделать для того чтобы генерировать случайные числа нам потребуется объект типа раунда давайте его создадим для
того чтобы перебрать все элементы этого массива заполнить его вывести его табличкой на консоль нам потребуется два цикла for в двух отдельных циклах мы будем генерировать случайные числа 2 отдельных циклах мы будем выводить нашу табличку почему я это делаю именно так я вам объяснял в прошлом уроке и так нам потребуется 2 вложенных цикла внешний цикл for у нас будет бежать по элементам нашего вот этого массива по факту это у нас одномерный массив соответственно мы можем обращаться к полю lines и сможем корректно перебрать все элементы этого одномерного массива элементами этого одномерного массива у нас является вложенные массива
соответственно вложенным циклом мы будем бежать по этим вложенным массивом обратите внимание на ключевой момент на двадцать седьмой строчке кода мы обращаемся к конкретному элементу нашего массива и конкретным элементам этого массива является вот такой вот другой 2-мерный массив мы вот с вами извлекали а в отдельную переменную и у этого отдельному сел мы также обращаемся к fil du temps то есть вот этой вот переменной но она просто так называются поле в.п. это же получаем его значение таким образом вот здесь мы получаем количество элементов уже в каждом вложенном массиве который является элементом нашего кто внешнего массива вот здесь
благодаря yandex ой который у нас перебирает элемента нашел этого двумерного существо массива мы получаем одномерный массив который является элементом этого зуммером массива и обращаемся к его поле лэнс и получаем количество элементов в этом массиве ну и соответственно перебираем все эти элементы в нашем нашим к этим вложенным циклом в этом вложенном цикле мы обращаемся к нашему зубчатому массива по индексу ай пи джей которые у нас прибираются и с помощью нашего объекта роддом будем генерировать какие-то числа ну давайте доставайте не генерировать я думаю так будет удобно таким образом здесь мы уже заполним наш массив случайными числами и
давайте скопируем 2 те цикла набиваем парус скобочек здесь мы будем выводить элементы нашего зубчатого массива табличками консоль но так как массива но зубчатый 100 соответственно табличка у нас тоже хочется зубчатое логика здесь принципе похоже на ту которую мы использовали для прямоугольного двумерного массива внешний цикл нас должен отрисовывать строки соответственно в конце выполнению этого цикла когда можно отрисовали строку мы должны делать переход на следующую строчку и соответственно здесь у нас будет развиваться метод writeline у класса консоль для того чтобы это сделать а внутри вложенного цикла мы будем выводить собственные элементы уже конкретной строки используя метод консоль
но не райт line опроса райт потому что нам и не должен переход на следующую строчку здесь обращаемся к нашему seo по индексу ари джей и добавляем здесь еще табуляцию того чтобы нас был отступ между элементами давайте теперь запустим посмотрим что у нас получилось собственно вот он наш зубчатый массив обратите внимание что в самом первом ряду у нас пять элементов во втором ряду у нас два элемента в третьем ряду 10 элементов собственно все это происходит по той простой причине что у нас соответствующее количество ментов была вот здесь вот объявлена если мы здесь данные когда поменяем после
пуска у нас будет 5 вложенных массивов здесь у нас ещё будет под индексом 3 что-то под индексом 4 что там допустим здесь у нас будет восемь элементов здесь три а здесь систем вот такой вот совсем уж лучше той массив сделаем и выведем его на консоли собственно будет множеству почитай масел заполнены случайными числами на консоли напоминаю что для патронов канала с доступом к исходному коду исходники этого урока будут доступны на по этой вами а мне на этом все если вам понравилось то рока он был для вас полезным и интересным забудьте поставить лайк под этим видео если
есть желание поддержать меня канал финансовом информация там как это сделать дети внизу в описании буду рад все поделитесь с этим уроком со своими друзьями которые вращают программированием и конечно если вы еще не подписаны на канал то обязательно подписывайтесь здесь уже есть и будет еще много полезных и интересных уроков для вас всем спасибо за внимание пока
วิดีโอที่เกี่ยวข้อง
ТРЁХМЕРНЫЕ МАССИВЫ | МНОГОМЕРНЫЕ МАССИВЫ ЛЮБОЙ МЕРНОСТИ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | УРОК # 34
25:54
ТРЁХМЕРНЫЕ МАССИВЫ | МНОГОМЕРНЫЕ МАССИВЫ Л...
#SimpleCode
102,192 views
C# ФУНКЦИИ И МЕТОДЫ | МЕТОД C# ЧТО ЭТО | ФУНКЦИИ C# ПРИМЕР | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 35
26:55
C# ФУНКЦИИ И МЕТОДЫ | МЕТОД C# ЧТО ЭТО | Ф...
#SimpleCode
237,210 views
ЧТО ТАКОЕ МАССИВЫ | ОДНОМЕРНЫЙ МАССИВ C# ПРИМЕРЫ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 24
19:10
ЧТО ТАКОЕ МАССИВЫ | ОДНОМЕРНЫЙ МАССИВ C# П...
#SimpleCode
236,581 views
How To Learn Any Skill So Fast It Feels Illegal
13:48
How To Learn Any Skill So Fast It Feels Il...
Justin Sung
1,553,644 views
Phulera Ka Panchayati Raj | Asli Pradhan Kaun? ft. Neena Gupta, Faisal Malik, Chandan Roy
18:36
Phulera Ka Panchayati Raj | Asli Pradhan K...
The Viral Fever
468,150 views
Mentalist Suhani Shah: Reading Minds On Live TV
5:56
Mentalist Suhani Shah: Reading Minds On Li...
The Project
1,230,755 views
STRICT WARNING to Samay Raina!⚠️😨, Ranveer Allahbadia Comeback, IIT Baba Areested, Nakul Dhull...
10:40
STRICT WARNING to Samay Raina!⚠️😨, Ranvee...
NeuzBoy
167,585 views
Nothing Phone 3a/Pro: Now Do a Flagship!
10:17
Nothing Phone 3a/Pro: Now Do a Flagship!
Marques Brownlee
655,481 views
КАК РАБОТАТЬ С МАССИВАМИ В C# НА САМОМ ДЕЛЕ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 27
22:50
КАК РАБОТАТЬ С МАССИВАМИ В C# НА САМОМ ДЕЛ...
#SimpleCode
193,113 views
PM Modi inaugurates Vantara in Jamnagar, Gujarat
7:40
PM Modi inaugurates Vantara in Jamnagar, G...
Narendra Modi
1,147,951 views
BLESSED | Gaurav Kapoor | Stand Up Comedy
27:01
BLESSED | Gaurav Kapoor | Stand Up Comedy
Gaurav Kapoor
4,085,999 views
'Burger Bae' के Demo से पहले आ गया Shark Aman के मुंह में पानी! | Shark Tank India S4 | Full Pitch
26:44
'Burger Bae' के Demo से पहले आ गया Shark A...
Sony LIV
412,246 views
Samay Raina VERY SERIOUS NEWS! 😰| Ranveer Allahbadia Latent Case, IIT Baba ARRESTED, Purav Elvish |
10:54
Samay Raina VERY SERIOUS NEWS! 😰| Ranveer...
Neon Man
359,303 views
'Burger Bae' के sassy outfits को Aman ने सूंघकर किया judge! | Shark Tank India S4 | Full Pitch
26:47
'Burger Bae' के sassy outfits को Aman ने स...
Shark Tank India
244,743 views
How to solve a Google coding interview question
25:49
How to solve a Google coding interview que...
Life at Google
411,296 views
Nothing Phone (3a) & (3a) Pro Unboxing & First Look⚡Don't Make The Mistake!
15:16
Nothing Phone (3a) & (3a) Pro Unboxing & F...
Trakin Tech
235,159 views
C# - Массивы. Уроки для маленьких и тупых #7.
6:06
C# - Массивы. Уроки для маленьких и тупых #7.
ExtremeCode
219,223 views
TRUMP ENDS MILITARY HELP TO UKRAINE | Sanctions on Russia will be removed
11:06
TRUMP ENDS MILITARY HELP TO UKRAINE | Sanc...
Career247
338,280 views
Claude 3.7 goes hard for programmers…
5:49
Claude 3.7 goes hard for programmers…
Fireship
1,644,833 views