Автор молодец, благодаря нему я стал более-менее понимать С++, хотя буквально неделю назад страшился его, как огня. Спасибо за такие прекрасные видеоролики!
Автор, действительно, учитель от Бога. Отличная речь, скорость подачи, без духоты. Надо было сразу учить Си. Почему то в ит сообществе, у всех принято страшилки рассказывать, про то, что язык сложный и тд, и тп. Вот и я такого наслушался и пошел учить Go. Go замечательный язык, особенно для веб разработки. Но для системного программирования, например инсталлятор написать, даже по первым урокам я уже вижу, что те же задачи на Си сделать можно чище(тот же stdin, stdout).
Кстати = при инициализации писать не надо. Можно написать просто фигурные скобки. Если написать пустые, то это инициализация по умолчанию. Если ничего не написать то это тоже. Однако статические массивы инициализировать обязательно если вы не все размеры указали чтобы компилятор мог вывести размер из вашей инициализации. Это происходит только для самой верхней размерности. Все остальные обязательно указываются.
Про двумерные массивы говоря (многомерные) это множество массивов каждый из которых хранит информацию в ввиде х * х,то есть допустим a[3][3] 3 на 3 9 9- массивов первая тройка количество строк вторая количество столбцов
Потому что мы массив прировняли к циклу for У цикла установили диапозон от 0 до какого то числа,который приравнивается к массиву (независимо до какого числа установлен диапозон цикла) Видимо в C++ когда работаешь с массивом а потом пишешь цикл они как то взаимодействуют друг с другом ,приравниваются или объединяются и цикл становится пешкой или вспомогательным звеном в руках массива То есть сам массив в программе главнее установленного цикла и сам цикл подчиняется Ну вроде-бы так Я так понял 😀
Потому что если пишем обращение к nums2 и ставим [ ] то имеется в виду именно порядковые номера в этом массиве, а не сами числа. А как мы знаем под порядковыми номерами от 0 до 3 в этом массиве как раз находятся числа 4, 6, 7. Он не вводит данные в i, он сначала создает цикл в котором эта i у него от 0 до 3 и увеличивается на 1 каждый раз, потом создает команду вывести на экран i. Программа понимает 2 условия: [ i ] это массив то есть нужно выводить числа под порядковым номером от 0 до 3. Если не поняли пишите я еще раз объясню по-другому.
автор , я решил проверить махинации с массивами на 18:55 минуте видео и у меня минимальное число всегда выдает которое конечное в массиве помоги пожалуйста
он показывает только то число которое меньше указанного значения, автор указал 0, поэтому его число которое было отрицательное высветилось, а если ты указываешь только положительные числа то он будет выдавать ноль.
У мене питання, я писав код так само і у мене не виникло помилок, але в консолі мені замість таблиці пише рандомні числа, по типу -43435435132798, а потім рядків так сорок одні 0, в чому може бути проблема?
Прописал 3 цикла for для заполнения, вывода, суммы, у меня только один цикл выполняется, хотя год валидный по написанию. Фокусы с выводом массива и его суммы не работают.... хотя так же счетчик копировал, все как в видео
Про 2-мерные массивы вобще мало рассказал. И вобще есть 2-мерные это вот такие статические( к сожалению динамических двумерных нет...) и двойные, про которые он говорит. Но это несколько другие массивы. Компилятор здесь хитрит и всегда делает 2-мерные(не массив массивов а именно 2-х мерный без промежуточных указателей что весьма экономит память и эффективность работы но делает обращение к его элементам несколько неудобным) Фактически представленный нам агрегат данных это 2-х мерный массив без промежуточных указателе, т.е. не массив массивов как говорит автор, а просто 2-х мерный массив сам того не осознавая. Я не знаю знает автор это или нет. Но судя по его рассказу ясно что эта тема ему самому плохо известна потому что он говорит неправильно. Сможете ли в при этом разобраться? Я сомневаюсь... Вобщем как факт сообщаю что этот 2-мерный массив на самом деле 1-мерный как и 3- 4-х и тд мерные массивы. А это просто как говорят синтаксический сахар для удобства. Но согласитесь удобно... Однако надо иметь ввиду что длину строки указывать при инициализации надо обязательно! Иначе компилятор не сможет работать. Вы можете создать динамический 1-мерный массив с 6-тью элементами = 2х3. Вот только обращаться к ним вы сможете только так: matrix[i*size_y + j] а не как matrix[i][j] как тут . Где size_y длинна строки. Т.е. знать длинну строки обязательно!
А 3-х мерные массивы надо печатать на 3-х мерные экран...Упс! Таких экранов нет пока... Ну тогда когда будут, тогда и будем печатать... А пока подождём-с... Кстати 3-х мерные называются не матрицами. Название матрица зарезервировано именно за 2-х мерными массивами. специального названия для 3-х мерных массивов нет. Хотя в природе именно они и встречаются...
Народ, підкажіть мені будь ласка. Я вирішив зупинити відео на цьому моменті 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
когда ты создаёшь переменную ----- float n1; ----- ей не присваивается никакого значения (то есть, она ничему не равна, даже нулю), это просто (условно) пустое место для каких-то данных. а дальше ты в коде что-то пытаешься к ней прибавить ----- n1 += number3[a]; ----- Ты к пустому месту (не фактическому числу) пытаешься прибавить число, отсюда и ошибка. Если бы ты сразу написал float n1 = 0; то переменная была бы нулём, то есть числом. К числу можно прибавить число, соответственно код бы работал нормально. Насчёт фигурных скобок, это не самая лучшая привычка. Лучше так конечно не делать. Надеюсь помог)
Подскажите кто-нибудь пожалуйста, что мне делать, у меня есть в программе массив, у которого n елементов(int nums[n]). Вот та самая часть программы: int n; cin >> n; int nums[n]; Так вот при запуске программы у меня выходит ошибка: "выражение должно иметь констатное значение". Как мне это исправить?
Хто ще зіткнувся з такою проблемою, ось відповідь: nums[n] це статичний масив який працює тільки вже вказаним розміром, його не можна змінювати в ході компіляції, компіляції, на те він і статичний , потрібно просто створити і використовувати динамічний масив, або, як кажуть в неті, робити щось типу такого vector a(x);
Его можно заменить int ff; begin: \\метка для перехода ff++; \\увеличить переменную if( ff < 5) goto begin; \\перейти на метку если переменная меньше 5
Товарищ рассказывает гораздо меньше чем знает... Это чувствуется. Его рассказ довольно поверхностный. И его недостаточно для полного понимания... Ибо за 25 таких уроков нельзя рассказать о С++ так чтобы вы его хорошо поняли. Это всё равно что изучить С++ за 21 день... Вам придётся самим разбираться. Отладчик вам в помощь... Без него вы вряд ли разберётесь как следует!
не начинай учить с++ если ничего не знаешь. Идеальный язык прогр. для новичков это python, начни с него. Я 13 летний школьник немного изучив пайтон теперь могу с++ учить, на этом канале есть уроки по python. Потребуется неделя или две смотря как часто будешь учить
Автор молодец, благодаря нему я стал более-менее понимать С++, хотя буквально неделю назад страшился его, как огня. Спасибо за такие прекрасные видеоролики!
ItProger красавчик. Я когда решился начинать учить Спп, думал, что это что-то нереальное)
@@alnxdrshii4375аналогично, а как ща? Далеко продвинулся?
@@Cosi-vacamble без обид но ты так ещё удивишься когда пройдёшь продвинутый C++ и углублённый)) потом фраймворки git и т д
Я думал это самый сложный язык
@@MGeming26 Самый сложный - это Асемблер
Автор, действительно, учитель от Бога. Отличная речь, скорость подачи, без духоты. Надо было сразу учить Си. Почему то в ит сообществе, у всех принято страшилки рассказывать, про то, что язык сложный и тд, и тп. Вот и я такого наслушался и пошел учить Go. Go замечательный язык, особенно для веб разработки. Но для системного программирования, например инсталлятор написать, даже по первым урокам я уже вижу, что те же задачи на Си сделать можно чище(тот же stdin, stdout).
язык реально сложный, здесь пока изучается только база
Премного благодарен за великолепный курс!
Cпасибо огромное, за такой урок. Реально очень полезно. Изучаю С++ с удовольствием!
Спасибо за понятное объяснение!
Большое спасибо за уроки!!!
Кстати = при инициализации писать не надо. Можно написать просто фигурные скобки. Если написать пустые, то это инициализация по умолчанию. Если ничего не написать то это тоже. Однако статические массивы инициализировать обязательно если вы не все размеры указали чтобы компилятор мог вывести размер из вашей инициализации. Это происходит только для самой верхней размерности. Все остальные обязательно указываются.
Даровыч! Это так a[][2] {{8,9},{0,0},{-2,1},{1,2}}; ? Как практикум, придумал написать написатор для массивов. Это возможно же, да?))
Автор молодец тебе, думаю 99.9% учителей не могут так понятно обяснить что тебе все было понятно.
спасибо автор я всегда боялся програмирование
Awesome lesson!
Спасибо за ваши выпуски😊
Буду писать под каждым видео комментарий, всё на одном дыхании идёт)
Дошел до конца?🎉
научился с++?)
@@1joker2viktor3dude9 я ток на 30%, другую инфу учил в книгах, там больше инфы
спасибо, легенда
База, конечно, но спасибо автору за раскрытие синтаксиса данного языка)
7:05 а можно делать пробелы, чтобы установить значение 1, 2 и 5 элементам массива например?
Спасибо
Bravo
Про двумерные массивы говоря (многомерные) это множество массивов каждый из которых хранит информацию в ввиде х * х,то есть допустим a[3][3] 3 на 3 9 9- массивов первая тройка количество строк вторая количество столбцов
двумерныйц массив это обычная матрица
@@Iooooooqq Я объяснил по другому просто, но спасибо за уточнение
Очень крутой курс, однако у меня дилемма: изучать и python и c++ или изучать что-то углублённо
Та же проблема была, я выбрал с++ ибо хочу работать в гейм деве.
Подскажите пожалуйста, почему на 15:11 у меня при дебаге не работает в консоли 2 функция? Когда я запускаю без дебага, то всё работает
Спасибо! Всё понятно, но с нуля без интернета и без примеров кода я такое не напишу)))
Я уже могу написать калькулятор без единой помощи
17:03 summa += numbers[i] А как тут все числа вместе суммируются? В терминале должно быть 0 + i
Обьясните пожалуйста, почему i это индекс а не отдельная переменная. Почему он вводит данные в i и они идут в массив?
Потому что мы массив прировняли к циклу for
У цикла установили диапозон от 0 до какого то числа,который приравнивается к массиву (независимо до какого числа установлен диапозон цикла)
Видимо в C++ когда работаешь с массивом а потом пишешь цикл они как то взаимодействуют друг с другом ,приравниваются или объединяются и цикл становится пешкой или вспомогательным звеном в руках массива
То есть сам массив в программе главнее установленного цикла и сам цикл подчиняется
Ну вроде-бы так
Я так понял 😀
i это и есть переменная, массив считает значение переменной i, к примеру i = 1; то если cout
Потому что если пишем обращение к nums2 и ставим [ ] то имеется в виду именно порядковые номера в этом массиве, а не сами числа. А как мы знаем под порядковыми номерами от 0 до 3 в этом массиве как раз находятся числа 4, 6, 7. Он не вводит данные в i, он сначала создает цикл в котором эта i у него от 0 до 3 и увеличивается на 1 каждый раз, потом создает команду вывести на экран i. Программа понимает 2 условия: [ i ] это массив то есть нужно выводить числа под порядковым номером от 0 до 3. Если не поняли пишите я еще раз объясню по-другому.
автор , я решил проверить махинации с массивами на 18:55 минуте видео и у меня минимальное число всегда выдает которое конечное в массиве помоги пожалуйста
он показывает только то число которое меньше указанного значения, автор указал 0, поэтому его число которое было отрицательное высветилось, а если ты указываешь только положительные
числа то он будет выдавать ноль.
красава
wow!
У мене питання, я писав код так само і у мене не виникло помилок, але в консолі мені замість таблиці пише рандомні числа, по типу -43435435132798, а потім рядків так сорок одні 0, в чому може бути проблема?
можеш код скинути?
тож самое было, перезапусти ВС, должно помочь но это не страшная проблемка
Прописал 3 цикла for для заполнения, вывода, суммы, у меня только один цикл выполняется, хотя год валидный по написанию. Фокусы с выводом массива и его суммы не работают.... хотя так же счетчик копировал, все как в видео
снизу программы пишется, есть ли ошибки, сколько их и в чём заключаются
12:34 Почему создан float nums2[3] а внутри целочисленные значения. и почему компилятор не выдал ошибку???? это же жесткий с++
потому что тип данных float может хранить так и целочисленные значения так и числа с плавающей точкой
@@SPEEDWAGON3 не знал.
@@StartuePotoyaнет. Ничего он не хранит. Потому что типы приводятся один к другому. В массив интов можно запихнуть флоат и все тоже будет ок.
Про 2-мерные массивы вобще мало рассказал. И вобще есть 2-мерные это вот такие статические( к сожалению динамических двумерных нет...) и двойные, про которые он говорит. Но это несколько другие массивы. Компилятор здесь хитрит и всегда делает 2-мерные(не массив массивов а именно 2-х мерный без промежуточных указателей что весьма экономит память и эффективность работы но делает обращение к его элементам несколько неудобным) Фактически представленный нам агрегат данных это 2-х мерный массив без промежуточных указателе, т.е. не массив массивов как говорит автор, а просто 2-х мерный массив сам того не осознавая. Я не знаю знает автор это или нет. Но судя по его рассказу ясно что эта тема ему самому плохо известна потому что он говорит неправильно. Сможете ли в при этом разобраться? Я сомневаюсь... Вобщем как факт сообщаю что этот 2-мерный массив на самом деле 1-мерный как и 3- 4-х и тд мерные массивы. А это просто как говорят синтаксический сахар для удобства. Но согласитесь удобно... Однако надо иметь ввиду что длину строки указывать при инициализации надо обязательно! Иначе компилятор не сможет работать. Вы можете создать динамический 1-мерный массив с 6-тью элементами = 2х3. Вот только обращаться к ним вы сможете только так:
matrix[i*size_y + j] а не как matrix[i][j] как тут . Где size_y длинна строки. Т.е. знать длинну строки обязательно!
дякую++
А 3-х мерные массивы надо печатать на 3-х мерные экран...Упс! Таких экранов нет пока... Ну тогда когда будут, тогда и будем печатать... А пока подождём-с... Кстати 3-х мерные называются не матрицами. Название матрица зарезервировано именно за 2-х мерными массивами. специального названия для 3-х мерных массивов нет. Хотя в природе именно они и встречаются...
а больше 3-х бывают? например, 5 мерный массив?
@@nelavas4651да хоть 10.
У меня выводится сумма каждого элемента отдельно, а не всех элементов вместе🤔
16:55 - зачем было создавать ещё цикл когда мы в одном цикли могли посчитать сразу сумму разве это не усложняет сам код?
Я тоже об етом подумал
скорее всего для простоты понимания для новичков
сайт не работает
Народ, підкажіть мені будь ласка. Я вирішив зупинити відео на цьому моменті 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
когда ты создаёшь переменную
-----
float n1;
-----
ей не присваивается никакого значения (то есть, она ничему не равна, даже нулю), это просто (условно) пустое место для каких-то данных.
а дальше ты в коде что-то пытаешься к ней прибавить
-----
n1 += number3[a];
-----
Ты к пустому месту (не фактическому числу) пытаешься прибавить число, отсюда и ошибка.
Если бы ты сразу написал float n1 = 0; то переменная была бы нулём, то есть числом.
К числу можно прибавить число, соответственно код бы работал нормально.
Насчёт фигурных скобок, это не самая лучшая привычка. Лучше так конечно не делать.
Надеюсь помог)
@@Mafter Так, зрозумів. Дякую за розгорнуту відповідь.)
@@Mafter спс
@@Mafterв Pawn языке. при создании переменной по умолчанию ей присвоено значение 0 .
Подскажите кто-нибудь пожалуйста, что мне делать, у меня есть в программе массив, у которого n елементов(int nums[n]).
Вот та самая часть программы:
int n;
cin >> n;
int nums[n];
Так вот при запуске программы у меня выходит ошибка: "выражение должно иметь констатное значение".
Как мне это исправить?
Для таких случаев используй chat gpt, он не только решит твою проблему и объяснит ее
@@cian7893 так он же платный, но все равно спасибо
int n = 0;
Хто ще зіткнувся з такою проблемою, ось відповідь: nums[n] це статичний масив який працює тільки вже вказаним розміром, його не можна змінювати в ході компіляції, компіляції, на те він і статичний , потрібно просто створити і використовувати динамічний масив, або, як кажуть в неті, робити щось типу такого vector a(x);
@@wrebly4774спасибо
мне кажется что сложнее понять цыкл for чем массивы
Его можно заменить
int ff;
begin: \\метка для перехода
ff++; \\увеличить переменную
if( ff < 5) goto begin; \\перейти на метку если переменная меньше 5
@@MAGZ2K2 еще сложнее, но понятнее
Стоп а разве массив не будет часто меняется и такой перебор будет не лучшим ?
Если у тебя массив будет меняться , используй динамический массив.
Что такое протокол?
Не знаю
Не помню
Товарищ рассказывает гораздо меньше чем знает... Это чувствуется. Его рассказ довольно поверхностный. И его недостаточно для полного понимания... Ибо за 25 таких уроков нельзя рассказать о С++ так чтобы вы его хорошо поняли. Это всё равно что изучить С++ за 21 день... Вам придётся самим разбираться. Отладчик вам в помощь... Без него вы вряд ли разберётесь как следует!
Что такое отладчик?
он и не обязан учить нас. курсы программирвания платные. скажи спасибо, что хотя бы базу дает
а нах эти массивы нужны то
Не чего не знаю кому заплатить кому научит?
Могу научить за некую сумму, если у Гоши не хочешь учиться.
@@leogscdlr2894 как выйти с тобой на связь
@@leogscdlr2894 Гуги ты куда пропал ?
не начинай учить с++ если ничего не знаешь. Идеальный язык прогр. для новичков это python, начни с него. Я 13 летний школьник немного изучив пайтон теперь могу с++ учить, на этом канале есть уроки по python. Потребуется неделя или две смотря как часто будешь учить
а если ты вообще совсем совсем ниче не знаешь прям полный 0, начни с простого изучения алгоритмов информатики 8-11 классов, или начни учить Scratch
От многомерный массив это же простейшая алгебра😊