Изучение C++ для начинающих / #5 - Случайные числа. Разработка Калькулятора

  Рет қаралды 129,315

Школа itProger / Программирование

Школа itProger / Программирование

Күн бұрын

За урок вы научитесь создавать случайные числа, ознакомитесь с использованием пространства имен и дополнительно разработаете небольшую программу по типу калькулятора.
✅ Полезные ссылки:
- Курс по C++: itproger.com/course/cpp/5
⏰ Тайм-коды:
00:00 - Начало
00:20 - Получение данных от пользователя
02:40 - Проверка данных
06:45 - Использование Switch Case
09:35 - Математические операции
14:00 - Пространство имен
15:55 - Случайные числа
19:55 - Заключительная часть
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Инстаграм itProger: / itproger_official
Группа FaceBook - goo.gl/XW0aaP
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #itProger 👨🏼‍💻
- Все уроки по хештегу #itprogerLessons

Пікірлер: 121
@tooira
@tooira 7 ай бұрын
хорошо что есть такие ролики ибо в универе уже задали решать задачки, а как начинающий с нуля, даже базы не знаю 😢 спасибо большое за труд ❤
@stinger9811
@stinger9811 9 ай бұрын
Спасибо за такой огромный труд. Автор просто супер!!!
@wave.xddzls2595
@wave.xddzls2595 10 ай бұрын
Курс супер классный, для меня, как будто в самом начале вы дали задание, сделать такой вот примитивненький калькулятор через if else и switch case, не смотря то, как напишите такую программу вы, я самостоятельно попытался изучить что мне было непонятно, и уже после самостоятельно мне удалось написать оба варианта, видя успех, и осознание того, что я понимаю что я делаю есть желание изучать c++ дальше))
@alexlivingstone3419
@alexlivingstone3419 4 ай бұрын
Спасибо за эти уроки, все понятно, качественно, подробно!
@69iqbuilder
@69iqbuilder Жыл бұрын
Видики шикарны, смотрю на одном дыхании. Спасибо!
@drdre3799
@drdre3799 8 ай бұрын
Очень благодарен за ваш труд.
@envedimka5636
@envedimka5636 Жыл бұрын
А ще можна ось так от без else. Сьогодні експериментував )). float a, b, c; char p; std::cin >> a; std::cin >> b; std::cin >> p; if (p == '+') { c = a + b; } if (p == '-') { c = a - b; } if (p == '*') { c = a * b; } if (p == '/') { c = a / b; } std::cout
@_1mrscool11_9
@_1mrscool11_9 3 күн бұрын
як я зрозумів тут мається на увазі без "else if" це не доречне використання логічних виразів так як буде перевірятись кожна умова хоча при вірності однієї з них інші вірними бути не можуть тому варто використовувати "else if" де після знаходження вірної умови наступні перевірятись не стануть
@hagott
@hagott 4 ай бұрын
Спасибо за столь ценные уроки!
@kpanat
@kpanat 8 ай бұрын
time(NULL) оч плохой вариант для seed. Потому что время выдаётся с точностью до секунды. Это оч плохо ибо если вы будете дёргать перезагрузку генератора случайных чисел чаще , а при последовательном вызове rand это почти наверняка у вас получится повторяющиеся последовательности случайных чисел. По сути эта функция выдаёт эту последовательность со сдвигом. Если мы хотим хорошую хаотичность то надо дёргать srand не реже чем через 16 генераций. И использовать для этого наносекундный таймер а не этот секундный. Если реже то числа или последовательности будут повторяться...и вобще для генерации лучше использовать не эту тупую функцию а получше, которая даёт длинную последовательность псевдослучайных чисел. Качество генератора случайных чисел или как говорят его энтропия это оч важный параметр Чем выше она тем лучше. Особенно это видно в играх которые постоянно генеярт всякие случайные числа. Если плохой генератор то игра будет так же плохой ваши персонажи и их поведение будет предсказуемым и в игру станет неинтересно играть! Это оч важная тема для тех кто собирается писать игрушки.
@cheloveki8138
@cheloveki8138 8 ай бұрын
Приведи пример пж классной функции и как это все вписать
@mason4302
@mason4302 5 ай бұрын
кто нибудь откройте форточку ...
@user-ip3ek1ne9s
@user-ip3ek1ne9s 4 ай бұрын
он прав
@Kinsitu
@Kinsitu 3 ай бұрын
Он прав​@@mason4302
@Kinsitu
@Kinsitu 3 ай бұрын
Спасибо за инфу
@yagenij900
@yagenij900 Жыл бұрын
Спасибо за видео!
@user-zk4rz7ub9p
@user-zk4rz7ub9p 4 күн бұрын
Спасибо за урок!
@unobedesu
@unobedesu 8 ай бұрын
Большое спасибо, полезно потратил время я считаю
@deserteagle3107
@deserteagle3107 Жыл бұрын
Спасибо автору!
@Remington-og3tf
@Remington-og3tf 10 ай бұрын
Калькулятор: создан✅ Теперь я C++ разработчик
@user-fj8gf2ey8n
@user-fj8gf2ey8n 10 ай бұрын
Ну дак а что ищо нужно😅
@crash8286
@crash8286 Ай бұрын
Готов к работе за 100к/мес, буду создавать сотни калькуляторов в смену)
@user-mr6dd8jw9p
@user-mr6dd8jw9p 10 ай бұрын
Спасибо искал норм калкуятор для практики
@Kitten1yeey1
@Kitten1yeey1 4 ай бұрын
Большое спасибо, очень интересные уроки, решила учить в качестве хобби, мой потолок в компьютерах это включать диспетчер задач, но у вас всё очень понятно
@user-ps7jx6jy5j
@user-ps7jx6jy5j 3 ай бұрын
как успехи?
@user-rk2up5ld9q
@user-rk2up5ld9q Жыл бұрын
Мы ждём 6-части
@superlexadnepr
@superlexadnepr 10 ай бұрын
Спасибо
@NeonTechFox
@NeonTechFox 9 ай бұрын
Начал изучать плюсы после жс и питона. Ну в принципе пока что мне язык нравится.
@Pm_2.00
@Pm_2.00 Жыл бұрын
Нечего себе. Я с 1 по 5 урока буду втягивать информацию, но пока изучаю только теорию
@user-pn2wz2ns8q
@user-pn2wz2ns8q 6 ай бұрын
тема с зависимостью рендера случайного числа от времени не раскрыта. В остальном огонь
@jareniiric
@jareniiric 9 ай бұрын
за два часа залпом 5 видео посмотрел очень просто и интересно смотреть. Включил сокроть воспроизведение на 1.75 и кайфую
@user-zp6mc3iy7h
@user-zp6mc3iy7h Жыл бұрын
Здравствуйте! Смотрю Ваш курс, очень нравится, все понимаю, хотя от программирования далек. Спасибо большое. Объясните, пожалуйста, как понять, куда ставить >, когда мы используем Cin и cout? В какую сторону стрелочки должны быть в каким случаях?
@prettydazz
@prettydazz Жыл бұрын
cout > потому что эту информацию получается вводят в программу, это я так понял этот материал
@cryptedddd2940
@cryptedddd2940 8 ай бұрын
​@@prettydazz cout имеет значение c вывод. std::cout num1; Показываешь что ввод пользователя нужно записать туды >> в перменную num1.
@mason4302
@mason4302 5 ай бұрын
также можно было сделать и наоборот но для понятие ее людям сделали так и вообще все можно было сделать как в yoptaScript но это уже бред и учите машинный код а не эту фигню@@cryptedddd2940
@D1MON_LIMON
@D1MON_LIMON Күн бұрын
Хах, я такой создаю калькулятор вне урока, и тут калькулятор, норм
@AndriiTurchynRieltorDnipro
@AndriiTurchynRieltorDnipro 11 ай бұрын
дякую
@user-vq6mk6ze8f
@user-vq6mk6ze8f 8 ай бұрын
Здравствуйте, можете помочь с этой ошибкой? 'rand' was not declared in this scope
@bazilik5398
@bazilik5398 3 ай бұрын
5.24, автор, если читаете комментарии, какая у вас ошибка? научитесь их признавать и объяснять, чтобы люди с полного нуля не лазили по всему интернету часами ища ответ. я лучше уйду к авторам которые "прошу прощения я ошибся, здесь надо по-другому сделать". в анрил энжин у вас так же, заговариваетесь и путаете местами определения. я не могу понять в чем моя ошибка, я только пытаюсь учиться, но если все сделано точь-в-точь как на видео, но при этом ваше видео обрезается на моменте ошибки и начинается с того момента где уже получилось компиллировать, о чем то это наверно говорит.
@MrSTAR-qh1xj
@MrSTAR-qh1xj Жыл бұрын
Подскажите пожалуйста,, почему у меня на последней строке с res ошибка. Под res зеленая линия зигзагом, ПОЧЕМУ ТАК?
@xapakkupu
@xapakkupu Жыл бұрын
это ни на что не влияет
@mrfriot
@mrfriot Жыл бұрын
Зелёная линия в большинстве IDEA означает, что это слово не распознано. Скорее всего там просто синтаксическая ошибка (пока не посмотрел видео).
@kpanat
@kpanat 8 ай бұрын
нет операции деления с остатком потому что стандартная операция / выполняет не ту операцию для целых чисел. в компе такой операции нет, но а С++ да. по сути это неправильная её трактовка. И когда в школе проходят деление то так тоже не делают. Всегда когда делят нацело подразумевается неполное частное и остаток. Т.е 2 числа в качестве результата а не одно! Но в С++ так не запишешь. Хотя в Питоне к примеру легко. А в С++ можно вернуть только 1 число: либо неполное частное, либо остаток. Отсюда и 2 операции. Но на самом деле это одна операция выдающая сразу 2 числа. Есть функция div возвращающая сразу 2 числа. Но она работает только для знаковых чисел. Для беззнаковых такой функции нет...
@SayXaNow
@SayXaNow Ай бұрын
16:07 функция rand() не возвращает число между 0 и 1, она возвращает целое число в диапазоне от 0 до RAND_MAX. по дефолту RAND_MAX = 32767
@user-cp2ms4ls2q
@user-cp2ms4ls2q 3 ай бұрын
Лестница в небо. Бесконечно высокая. Но состоит из отдельных маленьких ступенек. Преподаватель поднимается по ним плавно, не спеша, по порядку. С ним идти ЛЕГКО!
@m9tal288
@m9tal288 Жыл бұрын
18:25 мы вызываем в srand функцию time с параметром NULL srand(time(NULL)); и здесь ты говоришь что теперь мы не зависим от времени. Разве не наоборот??? Как раз зависимость от текущего времени нам и позволяет получать различные значения в функции rand(). Или ты просто упростил для новичков чтобы не сбились ? Или я не понимаю?
@user-xj9yg9kf2d
@user-xj9yg9kf2d 10 ай бұрын
ты прав. тут не совсем рандомные числа генерируются. лучше изучить это самостоятельное. Используется линейный конгруэнтный метод, а srand устанавливает seed этой формулы
@user-bz3cv6pt2q
@user-bz3cv6pt2q 4 күн бұрын
Вопрос по случайным числам. Заметил, что функция из видео генерирует случайные числа всегда в большую сторону. Поставил диапазон до 100. Числа всегда идут от меньшего к большему, а когда доходит до границы диапазона, то следующее число обязательно будет самым маленьким. А когда решил расширить диапазон чисел до 1000 и более, то заметил, что тенденция такая же. Но при этом увеличение идет незначительное, на 10-15 пунктов. Как сделать генерацию более рандомной?
@warmaps5640
@warmaps5640 Жыл бұрын
заметил, что рандомные числа, которые создает эта функция всегда идут от меньшего к большему 1 > 7 > 17 > 27 > 34 и т.д можно ли это как-то исправить?
@sultanisaev7988
@sultanisaev7988 Жыл бұрын
У меня также
@user-ed5cc9uy5e
@user-ed5cc9uy5e Жыл бұрын
Реально
@Geranica
@Geranica Жыл бұрын
У меня такого нет...
@Meldas
@Meldas 11 ай бұрын
Сдал?
@saydashkuular9109
@saydashkuular9109 Жыл бұрын
почему-то пишет, что "rand" и "srand" не объявлены (пишу на codeblocks)
@user-bd9pn4qj1r
@user-bd9pn4qj1r 9 ай бұрын
Классные видео, все понятно Но такой вопрос: если человек в вел два числа допустим 5 и 0 На ноль делить нельзя, что в таком случае делать? Я знаю что это вроде можно обойти, но как?
@NeonTechFox
@NeonTechFox 9 ай бұрын
Можно при операции деления проверять num2, если 0 то выводить то что нельзя делить на ноль Можно через try - catch Обработка исключений, так как деление на ноль вызовет ошибку мы можем её поймать и вывести что на ноль делить нельзя, но вариант с проверкой мне нравится больше
@mradekvat537
@mradekvat537 9 ай бұрын
С таким написание кода по рандомным числам последующие запуски программы всегда дают результат не сильно отличный от предыдущего в большую сторону. Все равно есть закономерность получения рандомных чисел. Как уйти от этого?
@NeonTechFox
@NeonTechFox 9 ай бұрын
Никак) закономерность будет всегда, просто человек её предугадать не может Можешь записывать последний запуск или завершение программы в файл (секунды с начала эпохи допустим) и при следующем запуске брать это число и от него уже через какую то функцию генерировать (допустим разделить на текущее время). Но мне хватало простой генерации от текущего времени
@shero66ru47
@shero66ru47 2 ай бұрын
Почему при вводе диапазона от 2 до 5 в ранде может выйти 6? строчка int result = 2 + rand() % 5
@masharybakova6386
@masharybakova6386 11 ай бұрын
num уже как родной
@user-rc2eq2ll1o
@user-rc2eq2ll1o Жыл бұрын
можно более подробно о том, что значит зависимость от времени?
@HS-ng7hw
@HS-ng7hw Жыл бұрын
Значит что рандомное число, которое создалось не будет зависить от времени, к примеру то, что новое число сгенерируется через 5 минут.
@user-rc2eq2ll1o
@user-rc2eq2ll1o Жыл бұрын
@@HS-ng7hw спасибо большое! =)
@Hacker-qp2cn
@Hacker-qp2cn Жыл бұрын
Можно использовать using namespace std
@Dobryj_Kolya
@Dobryj_Kolya 11 ай бұрын
А для чего функцию рандома прибавлять к единице? У меня и без единицы всё работает. Не понял этот момент
@sergeylarchenko5212
@sergeylarchenko5212 8 ай бұрын
Это начало диапазона, можно установить нужное число, второе число количество чисел. Пример 3+rand()%15 - получите от3 до 18
@user-os3xt1mx7k
@user-os3xt1mx7k 3 ай бұрын
Твои уроки очень полезны! Как же меня бесит что все команды на английском языке 😢 Возможно ли эти команды перевести на русский
@Musubi_23
@Musubi_23 Жыл бұрын
если сдам экзамен по программирование на С++, то подпишусь. Он если что сегодня утром будет)
@aristokrat5931
@aristokrat5931 Жыл бұрын
Сдал?
@Meldas
@Meldas 11 ай бұрын
СДАЛ?
@AndriiTurchynRieltorDnipro
@AndriiTurchynRieltorDnipro 11 ай бұрын
Мы переживаем) Сдал?
@DamagMaster
@DamagMaster 10 ай бұрын
CДАЛ?
@ilarkirne
@ilarkirne 10 ай бұрын
Ну как, сдал или нет?
@yanapanovich5514
@yanapanovich5514 5 ай бұрын
как на macbook в консоли vscode убрать все ненужные данные? по типу расположения файлов, репозиториев, подключения библиотек?
@nikita_canfixit
@nikita_canfixit 4 ай бұрын
В консоли vs хз, а просто в консоли cls
@erdaulet7644
@erdaulet7644 Ай бұрын
Если я вас правильно понял, вы просто должны зайти в настройки, порыться и отключить ненужные окна
@drakodildo
@drakodildo 4 ай бұрын
Если у вас выдает ошибки, то просто напишите заново строку , а если не то , то не забывайте ставить ";" в конце
@arzimbayevamir2501
@arzimbayevamir2501 9 ай бұрын
А как получить рандомный символ например я хочу получить символ умножения или вычитания ?
@twicetwo5990
@twicetwo5990 3 ай бұрын
создашь список символов или строку из символов и таким же образом как он будешь создавать рандомный индекс и вытаскивать элемент с этим индексом из списка или строки))
@Bayazi_production
@Bayazi_production 3 ай бұрын
Спасибо за урок, у меня такая проблема, когда ввожу (char math;) конечно без скобок, у меня выдает ошибку "использование имени типа не допускается", в чем может быть проблема? предлагает записать как (char; math;).
@Bayazi_production
@Bayazi_production 3 ай бұрын
и кстати когда уже написал (char math;) после нажатия на ентер, вся эта строка уходит правее, появляется отступ, как будто я нажал на tab, с чем это связано может быть
@book1738
@book1738 Ай бұрын
Нужно было весь код скинуть, а не часть
@Forez38
@Forez38 6 ай бұрын
после ролика заметил что процент числа слишком скушный и сделал так чтобы первая переменная a находилась рандомом и делилась с б
@zombi_killer2008
@zombi_killer2008 11 ай бұрын
4:22 а если я напишу вот так : if (math == '+') std::cout
@wave.xddzls2595
@wave.xddzls2595 10 ай бұрын
if (math == '+') { std::cout
@wave.xddzls2595
@wave.xddzls2595 10 ай бұрын
ну у меня просто там свои приколы, внешне прикольно чтобы выглядело тоже хотелось))00
@zombi_killer2008
@zombi_killer2008 10 ай бұрын
харош @@wave.xddzls2595
@user-rb7cy9kh1t
@user-rb7cy9kh1t 8 ай бұрын
ошибкой не будет, просто лучше будет записать результат в определенную переменную, в дальнейшем тебе это пригодится
@Coder106
@Coder106 7 ай бұрын
а у меня почему-то else if не работает
@domer_2008
@domer_2008 7 ай бұрын
У меня ошибки хотя скорее всего из за вода на телефоне у меня нет компьютера но я делаю всё в точь в точь что не так у меня ошибки выводит 😢
@Diactayz
@Diactayz 10 ай бұрын
к меня выдает в результатах какую чушь посмотрите код он правильный switch (math) { case '+':num3 = num1 + num2; break; case '-':num3 = num1 - num2; break; case '*':num3 = num1 * num2; break; case '/':num3 = num1 / num2; break; } он как будто рандомные значения выдает
@agahan128
@agahan128 2 ай бұрын
ну емае ну нельзя было раньше про пространство имен рассказать (
@BabidjonZ
@BabidjonZ 7 ай бұрын
Товарищи, нужна помощь! Я, почему-то, не могу создать два исходных файла для проекта (ну, типо, 1 файл - 1 урок, а 2 файл - 2ой урок). Пишет, что не может найти исходный файл и так со всеми исходными файлами в проекте, но если оставить только один файл, то всё будет работать. Что делать?
@book1738
@book1738 Ай бұрын
Ошибка визуал студио это что-то с чем-то, попробуй использовать онлайн компилятор С++
@knyazevartur7339
@knyazevartur7339 9 ай бұрын
покажите, как и где применяются сокращенные операции, не могу сообразить.
@NeonTechFox
@NeonTechFox 9 ай бұрын
Допустим цикл for for (int i = 0, i < 5; i++) Тут первый параметр объявление переменной i типа int, дальше условие цикла - пока i < 5, а дальше что будет происходить с i на каждой итерации цикла - то есть прибавляется 1 Так же можно делать в while или do-while while (i < 5) { i++; } Ну так то много где, намного удобнее писать ведь так i = i + 1 → i += 1 → i++
@NeonTechFox
@NeonTechFox 9 ай бұрын
А я так понял не про инкремент и декремент имелось ввиду. Когда тебе нужно перезаписать переменную от себя же. Тоесть умножить на два будет вместо a = a * 2 → a *= 2
@askveitekstanda
@askveitekstanda 9 ай бұрын
Когда захочешь и где захочешь
@iipedatejibbykov7535
@iipedatejibbykov7535 6 ай бұрын
Подскажите как вы так быстро выводите не копируя текст?
@arctik42
@arctik42 4 ай бұрын
выделил текст и нажал Cntrl + C что бы скопировать и Cntrl + V что бы вставить
@vada322
@vada322 5 ай бұрын
Удивительно но у меня тоже рандомное число именно 2
@mason4302
@mason4302 5 ай бұрын
вот это удивление просто чудо нафиг как такое возможно ты чтоли маг волшебник или просто выбил число с шансом 5 к 100 и офигиваешь
@vada322
@vada322 5 ай бұрын
ну по сути да выбил число с шансом 5 к 100 и офигиваю@@mason4302
@jellylemonchannel
@jellylemonchannel Ай бұрын
а что надо нажать чтоб получить Error?
@MakarIk-si7yk
@MakarIk-si7yk 11 күн бұрын
В коде идет проверка на "+, -, *, /" И если эта проверка не нашла не одного из этих значений То запуститься default который выдаст на экран текст с надписью error
@the_plus_minus
@the_plus_minus 3 ай бұрын
ПОЧЕМУ У МЕНЯ С++ НЕ РАБОТАЕТ КОД БУКВАЛЬНО КАК У ТЕБЯ
@user-xq1cq3uj1l
@user-xq1cq3uj1l 22 күн бұрын
; или :
@alaksaqq543
@alaksaqq543 10 күн бұрын
Я немногг не понял, заяем случайные числа нужны
@user-rx9ve9bw1y
@user-rx9ve9bw1y 6 күн бұрын
Ну рандом много где используется. Банально в игре - на сколько от 1 до 6 выпадет кубик? Или море других ситуаций.
@alaksaqq543
@alaksaqq543 6 күн бұрын
@@user-rx9ve9bw1y а понял, спасибо
@fun_lefty
@fun_lefty 7 ай бұрын
Про случайные числа плохо обьяснили
@jihnordraven-zr7cv
@jihnordraven-zr7cv 9 ай бұрын
10:23 бан
@SPACE_OTVIM
@SPACE_OTVIM 11 ай бұрын
45 умножить на 2 будет 90? программа сработала неверно
@user-go5ow1nr4l
@user-go5ow1nr4l 11 ай бұрын
ти че дурак?
@BBDDBB-qj5lx
@BBDDBB-qj5lx 11 ай бұрын
А что не так? 45*2=90
@daniilseledtsov3502
@daniilseledtsov3502 10 ай бұрын
Default не работает
@NeonTechFox
@NeonTechFox 9 ай бұрын
Что то не то пишешь наверное
@nikita_canfixit
@nikita_canfixit 4 ай бұрын
А ВЫ НЕ ДУМАЛЯ ЧТО ПРОПИСАТЬ USING NAMESPACE STD БЫСТРЕЕ БЛЯТЬ
Изучение C++ для начинающих / #6 - Циклы и операторы в них (For, While, Do While)
21:15
Школа itProger / Программирование
Рет қаралды 118 М.
Изучение C++ для начинающих / #7 - Массивы данных (одномерные и многомерные)
26:09
Китайка и Пчелка 10 серия😂😆
00:19
KITAYKA
Рет қаралды 2,1 МЛН
1 класс vs 11 класс  (игрушка)
00:30
БЕРТ
Рет қаралды 3,7 МЛН
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 27 МЛН
Изучение C++ для начинающих / #12 - Указатели и ссылки
23:04
Школа itProger / Программирование
Рет қаралды 56 М.
C++ Разработчик учит Python
28:01
Winderton
Рет қаралды 489 М.
ВЫБИРАЕМ ЯЗЫК ПРОГРАММИРОВАНИЯ ))))
25:08
Изучение C++ для начинающих / #8 - Динамический массив данных
10:11
Школа itProger / Программирование
Рет қаралды 67 М.
Китайка и Пчелка 10 серия😂😆
00:19
KITAYKA
Рет қаралды 2,1 МЛН