ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:01
Работа со стеком и параметрами функций:
  • 1. В стеке резервируется место для записи значений фактических параметров функций
  • 2. При вызове функции в стек автоматически сохраняется адрес точки возврата
  • 3. При каждом вызове функции резервируется пространство для хранения локальных переменных
00:00:47
Использование указателей и передача по указателям:
  • Указатели позволяют хранить адреса переменных и объектов в памяти компьютера, обеспечивая удобный доступ к данным
  • Использование указателей упрощает работу с большими объемами данных и позволяет передавать параметры функций по ссылке, минуя необходимость копирования значений
  • В объектно-ориентированном программировании указатели применяются для работы с экземплярами классов и динамического распределения памяти
00:03:51
Передача массивов в функции:
  • Использование указателя на первый элемент массива позволяет эффективно обращаться к отдельным элементам массива, минуя загрузку всего массива в оперативную память
  • Указатель сокращает объем занимаемой памяти по сравнению с передачей самого массива, что особенно актуально при работе с большими массивами данных
  • В практических заданиях студентам рекомендуется применять указатели при обработке больших массивов, чтобы избежать ошибок нехватки оперативной памяти
00:10:03
Вычисление многочленов методом Горнера:
  • Задания на семестр будут выкладываться на том же ресурсе, где были размещены в предыдущем семестре
  • Студентам не нужно отправлять выполненные работы на электронную почту преподавателя, достаточно разместить их на учебном ресурсе
  • Презентация и учебные материалы периодически возникают сбои в отображении и работе, что вызывает затруднения у участников встречи
00:19:10
Объектно-ориентированное программирование и динамические массивы:
  • Определены правила описания аргументов функции при передаче двумерного массива (указываются количество строк и столбцов)
  • Рассмотрен пример перемножения двух матриц размером до 10 элементов каждая, результатом является хранение результата в переменной `ц`
  • Обсуждаются возможные подходы к работе с многомерными массивами
  • Использование вспомогательных массивов и указателей на массивы
  • Применение динамического выделения памяти с помощью оператора `new`
  • Работа с указателями на функции и передачей ссылок на функции в качестве параметров
00:46:49
Шаблоны функций и работа с массивами:
  • Определены классы и типы переменных, используемые в шаблонах функций
  • Рассмотрены возможности передачи аргументов по значению, по ссылке и через константные ссылки
  • Обсуждены принципы работы с файлами различных форматов (текстовыми и двоичными)
00:54:44
Работа с файлами и строками:
  • Обсуждаются различные функции работы с файлами, включая открытие, закрытие файлов, чтение и запись данных
  • Рассматриваются способы обработки текстовых файлов, использование режимов чтения и записи, а также работа с потоками (file streams)
  • Указаны возможные проблемы при некорректной работе с файлами, например, отсутствие закрытия файла после завершения операций
01:03:43
Организация сдачи экзаменов и проверка знаний:
  • Студенты обязаны выполнять задания в течение семестра, после сдачи которых преподаватель делает замечания и даёт рекомендации по доработкам
  • На экзамене студенты будут отвечать на вопросы, связанные с выполненными работами, а также решать предложенные преподавателем задачи
  • Преподаватель планирует заранее составлять список вопросов или билетов для подготовки студентов перед экзаменом, однако конкретные темы вопросов заранее предсказать невозможно из-за большого количества студентов (около 200)
