Дали книгу в институте, сказали: «читай», ничего не понял, а тут человек подробно все по полкам разложил. Спасибо тебе, обнял. БЫСТРЕНЬКО ВСЕ ПОДПИСАЛИСЬ!!!💙👋🏻
Я в восторге. Автор - вы прирождённый учитель. Браво. Великолепно! Единственное, что автор не слишком хорошо помнит диапазоны типов данных. Например int 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647. А вот short имеет размер 2 байта(16 бит) и, соответственно, позволяет выразить множество значений равное 2 в степени 16: 2^16=65 536. Так как тип short является знаковым и содержит как положительные, так и отрицательные значения, то диапазон значений находится между -32 768 и 32 767
Пытался до этого учить с++ по книге, многое понятно но не все. Знаю ассемблер и работал на нем. Но когда начал смотреть ваш курс понял "вот оно, мое! ". Спасибо большое! От души спасибо!
С типом int я бы не был так однозначен. По спецификации int - целое число, размер которого минимум 2 байта. В x86 int - 4 байта, а в AVR (Arduino Uno) - 2 байта. Так что когда используете этот тип, всегда стоит уточнить сколько байт он занимает на вашем устройстве.
если на платформе x86 short 2 байта (2 в степени 16), int 4байта (2 в степени 32). Автор ошибся в интервале int, там будет больше 2млрд. а без знака больше 4млрд, у автора млн.
Да, поэтому есть библиотека stdint.h, которая добавляет числа с конкретными размерами: int8_t - 1 байт, int16_t - 2 байта, int32_t - 4 байта и там ещё на 8 байт и без знаков
Сколько пытался всегда с самого начала не чего не понимал, пока не наткнулся на эти уроки, спасибо. А просто повтори за мной как на 99,9% курсов для начинающих, это не учёба
2:39 Да, конечно, 0. Если бы в Си было всё так просто)) Язык Си разрабатывался для максимальной производительности. А т.к. присваивание нулевого значения по умолчанию является операцией, то это идёт в разрез его эффективности. Зачем присваиватьзначение по умолчанию, если разработчик потом планирует дать переменной значение? В переменную по умолчанию записывается мусор, который хранится в ячейке памяти, в которой находится переменная. Да, там может быть 0. А может и не быть)) (скорее всего это будет второй вариант)
@@N1ghtH1de По идее ничего...Если говорить про максимальную эффективность программа даже не должна пытаться дать этой переменной какое-то значение,а просто отставлять болванку для дальнейшего использования...Я далеко не эксперт но если расширить комментарии выше,по идее должно быть так, если это физически возможно.
Небольшая поправка: тип данных *short int* использует 2 байта памяти -> может хранить значения 0...65536 для unsigned и -32768...+32768 для signed если *int* использует в 2 раза больше памяти (4байта), то диапазон его значений составляет +-2 млрд, а не млн
Для работы с типом данных short нужно использовать спецификатор %hd , а не просто %d! Иначе будут вылезать ошибки. Кроме того, ещё есть спецификатор для типа unsigned - %u -, о котором ни слова не сказано...
@@ruslanvolovik2745 ты не понял мой комментарий. Моё слово "указатель" означает одно и тоже, что ты потом подправляешь меня словом "указывает". В данном контексте, при вводе значения через scanf, имхо, но этим словом больше понятно, чем говорить, что он возвращает адрес. Да и к тому же я тут напрямую поправляю автора... То что этот знак не указатель и так должно быть понятно, ибо что такое указатель? Указатель это ПЕРЕМЕННАЯ, которая хранит адрес ячейки.
С char можно производить математические операции. В char хранятся числа. То, что они являются символами, влияет на их отображение, например, в printf, если указать спецификатор %c
Здравствуйте. В видеоуроке вы рассказали о том, что для типа float не нужно писать unsigned, так как для данного типа подходят и отрицательные, и положительные числа. Но разве в тот же int не входят те же отрицательные и положительные числа? Почему мы возле int можем написать unsigned, а возле float - нет?
Он сказал что в тип float не могут входить только положительное значение так как он работает и с теми и с отрицательными по умолчанию(грубо говоря тип данных тупо так устроен и так он и работает)
Integer Types Type Storage size Value range int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 unsigned int 2 or 4 bytes 0 to 65,535 or 0 to 4,294,967,295 short 2 bytes -32,768 to 32,767 unsigned short 2 bytes 0 to 65,535
Спасибо за урок. Я Полный "чайник"и перед тем как пойти на курсы, решил подучить хоть какие основы для лучшего усвоения в дальнейшем. Начал Рихтера читать, но в какой-то момент понял, что читаю просто текст без понимания))) А тут все досконально объяснил, детали из книги стали понятны. Буду продолжать по тихоньку, от непривычной информации мозг кипеть начинает. Может быть кто-то поделится опытом, как действовать в изучении от полного 0?
@@СтепанНикитин-щ3с начинаю с нуля тоже) из базы только знания питона. си учу по курсам на степике и по видео с этого канала. пока вроде все понятно, но особенно понятно, что дальше будет сложно. потому что си очень про память и эффективность))((( отпишусь может быть потом
printf (от англ. print formatted, «форматированная печать») (Википедия). Может быть записана printf("my number is %f", 1.5); в итоге мы увидим "my number is 1.5" знак "%" значит, что сейчас будет форматирование, а буква ""f" обозначает тип данных( в данном случае float).
Для глобальной переменной значение будет 0, тк память под нее выделяется при компиляции. Но так то, в видео глобальные переменные вообще не представлены)
При подключении библиотеки ты не расширяешь возможности файла или языка, тут происходит другое... Если конечно для тебя готовые функции и типы не являются так называемой расширенной возможностью программирования...
Прекрасная подача материала! Автору респект! Вопрос из 2024 года. В VS 2022 сломали scanf. Выдает ошибку "Предупреждение компилятора (уровень 3) C4996". Код использует функцию, член класса, переменную или типдеф, помеченную как нерекомендуемую. Символы устарели с помощью __declspec(deprecated) модификатора или атрибута C++14 [[deprecated]] . Фактическое предупреждение C4996 указывается модификатором или атрибутом deprecated объявления. Что с этим делать? Есть посвежее уроки по Си?
Здравствуйте, Гоша! Пусть Вам не покажется этот комментарий слишком наивным. Я делаю игру на C++. Выживание. Скажу сразу, я занимаюсь программированием меньше года. Знаю циклы, массивы, условные операторы ну и там по мелочи. Игра представляет собой выживание на улице. Да, звучит странновато. Так вот. Мне нужно, чтобы прогресс игры сохранялся каждый день (один день - один ход). И чтобы игрок мог выйти из игры и потом продолжить. Как я могу такое реализовать? Я долго искал в интернете, но так и не нашёл или не понял. Ах да, ещё я хотел бы сделать, чтоб был "зал рекордов", где показывалось бы максимальное количество прожитых дней. И как сделать это, я тоже не знаю. Надеюсь на Вашу помощь, буду очень благодарен, если хотя бы откликнитесь.
Здравствуйте, для этого нужно использовать базу данных или чтение/запись с файлов и каждый "день" записывать всю информацию о данной игре в файл или бд, и при загрузке в зависимости от того, что там написано, то и загружать. Таким же образом работает таблица рекордов. Может я объяснил как-то криво, но постарался помочь, ведь я пока что только Смотрю и Учусь.
Согласен с челом выше , тебе нужно использовать файлы что будут сохранятся на жестком диске или в облако.А как именно то там уже изворачивайся как хочешь.Например при загрузке будет считываться файл в котором на каждой определенной строке будет определенная инфа (хп,мана,опыт и тд.) в другом файле в виде массива будут записаны числа которые будут обозначать какие вещи есть в инвентаре и тд. Это самое первое что пришло на ум. Удачи!!
2:25 ЗА ТАКУЮ ОШИБКУ ПАЛКОЙ БИТЬ НАДО. В СИ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ НЕ ОБЯЗАТЕЛЬНО НОЛЬ, ТАМ МОЖЕТ БЫТЬ ВООБЩЕ МУСОР. И ЧТО? ВСЁ! ЕСЛИ ПСВЕВДОКОДЕР ОБ ЭТОМ НЕ ЗНАЕТ, ТО У НЕГО ПОТОМ ГАБЕЛЛА БУДЕТ. Поэтому надо после создания вручную присваивать переменой какое нибудь значение, тот же ноль напоимер
Я бы тебе питон для начала посоветовал .А когда уже научишься мыслить и искать инфу в гугле то переходи на С ,или С++ , смотря для чего тебе программирование надо.C и C++ звучит одинаково ,но языки разные )
@@animovhere894 Я бы никогда бы не посоветовал начинать с питона. Это СЛИШКОМ дружелюбный язык, который показывает слишком мало ошибок и часто будет просто пропускать если неправильно напишешь (к примеру случайно поставил = вместо == в условии). Да и гемор такой будет при переходе на c-подобные языки, когда надо везде эти скобочки, точки с запятой ставить. Где ' ' и " " не одно и тоже. Но также, каждый выбирает что ему интереснее, и указывать что выбрать не стоит.
Здравствуйте! Мне 12 и я очень хочу программировать пытался учить джава СЛОЖНО, Пайтон НЕОХОТО И СЛОЖНО а с си ОТЛИЧНО покачто я очень люблю математику и думаю это мне поможет можете ли вы мне что то посоветовать
Ага, слушай их.... Если не понимаешь что написано, то первым делом бери учебник английского, нужно хотя-бы понимать такие базывые надписи, далее почитай немножко про матлогику, а именно что такое бинарные числа и как работают операции И, ИЛИ, НЕ. Для самого начала этого хватит. Далее, ты должен понимать, что компудахтер как раз и работает с бинарными числами. Далее язык. Если не смыслешь в СИ, то бери обычный паскаль или бейсик. Питон не бери, он язык ооп, к тому же в основном для веба используется.... Если сразу с него начнёшь, то либо запутаешься, либо станешь говнокодером, в плане ооп. Пока что тебе нужно научиться писать обычные структурированные программы. Как только будешь уверенным в паскале или в бейсик, садись либо на си, либо с++. Научись его синтаксису, разбери уже указатели, работу с памятью и т.д. И только после этого садись за ооп. Для ооп есть си object, c++, c#, Java, Python. Но начинать лучше либо с C object, либо с C++. А там уже выбирай что хочешь
Если кто-то хочет программировать под Windows 7, то для этого есть самая простая в установке (по сравнению с другими) и интуитивно понятная среда CodeBlocks.
я все это делаю через терминал так у меня при подставлении значений появляется ошибка (%x and %y) а в целом все очень ххорошо расставелно по местам. мне все очень понравилось
Надеюсь люди смотрящие этот канал, а возможно и сам автор сможет помочь решить проблему с тротлингом, так как уже все перепробовал (не помогает) Ноутбук Lenovo Ideapad l340-15irh gaming (i5 9300h + gtx 1050 3gb ) при запуске почти любого 3d проекта сбрасывается частота до базовой 2.4 при этом в фотошопе стабильно держит 4 ГГц. пробовал откл. турбобуст - безуспешно. через программу Trottlestop удалось поднять частоту, однако температура поднималась до 95градусов и через минуты три опускалась до 72 вместе с частотой. При запуске игр первые секунды держит 4000 МГц с нереально высокой температурой, после сразу же сбрасывает. Также делал undervoltage -0.130v теперь частота держится в районе 2.9 Есть подозрения что не выдерживает система охлаждения, так как очень быстро повышается темп. , при чем при сворачивание игры и повторном ее запуске частота снова подымается до 4 (при 76) но плавно падает до 2.7-3
Купи охлаждающую поставку, либо подними ноутбук над поверхностью.. а вообще после запуска интелом 6 поколения из процессоры скатились, особенно для ноутбуков
Сразу прописанные коментарии к строчкам, делают математические действия с переменными нагляднее и усваивать проще. Проще один раз сказать и прописать, чем пять раз сказать одно и тоже.
В Си же значение по умолчанию не присваивается. Просто повезло, что ячейка памяти переменной попала на чистую память. Если не инициализировать, то в переменную может попасть любой мусор, который в памяти оставили другие программы
@@kimaller5148 с "_s" потому-что это безопасное(раньше были проблемы с безопасностью без этого) дополнение к функции, без этого visual studio попросту не разрешает, ну там конечно можно заморочиться и макрос добавить, тогда оно и без дополнения разрешает, но это уже такое
#include #include // для abs() int main() { const int SIZE = 3; int arr[SIZE]; arr[0] = -10, arr[1] = 5, arr[2] = 0; for (int i = 0; i < SIZE; i++) arr[i] = abs(arr[i]); int max = arr[0]; for (int i = 0; i < SIZE; i++) if (max < arr[i]) max = arr[i]; printf("%d", max); return 0; }
ааа, зачем у Плавающих чисел ("с точкой) добавляется "f"???? (кто-нибудь знает зачем? пробую вводить без f и "все пока работает", но чувствую, что надо использовать... (в др. "объяснениях" такое не упоминают, видимо чего-то не знают..)
У меня не работает функция запроса " scanf" 😭😭😭. Во первых это единственная функция которая не подсвечиваеться другим цветом. И в ошибке указывает на scanf
@@ruslanvolovik2745 да в жопу оно идет, учитывая что bool юзает столько же, сколько byte, то либо использовать побитовые операторы, либо byte, например чтобы экономить оперативку юзая одну переменную
Переменная не должна называться одними цифрами, об этом не сказано. Также не услышал о том, что например такие переменные не равные: Name, name, NAME, ...
Дали книгу в институте, сказали: «читай», ничего не понял, а тут человек подробно все по полкам разложил. Спасибо тебе, обнял. БЫСТРЕНЬКО ВСЕ ПОДПИСАЛИСЬ!!!💙👋🏻
тебе хотя бы книгу дали.Мне сразу дали работы,которые нужно сдавать
@@никитакузнецов-е8и6й жиза
@@никитакузнецов-е8и6й до боли жиза
чел одной книгой ты ничего не добьёшся практика тоже нужна
А читать пробовал?
Я в восторге. Автор - вы прирождённый учитель. Браво. Великолепно! Единственное, что автор не слишком хорошо помнит диапазоны типов данных. Например int 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647. А вот short имеет размер 2 байта(16 бит) и, соответственно, позволяет выразить множество значений равное 2 в степени 16: 2^16=65 536. Так как тип short является знаковым и содержит как положительные, так и отрицательные значения, то диапазон значений находится между -32 768 и 32 767
65535* short вмещает
@@Klerfe Он про шорты говорил что кол-во значений
Спасибо за уроки. Вы сделали отличный курс для тех, кто изучает Си.
Спасибо, Гоша. Даже 13-летнему мне интересно
увожаю
А мне 12=), и тож интересно.
@@ivaniwan1947 а мне 12 и скучно
@@nakidai Мне тоже, сейчас 12
@@yglyglya а мне уже 14 скоро будет 😎
Пытался до этого учить с++ по книге, многое понятно но не все. Знаю ассемблер и работал на нем.
Но когда начал смотреть ваш курс понял "вот оно, мое! ".
Спасибо большое! От души спасибо!
Так а что не так? в асме подключается WinAPI, а у него функции как в C.
Количество информации порадовало, не просто int float double и char. Но раздражает неточность в диапозоне значений.
вот за это от души. ничего лишнего все как и должно быть. а самое главное понятно))))
С типом int я бы не был так однозначен. По спецификации int - целое число, размер которого минимум 2 байта. В x86 int - 4 байта, а в AVR (Arduino Uno) - 2 байта. Так что когда используете этот тип, всегда стоит уточнить сколько байт он занимает на вашем устройстве.
если на платформе x86 short 2 байта (2 в степени 16), int 4байта (2 в степени 32). Автор ошибся в интервале int, там будет больше 2млрд. а без знака больше 4млрд, у автора млн.
Да, поэтому есть библиотека stdint.h, которая добавляет числа с конкретными размерами:
int8_t - 1 байт, int16_t - 2 байта, int32_t - 4 байта и там ещё на 8 байт и без знаков
@@роскомнадзор-д8я о спс шо сказал нейм этой либы
Красавчик, не слушай хейтеров.
Тот самый мега мозг, который учит все возможные языки и обучает им, респек!
Сколько пытался всегда с самого начала не чего не понимал, пока не наткнулся на эти уроки, спасибо. А просто повтори за мной как на 99,9% курсов для начинающих, это не учёба
2:39
Да, конечно, 0. Если бы в Си было всё так просто))
Язык Си разрабатывался для максимальной производительности. А т.к. присваивание нулевого значения по умолчанию является операцией, то это идёт в разрез его эффективности. Зачем присваиватьзначение по умолчанию, если разработчик потом планирует дать переменной значение?
В переменную по умолчанию записывается мусор, который хранится в ячейке памяти, в которой находится переменная. Да, там может быть 0. А может и не быть)) (скорее всего это будет второй вариант)
А что будет вместо нуля?
@@N1ghtH1de По идее ничего...Если говорить про максимальную эффективность программа даже не должна пытаться дать этой переменной какое-то значение,а просто отставлять болванку для дальнейшего использования...Я далеко не эксперт но если расширить комментарии выше,по идее должно быть так, если это физически возможно.
Неинициализованные переменные не используют значения по умолчанию! Они могут хранить мусорные данные.
@@АннаМ-м5о вам повезло с оптимизацией компилятора
В стандарте не прописано - значит поведение может быть любое
@@АннаМ-м5о эх, золотая школота... Скажи спасибо своему компилятору (или ide при компиляции), он умнее тебя и сам исправил эту ошибку.
Поэтому нельзя смотреть Гошу 😏 Хотя парень старается
Хотел посоветовать плейлист первокурсникам своим, но после такого точно не буду, а то потом их переучивать :(
Очень полезная информация, спасибо!
Большое спасибо! Это отличный опыт ❤
Отлично и доходчиво! Все понятно! Спасибо огромное!!!
Топ! стукнуло 30 лет сижу конспекты по видео пишу (современная учеба)
Спасибо за видосы, учу этот курс в китайском университете)) 😃
Небольшая поправка:
тип данных *short int* использует 2 байта памяти -> может хранить значения 0...65536 для unsigned и -32768...+32768 для signed
если *int* использует в 2 раза больше памяти (4байта), то диапазон его значений составляет +-2 млрд, а не млн
@@moneyhouse4365 Спасибо, поправил. Действительно перепутал signed и unsigned местами)
@@citizenone158 Да, и так же ещё:
верхний предел для unsigned short не 65 536, а 65 535. И для signed short верхний предел не 32 768, а 32767 ;-)
Не на всех компьютерах машинное слово 4 байта (размер для int). Я пришёл сюда душить)) Тип short хранит половину машинного слова
Гоша, спасибо тебе огромное!!! Объясняешь очень понятно, все доходит до головы. У тебя лучшие курсы!
Спасибо ! Очень информативно и понятно !!
Отличный урок, все понятно😁👍
Большое спасибо, очень круто объяснено 👍👍
дайте ссылку на сайт пж с которого скачивали программу
Для работы с типом данных short нужно использовать спецификатор %hd , а не просто %d!
Иначе будут вылезать ошибки.
Кроме того, ещё есть спецификатор для типа unsigned - %u -, о котором ни слова не сказано...
а естьли смысл вообще шорт то использовать? с интом легче
@@АлексейЛебедев-н3ю шорт меньше места в памяти занимает. Например, если нужен небольшой счетчик. как я понимаю
@@АлексейЛебедев-н3ю Ну так short занимает меньше места в оперативке, чем int
@@роскомнадзор-д8я знаешь, сегодня люди такие что ради удобства юзают long long
@@nakidaiНе ради удобства, а чтоб код весил больше и продать подороже свою работу😂
Я в Visual Studio 2019, и там он у меня требует чтобы я писал вместо функции scanf(), scanf_s(). Так что будьте внимательны!
А в чём разница? Спасибо, заработало со scanf_s(...)
@@МаксимКурчанов-ю8щ Ну типа это зависит от компилятора. Вот например у меня Visual Studio принимает scanf() за ошибку.
@@helgeplnika009 спасибо тебе
29:13 указатель не на переменную, а именно на адрес области памяти этой переменной. Так точнее и понятнее сам процесс работы
Это не указатель, а просто символ адресации, амперсанд, он указывает на месторасположения значения переменной в памяти, это не указатель
@@ruslanvolovik2745 ты не понял мой комментарий. Моё слово "указатель" означает одно и тоже, что ты потом подправляешь меня словом "указывает". В данном контексте, при вводе значения через scanf, имхо, но этим словом больше понятно, чем говорить, что он возвращает адрес. Да и к тому же я тут напрямую поправляю автора...
То что этот знак не указатель и так должно быть понятно, ибо что такое указатель? Указатель это ПЕРЕМЕННАЯ, которая хранит адрес ячейки.
@@demetriuss.8291 все верно!
С char можно производить математические операции. В char хранятся числа. То, что они являются символами, влияет на их отображение, например, в printf, если указать спецификатор %c
Спасибо огромное! Просто реально помог
Не строка а команда. В строке может быть много действий и т. д., но целом урок хороший как всегда.
Спасибо, ждем еще
Просто " спасибо тебе"
Спасибо). Открыл благодаря тебе жуткий баг в mingw. (visual studio не захотел со мной дружить) в scanf. Теперь сижу, горю
Топ урок! Наконецто что то понял)
Здравствуйте. В видеоуроке вы рассказали о том, что для типа float не нужно писать unsigned, так как для данного типа подходят и отрицательные, и положительные числа. Но разве в тот же int не входят те же отрицательные и положительные числа? Почему мы возле int можем написать unsigned, а возле float - нет?
Он сказал что в тип float не могут входить только положительное значение так как он работает и с теми и с отрицательными по умолчанию(грубо говоря тип данных тупо так устроен и так он и работает)
@@ІО-13ГлібШин хорошо, спасибо
Курс имба
Integer Types
Type Storage size Value range
int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int 2 or 4 bytes 0 to 65,535 or 0 to 4,294,967,295
short 2 bytes -32,768 to 32,767
unsigned short 2 bytes 0 to 65,535
А на Andruino меньше
Очень просто объяснил👍
Благодарю!
Мастер "hello world!" на все руки
Идеально все монял❤
Спасибо за урок. Я Полный "чайник"и перед тем как пойти на курсы, решил подучить хоть какие основы для лучшего усвоения в дальнейшем. Начал Рихтера читать, но в какой-то момент понял, что читаю просто текст без понимания))) А тут все досконально объяснил, детали из книги стали понятны. Буду продолжать по тихоньку, от непривычной информации мозг кипеть начинает. Может быть кто-то поделится опытом, как действовать в изучении от полного 0?
По началу тебе только видео помогут
Год прошёл) поделитесь опытом
Удалось с нуля разобраться?
@@СтепанНикитин-щ3с начинаю с нуля тоже) из базы только знания питона. си учу по курсам на степике и по видео с этого канала. пока вроде все понятно, но особенно понятно, что дальше будет сложно. потому что си очень про память и эффективность))(((
отпишусь может быть потом
Работаю в atom. Запись следующая:
#include
#include
int main(){
char fletter;
short age;
float height;
printf("Первая буква вашего имени: ");
scanf("%c", &fletter);
printf("Ваш возраст: ");
scanf("%d", &age);
printf("Ваш рост: ");
scanf("%f", &height);
printf("Первая буква: %c,
Возраст: %d,
Рост: %f
", fletter, age, height);
}
При запуске ошибок не выдаёт, всё работает до конца. но не высвечивается первая буква. Вывод выглядит так:
Первая буква вашего имени: О
Ваш возраст: 45
Ваш рост: 345
Первая буква: ,
Возраст: 45,
Рост: 345.000000
Для продолжения нажмите любую клавишу . . .
Используй кодировку, где русский символ занимает 1 байт.
Почему функция вывода в C называется printf, а не просто print?
printf (от англ. print formatted, «форматированная печать») (Википедия). Может быть записана printf("my number is %f", 1.5); в итоге мы увидим "my number is 1.5" знак "%" значит, что сейчас будет форматирование, а буква ""f" обозначает тип данных( в данном случае float).
А если проще говорить, функция printf позволяет работать с переменными. Поэтому она и называется print format.
Где же ты раньше был , добрый человек?
9:58 разве %d - это не decimal (рус "десятичный") или же у него есть два названия?
спасибо за труды очень помогаешь учиться все внятно и понятно
В Си не инициализированная переменная принимает мусорное значение, а не 0. В Java 0 по умолчанию присваивается и возможно в других языках
Для глобальной переменной значение будет 0, тк память под нее выделяется при компиляции. Но так то, в видео глобальные переменные вообще не представлены)
А зачем к флоату добавлять "f"? компилятор прочитал корректно как число с "f" так и без
При подключении библиотеки ты не расширяешь возможности файла или языка, тут происходит другое...
Если конечно для тебя готовые функции и типы не являются так называемой расширенной возможностью программирования...
Это не библиотека а загаловочный фаил
лучше чем в Гарварде
лучше, но всеравно не понятно. В гарварде вобще даже не обясняют, этот гарвардский курс cs50 для тех кто уже немного знает
Добрый день. Подскажите пожалуйста как называется Ваш компилятор, в котором вы работаете. Больно у него френдли интерфейс.
Прекрасная подача материала! Автору респект! Вопрос из 2024 года. В VS 2022 сломали scanf. Выдает ошибку "Предупреждение компилятора (уровень 3) C4996". Код использует функцию, член класса, переменную или типдеф, помеченную как нерекомендуемую. Символы устарели с помощью __declspec(deprecated) модификатора или атрибута C++14 [[deprecated]] . Фактическое предупреждение C4996 указывается модификатором или атрибутом deprecated объявления. Что с этим делать? Есть посвежее уроки по Си?
Используй scanf_s
Здравствуйте, Гоша! Пусть Вам не покажется этот комментарий слишком наивным. Я делаю игру на C++. Выживание. Скажу сразу, я занимаюсь программированием меньше года. Знаю циклы, массивы, условные операторы ну и там по мелочи. Игра представляет собой выживание на улице. Да, звучит странновато. Так вот. Мне нужно, чтобы прогресс игры сохранялся каждый день (один день - один ход). И чтобы игрок мог выйти из игры и потом продолжить. Как я могу такое реализовать? Я долго искал в интернете, но так и не нашёл или не понял. Ах да, ещё я хотел бы сделать, чтоб был "зал рекордов", где показывалось бы максимальное количество прожитых дней. И как сделать это, я тоже не знаю. Надеюсь на Вашу помощь, буду очень благодарен, если хотя бы откликнитесь.
Здравствуйте, для этого нужно использовать базу данных или чтение/запись с файлов и каждый "день" записывать всю информацию о данной игре в файл или бд, и при загрузке в зависимости от того, что там написано, то и загружать. Таким же образом работает таблица рекордов. Может я объяснил как-то криво, но постарался помочь, ведь я пока что только Смотрю и Учусь.
Согласен с челом выше , тебе нужно использовать файлы что будут сохранятся на жестком диске или в облако.А как именно то там уже изворачивайся как хочешь.Например при загрузке будет считываться файл в котором на каждой определенной строке будет определенная инфа (хп,мана,опыт и тд.) в другом файле в виде массива будут записаны числа которые будут обозначать какие вещи есть в инвентаре и тд.
Это самое первое что пришло на ум.
Удачи!!
@@animovhere894 знаешь. бд звучит тут получше как-то
2:25 ЗА ТАКУЮ ОШИБКУ ПАЛКОЙ БИТЬ НАДО. В СИ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ НЕ ОБЯЗАТЕЛЬНО НОЛЬ, ТАМ МОЖЕТ БЫТЬ ВООБЩЕ МУСОР. И ЧТО? ВСЁ! ЕСЛИ ПСВЕВДОКОДЕР ОБ ЭТОМ НЕ ЗНАЕТ, ТО У НЕГО ПОТОМ ГАБЕЛЛА БУДЕТ.
Поэтому надо после создания вручную присваивать переменой какое нибудь значение, тот же ноль напоимер
Можешь подсказать что читать , смотреть по C ?
@@gentleman7715 просто интересоваться, не более
Привет, скажи пожалуйста. Только только начал изучение программированием, что можешь посоветовать новичку? С чего начать лучше всего? Ответь ПЖ!
С основ т.е. то чего он говорит.
Я бы тебе питон для начала посоветовал .А когда уже научишься мыслить и искать инфу в гугле то переходи на С ,или С++ , смотря для чего тебе программирование надо.C и C++ звучит одинаково ,но языки разные )
@@animovhere894 Я бы никогда бы не посоветовал начинать с питона. Это СЛИШКОМ дружелюбный язык, который показывает слишком мало ошибок и часто будет просто пропускать если неправильно напишешь (к примеру случайно поставил = вместо == в условии). Да и гемор такой будет при переходе на c-подобные языки, когда надо везде эти скобочки, точки с запятой ставить. Где ' ' и " " не одно и тоже. Но также, каждый выбирает что ему интереснее, и указывать что выбрать не стоит.
%d - decimal integer
Здравствуйте! Мне 12 и я очень хочу программировать пытался учить джава СЛОЖНО, Пайтон НЕОХОТО И СЛОЖНО а с си ОТЛИЧНО покачто я очень люблю математику и думаю это мне поможет можете ли вы мне что то посоветовать
иди в бравл старс по играй
Учи Си, так как это плюс-минус сложный язык программирования, как и с++, потом будет легче учить другие
Как успехи спустя год?:)
@@andrey6552 норм, на С написал лишь калькулятор, перебрался на питон, забросил, сейчас учу Godot вообще имба
@@NIVLON красавчик :)
Так %d означает digest? Но оно не переводится как "цифра"
Цивра переводится как number
digit → число (состоит из цифр)
number → цифра (0-9)
@@yglyglya а понятно
@@yglyglya чувак, все наоборот...
Гоша Дударь привет
Я пользователь linux каккой текстовый редактор мне использовать?
Спасибо!
vim
Sublime text
Gedit с плагинами и не нужно изобретать велосипед !! Для среды KDE не помню какой там дефолтный редактор, но он тоже весьма норм будет
@@iCoteg cbacibo
NetBeans 8.2 (с модулями работы с Си и Си++)
А можете посоветовать книги для изучения Си
-32768 ÷ 32767 про 0 не забываем !!
Сделай урок по C# Xamarin для Android
2:23 - значение по умолчанию равно нулю??? Нет, равно мусор!!! Не инициализированная переменная по умолчанию не равна нулю.
Попробуй у себя завести переменную и выведи на экран
Смотря какой компилятор юзаешь .Некоторые очищают ячейку ,а некоторые оставляют то что там было.
@@animovhere894 и? Будем искать умный компилятор, а не изучать специфику языка?
@@H0tBed 🤦♂️вышел мусор. Что и следовало ожидать. Компилятор то похоже по ответственее прогера будет
👍
Здравствуйте. Что вы порекомендуете почитать если и этот урок ступор вызывает? Непонятно вообще что значат все эти буквы и цифры и для чего они нужны
Сайт t-r-o-n.ru имеет вполне не плохое руководство по языку си
Если ваще тупой (как я) начни с питона , дальше будет видно втянешся или нет.Если втянешся переходи на С или С++ или ваще на Java я хер знает .
Ага, слушай их....
Если не понимаешь что написано, то первым делом бери учебник английского, нужно хотя-бы понимать такие базывые надписи, далее почитай немножко про матлогику, а именно что такое бинарные числа и как работают операции И, ИЛИ, НЕ. Для самого начала этого хватит. Далее, ты должен понимать, что компудахтер как раз и работает с бинарными числами.
Далее язык. Если не смыслешь в СИ, то бери обычный паскаль или бейсик. Питон не бери, он язык ооп, к тому же в основном для веба используется....
Если сразу с него начнёшь, то либо запутаешься, либо станешь говнокодером, в плане ооп. Пока что тебе нужно научиться писать обычные структурированные программы. Как только будешь уверенным в паскале или в бейсик, садись либо на си, либо с++. Научись его синтаксису, разбери уже указатели, работу с памятью и т.д.
И только после этого садись за ооп. Для ооп есть си object, c++, c#, Java, Python. Но начинать лучше либо с C object, либо с C++. А там уже выбирай что хочешь
@@animovhere894 пиши на javascript и не нужен тебе c/c++, питон и прочее
ТЫ ТОП
Если кто-то хочет программировать под Windows 7, то для этого есть самая простая в установке (по сравнению с другими) и интуитивно понятная среда CodeBlocks.
Ага, индивидуальная для Windows 7 🤦♂️
Учитесь писать в простом текстовом редакторе и компилировать через cmd
@@vip51000 зачем?
не нашел в комментах объяснение, может кто ответит зачем были поставлены f в записях типа float x = 5.5f, y = 6.7f;?
Без этого суффикса десятичное число рассматривается как значение типов int/long
@@YangiyerBolaспасибо за ответ, но конечно поздновато уже)))
я все это делаю через терминал так у меня при подставлении значений появляется ошибка (%x and %y) а в целом все очень ххорошо расставелно по местам. мне все очень понравилось
Надеюсь люди смотрящие этот канал, а возможно и сам автор сможет помочь решить проблему с тротлингом, так как уже все перепробовал (не помогает)
Ноутбук Lenovo Ideapad l340-15irh gaming (i5 9300h + gtx 1050 3gb ) при запуске почти любого 3d проекта сбрасывается частота до базовой 2.4 при этом в фотошопе стабильно держит 4 ГГц. пробовал откл. турбобуст - безуспешно. через программу Trottlestop удалось поднять частоту, однако температура поднималась до 95градусов и через минуты три опускалась до 72 вместе с частотой. При запуске игр первые секунды держит 4000 МГц с нереально высокой температурой, после сразу же сбрасывает. Также делал undervoltage -0.130v теперь частота держится в районе 2.9
Есть подозрения что не выдерживает система охлаждения, так как очень быстро повышается темп. , при чем при сворачивание игры и повторном ее запуске частота снова подымается до 4 (при 76) но плавно падает до 2.7-3
Купи охлаждающую поставку, либо подними ноутбук над поверхностью.. а вообще после запуска интелом 6 поколения из процессоры скатились, особенно для ноутбуков
Цілі числа в printf() можна виводити не тільки за допомогою %d, а ще й за допомогою %i.
Сразу прописанные коментарии к строчкам, делают математические действия с переменными нагляднее и усваивать проще. Проще один раз сказать и прописать, чем пять раз сказать одно и тоже.
а разе %d означает не decimal?
digit
Чувак, в локальной переменной значения по умолчанию нет, тк память под них выделяется в процессе выполнения.
При создании локальной переменной НЕ будет установлено значение по умолчанию. Будут случайные значения.
В Си же значение по умолчанию не присваивается. Просто повезло, что ячейка памяти переменной попала на чистую память. Если не инициализировать, то в переменную может попасть любой мусор, который в памяти оставили другие программы
Если не ошибаюсь, булевых значении нет в языке "C". А в "C++" есть.
Да есть они везде, bool зовутся.
@@nakidai, только в Си требуется стандарт С99 и stdbool.h
@@eirjair7037 ну, как миниммум в MinGW это есть, так что норм
слм всем, кто может подсказать: пишу код(C#) на дев С++ без библиотеки (то есть не пишу #include ), программа всё равно запускается.
В какой среде работаете? Возможно вы ставили дополнения, которые автоматически подключают библиотеки? Ещё вроде VS с этим сам справляется
А у меня scantf не пошла.
Пишет возвращаем значение пропущено: "scantf".
Работал в visual studio. Всё делал как в видео.
Не подскажите что может быть?
думаю нужно без t)
напиши scanf_s
@@ostapilkiv3058 такое пошло, но почему с _s ?
@@kimaller5148 с "_s" потому-что это безопасное(раньше были проблемы с безопасностью без этого) дополнение к функции, без этого visual studio попросту не разрешает, ну там конечно можно заморочиться и макрос добавить, тогда оно и без дополнения разрешает, но это уже такое
Возвращаемое значения пропущено "scanf" ??? что делать ?
scanf_s пиши)))
@@zloyden4ik332 спасибо большое, это сработало))
пацаны ,нужна помощь .Помогите сделать задачу по программированию на C.
Даны три действительных числа. Найти и вывести максимальное по модулю число.
#include
#include // для abs()
int main() {
const int SIZE = 3;
int arr[SIZE];
arr[0] = -10, arr[1] = 5, arr[2] = 0;
for (int i = 0; i < SIZE; i++)
arr[i] = abs(arr[i]);
int max = arr[0];
for (int i = 0; i < SIZE; i++)
if (max < arr[i]) max = arr[i];
printf("%d", max);
return 0;
}
Что сделать если комманда /n не переносит на следующую строку, я пишу в Code blocks
Потому что не /n, а
@@hoyoreverse Аа, пасиба большое)
пол часа мучался, пока не погуглил, в MS_VS не работает svanf, нужно вводить scanf_s, нужно учитывать такие мелочи
тоже самое.твой комент помог, спасибо
А разве bool не используется в си++, а чи его нет?
Си*
даже такой как я 0) понял что это вообще такое))
Мне одно не понятно. Что в итоге получается после всех этих манипуляций? Программа получается или что?
ааа, зачем у Плавающих чисел ("с точкой) добавляется "f"????
(кто-нибудь знает зачем? пробую вводить без f и "все пока работает", но чувствую, что надо использовать... (в др. "объяснениях" такое не упоминают, видимо чего-то не знают..)
Изначально без f присваивается тип данных double, здесь же используется float, для коей реализации и добавляется "f"
@@ВолодимирПригорницький-р7в а как же неявные преобразования, тыры пыры шмыры?
У меня не работает функция запроса " scanf" 😭😭😭. Во первых это единственная функция которая не подсвечиваеться другим цветом. И в ошибке указывает на scanf
Вместо bool можно просто использовать целые числа. А раз ты решил затронуть подключаемых библиотеки, то нужно рассказать что это такое
Зачем тогда это множество значений булевого типа данных?
@@ruslanvolovik2745 да в жопу оно идет, учитывая что bool юзает столько же, сколько byte, то либо использовать побитовые операторы, либо byte, например чтобы экономить оперативку юзая одну переменную
молодец
Переменная не должна называться одними цифрами, об этом не сказано. Также не услышал о том, что например такие переменные не равные: Name, name, NAME, ...
Крутой урок! Отлично объясняет, все понятно, збс, чётко.
В большинстве компиляторов уже давно запрещено юзать scanf, ибо нужно scanf_s
Ерунда, scanf_s - только в VS используется, в остальных компиляторах стандартный scanf.
если честно впервые слышу о твоих _s, юзал MinGW и не ругалось
Спс за материал, но вы плохо приподносите его. Если вам интересны ваши ошибки то дайте мне ваш контакт, я поясню.
Покажи пример
Ти же так не умееш
Завидуй, завидуй!
@@Ostup_Burtik человек хотел лично к автору обратиться, тебе ему показывать и доказывать что либо не зачем
2:40 не любое число, а число только из диапазона integer. Да, ты об этом сказал позже, но ошибка есть ошибка. Не точность
Я потписался
num_first, если не задать ей значение, не ноль, а пустота
3:00 на большенство языков код можно писать и в одну строчку, через точку запятую, но это, конечно, говнокод получится
Можно в жсе и через запятую, и говнокода нет
Когда будет видео про бота