последний коммент 2 года назад.. дядь, твои уроки смотрят и сейчас! спасибо за отличное преподавание.
@never.m1nd5 жыл бұрын
Пожалуй добавлю в избранное)
@motoday35805 жыл бұрын
Спасибо большое !
@ДмитрийПисарь5 жыл бұрын
Я ещё на атмел студио до конца не разобрался. Однозначно 👍
@dmitriyfilatov86585 жыл бұрын
Давайте, все же придерживаться верной терминологии: не "равно", а "присвоить". Тем более, что курс с азов начат.
@awenn20152 жыл бұрын
let a = [14, 16, 11, 8, 19, 13]; a.push(12); a.filter((i) => i >= 15); Результат: a.foreach((i) => console.log(i)); a.join(" - ");
@awenn20152 жыл бұрын
Интересно как узнать размер массива, в js можно с помощью length, а php с помощью count
@Красный-ц9ч5 жыл бұрын
Вот и до массивов дошли!
@Иринаколпакова-з2ж4 жыл бұрын
для чего цыккл for перед выводом символьного массива
@АлександрЛеденев-ц5т5 жыл бұрын
Когда вы инициализируете массив, вы не резервируете память мгновенно - это произойдет на момент использования этого массива. Я по дурости понасоздавал огромных массивов - смотрю на память, а там все отлично (потому и создавал дальше кучу массивов). А вот когда я начал применять эти массивы в различных операциях, тогда и осознал весь ужас нехватки памяти в моем МК. Просто объявить переменную, скомпилировать и посмотреть сколько памяти осталось, недостаточно. Подсказка новичкам от новичка.
@Onlinespirits5 жыл бұрын
Можно по подробнее? Можно даже кодом :) Я новичек в программировании микроконтроллеров, не сильно понял эту хитрость. Я всегда думал что при объявлении переменной, выделяется память согласно её типу.
@АлександрЛеденев-ц5т5 жыл бұрын
@@Onlinespirits Если вы объявите массив с каким нибудь большим объемом данных, а потом скомпилируете, то счетчик остатка оперативной памяти в МК не особо изменится. Вам покажется, что наверно массив не очень много места кушает. А теперь, допустим, вы в этот код добавляете цикл, в котором проходите по элементам этого массива (короче, что-то с этим массивом делаете), и вот теперь после компиляции количество оставшейся памяти у вас резко упадет. Потом мне на форуме написали, что компилятор резервирует память когда ему удобно, а формальности с объявлением переменной служит только для нашего удобства (чтобы мы могли объявить в начале кода, а не где-то в середине). Так вот, когда мы объявляем массив но его не используем, компилятор видит что мы его, собственно, не используем и не резервирует память.
@narodstream5525 жыл бұрын
Так поэтому мы и пошли в отладку, чтобы точно удостовериться, что и как. Причём смотрел в разных компиляторах, в VS тоже смотрел, там так же.
@Electronika_5 жыл бұрын
Все довольно просто, компилятор неиспользуемую часть кода не компилирует. Все ровно так же как и при использовании библиотек. Вы подключаете (include) библиотеку, в ней уйма функций но в своей программе Вы обращаетесь только к одной, несмотря на громадную библиотеку, скомпилируется только нужная ее часть.
@dmitriykonopinskiy37934 жыл бұрын
"Когда вы инициализируете массив, вы не резервируете память мгновенно" вот именно, что резервируете, если речь идёт именно про инициализацию, а не про объявление. Правилом хорошего тона является зануление переменных и массивов при их объявлении. В уроке показаны 2 примера инициализации массива нулями а[10]={0}; а[10]={};
@maximpetrov27425 жыл бұрын
Ещё раз хочу спасибо за ваши труды ) скоро будут указатели ? И такие темы как heap , stack и прочее в теме мк ?
@narodstream5525 жыл бұрын
Спасибо! Указатели ещё не скоро, а куча и стек тем более. Мы ещё операции не все знаем. Функции будут, разбивка на модули, make, указатели по плану пока стоят далеко, но может всё меняться.
@kalobyte5 жыл бұрын
тоже жду всякие указатели на указатели, указатели на функции, переключение функций по указателю (например эффекты светодиодов вс2812 в виде функций и чтобы их можно было выбрать из списка и сохранить выбор в нужной последовательности в епром
@sentyay5 жыл бұрын
На днях пол дня убил, разбираясь почему программа не вызывала функцию при получении определенных элементов массива. Оказалось, что я затупил с обращением к элементу массива в условии функции) А затуп весь был в том, что нумерация элементов начинается с 0.
@narodstream5525 жыл бұрын
Есть такое. Самое главное, что теперь поняли.
@awenn20152 жыл бұрын
Так то да это ж азы
@ВячеславСартисон5 жыл бұрын
Пробовал выгребать из массива значения больше чем в нем содержаться например char a[ ] = "Privet"; printf ( " %c ",a[200]); Выводит символы в этом примере букву "с" (код 99). Откуда они берутся?
@narodstream5525 жыл бұрын
Так делать не надо, либо посмотрите, как распределились секции кода и данных. Возможно Вы попадаете в секцию кода. Или хотя бы выделите памяти под 201 элемент, Вы же к 201-му обращаетесь, у нас отсчёт с нуля.
@Electronika_5 жыл бұрын
Элементы массива находятся в памяти строго друг за другом и до него и после присутствует тоже код (данные, инструкции...), а компилятор не проверяет индекс массива, при обращении к нему, на предмет выхода за диапазон самого массива. По этому по факту 200-й элемент находится в 201-й "ячейке" памяти относительно указателя нулевого элемента массива, а что там по факту известно только компилятору. По этому Ваша буква "с", всего лишь вырванный кусок кода из памяти, переведенный в символ ASCII.
@ДимаДима-к1н4 жыл бұрын
int A[]=A[i]=++i почти тоже будет работать ,Perpetuum Mobile. Eсли интерпритатор старый_пропустит , Компилятор ЗАСТРЕЛИТ комп ещё на стадии написания программы... Повторение мать у....как это давно было... Кто может может расшифровать результат, интересно увидеть ,ваши варианты ЧТО могло пойти не так?
@awenn20152 жыл бұрын
Я надеюсь указывать размер массива при инициализации это не обязательное условие ?)) А то не очень прикольно получаеться
@СуНаиль5 жыл бұрын
Это все есть в учебниках по программированию. Нужно рассмотреть необычные примеры работы с массивами.
@narodstream5525 жыл бұрын
А мы здесь, как ни странно, тоже учимся. Хотите необычных, смотрите уроки по STM32, там много необычного, в т.ч. и массивов. Здесь важно построить занятие так, чтобы было понятно всем, в том числе тем, кто впервые решил заняться программированием. А весь трэш там.
@sentyay5 жыл бұрын
В учебниках это совсем не то. Когда живой человек объясняет доступными словами, то быстрее доходит. Данного материала для 80% аудитории достаточно для повседневных задач. Спасибо огромное за уделённое время и разъяснение основ работы!
@СуНаиль5 жыл бұрын
@@narodstream552 я имею ввиду, что помимо этого нужно и другое, чтобы уроки не скатились в банальное повторение множества уроков, которые есть в ютьюбе. СПасибо за уроки.
@narodstream5525 жыл бұрын
Да я и не повторяю, это так получается, я и книжек-то особо не читал. В основном больше практически обучался и на открытых исходных кодах. И Вам тоже спасибо за такой интерес к программированию!