Изучение C++ для начинающих / #7 - Массивы данных (одномерные и многомерные)

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024

Комментарии • 106

  • @Someone_Game999
    @Someone_Game999 Год назад +148

    Автор молодец, благодаря нему я стал более-менее понимать С++, хотя буквально неделю назад страшился его, как огня. Спасибо за такие прекрасные видеоролики!

    • @alnxdrshii4375
      @alnxdrshii4375 Год назад +9

      ItProger красавчик. Я когда решился начинать учить Спп, думал, что это что-то нереальное)

    • @Cosi-vacamble
      @Cosi-vacamble Год назад +1

      ​@@alnxdrshii4375аналогично, а как ща? Далеко продвинулся?

    • @ProdbyPutya
      @ProdbyPutya Год назад +5

      @@Cosi-vacamble без обид но ты так ещё удивишься когда пройдёшь продвинутый C++ и углублённый)) потом фраймворки git и т д

    • @MGeming26
      @MGeming26 2 месяца назад

      Я думал это самый сложный язык

    • @Someone_Game999
      @Someone_Game999 2 месяца назад +1

      @@MGeming26 Самый сложный - это Асемблер

  • @ShaburovThe
    @ShaburovThe 4 месяца назад +12

    Автор, действительно, учитель от Бога. Отличная речь, скорость подачи, без духоты. Надо было сразу учить Си. Почему то в ит сообществе, у всех принято страшилки рассказывать, про то, что язык сложный и тд, и тп. Вот и я такого наслушался и пошел учить Go. Go замечательный язык, особенно для веб разработки. Но для системного программирования, например инсталлятор написать, даже по первым урокам я уже вижу, что те же задачи на Си сделать можно чище(тот же stdin, stdout).

    • @nicolaicojocari8882
      @nicolaicojocari8882 Месяц назад +3

      язык реально сложный, здесь пока изучается только база

  • @katerin.b
    @katerin.b 11 месяцев назад +6

    Премного благодарен за великолепный курс!

  • @donrodion
    @donrodion 4 месяца назад +4

    Cпасибо огромное, за такой урок. Реально очень полезно. Изучаю С++ с удовольствием!

  • @Remington-og3tf
    @Remington-og3tf Год назад +7

    Спасибо за понятное объяснение!

  • @arsenic1821
    @arsenic1821 Месяц назад +1

    Большое спасибо за уроки!!!

  • @kpanat
    @kpanat Год назад +7

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

    • @deffu4790
      @deffu4790 11 месяцев назад +1

      Даровыч! Это так a[][2] {{8,9},{0,0},{-2,1},{1,2}}; ? Как практикум, придумал написать написатор для массивов. Это возможно же, да?))

  • @AramSukiasyan233
    @AramSukiasyan233 Месяц назад

    Автор молодец тебе, думаю 99.9% учителей не могут так понятно обяснить что тебе все было понятно.

  • @Redsadi464
    @Redsadi464 12 дней назад +1

    спасибо автор я всегда боялся програмирование

  • @hagott
    @hagott 8 месяцев назад +5

    Awesome lesson!

  • @Артём-о5з8ф
    @Артём-о5з8ф Год назад +11

    Спасибо за ваши выпуски😊

  • @Charles_Dickens
    @Charles_Dickens 9 месяцев назад +3

    Буду писать под каждым видео комментарий, всё на одном дыхании идёт)

    • @Phonker07
      @Phonker07 8 месяцев назад

      Дошел до конца?🎉

    • @1joker2viktor3dude9
      @1joker2viktor3dude9 6 месяцев назад

      научился с++?)

    • @Phonker07
      @Phonker07 6 месяцев назад

      @@1joker2viktor3dude9 я ток на 30%, другую инфу учил в книгах, там больше инфы

  • @KURWAPIDOR_man
    @KURWAPIDOR_man 3 месяца назад

    спасибо, легенда

  • @vasily2dndn
    @vasily2dndn 4 месяца назад

    База, конечно, но спасибо автору за раскрытие синтаксиса данного языка)

  • @ТимофейКомаров-ь9м
    @ТимофейКомаров-ь9м 18 дней назад +1

    7:05 а можно делать пробелы, чтобы установить значение 1, 2 и 5 элементам массива например?

  • @superlexadnepr
    @superlexadnepr Год назад +1

    Спасибо

  • @СашаХодыкян
    @СашаХодыкян 8 месяцев назад

    Bravo

  • @Mr.Electrum
    @Mr.Electrum Год назад +2

    Про двумерные массивы говоря (многомерные) это множество массивов каждый из которых хранит информацию в ввиде х * х,то есть допустим a[3][3] 3 на 3 9 9- массивов первая тройка количество строк вторая количество столбцов

    • @Iooooooqq
      @Iooooooqq 11 месяцев назад

      двумерныйц массив это обычная матрица

    • @Mr.Electrum
      @Mr.Electrum 11 месяцев назад

      @@Iooooooqq Я объяснил по другому просто, но спасибо за уточнение

  • @Maximuser_play
    @Maximuser_play 5 месяцев назад +1

    Очень крутой курс, однако у меня дилемма: изучать и python и c++ или изучать что-то углублённо

    • @Mortred_niki
      @Mortred_niki Месяц назад

      Та же проблема была, я выбрал с++ ибо хочу работать в гейм деве.

  • @_blisong_9864
    @_blisong_9864 3 месяца назад

    Подскажите пожалуйста, почему на 15:11 у меня при дебаге не работает в консоли 2 функция? Когда я запускаю без дебага, то всё работает

  • @Dobryj_Kolya
    @Dobryj_Kolya Год назад +5

    Спасибо! Всё понятно, но с нуля без интернета и без примеров кода я такое не напишу)))

    • @Yaroslavl_rr
      @Yaroslavl_rr 9 месяцев назад +1

      Я уже могу написать калькулятор без единой помощи

  • @ВикаАдамовская
    @ВикаАдамовская 2 месяца назад

    17:03 summa += numbers[i] А как тут все числа вместе суммируются? В терминале должно быть 0 + i

  • @mikhailmaliukin1180
    @mikhailmaliukin1180 Год назад +3

    Обьясните пожалуйста, почему i это индекс а не отдельная переменная. Почему он вводит данные в i и они идут в массив?

    • @daniilstark9543
      @daniilstark9543 Год назад +3

      Потому что мы массив прировняли к циклу for
      У цикла установили диапозон от 0 до какого то числа,который приравнивается к массиву (независимо до какого числа установлен диапозон цикла)
      Видимо в C++ когда работаешь с массивом а потом пишешь цикл они как то взаимодействуют друг с другом ,приравниваются или объединяются и цикл становится пешкой или вспомогательным звеном в руках массива
      То есть сам массив в программе главнее установленного цикла и сам цикл подчиняется
      Ну вроде-бы так
      Я так понял 😀

    • @thewashik672
      @thewashik672 Год назад +3

      i это и есть переменная, массив считает значение переменной i, к примеру i = 1; то если cout

    • @vada322
      @vada322 10 месяцев назад +1

      Потому что если пишем обращение к nums2 и ставим [ ] то имеется в виду именно порядковые номера в этом массиве, а не сами числа. А как мы знаем под порядковыми номерами от 0 до 3 в этом массиве как раз находятся числа 4, 6, 7. Он не вводит данные в i, он сначала создает цикл в котором эта i у него от 0 до 3 и увеличивается на 1 каждый раз, потом создает команду вывести на экран i. Программа понимает 2 условия: [ i ] это массив то есть нужно выводить числа под порядковым номером от 0 до 3. Если не поняли пишите я еще раз объясню по-другому.

  • @kukuryzkaboy
    @kukuryzkaboy 8 месяцев назад +1

    автор , я решил проверить махинации с массивами на 18:55 минуте видео и у меня минимальное число всегда выдает которое конечное в массиве помоги пожалуйста

    • @KotyaLTA
      @KotyaLTA 6 месяцев назад

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

  • @ПавелТельман
    @ПавелТельман 6 месяцев назад

    красава

  • @TemurbekUbaydullayev-e2l
    @TemurbekUbaydullayev-e2l 11 месяцев назад

    wow!

  • @EngineerDroniv
    @EngineerDroniv Год назад +1

    У мене питання, я писав код так само і у мене не виникло помилок, але в консолі мені замість таблиці пише рандомні числа, по типу -43435435132798, а потім рядків так сорок одні 0, в чому може бути проблема?

    • @ІванРибак-ж4и
      @ІванРибак-ж4и Год назад

      можеш код скинути?

    • @1joker2viktor3dude9
      @1joker2viktor3dude9 6 месяцев назад

      тож самое было, перезапусти ВС, должно помочь но это не страшная проблемка

  • @vialance3901
    @vialance3901 5 месяцев назад

    Прописал 3 цикла for для заполнения, вывода, суммы, у меня только один цикл выполняется, хотя год валидный по написанию. Фокусы с выводом массива и его суммы не работают.... хотя так же счетчик копировал, все как в видео

    • @глазаползут0_0
      @глазаползут0_0 4 месяца назад

      снизу программы пишется, есть ли ошибки, сколько их и в чём заключаются

  • @StartuePotoya
    @StartuePotoya 8 месяцев назад

    12:34 Почему создан float nums2[3] а внутри целочисленные значения. и почему компилятор не выдал ошибку???? это же жесткий с++

    • @SPEEDWAGON3
      @SPEEDWAGON3 7 месяцев назад +1

      потому что тип данных float может хранить так и целочисленные значения так и числа с плавающей точкой

    • @StartuePotoya
      @StartuePotoya 7 месяцев назад

      @@SPEEDWAGON3 не знал.

    • @5классвиленкин-ъ4п
      @5классвиленкин-ъ4п 6 месяцев назад

      @@StartuePotoyaнет. Ничего он не хранит. Потому что типы приводятся один к другому. В массив интов можно запихнуть флоат и все тоже будет ок.

  • @kpanat
    @kpanat Год назад +1

    Про 2-мерные массивы вобще мало рассказал. И вобще есть 2-мерные это вот такие статические( к сожалению динамических двумерных нет...) и двойные, про которые он говорит. Но это несколько другие массивы. Компилятор здесь хитрит и всегда делает 2-мерные(не массив массивов а именно 2-х мерный без промежуточных указателей что весьма экономит память и эффективность работы но делает обращение к его элементам несколько неудобным) Фактически представленный нам агрегат данных это 2-х мерный массив без промежуточных указателе, т.е. не массив массивов как говорит автор, а просто 2-х мерный массив сам того не осознавая. Я не знаю знает автор это или нет. Но судя по его рассказу ясно что эта тема ему самому плохо известна потому что он говорит неправильно. Сможете ли в при этом разобраться? Я сомневаюсь... Вобщем как факт сообщаю что этот 2-мерный массив на самом деле 1-мерный как и 3- 4-х и тд мерные массивы. А это просто как говорят синтаксический сахар для удобства. Но согласитесь удобно... Однако надо иметь ввиду что длину строки указывать при инициализации надо обязательно! Иначе компилятор не сможет работать. Вы можете создать динамический 1-мерный массив с 6-тью элементами = 2х3. Вот только обращаться к ним вы сможете только так:
    matrix[i*size_y + j] а не как matrix[i][j] как тут . Где size_y длинна строки. Т.е. знать длинну строки обязательно!

  • @AndriiTurchynRieltorDnipro
    @AndriiTurchynRieltorDnipro Год назад +2

    дякую++

  • @kpanat
    @kpanat Год назад +1

    А 3-х мерные массивы надо печатать на 3-х мерные экран...Упс! Таких экранов нет пока... Ну тогда когда будут, тогда и будем печатать... А пока подождём-с... Кстати 3-х мерные называются не матрицами. Название матрица зарезервировано именно за 2-х мерными массивами. специального названия для 3-х мерных массивов нет. Хотя в природе именно они и встречаются...

  • @vskvarshnevski
    @vskvarshnevski 2 месяца назад

    У меня выводится сумма каждого элемента отдельно, а не всех элементов вместе🤔

  • @matir5660
    @matir5660 Год назад +1

    16:55 - зачем было создавать ещё цикл когда мы в одном цикли могли посчитать сразу сумму разве это не усложняет сам код?

    • @user-fj8gf2ey8n
      @user-fj8gf2ey8n Год назад

      Я тоже об етом подумал

    • @nelavas4651
      @nelavas4651 10 месяцев назад +1

      скорее всего для простоты понимания для новичков

  • @lauffyg
    @lauffyg Год назад

    сайт не работает

  • @eNvedimka
    @eNvedimka Год назад +1

    Народ, підкажіть мені будь ласка. Я вирішив зупинити відео на цьому моменті 15:46 і самому виконати це невеличке завдання, а потім звіритися з тим що буде казати автор далі. Я зробив майже те ж саме, тільки виникла одна помилка, вона вже в мене неодноразово виникала, що напочатку я не присвоював якесь значення змінній, в даному разі *_float n1;_* , а вже потім в процесі написання коду я вже присвоював їй якесь значення і виникало одне попередження і одна помилка
    - *_використання неініційованої пам'яті n1_*
    - *_використання неініційованої змінної n1_*
    приклад, який я зробив після зупинки відео
    float number3[6];
    float n1;
    for (int a = 0; a < 6; a++)
    {
    std::cout number3[a];
    }
    for (int a = 0; a < 6; a++)
    {
    n1 += number3[a];
    }
    std::cout

    • @Mafter
      @Mafter Год назад +7

      когда ты создаёшь переменную
      -----
      float n1;
      -----
      ей не присваивается никакого значения (то есть, она ничему не равна, даже нулю), это просто (условно) пустое место для каких-то данных.
      а дальше ты в коде что-то пытаешься к ней прибавить
      -----
      n1 += number3[a];
      -----
      Ты к пустому месту (не фактическому числу) пытаешься прибавить число, отсюда и ошибка.
      Если бы ты сразу написал float n1 = 0; то переменная была бы нулём, то есть числом.
      К числу можно прибавить число, соответственно код бы работал нормально.
      Насчёт фигурных скобок, это не самая лучшая привычка. Лучше так конечно не делать.
      Надеюсь помог)

    • @eNvedimka
      @eNvedimka Год назад +2

      @@Mafter Так, зрозумів. Дякую за розгорнуту відповідь.)

    • @nepyx3572
      @nepyx3572 Год назад

      @@Mafter спс

    • @StartuePotoya
      @StartuePotoya 8 месяцев назад

      ​@@Mafterв Pawn языке. при создании переменной по умолчанию ей присвоено значение 0 .

  • @ИгорьЛукьянов-н2н

    Подскажите кто-нибудь пожалуйста, что мне делать, у меня есть в программе массив, у которого n елементов(int nums[n]).
    Вот та самая часть программы:
    int n;
    cin >> n;
    int nums[n];
    Так вот при запуске программы у меня выходит ошибка: "выражение должно иметь констатное значение".
    Как мне это исправить?

    • @cian7893
      @cian7893 Год назад

      Для таких случаев используй chat gpt, он не только решит твою проблему и объяснит ее

    • @ИгорьЛукьянов-н2н
      @ИгорьЛукьянов-н2н Год назад

      @@cian7893 так он же платный, но все равно спасибо

    • @AlexXLEX-n9i
      @AlexXLEX-n9i Год назад

      int n = 0;

    • @wrebly4774
      @wrebly4774 Год назад +1

      Хто ще зіткнувся з такою проблемою, ось відповідь: nums[n] це статичний масив який працює тільки вже вказаним розміром, його не можна змінювати в ході компіляції, компіляції, на те він і статичний , потрібно просто створити і використовувати динамічний масив, або, як кажуть в неті, робити щось типу такого vector a(x);

    • @ИгорьЛукьянов-н2н
      @ИгорьЛукьянов-н2н 10 месяцев назад

      ​@@wrebly4774спасибо

  • @denyskozinets2541
    @denyskozinets2541 Год назад +2

    мне кажется что сложнее понять цыкл for чем массивы

    • @MAGZ2K2
      @MAGZ2K2 Год назад +1

      Его можно заменить
      int ff;
      begin: \\метка для перехода
      ff++; \\увеличить переменную
      if( ff < 5) goto begin; \\перейти на метку если переменная меньше 5

    • @deniszaltsberg2127
      @deniszaltsberg2127 Год назад +1

      @@MAGZ2K2 еще сложнее, но понятнее

  • @СилкоЧернослив
    @СилкоЧернослив Год назад

    Стоп а разве массив не будет часто меняется и такой перебор будет не лучшим ?

    • @soul45860
      @soul45860 10 месяцев назад

      Если у тебя массив будет меняться , используй динамический массив.

  • @Потомпоидумаю
    @Потомпоидумаю 6 месяцев назад

    Что такое протокол?

  • @kpanat
    @kpanat Год назад +4

    Товарищ рассказывает гораздо меньше чем знает... Это чувствуется. Его рассказ довольно поверхностный. И его недостаточно для полного понимания... Ибо за 25 таких уроков нельзя рассказать о С++ так чтобы вы его хорошо поняли. Это всё равно что изучить С++ за 21 день... Вам придётся самим разбираться. Отладчик вам в помощь... Без него вы вряд ли разберётесь как следует!

    • @yamaracuya
      @yamaracuya 2 месяца назад

      Что такое отладчик?

    • @user-wn6pc4ns7n
      @user-wn6pc4ns7n 13 дней назад

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

  • @belova_nesq
    @belova_nesq 5 месяцев назад +1

    а нах эти массивы нужны то

  • @Keen.3.0
    @Keen.3.0 Год назад

    Не чего не знаю кому заплатить кому научит?

    • @leogscdlr2894
      @leogscdlr2894 Год назад

      Могу научить за некую сумму, если у Гоши не хочешь учиться.

    • @Keen.3.0
      @Keen.3.0 Год назад

      @@leogscdlr2894 как выйти с тобой на связь

    • @Keen.3.0
      @Keen.3.0 Год назад

      @@leogscdlr2894 Гуги ты куда пропал ?

    • @user-yx7pz6se6t
      @user-yx7pz6se6t Год назад

      не начинай учить с++ если ничего не знаешь. Идеальный язык прогр. для новичков это python, начни с него. Я 13 летний школьник немного изучив пайтон теперь могу с++ учить, на этом канале есть уроки по python. Потребуется неделя или две смотря как часто будешь учить

    • @user-yx7pz6se6t
      @user-yx7pz6se6t Год назад +2

      а если ты вообще совсем совсем ниче не знаешь прям полный 0, начни с простого изучения алгоритмов информатики 8-11 классов, или начни учить Scratch

  • @MS-SNA12
    @MS-SNA12 5 месяцев назад

    От многомерный массив это же простейшая алгебра😊