Индуктивные функции на Си: поиск максимума

  Рет қаралды 24,832

Тимофей Хирьянов

Тимофей Хирьянов

5 жыл бұрын

Поиск максимума как индуктивная функция.
Проблема инициализации временного максимума.
Поиск местоположения максимума.
Подсчёт элементов, равных максимальному.
Курс молодого бойца по информатике (Язык Си).
cs.mipt.ru/c_intro

Пікірлер: 62
@GOBBanimate
@GOBBanimate Жыл бұрын
Ваши труды бесценны!Препод от бога! Спасибо!
@barcooler
@barcooler 3 жыл бұрын
18:30 i начальное значение не задано, по этому оно выдаёт считайте случайное (рандомное) значение. В примере показало 9, хотя 100 было на позиции 7 (если с нулевой позиции считать).
@user-uc7og5gt3q
@user-uc7og5gt3q 2 жыл бұрын
да ладно не занудничайте, не придерайтесь уже до мелочей то в конце концов) всем же понятно что оговорился в спешке. ну и у вас тоже объяснение не совсем верное. выдает 9 потому что первый скан идет за границами цикла, при этом значение каунтера равен 0, ну и нужно понимать что каунтер сначала присваевается m_i а только потом добавляется в данном примере. вот вам и разница в 2 очка в любом случае материал бесценный. дай Бог здоровья Тимофею!
@SolderingIronMen
@SolderingIronMen 9 ай бұрын
​@@user-uc7og5gt3q, то, что Вы описали, даёт разницу в один элемент. Разницу в ещё один элемент дал именно мусор в неинициализированной переменной-счётчике, как описал автор комментария.
@lighterlight3415
@lighterlight3415 5 жыл бұрын
в библиотеке, например, limits.h имеются константы INT_MIN и INT_MAX для "куклы", где они определена как /* Minimum and maximum values a `signed int' can hold. */ # define INT_MIN (-INT_MAX - 1) # define INT_MAX 2147483647
@alexeyn1711
@alexeyn1711 4 жыл бұрын
UINT64_MAX, UINT64_MIN в stdint.h тоже
@Mani_Fast
@Mani_Fast 2 жыл бұрын
@@alexeyn1711 спс
@SolderingIronMen
@SolderingIronMen 9 ай бұрын
Тимофей, есть пару ошибочек в Ваших рассуждениях. -2>>31 будет равно -1. Для получения самого маленького 32-х битного числа Вам нужно двигать ВЛЕВО на 31 разряд число -1 (-1
@pascalcoder
@pascalcoder 5 жыл бұрын
19:38 видно, что i инициализирован случайным числом... На моей системе, при списывание этого кода получилось большое целое. Ну, бывает. А за курс спасибо. Смотрю с большим удовольствием, хоть и не студент, и не программист, и уже на пенсию пора.
@borislapikov3070
@borislapikov3070 4 жыл бұрын
раз смотрите курс - на пенсию нельзя идти.
@yesugibe7041
@yesugibe7041 4 жыл бұрын
Спасибо!)
@spolyr
@spolyr 2 жыл бұрын
Здравствуйте Тимофей! Есть возможность пройти курс (Курс молодого бойца по информатике) не являясь студентом МФТИ ??
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
ютуб требует верификацию?
@user-le3zu6ye8c
@user-le3zu6ye8c Жыл бұрын
4:45 - будьте здоровы
@user-ys6gf9mk8l
@user-ys6gf9mk8l 2 жыл бұрын
Спасибо, по вашим урокам учусь в школе 21, на 4.55 милая отрыжка🤣🤗❤️ Ещё раз спасибо за доходчивые объяснения)
@user-ys6gf9mk8l
@user-ys6gf9mk8l 2 жыл бұрын
Вычисление положение максимума неправильно
@user-uc7og5gt3q
@user-uc7og5gt3q 2 жыл бұрын
хочу подчеркнуть что по данным урокам учился не только ваш поток школы-21)
@shluhogon_42
@shluhogon_42 2 жыл бұрын
Как успехи? Зачислили?
@user-uc7og5gt3q
@user-uc7og5gt3q 2 жыл бұрын
​@@shluhogon_42 hunter42, я Шмаленс. в школу прошел, полет нормальный )
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
на панель
@pro100SOm
@pro100SOm 5 жыл бұрын
У Вас поиск позиции работает некорректно. На самом деле, Вам очень НЕповезло, что i инициировалась двойкой, поэтому "на взгляд" и не заметили ошибку. Ошибка: i - не инициирована. В итоге результат совершенно непредсказуем. Поэтому правильней циклом for пользоваться и объявлять/инициировать/изменять такие переменные-счетчики в заголовке цикла (тем более, что вне цикла она не нужна) Еще момент: зачем использовать вложенные if, если удобней записать логическое выражение?
@tkhirianov
@tkhirianov 5 жыл бұрын
Александр, во-первых, спасибо за содержательный и вежливый комментарий. Не заметил нигде инициализации двойкой, не понял о чём вы. Да, i не инициализирована. Должно быть i=0. Вложенные if использую для того, чтобы виднее была композиция алгоритмов фильтрации и поиска максимума. Конечно, можно и даже проще написать if (x % 2 == 0 and x > m)
@pro100SOm
@pro100SOm 5 жыл бұрын
Тимофей Хирьянов результат 9 мог получиться при начальном значении i = 2 Что Вы скажете о использовании and или && (ну и or вместо ||) ? Интересен Ваш взгляд на выбор оператора
@tkhirianov
@tkhirianov 5 жыл бұрын
Да просто нравится мне писать в С и C++ так же, как и в Python. Разницы ведь между операторами && и and нет. Дело вкуса. А с паскаля школьникам переходить будет легче.
@ednik45
@ednik45 4 жыл бұрын
@@tkhirianov Прошу прощения, но если я инициализирую i = 0, то счетчик всегда врет на -1. Разве не правильно инициализировать i=1? Либо i=0 , но выражение (i += 1) ставить до логической проверки на четность? Так же если у нас нет ни одного четного числа мой компилятор вообще отказывается со мной сотрудничать, ибо m_i так не было присвоено никакого значения. Спасибо за курс.
@AcZeDable
@AcZeDable 2 ай бұрын
Спасибо, добрые люди, а то у меня вообще непонимание было, почему совершенно не совпадает с Тимофеем результат(
@Vernad
@Vernad Жыл бұрын
Прекрасно объясняет, а на буквах экономит. max ведь лучше m?
@pro100SOm
@pro100SOm 5 жыл бұрын
-2^31 можно записать так: -1 > 32 - это [внезапно] минус единица. Интересно, почему?.. видимо, знак "-" смещение сожрать не может, и в итоге он просто клонирует себя вправо... PS забавно, что левый шифт таки минус сжирает... т.е. -1 > 100500 пиши, все равно "-1" получается.
@tkhirianov
@tkhirianov 5 жыл бұрын
Я не проверил этого до записи видео, поэтому и замялся. Дело в том, что Си делает сдвиги влево и вправо для знаковых чисел и беззнаковых по-разному, да это ещё и зависимо от компилятора.
@pro100SOm
@pro100SOm 5 жыл бұрын
Тимофей Хирьянов ага, я поэтому на том же компиляторе, что и в Вашем видео проверял😀
@logionthecreator864
@logionthecreator864 5 жыл бұрын
Вы шикарной объясняете, надеюсь у вас есть видео о файлах))
@SanneaMD1917
@SanneaMD1917 4 жыл бұрын
max position = 7
@user-xv6fo8eb2e
@user-xv6fo8eb2e Жыл бұрын
Подскажите как получить логин для входа для выполнения домашних.работ?
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
подумой, дятел
@acidyacht7889
@acidyacht7889 2 жыл бұрын
Объясните пожалуйста, почему код с while (x == 777) работает так как работает? Насколько я понимаю, мы при этом вообще не должны в цикл попасть.
@tkhirianov
@tkhirianov 2 жыл бұрын
Вы правы, а я ошибаюсь. Исправился в этом же видео на 7:29.
@Mani_Fast
@Mani_Fast 2 жыл бұрын
если мы вводили цифры через Enter (нап число и Интер потом число и Интер а в конце 777) то да оно бы exitнулось а мы сразу пишем через пробел в один проход и так сказать пихаем в первую итерацию и вот так вот прокатило
@finskiymaster
@finskiymaster 3 жыл бұрын
если максимумов будет больше одного? как обрабатывать такие ситуации?
@7qim
@7qim 2 жыл бұрын
Смотря какая задача перед Вами стоит.
@recreationreally4382
@recreationreally4382 4 жыл бұрын
Если нижняя граница "a" зачем брать "а-1"? Cчетчик инициируется нулем i=0.
@severgun
@severgun 3 жыл бұрын
Чтобы поймать факт пустой последовательности. В противном случае ты не можешь отличить была ли последовательность пустой или там было одно значение равное "а" и оно поэтому максимум.
@anton78570
@anton78570 3 жыл бұрын
можно использовать null как значение по умолчанию
@7qim
@7qim 2 жыл бұрын
Это для указателей.
@spolyr
@spolyr 2 жыл бұрын
Вот хотел сказать, если вместо чучела поставить 0 если ищем максимальное число, если ищем минимальное то поставим в чучело максимум.
@IgorAlov
@IgorAlov Жыл бұрын
Операция деления это тяжёлая операция для процессора, лучше студентам говорить что even = !(x & 1);
@nicholasspezza9449
@nicholasspezza9449 Жыл бұрын
это для "Байкала" чтоли?
@Dagestan1
@Dagestan1 2 жыл бұрын
Уважаемый, не нужны никакие манекены ставить, тут надо написать код так, чтоб сравнивать вводимое значение друг с другом, и выдать результат четное или не четное, максимум или минимум любых значений, только для этого надо добавить два цикла while .
@alexneo5458
@alexneo5458 2 ай бұрын
Более универсально будет использовать флаг, а не брать какое-то число. Если уж хочется сделать на 100% рабочий вариант.
@redice8928
@redice8928 4 жыл бұрын
кто понял отсылку к азино три топора?
@serjoberst6322
@serjoberst6322 4 жыл бұрын
Кроме тебя никто
@7qim
@7qim 2 жыл бұрын
Кроме всего прочего, _777_ это ещё и автомобильный код города, в котором он находится.
@vovanstarasov8212
@vovanstarasov8212 10 ай бұрын
@@7qim и известный "портвейн"
@alisergazy4564
@alisergazy4564 5 жыл бұрын
Реклама Азино!!!
@LANstorm.
@LANstorm. 3 жыл бұрын
где?
@user-dh2gs1wj1h
@user-dh2gs1wj1h 3 жыл бұрын
@@LANstorm. ну типо что он терминатором использовал 777
@MrRediska
@MrRediska Жыл бұрын
@@user-dh2gs1wj1h а я думаю это он права на объект ввёл, полный доступ 777
@vovanstarasov8212
@vovanstarasov8212 10 ай бұрын
@@user-dh2gs1wj1h это реклама портвейна
@vovanstarasov8212
@vovanstarasov8212 10 ай бұрын
@@MrRediska я не думаю, что он понял про права :'D
@user-pu5vq4vs9u
@user-pu5vq4vs9u 4 жыл бұрын
спасиба вам за урок. мне панравилась. а кагда я стану настаящим професионалом и буду зарабатывать от 1000 доларов в месяц? я уже второй раз сматрю этат плэйлист но еще плоха праграмирую. шо мне делать дальше?
@LANstorm.
@LANstorm. 3 жыл бұрын
третий раз посмотри
@user-pu5vq4vs9u
@user-pu5vq4vs9u 3 жыл бұрын
@@LANstorm. и станет краще? Баюсь тут есть какаята загадка, патамушта у меня ни все получается( Но я уже магу не толька переключить язык на компютере но и запустить Питон и даже складувать числа. Батя гаварит што лучше бы я учился свиням хвосты накручивать но мне эта не интересна, я хачу занимаца наукой, как наш аграном дядя Федя ево все уважают и спрашывают саветы! А эта правда што лучшие праграмисты самаучки? Я думаю што да, патамушта те хто платят деньги за усякие курсы не знают жызни и проста ище себя не нашли у этом мире. Батя говарит што у нас у стране далжно быть усе бесплатна и курсы тоже. Я ему верю патамушо он старше и умнее, а еще када я ему не верю он не пускает мене спать у дом, и я сплю на дереве, в старом гнезде аиста. Но я его обхитряю и гаварю шо верю хатя эта не всегда так, вот какой я умный хотя в школу даже не хадил) Вабще хадил канешна, я жэ не какойта атсталый. Но меня в канце вересня дирехтар пазвал и сказал шо я сильна умный, шо задаю такие вапросы на каторые учителя не знают атветы и шо мне нужна занимаца у спецыальнай школе. Но я думаю зачем мне эта спецыальная школа, кагда есть ютуб? Я па ниму все магу выучить, хатя эта и долга занимает времени. Спасиба вам за помащь, буду сматреть дальше, я чюствую што айти эта мое!
@LANstorm.
@LANstorm. 3 жыл бұрын
@@user-pu5vq4vs9u Согласен!!! Украина великая страна!
Хранение массива в памяти в Си
5:47
Тимофей Хирьянов
Рет қаралды 27 М.
Ханойские башни на Си
12:25
Тимофей Хирьянов
Рет қаралды 77 М.
g-squad assembles (skibidi toilet 74)
00:46
DaFuq!?Boom!
Рет қаралды 10 МЛН
100❤️
00:19
Nonomen ノノメン
Рет қаралды 37 МЛН
1❤️
00:20
すしらーめん《りく》
Рет қаралды 32 МЛН
Функции в языке Си
27:17
Тимофей Хирьянов
Рет қаралды 44 М.
Задача о Ханойской башне
4:57
Оксана Еськова. Основы программирования
Рет қаралды 439
Передача адреса переменной в функцию в Си
10:44
Тимофей Хирьянов
Рет қаралды 34 М.
Решето Эратосфена на Си
11:41
Тимофей Хирьянов
Рет қаралды 57 М.
Индуктивные функции на Си: any of, all of
8:01
Тимофей Хирьянов
Рет қаралды 21 М.
Техника безопасности при работе с памятью в Си
19:25
Тимофей Хирьянов
Рет қаралды 33 М.
Ошибки и предупреждения при компиляции на Си
18:15
Тимофей Хирьянов
Рет қаралды 91 М.