0: Но получается, что у нас в стеке резервируется место для, соответственно, параметров, да, которые записываются. Значение фактических параметров. Вот. Ну и я говорил, что при работе стека, да, соответственно, там у него порядок, соответственно,
1: Обычно идёт обратный последование. Списке, да, так работает стек, так работает. Ну и при вызове функции в стек записывается точка возврата, адрес той части программы, где, соответственно, находится вызов. То есть мы обращаемся к тому адресу, где наша функция находится. Вот, ну и, соответственно,
2: Сразу у нас, когда функция вызывается, у нас опять же резервируются места для локальных автоматических переменных, чтобы, да, соответственно, если что, у вас значения были, соответственно, сохранены и в случае, и в случае, если функция
3: Как бы должна менять свои аргументы, можно использовать, можно использовать указатели, можно использовать указатели, которые нам как бы на указатель это, то есть это адрес на нашу ячейку, соответственно, памяти, да, то есть
4: На указатель, где хранится как бы значение. Вот, и указатели могут тоже передаваться по значению, их можно и использовать в качестве внутри функции, да, в качестве локальных указателей. То есть тоже самое. То есть мы можем иметь значе,
5: Мы можем иметь и указатель с указателями на системном уровне. Это более правильно. Почему? Потому что мы в данном случае можем с большими данными работать. То есть указатель для чего важен, мы указываем на определённую ячейку.
6: Грубо. Адрес, да, памяти, да, где будет храниться, соответственно, не просто переменная, да, будет храниться не просто переменная, а может быть, храниться функция, может быть храниться текстовый файл, да, может быть, храниться там ещё даже база данных, там огромный, может быть, храниться объём информации.
7: Вот, соответственно, мы этот, да, соответственно, указателем проще пользоваться, да, удобнее в каком плане, да, то есть мы не заморачиваемся ни о типах, мы не заморачиваемся, да, там, о чем-то ещё. Вот, поэтому, может быть, и тоже локальные указатели в процедурах, да, функциях и так далее. Вот.
8: Но здесь маленький есть нюансик в том, что так как указатель, да, как говорится, мы говорим, инициализируется с адресом, да, соответственно, там, допустим, переменной, которая вызывается из программы, то фактически эту переменную мы можем менять. Вот, используя
9: Уже непосредственно этот адрес запомни, это вот очень важно, особенно тогда, когда в объектно ориентированном программировании мы, соответственно, можем, да, использовать, например, экземпляры классов, да, соответственно, через динамические указатели.
10: Да, изменяющиеся. Вот. И там очень важно, когда мы в объект, да, очень много параметров забиваем, а нам нужно его там, допустим, значит, просто сделать копию этого объекта. Вот. И мы че будем каждый, каждый, значит, параметр объекта там копировать, соответственно, да, и так далее. Нет, нам проще скопировать через указатель и vs.
11: Да, соответственно, вот, ну вот в качестве примера, в качестве примера, вот с указателями как раз мы можем говорить, сделать, да, тоже функцию, которая меняет местами свои аргументы, меняет местами свои аргументы, да, но мы здесь
12: Используем именно указатель. Мы используем, соответственно, именно им указатель. Соответственно, вот. То есть мы вот здесь указываем, что у нас используется, да, икс игрек, соответственно, указатели, да, обратите внимание, что у нас функция ничего не возвращает.
13: Ничего не возвращает. 3 стоит. Вот. А внутри функции мы просто меняем местами, да, перестановку делаем внутри функции, соответственно, перестановку длааем. И вот если мы в лано программе захотим, да, собственно говоря, поменять местами 3 are равно 3 7, просто поменять их, соответственно, местами, да, то есть, в принципе мы могли сделать совершенн.
14: Другому. Ну вот, как бы, используя сла, мы в данном случае, да, соответственно, используя уже непосредственно, значит, указатели на переменные, соответственно, вот синтаксис, как мы указатели используем, да, адрес, а, и адрес б мы
15: Получим после этого, что у нас действительно они поменялись местами, они поменялись, соответственно, местами. Вот. И это может быть очень полезно при работе с массивами, да, соответственно, вот. Особенно, когда у нас есть массив,
16: Используется в качестве аргумента. Массив используется в качестве аргумента функции. Вот эта вот особенность, она заключается в том, что имя массива, да, преобразуется указателю на его 1 элемент, на его 1 элемент. То есть мы когда работаем с
17: Вот, да, собственно говоря, когда мы определяем этот массив, нам не обязательно знать, нам нужно знать адрес 1 элемента памяти, а дальше уже мы можем просто плюс единичку делать, чтобы перейти там к следующему и так далее. То есть в любом случае нам важен адрес, а в массиве в любом случае нам важно, где у нас хранитс.
18: Да, начало массива, да, каком, по какому адресу у нас массив начинается сохраняться, а потом просто плюс единичка проще, соответственно, работать так удобнее, да, соответственно, вот, вот, поэтому нам при передаче массива проще передать, соответственно, указатель. Вот, и по этой причине
19: Да, будет вызываемая функция, не может отличить, относится ли передаваемый ей указатель к началу массива или к 1 его, соответственно, единственному элементу. Вот здесь хитрость, да, в чем мы вроде бы используем указатель для массива, но сама
20: Скажем, сама вычислительная машина, она не понимает, а какой мы указатель, какие мы указатели имеем и так далее. Для неё это просто указатель, и она не просто не знает, а с чем она имеет дело, ей все равно. Вот, вот в этом плане есть определённая тонкость, вот определённая тонкость, вот, ну и, соответственно,
21: Можем примерчик, соответственно, с массивом как раз и посмотреть. То есть у нас здесь получается, у нас идёт использование суммы, да, мы здесь используем сумму, да, соответственно, и
22: Мы можем, по сути, да, вот здесь, по сути, вместо заголовки интрей, да, вот здесь интрей, да, заменить in звёздочка, да, звёздочка аррей. И вот эти квадратные скобки убрать. Соответственно, вот, и
23: Там, где в теле, соответственно, функция используется вот здесь вот запись, да, то есть, чтобы с указателем работать. То есть вот мы в данном случае здесь работаем без указателя, либо мы здесь указатель указываем, то есть убираем, соответственно, вот это обозначение массива. Здесь делаем указатель, звёздочку, да?
24: Вот, либо i kogda используем указатель, то вот здесь, вот здесь у нас будет заменяться, на что мы будем заменять соответственно.
25: Заменять звёздочка аррей плюс плюс или плюс, a плюс. И, ну потому что у нас есть и здесь меняется. То есть здесь можно просто заменить, то есть обращение к нужному нам, соответственно, элементу. То есть, получается, да, я уже как бы говорил о том, что мы через указатель
26: Обращаемся, да, по адресу. Вот. И уже просто имеем, да, нужное нам обращение. А по какому мы, соответственно, адресу, да, пытаемся, соответственно, получить. Поэтому мы можем с указателями уже в данном случае мы здесь непосредственно с массивом работаем непосредственно с массиво.
27: Вот, соответственно, вот непосредственно с массивом работы, вот.
28: Либо мы работаем с указателем, что мы, значит, не загружаем таким случаем память, да, потому что указатель у нас это просто, грубо говоря, адрес, оно сохраняется просто коротенькое, да, мало байтов занимает и
29: Так далее. Вот. А массив у нас может огромный объём, соответственно, информации, да, храниться в памяти, мы его загружаем сначала в память, да, вот таким вот образом и, соответственно, передаём. Вот, поэтому просто чисто для оптимизации, да, если мы здесьбудем указатель использовать, то мы здесь будем тоже использовать, соответственно, указатель
30: По этому указателю мы просто считываем, соответственно, данные именно по, соответственно, данные. Вот есть, да, собственно говоря, разница, да, соответственно, то есть мы таким образом, когда мы действия над массивом будет происходить с использованием указателей, мы получаем как бы
31: Момент такой, что, соответственно, мы получаем такой момент, что мы не весь массив фактически загоняем, да, собственно говоря, в память, а мы просто обращаемся к определённому объекту по какому-то вычисленному адресу, по какому-то вычисленному адресу.
32: Поэтому, когда мы, допустим, работаем с большими массивами информации, да, то, конечно, у нас может быть такая ситуация, что, например, многие, значит, студенты жалуются, да, вот когда выполняют практические работы, они говорят,
33: Ой, а у нас, да, там 1000000 элементов массив, она нам пишет, что не хватает памяти, она нам пишет, что не хватает памяти. Вот вопрос то в чем? Ну, конечно, у вас 1000000 элементов, вы загоняете в память. Ну, конечно, у вас просто памяти не хватает, вы же не massive должны
34: Соответственно, когда вы работаете с массивом, вы не весь массив должны загонять в память, а просто только тот элемент, с которым вы хотите какую-то операцию провести, а не проще просто с указателем поработать. Вот вся, соответственно, хитрость. Вот, поэтому вот когда маленькие массивы
35: Вопросов то нету, да? Ну, смысл, указатель использовать там невыгодно, да, это все делать. А когда огромные массивы используются, то вот здесь лучше, конечно, использовать указатель, то есть звёздочку пока поставить. Здесь убираются вот эти квадратные скобки. И здесь, соответственно, мы с указателем тогда здесь надо показать, что это указатель. Ну и та,
36: Вот. Соответственно, вот. Ну и, собственно говоря, здесь просто уже в основной программе мы рассчитываем тут просто, но здесь заполнение происходит массива, а вот здесь мы уже посчитаем сумму, наша же мы должны посчитать сумму.
37: Соответственно, посчитать сумму. Вот. Поэтому в данном случае мы не массив сюда загоняем, да, когда считаем целиком массив, да, сюда будем загонять. А указатель, да, берём вот здесь такую собачку нарисуем, да, собственно говоря, у нас получится, что массив будет, соответственно, с
38: 100 элементов у нас массиве получается, получается вот так что в этом плане, соответственно, у нас здесь, ну давайте примерчик, соответственно, посмотрим в качестве примера у нас происходит
39: Вычисление, вычисление многочлена, вычисление многочлена. И, соответственно, значит, нам нужно по коэффициентам его вычислить, да, соответственно, вот, то есть её надо, требуется вычислить. Наши, соответственно, вот такие многочлены в определённой точке.
40: X. Она у нас равна 0 6. Вот. Соответственно, че у нас получается? У нас получается, что как бы, по существу, общий вид многочленов у нас ввиду важности, да, вычисления у нас будет составляться функция, которая будет осуществлять вычис.
41: Многочлена степени n. Ну, то есть вот так у нас записывается ц 0 ц, 1, ц, 2 там, да, и каждый раз у нас выводится, соответственно, степень, то есть, по его коэффициенту ц, у нас получается, и, как бы, игры, да, и для эффективного вычисления многочлена используется так называемая схема горнера, да?
42: Вот, ну, там есть исторически, как бы история такая, что оказывается,
43: До ворнера это сделал ньютон. Вот. Но, в общем, там это исторические факты, это уже значит, там, если кто историей пытаться будет увлекаться, там очень много интересных там на самом деле фактов, кто чего опередил, кто кого там раньше описал, но суть не в этом. То есть
44: Суть в схеме, да, то есть эта схема состоит в том, что многочлен будет переписываться вот в такой вот, соответственно, форме вот в такой форме, да, там, че то там безумно, там, сколько-то там Шагов и так далее, да, вот это в скобочках записывается, и все это дело умножается на x.
45: И выделяется просто ценой. Ну, то есть здесь как бы хитрость такая выносится за скобку, соответственно, там будет в определённых комбинациях будет выводиться, да, x, да, там, соответственно, хитрая такая вот, значит, вещь, математические просто преобразования.
46: Выход вывода x в определённых комбинациях и все это дело потом опять же, да, то есть соответственно, умножается на икс, умножается соответственно, на икс. Ну то есть вот в этом плане там будет умножено икс, получается, вот видите, вынесли их за скобочку, там так будет получаться все время у нас x в энном случа.
47: Да, вот этих таких минусов будет очень много. Вот почему так сделали. Ну, потому что если мы будем все время возводить в степень, да, будем все время возводить в степень, то сложность вычислений будет все время, да, в энной степени.
48: Да, в энной степени, а мы в данном случае свели задачу к тому, что у нас требуется всего, н умножений и, н сложений. Понятно, да, идея в чем? То есть мы, ну, складывать, мы и так, соответственно, складываем, но умножение у нас здесь гораздо больше получается, но умножение
49: Очень трудоёмкая на самом деле задачка, да, и вот мы, естественно, избавились от бесконечного, да, соответственно, умножения. Вот, то есть коэффициенты мы будем хранить в массиве в данном случае, да, и, соответственно, вот этот многочлен мы будем, соответственно, высчитывать во
50: Собственно говоря, как выглядит, собственно говоря, сама функция, во первых, вычисления нашего многочлена, да, по схеме, соответственно, соответственно, оно, то есть, мы вот, соответственно, её назвали пол, соответственно,
51: Параметры, которые нам необходимы, это массив ц, которые хранят коэффициенты непосредственно икс, который в какой точке нам нужно. И, н сколько у нас, соответственно, коэффициентов в данном случае, сколько у нас в этом случае коэффициентов. Вот, ну и, соответственно, нам нужно в цикле просто
52: Перемножить, соответственно, да, сложить, соответственно, коэффициенты и, соответственно, каждый раз её перемножить, да, вот, соответственно, на, фактически, на икс, да, собственно говоря, да, который мы выносили в определённом каждом шаге, мы выносили, соответственно, вот этот, соответственно, x. Ну и, собственно Говор,
53: Ну, основная программа уже и так, соответственно, понятна. Основная программа. Так, собственно говоря, понятна. Вот. То есть, вот таким вот образом мы можем, соответственно, работать с массивом фактически. Ну, вот здесь, понятно, здесь значений немного, поэтому указатели, как бы, формально мы не используем. Вот указател
54: Формально не используем для того, чтобы, да, собственно говоря, здесь и так вычислительная задача. Вот. И мы, в общем то, здесь не так уж прям загружаем, да, и память требуется, вот, и огромное количество там памяти. Вот, да, при 10 элементах это не, не самое, да, страшное, тем более это не так.
55: Даже дабл будет использоваться. Так, значит, давайте тогда мы прервёмся, да, соответственно, вот, соответственно, прервёмся, да, на какой-то
56: Перерыв там, да, сделаем небольшой, и тогда продолжим. Так, а меня слышно было? Да, да, да, да. Слышно. А то мне показалось, что меня че то вышибло. Нет, все нормально. Ну тогда все, тогда перерывчик.
57: Так, значит, продолжим, да, продолжим.
58: Скажите, пожалуйста, задание на семестр, где будет выложено, вот там же, где и в прошлом семестре выложено. Вот, в принципе, конечно, я могу выложить вот здесь, который у нас с вами, учебный, этот учебный, как варится, как он называется?
59: Вот, просто я пока, у меня пока не получается с этой штукой работать. Вот просто, насколько я вижу, там только 2 семестр, 3 нет. Где 2 семестр? Ну, по ссылке на 1, 2 семестр. Ну так, 1 семестр вы уже прошли, a2 семестр, это сейчас идёт текущий по дисциплине.
60: Программирование идёт 2 семестр. Вот 1, 2 семестр, вот 1 вы уже прошли, a2 семестр это то, что вам сейчас идёт текущее. Вот. Ну, понятно, что для вас это 4 семестр, да, но для, по дисциплине это 2 семестр. Так.
61: Ещё есть какие-то вопросы?
62: Так, презентация появилась у вас или нет, то я смотрю, у меня че то, че то нет, нет, видите, как презентация че то не появляется, как-то странно.
63: Тоже не появляется, че то глючит эта штука. Не могу понять почему так.
64: Так не знаю.
65: Попробуем ещё раз.
66: Так, так.
67: Нет, да, они опять не появилось ничего. Ну вот, и что вот сейчас там произошло, в все работало нормально.
68: Работает. О, вот это заработало, да.
69: Так, тогда вы.
70: Так это работает. А теперь как мы её должны убрать?
71: Убрал. Так ещё раз тогда.
72: Нет, не появился, да.
73: Ну непонятно почему-то.
74: Непонятно, почему у нас окно не выходит.
75: Не выходит, блин.
76: Так, окно у нас появилось, а это у нас не появилось, да?
77: Странно, ну-ка, если мы все-таки попробуем.
78: ***.
79: Разрешите уточнить, да, по поводу заданий. Получается так же, как в прошлом семестре. Староста все задания собирает, высылает вам на почту, правильно? Нет, на почту мне не надо ничего слать, это слишком будет тяжело. Вы, вы, во первых, будете, значит, ну, во первых,
80: Опять же, выкладывается это все на ресурсе, да, собственно говоря, и там, соответственно, на ресурсе можно будет, соответственно, уже выкладывать, как в прошлом семестре у вас было был организован, значит, доступ, да, где вы выкла.
81: Работы и там, соответственно, вы выкладываете работу свою на почту ничего не надо посылать, потому что это очень, это очень сложно.
82: Вот очень сложно так.
83: Так, значит.
84: Опять у нас не загружается, у меня че то здесь презентация, че то совсем плохо, все.
85: Как плохо все, не то вот почему-то.
86: Почему-то у меня не работает ничего.
87: Не, не получается. У меня че то с презентацией. Знаете что, ребят, давайте я сейчас выйду и ещё раз зайду тогда это, а то по какой-то
88: Ревность какая-то чем?
89: Так.
90: Что-то видно, ребят, хотя бы.
91: Ну хотя бы так, а то че то совсем какой-то, прям логистика какая-то. Так, значит, соответственно, следующее, что мы значит, посмотрим, это как раз передача многомерных массивов, соответственно, то есть есть
92: Функция передаёт двухмерный массив, то описание соответствующего аргумента функции должно содержать количество столбцов и количество строк. Вот. Соответственно, вот, но в данном случае мы тоже может это быть несущественно, если мы будем передавать это через, соответственно, указал
93: Вот, значит, мы рассмотрим в данном случае примерчик, который, соответственно, здесь у нас получается 2 матрицы мы перемножаем а, и б, и получаем, соответственно, результат ц, значит, размер матрицы у нас небольшой, не должно быть более 10. То есть мы поэтому здесь вот в конц,
94: Указываем вот эти, соответственно, 10 вот, ну и, соответственно, прописываем как раз функцию, которая, соответственно, здесь вычисляет. Ну вот здесь вот есть, соответственно, то, что мы передаём, да, у нас передаётся, значит, передаётся, соответственно, наше значение.
95: Да, соответственно, на двухмерных матрица, ну, дополнительные параметры, да, соответственно, число строк, число в матрице, а число в матрице б, и количество столбцов, б, вот, матрице, б, ну, и сама операция, как это, соответственно, происходит в цикле. Вот. Ну и в данном случае опять обращаю внимани,
96: Что данная функция не возвращает никаких, соответственно, значений. Вот если эту матрицу, если эту функцию, соответственно использовать, то, соответственно, у нас получается, что как мы будем обращаться к нашей функции в главной программе, например, мы задаём абц.
97: Соответственно, размер если 5 на 5, то мы здесь, соответственно, указываем везде, соответственно, пятёрочки, то есть сами матрицы квадратные, результат это ц. И вот обратите внимание, что результат у нас будет здесь в данном случае не значит, соответственно, получаться. Так, у нас результат
98: Будет получаться, соответственно, в ц, да, результат у нас. То есть, если мы захотим использовать дальше, потом, то вот это ц, мы будем в результате. То есть сама функция вроде как ничего не возвращает, но результат, который мы, соответственно, получаем, то есть результат он будет
99: Результат будет, соответственно, храниться в ц. Вот. Поэтому мы его должны, соответственно, в данном случае из ц обязательно потом вытащить. То есть, ц должна быть не просто локальная переменная в данном случае в этом плане, а она должна быть ещё и глобальной переменно.
100: Чтобы это глобальный массив, чтобы мы его могли, соответственно, соответственно, сохранять, вот, и, соответственно, получать. То есть, как бы вот здесь хитрая в том плане ситуация, хитрость, в том плане ситуация, что в данном плане здесь вроде как бы функция ничего не возвращает, да, но тем не
101: Результат у нас есть вот, вот какой, как бы в данном случае здесь так вот в данном случае какой здесь, соответственно, недостаток проявляется, да, вот здесь у нас заранее, значит, фиксируется, да?
102: Размерность матрицы, да, соответственно, вот, то есть мы зафиксировали, вот, и обойти это можно. В принципе, есть 2 способа, да, вот, даже, может быть, и больше. Вот. Но 1, например, из способов это использование
103: Вспомогательных массивов, указателей на массивы. Вот, соответственно, вот, но это можно как бы сделать, если использовать, например, использовать, например, как бы пример, как бы, функция, которая транспонирует, да, там спланирует матрицу квадратную размерности.
104: Произвольной, как бы, размерности, м, как раз через соответственно, указатель. Ну вот, то есть вот мы ввели, соответственно, указатель и у нас размерность в данном случае здесь, ммм, то есть мы взяли указатель размерности здесь, н, то есть у нас получается любая размерность, вот, и, соответственно,
105: Показатели матрицы, соответственно, работа с матрицей, соответственно, работа. Вот. И тут мы с вами можем спокойно, соответственно, двойной цикл, потому что у нас квадратная матрица, да, соответственно, квадратная матрица. Вот. Но тем не менее, мы работаем с ней как
106: Двухмерных массивов, соответственно, внутри двухмерного массива. И вот тут, собственно говоря, как мы её, соответственно, используем. То есть у нас задана матрица 4 на 4. А, да, мы получаем, соответственно, значит, объявляем
107: Указателей, массив указателей, соответственно, наших квадратной, нашей, соответственно, матрицы, да, соответственно, формируем. Вот. И дальше мы уже его знаем, что нн равно 4. Мы говорим, что нн равно 4, вот для, соответственно, матрицы и уже передаём как раз
108: Как бы сформированный массив на нашу уже вот эту, соответственно, функцию, соответственно, вот, вот, соответственно, вот pre, как бы, если использовать этот массив, получается у нас здесь, соответственно,
109: Вот также мы можем использовать вариант с значит, вариант, значит, динамических массивов с динамическими массивами. Вот, то есть здесь можно использовать
110: Использовать, значит, динамические переменные, использовать динамичные переменные. И в качестве примера мы приведём как раз функцию, которая формирует единичную, соответственно, матрицу, единичную матрицу порядка n порядка м. Вот операция здесь new должна использовать
111: Операция не используется. Вот, потому что это работа с динамическими массивами или переменными. Вот. Поэтому она, эта операция, возвращает указатель, да, возвращает указатель на выделенную память под соответствующий соответствующий
112: Вот, ну и, соответственно, тип у нас будет п, то есть, соответственно, in, соответственно, со звёздочкой, ИНН, со звёздочкой, вот, переменной, п, вот, поэтому, когда мы указываем, работаем с массивами, да, для указателя, соответственно,
113: Матрица у нас ставится не 1, как бы звёздочка, а, соответственно, 2 звёздочки. То есть, и вот как раз вот здесь у нас показывается. То есть таким образом у нас массив указателей настройки будут целый, да, целый тип-таки целых, да, целого типа, соответственно, будут
114: Матрица в будущем матрица. Вот. Ну а так, в целом, собственно говоря, суть, она от этого особо не меняется. Единственное, что надо, ну, здесь вот есть, соответственно, проверки и так далее. Ну то есть, как бы суть идёт, ну и вот ещё здесь есть такая как бы
115: Функция, которая тут используется, вот она, значит, она устанавливает ширину поля следующего вывода в позиции, в какой позиции? Ну в данном случае, во 2 позиции, здесь в 4, ну то есть, грубо говоря, в каждой позиции, что позволяе
116: Выравнивает вид полученной матрицы, выравнивает вид полученной соответственно, матрицы. Вот. Соответственно, также есть указатели на функции, то есть мы можем указывать на функцию, то есть делать указатель на функцию вот непосредственно, то есть она
117: Там где-то у нас может находиться и мы будем соответственно делать указатель на функцию, то есть указатель на функцию, то есть как делается, значит мы указываем тип функции, указываем имя, имя указателя делаем и, соответственно, список в ну например, вот у нас тип функции, соответственно непосредственно указатель и
118: Соответственно, параметр в данном случае double вот, то есть здесь у нас указывается, здесь определяется, значит, ф, как указатель на функцию с 1 аргументом, соответственно, типа дабл у нас вот, и
119: Возвращает значение имя функции при следующих, соответственно, за ним параметров. То есть фактически это указатель на функцию, которая содержит непосредственно адрес этой функции, этой функции. Вот если мы будем, соответственно, описывать
120: Да, соответственно, эти моменты, то вот мы, например, говорим, что у нас есть, допустим, функция f1, да, есть функция 2, которой, там, соответственно, каждый из которых будет выполняться что-то, вот, и в данной программе.
121: Мы, соответственно, соответственно, определили, да, эти функции. И дальше мы через вот этот указатель будем, соответственно, как бы, вызывать, как бы вызывать. Вот у нас есть, значит, указатель.
122: То есть вот 2 функции есть, мы их там написали, и вот мы объявляем вот этот указатель на функцию, да, вот он вот, соответственно, ну, потому что у нас функция как бы ничего не возвращает и ничего не без параметров, да, вот, вот видите, как пример, который мы в самом начале с вами говорили, соответственно, без параметров и
123: Мы будем, соответственно, вызывать, соответственно, эти, соответственно, функции. То есть мы говорим, что вот у нас птрф 2 и вызываем функцию 2 или птрф 1, вызываем функцию f1 и то есть у нас будет, соответственно, постоянно в результате вызываться какая-то, значит, какие-то
124: Функция вызываться какие-то соответственно, функции. Вот то есть мы каждый раз будем указателю как бы присваивать соответствующую функцию эта функция будет соответственно, вызываться через соответствующий указатель. Вот ну тут разные способы вызова как бы примеры показаны вот соответственно здесь вот
125: Также иногда удобно использовать формальные параметры, функции, формальные параметры, функции, да, которые являются указателем на функции. Но это можно на примерчике разобрать. Например, метод трапеции, метод трапеции, когда мы интеграл рассчитываем, рассчитываем
126: Интеграл. Вот. Соответственно, вот здесь теле функция у нас, да, у нас она называется прав теле функция, она возможно писать обращение как раз либо фанкт, а либо фанкт б, да, соответствен.
127: Вот видите, вот здесь вот, соответственно, указанно, ну и, соответственно, таким вот образом мы можем, соответственно, обращаться к, соответственно, функция, ну то есть у нас отдельный вот этот файл находится, то есть фактически модульная
128: Многофайловый, можно сказать, соответственно, проект. Вот, и мы в этом файле, соответственно, прописываем вот эту, соответственно, функцию. Вот, но сами функции, которые у нас здесь, соответственно, прописаны, они, значит, указаны, да, непосредс.
129: В другом файле, значит, мы вот этот tap, соответственно, подключаем, как вот он, это отдельный совершенно файл, мы его подключаем, как ф, 1, ф, 2 мы подписали непосредственно там, где основная программа. Вот. И, соответственно,
130: Обращаю как бы внимание то, что вот эта функция 1, соответственно, передаётся через, через формальные параметры, скажем так, функции, да, через параметры функции. Ну, мы её здесь как указатель, да, сделали непосредственно в описании.
131: Самой функции. И уже описав эти функции, где-то мы их сюда, например, подключаем, мы, например, соответственно, включаем то есть 2 функции, которые нам необходимы, да, вот мы сначала для 1 функции посчитали, потом, соответственно, для другой функции, соответственно, посчитали. То есть мы можем и
132: Вот таким вот образом, да, как вариант, соответственно, передавать параметры, соответственно, соответствующее значение. Ну и, соответственно, что мы ещё как бы здесь можем
133: Мы можем ещё использовать ссылки, да, мы можем ещё, соответственно, использовать ссылки. То есть ссылка это возможно, либо вариант, да, ссылка на тип, да, вот, соответственно, определяется как тип и тип, и, соответственно, адресанта. Вот. Либо вот, да,
134: Как бы целое, соответственно, то есть это, соответственно, как ссылка, вот, то есть ссылочные типы устанавливаются как бы на создание объектов ссылка, она обязательно должна быть инициализирована, просто использовать без инициализации мы её не можем и после инициализации нам
135: Да, ссылка даёт результат, да, так же, как и тот же результат, что если мы используем как бы прямое переименование, соответственно, объекта, да, соответственно, вот, ну вот, например, вот у нас есть инициализация, да, как мы проводим инициализации.
136: Ссылки, ализацию ссылки вот проводим то есть вот мы там допустим её объявили и дальше мы говорим что мы хотим соответственно её сделать как соответственно ссылка то есть что здесь получается здесь создана новая переменная, да, соответственно типа ссылки на int с именем рф, вот, и
137: Физически это постоянный указатель на ИНН и, следовательно, значение ссылки после инициализации не может быть. Соответственно, изменена эта речь, то есть инициализация. Вот эта ссылка, инициализированная ссылка ведёт как себя, как указатель, ведёт себя как
138: Указатель, значит, при использовании ссылки, да, при использовании ссылка ведёт себя не как указатель, а уже непосредственно как переменная. То есть мы с ней работаем, как, в общем то, с переменной, вот с адресом, с которым она у нас используется. Вот.
139: Ну, то есть, либо р, плюс плюс это тоже самое, что, как бы мы там говорили, и плюс, плюс, если использовали, да, как обычно, или же мы, соответственно, записывали это дело вот таким вот образом, то это тоже самое, что и равно, соответственно, вот, то есть, фактически, если тип
140: То есть, как бы, идея, в чем, как бы, рф, фактически, вот эта рф, она стала просто другим именем, неким псевдонимом переменных, да, то есть, как бы, то есть, как бы, ну, та же самая, но это, ну, то есть, как бы, этот, и человек с именем, там, Иван.
141: Есть псевдоним, там, борец или как-нибудь там, да, ну то есть, как бы, и вот он это тот же самый человек, да, то есть у него просто есть либо имя Борис, либо он борец. Вот. Ну, соответственно, если, соответственно, ссылку можно определить так, как если
142: Например, ссылка есть некий такой показатель, некий такой постоянный указатель на объект, которому всегда при использовании явно применяется вот операция указателя. Вот, соответственно, вот если тип инцилизировать не совпадает с
143: Объекта, а ссылка, да, не совпадает с типом, соответственно, объекта, то создаётся новый анонимный объект, для которого ссылка является так называемым псевдонимом. Вот, и инициализатор преобразует
144: Вот, и его значение используется, соответственно, для значения уже непосредственно анонимного объекта. Ну вот как вот здесь вот, соответственно, в примерчике получается, да, значит, у нас, как бы, д дабл задано. Вот, но мы указатель делаем, соответственно, через
145: Как и указываем, да, вроде как указываем ИНН. Соответственно, вот, то есть у нас получается, что переменная у нас анонимная переменная создаётся типа in, которая циализируется значением, полученные с помощью преобразования значения double k.
146: Соответственно, вот, ну и дальше, потом ссылка лизируется, значение адреса этой переменной. Вот. То есть, получается, анонимный объект получит, если мы обратимся, соответственно, не допустим, у нас анонимный объект как бы получает значе.
147: Троечки получает значение соответственно тройки вот то есть получается что у нас создаётся анонимный объект типа int, а он инициализируется значением троечки, а после этого создаётся например ссылка ир, его псевдоним да, соответственно оператор да, соответственно равно всем.
148: Вот, то есть здесь получается у нас уже устанавливается новое значение, новое значение вот этого анонимного объекта. Вот, то есть здесь, да, вот в этом плане могут быть вот такие тонкости, что не обязательно, ну, вроде мы создали
149: Тем не менее, он в итоге будет создаваться, да, то есть мы можем анонимный объект создавать и с помощью преобразования типов, но, опять же, обращаю, то есть внимание на то, что если мы, допустим, из дабл винд можем преобразовать, да, преобразуется, соответственно, значение во
150: Из int мы можем дабл тоже преобразовать да, но есть некоторые операции, которые мы не можем преобразовать да, то есть переменные из 1 типа в другой. То есть это надо быть внимательным потому что если какие-то типы мы не можем получить да, с помощью преобразования в другой тип, то значит у нас будет ошибка вот это тоже внимательно надо быт.
151: Соответственно, ну и ссылки мы можем использовать в качестве параметров функции, да, соответственно, то есть мы можем использовать в качестве параметра функции соответствующие соответствующие ссылки. Вот. Ну я к тому, что да, вот этот момент тоже можно иметь, ну и мы
152: И как бы используем в качестве как бы, формальных таких же операций, то есть они для нас как бы, ссылка, да, вот у нас как бы, здесь, соответственно, ссылки, но это не значит, что они у нас, да, внутри мы работаем как псевдонимы, фактически. Вот, соответственно, вот дальше самое.
153: Это рекурсивная, соответственно, функция, то есть это функция, которая вызывает сама по себе сама себя, да, то есть она вызывает постоянно, ну то есть это такие постоянные вычисления. Вот, например, как факториал, да, то есть вычисление факториала, она будет вызываться 1 и та же функции.
154: Она будет вызываться внутри себя, а соответственно, вот, соответственно, то есть вот как бы в качестве примерчика, вот здесь мы говорим, что у нас будет, она имеет значение long, да, соответственно, входной параметром, н, и она будет возвращать
155: Значение, соответственно, как n, умноженное на опять же, факт, н, - 1. То есть она вот такую, соответственно, возвращает, вот, либо она будет возвращать, соответственно, единичку, будет, соответственно, возвращать, соответственно, единичку при
156: Меньше единички, меньше, соответственно, единички. Вот, соответственно, единичка, вот, ну, либо просто распечатку, если какую-то, соответственно, получать, то, соответственно, мы можем возвращать просто, значит, как бы, саму
157: Да, либо мы будем возвращать изменённых, да, условия в зависимости, да, то есть, либо мы, то есть мы как бы символьную строку распечатываем, да, распечатать символьную строку, которая будет отображать соответствующее, как бы, число. Вот.
158: Соответственно, то есть мы говорим, что если m не число, то просто пусто, да, то есть, если это не вот, соответственно, пусто проводится, вот, ну, и так далее. Вот, что касается, значит, как бы, рекурсии, ну, ещё есть, соответственно, косвенная
159: Рекурсия, да, косвенная рекурсия, когда 1 вызывает косвенная рекурсия, когда 1 вызывается, соответственно, из другого, 1 вызывается, соответственно, из другого. Вот, соответственно, то есть, при
160: Как бы рекурсии может осуществляться как бы некий перекрёстный вызов функции друг друга. Вот, то есть, но здесь такой момент есть, всегда должен быть, должно быть условие выхода, да, соответственно, из рекурсии
161: То есть, вот нельзя, да, на самом деле, оставлять вот эти моменты, да, без внимания. То есть всегда должен быть, да, выход соответствующий задачи, потому что это будет зацикливаться и, соответственно, конца и края, соответственно, не будет. Вот, ну, как и, в общем то, любо
162: Как бы задачи, вот в любой как бы задаче должно быть, но почему у нас в большинстве случаев, да, соответственно, должен быть всегда какой-то альтернативный решение. То есть вот, вот всегда
163: Должно быть альтернатива, да, то есть вот особенно, например, вот, скажем, передача в сетях, да, вот как пример передачи в сетях, соответственно, что у нас есть узлы, да, то есть у нас есть пакет, который передаётся какому-то конкретному узлу, а что
164: Да, то есть все понятно. Узлу пошло, по 2 узлу пошло. Вот. А если появляется пакет, че с ним тогда делать? Ну, отправить его, соответственно, а он, а узла 3, то нету, а его не существует. Он че будет делать? Да, куда? То есть всегда должен быть какой-то, соответственно, поэтому.
165: Проверка происходит. Если узел 1 есть, есть, значит отправляем. Если узел 2 есть, есть, значит отправляем. А если узел 3, а он есть, нету, значит, раз его нет, тогда что не отправляем, вот и все. Или там узел 4 тоже появляется. Альтернатива какая-то определённая. То есть нужно всегда иметь
166: Говоря какой-то пункт, который по умолчанию, да, не вписывается в соответствующий алгоритм, значит, работы, а что по умолчанию должно быть, да, то есть так же, как и в рекурсии, тоже должно быть некое условие альтернативное когда мы прекращаем это безобразие, то есть должен быть выход, иначе будем все время отправляя
167: Пакет в пустоту, да, пункт 3. А у нас пакет пункт 3. У нас задача какая отправить. У нас есть узел, есть узел, адрес есть, есть. Хорошо отправить, но на самом деле узла то нету. Вот. И че он будет все время отправлять? Ну, будет отправлять, естественно. А ещё лучше может быть такая ситуация произойти, что она
168: Будет пакет ожидания отправления, будет висеть, и все. И будет все время опять пункт 3 отправить пакет, да, есть, соответственно, адрес, соответственно, отправить, а он не отправляется, отправили, задумается. А у меня нет. А что мне с этим делать пакетом? Ну, то есть, если нет условия, а что мне с этим пакетом делат?
169: Ну, тоже самое, как робот у него задаче сделано следующее. Красные шары в левую корзину, синие. В правую корзину попадается оранжевый шар. Куда его?
170: Если ему не прописано это условие, он будет на него смотреть и не знать, что с ним делать.
171: Понятная идея. Вот с рекурсией тоже самое, с рекурсией тоже, соответственно, самое. Вот дальше аргументы по, соответственно, умолчанию. Значит, есть удобный способ или даже удобное свойство в языке си плюс плюс как наличие
172: Предопределённых инициализаторов аргументов. Значение аргументов по умолчанию можно задать в объявлении функции. При этом они, значит, подставляются автоматически. Вызов функции, содержащая меньшее число аргументов, чем, например, объявлено. То есть мы можем объявить большее, но
173: Кажется, что там аргументов меньше. Вот, ну вот, например, у нас есть функция объявлена, сколько у нас тут 1, 2, да, 3, значит, аргумента с 3 аргументами, она у нас, соответственно, соответственно, аргумент
174: Да, вот она у нас инициализирована, вот, причём 2 аргумента у нас из этой функции инициализированы, то есть заданы, соответственно, параметрам, то есть 0 0, соответственно, 1 у нас как бы непонятен, почему может быть, то есть совершенно, то есть значение вот
175: То есть эту функцию мы можем вызвать с 1, с 2 или даже 3 аргументами, с 2 2 аргументами, соответственно, каким образом? Ну то есть с 1 аргументом, с 2 или даже 3, но с 4 уже не можем, потому что у нас их нету здесь 4, то есть мы только можем, соответственно,
176: Вот, соответственно, то есть в данном случае в 1 случае у нас вызывается ошибка, да, то есть получается ошибка какая-то. Вот здесь у нас пишется ошибка и 2 аргумента у нас по умолчанию, то есть мы раз прописали ули, значит,
177: Соответственно, мы их можем не при передаче параметров не указывать. То есть она по умолчанию возьмёт. Во 2 случае мы 1 параметр взяли равно единичке, a2 у нас так и останется по умолчанию. Ну, в 3 случае у нас, соответственно, значение
178: Значит, уже все параметры мы, соответственно, не используем по умолчанию. То есть, соответственно, делаем, соответственно, вот. Но если у нас аргумент по умолчанию уже определён в каком-то, в 1 объявлении, он не может быть предопределяться, соответственно, в другом. Вот.
179: То есть аргументы по умолчанию должны быть объявлены при самом 1 объявлении имени функции, вот, и не обязаны быть, соответственно, константами. Вот они не обязаны быть константами, то есть можно и константами сделать, соответственно, а можем нет. Но если мы там объявили, то, соответственно, она там будет, соответственно, быть
180: Вот, ну и заметим, что если инициализация аргументов произведена в прототипе функции, вот, то определение функции задавать инициализацию аргументов, в общем то не надо. Ну то есть если прототип, то можно уже не указывать, соответственно, ну дальше
181: Что может быть, ну, при определении функции это такая вещь важная. Вот, ну, как бы.
182: Мы можем, значит, переопределять, переопределять имена функций, использовать одно и то же имя для нескольких, соответственно, функций с разным причём числом типов или, значит, членом числом аргументов. Вот, вот, например, у нас заданы функции, да, соответственно,
183: Объявлены объявленные, соответственно функции. Вот причём последние у нас неопределённо количество аргументов. И давайте посмотрим, че произойдёт при вызове функции имени, а с нескольким списком аргументов вот что будет делать. Соответственно, колят
184: Он будет пытаться найти функцию, да, формальные аргументы которой соответствуют фактически без всяких преобразований типов или с использованием только неизбежных преобразований, ну, например, использование только там, например, массива указателю имени массива, указатель или значение переменной, да, соответствующей констант.
185: Ну, либо наоборот, то есть у нас, допустим, есть соответствующая строка, и мы там обращаемся стринг, да, с этой строкой, да, сколько-то у нас дальше, либо мы, соответственно, обращаемся, да, с функцией, которая соответствует, да, типу long, и double, да,
186: То есть у нас в данном случае строка и целая, либо long, и, соответственно, дабл, вот, ну, то есть, пытается найти нужное, да, соответствие. Вот если на 1 этапе подходящая функция не нашлась, да, если подходящая функция не нашлась, то на 2 этап
187: Совершаем, значит, совершается попытка подобрать такую функцию, чтобы для, соответственно, формальных и фактических аргументов достаточно было использовать только стандартные преобразования, которые не влекут на себя, да, вот, соответственно, каких-то существенных, да, потерь, ну, как мы уже говорили,
188: Что если возможно преобразование данных там да, из double или там наоборот, то она будет соответственно подбирать вот уже по Такому ключу. То есть можно ли преобразовать что-то вот при этом подбирается функция, для которых число вот таких преобразований было минимальным ну то есть понятно, что ищется
189: Минимальными, скажем так, затратами. Вот, ну вот, например, как вот, соответственно, вот здесь примерчике мы говорим, что у нас есть число, a3 целых 36 и 6. Вот, и мы как бы пытаемся подобраться к 1, как бы, соответственно, варианту, да, а так или мы вот как бы, во 2 случае
190: Можно преобразовать, да, собственно говоря, вот такой вот как бы, вариант, вот, то есть, например, будет в данном случае вызвана функция char, да, вот это у нас как бы 2 вариант, да, фактический, который аргумент типа, да, будет преобразован к in
191: Да, когда бросится, соответственно, дробная часть, дробная часть, ну то есть проще отбросить, чем там какие-то ещё сложные как бы, преобразования, значит, проводить дробные преобразования, соответственно, проводить, ну и, соответственно, и так далее. Вот, и, соответственно, так далее. Вот. Ну и
192: Соответственно, можно использовать, когда это можно, ну, в общем то, когда это полезно, да, когда это полезно, особенно в объектно ориентированном программировании, это полезно, когда у нас могут методы, как определяться, и мы это
193: Определение даже используется, когда, да, соответственно.
194: Для операций, да, то есть вот, например, мы можем 2 объекта складывать, да, то есть, а у каждого объекта по несколько параметров. И причём не все параметры мы можем, соответственно, сложить. И вот тогда мы переопределяем, да, операции, тогда мы переопределяем даже операции соответствующие. Вот, а так
195: Жизни, да, то есть, возможно у нас, мы можем определить, например, мы хотим найти, например, допустим, у нас есть такая функция, как, например, площадь фигуры, да, у нас есть как бы площадь фигуры, и мы пытаемся
196: Да, в 1 случае площадь для расчёта площади фигуры достаточно 2, там, допустим, переменных, а в каком-то случае нам нужно 3 переменных, да, например, для расчёта какой-то фигуры. Вот, а может быть это фигура какая-то сложная, там ещё дополнительные какие-то параметры необходимы. И вот тут то как раз вот
197: Вариант, да, соответственно, ну и плюс, естественно, вполне допустимы варианты, что возможно, могут использоваться вот разные типы, соответственно, переменных, разные типы, соответственно, переменных. Вот. Поэтому здесь тоже могут быть какие-то вопросы связаны. Вот, значит,
198: Ну, есть ещё, значит, шаблоны функций, шаблоны функций, да, шаблоны, соответственно, функций, то есть, для чего они нужны в 1 очередь, да, значит, это автоматизация создания функций, в которых могут обрабатываться разнотипные данны.
199: Да, вот как вот в предыдущем случае у нас получаются разные данные, да, но чтобы, значит, не подбором делать, а уже какой-то определённый шаблон, значит, в определении шаблонов семейства функций используется служебное слово template, то есть мы подгоняем это дело.
200: Да, это уже будет для компилятора чёткое понимание, что это некий шаблон. Вот, и за которым уже следует список параметров, которые у нас будет определяться. Да, шаблон значит каждый формальный параметр, значит,
201: Шаблон обозначается служебным словом, так называемый класс тип, да, соответственно, указывается класс и, соответственно, тип, на котором уже будет идти, соответственно, имя параметра, имя параметра. Вот, ну то есть пример определения шаблона, соответственно, функция, которая будет вычислять модули, да,
202: Модуль величин разного, соответственно, разного типа. Вот мы определили, значит, вас тип, то есть, соответственно, это вот в примере, да, обозначили эту переменную. И дальше мы говорим, что это type, это модуль от такого-то числа.
203: Соответственно, x. То есть мы определяем, как бы вот это type, да, то есть это будет в дальнейшем тайп икс, то есть, как бы, любой тип соответствующего числа, любой тип, соответственно, числа, то есть, как бы, получается, если мы говорим, вот
204: То есть мы говорим, что будет возвращаться, если будет возвращаться, если x у нас в данном случае, допустим, больше нуля, то оно, соответственно, будет возвращать икс, иначе оно возвращает, соответственно, обратную величину, обратную, соответственно, величину, да, соответственно, модуль, да.
205: Должна возвращаться обратная величина, то есть по модулю. То есть у нас как бы внутри может быть либо минус, да, либо плюс, и он всегда будет должен возвращаться, соответственно, как работает модуль.
206: Значит, шаблон функция состоит из 2, соответственно, частей непосредственно заголовка шаблона из обычного определения функции, в котором тип возвращаемого значения или типа любых параметров, да, там и локальных там переменных могут обозначаться соответственно, именами параметро.
207: Соответствующего введённого шаблона. Вот, то есть мы можем, да, соответственно, значит, указывать, соответственно, здесь, т, да, как переменная, как бы, некого типа, переменная некого типа. И дальше мы можем её, значит, преобразовывать и с указателями, да, и так далее, и тому,
208: Вот. Ну, у нас, как бы, соответственно, времени как бы мало становится, да? Ну, соответственно, давайте, мне хотелось бы, значит, хотелось пойти пойти с тем моментами, что-то ещё, да? Ну, тогда давайте закончим.
209: Функция и остальное уже там будет попроще. Значит, значит, ну, например, у нас функция сваво здесь есть вот, значит, да, в качестве, да, то есть перестановки, как мы в прошлый раз, соответственно, проделывали, только мы соответствен.
210: Здесь делаем, здесь неважно, да, что у нас будет приостановкой. То есть мы можем, соответственно, использовать, да, в качестве шаблона, да, вот этот используется в качестве, соответственно, шаблона для соответствующей, значит, нашей
211: Нашим функциям, наши, которые у нас уже там заранее, там, соответственно, мы определяли и так далее. Ну то есть мы можем использовать, да, соответствующую перестановку. Вот мы, соответственно, в качестве т, да, соответственно, возвращаем нашу перестановку, нашу, соответственно, перестановку, вот.
212: Нашу, соответственно, перестановку. Вот, например, примерчик, который связан, значит, для поиска максимального элемента в массиве максимального элемента в массиве, соответственно, вот максимального элемента в массиве. То есть мы определили тоже
213: Соответственно, функцию шаблон для того, чтобы она ищет просто соответствующий элемент, да, соответственно, с максимальным значением. Вот в данном случае функция работает таким образом, что нам нужна ссылка на вот этот максимальный элемент, говоря, вот, и мы, соответственно,
214: Этот элемент, но работаем мы с соответствующим массивом, как с соответствующим шаблоном, соответственно, шаблон. Вот, то есть вот, и а соответственно, к ней к функции как, соответственно, к ней на самом деле обращаться, как с ней, соответственно, обращаться
215: Мы можем задавать абсолютно, да, соответственно, разные типы массивов мы создаём либо массив целых чисел, либо массив. О, и мы с 1 и той же процедурой, да, с функцией, соответственно, работаем. И в результате мы можем, вот результат работы у нас как бы показывается
216: Как у нас, соответственно, работает. Вот. То есть задача здесь при работе с шаблонами, да, то есть нам надо главное определить, соответственно, тот параметр, по которому мы будем обращаться в соответствующей функцией, его правильно задать. Вот.
217: То есть при использовании шаблонов, при использовании шаблонов у нас уже нет необходимости как бы готовить заранее все варианты функций, да, с перегруженным, соответственно, именем, да, то есть вот как мы в предыдущем случае, да, готовили, там 5 или там, сколько-то 4 варианта разных, да, для того, чтобы
218: Случае там каждый раз нам надо будет одно и то же практически прописывать. Вот в связи с тем, что там либо 5 переменных, может быть, либо у нас там, да, разные типы возможны, как бы варианты, мы сразу пишем как бы 1 вариант, но просто разные типы, да, предусматриваем, если вдруг даже можем преду,
219: Смотреть уже внутри функции. Если вдруг тип данных там немножко есть, значит, соответственно, тонкости там тогда можно, соответственно, разбираться. Вот, ну и при работе с шаблонами, соответственно, компилятор автоматически будет, соответственно, анализировать вызовы функции в тексте программ.
220: Которые будут формализовать необходимые определения, значит, именно для тех типов, параметров, которые уже непосредственно, значит, используются. Вот. Ну, в общем то, все свойства шаблонов, собственно говоря, есть. Здесь я вот перечислил
221: Ну и, соответственно, и какие-то определённые как бы, правила здесь, да, соответственно, при котором, как правильно формировать, соответственно, шаблоны. Вот, соответственно, ну, стоит, как бы, обратить ещё внимание, ну,
222: Я зачитывать, да, соответственно, эту презентацию я тоже выложу, там, заложу, выложу, естественно, на, значит, для вас, чтобы у вас там была на всякий случай, вдруг полезно будет. Вот. Ну и обратите внимание, что вот у нас, например, можно использовать прототипы.
223: Шаблоны, функции, прототипы шаблонов функций, соответственно, ну как вот, например, здесь, да, вот, и какие, соответственно, варианты, которые недопустимы, да, в этом случае, как бы, соответственно, использовать, использовать, да, вот, соответственно, есть
224: Вот, то есть надо обязательно, чтобы пытаться, чтобы они были, да, соответственно, одинаково параметризированным формальными параметрами. То есть, чтобы хотя бы они были, соответственно, значит, одинаковые, вот, соответственно, одинаковые. Вот, значит, в итоге, что у нас, соответственно,
225: Получается в итоге, значит, итог у нас простой, значит, параметры и аргументы, соответственно, да, это переменные, которые указаны в объявлении функции. Это значит фактические значения. Ну, здесь, соответственно, примеры, дальше передача по значению, по умолчанию, да, соответственно, можно тоже
226: Дальше передача, соответственно, по ссылке передача, соответственно, по ссылке, передача по константной ссылке. То есть если нам тоже, соответственно, нужно, да, то есть тоже, опять же, здесь с примерчиком, да, показано дальше параметры по умолчанию. Опять же, если мы
227: Соответственно, хотим, соответственно, использовать по умолчанию. Дальше перегрузка функций тоже, соответственно, да, то, что мы сегодня как бы функции смотрели и, соответственно, передача массивов, соответственно, тоже здесь, значит, функцию, значит, сделали
228: Соответственно, сделал. То есть примерчики, соответственно, привели. Вот, значит, дальше вам понадобится ещё, значит, как работать с файлами, да, то есть вы, соответственно, будете, вам придётся в заданиях, да, на практике работать, соответственно, с файлами работат.
229: Соответственно, файлы, ну, надо понимать, что файлы есть текстовые, двоичные, да, соответственно, вот текстовый файл, значит, у нас хранятся какие-то, соответственно, значит, символьными, да, соответственно, в виде там, байтов, да, или, да.
230: Или какого-то года, соответственно, символов. Вот у нас есть конец строки, есть конец. Соответственно, да, там специальные символы Концов, строк или ещё там дополнительные есть символы, которые не только там конец строки обозначают. Есть ещё символ, конец файла, может быть, присутствовать. Вот, но это
231: Соответственно, вот на двоичный файл, это там чисто, значит, в двоичном формате все это, значит, хранится. Вот. Соответственно, для записи данных нужно, соответственно, оформлять
232: Нужно, соответственно, оформлять. У нас есть атрибуты, соответственно, ну то есть функция, которая работает с файлом, это файл и, соответственно, открыть файл. Это, соответственно, и, соответственно, есть разные ключики для работы с файлом, то есть режим чтения создания
233: Для перезаписи, да, то есть, либо мы можем и тот, и другой открыть файл, то есть в зависимости от того, что нам нужно с этим файлом, соответственно, делать. Вот, соответственно, ну, здесь больше работаем мы с текстовыми, соответственно, файлами, с текстовыми, соответственно, файлами. Запись данных.
234: File. У нас, соответственно, функция при, да соответственно, вот и есть соответственно, функция закрыть файл. Ну понятно, что если мы не закроем, соответственно, файлы не закроем соответственно, файл, то у нас файл будет не
235: Закрыт, то есть у неё не будет как бы файл вроде бы будет создан, но он не закрытый, а следовательно, до конца не сформирован. То есть он как бы не записан, да, соответственно, на там, допустим, какой-то носитель информации, соответственно, раз он не закрыт, значит он будет
236: Открываться с ошибкой, то есть он ошибочно. Вот. Далее, кроме вот этих основных функций есть ещё 2 функции. Это ремонт, то, что файл можно удалить. Соответственно, у носителя информации и ренейм это то, что можно переименовать файл. Вот, то есть
237: Мы с вами, в принципе, делаем там в проводниках, да, с помощью этого, то есть есть эти функции и, соответственно, в языке, вот, то есть, помимо, да, работы мы можем, соответственно, вот, ну, и, как правило, да, соответственно, что мы как бы можем, для чего нам это нужно делать, да, соответственно, ну, у нас есть какойнибуд.
238: Текстовый файл там или какой блок файл, который нам нужно из него там че то повыдёргивать, да, соответственно, какую-то информацию. Вот мы будем, соответственно, эту информацию заменять, эту информацию или в каком другом виде её представить, ну и так далее. Ну собственно говоря, мы тогда с этим файликом можем писать.
239: Значит, соответственно, программа, вот, значит, дальше. Ну вот, собственно говоря, есть основные, значит, функции, которые работают для чтения данных. То есть это open скан и closer, это вот последовательность.
240: Который необходимо всегда с файлами проводить, допустим, для чтения, да, соответственно, то есть мы сначала этот файл надо получить, то есть указать, где он там находится соответствующим именем, да, соответственно, потом этот файл открыть, потом мы должны считать данные с этого файла, потом его закрыть. Соответствен.
241: Чтобы с ним ничего с этим файлом 100 не случилось. Вот с этим файлом. И обратите внимание, что мы всегда чтение проводим до конечного проверки, то есть файл end of, соответственно, файл, конец, соответственно, файл. Вот. Ну и собственно говоря, это вот
242: Все программы, да, соответственно, мы делаем, определяем ссылку. Теперь с этой ф мы работаем, соответственно, мы открываем файл, который нам нужен, да, путь к этому файлу. Вот здесь, соответственно, как тип, да, с каким параметром, соответственно,
243: Дальше мы скан запускаем из указателя, который мы получили. Вот конкретно вот здесь ссылка на вот этот конкретный файл, получается, мы начинаем считывать соответствующие данные, да, соответственно, в соответствующие, значит, наши значения. Ну а дальше мы уже тут пытаемся каким-то образом
244: Опять, да, там и циклах, там, че то мы там пытаемся там считать, считать. Ну наша идея в том, что как мы только все это, обратите внимание, что мы тут какие-то данные разные все время считываем, че то там пытаемся сделать потом в дальнейшем. Вот, и мы
245: File закрываем соответственно и дальше мы открываем другой файл и опять же тоже соответственно, что-то обрабатываем сюда, что-то пытаемся даже соответственно сохранить. Вот и опять же мы соответственно
246: Закрываем его, обязательно закрываем. То есть в данном случае во 2 примере мы открываем вот этот результат для записи. Обратите внимание, да, соответственно, вот, значит, есть ещё варианты работы с файловыми, значит, с текстовыми файлами, с помощью файловых потоков, да?
247: Вот, то есть это такие как операции острим и extreme, соответственно. Вот это, в общем то, аналоги ауты и sean ц ауты и ц. И. То есть, в принципе, они в этом плане очень похожи. Ну и суть от этого, соответственно, не меняется, да, то есть мы
248: Должны сначала определить, в каком направлении мы должны работать и описывать, соответственно, описать переменную string, да, соответственно, для записи определяем, соответственно, для записи. Вот. И, соответственно, у нас
249: Здесь уже будем работать уже непосредственно, как ф. Опен, то есть файл опен, да, для потока. То есть мы создали, что эф, это поток для работы, соответственно, файлом. И вот мы уже говорим, ф опен, то есть file open непосредственно. Какой файл мы
250: Соответственно, говорим и режим, который вот здесь у нас определяется, какой режим мы хотим, соответственно, что мы должны делать с нашим, соответственно, открываемым файлом, открываемым файлом. Соответственно. Вот, ну теперь скажем мы
251: Используется по умолчанию режим, если in это для потока истрии аут для потока аустрии. Ну, собственно говоря, это как бы, соответственно, либо auth, либо запись, то есть режим чтения записи. Вот.
252: Соответственно, какие-то моменты, которые мы можем, соответственно, говорить. То есть, если мы используем оффстринг, то, соответственно, мы указываем аут, да, соответственно, вот, и 3, как бы, 3, как бы, варианта разных, мы можем, соответственно, как бы указывать, то есть, либо вообще не указывать, либо, соответственно, указат
253: Какие-то варианты, вот так. Ну и опять же, как выглядит работа с файлом при потоке, естественно здесь мы можем это гораздо проще где-то, да, сразу в поток загонять, соответственно, информацию, а не каждый
254: Там что-то обрабатывать, а уже потом, когда мы уже это все сделали из потока, уже непосредственно работать, здесь работать. Соответственно, здесь вот, ну соответственно, здесь есть такие вещи, как вот это файл, да, которые нам всегда нужен будет.
255: Что пока мы не достигнем конца файла, да, вот, например, здесь пока для чтения, например, содержимого файла мы пока не достигнем, то, соответственно, у нас не получится. Соответственно, информация. Вот, ну и, соответственно, как мы здесь вот с этой же проверкой есть
256: Как мы тут, соответственно, делаем и проверяем. Ну, либо вот мы как работаем, соответственно, с массивом, да, соответственно, вот у нас есть текстовый файл, где забиты, соответственно, массивы, а там дальше мы пытаемся, соответственно, с ним сначала, как мы его, соответственно, читаем здесь, да, как мы его, соответственно, читаем, ну и дальше.
257: Упорядочим и пытаемся там, соответственно, его сохранить. Ну и некоторые проверки для того, что если вдруг ошибка открытия файла, то там мы должны там вывести соответствующие ошибки и так далее и тому прочее дела. Вот. Ну, я думаю, что если какие-то будут в этом плане сложности,
258: Да, то всегда, в общем то, соответственно, спросите, да, соответственно, или там ещё вам, соответственно, пояснят какие-то вопросы. Вот, но так как вы с двоичными файлами на практике работать не будете, я тогда этот вопрос как бы немножко опущу.
259: Опущу. Вот. Но если будет интересно, ну, в любом случае надо на практике пользоваться, чем просто теоретически это все сложно. Ну и, соответственно, то, что вам ещё надо будет, значит, с чем вы будете ещё работать, это вот со строками, да, соответственно, то есть это тип char так называемых
260: Данных, да, соответственно, вот тип чат, да, соответственно, это работа со строками до 40 последовательных символов, там, да, соответственно, стринги тоже самое. То есть, вот, значит, как это можно, допустим, выглядит, да, как описывается примеры, да, разных вариантов.
261: Соответственно, да, как вариант примеров, как 1 строка, да, 7 символов, да, там 25 символов, да, как определить, как у нас может быть использовано некий 3 строки по 25.
262: В каждой строке вот такой как бы вариант, ну и так далее.
263: Вот, ну и как мы можем, соответственно, работать со строками, да, то есть вот, и что у нас в каждом случае, соответственно, получается в зависимости от каждой варианта, от каждого варианта, соответственно, у нас получается как бы
264: Соответственно, получается, вот, значит, ещё дальше тоже предложение. Вот. И самое главное, самое главное, что у нас есть, это разные функции, которые входят в библиотеку string аш, которую можно, соответственно, подключить, подключить.
265: Да, соответственно, обязательно стандартные библиотеки и какие функции есть, какие функции есть. Соответственно, да, в соответствующей библиотеке. И 2 библиотека, это ли тоже, которая работать может, соответственно, со строками. Тут тоже как бы варианты.
266: Есть с тем, что тут как раз, что каждая, соответственно, каждая функция, да, соответственно, делает, да, то есть то, что вам возможно, при выполнении работ понадобится вот то, что при выполнении, соответственно, работ понадобится. Вот, соответственно,
267: Ну, если там, значит, вопросы у вас есть ко мне какие-то по ходу дела.
268: Так, весь, весь вопрос. Скажи, в каком формате у экзамен мы даём задание, которое нам дали, и потом нуно будет отвечат на вопрос на, значит, задание это, да, вы выполняете задание, потому что если вы эти задания не выполните, то вы будете в любом случае эти задания выполнять на экзамене. То есть это как бы будут опять дополнительные вопрос.
269: Вот, то есть, если вы задание не выполняли, значит, ещё плюс, соответственно, вам будут заданы вопросы. А если вы там не справитесь, вы ещё опять ещё топ вопросы, ну, сами понимаете, ситуация критическая будет получаться. Вот, потому что нам нужно будет для того, чтобы понимать, оценивать вас, да, то есть мы должны вам
270: Ставить оценку, то есть в любом случае это оценка. Вот если у вас есть понимание вопросов, вы справляетесь с заданием, это 1 дело, да, и можете ответить на какие-то вопросы, то это уже другой момент. То есть мы должны благодаря этому общению с вами, да, вот будет так или иначе.
271: Да, нам надо будет с вами общаться на экзамене, да, то есть вы к экзамену, да, значит, подготавлива, у вас должно быть защищённые работы, да, то есть вы в процессе вашего семестра, вы эти работы выполняете, вы их сдаёте, у вас эти работы проверяют, делают замечания, вы там, допустим, исправляете, во
272: И фактически на экзамене у вас должны быть эти работы. Дальше мы с вами общаемся, задаём вопросы, и на основании ответов и выполненных работ у вас, соответственно, будет выставляться соответствующая оценка. А как там складываться будет? Ну понятно, от вас зависит вот вопросы, естественно, они
273: Из того, что вы делаете, да, из того, что у вас, вы выполняли вот из этого, и вопросы будут из этой области задаваться. Вот, допустим, вот там вот такой-то примерчик. Или решите вот такую задачку, да, быстренько, да, соответственно, или прокомментируйте вот это, прокомментируйте то, да.
274: Вот как у вас там, т, а что будет, если, да, там вот если мы, допустим, дадем такой вот вариант, а как вот выполнить то-то вот, или как вот быстро реализовать вот такую вот такую задачку, вот про слово автоматическая оценка, а как понимать автоматическое
275: Так.
276: Автоматическая оценка, она, мы должны как-то оценивать вас. Вот хорошо. Петров выполнил задание, Иванов выполнил задание, но Иванов все это дело взял и, соответственно, за него сделал какой-то сосед по фирме эти задания, как
277: Как я оценю его, если с ним не поговорю автоматически? Вот как я ему поставлю, что я должен ему поставить, по вашему?
278: Значит, я, значит, Петров, который все делал, сам рыл землю и так далее ему поставить должен, так же, как и тому, кто сделал соседа. Но в любом случае я должен с вами пообщаться. Так или иначе на экзамене посмотрите, до экзамена какие-то билеты будут предоставлены. Ну, если прям вот так вам надо.
279: Билеты. Я вам могу вытащить не билеты. Я могу дать список вопросов, билет, да, что-нибудь в этом Роде, да, в этом Роде список вопросов тогда давайте. Значит, если он прям вот нужен, можно будет его составить тогда. Ну, соответственно, по крайней мере, оно
280: Список вопросов тогда, да, тогда мы составим, соответственно, подготовим. Ну а сам экзамен будет в дистанционном формате или в очном. Это не ко мне вопрос what? Естественно, конечно, для меня, для нас очень важно, чтобы экзамен мы все-таки с вами лично пообщались. И, соответственно, вот
281: Значит вот конкретных вопросов по как то как-то заготовлены здесь, ну нельзя тут как бы предугадать. То есть вы че, по каждой работе, представьте, вас 200 человек, мы должны каждому студенту подготовить, соответственно, вопросы.
282: Че? Ну не серьёзно, вот будем смотреть, да, работа на зачёте. Ой, на экзамене посмотрим и сразу скажем, есть вопросы сначала по работе, а если есть вопросы не по работе, то дадим какие-то дополнительные вопросы просто оценить. Дальше, насколько вы там все это дело разби.
283: Вникаете во все вопросы, понятно. Вот, значит, дистааннт или, соответственно, значит, конечно, экзамен лучше проводить в очном режиме лучше всего. Вот. Но опять же, значит, и я
284: Конечно, мне бы, конечно, удобнее было это дочке. Вот, но я не знаю, там, как это будет решаться с руководством, насколько руководство там пойдёт вам на уступку, да, в этом плане.
285: Я, конечно, буду, конечно, настаивать, чтобы все-таки экзамен был, проходил, соответственно, в очной форме.
286: Экзамен на экзамен, а в чем вопросы?
287: Так, вопросов не вижу. Значит, тогда мне присутствующих, кто сегодня присутствовал? Да, соответственно, пожалуйста, тогда мне на
288: На почту тогда.