No video

Стараюсь объяснить что такое Функции в программировании и зачем они нужны

  Рет қаралды 620

Firinor Hisimeon

Firinor Hisimeon

Күн бұрын

Ссылки из видео:
Самоучитель по JavaScript: www.crunchzill...
Энциклопедия профессора Фортрана: djvu.online/fi...

Пікірлер: 11
@huskyfromalaska7647
@huskyfromalaska7647 Ай бұрын
Боже, спасибо огромное! Читаю книгу по С# от Эндрю Троелсен, Филипп Джепикнса. Не все моменты понятны. Нашел альтернативную трактовку понятий в твоих видео. Очень классно рассказываешь и на понятных примерах. Спасибо!!!
@ПубгМобил
@ПубгМобил Ай бұрын
Благадорю за столь хорошее объяснение
@올래나
@올래나 Ай бұрын
Ура-ура! Наш 왕 (ван) засветился. И галочки меняют цвет на зеленый. 감사합니다!
@drone_tales
@drone_tales Ай бұрын
Блин, дядька, какая же у тебя каша в голове. Начнем с начала. Подпрограммы были всегда. Возможность вызова подпрограмм присутствует в любом языке программирования. В ассемблере, C, C++, Java. Даже в GCODE, который ты приводил в качестве примера, и там есть возможность писать и вызывать подпрограммы. Что такое подпрограмма? Это, как следует из термина - маленькая законченная программа, выполняющая некое конкретное действие. Например, подпрограмма вычисления квадратного корня. Программист может использовать как "встроенные" (или библиотечные) подпрограммы языка, так и написать свои для решения своих задач. Ты правильно заметил, что в подпрограммы выносят код, который часто повоторяется. Функции и процедуры. Функции и процедуры это тоже подпрограммы. Отличие в том, что процедуры не возвращает значение. Функция - возвращает. Пример: вычисление квадратного корня - функция. Рисования круга - скорее процедура. Не все языки программирования явно различают функции и процедуры. Часто говорят, что, например, в ассемблере нет функций (там все процедуры). А в си-подобных языках нет процедур - там все функция. Хотя по факту что в ассемблере что в си-подобных языках - есть и то и другое. Паскаль же явно различает процедуры и функции. Подпрограммы могут быть собраны в "библиотеки" (это такие специальные файлы, в которых содержится набор процедур и функций выполняющих некие логически связанные действия). Например функции вычисления корня, синуса, косинуса могут быть собраны в одну библиотеку. Для чего? Чтобы их было удобно использовать в разных программах. Однажды написав библиотеку вы легко можете ее "подключить" к другой своей программе или передать другому программисту. Подпрограммы могут принимать "параметры". К примеру у функции (подпрограммы) вычисления корня есть один входной параметр - значение, из которого нужно вычислить корень. И она возвращает значение (а значит это - функция) - результат вычисления корня. У подпрограммы рисования круга может быть три параметра: координаты центра и радиус. Так как значение не возвращается, то это - процедура. Теперь про методы Методы класса - это такие же точно подпрограммы, как и все остальные за буквально несколькими отличиями. Во-первых, методы принадлежат классу. Во-вторых, методы работают только с данными (полями) класса. Естественно, это не строгие ограничения. Никто не запрещает написать метод класса, который будет образаться к глобальным переменным и вызывать подпрограммы не принадлежащие классу. Но обычно так не делают. Для того, чтобы понять, почему так, нужно написать еще страниц 10 про классы. Не совсем понятно что значит "написать функцию в теле класса"? Они и так все пишутся в теле класса. Есть языки, где реализация может быть описана в теле класса. Есть где реализация отделена от декларации. Есть - где можно и так и так. Сишные шаблоны - так там только в теле шаблона реализация пишется. В общем дядьке, не обижаяся, но тебе еще рановато других учить (я помотрел твое видео про классы - там тоже довольно все "кашеобразно".
@FirinorHisimeon
@FirinorHisimeon Ай бұрын
Спасибо за разъяснение) 1) "Блин, дядька, какая же у тебя каша в голове." Так никто не запрещает содержать кашу в голове) 2) "Подпрограммы были всегда." Были времена, когда подпрограмм не было. Их придумали уже после появления первых компиляторов. (Но это не точно) 3) "Функции и процедуры это тоже подпрограммы. Отличие в том, что..." Я специально решил в этом видео смешать Подпрограммы, Функции, Процедуры и Методы в единое понятие. Хотелось сделать видео попроще. Извиняй уж) 4) "Не совсем понятно что значит "написать функцию в теле класса"? Они и так все пишутся в теле класса." Разве? А как же методы расширения?)
@drone_tales
@drone_tales Ай бұрын
@@FirinorHisimeon 1. Никто. Зачем ее нести в массы? 2. Ключевое слово - ассемблер. Читай - машинные коды. Обработчики прерываний тоже можно рассматривать как частный случай подпрограммы. 3. Ну хотябы вскользь упомянуть стоило. 4. Ну я сразу написал что данное выражение я не понял. Что значит "написать функцию в теле класса"? И привел пример, как я это понимаю: есть языки с раздельной декларацией и реализацией (Pascal/Delphi). Есть, где реализация "совмещена" (с#, Java). А есть где можно и так и так (C++). Методы расширения - обычные классовые методы. Ну либо статические, здесь кому как нравится. Они скорее похожи на интерфейсы с реализацией и хитрым связыванием. Собственно, перегрузка операторов из той же оперы. Просто связывание идет не через полиморфизм и наследование, а через RTTI и классовые типы.
@FirinorHisimeon
@FirinorHisimeon Ай бұрын
Нравится мне, что ты делаешь наводки, для людей, которые посмотрят это видео и прочитают комментарии) Красава @drone_tales! А от себя могу сказать - просто воспринимай это видео, как ещё одну точку зрения)
@drone_tales
@drone_tales Ай бұрын
@@FirinorHisimeon Мда. Тяжелый случай.
@user-ne4bd3ry1n
@user-ne4bd3ry1n Ай бұрын
@drone_tales запишите свой видос, посмотрим
Идеально повторил? Хотите вторую часть?
00:13
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 18 МЛН
ISSEI & yellow girl 💛
00:33
ISSEI / いっせい
Рет қаралды 21 МЛН
Running With Bigger And Bigger Feastables
00:17
MrBeast
Рет қаралды 134 МЛН
Prank vs Prank #shorts
00:28
Mr DegrEE
Рет қаралды 7 МЛН
Почему скорость света - 299 792 458 м/с?
26:43
Физика от Побединского
Рет қаралды 555 М.
Зачем в программировании нужны функции
11:11
Сергей Дмитриевский
Рет қаралды 10 М.
Константы: 7 чисел, управляющие миром | LAPLAS
21:41
Высшая математика | LAPLAS
Рет қаралды 21 М.
Минимум математики для Айтишников
16:12
Последствия блокировки YouTube
25:35
MobileReviewcom
Рет қаралды 43 М.
Идеально повторил? Хотите вторую часть?
00:13
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 18 МЛН