[{"content":"В случае, если у Вас нет под возможности воспользоваться установленным на устройстве интерпретатором Python, но у Вас есть подключение к интернету, всегда можно запустить онлайн интерпретатор.\nСуществует множество различных онлайн интепретаторов. Их можно найти с помощью любого поискового сервиса Yandex, Google и т.д.\nПрактическое задание Необходимо посчитать значение функции: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для этого:\nОткройте онлайн-интепретатор Online interpreter Полностью удалите стандартный код в main.py и введите код: def z(x: float) -\u0026gt; float: \u0026#34;\u0026#34;\u0026#34; Вычисляет значение функции z = (x^(3/4)) / (x + 6) + x^3 Параметры: x (float): Входное значение Возвращает: float: Результат вычисления функции z \u0026#34;\u0026#34;\u0026#34; return (x**(3./4)) / (x + 6) + x**3 x = float(input(\u0026#39;Введите значение переменной x: \u0026#39;)) print(f\u0026#39;Значение функции: z({x:.2f})={z(x):.2f}\u0026#39;) Запустите код с помощью кнопки Run Программа запросит пользовательский ввод данных (значение переменной x): Введите значение переменной x: Введите значение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в поле ввода\nНиже Вы должны получить текстовое сообщение: Значение функции: z(5.00)=125.30 Проверьте правильность вычисления функции \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с помощью повторных запусков и пользовательского ввода различных значений x: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ","permalink":"https://ilinyhgleb.github.io/posts/python/python_online_interpreter/","summary":"\u003cp\u003eВ случае, если у Вас нет под возможности воспользоваться установленным на устройстве интерпретатором Python, но у Вас есть подключение к интернету, всегда можно запустить онлайн интерпретатор.\u003c/p\u003e","title":"Онлайн интерпретатор Python"},{"content":"Запуск Python Запуск Python в командной строке Запустите командную строку:\nВ Windows: нажмите комбинацию клавиш Win+R\nВ появившемся окне введите название программы командной строки: cmd.exe В появившемся окне введите название программы интерпретатора Python: python и нажмите Enter В командной строке открылся Python в интерактивном режиме. В таком режиме можно пользоваться Python как калькулятором. Введите выражение 75*35 и нажмите Enter.\nЗадайте переменную x=5. Введите выражение x/7+5**3 и нажмите Enter.\nРезультат выражения \u0026gt;\u0026gt;\u0026gt;x=5 \u0026gt;\u0026gt;\u0026gt;x/7+5**3 125.71428571428571 Для более сложных расчётов необходимо импортировать дополнительную библиотеку Math. Введите import math и нажимите Enter.\nАналогичным образом задайте произвольное значение для переменной y.\nПосчитайте выражение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Для ввода функции \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e используется код math.cos(y), аналогично для \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e .\nРезультат выражения \u0026gt;\u0026gt;\u0026gt;import math \u0026gt;\u0026gt;\u0026gt;x=5 \u0026gt;\u0026gt;\u0026gt;y=7 \u0026gt;\u0026gt;\u0026gt;math.cos(y)+3*math.sin(x) -2.1228705696461105 Для выхода из Python используйте комбинацию клавиш Ctrl+z и нажмите Enter.\nЗапуск Python IDLE Запустите программу IDLE Python - простую среду для работы с Python:\nВ Windows: нажмите клавишу Win и введите в поиске IDLE, запустите найденную программу IDLE (Python). Также программу можно найти в панели программ в папке Python: Открывшееся окно представляет собой оболочку для запуска Python, аналогичную той, что была запущена в командной строке в предыдущем разделе Нажмите File → New File чтобы создать текстовый файл.\nВ проводнике Windows создайте свою папку lab_python в документах пользователя и сохраните редактируемый текстовый файл под именем task2.py в этой папке.\nДля запуска программы из текстового файла нажмите Run → Run Module или клавишу F5 в выбранном окне файла.\nНапишите программу для вычисления следующих математических функций: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Первая строка программы включает импорт функций. Выражение для импорта косинуса и натурального логарифма имеет вид: from math import cos, log. Добавьте в это выражение импорт функции синуса, квадратного корня (sqrt) и экспоненты (e) и напишите его в программе.\nВ таком случае к функции cos можно обратиться по её имени без указания имени библиотеки math.cos. Аналогично для других функций.\nДля ввода переменной x пользователем добавьте код:\nx = float(input(\u0026#34;Введите значение переменной x: \u0026#34;)) Здесь input - функция, вызывающая ввод символов из консоли, float - функция, переводящая символы в вещественное число.\nНапишите аналогичные строки кода для ввода переменных y и z.\nПосле подсчёта функции a выведите её значение в консоль командой:\nprint(f\u0026#34;Получено значение функции a={a}\u0026#34;) Запуск Python в интегрированной среде разработки Pycharm Запустите программу Pycharm:\nВ Windows: нажмите клавишу Win и введите в поиске Pycharm, запустите найденную программу Pycharm Community Edition. Также программу можно найти в панели программ в папке JetBrains Создайте новый проект: File → New Project Create При этом автоматически будет создано новое виртуальное окружение в папке venv. Создайте новый файл в дереве проекта (левая панель) с помощью ПКМ → New File\u0026hellip; с именем task3.py (ПКМ - правая клавиша мыши). Запишите в новом файле код вычисления значения функции: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e используя пользовательский ввод и вывод для переменных \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , как в предыдущем разделе. Запускайте программы комбинацией клавиш Ctrl+Shift+F10 при первом запуске и Shift+F10 при последующих. Виртуальное окружение Python В процессе разработки на языке Python требуется подключение тех или иных модулей и библиотек. При этом для разных проектов требуются не только разные библиотеки, но зачастую одна и та же библиотека, но разных версий.\nДля того, чтобы не устанавливать все библиотеки в директорию интерпретатора пользователя или операционной системы, библиотеки устанавливаются в виртуальное окружение (venv - virtual environment). Виртуальное окружение представляет собой отдельную директорию, которая, как правило, находится в корневой папке проекта. В нём же находится копия интепретатора определённой версии, который будет запускать код проекта.\nП В о р и к p m n и P о р р y a u н y е т у t t m т t к у ж e p p е h т а е s l y р o л н t o = п n 1 ь и = t 2 р н е 7 l . е в о . i 3 т е 1 1 b . а О . 1 т С 3 о р П В о р и к n s о р р u c е т у m i к у ж p p т а е y y л н 2 ь и н е о е 2 П В о р и к f о р р l е т у a к у ж s т а е k л н 3 ь и н е о е 3 Создание виртуального окружения в командной строке Как было показано ранее интегрированная среда разработки сама может создать виртуальное окружение. Однако полезно уметь работать с виртуальным окружением с помощью командной строки.\nОткройте командную строку cmd.exe\nПерейдите в папку, созданную ранее с помощью команды cd: Введите команду:\npython -m venv myvenv Ключ -m значит, что Python будет запускать модуль. В данном случае будет запущен модуль venv, который создаёт виртуальное окружение. Будет создано виртуальное окружение под названием myvenv. Папка с соответствующим названием будет создана в текущей директории. Можно это проверить зайдя в папку в Проводнике Windows или введя команду dir в консоли.\nАктивируйте созданное виртуальное окружение с помощью запуска программы activate.bat: Если окружение активировано, то слева появится его имя в круглых скобках. Значит теперь вы работаете именно в этом окружении в рамках текущей консоли (командной строки). Если вы хотите выключить виртуальное окружение, то аналогичным образом запустите программу deactivate.bat.\nОткройте консоль Python с помощью соответствующей команды python.\nПопробуйте импортировать пакет numpy:\nimport numpy as np Так как в данном окружении пакет не установлен, то появится ошибка: Закройте консоль Python с помощью Ctrl+z.\nУстановите пакет numpy в данном виртуальном окружении с помощью команды:\npip install numpy Запустится процесс установки пакета: Повторите шаги 5-6.\nЕсли вы хотите установить библиотеку определённой версии, то команда выглядит следующим образом:\npip install numpy==1.24 Информация по импорту модулей/пакетов/библиотек Импорт всегда указывается в самом начале программы Пакеты/модули/библиотеки могут быть предустановлены или их необходимо скачать перед импортом Пакеты, как и любое другое программное обеспечение имеют версию. Если указывать версию при загрузке библиотеки, то будет скачана указанная версия. Если версию не указать, то последняя версия для текущей версии интерпретатора. Скачать пакеты можно через IDE (интегрированную среду разработки) Пакеты можно создавать самостоятельно В Python пакеты необходимо устанавливать в виртуальное окружение! В Python установкой пакетов занимается программа pip, которой можно воспользоваться через командную строку Задание на самостоятельную работу Создайте три виртуальных окружения venv1, venv2, venv3, в которые установите разные библиотеки, как показано на схеме выше\n","permalink":"https://ilinyhgleb.github.io/posts/python/python_venv_import/","summary":"","title":"Запуск Python на компьютере. Настройка виртуального окружения Python. Импорт пакетов/модулей/библиотек"},{"content":"Ветвящиеся алгоритмы - алгоритмы, в которых существует несколько сценариев (ветвей) выполнения заданных операций. Тот или иной сценарий выполняется в зависимости от условного оператора (или просто условия).\nЕсли в алгоритме одно условие, то существует два сценария выполнения алгоритма. Соответственно каждое дополнительное условие будет увеличивать количество сценариев.\nРассмотрим задачи, решение которых можно реализовать только с помощью ветвящихся алгоритмов.\nЗадача с условием (математика) Необходимо создать программу, вычисляющую значение функции:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Алгоритм решения такой задачи можно представить в виде блок-схемы:\nf = 0 Н е т в Н В x ы К а в \u0026gt; в о ч о = о н а д 1 д е л ц о x f Д f а = x * * 2 - 1 Ромбовидный блок - блок условия. В зависимости от того, является ли выражение в нём правдой или ложью, алгоритм пойдёт по одной из выходящих из ромба веток. Как правило, в языках программирования (в том числе в Python) такой блок реализуется с помощью команды if (с англ. - если). Альтернативный же сценарий прописывается с помощью команды else (с англ. - иначе, в противном случае).\nСтруктура данной блок-схемы является самым стандартным примером ветвящегося алгоритма.\nСоответствующее блок-схеме решение в Python выглядит следующим образом:\n# Ввод переменных x = float(input(\u0026#34;Введите x: \u0026#34;)) # Вычисление функции if x \u0026gt;= 1: f = x**2 - 1 else: f = 0 # Вывод результатов print(f\u0026#34;f равно {f}\u0026#34;) В данном случае будет выполнена только одна операция, либо:\nf = x**2 - 1 если значение переменной x действительно больше или равно единицы. Либо:\nf = 0 если значение x меньше единицы.\nЗапустите программу и проверьте её работу на различных входных данных. Задача с условием (экономика) Вы купили акции за shares_buy_value и продали их за shares_sell_value через months месяцев после покупки. Вычислите величину налога на прибыль tax при условии, что ставка налога 13%, но при держании акций более, чем 3 года, налог не взымается.\nАлгоритм решения задачи Общий алгоритм решения текстовых задач (из экономики, физики и других сфер) заключается в следующем:\nОпределите константы Определите заданные и вычисляемые переменные (в том числе требуемый результат) Составьте алгоритм программы Решение 1. Определяем константы Константы - значения, которые не будут меняться во время выполения программы:\nTAX_RATE=13% - ставка налога YEARS=3 - количество лет, после достижения которых величина налога будет равна 0 MONTHS_PER_YEAR - количество месяцев в году. Может показаться, что это в этой постоянной нет смысла, однако если внутри кода встретить выражение YEARS*12, то сразу не будет понятно, что речь идёт о переводе в месяцы, такое выражение может также трактоваться, как 12 периодов по YEARS лет. 2. Определяем переменные Переменные - значения, которые могут изменяться во время работы программы, в том числе входные значения:\nshares_buy_value - стоимость покупки акций shares_sell_value - стоимость продажи акций months - количество месяцев удержания акций tax - величина налога в рублях. Перевод переменных и констант shares - акции value - стоимость buy - купить sell - продать months - месяцы tax - налог tax rate - ставка налога 2. Составляем алгоритм программы Алгоритм программы:\nзадать константы MONTHS_PER_YEAR = 12, YEARS = 3, TAX_RATE = 0.13 получить из консоли значения переменных: shares_buy_value, shares_sell_value, months сравнить months \u0026gt; MONTHS_PER_YEAR * YEARS если Правда, то tax = 0 если Ложь, то tax = TAX_RATE * (shares_sell_value - shares_buy_value) если tax \u0026lt; 0, то tax = 0 т.к. отрицательного налога на прибыль не может быть, это соответствует случаю убытков, а не прибыли. вывести в консоль tax Код программы MONTHS_PER_YEAR = 12 YEARS = 3 TAX_RATE = 0.13 shares_buy_value = float(input(\u0026#34;Введите цену покупки акции: \u0026#34;)) shares_sell_value = float(input(\u0026#34;Введите цену продажи акции: \u0026#34;)) months = int(input(\u0026#34;Введите количество месяцев: \u0026#34;)) if months \u0026gt; YEARS * MONTHS_PER_YEAR: tax = 0 else: tax = TAX_RATE * (shares_sell_value - shares_buy_value) if tax \u0026lt; 0: tax = 0 print(f\u0026#34;налог на прибыль: {tax}\u0026#34;) Запустите программу и проверьте её работу на различных входных данных. Модифицируйте программу для того, чтобы пользователь вводил цену одной акции количество акций Задача с множественным условием (математика) Необходимо создать программу, вычисляющую значение функции:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Алгоритм решения такой задачи можно представить в виде блок-схемы:\nz = e Н е т в ы x в \u0026lt; о 1 д Н е z т Д Н В а z К а в x = о ч о \u0026lt; e н а д 0 ^ е л x ц о x z Д = а s i n ( x ) Обратите внимание, что в исходном выражении три условия: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e однако в блок-схеме только два условия: x\u0026lt;0, x\u0026lt;1. Математически блок-схема полностью соответсвует заданным условиям. Однако алгоритм, в отличие от математической записи, подразумевает строгую последовательность действий. Поэтому после проверки первого условия x\u0026lt;0, если условие не выполнилось, то противоположное условие x\u0026gt;=0 выполняется автоматически, в таком случае проверка x\u0026lt;1 соответствует выражению \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Если же и это условие оказывается ложным, то условие \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e выполняется автоматически, т.к. все три условия полностью покрывают область определения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ( \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ), в таком случае его проверять не нужно (чему соответсвует команда else)\nСоответствующее блок-схеме решение в Python выглядит следующим образом:\n# Ввод переменных x = float(input(\u0026#34;Введите x: \u0026#34;)) # Вычисление функции if x \u0026lt; 0: z = sin(x) elif x \u0026lt; 1: z = math.exp(x) else: z = math.e # Вывод результатов print(f\u0026#34;z равно {z}\u0026#34;) Задачи для самостоятельного решения Зачада №1 Напишите программу, которая определяет, является ли заданное пользователем число чётным.\nЗадача №2 Напишите программу, которая определяет значение функции: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задача №3 Написать функцию is_point_in_figure(x, y), которая даёт ответ, попала ли в фигуру точка по введённым координатам.\nАлгоритм попадания точки в область заключается в следующем:\nразложите фигуру на линии, на составляющие их контур (прямые или дуги окружности) составьте уравнение для каждой линии сравните координаты точки \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с проекциями этой точки на каждую линию из контура. Если точка лежит внутри области, значит она лежит выше всех нижних линий, ниже - верхних, правее левых, левее правых. Если фигура невыпуклая, то её надо разбить на выпуклые фигуры (добавить ещё уравнение линии, разделяющей фигуры) ","permalink":"https://ilinyhgleb.github.io/posts/python/python_branching_algorithms/","summary":"","title":"Ветвящиеся алгоритмы"},{"content":"Предисловие Цикл - это специальное выражение в тексте программы, которое позволяет выполнять часть кода несколько раз.\nЦиклы очень полезны в программировании, поскольку они позволяют не прописывать вручную одну и ту же операцию несколько раз.\nДопустим нам надо вывести на экран числа от 0 до 14. Как бы это выглядело без цикла:\nprint(0) print(1) print(2) print(3) print(4) print(5) print(6) print(7) print(8) print(9) print(10) print(11) print(12) print(13) print(14) однако с циклом код будет выглядеть следующим образом:\nfor i in range(0,15): print(i) В этом случае команда\nprint(i) выполнится \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e раз подряд для значений \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e включительно.\nКоманда в данном случае является телом цикла. В общем случае тело цикла может содержать множество команд, условий и других циклов (в таком случае называемых вложенными циклами).\nКаждый запуск команды называется шагом цикла. То есть шаг цикла - очередной запуск команд тела цикла.\nРассмотрим различные типы циклов.\nЦикл с предусловием (while) Цикл с предусловием заключается в том, что перед выполнением повторяющихся команд (тело цикла) проверяется условие. В случае, если оно выполняется, то тело цикла выполняется. Если условие не выполняется, то начинает выполняться следующий за циклом код.\nОбщая схема цикла с предусловием (while) Н е т у с л о в и е Д д а е й с т в и е В данной схеме тело цикла (блок действие) будет выполняться до тех пор, пока выполняется условие. Вместо одного блока действия может быть целое множество различных блоков.\nЗадача с предусловием (while) Рассмотрим задачу с предусловием.\nЗадача: Спортсмен-лыжник начал тренировки пробежав в первый день distance км. Каждый следующий день он увеличивал длину пробега на 50 процентов от пробега предыдущего дня. Какого значения достигнет дневной пробег лыжника (distance) в день, когда его суммарный пробег total_distance за все дни превысит целевой суммарный пробег goal_distance, км?\nОпределим константы\nDAILY_INCREASE=1.5 Определим переменные\ndistance=20 goal_distance=200 total_distance=0 В виду того, что условие, заданное в задаче, total_distance \u0026lt; goal_distance может выполнится сразу же в первый день, для решения подходит цикл с предусловием. То есть тело цикла гипотетически может не выполниться ни разу.\nДо программирования задачи можно построить алгоритм решения задачи в виде таблицы.\nТаблица значений:\ndistance total_distance 20.0 20.0 30.0 50.0 45.0 95.0 67.5 162.5 101.25 263.75 Напишем код решения такой задачи с помощью цикла с предусловием:\nКод решения: DAILY_INCREASE = 1.5 distance = 20 goal_distance = 200 total_distance = distance while total_distance \u0026lt; goal_distance: print(\u0026#34;{0:.1f} \\t {1:.1f}\u0026#34;.format(distance, total_distance)) distance *= DAILY_INCREASE total_distance += distance print(f\u0026#34;Дневной пробег равен {distance}\u0026#34;) print(f\u0026#34;Общий пробег равен {total_distance}\u0026#34;) Результат выполнения программы:\n20.0 20.0 30.0 50.0 45.0 95.0 67.5 162.5 Дневной пробег равен 101.25 Общий пробег равен 263.75 Запустите программу с другими входными условиями.\nЦикл с счётчиком (for) Цикл с счётчиком является частным случаем цикла с предусловием.\nОтличительными чертами такого цикла являются:\nзадаётся счётчик - переменная, которая изменяется от шага к шагу цикла по заранее известному закону. Указывается начальное значение счётчика, конечное значение и инкремент (или декремент) - величина, на которую счётчик увеличивается (или уменьшается) на каждом шаге цикла. перед выполнением цикла известно сколько раз цикл будет запущен (если нет дополнительных условий выхода из цикла). В данном случае предусловием является достижением заранее заданной величины.\nОбщая схема цикла с счётчиком Н е т i i = \u0026lt; 0 N Д д а е i й = с i т + в 1 и е Вместо одного блока действия может быть целое множество различных блоков.\nТакже блок-схема с счётчиком может иметь вид:\ni = д 1 е й д с о т в n Д и а е Н е т Такая схема полностью идентична предыдущей схеме.\nПростой пример цикла:\nfor a in range(6): print(a) Результат работы цикла:\n0 1 2 3 4 5 Задача с счётчиком (for) Задача: Посчитать сумму первых n членов ряда: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e где: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Переменные:\nn = 10 summa = 0 Ввиду того, что заранее известно, сколько будет шагов цикла, то удобно использовать цикл с счётчиком для данной задачи.\nДо программирования задачи можно построить алгоритм решения задачи в виде таблицы.\nТаблица значений:\ni значение a_i summa 1 1.00 1.00 2 -0.50 0.50 3 0.33 0.83 4 -0.25 0.58 5 0.20 0.78 6 -0.17 0.62 7 0.14 0.76 8 -0.13 0.63 9 0.11 0.75 10 -0.10 0.65 Код решения: import math n = 10 summa = 0.0 for i in range(1, n + 1): ai = (-1)**(i + 1)/i summa += ai print(f\u0026#34;Сумма ряда равна {summa}\u0026#34;) Цикл с постусловием (until) Цикл с постусловием аналогичен циклу с предусловием, но условие проверяется после тела цикла. В таком случае тело цикла выполнится, как минимум, один раз. Другим отличием является то, что в данном случае проверяется не условие продолжения цикла, а условие его прекращения.\nЗадача с постусловием Задача: Реализовать ввод пользователем положительного числа с помощью проверки на положительность.\nРешение такой задачи на языке Pascal выглядит следующим образом: Решение на Pascal:\nprogram z; var x:integer; begin repeat write(\u0026#39;Введите положительное число: \u0026#39;); readln(x); until x\u0026gt;0; ... end. В данном случае условие until (от англ. - до тех пор, пока) - является частью языка, поэтому цикл реализуется естественным образом. В отличие от Pascal в Python цикла repeat-until нет. Но его можно реализовать с помощью дополнительного оператора break, который прерывает цикл в том месте, где он вызван.\nТаким образом решение с помощью цикла с постусловием на Python выглядит следующим образом:\nwhile True: x = int(input(\u0026#34;Введите положительное число: \u0026#34;)) if x \u0026gt; 0: break ... Можно заметить, что тут используется цикл while, однако условием цикла является значение True, которое никогда не изменяется и всегда выполняется. Таким образом реализуется бесконечный цикл. Для выхода из цикла используется оператор break, который вызывается при выполнении условия if.\nОператоры управления циклом Операторы break и continue break - выход из цикла\nПример: ввод числа в диапазоне [0, 1]\nwhile True: x = float(input(\u0026#34;Введите число от 0 до 1: \u0026#34;)) if x \u0026gt;= 0 and x \u0026lt;= 1: break continue - переход к следующей итерации\nПример: бесконечный калькулятор квадратного корня\nwhile True: x = int(input(\u0026#34;Введите число: \u0026#34;)) if x \u0026lt; 0: continue print(math.sqrt(x)) Реализуйте примеры с различными входными данными и проверьте корректность их выполнения.\nОператор else в циклах Задача: Посчитать сумму первых \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e членов сходящегося ряда до точности \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e : \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e При достижении точности \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e указать результат и заданную точность.\nРешение:\nEPS = 1e-3 n = 1000 i = 1 summa = 0 while i \u0026lt; n: a_i = (-1)**(i + 1) / i summa += a_i if abs(a_i) \u0026lt; EPS: print(f\u0026#34;На {i}-м шаге получена сумма {summa} точностью {EPS}\u0026#34;) break i += 1 else: print(f\u0026#34;По окончанию цикла был получен результат {summa}\u0026#34;) В данном случае есть два условия окончания цикла:\nдостижения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -ого члена ряда, достижение указанной точности. Если указанная точность была достигнута:\nif abs(a_i) \u0026lt; EPS: то произойдёт вывод сообщения с указанием точности и выход из цикла:\nprint(f\u0026#34;На {i}-м шаге получена сумма {summa} точностью {EPS}\u0026#34;) Если же это условие не выполнится, то цикл просто закончится, когда счётчик достигнет последнего значения, то есть условие\nwhile i \u0026lt; n: перестанет выполняться. В таком случае нужно вывести сообщение без указания точности, для этого используется оператор else:\nelse: print(f\u0026#34;По окончанию цикла был получен результат {summa}\u0026#34;) Стоит отметить, что если проверки, в рамках которой условие не выполнилось, не произошло, например при срабатывании break, то else выполняться не будет, т.к. это часть цикла, а break полностью завершает цикл.\nРеализуйте пример с различными входными данными и проверьте корректность выполнения.\nЦикл с перебором массива (for each) Цикл for each, как следует из названия, перебирает объекты в наборе и для каждого объекта выполняется команды из тела цикла.\nКлассический вариант перебора значений заключается в том, что происходит обращение к каждому значению набора по его номеру. То есть используется цикл for.\nЦикл for each является частным случаем цикла for и заключается в том, что счётчик работает в неявном виде и скрыт от разработчика. Разработчик же имеет доступ только к определённому объекту из набора на соответствующем шаге цикла.\nЗадача с перебором массива Задача: По массиву долгов студентов посчитать количество студентов на отчисление, у которых 3 и более долгов.\nРешение на Java (классический for):\nimport static java.lang.System.out; public class Doljniki { public static void main(String[] args) { int[] debts = {5, 0, 1, 0, 9, 0, 0, 3, 0, 0, 0, 0, 1}; int studentsToExplusion = 0; for (int i = 0; i \u0026lt; debts.length; i++) { if (debts[i] \u0026gt;= 3) { studentsToExplusion++; } } out.printf(\u0026#34;На отчисление \u0026#34; + studentsToExplusion + \u0026#34; студентов\u0026#34;) } } Решение на Java (for each):\nimport static java.lang.System.out; public class Doljniki { public static void main(String[] args) { int[] debts = {5, 0, 1, 0, 9, 0, 0, 3, 0, 0, 0, 0, 1}; int studentsToExplusion = 0; for (int debt : debts) { if (debt \u0026gt;= 3) { studentsToExplusion++; } } out.printf(\u0026#34;На отчисление \u0026#34; + studentsToExplusion + \u0026#34; студентов\u0026#34;) } } Решение на Python:\ndebts = [5, 0, 1, 0, 9, 0, 0, 3, 0, 0, 0, 0, 1] students_to_explusion = 0 for debt in debts: if debt \u0026gt;= 3: students_to_explusion += 1 print(f\u0026#34;На отчисление {students_to_explusion} студентов\u0026#34;) Реализуйте пример с различными входными данными и проверьте корректность выполнения.\nЗадачи для самостоятельного решения Зачада №1 Посчитать выражение: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Зачада №2 Дано разложение функции через ряд Маклорена: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Реализовать итерационную процедуру нахождения функции с заданной погрешностью \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , условие остановки итерационной процедуры \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задача №3 Дана формула корня \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -й степени: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для определения корня \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -й степени используется итерационная процедура на основе формулы Ньютона\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e При этом начальное значение (первое приближение) равно \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с условием: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Написать функцию определения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -го корня \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -й степени koren(y, x, p).\nНапишите функцию koren, в которой определяется и возвращается только одно значение корня на основе введенного текущего значения корня и степени.\nНачальное значение в функции koren не задаётся.\nНаписать программу, вычисляющую корень \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e -ой степени введённого пользователем числа, в качестве остановки итерационной процедуры использовать условие: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e где \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - заданная точность вычисления\n","permalink":"https://ilinyhgleb.github.io/posts/python/python_loop_algorithm/","summary":"","title":"Циклические алгоритмы"},{"content":"1. Что такое функция? Функция - это именованный блок кода, который выполняет определенную задачу и может быть вызван из других частей программы.\nОсновные характеристики:\nВыполняется только при вызове по имени функции Может принимать входные аргументы Может возвращать результат Улучшает читаемость и структуру кода программы Пример стандартной функции из пакета math Использование функции косинуса:\n\u0026gt;\u0026gt;\u0026gt;from math import cos \u0026gt;\u0026gt;\u0026gt;cos(0) 1.0 \u0026gt;\u0026gt;\u0026gt;cos(3.14159265) -1.0 \u0026gt;\u0026gt;\u0026gt;cos(0.5) 0.8775825618903728 Пример простой функции, созданной пользователем: Создание функции:\ndef sum(x, y): return x + y Использование функции:\n\u0026gt;\u0026gt;\u0026gt;sum(1,4) 5 \u0026gt;\u0026gt;\u0026gt;sum(4,5) 9 \u0026gt;\u0026gt;\u0026gt;sum(9,12.4) 21.4 2. Создание функции Код функции включает в себя:\nСигнатуру Описание (документацию) функции Тело функции Возвращаемое значение Сигнатура В сигнатуре по порядку записываются:\nКлючевое слово def\nИмя функции Правила именования функции Функции в Python называются в стиле snake_case. То есть все слова пишутся маленькими буквами и разделяются между собой нижним подчёркиванием (_)\nВ круглых скобках входные аргументы функции\nДвоеточие\nАргументы Аргументы, или входные значения, являются значениями, которые влияют на работу функции и на её результат. Разные входные значения\n\u0026gt;\u0026gt;\u0026gt;import math \u0026gt;\u0026gt;\u0026gt;math.asin(0) 0 \u0026gt;\u0026gt;\u0026gt;math.asin(1) 1.5707963267948966 Если аругментов больше, чем один, то они разделяются запятыми. Важно, что при вызове функции должны быть указаны все её аргументы. Например для если функция вычисляет выражение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и имеет код:\ndef g(x, a): return x**a то при вызове обязательно нужно указать все аргументы:\n\u0026gt;\u0026gt;\u0026gt;print(g(5, 2)) 25 Если аргументов нет, то указываются пустые скобки ()\nЗначения аргументов по-умолчанию Однако, если параметр имеет значение по-умолчанию (например, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ), то в таком случае его можно не указывать, для этого аргумент объявляется следующим образом:\ndef g(x, a=2): return x**a В таком случае функция будет работать следующим образом:\n\u0026gt;\u0026gt;\u0026gt;g(5) 25 \u0026gt;\u0026gt;\u0026gt;g(5, 2) 25 \u0026gt;\u0026gt;\u0026gt;g(5, 3) 125 Аргументы, имеющие значения по-умолчанию, указываются после всех обязательных аргументов.\nПроизвольное число аргументов В случае, если заранее неизвестно, сколько будет аргументов, то используется выражение *args, которое является кортежем входных параметров\ndef sum(*args): \u0026#34;\u0026#34;\u0026#34;Вычисляет сумму входных аргументов\u0026#34;\u0026#34;\u0026#34; result = 0 for arg in args: result = result + arg return result Результат вызова функции:\n\u0026gt;\u0026gt;\u0026gt;sum(5, 3, 4) 12 \u0026gt;\u0026gt;\u0026gt;sum(2, 2) 4 \u0026gt;\u0026gt;\u0026gt;sum() 0 В случае, если в рамках функции удобно использовать не кортеж аргументов, а словарь:\ndef print_kwargs(**kwargs): # kwargs - словарь print(kwargs) Указание типов в сигнатуре Python является языком с динамической типизацией.\nОднако в сигнатуре для удобства пользования функцией можно указать тип в явном виде:\nФункция без указания типов данных def p(s, n): \u0026#34;\u0026#34;\u0026#34;Функция определяет, является ли число n длиной строки s. Функция возвращает True или False\u0026#34;\u0026#34;\u0026#34; return len(s)==n Функция с явным указанием типов данных def p(s: str, n: int) -\u0026gt; bool: \u0026#34;\u0026#34;\u0026#34;Функция определяет, является ли число n длиной строки s. Функция возвращает True или False\u0026#34;\u0026#34;\u0026#34; return len(s)==n Результат работы функции:\n\u0026gt;\u0026gt;\u0026gt; p(\u0026#39;text\u0026#39;,4) True \u0026gt;\u0026gt;\u0026gt; p(\u0026#39;text\u0026#39;,3) False Документирование функции Описание или документация функции указывается следующей сторокой после сигнатуры и включает в себя описание функции. Описание функции очень важно, т.к. позволяет создателю функции, другим разработчикам и пользователям быстро разобраться, что делает функция и как она работает.\nПример краткого (однострочного) описания функции: def multiply(a: float, b: float) -\u0026gt; float: \u0026#34;\u0026#34;\u0026#34;Возвращает произведение двух чисел.\u0026#34;\u0026#34;\u0026#34; return a * b Примеры подробного (многострочного) описания функции: def multiply(a: float, b: float) -\u0026gt; float: \u0026#34;\u0026#34;\u0026#34;Вычисляет произведение двух чисел. Args: a (float): Первый множитель. Может быть целым или дробным числом. b (float): Второй множитель. Может быть целым или дробным числом. Returns: float: Результат умножения a на b. Всегда возвращает float, даже для целочисленных аргументов. Examples: \u0026gt;\u0026gt;\u0026gt; multiply(2, 3) 6.0 \u0026gt;\u0026gt;\u0026gt; multiply(1.5, 4) 6.0 \u0026#34;\u0026#34;\u0026#34; return a * b def vector_to_str(vector): \u0026#39;\u0026#39;\u0026#39; Преобразует вектор в строку для вывода :param vector: исходный вектор (list) :return: строка представления вектора (str) \u0026#39;\u0026#39;\u0026#39; return \u0026#39;[\u0026#39; + \u0026#39;, \u0026#39;.join(f\u0026#39;{item:.2f}\u0026#39; for item in vector) + \u0026#39;]\u0026#39; Известные стандарты документирования функций:\nPEP 257 – Docstring Conventions Numpy Docstring Standard Google Python Style Guide: Docstrings Тело функции Тело функции включает в себя основной код, необходимый для реализации задачи, для которой написана функция.\nТело функции начинается со следующей строки после сигнатуры или документации функции (если она есть) и заканчивается ключевым словом return.\nЕсли функция состоит только из выражения после return, то тело функции считается пустым.\nВозвращаемое значение Если функция должна вернуть значение после выполнения, то для этого используется ключевое слово return, после которого указывается постоянное значение, переменная или выражение.\nПример функции с возвращаемым значением import os def get_file_status(filename): \u0026#34;\u0026#34;\u0026#34;Функция возвращает статус файла в текущей директории\u0026#34;\u0026#34;\u0026#34; return os.path.isfile(filename) print(get_file_status(\u0026#39;test_file1.txt\u0026#39;)) print(get_file_status(\u0026#39;test_file2.txt\u0026#39;)) Результат работы функции:\nTrue False Пример функции без возвращаемого значения import os def print_file_status(filename): \u0026#34;\u0026#34;\u0026#34;Функция выводит в консоль статус файла в текущей директории\u0026#34;\u0026#34;\u0026#34; if os.path.isfile(filename): print(f\u0026#34;\\033[92m[✓]\\033[0m Файл \u0026#39;{filename}\u0026#39; найден\u0026#34;) else: print(f\u0026#34;\\033[91m[×]\\033[0m Файл \u0026#39;{filename}\u0026#39; отсутствует\u0026#34;) print_file_status(\u0026#39;test_file1.txt\u0026#39;) print_file_status(\u0026#39;test_file2.txt\u0026#39;) Результат работы функции:\n[✓] Файл \u0026#39;test_file1.txt\u0026#39; найден [×] Файл \u0026#39;test_file2.txt\u0026#39; отсутствует Пример функции, возращающей несколько значений В случае, если необходимо вернуть несколько значений, то они указываются через запятую, и в таком случае функция вернёт кортеж значений.\ndef calculate_stats(numbers): \u0026#34;\u0026#34;\u0026#34;Возвращает минимум, максимум и среднее из списка чисел\u0026#34;\u0026#34;\u0026#34; minimum = min(numbers) maximum = max(numbers) average = sum(numbers) / len(numbers) return minimum, maximum, average # Фактически возвращается кортеж (min, max, avg) # Использование nums = [4, 2, 9, 5] min_val, max_val, avg_val = calculate_stats(nums) print(f\u0026#34;Min: {min_val}, Max: {max_val}, Avg: {avg_val}\u0026#34;) Также можно вернуть другие структуры данных, которые будут в себе хранить множество значений.\n2. Зачем нужны функции? Рассмотрим задачу\nЗадача Вычислить выражение: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Решение без функции: fact1 = 1 for i in range(1, 3): fact1 *= i fact2 = 1 for i in range(1, 5): fact2 *= i fact3 = 1 for i in range(1, 7): fact3 *= i y = x**2/fact1 + x**4/fact2 + x**6/fact3 Как можно видеть, часть схожего кода повторяется несколько раз. В таком случае этот код можно поместить в отдельную функцию.\nРешение с функцией: def factorial(n): result = 1 for i in range(1, n + 1): result *= i return result y = x**2/factorial(2) + x**4/factorial(4) + x**6/factorial(6) 3. Типы функций 3.1. По области видимости Глобальные функции:\nДоступны из любой части кода Определяются на уровне модуля (файла с расширением .py) Локальные функции:\nОпределяются внутри других функций Видимы только внутри родительской функции Пример:\ndef task1(): # Глобальная x = float(input(\u0026#34;Введите x: \u0026#34;)) def f(x): # Локальная return x**5/factorial(5) print(f\u0026#34;f(x) = {f(x):.2f}\u0026#34;) task1() print(f\u0026#34;3! = {factorial(3)}\u0026#34;) # Глобальная функция доступна 3.2. Лямбда-функции Анонимные функции или лямбда-функции, определяемые через ключевое слово lambda, позволяют создавать функции в любой части кода.\nПример обычной функции def get_length(x): \u0026#34;\u0026#34;\u0026#34;Функция возвращает длины передаваемого объекта\u0026#34;\u0026#34;\u0026#34; return len(x) print(get_length([2, 2, 2])) Результат работы функции:\n3 Пример аналогичной анонимной функции function = lambda x: len(x) print(function([2, 2, 2])) Результат работы функции аналогичен использованию обычной функции:\n3 В данном примере функции была присвоена ссылка (имя) function. Однако при создании анонимной функции необязательно ей присваивать имя.\nПример создания и использования анонимной функции без указания имени result = (lambda x, y: x**y)(2, 3) print(result) Результат работы функции:\n8 Обратите внимание, что result - это не ссылка на функцию, а результат её работы - полученное значение.\nТак как в Python всё является объектами, лямбда-функции - тоже объекты. Следовательно функции можно создавать в цикле, и ссылки на них помещать в структуры данных.\nПример создания и использования множественных анонимных функций x = 2 # создание списка функций: x, x^2, x^3, ... functions = [] for power in range(1, 5): functions.append(lambda x, p=power: x**p) # использования созданных функций for function in functions: print(function(x)) Результат работы кода:\n2 4 8 16 3.3. Методы Методы - функции, привязанные к объектам определённого класса или к самому классу:\nimport math math.cos() # Метод класса math, определяет косинус угла my_list = [] my_list.append(2) # Метод объекта списка, добавляет элементы списка 4. Продвинутые возможности 4.1. Функции как аргументы Функции можно передавать как аргументы другим функциям.\nВ примере функция func_plot строит график любой переданной математической функции одного аргумента на указаном интервале:\nimport math import matplotlib.pyplot as plt def func_plot(f, start, end): \u0026#34;\u0026#34;\u0026#34;Визуализирует график функции f на интервале [start, end]\u0026#34;\u0026#34;\u0026#34; POINTS_NUMBER = 10 step = (end - start)/(POINTS_NUMBER - 1) x = [start + step*i for i in range(POINTS_NUMBER)] y = [f(xi) for xi in x] plt.plot(x, y) plt.grid() plt.show() # Использование func_plot(math.cos, -3, 3) func_plot(lambda x: x**3 + 5, -2, 5) 4.2. Рекурсия Рекурсивная функция - это функция, вызывающая саму себя.\nСценарий без вызова самой функции называется базовым случаем (if n == 0: return 1 в примере ниже)\nПример рекурсии Так как факториал по определению является числом, умноженным на факториал меньшего на единицу числа, удобно для его расчёта использовать рекурсию:\ndef factorial(n): if n == 0: # Базовый случай return 1 else: return n * factorial(n - 1) Процесс работы рекурсии: Плюсы рекурсии: Упрощает решение сложных задач, касающихся структур данных и сложных алгоритмов (сортировки, обходы дверовидных структур) Делает код короче, чище и понятнее Минусы рекурсии: Задействует больше вычислительных ресурсов (оперативной памяти и процессора) 5. Задачи для самостоятельного решения Зачада №1 Напишите функции, реализующие стандартные арифметические операции с числами: сложение, вычитание, умножение, деление, возведение в степень.\nЗадача №2 Напишите функцию, которая возвращает объект функции полинома произвольной степени. В качестве входных аргументов функция принимает значения коэффициентов полинома от нулевой степени до наибольшей\nПосчитайте с помощью функции значения следующих полиномов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ","permalink":"https://ilinyhgleb.github.io/posts/python/python_functions/","summary":"","title":"Функции в Python"},{"content":"Перед рассмотрением структур данных рассмотрим следующие понятия.\nИзменяемость объектов Изменяемость объекта (любого объекта, не только структуры данных) определяет, можно ли изменить значение объекта в той же ячейке памяти, где оно хранится:\nизменяемые (mutable) объекты допускают изменение значения объекта.\nизменяемые структуры допускают модификацию их элементов (добавление, удаление, изменение элементов).\nПримеры: списки (list), словари (dict), множества (set)\nнеизменяемые (immutable) структуры нельзя изменить после создания.\nПри \u0026ldquo;изменении\u0026rdquo; такой структуры создаётся новый объект и на него даётся та же ссылка, что на предыдущий. Предыдущий объект при этом удаляется.\nПримеры: кортежи (tuple), строки (str), числа (int, float)\nКласс объекта Описание Изменяемый? bool True/False - int целые числа - float вещественные числа - list списки + tuple кортежи - str строки - set множества + frozenset неизменяемые множества - dict словари + Ссылки на объекты Особенностью языка Python является то, что все данные в нём является объектами (их тип - object). В том числе объекты, которые обычно называют переменными (например, x=2.4, is_valid=True, some_string='test). Однако такой объект, в отличие от классической переменной, является неизменяемым.\nРассмотрим вариант \u0026ldquo;изменения\u0026rdquo; значения \u0026ldquo;переменной\u0026rdquo;:\n\u0026gt;\u0026gt;\u0026gt;x=5 \u0026gt;\u0026gt;\u0026gt;id(x) 139968856327592 \u0026gt;\u0026gt;\u0026gt;x=x+1 \u0026gt;\u0026gt;\u0026gt;x 6 \u0026gt;\u0026gt;\u0026gt;id(x) 139968856327624 Функция id() показывает адрес памяти, где хранится объект.\nКак видно, после выполнения операции x=x+1 ссылка x ведёт на другой адрес. Таким образом, то, что принято называть переменной, в Python является ссылкой на объект или именем переменной.\nУпорядоченность Упорядоченность структуры данных определяет, существует ли чёткий порядок элементов в структуре данных\nупорядоченные структуры имеют фиксированный порядок, например, список [2, 4, 6] всегда сохраняет эту последовательность, т.е. на нулевой позиции всегда будет 2, на первой - 4, на второй - 6. И к этим элементам можно обратиться по номеру позиции.\nПримеры: списки (list), кортежи (tuple), строки (str)\nнеупорядоченные структуры содержат элементы, порядок которых явным образом не определён.\nнапример множество {1, 2, 3} в множестве может выводиться как {2, 1, 3}.\nПримеры: множества (set), словари (dict)\nСписки Список (list) - упорядоченная изменяемая коллекция объектов произвольных типов.\nОбъектами списка могут быть целые числа, вещественные числа, строки, списки (и другие структуры данных) и другие объекты.\nЗадача со списком (математика) Рассмотрим задачу\nЗадача: Построить график функции \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e для интервала \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e .\nИспользуемые инструменты:\nПакет Matplotlib Объекты - списки import matplotlib.pyplot as plt x = [0, 1, 2, 3, 4, 5] y = [0, 1, 4, 9, 16, 25] plt.plot(x, y) # нарисовать график plt.grid() # включить сетку plt.show() # показать рисунок Результат работы программы: Способы создания списка Создание пустого списка \u0026gt;\u0026gt;\u0026gt;lst = [] \u0026gt;\u0026gt;\u0026gt;lst [] Другой вариант:\n\u0026gt;\u0026gt;\u0026gt;lst = list() \u0026gt;\u0026gt;\u0026gt;lst [] Создание списка с элементами \u0026gt;\u0026gt;\u0026gt;lst = [1, 2, 3, \u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, True] # Может содержать разные типы \u0026gt;\u0026gt;\u0026gt;lst [1, 2, 3, \u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, True] Создание списка с помощью конструктора list() \u0026gt;\u0026gt;\u0026gt;list(\u0026#39;hello\u0026#39;) [\u0026#39;h\u0026#39;, \u0026#39;e\u0026#39;, \u0026#39;l\u0026#39;, \u0026#39;l\u0026#39;, \u0026#39;o\u0026#39;] \u0026gt;\u0026gt;\u0026gt;list(range(5)) [0, 1, 2, 3, 4] \u0026gt;\u0026gt;\u0026gt;list((1, 2, 3)) # Конвертация кортежа [1, 2, 3] list() может конвертировать любую итерируемую коллекцию\nСоздание списка с помощью генератора списков (list comprehension) \u0026gt;\u0026gt;\u0026gt;[x for x in range(10)] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] \u0026gt;\u0026gt;\u0026gt;[x**2 for x in range(5)] [0, 1, 4, 9, 16] \u0026gt;\u0026gt;\u0026gt;[c.upper() for c in \u0026#39;hello\u0026#39;] [\u0026#39;H\u0026#39;, \u0026#39;E\u0026#39;, \u0026#39;L\u0026#39;, \u0026#39;L\u0026#39;, \u0026#39;O\u0026#39;] \u0026gt;\u0026gt;\u0026gt;x = [0, 1, 2, 3, 4, 5] \u0026gt;\u0026gt;\u0026gt;y = [a**2 for a in x] # одновременное создание и заполнение \u0026gt;\u0026gt;\u0026gt;y [0, 1, 4, 9, 16, 25] \u0026gt;\u0026gt;\u0026gt;z = [a**2 for a in x if a \u0026gt; 2] \u0026gt;\u0026gt;\u0026gt;z [9, 16, 25] Генераторы списков - самый мощный и Python-образный способ создавать списки\nСоздание списка с помощью split() (из строки) lst = \u0026#34;apple banana cherry\u0026#34;.split() # [\u0026#39;apple\u0026#39;, \u0026#39;banana\u0026#39;, \u0026#39;cherry\u0026#39;] lst = \u0026#34;1,2,3,4\u0026#34;.split(\u0026#39;,\u0026#39;) # [\u0026#39;1\u0026#39;, \u0026#39;2\u0026#39;, \u0026#39;3\u0026#39;, \u0026#39;4\u0026#39;] Сложение списков lst = [1, 2] + [3, 4] # [1, 2, 3, 4] Копирование списка original = [1, 2, 3] lst = original.copy() # [1, 2, 3] lst = list(original) # Альтернативный вариант lst = original[:] # Срез от начала до конца Создание списка с помощью оператора * lst = [0] * 5 # [0, 0, 0, 0, 0] lst = [\u0026#39;hello\u0026#39;] * 3 # [\u0026#39;hello\u0026#39;, \u0026#39;hello\u0026#39;, \u0026#39;hello\u0026#39;] * оператор удобен для создания однородных списков\nВложенные списки matrix = [[1, 2], [3, 4], [5, 6]] Создание списка с помощью функции map() lst = list(map(str, range(3))) # [\u0026#39;0\u0026#39;, \u0026#39;1\u0026#39;, \u0026#39;2\u0026#39;] Создание списка с помощью функции фильтрации filter() lst = list(filter(lambda x: x \u0026gt; 0, [-2, -1, 0, 1, 2])) # [1, 2] Создание списка с помощью других коллекций lst = list({\u0026#39;a\u0026#39;: 1, \u0026#39;b\u0026#39;: 2}) # [\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;] (ключи словаря) lst = list({1, 2, 3}) # [1, 2, 3] (из множества) Для копирования лучше использовать методы .copy() или list()\nМетоды списка Методы с объектом списка:\nМетод Описание list.append(x) Добавляет элемент в конец списка list.extend(L) Расширяет список list, добавляя в конец все элементы списка L list.insert(i, x) Вставляет на i-ый элемент значение x list.remove(x) Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует list.pop([i]) Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент list.index(x, [start [, end]]) Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end) list.count(x) Возвращает количество элементов со значением x list.sort([key=функция]) Сортирует список на основе функции list.reverse() Разворачивает список list.copy() Поверхностная копия списка list.clear() Очищает список Кортежи Кортеж (tuple) - упорядоченная неизменяемая коллекция объектов произвольных типов.\nИспользуются для защиты данных, которые не должны быть изменены. Удобен для передачи данных фиксированной длины и содержания между функциями/методами. Работает быстрее, чем список. a = (1, 2, 3, 4, 5, 6) a = (\u0026#34;John\u0026#34;, 45, True) a = (1,) Множества Множество (set) - неупорядоченная изменяемая коллекция неповторяющихся объектов произвольных типов. Удобны для удаления неповторяющихся значений.\na = set() a = set(\u0026#39;hello\u0026#39;) # {\u0026#39;h\u0026#39;, \u0026#39;o\u0026#39;, \u0026#39;l\u0026#39;, \u0026#39;e\u0026#39;} a = {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;d\u0026#39;} a = {i ** 2 for i in range(7)} # {0, 1, 4, 9, 16, 25} a = {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;a\u0026#39;} # {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;} words = [\u0026#39;break\u0026#39;, \u0026#39;file\u0026#39;, \u0026#39;break\u0026#39;, \u0026#39;one\u0026#39;] \u0026gt;\u0026gt;\u0026gt;set(words) {\u0026#39;file\u0026#39;, \u0026#39;break\u0026#39;, \u0026#39;one\u0026#39;} Методы множеств: in \u0026gt;\u0026gt;\u0026gt;a = {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;d\u0026#39;} \u0026gt;\u0026gt;\u0026gt;\u0026#39;a\u0026#39; in a True issubset(other) - истина, если все элементы set принадлежат other: \u0026gt;\u0026gt;\u0026gt;a = {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;d\u0026#39;} \u0026gt;\u0026gt;\u0026gt;a.issubset({\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;d\u0026#39;, \u0026#39;f\u0026#39;, \u0026#39;e\u0026#39;}) True union(other, \u0026hellip;) - возвращает объединение нескольких множеств: \u0026gt;\u0026gt;\u0026gt;a = {\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;d\u0026#39;} \u0026gt;\u0026gt;\u0026gt;a.union({\u0026#39;f\u0026#39;, \u0026#39;d\u0026#39;}) {\u0026#39;b\u0026#39;, \u0026#39;a\u0026#39;, \u0026#39;c\u0026#39;, \u0026#39;f\u0026#39;, \u0026#39;d\u0026#39;} Срезы (slices) Срез - это механизм, позволяющий извлекать часть последовательности (например, списка, кортежа, строки) по начальному и(или) конечному индексам, а также с возможностью указания шага\nСинтаксис среза sequence[start:stop:step] start — начальный индекс (включительно, по умолчанию 0). stop — конечный индекс (не включается, по умолчанию до конца). step — шаг (по умолчанию 1, может быть отрицательным для обратного порядка). Примеры срезов Базовые срезы nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(nums[2:5]) # [2, 3, 4] (элементы с индексами 2, 3, 4) print(nums[:3]) # [0, 1, 2] (первые 3 элемента) print(nums[5:]) # [5, 6, 7, 8, 9] (с 5-го до конца) print(nums[::2]) # [0, 2, 4, 6, 8] (каждый второй элемент) print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (разворот списка) Отрицательные индексы Отрицательные значения отсчитываются с конца:\nprint(nums[-3:]) # [7, 8, 9] (последние 3 элемента) print(nums[:-2]) # [0, 1, 2, 3, 4, 5, 6, 7] (все, кроме последних 2) Особенности срезов Если индекс выходит за границы, Python не вызывает ошибку, а возвращает доступную часть.\nprint(nums[100:200]) # [] (пустой список) Создание копии списка:\ncopy = nums[:] # полная копия списка Изменение списка через срезы:\nnums[2:5] = [10, 20, 30] # замена элементов print(nums) # [0, 1, 10, 20, 30, 5, 6, 7, 8, 9] Словари Словари - неупорядоченные изменяемые коллекции произвольных объектов с доступом по ключу.\nДанные в словарях хранятся в парах: ключ : значение. Словарь является реализацией ассоциативного массива в Python. В словаре не может быть двух элементов с одинаковыми ключами. Однако могут быть одинаковые значения у разных ключей. Рассмотрим задачу, при решении которой удобно использовать словарь.\nЗадача: Написать программу, которая по введённому пользователем дню недели выводит заранее известное количество шагов, которое ему нужно пройти.\nКод программы решения задачи:\nsteps = {\u0026#39;понедельник\u0026#39;: 3500, \u0026#39;вторник\u0026#39;: 5000, \u0026#39;среда\u0026#39;: 6000, \u0026#39;четверг\u0026#39;: 8000, \u0026#39;пятница\u0026#39;: 10000, \u0026#39;суббота\u0026#39;: 4000, \u0026#39;воскресенье\u0026#39;: 0} while True: print(steps[input(\u0026#39;Введите день недели: \u0026#39;)]) Запустите программу с различными входными условиями.\nВарианты создания и заполнения словаря Создание словаря с помощью функции dict: \u0026gt;\u0026gt;\u0026gt;d = dict(short=\u0026#39;dict\u0026#39;, long=\u0026#39;dictionary\u0026#39;) \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;short\u0026#39;: \u0026#39;dict\u0026#39;, \u0026#39;long\u0026#39;: \u0026#39;dictionary\u0026#39;} Создание словаря с помощью функции dict на основе списка кортежей \u0026gt;\u0026gt;\u0026gt;d = dict([(1, 1), (2, 4)]) \u0026gt;\u0026gt;\u0026gt;d {1: 1, 2: 4} Получение значений словаря по ключу \u0026gt;\u0026gt;\u0026gt;d = {\u0026#39;a\u0026#39;: 2, \u0026#39;b\u0026#39;: 4, \u0026#39;g\u0026#39;: 9} \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;a\u0026#39;: 2, \u0026#39;b\u0026#39;: 4, \u0026#39;g\u0026#39;: 9} \u0026gt;\u0026gt;\u0026gt;d[\u0026#39;b\u0026#39;] 4 \u0026gt;\u0026gt;\u0026gt;d[\u0026#39;g\u0026#39;] 9 Создание пустого словаря и добавление к нему значений \u0026gt;\u0026gt;\u0026gt;d = {} \u0026gt;\u0026gt;\u0026gt;d[\u0026#39;key1\u0026#39;] = \u0026#39;value1\u0026#39; \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;key1\u0026#39;: \u0026#39;value1\u0026#39;} Добавление нескольких элементов с помощью метода update() \u0026gt;\u0026gt;\u0026gt;d = {\u0026#39;a\u0026#39;: 1} \u0026gt;\u0026gt;\u0026gt;d.update({\u0026#39;b\u0026#39;: 2, \u0026#39;c\u0026#39;: 3}) \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;a\u0026#39;: 1, \u0026#39;b\u0026#39;: 2, \u0026#39;c\u0026#39;: 3} Добавление элементов с проверкой с помощью метода setdefault() \u0026gt;\u0026gt;\u0026gt;d = {\u0026#39;name\u0026#39;: \u0026#39;Alice\u0026#39;} \u0026gt;\u0026gt;\u0026gt;d.setdefault(\u0026#39;age\u0026#39;, 25) # Добавит, если ключа нет 25 \u0026gt;\u0026gt;\u0026gt;d.setdefault(\u0026#39;name\u0026#39;, \u0026#39;Bob\u0026#39;) # Не добавит, т.к. ключ существует \u0026#39;Alice\u0026#39; \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;name\u0026#39;: \u0026#39;Alice\u0026#39;, \u0026#39;age\u0026#39;: 25} \u0026gt;\u0026gt;\u0026gt;d.update({\u0026#39;name\u0026#39;: \u0026#39;Bob\u0026#39;}) # Обновит существующее значение \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;name\u0026#39;: \u0026#39;Bob\u0026#39;, \u0026#39;age\u0026#39;: 25} Объединение словарей с помощью оператора |= \u0026gt;\u0026gt;\u0026gt;d = {\u0026#39;x\u0026#39;: 10} \u0026gt;\u0026gt;\u0026gt;d |= {\u0026#39;y\u0026#39;: 20, \u0026#39;z\u0026#39;: 30} # Объединение словарей \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;x\u0026#39;: 10, \u0026#39;y\u0026#39;: 20, \u0026#39;z\u0026#39;: 30} Метод fromkeys() (инициализация с одним значением) \u0026gt;\u0026gt;\u0026gt;keys = [\u0026#39;a\u0026#39;, \u0026#39;b\u0026#39;, \u0026#39;c\u0026#39;] \u0026gt;\u0026gt;\u0026gt;d = dict.fromkeys(keys, 0) # Все значения 0 \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;a\u0026#39;: 0, \u0026#39;b\u0026#39;: 0, \u0026#39;c\u0026#39;: 0} Добавление через распаковку \u0026gt;\u0026gt;\u0026gt;d = {\u0026#39;a\u0026#39;: 1} \u0026gt;\u0026gt;\u0026gt;new_items = {\u0026#39;b\u0026#39;: 2, \u0026#39;c\u0026#39;: 3} \u0026gt;\u0026gt;\u0026gt;d = {**d, **new_items} # Распаковка словарей \u0026gt;\u0026gt;\u0026gt;d {\u0026#39;a\u0026#39;: 1, \u0026#39;b\u0026#39;: 2, \u0026#39;c\u0026#39;: 3} Добавление с проверкой через if d = {} key, value = \u0026#39;color\u0026#39;, \u0026#39;blue\u0026#39; if key not in d: d[key] = value print(d) Результат работы кода:\n{\u0026#39;color\u0026#39;: \u0026#39;blue\u0026#39;} Методы словарей Метод Описание dict.clear() Очищает словарь dict.copy() Возвращает копию словаря dict.fromkeys(seq[, value]) Создает словарь с ключами из seq и значением value (по умолчанию None) dict.get(key[, default]) Возвращает значение ключа, но если его нет, возвращает default (по умолчанию None) dict.items() Возвращает пары (ключ, значение) dict.keys() Возвращает ключи в словаре dict.pop(key[, default]) Удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение) dict.setdefault(key[, default]) Возвращает значение ключа, но если его нет, создает ключ с значением default (по умолчанию None) dict.update([other]) Обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются dict.values() Возвращает значения в словаре Задачи для самостоятельного решения Зачада №1 Создайте список, состоящий из \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e первых простых чисел.\nЗадача №2 Постройте график любой функции на диапазоне, границы которого заданы пользователем.\nЗадача №3 Напишите функцию, которая возвращает список общих элементов двух списков.\nЗадача №4 Реализуйте алгоритм пузырьковой сортировки для списка.\nЗадача №5 Дан словарь sales, где ключ — название товара, а значение — список продаж за последние 5 дней, например:\nsales = { \u0026#34;Ноутбук\u0026#34;: [12000, 15000, 9000, 11000, 13000], \u0026#34;Смартфон\u0026#34;: [8000, 9500, 7000, 8500, 10000], \u0026#34;Планшет\u0026#34;: [5000, 6000, 4000, 5500, 4500], \u0026#34;Наушники\u0026#34;: [2000, 1500, 3000, 2500, 1800] } Напишите программу, которая строит подобный словарь по введённым пользователем значениям.\nВыведите список товаров по убыванию суммарной выручки.\n","permalink":"https://ilinyhgleb.github.io/posts/python/python_structures/","summary":"","title":"Структуры данных"},{"content":" Строка - неизменяемая упорядоченная структура данных, представляющая собой последовательность символов\nСимволы могут быть буквами, цифрами и специальными символами\nЧтобы присвоить переменной строковое значение, достаточно приравнять выражение в кавычках.\nstring = \u0026#39;some text\u0026#39; s = \u0026#34;текст в двойных кавычках\u0026#34; a = \u0026#34;a\u0026#34; b = \u0026#34;$\u0026#34; string = \u0026#34;1\u0026#34; string = \u0026#34;124\u0026#34; Разницы между одинарными и двойными кавычками нет:\n\u0026gt;\u0026gt;\u0026gt;text1 = \u0026#34;word\u0026#34; \u0026gt;\u0026gt;\u0026gt;text1 \u0026#39;word\u0026#39; \u0026gt;\u0026gt;\u0026gt;text2 = \u0026#39;word\u0026#39; \u0026gt;\u0026gt;\u0026gt;text2 \u0026#39;word\u0026#39; однако их можно использовать вместе для создания кавычек внутри строки:\n\u0026gt;\u0026gt;\u0026gt;text3 = \u0026#34;word \u0026#39;word\u0026#39; word\u0026#34; \u0026gt;\u0026gt;\u0026gt;text3 \u0026#34;word \u0026#39;word\u0026#39; word\u0026#34; \u0026gt;\u0026gt;\u0026gt;text4 = \u0026#39;word \u0026#34;word\u0026#34; word\u0026#39; \u0026gt;\u0026gt;\u0026gt;text4 \u0026#39;word \u0026#34;word\u0026#34; word\u0026#39; Операции со строками Ввиду того, что строка является упорядоченной последовательностью, со строкой можно работать так же, как и со списком:\nСтроки можно складывать: \u0026gt;\u0026gt;\u0026gt; s_1 = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s_2 = \u0026#39; \u0026#39; \u0026gt;\u0026gt;\u0026gt; s_3 = \u0026#39;is awesome!\u0026#39; \u0026gt;\u0026gt;\u0026gt; print(s_1 + s_2 + s_3) \u0026#39;Python is awesome!\u0026#39; Строки можно дублировать: \u0026gt;\u0026gt;\u0026gt; print(\u0026#39;spam\u0026#39; * 3) spamspamspam С помощью метода len() можно узнать количество символов в строке: \u0026gt;\u0026gt;\u0026gt; len(\u0026#39;Python\u0026#39;) 6 Можно обращаться к элементам по их индексу (индексация ведется от нуля): \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; print(s[0]) P \u0026gt;\u0026gt;\u0026gt; print(s[5]) n По индексу можно извлекать несколько символов, тогда это будет называться срез:\n\u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; print(s[1:2]) y \u0026gt;\u0026gt;\u0026gt; print(s[0:]) Python \u0026gt;\u0026gt;\u0026gt; print(s[:3]) Pyt \u0026gt;\u0026gt;\u0026gt; print(s[:]) Python Метод объектов строк Методов работы со строками довольно много, мы рассмотрим часть наиболее популярных:\nﬁnd(str, [start],[end]) - Поиск подстроки в строке. Возвращает номер первого вхождения или -1 \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;PythonohtyP\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.find(\u0026#39;t\u0026#39;) 2 rﬁnd(str, [start],[end]) - Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;PythonohtyP\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.rfind(\u0026#39;t\u0026#39;) 8 index(str, [start],[end]) - Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.index(\u0026#39;t\u0026#39;) 2 rindex(str, [start],[end]) - Поиск подстроки в строке. Возвращает номер или вызывает ValueError \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;PythonohtyP\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.rindex(\u0026#39;t\u0026#39;) 8 replace(шаблон, замена) - Замена шаблона \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.replace(\u0026#39;P\u0026#39;, \u0026#39;AAA\u0026#39;) \u0026#39;AAAython\u0026#39; split(символ) - Разбиение строки по разделителю \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.split(\u0026#39;t\u0026#39;) [\u0026#39;Py\u0026#39;, \u0026#39;hon\u0026#39;] isdigit() - Состоит ли строка из цифр \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.isdigit() False isalpha() - Состоит ли строка из букв \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.isalpha() True isalnum() - Состоит ли строка из цифр или букв \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.isalnum() True islower() - Состоит ли строка из символов в нижнем регистре \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.islower() False isupper() - Состоит ли строка из символов в верхнем регистре \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.isupper() False istitle() - Начинаются ли слова в строке с заглавной буквы \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.istitle() True upper() - Преобразование строки к верхнему регистру \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.upper() \u0026#39;PYTHON\u0026#39; lower() - Преобразование строки к нижнему регистру \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.lower() \u0026#39;python\u0026#39; startswith(str) - Начинается ли строка S с шаблона str \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.startswith(\u0026#39;P\u0026#39;) True endswith(str) - Заканчивается ли строка S шаблоном str \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.endswith(\u0026#39;a\u0026#39;) False join(список) - Сборка строки из списка с разделителем S \u0026gt;\u0026gt;\u0026gt; s = \u0026#39;Python\u0026#39; \u0026gt;\u0026gt;\u0026gt; s.join([\u0026#39;a\u0026#39;,\u0026#39;b\u0026#39;,\u0026#39;c\u0026#39;]) \u0026#39;aPythonbPythonc\u0026#39; Использование форматированных строк для представления данных В Python можно форматировать числа разными способами. Суть обоих способов заключается в том, что внутри строки указываются места подставления данных\nf-строки (рекомендуется в Python 3.6+). Ссылка на данные (объекты) и форматы указываются в месте их появления метод .format(). Номера объектов и форматы указываются числами в месте их появления, ссылки на объекты указываются в качестве аргументов в методе \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Форматы чисел в Python Таблица с различными вариантами форматирования чисел в Python (f-строки и format()):\nТип Пример f-строка format() Вывод Целое число 42 f\u0026quot;{num}\u0026quot; \u0026quot;{0}\u0026quot;.format(num) 42 Дополнение нулями 42 f\u0026quot;{num:05d}\u0026quot; \u0026quot;{0:05d}\u0026quot;.format(num) 00042 Выравнивание 42 f\u0026quot;{num:\u0026lt;5d}\u0026quot; \u0026quot;{0:\u0026lt;5d}\u0026quot;.format(num) 42 Знак числа 42 / -42 f\u0026quot;{num:+d}\u0026quot; \u0026quot;{0:+d}\u0026quot;.format(num) +42 / -42 Дробное число 3.1415926535 f\u0026quot;{pi:.2f}\u0026quot; \u0026quot;{0:.2f}\u0026quot;.format(pi) 3.14 Экспонента 3141.5926535 f\u0026quot;{pi:.2e}\u0026quot; \u0026quot;{0:.2e}\u0026quot;.format(pi) 3.14e+03 Двоичное 255 f\u0026quot;{n:b}\u0026quot; \u0026quot;{0:b}\u0026quot;.format(n) 11111111 Шестнадцатеричное 255 f\u0026quot;{n:x}\u0026quot; \u0026quot;{0:x}\u0026quot;.format(n) ff С префиксом 255 f\u0026quot;{n:#x}\u0026quot; \u0026quot;{0:#x}\u0026quot;.format(n) 0xff Разделитель тысяч 1_000_000 f\u0026quot;{big_num:,}\u0026quot; \u0026quot;{0:,}\u0026quot;.format(big_num) 1,000,000 Проценты 0.756 f\u0026quot;{progress:.1%}\u0026quot; \u0026quot;{0:.1%}\u0026quot;.format(progress) 75.6% Экранирование Экранированные последовательности - это последовательности символов, определяющие специальные символы которые тяжело ввести с клавиатуры или отобразить на экране. Экранированные символы начинаются с символа \\:\nСимволы Назначение \\n Перенос курсора на следующую строку \\\\ Символ обратной косой черты (слэша) \\r Возврат курсора на начало строки \\t Табуляция \\' Кавычка \\\u0026quot; Двойная кавычка \\n — перенос строки\nprint(\u0026#34;Первая строка\\nВторая строка\u0026#34;) Вывод:\nПервая строка Вторая строка \\\\ — обратный слеш\nprint(\u0026#34;Путь: C:\\\\Папка\\\\Файл.txt\u0026#34;) Вывод:\nПуть: C:\\Папка\\Файл.txt \\r — возврат каретки (перезапись строки)\nprint(\u0026#34;Загрузка...\\rГотово!\u0026#34;) Вывод:\nГотово! \\t — табуляция\nprint(\u0026#34;Имя:\\tАлексей\u0026#34;) Вывод:\nИмя: Алексей \\' и \\\u0026quot; — кавычки внутри строки\nprint(\u0026#39;Он сказал: \\\u0026#34;Привет!\\\u0026#34;\u0026#39;) print(\u0026#34;Это \u0026#39;важно\u0026#39;\u0026#34;) Вывод:\nОн сказал: \u0026#34;Привет!\u0026#34; Это \u0026#39;важно\u0026#39; Вставка Unicode-символов В Python можно использовать Unicode-символы несколькими способами:\n1. Прямая вставка символа Если редактор поддерживает Unicode, можно просто вставить символ в строку:\nprint(\u0026#34;Символ: π\u0026#34;) 2. Через Unicode-код (16-ричный формат) Используйте \\u для 4-значного кода или \\U для 8-значного:\nprint(\u0026#34;\\u03C0\u0026#34;) # π (код U+03C0) print(\u0026#34;\\U0001F60A\u0026#34;) # 😊 (код U+1F60A) Таблица Unicode-символов\n3. Через имя символа (используя \\N{name}) print(\u0026#34;\\N{GREEK SMALL LETTER PI}\u0026#34;) # π print(\u0026#34;\\N{SMILING FACE WITH SMILING EYES}\u0026#34;) # 😊 4. Использование chr() Функция chr() преобразует Unicode-код в символ:\nprint(chr(960)) # π (десятичный код 960) print(chr(128522)) # 😊 (десятичный код 128522) 5. Экранирование в байтовых строках Для байтовых строк (bytes) используйте \\x, \\u или \\U:\nprint(b\u0026#34;\\xCF\\x80\u0026#34;.decode(\u0026#39;utf-8\u0026#39;)) # π (в UTF-8) Расширенное исполользование функции print print(value, ..., sep=\u0026#39;\u0026#39;, end=\u0026#39;\\n\u0026#39;, file=sys.stdout) value - выводимая строка, или другие данные, которые будут переформатированы в строку sep - разделитель (separator) который будет помещаться между значениями, по умолчанию — пробел. file - поток, в который будет выведена информация. По умолчанию — это sys.stdout. Здесь можно указать файл end - строка, которая добавляется после последнего значения. По умолчанию — это перенос на новую строку \\n. for symbol in \u0026#39;some text\u0026#39;: print(symbol, end=\u0026#39; \u0026#39;) #Вывод: s o m e t e x t string = \u0026#39;abcdef\u0026#39; print(string[5]) # вывод: f print(\u0026#39;-\u0026#39;.join([\u0026#39;-\u0026#39; for _ in range(20)])) #Вывод: --------------------------------------- print(\u0026#39;abc\u0026#39;+\u0026#39;ty\u0026#39;) #Вывод: \u0026#39;abcty\u0026#39; Задачи для самостоятельного решения Зачада №1 Дана строка: Abracadabra Требуется:\nВывести третий символ этой строки. Вывести предпоследний символ этой строки. Вывести первые пять символов этой строки. Вывести строку, кроме последних двух символов. Вывести все символы с чётными индексами (считайте, что 0 - четный индекс). Вывести все символы с нечётными индексами. Вывести все символы в обратном порядке. Вывести все символы строки через один в обратном порядке, начиная с последнего. Вывести длину данной строки. Зачада №2 Напишите программу, которая обрабатывает список строк, и, если строка включает цифры, то к ней добавляется символ галочки ✓\nЗачада №3 Пароль считается надёжным, если его:\nдлина составляет не менее 8 символов, пароль должен содержать: минимум одну заглавную букву, минимум одну строчную букву, минимум одну цифру, минимум один спецсимвол. Напишите функцию, которая определяет, надёжен ли пароль. Программа в бесконечном цикле спрашивает у пользователя ввод пароля и, если пароль не надежен, запрашивает у пользователя повторный ввод, иначе завершается.\nЗачада №3 При обработке данных, составленных людьми, зачастую возникают проблемы с некорректным использованием символов. Например лишний пробел вместо первого символа записи или последнего символа, двойные пробелы и т.д. Это может создать проблемы при сопоставлении записей, ведь \u0026quot; \u0026quot; не равно \u0026quot; \u0026ldquo;. Или при создании директорий и файлов на основе их.\nСоздайте функцию, которая проверяет список исходных строк на наличие пробела в начале записи, пробела в конце записи, множественных пробелов между словами.\nПротестируйте функцию обработав диапазон значений из электронной таблицы\n","permalink":"https://ilinyhgleb.github.io/posts/python/python_strings/","summary":"","title":"Строки"},{"content":"Редактор текстовых документов В любом редакторе текстовых документов создайте новый документ. Сохраните его под названием Фамилия_Имя.docx (впишите свою фамилию и имя)\nЗадание 1. Форматирование текста Введите текст и оформите документ в соответствии с шаблоном: В абзацах задания используются следующие настройки:\nРазмер шрифта: 16 пт или 12 пт Отступы: 0 или 4 см Отступ первой строки: 0 или 1.25 см Интервал до абзаца: 0 или 14 пт Интервал после абзаца: 0 или 14 пт Междустрочный интервал: одинарный Конкретные настройки каждого абзаца выберите в соответствии с рисунком.\nЗадание 2. Формулы На новой странице добавьте формулу: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Ниже добавьте формулу: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Ниже добавьте формулу: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e К формулам добавьте номера формул \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 3. Таблицы На новой странице создайте таблицу: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте подпись таблицы по ГОСТ: Таблица 1 \u0026ndash; Изменение значения по годам\nЗадание 4. Векторная графика На новой странице создайте векторный рисунок: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте подпись рисунка: Рисунок 1 \u0026ndash; Схема\nЗадание 5. Растровые изображения На новой странице:\nДобавьте рисунок, включающий четыре процессора разных фирм. Картинки найдите в Интернете. Вид рисунка: Добавьте подпись рисунка.\nЗадание 6. Стили На основе сделанных заданий создайте стили:\n$Основной_текст $Подпись_таблицы $Подпись_рисунка $Текст_в_таблице $Формула Электронные таблицы В любом редакторе электронных таблиц создайте новый документ. Сохраните его под названием Фамилия_Имя.xlsx (впишите свою фамилию и имя)\nЗадание 1 На листе Задание 1 оформите таблицу: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для цен выберите тип - денежный Для столбца Максимум замените значения на формулы, вычисляющие максимумальную цену в строке Для строки Итого (оценка) замените значения на формулы, вычисляющие сумму в столбце Задание 2 На листе Задание2 вычислите:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 3 На листе Задание 3:\nЗадайте значение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Посчитайте значение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Посчитайте значение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 4 На листе Задание 4:\nЗадайте константу \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Создайте последовательность \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e : \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Вычислите значения по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Установите для результатов экспоненциальный формат с 2 знаками после запятой. Задание 5 На листе Задание 5:\nПодготовьте данные изменения величины \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в диапазоне от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Постройте изменение величины: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Нарисуйте диаграмму \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Оформите диаграмму (линии сетки, контур фигуры, подписи осей) Добавьте на диаграмму кривую: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/verification_works/vf_word_excel/","summary":"","title":"Контрольная работа по модулю Прикладное программное обеспечение"},{"content":"В этом задании мы получаем цифровые данные из растрового изображения сканированной страницы учебника. После получения цифровых данных с ними можно работать в электронных таблицах (например MS Excel, Google Docs), в скриптах на различных языках программирования (Python, Java и т.д.). Можно эти данные аппроксимировать, находить зависимости, анализировать.\nЗадание 1 Скачайте ( растровое изображение ).\nОткройте изображение в приложении Paint, или Paint3d или любом другом редакторе растровых изображений.\nОбрежьте изображение. На изображении должен остаться график, оси, подписи осей.\nЗадание 2 Откройте в браузере один из сайтов - сервисов оцифровки изображений https://apps.automeris.io/wpd4/ https://plotdigitizer.com/app\nЗагрузите на сайт полученный в Задании 1 график.\nВыберите опорные точки (координаты X1, X2, и координаты Y1, Y2 на известных Вам местах - пересечениях сетки)\nПримечание: Мы знаем значения в на пересечениях сетки, но не знаем значения на графике, поэтому мы выбираем опорные точки\nПроставьте точки по равномерно на кривой от начала (слева) до конца (справа)\nЭкспортируйте данные в формате .csv\n***Примечание: *** .csv - формат файлов для хранения табличных данных. Формат удобен для передачи импорта/экспорта данных, передачи данных между приложениями. Файл .csv можно открыть с помощью любого текстового редактора. Данные записаны в столбцы. Данные из разных столбцов разделены с помощью разделителя, обычно разделитель - это запятая (,) или точка с запятой (;). В начале файла присутствует строка заголовков столбцов. Имена столбцов также разделены с помощью разделителя.\nЗадание 3 Откройте любой офисный редактор электронных таблиц. В данной работе будут использоваться скриншоты из редактора MS Excel 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nИмпортируйте файл .csv на Лист 1\nЗадание 4 Постройте диаграмму по полученным данным. Отформатируйте диаграмму. Самостоятельное задание Оцифруйте графики из файлов. Постройте диаграммы графиков в электронных таблицах. ( Страница 1 ). ( Страница 2 ). ( Страница 3 ). ( Страница 4 ). ( Страница 5 ).\n","permalink":"https://ilinyhgleb.github.io/posts/excel/excel_digitizer/","summary":"","title":"Электронные таблицы. Оцифровка графика"},{"content":"Задание 0 Откройте любой офисный редактор электронных таблиц. В данной работе будут использоваться скриншоты из редактора MS Excel 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nДобавьте листы так, чтобы всего было 5 листов.\nПереименуйте лист Лист1 в Задание1. Аналогично переименуйте другие листы: Задание2, Задание3, Задание4\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примечание: ЛКМ - левая клавиша мыши, ПКМ - правая клавиша мыши\nЗадание 1 Переключитесь на лист Задание1\nВыделите ячейки A1:B1 и назначьте им формат - текстовый\nВыделите ячейки A2:B22 и назначьте им формат - числовой\nВ ячейке A1 введите текст \u0026ldquo;x\u0026rdquo; (без кавычек)\nВ ячейке B1 введите текст \u0026ldquo;f(x)\u0026rdquo; (без кавычек)\nЗаполните диапазон ячеек A2:A22 значениями от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диапазон ячеек B2:B22 заполните значениями, полученными по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Выделите диапазон A1:B22 — диапазон значений вместе с заголовками\nВставьте новую диаграмму по выделенным данным с помощью меню Вставка — раздел Диаграммы — Точечная — Точечная с гладкими кривыми и маркерами\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Появится диаграмма:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Выделите элемент Название диаграммы (нажмите по элементу ЛКМ) и удалите его (нажмите клавишу Delete).\nТакже удалите элемент Легенда.\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диаграмма после удаления Названия диаграммы:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диаграмма после удаления Легенды:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примечание: элемент Легенда обязателен, если на рисунке больше одной кривой. Если на рисунке одна кривая, то легенда не нужна.\nДобавьте подпись горизонтальной оси:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте подпись вертикальной оси:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диаграмма после добавления подписей осей:\nИзмените текст подписей осей (двойным нажатием ЛКМ по элементу). Настройки текста можно поменять на вкладке Главная — раздел Шрифт. Установите Размер шрифта — 12 пт. Диаграмма после изменения текста подписей осей:\nПоместите (зажав ЛКМ на элементе) подписи осей рядом с осями. Для того, чтобы подпись горизонтальной оси перекрывала значение 6 на диаграмме, добавьте белую заливку текста (на вкладке Главная — раздел Шрифт). Диаграмма после смещения и настройки осей:\nДобавьте вертикальные линии сетки:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Уберите внешний контур фигуры:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Откройте всплывающее меню вертикальной оси (нажмите ПКМ по оси). Выберите Формат оси. Настройте минимальное значение на оси, максимальное значение на оси, цену основных делений на оси. Во вкладке Число установите один формат Числовой и один знак после запятой.\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Настройте формат горизонтальной оси:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для горизонтальной оси выберите ноль знаков после запятой.\nПосле изменения положения осей сместите подписи осей. В итоге вы должны получить диаграмму вида:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 2 Переключитесь на лист Задание2\nВыделите ячейки A1:C1 и назначьте им формат - текстовый\nВыделите ячейки A2:C22 и назначьте им формат - числовой\nВ ячейке A1 введите текст \u0026ldquo;x\u0026rdquo; (без кавычек)\nВ ячейке B1 введите текст \u0026ldquo;y\u0026rdquo; (без кавычек)\nВ ячейке C1 введите текст \u0026ldquo;z\u0026rdquo; (без кавычек)\nЗаполните диапазон ячеек A2:A22 значениями от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диапазон ячеек B2:B22 заполните значениями, полученными по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Выделите диапазон A1:B22 — диапазон значений вместе с заголовками\nВставьте новую диаграмму по выделенным данным с помощью меню Вставка — раздел Диаграммы — Точечная — Точечная с гладкими кривыми\nДиапазон ячеек C2:C22 заполните значениями, полученными по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте новую кривую на график с помощью инструмента Выбрать данные:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Оформите диаграмму, как в Задании 1. Так как на этой диаграмме две кривые, легенду нужно оставить.\nЗадание 3 Переключитесь на лист Задание3\nПодготовьте данные изменения величины \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в диапазоне от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Постройте изменение величины: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Постройте изменение величины: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Нарисуйте диаграмму \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Оформите диаграмму как в Задании1\nЗадание 4 Переключитесь на лист Задание4\nПостройте таблицу\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В строке Всего: суммы посчитайте с помощью функции СУММ()\nПо данным таблицы постройте диаграмму:\nДля того, чтобы значения кривых отмечались на разных осях, нажмите ПКМ по одной из кривых и выберите Формат ряда данных,\nУстановите опцию По вспомогательной оси:\nГлоссарий Добавьте слова и фразы в свой глоссарий\nдиаграмма элемент диаграммы название диаграммы ось графика формат оси вертикальная сетка горизонтальная сетка вставка диаграммы точечная диаграмма точечная диаграмма с гладкими кривыми точечная диаграмма с маркерами легенда диаграммы контур фигуры кривая на графике кривая на диаграмме ","permalink":"https://ilinyhgleb.github.io/posts/excel/excel_diagrams/","summary":"","title":"Электронные таблицы. Диаграммы"},{"content":"Задание 0 Откройте любой офисный редактор электронных таблиц. В данной работе будут использоваться скриншоты из редактора MS Excel 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nДобавьте листы так, чтобы всего было 5 листов.\nПереименуйте лист Лист1 в Задание1. Аналогично переименуйте другие листы: Задание2, Задание3, Задание4, Задание5\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примечание: ЛКМ - левая клавиша мыши, ПКМ - правая клавиша мыши\nЗадание 1 Переключитесь на лист Задание1\nВыделите ячейки A1:A5 и назначьте им формат - текстовый\nВыделите ячейки B1:B5 и назначьте им формат - числовой\nВ ячейке A1 введите текст \u0026ldquo;a=\u0026rdquo; (без кавычек)\nВ ячейке B1 посчитайте комбинированную операцию:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e для этого в ячейке введите:\n=(3,5+5)/(6*2) Примечание: обратите внимание, что в MS Excel для разделения целой и дробной части числа используется запятая (,). Тип разделителя дробной части зависит от настроек операционной системы. В большинстве случаев разделитель – запятая\nПовторите шаги 4 и 5 для комбинированных операций: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 2 Переключитесь на лист Задание2 Выделите ячейки A1:B1 и назначьте им формат - текстовый Выделите ячейки A2:B10 и назначьте им формат - числовой В ячейке A1 введите текст \u0026ldquo;n\u0026rdquo; (без кавычек). В ячейке B1 введите текст \u0026ldquo;n+1\u0026rdquo; (без кавычек) В ячейке A2 введите число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . В ячейке A3 введите число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Выделите эти две ячейки и протяните до ячейки A10 В ячейке B2 введите формулу: =A2+1 Протяните ячейку B2 до ячейки B10 Задание 3 Переключитесь на лист Задание3\nПросмотрите следующие пункты 3-8 этого задания. Назначьте ячейкам, содержащим текст, формат - текстовый. Назначьте ячейкам, содержащим числа, формат - числовой\nВ ячейке A1 введите текст \u0026ldquo;x=\u0026rdquo; (без кавычек)\nВ ячейке B1 введите число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В ячейке A3 введите текст \u0026ldquo;i\u0026rdquo; (без кавычек)\nВ ячейке B3 введите текст \u0026ldquo;y\u0026rdquo; (без кавычек)\nДиапазон ячеек A4:A44 заполните значениями \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Диапазон ячеек B4:B44 заполните значениями, полученными по формуле\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для этого в ячейке B4 введите формулу:\n=A4+$B$1 заполните оставшиеся ячейки с помощью протягивания ячейки\nЗадание 4 Переключитесь на лист Задание4\nПросмотрите следующие пункты этого задания. Назначьте ячейкам, содержащим текст, формат - текстовый. Назначьте ячейкам, содержащим числа, формат - экспоненциальный.\nВ ячейке C1 напишите текст \u0026ldquo;x\u0026rdquo; (без кавычек). В ячейке D1 напишите текст \u0026ldquo;y\u0026rdquo; (без кавычек). Сделайте текст полужирным.\nЗаполните диапазон ячеек C2:C101 значениями от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для этого в ячейке С2 напишите значение \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , в ячейке С3 напишите формулу\n=C2+4*ПИ()/100 Протяните формулу (ячейку C3) до конца диапазона (ячейки C101).\nЗаполните диапазон ячеек D2:D101 значениями, полученными по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для этого в ячейке D2 введите формулу:\n=SIN(C2) заполните оставшиеся ячейки с помощью протягивания ячейки\nЗадание 5 Переключитесь на лист Задание5. В ячейке A3 введите текст \u0026ldquo;Исходные данные\u0026rdquo; (без кавычек), в B3 \u0026ldquo;Доля от макс., %\u0026rdquo;, в D3 — \u0026ldquo;Дополнительные данные\u0026rdquo;. Назначьте ячейкам A3, B3, D3 текстовый формат и сделайте шрифт полужирным. В ячейке A1 введите текст \u0026ldquo;Максимум\u0026rdquo;, назначьте текстовый формат. В ячейке A2 рассчитайте максимальное значение из диапазона A4:A24 с помощью формулы: =МАКС(A4:A24) Назначьте ячейке A2 числовой формат. Заполните диапазон A4:A24 числами от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ( \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ). Назначьте этому диапазону числовой формат. Заполните диапазон D4:D24 числами от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Назначьте числовой формат. В ячейке B4 введите формулу для расчёта доли значения из столбца A относительно максимума: =A4/A$2 Обратите внимание: ссылка на ячейку с максимумом A$2 — абсолютная ссылка на строку, чтобы при копировании она не смещалась. Протяните формулу в B4 вниз до B24. Убедитесь, что в каждой строке формула ссылается на соответствующую ячейку столбца B и на фиксированную ячейку $A$2. Выделите диапазон B4:B24 и назначьте ему процентный формат с 2 знаками после запятой. Скопируйте ячейки A1:A2 в D1:D2 Скопируйте диапазон B4:B24 в E4:E24 Самостоятельное задание Задание 1\nНа листе Сам.Задание1 вычислите:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 2\nНа листе Сам.Задание2 для диапазона целых чисел \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e рассчитайте значения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e для каждого значения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 3\nНа листе Сам.Задание3:\nЗадайте константу \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Создайте последовательность \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e : \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Вычислите значения по формуле: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 4\nНа листе Сам.Задание4:\nЗадайте значения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e от \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e до \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с шагом \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Вычислите значения функции \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Установите для результатов экспоненциальный формат с 3 знаками после запятой. ","permalink":"https://ilinyhgleb.github.io/posts/excel/excel_simple_calculations/","summary":"","title":"Электронные таблицы. Простые вычисления"},{"content":"Задание 0 Откройте любой офисный редактор электронных таблиц. В данной работе будут использоваться скриншоты из редактора MS Excel 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nЗадание 1 На листе Лист1 выделите диапазон ячеек A1:P9 (поместите курсор мыши на ячейку A1, зажмите левую клавишу мыши (ЛКМ), переместите курсор на ячейку P9, отпустите ЛКМ):\nС помощью инструмента Границы и опции Все границы задайте границы для ячеек диапазона:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для всего диапазона A1:P9 выберите тип Текстовый:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Выделите диапазон ячеек B2:P2:\nназначьте ориентацию текста - 90° \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Выделите диапазон ячеек A1:A2 и объедините их с помощью инструмента Объединение ячеек:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Объедините диапазон ячеек B1:F1.\nОбъедините диапазон ячеек G1:P1.\nС помощью инструмента Заливка закрасьте фон ячеек в разные цвета, как на картинке:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e выделите столбцы B:P (наведите курсор мыши на букву B в названии столбца, зажмите ЛКМ и доведите курсор до буквы P). После этого нажмите на любой столбец правой клавишей мыши (ПКМ) и измените ширину столбца:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e результат:\nтаким же образом измените высоту строки 2:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e результат:\nДобавьте текст в ячейки заголовков. Оформите текст ячеек, как на картинке. Используйте инструменты настройки шрифта и настройки выравнивания:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте в ячейки названия и ссылки на популярные антивирусные программы (сокращённо - антивирусы).\nНажмите ПКМ на ячейку A3 и выберите Гиперссылка\u0026hellip;. Укажите Текст и Адрес гиперссылки на сайт антивируса:\nТекст: Kaspersky\nАдрес: https://www.kaspersky.com/\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В ячейках A4:A9 разместите гиперссылки:\nАнтивирус Ссылка Dr.Web https://www.drweb.com/ ESET NOD32 https://www.eset.com/ Avast https://www.avast.com/ Bitdefender https://www.bitdefender.com/ Malwarebytes https://www.malwarebytes.com/ Microsoft Defender https://www.microsoft.com/en-us/windows/microsoft-defender Заполните диапазон ячеек G3:P9 отметив\nналичие функции у антивируса (+) отсутствие функции у антивируса (–) частичное наличие функции у антивируса (±) как показано на рисунке:\nСамостоятельное заполните диапазон ячеек B3:F9. В ячейке ставится значок +, если антивирус поддерживает указанную Операционную систему. Информацию об этом найдите на сайте антивируса или в статье про антивирус в энциклопедии Wikipedia.\nНажмите правой клавишей мыши по названию листа Лист1 и с помощью опции Переименовать измените имя листа на Антивирусы.\nЗадание 2 Переименуйте Лист2 в Угрозы, на этом листе создайте таблицу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ","permalink":"https://ilinyhgleb.github.io/posts/excel/excel_formatting/","summary":"","title":"Электронные таблицы. Форматирование таблиц"},{"content":"Форматы Файлы электронных таблиц имеют следующие расширения:\nxlsx - Office Open XML открытый формат. Является zip-архивом .xls - проприетарные документы MS Excel Вид электронной таблицы Основные элементы электронных таблиц:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e При использовании альтернативного вида ссылок на ячейки R1C1:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Включение вида R1C1 ссылок для Excel 2007: Параметры Excel → Формулы → Работа с формулами → Стиль ссылок R1C1\nЯчейка Ячейка является основным элементом электронных таблиц.\nВ ячейке может храниться:\nтекст (набор символов) число (целое, дробное, процент, дата/время) формула (выражение, начинающееся с =, например, =1+2) логическое значение (ИСТИНА/ЛОЖЬ или TRUE/FALSE) пустое значение (ячейка не заполнена) ошибка (например, #ДЕЛ/0!, #Н/Д) гиперссылка мини-диаграмма изображение Математические вычисления Электронные таблицы позволяют проводить разные вычисления.\nРассмотрим пример арифметической (математической) операции: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Если подставить числа, то операция принимает вид:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e для вычисления результата такой операции в электронных таблицах используется формула. Запись формулы начинается со знака = (равно):\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примечание: можно начать запись формулы с оператора, тогда знак = будет подставлен автоматически. Например запись -3+5 автоматически превратится в формулу =-3+5\nОсновные арифметические операции представлены в таблице:\nТаблица арифметических операций Операция Символ оператора Приоритет Пример формулы Результат сложение + 3 =3+2 5 вычитание - 3 =3-4 -1 умножение * 2 =5*3 15 деление / 2 =5/2 2,5 возведение в степень ^ 1 =2^3 8 Если в операции больше одного оператора, то такая операция называется смешанная операция или комбинированная операция.\nПример комбинированной операции:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В соответствии с таблицей приоритет умножения 2, приоритет сложения 3, значит сначала будет произведена операция умножения, а затем операция сложения.\nЕсли мы хотим произвести операцию с меньшим приоритетом до операции с большим приоритетом, то необходимо использовать скобки:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e пример такой операции:\n=(1+2)*3\nрезультатом будет 9.\nЕщё один пример:\n=9^(1/2)\nрезультатом будет 3, так как сначала будет вычислено деление в степени, равное 0.5, а далее 3 будет возведено в степень 0.5. Если скобки не поставить, то формула\n=9^1/2\nбудет равна 4.5, т.к. сначала будет посчитано возведение в степень 9^1, а далее 9/2=4.5\nСамостоятельное задание В новом документе электронных таблиц посчитайте операции из таблицы выше.\nСсылки Ссылка нужна для того, чтобы в одной ячейке использовать значение из другой ячейки. Ссылка состоит из указания номера (буквы) столбца и номера строки ячейки, из которой будет получено значение. Ссылка используется в формулах. Пример использования ссылки:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Столбцы имеют номера: A, B, C, \u0026hellip;, X, Y, Z, \u0026hellip;\nНапишите следующие 5 номеров столбоцов после Z.\nСамостоятельное задание В режиме R1C1 число после R обозначает номер строки (row), число после C - номер столбца (column). Например ссылка A3 будет указывать на ту же ячейку, что и R3C1, аналогично для D5 и R5C4.\nЗаполните пропуски в таблице:\nСтиль A1 Стиль R1C1 A1 R1C1 C5 R5C3 F10 R2C7 AA3 R10C33 B2 R7C4 Z1 R15C39 Протягивание ячеек Протягивание ячеек позволяет создавать диапазоны ячеек с логикой заполнения, определяемой изначально выбранными ячейками.\nДля того, чтобы протянуть ячейку (или диапазон ячеек), нужно:\nвыделить ячейки, навести курсор на правый нижний угол ячейки (или диапазона), зажать ЛКМ (левую клавишу мыши) сместить курсор в сторону (вниз, вверх, влево или вправо), в которую необходимо добавить значения Например в двух ячейках указаны номера 1 и 2, логика заключается в том, что число 2 на единицу больше числа 1, если протянуть диапазон вниз, то следующие ячейки посчитаются исходя из этой логики.\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Абсолютные и относительные ссылки Указание строки и(или) столбца может быть относительным или абсолютным\nОтносительная ссылка указывает на строку/столбец относительно той ячейки, в которой она записана и изменяется при копировании/переносе/протягивании ячейки Ссылки по-умолчанию - относительные Относительное положение в обычном виде ссылок определяется неявно При виде R1C1 относительные номера строк/столбцов указываются явно, положительные - сдвиг вниз/вправо, отрицательные - вверх/влево Пример копирования относительных ссылок - вид ссылки меняется в зависимости от ячейки, куда она была скопирована: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Абсолютная ссылка указывает на конкретную строку или столбец и не изменяется при копировании/переносе/протягивании ячейки. Для указания абсолютной ссылки на строку/столбец в обычном стиле, перед строкой/столбцом необходимо поставить знак $ Абсолютные ссылки удобно использовать для определения постоянных величин (констант). Пример копирования ссылки с абсолютным указанием столбца - строка не меняется при копировании:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для смены типа ссылки используется клавиша F4 Примеры разных типов ссылок:\nТаблица относительных и абсолютных ссылок \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Заполните пустые ячейки таблицы:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Имена Любой ячейке или диапазону ячеек можно присвоить Имя. Имя представляет собой абсолютную ссылку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Создавать, изменять, удалять имена можно с помощью инструмента Формулы - Диспетчер имён:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Правила создания имён:\nПервым символом имени должна быть буква, знак подчеркивания (_) или обратная косая черта (\\). Остальные символы имени могут быть буквами, цифрами, точками и знаками подчеркивания. Имена не могут быть такими же, как ссылки на ячейки, например, Z$100 или R1C1. Нельзя использовать имена ячеек: R, r, C, c, так как эти буквы используются для ссылок на ячейки. Пробелы не допускаются. В качестве разделителей слов используйте символ подчеркивания (_) или точку (.), например, Налог_Продаж или Первый.Квартал. Имя может содержать до 255-ти символов. Имя может состоять из строчных и прописных букв. При этом процессоры электронных таблиц не различают строчные и прописные буквы в именах. Зависимости формул Если в одной ячейке есть ссылка на другую ячейку, то первая ячейка называется зависимой, а вторая - влияющей.\nМожно включить визуальное отображение зависимостей между ячейками с помощью раздела Формулы - Зависимости формул:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Пример включения опции Влияющие ячейки: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Полный путь ссылки До это мы рассматривали ссылки, которые работали в пределах одного листа. Если мы хотим сослаться на ячейки на другом листе документа, мы должны добавить имя листа перед ссылкой: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В примере выше написаны два варианта ссылки, с кавычками и без. Можно писать и так, и так. Но если в названии листа есть пробелы, то использовать кавычки обязательно.\nЕсли мы хотим сослаться не только на другой лист текущего документа, но на лист другого документа (который открыт в данный момент), то нужно перед листом ещё указать имя документа (называемый книгой):\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e тогда полная ссылка будет выглядеть так:\n=`[Книга2.xlsx]Лист1`!A1\nСсылка на диапазон ячеек Для ссылки на диапазон ячеек нужно указать левую вверхнюю и правую нижнюю ячейку, разделённых знаком двоеточие (:), как показано на примере:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Напишите ссылку на диапазон ячеек, в который вместятся все цифры шестнадцатиричной системы счисления.\nФорматы данных Каждой ячейке может быть назначен формат данных. В зависимости от формата данные будут записываться и отображаться в разном виде.\nЕсли формат не указывать явно, то он будет назначен при вводе значений в ячейку. Формат можно назначить сразу диапазону ячеек. В том числе можно назначить формат всему столбцу или всей строке. Указание формата ячейки: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Оформление таблиц При работе с электронными таблицами рекомендуется не просто вписывать данные и формулы, но добавлять визуальное оформление, а также добавлять комментарии:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Инструменты оформления электронных таблиц соответствуют оформлению таблиц в текстовых документах:\nШрифт, размер шрифта, начертание, цвет, выравнивание, направление текста, перенос текста Заливка и границы ячейки \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Функции Для реализации сложных математических, статистических, матричных и других операций в электронных таблицах используются функции.\nФункции добавляются в форумулы Функция, подобно функции в языках программирования, состоит из названия и аргументов, которые записаны в круглых скобках. Аргументы разделены между собой точкой с запятой (;) Функции можно записать с клавиатуры или воспользоваться мастером функций Мастер функций Выбор функции:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Ввод аргумента функции: Ввод аргументов функции для функции нескольких аргументов: Самостоятельное задание Откройте мастер функций и найдите, в какой категории расположены указанные функции. Заполните таблицу:\nФункция Категория СУММ ВПР ЕСЛИ ИНДЕКС СЕГОДНЯ КОРЕНЬ СТРОКА Примеры часто используемых функций представлены в таблице:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Для каждого математического выражения запиши формулу электронной таблицы:\nНомер Математическое выражение Формула электронной таблицы 1 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 2 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 3 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 4 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 5 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 6 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 7 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 8 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 9 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 10 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 11 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 12 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 13 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 15 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 16 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 17 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e 18 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Глоссарий Добавьте слова и фразы в свой глоссарий\nячейка лист строка формула столбец функция выделить ячейку оператор протянуть ячейку операция протягивание ячейки операнд диапазон ячеек комбинированная операция вертикальное выравнивание номер столбца относительная ссылка номер строки абсолютная ссылка форматы данных зависимая ячейка влияющая ячейка ","permalink":"https://ilinyhgleb.github.io/posts/excel/excel_base/","summary":"","title":"Электронные таблицы. Основные принципы работы"},{"content":" Растровое изображение — это цифровое изображение, представляющее собой сетку (матрицу) пикселей (цветных точек), каждая из которых имеет свой цвет. Качество зависит от разрешения (количества пикселей) Растровые изображения в документах используются для передачи визуальной информации: фотографии, графики, схемы и т.д.\nНедостатком растрового изображения является потеря качества при масштабировании, тем крупнее приближается изображения, тем отчётливее становятся видны отдельный пиксели.\nЗадание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примечание: Далее в тексте под картинкой будет подразумеваться отдельное графическое изображение, добавленное в документ из файла или буфера обмена. Под рисунком будет подразумевается фрагмент текста состоящий из одной или нескольких картинок. Под рисунком в тексте обязательно добавляется подрисуночная подпись.\nЗадание 1 С помощью любой поисковой системы (Yandex, Google) найдите и скачайте изображение центрального процессора персонального компьютера.\nДобавление картинки Для добавления картинки нажмите Вставка - Рисунок: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Положение картинки Нажмите на картинку и настойте положение картинки: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Положение в тексте представляет картинку как отдельный символ внутри текста. Таким образом, на картинку влияют настройки абзаца, в которой картинка находится. Также картинка становится привязанной к определённому местоположению в тексте, что позволяет удобно позиционировать её в документе и исключить проблемы произвольного смещения картинки.\nИзменение размера картинки Установите высоту картинки, равную 6 сантиметрам:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e По умолчанию, картинка сохраняет пропорции при изменении размеров. Поэтому при изменении высоты картинки, изменится также и ширина.\nПоложение рисунка Как было сказано ранее, картинка представляет собой элемент текста. Поэтому с помощью инструмента форматирования текста установите выравнивание по центру для абзаца картинки.\nДобавление подписи рисунка В следующем абзаце добавьте текст подписи рисунка:\nРисунок 1 — Центральный процессор\nПримените настройки абзаца подписи рисунка:\nСвойство Значение Название шрифта Times New Roman Размер шрифта 14 пт Выравнивание по центру Отступ слева 0 Отступ справа 0 Отступ первой строки 0 Интервал перед 14 пт Интервал после 14 пт Интервал междустрочный одинарный Такие настройки соответствуют государственному стандарту ГОСТ 7.32–2017 ( Скачать ГОСТ 7.32–2017 ).\nЗадание 2 В новом абзаце добавьте две картинки:\nДиск SSD Диск M.2 SSD Настройте положение в тексте для картинок.\nИзмените размеры картинок. Убедитесь, что две картинки умещаются в одной строке.\nЕсли нужно обрезать картику с края, используйте инструмент Обрезка:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e В следующем абзаце введите:\nаб\nмежду буквами а и б добавьте табуляцию (нажмите клавишу Tab на клавиатуре).\nНастройте табуляцию равной 8 см, по центру.\nВ следующем абзаце добавьте подпись:\nРисунок 2 — Виды твердотельных дисков: а) SSD, б) M.2 SSD\nДобавьте в подпись рисунка перенос на новую строку без разрыва абзаца (комбинация клавиш Shift+Enter) после двоеточия (:)\nЗадание 3 Добавьте таблицу 5 на 2 (5 строк, 2 столбца). Выключите границы таблицы. Поместите в первый столбец таблицы буквы: а, б, в, г, д Поместите во второй столбец таблицы фотографии планок оперативной памяти (DDR1, DDR2, DDR3, DDR4, DDR5) Под таблицей добавьте подпись:\nРисунок 3 — Поколения оперативной памяти: а) DDR1, б) DDR2, в) DDR3, г) DDR4, д) DDR5\nДобавьте в подпись рисунка перенос на новую строку без разрыва абзаца (Shift+Enter) после двоеточия (:)\nЗадание 4 Добавьте в документ ещё три рисунка:\nРисунок 4 состоит из одной картинки. Рисунок оформляется как в задании 1. Картинка должна представлять собой материнскую плату компьютера. Картинку можно найти в интернете. Рисунок 5 состоит из двух или или более картинок. Рисунок оформляется как в задании 2. На рисунке должны быть изображены инструменты ввода информации: микрофон, веб-камера, клавиатура, мышь и т.п.. Картинки можно найти в интернете. Рисунок 6 состоит из восьми или более картинок. Рисунок оформляется как в задании 3. На рисунке должны быть изображены инструменты вывода информации: монитор, наушники, VR-шлем и т.д.. Картинки можно найти в интернете. Ключевые слова Добавьте слова в свой глоссарий\nкартинка ввод информации изображение вывод информации рисунок размер изображения подпись рисунка высота обрезка изображения ширина ","permalink":"https://ilinyhgleb.github.io/posts/word/word_plots/","summary":"","title":"Редактор текстовых документов. Растровые изображения "},{"content":"Задание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e включите отображение стилей:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 1 С помощью поисковой системы Google Scholar (Google Академия) найдите и скачайте статью на любую интересующую вас тематику. С помощью российской научной библиотеки Elibrary найдите и скачайте статью на любую интересующую вас тематику. Тематика может отличаться от статьи, найденных с помощью Google Академия. Суммарные требования на все статьи:\nДолжно быть не менее 3 рисунков. Должно быть не менее 2 таблиц. Должно быть не менее 2 формул. Задание 2 Создайте новый файл .docx, сохраните его с названием статьи.docx.\nСодержимое найденных статей необходимо перенести в файл Статьи.docx и оформить их как в ГОСТ 7.32–2017 ( Скачать ГОСТ 7.32–2017 ).\nДля этого создайте стили:\nНазвание Шрифт Начертание Выравнивание Отсупы (слева, справа, первой строки) Интервалы (перед, после, междустрочный) Табуляции $Основной_текст Times New Roman, 14 пт По ширине 0, 0, 1.25 см 0, 0, 1 $Название Times New Roman, 16 пт Полужирный По центру 0, 0, 0 14 пт, 14 пт, 1 $Авторы Times New Roman, 12 пт Курсив По левому краю 2см, 0, 0 12 пт, 12 пт, 1 $Организации Times New Roman, 12 пт Курсив По левому краю 2 см, 0, 0 12 пт, 12 пт, 1 $Аннотация Times New Roman, 12 пт Курсив По ширине 2 см, 2 см, 0 12 пт, 0, 1 $Ключевые слова Times New Roman, 12 пт Курсив По ширине 0, 0, 0 0, 12 пт, 1 $УДК Times New Roman, 14 пт Полужирный По левому краю 0, 0, 0 0, 14 пт, 1 $Раздел Times New Roman, 14 пт Полужирный По левому краю 0, 0, 0 14 пт, 14 пт, 1 $Подраздел Times New Roman, 14 пт Полужирный По левому краю 0, 0, 0 14 пт, 14 пт, 1 $Рисунок Times New Roman, 14 пт По центру 0, 0, 0 14 пт, 0, 1 $Подпись_рисунка Times New Roman, 14 пт По центру 0, 0, 0 0, 14 пт, 1 $Подпись_таблицы Times New Roman, 14 пт По левому краю 0, 0, 0 14 пт, 14 пт, 1 $Формула Times New Roman, 14 пт По ширине 0, 0, 0 14 пт, 14 пт, 1 8.25 см - по центру, 16.49 см - по правому краю Для создания стиля нажмите \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Окно создания стиля $Основной_текст: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e При создании любого стиля укажите значение (нет) в поле Основан на стиле чтобы убрать наследование настроек из другого стиля.\nПосле создания стилей, примените их ко всем абзацам документа. Для этого поместите курсор в текст абзаца и нажмите на название стиля в меню стилей справа.\n","permalink":"https://ilinyhgleb.github.io/posts/word/word_styles/","summary":"","title":"Редактор текстовых документов. Стили"},{"content":"Задание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 1 Создадим таблицу заданного размера 6 на 8 (6 столбцов и 8 строк):\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e получим таблицу вида:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с помощью выделения отдельных ячеек и инструмента Объединить ячейки объединим ячейки как на схеме ниже:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e следующим шагом уберём верхнюю границу у двух ячеек в 3 и 4 столбцах с помощью инструмента Границы:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e добавим цвет для двух верхних строк таблицы с помощью инструмента заливка:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Теперь структура таблицы готова, внесём текст. С помощью стандартных инструментов настройки шрифта и настройки абзацев оформите вид начертания и выравнивания текста в таблице:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Также для выравнивания, в том числе вертикального, можно использовать инструмент Выравнивание:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Обратите внимание на содержимое таблицы, в ней указаны способы ввода описываемых символов. Стандартный алгоритм добавления символов с помощью инструмента Символ представлен на рисунке:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 2 Перед таблицей в отдельной строке с выравниванием по левому краю добавьте подпись таблицы:\nТаблица 1 — Специальные символы\nТакая подпись соответствует государственному стандарту ГОСТ 7.32–2017 ( Скачать ГОСТ 7.32–2017 ).\nЗадание 3 С помощью инструмента Символ найдите информацию о символах \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и добавьте её в таблицу. Для добавления новых строк используйте инструменты вставки:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 4 Скачайте файл: Файл задания В существующем текстовом документе добавьте новую таблицу и оформите её в соответствии с скачанным файлом.\nКлючевые слова Добавьте слова в свой глоссарий\nячейка таблица строка вставить строку сверху столбец вставить строку снизу выделить ячейку вставить столбец слева объединить ячейки вставить столбец справа использовать инструмент граница ячейки горизонтальное выравнивание заливка фона ячейки вертикальное выравнивание ширина таблицы высота таблицы ","permalink":"https://ilinyhgleb.github.io/posts/word/word_tables/","summary":"","title":"Редактор текстовых документов. Таблицы"},{"content":"В посте преставлены правила создания и именования веток и коммитов в Git репозитории проекта.\nВетки. Именования, правила main - ветка с production версией проекта. В эту ветку нельзя пушить. Изменения вносятся через pull-request из ветки dev dev - ветка с development версией проекта. В эту ветку нельзя пушить. Изменения вносятся через pull-request из веток f/... f/... - feature-ветки с новой функциональностью. В ветки можно пушить. Ветка удаляется сразу после слияния с веткой dev fix/... - ветки для исправления ошибок. Ответвляются от dev. Вносят только исправления без добавления новой функциональности. После слияния в dev ветка удаляется. Коммиты. Именование Сообщение коммита записывается в виде:\ntype(scope): description\nтип(область): описание\nТип Примечание: Нажми на элемент списка чтобы увидеть примеры\nfeature - добавление новой фунциональности feature(core): add new method\tfeature(core): add logging mechanism feature(backend): implement user registration endpoint feature(frontend): add search component feature(build): add docker support feature(git): add commit message template fix - исправление ошибки fix(core): handle None value in parser fix(backend): correct response status code fix(frontend): fix button alignment issue fix(git): resolve submodule update error refactor - изменение в проекте без изменения поведения refactor(repo): reorganize project file structure docs - изменение документации (README, wiki, API docs, changelog) docs(repo): update README docs(build): update site build guide docs(git): add branching strategy description docs(posts): fix typo in article style - изменение стиля кода (inline-комментарии, отступы, точки с запятой, переноси и т.д.), без изменения поведения style(core): format code with black style(frontend): remove unused imports style(test): align indentation in tests style(repo): fix markdown formatting test - добавление теста, изменения в тестах (в том числе те, что можно классифицировать по другим типам) test(core): add unit tests for parser test(backend): add api integration test test(frontend): update component snapshot test(repo): configure pytest markers Примечание: При создании теста вместе с новой фунциональностью, можно коммитить под типом feature.\nchore - вспомогательные задачи (сборка, зависимости, конфиги) chore(repo): update .gitignore chore(deps): remove unused js dependency chore(deps): remove jquery dependency chore(deps): drop react dependency chore(build): remove js dependency from build config chore(frontend): remove js dependency chore(release): bump version to 1.3.0 revert - отмена предыдущего коммита revert \u0026quot;feature(core): add new method\u0026quot; revert(frontend): revert button redesign ci - изменение в ci/cd конфигурации ci(build): add github actions workflow ci(repo): update ci pipeline config ci(test): add coverage report step content - изменение наполнения проекта (посты, статьи, содержание страниц) content(posts): add article about git history cleanup content(git): add post about rebase vs merge content(posts): add new blog post content(posts): add new article about git commits Примечание: В одном коммите используется только один тип.\nОбласть core — основная бизнес-логика проекта, ключевые модули и базовые компоненты feature(core): add validation layer refactor(core): simplify data model fix(core): prevent division by zero repo — изменения на уровне репозитория (структура, .gitignore, meta-файлы) refactor(repo): reorganize project structure chore(repo): update .gitignore docs(repo): update contributing guide release — релизы, версии, changelog, теги, подготовка к выпуску chore(release): bump version to 1.4.0 docs(release): update changelog release: prepare v1.4.0 deps — зависимости проекта (добавление, обновление, удаление библиотек, submodules) chore(deps): update requests dependency chore(deps): remove unused js dependency chore(deps): bump theme submodule build — сборка проекта и инструменты (CI/CD, webpack, vite, make, scripts) build: update webpack configuration chore(build): optimize build script docs(build): update build instructions frontend — клиентская часть, UI, стили, браузерная логика feature(frontend): add dark mode fix(frontend): fix layout overflow refactor(frontend): split ui components posts — контент: статьи, посты, Markdown-файлы блога content(posts): add new blog post docs(posts): fix typo in article refactor(posts): reorganize post categories backend — серверная часть, API, бизнес-логика на стороне сервера feature(backend): add authentication endpoint fix(backend): handle invalid token refactor(backend): extract service layer git — настройки и управление Git (hooks, submodules, workflows, ignore rules) chore(git): update submodule reference docs(git): describe merge strategy fix(git): resolve rebase conflict Примечание: В одном коммите используется только одна область. Если коммит затрагивает больше областей, то нужно повысить уровень области, вплоть до repo.\nОписание Сообщение коммита объясняет, что конкретный коммит (а не автор коммита) изменяет в репозитории.\nПоэтому описание пишется в обезличенной форме в виде:\nглагол + существительное\nглагол - в настоящем времени в третьем лице в несовершенном виде существительное - в винительном падеже описание начинается со строчной буквы точка в конце не ставится Примеры см. в предыдущих разделах\nДанные правила написаны в частичном соответствии со спецификацией https://www.conventionalcommits.org/\n","permalink":"https://ilinyhgleb.github.io/posts/git/git_rules/","summary":"\u003cp\u003eВ посте преставлены правила создания и именования веток и коммитов в Git репозитории проекта.\u003c/p\u003e","title":"Правила работы с репозиторием GIT"},{"content":" Векторное изображение — это цифровое изображение, состоящее из математически описанных геометрических примитивов (точек, линий, кривых, многоугольников). Примитив - простая геометрическая фигура. На основе примитивов строятся более сложные составные фигуры.\nПреимуществом векторного изображения является то, что оно масштабируется без потери качества, так как при изменении размера все геометрические фигуры пересчитываются заново.\nЗадание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 1 Добавьте на страницу инструмент - Полотно: Полотно предствляет собой ограниченное рабочее пространство, которое удобно использовать для создания векторных рисунков. После создания векторного рисунка в полотне, его можно вырезать и вставить в любую часть документа. Также можно оставить рисунок в полотне и при необходимости перемещать само полотно.\nКликните по полотну и выберите меню с фигурами: Теперь вы можете выбрать любую фигуру и добавить её в ваш рисунок.\nЗадание 2 Нарисуйте:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 3 Нарисуйте схему:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 4 Нарисуйте схему:\n","permalink":"https://ilinyhgleb.github.io/posts/word/word_painting/","summary":"","title":"Редактор текстовых документов. Векторная графика"},{"content":"Задание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 1 Наша задача - получить формулу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для этого вставьте формулу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в текущем месте курсора появится формула, а в интерфейсе появится вкладка Работа с формулами / Конструктор.\nНачнём создание с добавления структуры дроби (дифференциала):\nпоменяем символ в числителе введя \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e с клавиатуры:\nсимвол \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в знаменателе удалим:\nдля добавления \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e добавим структуру с нижним индексом:\nдля ввода \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e выберем греческие буквы:\nнижний индекс \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e введём с клавиатуры:\nвведём символ равно ( \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ) с клавиатуры и добавим структуру с нижним индексом:\nвведём греческую букву \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e :\nсимвол \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e введём с клавиатуры:\nдобавим структуру круглых скобок (также круглые скобки можно ввести комбинацией клавиш ctrl+shift+9):\nвнутри скобок с клавиатуры введём символ \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e :\nв данном случае \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e обозначает вектор. Сделаем символ обычным текстом и применим настройку начертания - полужирный:\nформула готова, теперь ей нужно добавить номер и разместить в центре строки, для этого добавим два знака табуляции (с помощью клавиши Tab):\nдобавим номер формулы:\nнастроим шрифт формулы (Times New Roman, 12 пт):\nнастроим свойства абзаца. Добавим интервалы перед и после абзаца, равные высоте строки (размеру шрифта, 12 пт) для того, чтобы формула не сливалась с текстом. Междустрочный интервал выберем одинарным:\nиз окна настройки абзаца перейдём в настройки табуляции:\nдобавим табуляцию 8.25 см, соответствующую середине страницы (можно увидеть на линейке, что ширина страницы 16.5 см) с выравниванием по центру:\nдобавим табуляцию 16.49 см, соответствующую правому краю страницы с небольшим отступом (0.01 см) с выравниванием по правому краю:\nТаким образом, мы получим формулу, оформление которой соответствует ГОСТ 7.32-2017:\nЗадание 2 Добавьте формулу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Добавьте номер формулы.\nЗадание 3 Оформите формулу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Используйте структуры: скобка, матрица, индекс.\nДобавьте номер формулы.\nЗадание 4 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Используйте структуры: крупный оператор, скобка, индекс.\nДобавьте номер формулы.\nЗадание 5 Оформите формулу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Используйте структуры: крупный оператор, скобка, индекс, предел и логарифм.\nНе добавляйте номер формулы, но выравняйте формулу с помощью табуляций, как и в других заданиях.\nЗадание 6 \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Используйте структуры: крупный оператор, индекс, дробь.\nДобавьте номер формулы.\nКлючевые слова Добавьте слова в свой глоссарий\nчислитель дроби нижний индекс знаменатель дроби верхний индекс формула круглые скобки знак равно номер формулы вставить формулу табуляция структура формулы центр строки матрица правый край строки ","permalink":"https://ilinyhgleb.github.io/posts/word/word_formulas/","summary":"","title":"Редактор текстовых документов. Формулы"},{"content":"Государственный стандарт оформления документов ГОСТ 7.32-2017 ГОСТ 7.32-2017 — Основной документ, на который стоит опираться при оформлении отчётные документов (лабораторные работы, курсовые работы, выпускная квалификационная работа, отчёты о научно-исследователькой работе и т.п.). Скачать ГОСТ 7.32–2017 Полное название документа ГОСТ 7.32-2017. Межгосударственный стандарт. Система стандартов по информации, библиотечному и издательскому делу. Отчёт о научно-исследовательской работе. Структура и правила оформления. Краткое содержание ГОСТа:\nСтруктурные элементы отчёта Требования к структурным элементам отчёта Титульный лист Список исполнителей Реферат Содержание Термины и определения Перечень сокращений и обозначений Введение Основная часть отчёта о НИР Заключение Список использованных источников Приложения Правила оформления отчёта Форматы Основными форматами файлов текстовых документов являются:\n.docx - Office Open XML открытый формат. Является zip-архивом. Можно открыть как архив для получения медиа-данных Открытие документа как архива: .doc - проприетарные документы MS Word .dotm - шаблон документов Word Настройка рабочего пространства Перед работой с текстовым документов в программе текстового процессора включают:\nневидимые символы, которые указывают в тексте на пробелы между словами, окочание абзаца, переход на новую страницу и т.п. линейку, которая указывает размеры и положение полей, отступов, табуляций стили текста для документов с разными стилями схему документа, которая представляет собой оглавление документа. Используется для документов среднего или большого размера Общий вид рабочего пространства при работе с документов: Для того, чтобы создать такой же вид документа включите настройки:\nОсновные элементы текстового документа Основные элементы текстового документа указаны на схеме:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ¶ - символ окончания абзаца. С помощью этого символа определяются границы абзаца. Другими словами, абзац - текст между двумя значками ¶\nПоля Поля можно выбрать из стандартного набора полей, либо можно настроить вручную в настройке Параметров страницы:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Поля выбираются:\nисходя из полученных требований к конкретному документу по государственному стандарту ГОСТ 7.32-2017: левое 3см, правое 1.5см, верхнее и нижнее 2см для непечатных документов можно выбрать узкие поля Отступы Отступы используются для смещения текста по горизонтали:\nОтступ слева - расстояние от правой границы левого поля до текста Отступ справа - расстояние от левой границы правого поля до текста Отступ первой строки - рассятоние от правой границы левого поля до первой строки абзаца Ниже представлены различные варианты настроек отступов: Отступы можно настроить с помощью настроек абзаца или с помощью линейки.\nИнтервалы Интервалы используются для смещения текста по вертикали.\nИнтевалы применяются к вертикальному расстоянию до или после абзаца (конец абзаца определяется значком ¶).\nИнтервалы используются:\nв заголовках/подзаголовках для визуального разделения от основного текста для пропуска строк вместо пустых строк Ниже представлены различные варианты настроек интервалов: Междустрочный интервал Междустрочный интервал определяет вертикальное расстояние между строк внутри абзаца.\nНиже представлены различные варианты настроек междустрочного интевала:\nТабуляция Табуляция используется для горизонтального распределения текста в строке. Например для создания полей для заполнения (Фамилия, Имя, Учебная группа и т.п.).\nНиже представлен пример заполнения поля \u0026ldquo;Проверили\u0026rdquo;. Подчёркнутое поле не сдигается при заполнении поля.\nПоле \u0026ldquo;Проверили\u0026rdquo; до заполнения: Поле \u0026ldquo;Проверили\u0026rdquo; после заполнения: Новая строка без нового абзаца Новая строка без нового абзаца обозначается символом ↵ и используется для перехода на следующую строку без окончания абзаца. То есть новая строка будет создана в текущем абзаце.\nСимвол ↵ используется при необходимости визуально перенести текст на новую строку, но не заканчивать предложение и абзац.\nОбычное окончание абзаца (символ ¶) должно использоваться при его логическом завершении. Например при окончании предложения. Если предложение не закончено, то использовать ¶ - некорректно.\nДля быстрой вставки символа ↵ используется комбинация клавиш: shift+enter\nПример использования новой строки без нового абзаца представлен ниже:\nРазделы, разрывы страниц, разрывы разделов Разрывы страницы используются для перехода к следующей странице, если необходимо на текущей странице оставить пустое пространство. Разрыв страницы добавляется с помощью комбинации клавиш: ctrl+enter В тексте разрыв страницы обозначается одноимёнными символом Документ делится с одной стороны на страницы, с другой стороны - на разделы, которые обозначают разные части документа. Разделы могут могут носить смысл глав книги, параграфов, секций и других структурных элементов документа.\nРазличные разделы могут иметь различные настройки страницы (поля, колонки, колонтитулы, ориентацию страницы и т.п.). Разделы отделяются разрывами раздела. Настройки разрывов страниц и разрывов разделов представлены ниже:\nСтили Стили используются для однотипного форматирования подобных друг другу и логически связанных фрагментов текста. Текст без редактирования: Создание стилей для разных типов абзацев: Применение стилей для всех абзацев документа: Правила применения и рекомендации: использовать для документов из 10 страниц и более не использовать стиль Обычный, т.к. он используется для любого текста, в том числе надписей на рисунках и нестилизованных частях документа. создать для основного текста свой стиль создать свой шаблон для стилей в отдельном документе .docx или .dotm и использовать его для всех документов использовать стили для всех элементов документа (заголовки, текст, подписи рисунков, подписи таблиц, надписей на рисунках и т.д.). Автоматическая нумерация При работе с большими документами (большое количество рисунков, таблиц, формул) возникает необходимость автоматической нумерации рисунков, таблиц, формул и других элементов текста.\nДля этого используются инструменты Название и Перекрёстная ссылка: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e названия добавляются в подписи рисунков, таблиц, формул и т.п. перекрестные ссылки используются для ссылок на названия из текста Документ с использованием ссылок на рисунки по-умолчанию:\nПри добавлении в такой документ нового рисунка, нумерация в подписи рисунка и ссылка изменятся автоматически.\nЕсли выделить текст, то названия и ссылки выделены серым цветом:\nОднако ссылки в виде \u0026ldquo;На Рис. 1\u0026rdquo; (Рис с большой буквы) не используются в русском языке. В тексте на русском языке будет написано либо \u0026ldquo;На рис. 1\u0026rdquo;, либо \u0026ldquo;На рисунке 1\u0026rdquo;.\nДля реализации таких записей используется усложнённый вариант с двойными абзацами (комбинация клавиш ctrl+alt+enter, работает не во всех текстовых редакторах):\nДвойной абзац позволяет в ссылке использовать только номер, без подписи \u0026ldquo;Рис.\u0026rdquo;: Пример использования: Если поменять местами рисунки: и обновить ссылки и названия: то номера изменятся как в подписях, так и в тексте: Пример использования пользовательского названия Помимо стандартных названия Рисунок, Таблица, Формула пользователь может создавать свои названия, для которых также будет работать автоматическая нумерация.\nИспользование дополнительного названия Источник для источников литературы: Стандартные настройки текста При отсутствии специальных требований к тексту принято использовать следующие настройки абзацев и шрифта:\nШрифт Times New Roman Размер шрифта 14пт или 12пт (пт - пункты, специальная типографская единица измерения шрифтов, 1пт=0,376 мм, 12пт=4,23мм) одинарный междустрочный интервал без интервалов до и после отступ первой (красной) строки 1,25cм выравнивание по ширине Ключевые слова Добавьте слова в свой глоссарий\nАбзац Настройка рабочего пространства Поля Отступ Интервал до абзца Интервал после абзаца Междустрочный интервал Табуляция Новая строка без нового абзаца Формат Раздел разрыв страницы разыв раздела Стандартные настройки текста Автоматическая нумерация Стиль Редактирование Текст Вопросы для самоконтроля Зачем нужен ГОСТ 7.32-2017? Чем интервал отличается от отступа? Что такое междустрочный интервал? Что такое табуляция? Какие горячие клавиши создают раздел страницы? ","permalink":"https://ilinyhgleb.github.io/posts/word/word_base/","summary":"","title":"Редактор текстовых документов. Основные понятия"},{"content":"В работе рассматриваются: Основные принципы работы с текстовыми процессорами. Создание и редактирование документов. Размер, начертание шрифта. Маркерованные, нумерованные списки. Параметры абзаца.\nЗадание 0 Откройте любой офисный редактор текстовых документов. В данной работе будут использоваться скриншоты из редактора MS Word 2007, однако подойдёт любой другой аналог (Only Office, Libre Office и др.).\nПеред работой включите отображение скрытых символов:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e и включите линейку:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 1 В новом документе введите текст с картинки: Задание 2 Оформите текст. Используйте настройки шрифта (тип, размер, вид начертания) и настройки абзаца (интервалы, отступы, выравнивание) как на рисунке ниже.\nДля однотипных абзацев используются одинаковые настройки. Например название шрифта основного текста – Times New Roman, размер шрифта – 14 пт, выравнивание по ширине, отступ первой строки 1.25 см.\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 3 На новой странице введите текст: и оформите его в соответствии с рисунком:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Задание 4 На новую страницу скопируйте исходный текст научной статьи: Исходный текст 1 УДК 539.3\nИДЕНТИФИКАЦИЯ ТЕРМОВЯЗКОУПРУГОЙ МОДЕЛИ СШИТОГО ПОЛИМЕРА С УЧЕТОМ БОЛЬШИХ ДЕФОРМАЦИЙ И ЕЕ ПРИМЕНЕНИЕ\nО.Ю. Сметанников1, Ю.Б. Фасхутдинова1, Г.В. Ильиных1\n1Пермский национальный исследовательский политехнический университет, Пермь, Россия\nЦелью работы является развитие модели вязкоупругого термомеханического поведения изделий из сшитого полиэтилена (СПЭ), демонстрирующего эффекты памяти формы. Основная область применения данного класса материалов – термоусаживаемые трубки и их модификации, для которых характерны величины начального расширения (экспандинга) в 100 и более процентов. Симо и Хольцапфелем были предложены модифицированные определяющие соотношения, представляющие собой синтез вязкоупругой модели Прони и гиперупругой модели на основе потенциала упругой энергии. В публикуемой работе предлагается методика идентификации как демпфирующих, так и нелинейно упругих материальных констант в случае наличия больших деформаций. Разработана и реализована программа экспериментов по определению материальных констант сшитого полиэтилена, включающая процедуру снижения размерности задачи нелинейной оптимизации при нахождении коэффициентов экспоненциальной аппроксимации функции релаксации. Приведено описание разработанного алгоритма поиска материальных констант гиперупругой модели по результатам эксперимента на циклическое нагружение образца большими деформациями в интервале высокоэластического поведения, а также ее адаптации в ANSYS с учетом наличия релаксационных свойств. В качестве иллюстрации применения обновленной физической модели приведен пример конечно-элементного расчета давления термоусаживаемых трубок при осаживании на жесткую цилиндрическую поверхность, а также инженерная методика, позволяющая производить подобные вычисления в таблице Excel.\nКлючевые слова: память формы, сшитый полиэтилен, термоусаживаемая трубка, термомеханическое поведение, вязкоупругость, гиперупругость, большие деформации\nВ настоящее время растет интерес к использованию высокотехнологичных полимеров и связанная с этим потребность в теоретической разработке моделей для описания свойств таких материалов. Современные, так называемые умные материалы обладают особыми свойствами, которые открывают новые возможности для создания уникальных продуктов, используемых в различных отраслях, таких как медицина, строительство и машиностроение. Одним из таких свойств является эффект памяти формы (ЭПФ). Он проявляется в способности некоторых материалов после деформации под воздействием температуры возвращаться к исходному размеру и форме [1–8]. Это позволяет создать условия для “программирования” желаемой конечной деформации изделия или контролировать сам процесс деформации. Актуальность данного исследования заключается в идентификации выбранной физической модели, обладающей признаками ЭПФ, на основе разработанной экспериментальной методики с целью получения точных расчетных данных при проектировании как процесса производства изделий из СПЭ, так и эксплуатационных режимов.\nСПИСОК ЛИТЕРАТУРЫ\nSmetannikov O.Yu., Faskhutdinova Yu.B., Subbotin E.V. ANSYS Study of the ShapeMemory Effect in Cross-Linked Polyethylene Products // J. Appl. Mech. Tech. Phys. 2023. V. 63. № 7. P. 1138–1154. https://doi.org/10.1134/s0021894422070112 Lendlein A., Gould O.E.C. Reprogrammable recovery and actuation behavior of shapememory polymers // Nat. Rev. Mater. 2019. V. 4. P. 116–133. https://doi.org/10.1038/s41578-018-0078-8 Любимова А.С., Ткачук А.И., Кузнецова П.А. Полимеры с памятью формы на основе эпоксидных смол // Труды ВИАМ. 2024. № 4 (134). С. 50–63. https://doi.org/10.18577/2307-6046-2024-0-4-50-63 Li J., Duan Q., Zhang E., Wang J. Applications of shape memory polymers in kinetic buildings // Adv. Mater. Sci. Eng. 2018. V. 2018. P. 7453698. https://doi.org/10.1155/2018/7453698 Скачайте шаблон : Файл шаблона Оформите (настройки шрифтов и абзацев) в соответствии с шаблоном.\nНа новую страницу перенесите текст: Исходный текст 2 MSC: 74D05, 74S05, 74H15\nА.А. Аdamov1, А.А. Kamenskikh2, Yu.О. Nosov2\n1Department of Nonlinear Mechanics of a Deformable Solid, Institute of Continuous Media Mechanics, Russia, Perm\n2Department of Computational Mathematics, Mechanics and Biomechanics, Perm National Research Polytechnic University, Russia, Perm\nDEFORMATIONAL BEHAVIOR OF THE flat SLIDING LAYER OF THE SPHERICAL bearing\nAnalysis of the friction properties of modified PTFE is performed, the functions describing the change in the friction coefficient depending on the pressure level with a maximum error from the experiments results less than 1% are proposed in the work. The influence of friction on the deformation behavior of the flat sliding layer of the spherical bearing on a periodicity cell model is considered. The geometrical configuration of the flat sliding layer with truncated spherical hole for the lubricant is considered. The periodicity cell includes one hole for lubrication. A series of numerical experiments for three options for the thickness of the sliding layer from 4 to 8 mm with a recess for the lubricant, in the unfavorable case the absence of lubricant is performed. The pattern of geometric configuration hole change with increasing pressure level is established.\nKeywords: Contact, Friction, Modified PTFE, Antifriction layer and Deformation behavior\nA lot of elements and designs applied in mechanical engineering, construction, medicine and other areas work in the conditions of contact interaction. These designs are costly. It is difficult to repair them. High requirements with respect to durability, reliability and service life are presented to them. The antifriction coatings and layers are widely used to create favorable conditions for the contact nodes operation. As examples of systems with contact layers and coverings it is possible to note sliding bearings [1], hip endoprosthesis [2], hydraulic turbines [3] and so on. These structures include elements of transport and logistics systems, such as temperature joints and supporting parts of bridge bearing parts. Researchers note the main actual problems of transport and logistics systems related to bridge construction: geometric configuration and technology of deformation joints [4, 5], bearings [6, 7], bridge spans [8], hoisting structures of draw bridges [9], as well as other elements of bridge structures. We can note a special interest in the deformation behavior of the bearing of bridge spans [10-14, etc.].\nREFERENCES\nRakowski, W.A. and Zimowski, S. Polyesterimide composites as a sensor material for sliding bearings. Composites: Part B engineering, 37, 2006, pp. 81-88. Pinchuk, L.S., Nikolaev, V.I., Tsvetkova, E.A. and Goldade, V.A. Tribology and biophysics of artificial joints: Elsevier, 2006, pp. 350. Anisimov, A.V., Bakhareva, V.E. and Nikolaev, G.I. Antifriction Carbon Plastics in Machine Building. Journal of Friction and Wear, 28(6), 2007, pp. 541-545. Yankovsky, L.V., Kochetkov, A.V., Ovsyannikov, S.V. and Trofimenko, Yu.A. Diagnostics of damage to the span of metal bridges: a monograph. Technical regulation in transport construction, 3(7), 2014, pp. 6-12. Оформите текст аналогичным образом. Для быстрого копирования настроек абзаца используйте инструмент - форматирование по образцу:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для быстрого изменения регистра используйте инструмент - регистр:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Для форматирования чисел, обозначающих номер организации, используйте инструмент - надстрочный знак:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ","permalink":"https://ilinyhgleb.github.io/posts/word/word_formatting/","summary":"\u003cp\u003e\u003cem\u003eВ работе рассматриваются:\nОсновные принципы работы с текстовыми процессорами.\nСоздание и редактирование документов.\nРазмер, начертание шрифта.\nМаркерованные, нумерованные списки.\nПараметры абзаца.\u003c/em\u003e\u003c/p\u003e","title":"Форматирование текстовых документов"},{"content":"Цель работы: изучение принципов архивации файлов, функций и режимов работы архиваторов, приобретение практических навыков работы по созданию архивных файлов и извлечению файлов из архивов.\nАрхивация Архивация (упаковка) — помещение исходных файлов (данных) в архивный файл в сжатом (англ. lossy) или несжатом (англ. lossless) виде. Сжатие данных — алгоритмическое преобразование данных, которое уменьшает их объём. При этом данные не теряются. Архивация нужна для:\nхранения данных в сжатом виде (файлы меньше занимают места на диске); создания резервных копий используемых файлов. Нужны на случай потери или порчи по каким-либо причинам основной копии (невнимательность пользователя, повреждение жёсткого диска, заражение компьютера вирусом и т.д.); подготовки файлов для отправки по электронной почте, или с помощью других интернет-сервисов, или с помощью других каналов коммуникации; Выбор между сжатием с потерями (lossy) и без потерь (lossless) зависит от типа данных и требований к их качеству.\nсжатие без потерь обязательно там, где важна абсолютная точность и сохранение каждого бита информации. Например, при архивации текстовых документов, исходного кода программ, баз данных, исполняемых файлов (.exe), а также в профессиональной обработке фотографий (форматы RAW, PNG) и аудио (FLAC), где любое искажение недопустимо. сжатие с потерями широко применяется для мультимедийного контента, предназначенного для конечного пользователя — фотографии в формате JPEG, музыка в MP3/AAC, видео в MP4/AVI, — где алгоритм намеренно отбрасывает малозаметные для человеческого глаза или уха детали, уменьшая размер файла в десятки раз при приемлемом качестве. В таблице приведены различные форматы файлов с разбивкой по типу сжатия:\nКатегория С потерями (Lossy) Без потерь (Lossless) Изображения JPEG, WebP*, HEIC PNG, BMP, TIFF, GIF, RAW, WebP* Аудио MP3, AAC, OGG, WMA FLAC, ALAC, WAV, AIFF Видео MP4, AVI, MKV, WebM, WMV FFV1, HuffYUV Архивы — ZIP, RAR, 7Z, GZ, TAR * WebP поддерживает оба типа сжатия\nПример сжатия изображения: Принцип архивации/сжатия данных RLE Существует много разных алгоритмов сжатия данных без потерь. Примеры таких алгоритмов:\nКодирование Хаффмана LZ77 LZ78 LZW Deflate Brotli Bzip2 Арифметическое кодирование PPM Рассмотрим принцип сжатия данных без потерь на примере кодирования длин серий (Run-Length Encoding, RLE). Это простой алгоритм. Он заменяет серии (последовательности) из двух или более одинаковых символов числом, обозначающим длину серии. После длины идёт сам символ. Алгоритм полезен для сильно избыточных данных, например простых картинок с большим количеством одинаковых пикселей.\nРассмотрим пример. На входе:\nAAABBCCCCDEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA На выходе:\n3A2B4C1D8E29A Как вы видите, преобразованный набор символов хранит ту же информацию, но занимает в 48/13≈3.7 раза меньше места! Число 3.7 - степень сжатия данных.\nСамостоятельное задание: Зашифруйте последовательности с помощью RLE (кодирования длин серий) и посчитайте степень сжатия:\nSRRRJJJAAAGOYAEEEAAASAVVVSCALLVVVPPPLASSSAAAAADDD GYUURRRJJJJJWWWWWWWWCCCCCCCCCCCCC HAAAAAVEEEEEEANNNNNNNIIIIICCCCEEEEEEEEDDDDDDDDDDAYY LZ77 LZ77 — алгоритм, использующий словарь и скользящее окно для поиска комбинаций символов в уже пройденных данных. Общая схема алгоритма заключается в:\nВходные данные читаются последовательно. Слева от текущей позиции - прочитанная часть символов Справа от текущей позиции - непрочитанная часть символов Cкользящее окно = прочитанная часть символов + непрочитанная часть символов Для символов непрочитанной части ищется наиболее длинное совпадение в прочитанной части. Если совпадение найдено, то составляется комбинация (смещение, длина, следующий символ). смещение указывает на сколько шагов надо сместиться назад, длина - количество совпадающих символов. Комбинация записывается в словарь В конце выходными данными является словарь комбинаций. Пример Рассмотрим пример. Мы хотим закодировать текст:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Наш первый шаг - выбрать размеры двух буферов.\nПервый буфер — это буфер просмотра прочитанной части символов. Размер этого буфера зависит от того, насколько далеко от текущей позиции алгоритм будет искать совпадение в просмотренных данных. Увеличение этого размера позволит найти больше повторящихся комбинаций и увеличить степень сжатия, но это займёт больше времени. Второй буфер — буфер просмотра непрочитанной части символов. Размер этого буфера зависит от максимальной длины комбинации, которую мы хотим записать исходя из требований к скорости алгорима и техническим характеристикам компьютера. Размер первого буфера может быть больше или равным размеру второго буфера. Для простоты выберем оба буфера, равными 6 символам.\nНачальная позиция:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Запишем в словарь символ c: (0,0,c), первый ноль - текущая позиция, второй ноль пишется, так как нет смещения. Идём дальше:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Запишем в словарь символ a: (0,0,a). Идём дальше:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Запишем в словарь символ b: (0,0,b). Идём дальше:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Запишем в словарь символ r: (0,0,r). Идём дальше:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Символ a уже встречался, поэтому считаем расстояние до него: 3 шага смещения. Следующий символ из непрочитанной части - c. Такого символа не было в комбинации, которую мы нашли. Поэтому длина комбинации - 1. Запишем в словарь: (3,1,c). Так как мы учли следующий за комбинацией символ c, то сместимся на два шага:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Текущий символ a мы уже встречали, причём дважды. Поэтому мы ищем наиболее длинную комбинацию: a, ad, ada, adab и т.д. Но не длиннее буфера непрочитанной области. Так как комбинаций длиннее 1 нет, то записываем в словарь найденную комбинацию с наименьшим смещением: (2,1,d). Идём дальше:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Удача! Первая длинная комбинация, которая позволит сэкономить много места! Символ a встречался 3 раза, однако самая длинная комбинация abra начинается с самого дальнего символа. Запишем в словарь комбинацию (7,4,r) и сместимся сразу на 5 позиций:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Символ r встречается 2 раза, при этом так же, как и в прошлый раз, с дальнего символа начинается более длинная комбинация. Причём комбинация включает символы также в непрочитанной зоне. Мы можем это также учесть. Запишем в словарь комбинацию rarra: (3,5,d).\nСобирём вместе все наши записи из словаря:\n(0,0,c) (0,0,a) (0,0,b) (0,0,r) (3,1,c) (2,1,d) (7,4,r) (3,5,d)\nБыла показана упрощённая схема алгоритма. Если мы посчитаем количество памяти, требующееся для хранения наших записей, то оно превысит количество памяти, необходимое для хранения исходной строки.\nАлгоритм начнёт работать, если мы значительно увеличим буфер прочитанной зоны и будем шифровать длинный исходный текст.\nСамостоятельное задание: Расшифруйте полученную в примере закодированную строку, запишите результат, сравните с исходной строкой. Придумайте последовательность длиной не меньше 20 символов и зашифруйте её с помощью алгоритма LZ77. В качестве последовательности можете использовать любой текст. Зашифруйте с помощью алгоритма LZ77 скороговорку: Карл у Клары украл кораллы, а Клара у Карла украла кларнет\nРасшифруйте текст, зашифрованный с помощью LZ77: (0,0,\u0026lsquo;т\u0026rsquo;) (0,0,\u0026lsquo;р\u0026rsquo;) (0,0,\u0026lsquo;и\u0026rsquo;) (0,0,\u0026lsquo;д\u0026rsquo;) (0,0,\u0026lsquo;ц\u0026rsquo;) (0,0,\u0026lsquo;а\u0026rsquo;) (6,1,\u0026lsquo;ь\u0026rsquo;) (0,0,\u0026rsquo; \u0026lsquo;) (9,3,\u0026rsquo; \u0026lsquo;) (0,0,\u0026lsquo;к\u0026rsquo;) (0,0,\u0026lsquo;о\u0026rsquo;) (5,1,\u0026lsquo;а\u0026rsquo;) (0,0,\u0026lsquo;б\u0026rsquo;) (0,0,\u0026lsquo;л\u0026rsquo;) (0,0,\u0026lsquo;я\u0026rsquo;) (8,1,\u0026lsquo;л\u0026rsquo;) (6,1,\u0026lsquo;в\u0026rsquo;) (13,1,\u0026lsquo;р\u0026rsquo;) (12,1,\u0026lsquo;в\u0026rsquo;) (6,1,\u0026lsquo;л\u0026rsquo;) (6,1,\u0026rsquo;,\u0026rsquo;) (12,13,\u0026lsquo;д\u0026rsquo;) (6,1,\u0026rsquo; \u0026lsquo;) (39,1,\u0026lsquo;а\u0026rsquo;) (37,1,\u0026rsquo; \u0026lsquo;) (10,1,\u0026rsquo; \u0026lsquo;) (0,0,\u0026lsquo;н\u0026rsquo;) (0,0,\u0026lsquo;е\u0026rsquo;) (3,1,\u0026lsquo;в\u0026rsquo;) (0,0,\u0026lsquo;ы\u0026rsquo;) (26,10,\u0026rsquo;\u0026rsquo;)\nАрхивы данных Архив – это специальным образом организованный файл, содержащий в себе один или несколько файлов в сжатом или несжатом виде. Также архив содержит служебную информацию об именах файлов, дате и времени их создания или модификации. Степень сжатия зависит от:\nиспользуемой программы, алгоритма сжатия, типа исходных файлов. Лучше всего сжимаются файлы картинок и текстовые файлы, для которых размер архива может достигать 5 – 40% от общего размера исходных файлов. Меньше сжимаются файлы исполняемых программ и загрузочных модулей — 60 – 90%. Почти не сжимаются уже заархивированные файлы.\nПример сжатия файла с 412.2 Кб до 244 Кб: В оглавлении архивного файла (архива) для каждого содержащегося в нём файла хранится следующая информация:\nимя файла; сведения о каталоге, в котором содержится файл; дата и время последней модификации файла; размер файла на диске и в архиве; код циклического контроля для каждого файла, используемый для проверки целостности архива. Для архивации используются специальные программы - Архиваторы, осуществляющие упаковку и сжатие исходных файлов.\nАрхиваторы позволяют:\nсоздавать архивы с файлами; защищать созданные архивы паролем (получить данные из архива можно только введя пароль); разделять большой архивный файл на несколько частей (многотомный архив) при необходимости переноса данных на нескольких носителях ограниченного объёма; сохранять и восстанавливать структуру подкаталогов. Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в архив. Программы для архивации отличаются используемыми методами сжатия, что соответственно влияет на степень сжатия. Например архиватор 7-zip использует алгоритм сжатия данных по словарю LZMA, схожий с рассмотренным выше алгоритмом LZ77.\nДля того чтобы воспользоваться информацией, запакованной в архив, необходимо архив раскрыть или распаковать. Это делается либо программой-архиватором, либо парной к ней программой-разархиватором.\nРазархивация (распаковка) — процесс восстановления файлов из архива в первоначальном виде. При распаковке файлы извлекаются из архива и помещаются на диск или в оперативную память. Архиваторы имеют следующие функциональные возможности:\nУменьшение требуемого объёма памяти для хранения файлов от 20% до 90% первоначального объёма. Обновление в архиве только тех файлов, которые изменялись со времени их последнего занесения в архив, т.е. программа-упаковщик сама следит за изменениями, внесенными пользователем в архивируемые файлы, и помещает в архив только новые и измененные файлы. Объединение группы файлов с сохранением в архиве имен директорий с именами файлов, что позволяет при разархивации восстанавливать полную структуру директорий и файлов. Написания комментариев к архиву и файлам в архиве. Создание саморазархивируемых архивов, которые для извлечения файлов не требуют наличия самого архиватора. Создание многотомных архивов – последовательности архивных файлов. Многотомные архивы предназначены для архивации больших комплексов файлов на носители (например, флеш-память). Популярные архиваторы: Архиватор Платформа Лицензия Ключевые преимущества Поддерживаемые форматы 7-Zip Windows, Linux, macOS Открытая (LGPL) Лучшее сжатие (LZMA2), шифрование AES-256, портативная версия 7z, ZIP, TAR, RAR (распаковка), +20 форматов PeaZip Windows, Linux, macOS, BSD Открытая (LGPL/BSD) Поддержка 200+ форматов, двухфакторная аутентификация, портативная версия ZIP, 7Z, RAR, TAR, PEA, +190 форматов Keka macOS, Linux Проприетарная (бесплатная загрузка) Нативный интерфейс macOS, перетаскивание, высокая скорость 7Z, ZIP, TAR, RAR (распаковка), DMG The Unarchiver macOS Проприетарная (бесплатная) Лёгкий, поддержка 30+ редких форматов, интеграция с Finder RAR, 7Z, ZIP, ISO, CAB (только распаковка) WinRAR Windows, Linux, Android, macOS Проприетарная (условно-бесплатная) Превосходное сжатие RAR/RAR5, функции восстановления архивов RAR, ZIP, 7Z, ISO, CAB WinZip Windows, macOS Проприетарная (коммерческая) Интеграция с облаками (Dropbox, GDrive), инструменты для PDF, корпоративное шифрование ZIP, ZIPX, LHA, CAB PowerArchiver Windows Проприетарная (условно-бесплатная) Поддержка 40+ форматов, шифрование FIPS 140-2, планировщик резервных копий ZIP, 7Z, RAR, ISO, VHD BorgBackup Linux Открытая (BSD) Дедупликация, шифрование, инкрементные снимки, поддержка SSH Резервные архивы (зашифрованные) restic Кроссплатформенный Открытая (BSD) Зашифрованные дедуплицированные архивы, поддержка облачных бэкендов (S3, SFTP) Резервные репозитории Другие архиваторы вы можете посмотреть в списке архиваторов.\nПрактика Задание 1. Сбор информации для последующего архивирования На рабочем столе создайте директорию и назовите её Информатика_архивация. В папке Информатика_архивация создайте текстовый файл результаты архивации.txt Внутри папки Информатика_архивация создайте директорию Архивация картинок, и с помощью браузера и любой поисковой системы найдите 10 фотографий городов, природы, людей из Вашей страны и скачайте их в данную директорию. Нажмите правой клавишей мыши (ПКМ) по директории Архивация картинок, нажмите левой клавишей мыши (ЛКМ) по пункту Свойства, посмотрите на размер папки в байтах и запишите это значение в файл результаты архивации.txt в виде: размер директории \u0026#34;Архивация картинок\u0026#34; до архивации составляет ... байт Внутри Информатика_архивация создайте директорию Архивация PDF документов, и с помощью браузера найдите 5 любых статей по интересующей вас теме из энциклопедии Wikipedia на Вашем родном языке. Скачайте статьи в директорию Архивация PDF документов как документы формата PDF. Для этого на нужной странице нажмите ПКМ и выберите Сохранить страницу как, далее измените тип файла на Сохранить как PDF PDF (Portable Document Format) — универсальный открытый кроссплатформенный формат файлов, в котором можно хранить и передавать отчёты, статьи, презентации и другие документы. Файлы такого формата можно создать с помощью редактора текстовых документов из файлов .docx, с помощью Latex-редактора, с помощью редактора презентаций и многих других программ. Нажмите ПКМ по директории Архивация PDF документов, нажмите ЛКМ по пункту Свойства, посмотрите на размер папки в байтах и запишите это значение в файл результаты архивации.txt: размер директории \u0026#34;Архивация PDF документов\u0026#34; до архивации составляет ... байт Внутри папки Информатика_архивация создайте директорию Архивация HTML-страниц, и с помощью браузера найдите 5 любых статей на интересующую вас тему из энциклопедии Wikipedia на русском языке и скачайте их в данную директорию как HTML-страницы.\nНажмите ПКМ по директории Архивация HTML-страниц, нажмите левой клавишей мыши (ЛКМ) по пункту Свойства, посмотрите на размер папки в байтах и запишите это значение в файл результаты архивации.txt:\nразмер директории \u0026#34;Архивация HTML-страниц\u0026#34; до архивации составляет ... байт Задание 2. Создание архива Зайдите в директорию Информатика_архивация Нажмите ПКМ по директории Архивация картинок, наведите на пункт 7-Zip и нажмите ЛКМ по Добавить к архиву\u0026hellip; Выберите формат архива zip и максимальный уровень сжатия: Параметры создания архива (а — Формат архива, б — Уровень сжатия): Посмотрите на размер полученного архива в байтах и добавьте запись в файл результаты архивации.txt в виде размер директории \u0026#34;Архивация картинок\u0026#34; после архивации составляет ... байт Посчитайте (вы можете использовать приложение Калькулятор) значение того, какую долю в процентах занимает размер архива от размера директории до архивации. Добавьте запись об этом в файл результаты архивации.txt в виде Соотношение размера архива \u0026#34;Архивация картинок.zip\u0026#34; к размеру исходной директории равно ... \\% Посчитайте степень сжатия архива: Степень сжатия равна ... Повторите пункты 1—6 для Архивация PDF документов Повторите пункты 1—6 для Архивация HTML-страниц В файл результаты архивации.txt добавьте в свободной форме оценку сравнения трёх результатов архивации. Загрузите файлы результаты архивации.txt, Архивация картинок.zip, Архивация PDF документов.zip и Архивация HTML-страниц.zip в папку Архивация в папке Информатика в вашем облачном хранилище. Задание 3. Извлечение файлов из архива Создайте на Рабочем столе папку Извлечение.\nВыберите архив Архивация картинок.zip\nЩёлкните по нему ПКМ, выберите пункт Извлечь всё\u0026hellip;\nРаспакуйте его на Рабочий стол в папку Извлечение. Для этого щелчком по кнопке Извлечь откройте окно задания параметров извлечения из архива, в котором укажите нужную папку в дереве папок Нажмите кнопку ОК.\nОзнакомьтесь с результатом извлечения.\nПовторите пункты 2—6 для архива Архивация PDF документов.zip\nПовторите пункты 2—6 для архива Архивация HTML-страниц.zip\nУдалите папку Извлечение с Рабочего стола.\nКлючевые слова Добавьте слова в свой глоссарий\nАрхивация Степень сжатия Упаковка Распаковка Сжатие данных Разархивация Алгоритм сжатия Формат архива Потери данных Словарь Степень сжатия Скользящее окно Архив Смещение Архиватор Длина комбинации Сжатие с потерями Прочитанная часть Сжатие без потерь Непрочитанная часть Кодирование длин серий Вопросы для самоконтроля В чём принципиальная разница между сжатием с потерями (lossy) и без потерь (lossless)? Приведите по одному примеру типа файлов, для которого уместно использовать каждый из этих методов. Из каких трёх элементов состоит запись в словаре алгоритма LZ77? Кратко объясните, что означает каждый из них: смещение, длина, следующий символ. Почему текстовые файлы и простые изображения сжимаются хорошо (до 5–40% от исходного размера), а уже заархивированные файлы или видео в MP4 — почти не сжимаются? Дополнительное (необязательное) задание. Программирование Напишите программу кодирования и декодирования данных методами RLE и LZ77. Сравните время работы таких алгоритмов на входных данных различной длины. Сравните размер закодированных данных и степень сжатия алгоритмов. ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/archivation/","summary":"\u003cp\u003e\u003cem\u003eЦель работы: изучение принципов архивации файлов, функций и режимов работы архиваторов, приобретение практических навыков работы по созданию архивных файлов и извлечению файлов из архивов.\u003c/em\u003e\u003c/p\u003e","title":"Архивация. Создание архива данных. Извлечение данных из архива"},{"content":"Понятие информации Информация — это сведения об объектах, явлениях и процессах окружающего мира, которые уменьшают степень неопределенности знаний о них. Формы представления информации: Вид информации Примеры Текстовая информация Сегодня солнечно Числовая информация 25, 1000, 0.0001, 1E-5 Графическая информация Звуковая информация Видео информация Ваш браузер не поддерживает видео. Виды информации Информация классифицируется по различным признакам:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Количество информации Количество информации — это мера уменьшения неопределенности знаний о каком-либо событии или объекте. Чем больше неопределенность до получения сообщения и чем сильнее она уменьшается после его получения, тем больше информации содержит сообщение. Подходы к измерению количества информации: Содержательный (семантический).\nОснован на смысловом содержании сообщения. Количество информации зависит от того, насколько сообщение важно, ново и полезно для получателя. Один и тот же текст может нести разное количество информации для разных людей (например, для специалиста и новичка). Алфавитный (синтаксический).\nНе учитывает смысл сообщения, а рассматривает только его форму. Количество информации определяется длиной сообщения и мощностью алфавита (мощность - количество разных символов, которые можно использовать). Используется в вычислительной технике, так как позволяет точно измерять информацию независимо от её содержания. Для расчёта информационного веса символов используется формула Хартли и её производная: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e где \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - информационный вес одного символа (в битах), \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - мощность алфавита (количество возможных символов), \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - логарифм по основанию 2 (показывает, сколько бит нужно для кодирования)\nДля сообщения из \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e символов общий объём информации вычисляется так: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Единицы измерения информации Для количественного измерения информации используются специальные единицы, основанные на двоичной системе счисления. Основные единицы:\nБит (bit) Минимальная единица информации. Соответствует выбору одного из двух возможных состояний (например, 0 или 1). С помощью одного бита можно описать состояние лампочки: включена (1) или выключена (0).\nДва бита позволяют составить числа 0, 1, 10 и 11. Таких числа 4, то есть они могут описать объект, у которого четыре состояния, например можно описать времена года:\nСезон Двоичный код (2 бита) Зима 00 Весна 01 Лето 10 Осень 11 Придумайте пример, для описания состояний какого объекта нужно 3 бита?\nБайт (byte)\nСостоит из 8 бит. Обычно используется для кодирования одного символа (буквы, цифры, знака). Производные единицы:\nКилобайт (КБ) = 1024 байта Мегабайт (МБ) = 1024 КБ Гигабайт (ГБ) = 1024 МБ Терабайт (ТБ) = 1024 ГБ Такая система основана на степенях числа 2 ( \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ), что связано с особенностями работы компьютерной техники.\nПример измерения количества информации Возьмём сообщение: завтра будет дождь.\nНасколько это уменьшает неопределённость знаний?\nЕсли вы живёте в регионе, где дожди идут 300 дней в году, сообщение почти не меняет ваших ожиданий → неопределённость снижается слабо → информации мало. Если вы живёте в пустынном регионе, где осадки раз в несколько месяцев или лет, сообщение резко меняет картину мира → неопределённость падает сильно → информации много. Содержательный (семантический) подход:\nДля фермера это сигнал к действию (укрыть урожай, отложить полив) → высокая практическая ценность. Для программиста, который весь день работает в здании → низкая практическая ценность. Вывод: объём информации зависит от смысла, контекста и исходных знаний получателя.\nАлфавитный (синтаксический) подход:\nКомпьютер не понимает смысл слов дождь или завтра. Он видит только последовательность символов. В фразе 18 знаков (включая пробелы), мощность русского алфавита (33 буквы) с учётом знака пробела составляет 34. \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , однако количество бит не может быть дробным, поэтому округляем до большей степени двойки: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Округление до большей степени производится из-за того, что нам нужно уместить нашу информацию, а не просто округлить число. Минимальная единица памяти — 1 бит, а 5 бит дают только 32 комбинации (мало для 34 символов), мы берём 6 бит (64 комбинации), чтобы гарантированно закодировать весь алфавит Вычислим информационный объём фразы по формуле \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Так как в наших вычислениях никак не фигурировал получаетель сообщения, информационный объём одинаков независимо от получателя информации и других обстоятельств. Вывод: измеряется только форма и длина фразы, смысл полностью игнорируется.\nСамостоятельное задание 1 Дана фраза: привет, мир!\nПереведите фразу на ваш родной язык Посчитайте количество символов \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в каждой фразе (включая пробелы и знаки препинания). Найдите информационный вес одного символа \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e для каждого языка. Вычислите общий информационный вес \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e каждой фразы в битах. Какая фраза «тяжелее» и почему? Самостоятельное задание 2 Повторите шаги из предыдущего задания для своего имени на русском языке и на любом другом языке. Учтите, что ваше имя начинается с большой буквы.\nИнформационные процессы Информационные процессы — это совокупность действий, выполняемых с информацией на всех этапах её существования: от получения до использования. Информационные процессы лежат в основе работы человека, общества и технических систем, включая компьютеры. Основные информационные процессы: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Сбор (получение) информации — это процесс получения информации из различных источников. Источниками информации могут быть: окружающая среда, люди, технические устройства, книги и другие литературные источники, базы данных. Сбор осуществляется с помощью органов чувств человека или специальных устройств.\nОсновные органы чувств человека:\nГлаза — орган зрения Уши — орган слуха Нос — орган обоняния Язык — орган вкуса Кожа — орган осязания Примеры специальных устройств для сбора информации приведены в таблице:\nКатегория Примеры устройств Датчики (сенсоры) датчик температуры, влажности, движения, давления, GPS-модуль Сканеры планшетный, ручной, 3D-сканер, сканер qr-кодов/штрих/кодов Измерительные приборы термометр, барометр, амперметр, вольтметр, мультиметр Устройства ввода персонального компьютера клавиатура, мышь, микрофон, камера, сенсорный экран Качество полученной на этом этапе информации влияет на все последующие процессы.\nНапример, если датчик температуры сломан и показывает завышенную температуру, то человек при использовании информации может выбрать менее тёплую одежду в холодное время года.\nХранение информации — это процесс сохранения информации с цeлью её использования в будущем. Информация может храниться: в памяти человека на материальных носителях (бумага, книги, поверхности различных материалов (камень, дерево, металл)) в электронном виде (жёсткие диски (HDD), твердотельные накопители (SSD), Flash-память (флешки), облачные хранилища). Важные характеристики хранилищ информации:\nмаксимальный объём информации, которую можно записать, надежность хранения информации, скорость доступа к информации, срок хранения информации. Обработка информации — это процесс преобразования информации для получения новых знаний или приведения её к нужному виду. Обработка информации включает: вычисления сортировку анализ обобщение фильтрацию Обработка может выполняться человеком или автоматизированными системами (компьютерами).\nВ таблице представлены примеры обработки информации человеком и компьютерной программой:\nВид обработки Суть Пример (человек) Пример (компьютер) Вычисления Арифметические или логические операции Подсчёт среднего балла в тетради Формула в Excel: =СРЗНАЧ(A1:A10) Сортировка Упорядочивание по заданному признаку Расстановка книг по алфавиту на полке Сортировка контактов в телефоне по имени Анализ Выявление закономерностей, причин, связей Врач анализирует симптомы для постановки диагноза Система рекомендует товары на основе истории покупок Обобщение Переход от частных фактов к общим выводам Учитель делает вывод об усвоении темы классом Дашборд с итоговой статистикой по продажам за месяц Фильтрация Отбор данных по заданным критериям Отбор резюме по ключевым требованиям Спам-фильтр в почте, скрывающий нежелательные письма Пример обработки информации интернет-заказа пиццерии:\nВВОД: Пользователь выбирает пиццу «Маргарита», указывает адрес и время доставки. ОБРАБОТКА (автоматическая): • Фильтрация: система проверяет, доставляется ли заказ по указанному адресу • Вычисления: считается итоговая сумма (цена пиццы + доставка − скидка) • Сортировка: заказ ставится в очередь кухни по времени поступления • Анализ: ИИ прогнозирует время приготовления на основе текущей загрузки • Обобщение: на основе всей информации формируется чек и уведомление для клиента ВЫВОД: • Клиент получает подтверждение заказа с трекингом • Кухня получает задание на приготовление • Курьер получает маршрут доставки Передача информации — это процесс перемещения информации от источника к получателю. В технических системах этот процесс всегда сопровождается кодированием (преобразованием информации в сигнал) и последующим декодированием. Основные элементы передачи:\nИсточник (генерирует данные: человек, компьютер, датчик). Кодирующее устройство (преобразует данные в сигнал, пригодный для передачи). Канал связи (физическая среда: медный провод, оптоволокно, радиоволны). Приёмник (устройство или человек, принимающий сигнал). Декодирующее устройство (преобразует сигнал обратно в понятную форму). В канале связи всегда существуют помехи (шумы), которые могут искажать информацию.\nПередача может осуществляться:\nустно (непосредственно или через телефон); письменно (бумага, знаки); с использованием технических средств (интернет, Wi-Fi, Bluetooth, спутниковая связь). По направлению связи передача может быть:\nоднонаправленная (телевидение) двусторонняя (диалог, мессенджеры). Важные параметры передачи информации:\nСкорость передачи (объём данных, передаваемых в единицу времени, например, бит/с). Пропускная способность канала (максимально возможная скорость для данного канала). Надежность (гарантия доставки данных без потерь и искажений). Помехоустойчивость (способность системы корректно принимать данные при наличии шумов). Примеры передачи информации:\nСпособ передачи Пример Схема передачи 1. Устная передача Вы рассказываете историю в личной беседе Источник: вы → Канал: воздух (звуковые волны) → Приёмник: ваш собеседник 2. Передача флажками (семафорная азбука) Сигнальщик передаёт сообщение с помощью флагов на поле Источник: сигнальщик → Канал: свет/видимый сигнал → Приёмник: наблюдатель 3. Телефонный разговор Друг звонит вам, чтобы договориться о встрече Источник: друг → Канал: телефонная сеть (радиоволны/провод) → Приёмник: вы 4. Мессенджер Вы отправляете сообщение в мессенджере Источник: вы → Канал: интернет → Приёмник: получатель Использование информации — это процесс применения информации для решения задач, принятия решений и достижения целей. Это конечный этап информационного процесса, ради которого выполняются все предыдущие. Эффективность использования зависит от качества, актуальности и полноты информации. Примеры использования информации\nСфера применения Информация Использование (решение/действие) Быт Прогноз погоды: завтра +5°C и дождь Взять зонт и надеть тёплую куртку Учёба Конспекты и учебники перед экзаменом Ответить на вопросы теста, получить оценку Медицина Результаты анализов и обследований Поставить диагноз и назначить лечение Бизнес Данные о падении продаж на 20% Запустить рекламную кампанию или снизить цены Навигация GPS-данные о пробках на маршруте Выбрать объездной путь для экономии времени Финансы Информация о росте курса валюты Продать или купить валюту для выгоды Ключевые слова Добавьте слова в свой глоссарий\nИнформация Бит Данные Байт Сбор информации Мощность алфавита Обработка Формула Хартли Использование Информационный вес Хранение Скорость передачи Передача Пропускная способность Визуальная информация Помехоустойчивость Аудиальная информация Канал связи Аналоговая информация Кодирование Цифровая информация Декодирование Достоверная информация Сигнал Актуальная информация Конфиденциальная информация Вопросы для самоконтроля Дайте определение информации. Почему одно и то же сообщение может содержать разное количество информации для разных людей? Назовите 5 форм представления информации и приведите по одному примеру каждой. Перечислите 5 основных информационных процессов. Почему при расчёте по формуле Хартли мощность алфавита округляют до степени двойки? Как качество информации на этапе сбора влияет на этап использования? Придумайте пример В чём разница между однонаправленной и двусторонней передачей информации? Придумайте свой пример информационного процесса (от сбора до использования) из вашей повседневной жизни и опишите его по шагам. ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/base_information/","summary":"","title":"Основные понятия теории информации и информационные процессы"},{"content":" Выберите любой сервис электронной почты: Google mail Яндекс Почта другой Зарегистрируйтесь в сервисе, если у вас нет электронной почты Авторизуйтесь и зайдите в свой почтовый ящик Отправьте письмо преподавателю на почту: gleb@ilinyh.ru Тема письма:\nИнформатика. Приветствие\nВ письме напишите:\nДобрый день, меня зовут ваше полное имя\nЯ учусь в группе ваша учебная группа\nС уважением, ваше полное имя\n","permalink":"https://ilinyhgleb.github.io/posts/computer_science/send_email/","summary":"","title":"Отправка рабочего электронного письма"},{"content":"Ключевые слова: Перевод чисел из одной системы счисления в другую. Двоичная арифметика.\nСистема счисления — это совокупность правил и символов, которые используются для представления чисел и выполнения арифметических операций. Каждая система счисления имеет своё основание (или базу), которая определяет, сколько уникальных цифр она использует для обозначения чисел. Основание системы счисления обозначается нижним индексом после числа:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для двоичной системы счисления, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для троичной системы счисления, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для шестиричной системы счисления, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для восьмиричной системы счисления, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для десятиричной системы счисления, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e — для шестнадцатеричной системы счисления. Основные виды систем счисления Десятичная система (основание 10) Десятичная система счисления — стандартная система счисления, используемая во многих сферах человеческой деятельности: в повседневной жизни, науке, математике, финансах и др. Символы десятичной (10) системы счисления: 0,1,2,3,4,5,6,7,8,9\nВ десятичной системе используются цифры от 0 до 9, которые комбинируются для образования чисел. Например, число 47 состоит из двух цифр: 4 и 7, где 4 стоит на позиции десятков, а 7 — на позиции единиц.\nВ числе 584: 5 — сотни, 8 — десятки, 4 — единицы.\nВ числе 1358432: 1 — миллионы, 3 — сотни тысяч, 5 — десятки тысяч, 8 — тысячи, 4 — сотни, 3 — десятки, 2 — единицы.\nВ десятичной системе можно выполнять базовые арифметические операции (сложение, вычитание, умножение и деление). Например, сумма:\n12 = 5 + 7, 77 = 33 + 44. Десятичная система также позволяет представлять дробные числа с помощью десятичных дробей. Например, число 3.14 — это десятичная дробь, где 3 является целой частью, а 14 — дробной.\nДвоичная система (основание 2) Двоичная система счисления — это система, в которой используются только два значения. Она является основой работы всех современных компьютеров и цифровых устройств, так как они оперируют с двоичными значениями на уровне электрических сигналов (включено/выключено, правда/ложь). Символы двоичной (2) системы счисления: 0, 1\nПримеры чисел в двоичной системе счисления Двоичная Десятичная Двоичная Десятичная 0000 0 1111 15 0001 1 10010 18 0010 2 10111 23 0011 3 110101 53 0100 4 1011000 88 0101 5 1100011 99 0110 6 1100100 100 0111 7 1111001 121 1000 8 111110110 502 1001 9 1000110.1 70.5 1010 10 -1111 -15 Перевод в десятичную систему Чтобы перевести двоичное число в десятичное:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Другие примеры:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Переведите в десятичную систему числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Перевод из десятичной системы Чтобы перевести число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e из десятичной системы счисления в двоичную, мы можем использовать метод целочисленного деления на 2. Давайте последовательно делить число на 2 и записывать остатки. Вот шаги:\nДелим 6 на 2:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (целая часть)\nОстаток: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Делим 3 на 2:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (целая часть)\nОстаток: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Делим 1 на 2:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (целая часть)\nОстаток: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Теперь записываем остатки в обратном порядке: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Таким образом, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Переведите в двоичную систему числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Логические операции В вычислениях на двоичных числах применяются логические операции, такие как AND (логическое умножение), OR (логическое сложение) и NOT (отрицание, инверсия), что является основой для выполнения арифметики на уровне машинного кода.\nДля того, чтобы определить результат логических операций, строят таблицы истинности:\nТаблица истинности AND и OR: A B A AND B A OR B 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 Таблица истинности NOT: A NOT A 0 1 1 0 Применение в компьютерах. Основной единицей информации является бит, который может принимать значение 0 или 1. Таким образом значение бита определяется двоичной системой счисления. Например чёрно-белое изображение можно представить в виде последовательности битов, где каждый бит отвечает за белый или чёрный пиксель.\nГруппа из 8 битов образует 1 байт. Поэтому для более сложной информации, в том числе цветных изображений, используется множество битов. Тем не менее любую информацию можно представить в двоичной системе счисления.\nТакже двоичная система широко используется в компьютерной архитектуре, программировании, сетевых протоколах и других областях телекоммуникационных сетей. Например, адресация в IP-сетях (IP - Internet Protocol) использует двоичные числа.\nПример Адрес компьютера в компьютерной сети (IP-адрес): 192.168.1.10\nМаска подсети: 255.255.255.0\nМы хотим определить адрес сети, в которой находится компьютер.\nСначала переведем IP-адрес и маску подсети в двоичную систему:\nIP-адрес 192.168.1.10:\n192 = 11000000\n168 = 10101000\n1 = 00000001\n10 = 00001010\nВ двоичном виде: 11000000.10101000.00000001.00001010\nМаска подсети 255.255.255.0:\n255 = 11111111\n255 = 11111111\n255 = 11111111\n0 = 00000000\nВ двоичном виде: 11111111.11111111.11111111.00000000\nТеперь мы можем определить сетевой адрес, выполнив побитовую операцию AND между IP-адресом и маской подсети.\n11000000.10101000.00000001.00001010 - IP-адрес\n11111111.11111111.11111111.00000000 - Маска подсети\n11000000.10101000.00000001.00000000 - Результат операции AND\nОперация AND - логическое умножение, 1 AND 0 = 0, 0 AND 1 = 0, 0 AND 0 = 0, 1 AND 1 = 1\nТеперь переведём полученный сетевой адрес обратно в десятичные числа:\n11000000 = 192\n10101000 = 168\n00000001 = 1\n00000000 = 0\nВ результате мы получаем сетевой адрес: 192.168.1.0.\nСамостоятельное задание Определите адреса сетей в следующих примерах:\nIP-адрес Маска подсети 172.16.5.25 255.255.255.192 10.0.0.25 255.255.255.224 10.1.50.1 255.255.224.0 192.168.1.14 255.255.254.0 172.20.15.45 255.255.0.0 Восьмеричная система (основание 8) Восьмеричная система счисления — это система, использующая базу 8 и состоящая из восьми уникальных символов: 0, 1, 2, 3, 4, 5, 6 и 7. Она чаще всего применяется в программировании и компьютерных науках, особенно в контексте обработки двоичных данных. Символы восьмеричной системы: 0, 1, 2, 3, 4, 5, 6, 7\nПеревод в десятичную систему Чтобы перевести восьмеричное число в десятичное, нужно сложить значения всех цифр, умноженные на соответствующие степени 8.\nНапример, для числа \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в восьмеричной системе:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Другие примеры:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Переведите в десятичную систему числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Перевод в двоичную систему (метод группировки разрядов) Переведём число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e из восьмеричной системы счисления в двоичную.\nВосьмеричная система счисления связана с двоичной системой соотношением: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Это значит, что каждая цифра в восьмеричной системе может быть описана с помощью трёх цифр в двоичной системе. Такой перевод не требует дополнительных вычислений кроме перевода цифр из одной системы в другую. Для этого выпишем все цифры восьмеричной системы в двоичной. Дополнительно выпишем цифры, переведённые в двоичную систему, в виде трёх цифр. Такая запись называется триадой.\nВосьмеричная Двоичная Двоичная (триады) 0 0 000 1 1 001 2 10 010 3 11 011 4 100 100 5 101 101 6 110 110 7 111 111 Приступим к алгоритму перевода:\nРазобьем число на отдельные цифры: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Преобразуем каждую цифру в триаду (с сохранением нулей слева): \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Объединим все двоичные представления вместе: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Получим итоговое число: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Также можно было перевести вначале число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в десятичную систему счисления, а после из десятичной в двоичную.\nСамостоятельное задание Переведите в двоичную систему числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Примеры использования Восьмеричная система используется в UNIX-подобных операционных системах для указания прав доступа к файлам.\nТри варианта записи прав пользователя\nдвоичная восьмеричная символьная права на файл права на каталог 000 0 --- нет нет 001 1 --x выполнение чтение свойств файлов 010 2 -w- запись нет 011 3 -wx запись и выполнение всё, кроме получения имени файлов 100 4 r-- чтение чтение имён файлов 101 5 r-x чтение и выполнение доступ на чтение файлов/их свойств 110 6 rw- чтение и запись чтение имён файлов 111 7 rwx все права все права Так как в UNIX-подобных системах права доступа зписываются для владельца файла/каталога, группы пользователей, в которую входит владелец и всех остальных, удобно использовать число из трёх цифр в восьмиричной системе счисления.\nПримеры записей различных прав\nвосьмиричная символьная описание 400 -r\u0026mdash;\u0026mdash;\u0026ndash; Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия 440 -r\u0026ndash;r\u0026mdash;\u0026ndash; Владелец и группа имеет право чтения; никто другой не имеет права выполнять никакие действия 644 -rw-r-r- Все пользователи имеют право чтения; владелец может редактировать 660 -rw-rw\u0026mdash;- Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий 664 -rw-rw-r\u0026ndash; Все пользователи имеют право чтения; владелец и группа могут редактировать 666 -rw-rw-rw- Все пользователи могут читать и редактировать 700 -rwx\u0026mdash;\u0026mdash; Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия 744 -rwxr\u0026ndash;r\u0026ndash; Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение 755 -rwxr-xr-x Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать 777 -rwxrwxrwx Каждый пользователь может читать, редактировать и запускать на выполнение 2555 -r-xr-sr-x Каждый пользователь имеет право читать и запускать на выполнение с правами группы (user group) владельца файла 4555 -r-xr-xr-x Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла Самостоятельное задание Напишите в восьмеричной системе права, которые позволяют владельцу изменять файл, а всем остальным только читать файл. Напишите в восьмеричной системе права, которые позволяют владельцу и его группе читать и испольнять файл, а остальным - ничего. Напишите в восьмеричной системе права, которые позволяют владельцу делать с файлом всё, что угодно, а другим пользователям читать и записывать. Также восьмеричная система счисления позволяет сокращать запись двоичных чисел: один восьмеричный символ соответствует трём двоичным битам.\nШестнадцатеричная система (основание 16) Шестнадцатеричная система счисления — это система, в которой используются 16 различных символов для представления чисел. Она часто используется в программировании и компьютерных науках, так как позволяет более компактно представлять двоичные данные и облегчает чтение и запись больших чисел. Первые 10 символов обозначают цифрами, как в десятичной системе счисления, далее идут буквы латинского алфавита: A, B, C, D, E, F, обозначающие значения \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e соответственно. Символы шестнадцатеричной системы: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F\nПримеры чисел в шестнадцатеричной системе счисления\nШестнадцатеричная система Десятичная система Шестнадцатеричная система Десятичная система 0 0 10 16 1 1 11 17 2 2 12 18 3 3 13 19 4 4 35 53 5 5 58 88 6 6 63 99 7 7 64 100 8 8 79 121 9 9 1F6 502 A 10 46.8 70.5 B 11 D9BE 55742 C 12 10B88 68488 D 13 12FE7 77799 E 14 FFF 4095 F 15 46.8 70.5 За счёт того, что символы A, B, C, D, E, F содержат в себе большие значения, запись в шестнадцатеричной системе занимает меньше места, например \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Это позволяет удобнее работать с большими данными.\nПримеры использования Шестнадцатеричный код используется для определения цветов в HTML и CSS. Например, цвет красного представляется как #FF0000, где FF означает максимальную интенсивность красного и 0 - отсутствие зеленого и синего.\nВ некоторых языках программирования и системах, например, в ассемблере (ассемблер LC-3), адреса памяти, а также коды комманд представлены в шестнадцатеричной форме, поскольку это упрощает чтение и запись кода.\nПеревод из десятичной системы. Переведём число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e из десятичной системы счисления в шестнадцатеричную.\nЧтобы перевести число из десятичной системы счисления в шестнадцатеричную, нужно делить число на 16 и записывать остатки. \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (остаток \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e )\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (остаток \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e )\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e (остаток \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e )\nТеперь читаем остатки в обратном порядке: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Таким образом, число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Переведите числа в шестнадцатеричную систему счисления: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Перевод в десятичную систему. Переведём число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в десятичную систему счисления.\nРазобьём число на отдельные цифры: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Переведём числа в десятичную систему счиления : \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Умножим каждое число на 16 в соответствующей цифре позиции: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Сложим полученные произведения: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Получаем итоговое число: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Перевод в двоичную систему. Переведём число \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e в двоичную систему счисления.\nРазобьем число на отдельные цифры: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Переведём числа в двоичную систему счиления: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Объединим эти числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Получаем итоговое число: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Самостоятельное задание Переведите в десятичную, восьмеричную, троичную и двоичную системы числа: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e , \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Ключевые слова Добавьте слова в свой глоссарий:\nДесятичная система счисления Двоичная система счисления Восьмеричная система счисления Шестнадцатеричная система счисления Основание системы счисления Цифра Позиция Разряд Целая часть Дробная часть Десятичная дробь Арифметические операции Сложение Вычитание Умножение Деление Перевод чисел Целочисленное деление Остаток Степень Логические операции Логическое умножение Логическое сложение Отрицание Инверсия Таблица истинности Бит Байт Двоичные значения Электрический сигнал Компьютерная архитектура Программирование Сетевые протоколы IP-адрес Маска подсети Сетевой адрес Побитовая операция Права доступа Файл Каталог Владелец файла Группа пользователей Чтение Запись Выполнение Символьная запись Цветовой код Адрес памяти Машинный код Цифровое устройство Пиксель Черно-белое изображение Цветное изображение Операционная система UNIX-подобная система Интернет-протокол Адресация в сетях Телекоммуникационные сети Двоичные данные Латинский алфавит Позиционная система Комбинация цифр Базовые операции Дополнительное (необязательное) задание. Программирование Напишите программу перевода числа из одной системы счисления в другую. Реализуйте возможностью пользователю указать основание для исходной и целевой систем счисления. ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/numerical_systems/","summary":"\u003cp\u003eКлючевые слова: \u003cem\u003eПеревод чисел из одной системы счисления в другую. Двоичная арифметика.\u003c/em\u003e\u003c/p\u003e","title":"Системы счисления"},{"content":" Выберите любой сервис для создания облачного хранилища, например: Google Drive Яндекс Диск Авторизуйтесь в этом сервисе В облачном хранилище создайте папку Информатика (или Informatics, или Computer Science) Отправьте ссылку (на чтение) на папку Информатика преподавателю Найдите в поисковой системе (например yandex.ru или google.com) 10 фотограций интересных различных мест из вашей страны или вашего города. Скачайте картинки Создайте в папке Информатика папку Картинки Загрузите в папку Картинки картинки, которые вы скачали ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/create_cloud/","summary":"","title":"Создание папки в облачном хранилище"},{"content":"Календарный план Неделя День Дата Время занятия Тема занятия Модуль Информационные процессы 30.03-05.04 1 30.03.26 08:00 - 09:30 Входное тестирование 2 03.04.26 08:00 - 12:30 Основные понятия теории информации и информационные процессы Аппаратная конфигурация компьютера Отправка рабочего электронного письма Создание облачного хранилища 06.04-12.04 1 06.04.26 08:00 - 09:30 Кодирование данных. Архивация 2 10.04.26 08:00 - 12:30 Кодирование данных. Архивация 13.04-19.04 1 13.04.26 08:00 - 09:30 Перевод чисел из одной системы счисления в другую. Двоичная арифметика. 2 17.04.26 08:00 - 12:30 Перевод чисел из одной системы счисления в другую. Двоичная арифметика. 20.04-26.04 1 21.04.26 08:00 - 12:30 Тест по модулю Информационные процессы Модуль Прикладное программное обеспечение Редактор текстовых документов. Основные понятия Редактор текстовых документов. Форматирование текстовых документов 20.04-26.04 2 25.04.26 08:00 - 12:30 Редактор текстовых документов. Формулы Редактор текстовых документов. Векторная графика 27.04-03.05 1 28.04.26 08:00 - 12:30 Редактор текстовых документов. Таблицы 04.05-10.05 1 05.05.26 08:00 - 12:30 Редактор текстовых документов. Растровые изображения Редактор текстовых документов. Стили Электронные таблицы. Основные принципы работы 2 08.05.26 08:00 - 12:30 Электронные таблицы. Форматирование 11.05-17.05 1 12.05.26 08:00 - 12:30 Электронные таблицы. Простые вычисления 18.05-24.05 1 19.05.26 08:00 - 12:30 Электронные таблицы. Диаграммы 2 22.05.26 08:00 - 12:30 Контрольная работа по модулю Прикладное программное обеспечение Создание презентаций. ","permalink":"https://ilinyhgleb.github.io/posts/computer_science/plan/","summary":"","title":"Курс Информатика 2026. Календарный план"},{"content":"Представленный FreeCAD макрос создаёт тестовую модель для проверки прилипания пластика к столу при FDM-печати.\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Latex TikZ код рисунка \\begin{tikzpicture}\\begin{scope}[scale=0.6] % PARAMETERS \\def\\SECTIONHEIGHT{0.1} \\def\\SECTIONWIDTH{0.5} \\def\\VISUALRATIO{1} % визуальный коэффициент \\def\\HEIGHTTOTAL{60} \\def\\WIDTHTOTAL{60} \\def\\LINESNUMBER{11} % derived parameter \\pgfmathsetmacro{\\xstep}{\\WIDTHTOTAL/(\\LINESNUMBER-1)} % Команда для рисования сегмента как прямоугольника с контуром \\newcommand{\\filamentrect}[4]{% % #1 x1, #2 y1, #3 x2, #4 y2 \\pgfmathsetmacro{\\dx}{#3-#1} \\pgfmathsetmacro{\\dy}{#4-#2} \\pgfmathsetmacro{\\norm}{sqrt(\\dx*\\dx+\\dy*\\dy)} \\pgfmathsetmacro{\\ox}{\\SECTIONWIDTH*\\VISUALRATIO/2 * \\dy/\\norm} \\pgfmathsetmacro{\\oy}{-\\SECTIONWIDTH*\\VISUALRATIO/2 * \\dx/\\norm} % Прямоугольник с заливкой и контуром \\filldraw[fill=orange!30, draw=orange!80!black, line width=0.5mm] (#1+\\ox,#2+\\oy) -- (#1-\\ox,#2-\\oy) -- (#3-\\ox,#4-\\oy) -- (#3+\\ox,#4+\\oy) -- cycle; } % path generation \\pgfmathsetmacro{\\x}{0} \\pgfmathsetmacro{\\y}{0} \\foreach \\i in {1,...,\\numexpr\\LINESNUMBER-1\\relax} { % determine new y \\pgfmathparse{\\y\u0026lt;0.001 ? \\HEIGHTTOTAL : 0} \\let\\ynew\\pgfmathresult % determine new x \\pgfmathsetmacro{\\xnew}{\\x+\\xstep} % рисуем сегменты как прямоугольники \\filamentrect{\\x}{\\y}{\\x}{\\ynew} \\filamentrect{\\x}{\\ynew}{\\xnew}{\\ynew} % update variables \\xdef\\x{\\xnew} \\xdef\\y{\\ynew} } % final vertical segment \\pgfmathparse{\\y\u0026lt;0.001 ? \\HEIGHTTOTAL : 0} \\let\\ynew\\pgfmathresult \\filamentrect{\\x}{\\y}{\\x}{\\ynew} % AXES \\draw[ultra thick,red,-Stealth,line width=12pt] (0,0) -- (20,0) node[above left,scale=5.8]{X}; \\draw[ultra thick,green!70!black,-Stealth,line width=12pt] (0,0) -- (0,20) node[left,scale=5.8]{Y}; \\draw[fill=blue!60, draw=blue!60] (0,0) circle (0.8cm) node[left=1.1cm,blue,scale=5.8]{Z}; \\draw[fill=blue!75, draw=blue!75] (0,0) circle (0.6cm); \\draw[fill=blue!100, draw=blue!100] (0,0) circle (0.25cm); \\end{scope} \\begin{scope}[xshift=40cm] % PARAMETERS \\def\\SECTIONHEIGHT{0.1} \\def\\SECTIONWIDTH{0.5} \\def\\VISUALRATIO{1} \\def\\HEIGHTTOTAL{60} \\def\\WIDTHTOTAL{60} \\def\\LINESNUMBER{10} % projection parameters \\def\\ISOX{0.75} \\def\\ISOY{0.55} \\def\\ISOZ{1.1} % derived parameter \\pgfmathsetmacro{\\xstep}{\\WIDTHTOTAL/(\\LINESNUMBER-1)} \\pgfmathsetmacro{\\halfwidth}{\\SECTIONWIDTH*\\VISUALRATIO/2} %%% \\pgfmathsetmacro{\\scaledheight}{\\SECTIONHEIGHT*\\VISUALRATIO} % projection \\newcommand{\\iso}[3]{({#1 + \\ISOX*#2},{\\ISOY*#2 + \\ISOZ*#3})} % filament segment \\newcommand{\\filamentsegment}[4]{% % #1 x1 % #2 y1 % #3 x2 % #4 y2 % offset for width \\pgfmathsetmacro{\\dx}{#4-#2} \\pgfmathsetmacro{\\dy}{-(#3-#1)} \\pgfmathsetmacro{\\norm}{sqrt(\\dx*\\dx+\\dy*\\dy)} \\pgfmathsetmacro{\\ox}{\\halfwidth*\\dx/\\norm} \\pgfmathsetmacro{\\oy}{\\halfwidth*\\dy/\\norm} % top \\fill[orange!60] \\iso{#1+\\ox}{#2+\\oy}{\\scaledheight} -- \\iso{#1-\\ox}{#2-\\oy}{\\scaledheight} -- \\iso{#3-\\ox}{#4-\\oy}{\\scaledheight} -- \\iso{#3+\\ox}{#4+\\oy}{\\scaledheight} -- cycle; % right side \\fill[orange!50] \\iso{#3+\\ox}{#4+\\oy}{0} -- \\iso{#3+\\ox}{#4+\\oy}{\\scaledheight} -- \\iso{#1+\\ox}{#2+\\oy}{\\scaledheight} -- \\iso{#1+\\ox}{#2+\\oy}{0} -- cycle; % left side \\fill[orange!40] \\iso{#1-\\ox}{#2-\\oy}{0} -- \\iso{#1-\\ox}{#2-\\oy}{\\scaledheight} -- \\iso{#3-\\ox}{#4-\\oy}{\\scaledheight} -- \\iso{#3-\\ox}{#4-\\oy}{0} -- cycle; % front \\fill[orange!60] \\iso{#1-\\ox}{#2-\\oy}{0} -- \\iso{#1-\\ox}{#2-\\oy}{\\scaledheight} -- \\iso{#1+\\ox}{#2+\\oy}{\\scaledheight} -- \\iso{#1+\\ox}{#2+\\oy}{0} -- cycle; } % path generation \\pgfmathsetmacro{\\x}{0} \\pgfmathsetmacro{\\y}{0} \\foreach \\i in {1,...,\\numexpr\\LINESNUMBER-1\\relax} { \\pgfmathparse{\\y\u0026lt;0.001 ? \\HEIGHTTOTAL : 0} \\let\\ynew\\pgfmathresult \\pgfmathsetmacro{\\xnew}{\\x+\\xstep} \\filamentsegment{\\x}{\\y}{\\x}{\\ynew} \\filamentsegment{\\x}{\\ynew}{\\xnew}{\\ynew} \\xdef\\x{\\xnew} \\xdef\\y{\\ynew} } \\pgfmathparse{\\y\u0026lt;0.001 ? \\HEIGHTTOTAL : 0} \\let\\ynew\\pgfmathresult \\filamentsegment{\\x}{\\y}{\\x}{\\ynew} % AXES \\draw[ultra thick,red, -Stealth,line width=12pt] \\iso{0}{0}{0} -- \\iso{20}{0}{0} node[above,scale=5.8]{X}; \\draw[ultra thick,green!70!black,-Stealth,line width=12pt] \\iso{0}{0}{0} -- \\iso{0}{20}{0} node[left,scale=5.8]{Y}; \\draw[ultra thick,blue,-Stealth,line width=12pt] \\iso{0}{0}{0} -- \\iso{0}{0}{10} node[above,scale=5.8]{Z}; \\end{scope} \\end{tikzpicture} Модель параметризирована, можно менять количество дорожек, ширину и высоту дорожки, а также ширину и длину проверяемой рабочей зоны стола.\nimport FreeCAD import PartDesign import PartDesignGui import Sketcher import os # PARAMETERS EPS = 1E-3 SECTION_HEIGHT = 0.1 #[MM] SECTION_WIDTH = 0.5 #[MM] HEIGHT_TOTAL = 60 #[MM] WIDTH_TOTAL = 60 #[MM] LINES_NUMBER = 10 #minimum=2 x_step = WIDTH_TOTAL / (LINES_NUMBER - 1) # MAKE DOCUMENT App.newDocument().saveAs(os.path.join(os.curdir, \u0026#34;print_test.FCStd\u0026#34;)) document = App.activeDocument() # SECTION SKETCH document.addObject(\u0026#39;PartDesign::Body\u0026#39;,\u0026#39;Body\u0026#39;) body = document.getObject(\u0026#39;Body\u0026#39;) body.Label = \u0026#39;Body\u0026#39; body.newObject(\u0026#39;Sketcher::SketchObject\u0026#39;,\u0026#39;SketchSection\u0026#39;) sketch_section = document.getObject(\u0026#39;SketchSection\u0026#39;) sketch_section.AttachmentSupport = document.getObject(\u0026#39;XZ_Plane\u0026#39;) sketch_section.MapMode = \u0026#39;FlatFace\u0026#39; document.recompute() lastGeoId = len(sketch_section.Geometry) geoList = [] geoList.append(Part.LineSegment(App.Vector(0, 0, 0.0),App.Vector(SECTION_WIDTH, 0, 0.0))) geoList.append(Part.LineSegment(App.Vector(SECTION_WIDTH, 0, 0.0),App.Vector(SECTION_WIDTH, SECTION_HEIGHT, 0.0))) geoList.append(Part.LineSegment(App.Vector(SECTION_WIDTH, SECTION_HEIGHT, 0.0),App.Vector(0, SECTION_HEIGHT, 0.0))) geoList.append(Part.LineSegment(App.Vector(0, SECTION_HEIGHT, 0.0),App.Vector(0, 0, 0.0))) document.recompute() sketch_section.addGeometry(geoList,False) # PATH SKETCH document.addObject(\u0026#39;Sketcher::SketchObject\u0026#39;, \u0026#39;SketchPath\u0026#39;) sketch_path = document.getObject(\u0026#39;SketchPath\u0026#39;) sketch_path.AttachmentSupport = document.getObject(\u0026#39;XY_Plane\u0026#39;) sketch_path.MapMode = \u0026#34;Deactivated\u0026#34; document.recompute() lastGeoId = len(sketch_path.Geometry) geoList = [] x = 0 y = 0 for _ in range(LINES_NUMBER - 1): y_new = HEIGHT_TOTAL if (y\u0026lt;EPS) else 0 x_new = x + x_step geoList.append(Part.LineSegment(App.Vector(x, y , 0.0), App.Vector(x, y_new, 0.0))) geoList.append(Part.LineSegment(App.Vector(x, y_new , 0.0), App.Vector(x_new, y_new, 0.0))) y = y_new x = x_new y_new = HEIGHT_TOTAL if (y\u0026lt;EPS) else 0 geoList.append(Part.LineSegment(App.Vector(x, y , 0.0), App.Vector(x, y_new, 0.0))) sketch_path.addGeometry(geoList,False) document.recompute() # ADDITIVE PIPE body.newObject(\u0026#39;PartDesign::AdditivePipe\u0026#39;,\u0026#39;AdditivePipe\u0026#39;) pipe = document.getObject(\u0026#39;AdditivePipe\u0026#39;) pipe.Profile = document.getObject(\u0026#39;SketchSection\u0026#39;) pipe.Spine = (document.getObject(\u0026#39;SketchPath\u0026#39;),[]) pipe.Transition = u\u0026#34;Right corner\u0026#34; document.recompute() # EXPORT STL FILE stl_path = os.path.join(os.path.abspath(os.curdir), \u0026#34;print_test.stl\u0026#34;) __objs__ = [] __objs__.append(body) if hasattr(Mesh, \u0026#34;exportOptions\u0026#34;): options = Mesh.exportOptions(stl_path) Mesh.export(__objs__, stl_path, options) else: Mesh.export(__objs__, stl_path) del __objs__ # SAVE AND CLOSE DOCUMENT document.recompute() document.save() FreeCAD.closeDocument(document.Name) ","permalink":"https://ilinyhgleb.github.io/posts/freecad/","summary":"\u003cp\u003eПредставленный FreeCAD макрос создаёт тестовую модель для проверки прилипания пластика к столу при FDM-печати.\u003c/p\u003e","title":"Тестовая модель для FDM-печати в FreeCAD"},{"content":"Все задания выполняются в рамках одного проекта Workbench. Все материалы задаются в одном блоке Engineering data\nЗадание 1 геометрия : квадратная фундаментная плита (Ш×Д×В) 6м×6м×0.4м, лежащая на грунте (размеры грунта подобрать самостоятельно) материал: железобетон (E=30 ГПа, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e =0.20, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e =2300 кг/м \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ), грунт - глина (E=30 МПа, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e =0.35, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e =1600 кг/м \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e ) нагрузка: собственный вес особенности решения задачи: учесть симметрию конструкции и нагрузки граничные условия: симметричные, условия на границе грунта задание: получить напряженно-деформированное состояние конструкции, построить распределение эквивалентных напряжений, суммарных перемещений, вертикальных перемещений определить максимальные значения указанных выше характеристик Задание 2 геометрия: П-образная рама (высота стоек - 4м, пролёт ригеля - 6м) сечение: двутавр 30Б1 ГОСТР 57837-2017 материал: сталь нагрузка: сосредоточенная вертикальная нагрузка на центр ригеля граничные условия: жёсткие защемления опор стоек задание: получить напряженно-деформированное состояние конструкции, построить первые 5 форм потери устойчивости определить соответствующие значения критической силы особенности решения задачи: задача решается в плоской постановке рамные соединения - жёсткие Задание 3 геометрия: однопролётная плита перекрытия (Д×Ш×В) 4м×1.1м×0.2м с отверстиями диаметром 0.15м, расстояние между отверстиями 0.03м материал: бетон граничные условия: неподвижные шарниры по коротким краям плиты нагрузка: распределённая нагрузка по верхней поверхности плиты 12 кН/м \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e задание: получить напряженно-деформированное состояние конструкции, построить распределение эквивалентных напряжений, суммарных перемещений, вертикальных перемещений определить максимальные значения указанных выше характеристик Задание 4 геометрия: 2-метровая балка в виде линейного тела сечение: швеллер 10П ГОСТ 8240-97 материал: сталь граничные условия: шарнирное опирание нагрузка: распределённая нагрузка по верхней полке швеллера 10кН/м задание: получить напряженно-деформированное состояние конструкции, построить распределение изгибающего момента построить распределение максимального прогиба определить сеточную сходимость по значениям указанных выше характеристик особенности решения задачи: для расчёта модели с разным количеством узлов (степеней свободы) и просмотра соответствующих характеристик необходимо использовать параметризацию модели ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_verification_work/","summary":"","title":"Контрольная работа ANSYS Workbench Mechanical"},{"content":"Подготовка проекта Проект состоит из одной системы Static Structural.\nМатериалы В качестве материала плитного фундамента используется материал с усреднёнными свойствами железобетона.\nСвойства грунта (слои от верхнего до нижнего):\nНомер слоя Вид грунта Нормативный модуль деформаций, МПа Коэффициент Пуассона Плотность, кг/м^3 1 Суглинок 34 0.35 1600 2 Супесь 32 0.30 1400 3 Гравий 30 0.27 1200 Геометрия Размеры плиты: 8м х 12м х 0.5м, высота от грунта до вверхней поверхности плиты - 0.2м\nРазмеры грунта в плоскости плиты могут варьироваться и выбираются в процессе расчёта из соображений корректности моделирования. Изначально возьмём размеры 16м х 24м\nРазмеры грунта по толщине:\nНомер слоя Вид грунта Высота слоя, м 1 Суглинок 2 2 Супесь 2 3 Гравий 6 Геометрию необходимо создать в приложении Design Modeler.\nСтроится модель четверти системы фундамент-основание. Расчёт будет проводиться в таком виде, т.к. нагрузка симметричная. При необходимости учёта несимметричной нагрузки, модель можно отразить с помощью инструмента Mirror. Обратите внимание, что размеры выше указаны для всей конструкции, а строится четверть модели.\nПлита и грунт создаются последовательным вытягиванием из макетов. Грунт состоит из трёх слоёв.\nДля вычитания объёма плиты из вверхнего слоя грунта используется операция Boolean - Subtract с опцией сохранения вычитаемого тела Preserve Tool Bodies? - Yes.\nДля разделения тел грунта на простые прямоугольные параллелепипеды - исползуются операции Slice - Slice by Surface с указанием поверхностей плиты.\nДля удобства дальнейшего назначения материалов и создания результатов для разных частей модели отдельным группам объёмов назначаются имена инструментом Named Selection Назначение материалов именнованным группам В Mechanical добавьте инструменты Material assignment для каждой пары именнованной группы Named Selection и соответствующего материала. Конечно-элементная сетка Для создания конечно-элементной сетки дополнительные инструменты можно не добавлять.\nГраничные условия Для нижней грани и боковых граней отсечённой части модели задаются нулевые перемещения по нормали. На боковых поверхностях, таким образом, будут созданы симметричные граничные условия.\nНагрузка Нагрузка - давление 30 кПа на верхнюю поверхность плиты.\nСтатический расчёт Добавьте результаты в виде контуров напряжений, перемещений (суммарных и осевых), деформаций для конструкции в целом и отдельно для разных грунтов и для плиты. Проведите расчёт модели. Параметризация Была расчитана модель для одного набора параметров. Необходимо определить, достаточными, недостаточными или избыточными являются размеры окружающего фундамент грунта. Для того, чтобы вручную не менять параметры и перезапускать расчёт, воспользуемся возможностью параметризации модели. В Design Modeler выберем макет грунта и в Details View нажмём на квадратики левее имём размеров модели: Если в квадратике появилась синяя буква P, значит размер теперь будет задаваться как параметр. В проекте должен появиться блок Parameter Set Открыв блок Parameter Set можно изменить значение параметра и произвести расчёт без входа в Design Modeler и Mechanical Свойства геометрии - входные параметры расчёта. Для того, чтобы отслеживать их влияние, необходимо добавить выходные параметры расчёта. Для этого необходимо зайти в Mechanical и также нажать на квадратик у параметра максимальных перемещений модели. Тоже самое необходимо сделать для максимальных напряжений. Теперь в Parameter Set появились выходные параметры. В таблице Table of Design Points можно добавить ещё одну строку (новый набор параметров Design Point - новый расчёт), в которой указать другие значения параметров. Для расчёта необходимо нажать Update Selected Design Points для выбранных строк таблицы. По-умолчанию расчёт будет проведён, но полные результаты будут сохранены только для текущего (current) расчёта. Для сохранения результатов в другом расчёте необходимо поставить галочку в поле Retain. Задачи для самостоятельного решения Добавьте учёт силы тяжести на дополнительном первом шаге нагружения. Определите какие размеры грунта необходимо взять, чтобы исключить влияние краевых эффектов на напряженно-деформированное состояние плиты и окружающего её грунта. Добавьте в входные параметры стандартныq размер конечного элемента и в выходные параметры количество узлов и и количество конечных элементов (Details of \u0026ldquo;Mesh\u0026rdquo; - Statistics). Определите, сходятся ли результаты к определённым значением при увеличении степеней свободы модели. ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_parameters_foundation/","summary":"","title":"Параметризация модели. Расчёт системы \"фундамент - грунт\" в ANSYS Workbench Mechanical"},{"content":"Устойчивость – способность тела сохранять положение или форму равновесия при внешних воздействиях.\nКритическая сила \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e – нагрузка, превышение которой вызывает потерю устойчивости первоначальной формы (положения) тела. Условие устойчивости:\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e Рассмотрим расчёт линейной потери устойчивости конструкций в приложении ANSYS Mechanical, запускаемом через оболочку Workbench.\nПодготовка проекта Проект будет включать расчёт линейной потери устойчивости сжимающейся консольной балки (задача Эйлера) и расчёт линейной потери устойчивости железобетонной арки. Каждая задача решается в двух связанных блоках: Static Structural и Eigenvalue Buckling. Обе задачи будут основаны на одном и том же блоке материалов.\nДобавим все необходимые блоки\nВаш браузер не поддерживает видео. Переименуем блоки\nВаш браузер не поддерживает видео. Материалы В качестве материала балочной модели будем использовать стандартный материал Structural Steel, арки - материал с усреднёнными свойствами железобетона.\nВаш браузер не поддерживает видео. Геометрия Геометрию можно создать в приложении Design Modeler, приложении SpaceClaim, или импортировать из другой CAD-системы. Создадим макет (Sketch) линейного тела с помощью приложения Design Modeler\nВаш браузер не поддерживает видео. На основе макета создадим линейное тело\nВаш браузер не поддерживает видео. Добавим сечение балки и назначим его линейному телу\nВаш браузер не поддерживает видео. Конечно-элементная сетка Создадим конечно-элементную сетку с указанием размера элемента:\nВаш браузер не поддерживает видео. Граничные условия Добавим ограничение всех степеней свободы Fixed support для нижней точки балки\nВаш браузер не поддерживает видео. Нагрузка Добавим сосредоточенную сжимающую нагрузку Force. Результатом анализа является коэффициент, при умножении текущей нагрузки на который, мы получим критическую силу. Поэтому удобно использовать силу, равную 1 [Н].\nВаш браузер не поддерживает видео. Статический расчёт Добавим результаты в виде суммарных перемещений\nВаш браузер не поддерживает видео. Запустим расчёт и посмотрим результаты\nВаш браузер не поддерживает видео. Расчёт линейной потери устойчивости Из-за того, что мы связали системы, мы можем не закрывая Mechanical перейти к системе расчёта потери устойчивости. В системе Eigenvalue Buckling присутствует элемент Pre-Stress (Static Structural) - который переносит результаты из статического расчёта в виде преднапряженного состояния для текущей задачи. Данный элемент появился из-за того, что мы на этапе создания блоков задач связали не только раздел Model у двух задач, но и раздел Solution.\nКак правило рассматривается только первая форма потери устойчивости, однако в обучающих целях изменим количество форм до трёх.\nВаш браузер не поддерживает видео. Запустим расчёт\nВаш браузер не поддерживает видео. Получим результат для первой формы\nВаш браузер не поддерживает видео. Проверьте, совпадает ли полученный результат с формулой Эйлера: \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e где \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - модуль Юнга, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - момент инерции сечения, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - длина стержня, \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e - коэффициент закрепления, показывающий на какой части длины стержня для данного вида закрепления укладывается одна полуволна синусоиды при потере устойчивости\nЗадачи для самостоятельного решения Проведите расчёт потери устойчивости стержня с закреплением, соответствующим \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e . Проведите плоский расчёт потери устойчивости защемлённой по краям железобетонной полукруглой арки с квадртным сечением под вертикальной распределённой нагрузкой. ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_buckling/","summary":"","title":"Расчёт линейной потери устойчивости конструкций в ANSYS Workbench Mechanical"},{"content":"Рассмотрим расчёт осадки цилиндрической сваи в приложении ANSYS Mechanical, запускаемом через оболочку Workbench.\nПодготовка проекта Проект будет включать расчёт один блок решения задачи МДТТ - Static Structural.\nВаш браузер не поддерживает видео. Материалы В качестве материалов модели будем использовать материалы грунта и железобетона в упрощённой упругой постановке\nУдалим стандартный материал\nВаш браузер не поддерживает видео. Добавим материал грунта\nВаш браузер не поддерживает видео. Добавим материал сваи\nВаш браузер не поддерживает видео. Геометрия Создадим геометрию цилиндрической сваи и окружающего грунта в приложении Design Modeler.\nВаш браузер не поддерживает видео. Создадим макет (Sketch) сваи\nВаш браузер не поддерживает видео. Создадим макет (Sketch) окружающего грунта\nВаш браузер не поддерживает видео. На основе макета сваи создадим её тело вращением вокруг оси с помощью инструмента Revolve\nВаш браузер не поддерживает видео. Аналогичным образом создадим тело грунта\nВаш браузер не поддерживает видео. Вычтем из тела грунта тело сваи с помощью инструмента Boolean (опция Subtract). Для того, чтобы тело сваи не исчезло, используем опцию Preserve Tool Bodies? - Yes (Сохранить вычитаемые тела)\nВаш браузер не поддерживает видео. Полученная геометрия уже может быть использована для расчёта, однако она имеет сложную топологию. Для того, чтобы модель было легче разбить на конечные элементы, а так же для получения более качественной конечно-элементной сетки разобьём модель на более простые тела.\nЧтобы разрезать тело плоскостью, создадим дополнительную плоскость на конце сваи.\nВаш браузер не поддерживает видео. Для горизонтального разрезания тела грунта используем инструмент Slice с опцией Slice by Plane\nВаш браузер не поддерживает видео. Для вертикального разрезания тела грунта по цилиндрической поверхности сваи используем инструмент Slice с опцией Slice by Surface\nВаш браузер не поддерживает видео. Объедим все четыре тела в компоненту с именем грунт-свая\nВаш браузер не поддерживает видео. Конечно-элементная сетка Свернём приложение Design Modeler и откроем приложение Mechanical\nВаш браузер не поддерживает видео. Назначим телам материалы\nВаш браузер не поддерживает видео. С помощью инструмента Edge Sizing зададим количество разбиений на верхней поверхности модели:\nВаш браузер не поддерживает видео. Также зададим количество разбиений по оси симметрии\nВаш браузер не поддерживает видео. С помощью инструмента Multizone создадим сетку. Инструмент Multizone использует метод Sweep, который создаёт трёхмерную сетку из двухмерной сетки вытягиванием вдоль объёма тела.\nНастроим создание сетки для верхних двух тел с указанием источника сетки в виде поверхности, от которой пойдёт вытягивание. Двухмерная сетка на поверхности будет создана в первую очередь.\nВаш браузер не поддерживает видео. Аналогичным образом настроем создание сетки в двух телах нижней части грунта\nВаш браузер не поддерживает видео. Создадим сетку\nВаш браузер не поддерживает видео. Геометрически задача соответствует цилиндрической системе координат, поэтому создадим её\nВаш браузер не поддерживает видео. Добавим осевое ограничение степеней свободы для нижего торца модели\nВаш браузер не поддерживает видео. Добавим радиальное ограничение степеней свободы для внешней цилиндрической поверхности модели\nВаш браузер не поддерживает видео. Добавим окружное ограничение степеней свободы для боковых граней модели. Это ограничение является симметричными граничными условиями рассматриванемой осесимметричной модели.\nВаш браузер не поддерживает видео. Нагрузка В расчёте используем два последовательных шага нагружения:\nПриложим ускорение свободного падения для расчёта модели под собственным весом Добавим вертикальную нагрузку на сваю, эквивалентную 10 кН Изменим количество шагов нагружения (Number Of Steps)\nВаш браузер не поддерживает видео. Добавим ускорение свободного падения\nВаш браузер не поддерживает видео. Добавим распределённую нагрузку с помощью инструмента Force\nВаш браузер не поддерживает видео. Расчёт и постпроцессинг Добавим инструменты постпроцессинга: суммарные перемещения и эквивалентные напряжения всей модели\nВаш браузер не поддерживает видео. Скопируем эти инструменты, но укажем только отдельные тела грунта и сваи\nВаш браузер не поддерживает видео. Запустим расчёт\nВаш браузер не поддерживает видео. Просмотрим все результаты\nВаш браузер не поддерживает видео. Задачи для самостоятельного решения С помощью запуска задачи с разными размерами грунта определите минимально допустимые размеры модели. Минимально допустимыми размерами являются такие, при которых граничные условия не влияют на решение, и наоборот, деформирование в центре не влечёт деформирование на границе, т.е. на границе нет напряжений. Измените геометрию сваи заменив конец сваи с цилиндрического на конусообразный. Сравните результаты двух моделей. ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_mechanical_pile/","summary":"","title":"Расчёт осадки сваи в ANSYS Workbench Mechanical"},{"content":"Рассмотрим расчёты балочных/стержневых конструкций в приложении ANSYS Mechanical, запускаемом через оболочку Workbench.\nПодготовка проекта Проект будет включать расчёт балки с двумя видами граничных условий и расчёт фермы. Обе задачи будут основаны на одном и том же материале.\nДобавим все необходимые блоки\nВаш браузер не поддерживает видео. Переименуем блоки\nВаш браузер не поддерживает видео. Материалы В качестве материала модели будем использовать стандартный материал Structural Steel\nРасчёт балки Геометрия Геометрию можно создать в приложении Design Modeler, приложении SpaceClaim, или импортировать из другой CAD-системы. Создадим макет (Sketch) линейного тела с помощью приложения Design Modeler\nВаш браузер не поддерживает видео. На основе макета создадим линейное тело\nВаш браузер не поддерживает видео. Добавим сечение балки и назначим его линейному телу\nВаш браузер не поддерживает видео. Конечно-элементная сетка Закроем Design Modeler и откроем приложение Mechanical\nВаш браузер не поддерживает видео. Создадим конечно-элементную сетку с указанием количества разбиений:\nВаш браузер не поддерживает видео. В данном случае сечение двутавра оказалось в горизонтальном положении, повернём линию и, соответственно, сечение на 90 градусов\nВаш браузер не поддерживает видео. Расчёт консольной балки Граничные условия Добавим ограничение всех степеней свободы Fixed support для левой точки балки\nВаш браузер не поддерживает видео. Нагрузка Добавим распределённую нагрузку Line pressure\nВаш браузер не поддерживает видео. Расчёт Запустим расчёт\nВаш браузер не поддерживает видео. Добавим результаты в виде перемещений\nВаш браузер не поддерживает видео. Добавим результаты в виде поперечной силы и изгибающего момента\nВаш браузер не поддерживает видео. Обновим все результаты\nВаш браузер не поддерживает видео. Расчёт шарнирно-опёртой балки В следующем блоке добавим граничные условия и нагрузку для расчёта шарнирно-опёртой балки. При этом геометрия и сетка останутся прежними.\nГраничные условия Добавим ограничение степеней свободы на левый шарнир с помощью инструмента Remote displacement\nВаш браузер не поддерживает видео. из шести степеней свободы мы оставили только поворот вокруг оси Z (в плоскости XY)\nДля правого шарнира создадим аналогичное ограничение, но с возможностью перемещаться вдоль балки , т.е. по оси X\nВаш браузер не поддерживает видео. Нагрузка Нагрузку, а также инструменты постпроцессинга скопируем из предыдущей задачи\nВаш браузер не поддерживает видео. Расчёт Запустим расчёт\nВаш браузер не поддерживает видео. Расчёт фермы Геометрия Создадим макет (Sketch) фермы с помощью приложения Design Modeler. Создадим равносторонний треугольник\nВаш браузер не поддерживает видео. На основе треугольника дорисуем оставшуюся часть фермы\nВаш браузер не поддерживает видео. Создадим линейное тело фермы\nВаш браузер не поддерживает видео. Добавим сечение балки и назначим его линейному телу\nВаш браузер не поддерживает видео. Конечно-элементная сетка Закроем Design Modeler и откроем приложение Mechanical\nВаш браузер не поддерживает видео. Укажем, что тело имеет тип Link/Truss, в таком случае оно будет разбито на стержневые элементы, которые имеют три степени свободы - перемещения по трём осям, а тело будет работать только на растяжение/сжатие, но не на изгиб\nВаш браузер не поддерживает видео. Создадим конечно-элементную сетку с указанием количества разбиений:\nВаш браузер не поддерживает видео. в данном случае важно указать, чтобы каждый элемент фермы был разбит на один конечный элемент сетки\nГраничные условия Добавим ограничение степеней свободы на левый шарнир с помощью инструмента Displacement\nВаш браузер не поддерживает видео. В данном случае можно не использовать инструмент Remote displacement, т.к. вращательных степеней свободы в узлах элементов нет\nНа основе ограничений левого шарнира создадим ограчения правого шарнира с учётом возможности перемещения по оси X\nВаш браузер не поддерживает видео. Нагрузка Добавим сосредоточенные силы к шарнирам верхнего пояса\nВаш браузер не поддерживает видео. Расчёт Включим опцию сохранения результатов для сечения для получения данных о напряжениях после расчёта\nВаш браузер не поддерживает видео. Добавим элементы постпроцессинга\nВаш браузер не поддерживает видео. Запустим расчёт\nВаш браузер не поддерживает видео. Задачи для самостоятельного решения Проведите расчёт консольной балки с изгибающим моментом на свободном конце (инструмент нагрузки moment). Сечение Двутавр №12 ГОСТ 8239-89 Проведите расчёт произвольной треугольной фермы ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_beam/","summary":"","title":"Расчёт балочных/стержневых конструкций в ANSYS Workbench Mechanical"},{"content":"В качестве исходной секти в ANSYS CFX может быть использована сетка, подготовленная в программном комплексе ANSYS Mechanical APDL в формате .CDB.\nПри импортировании в CFX КЭ-сетки, подготовленной в ANSYS Mechanical APDL версии 21 года и выше, возникает следующая ошибка:\nТакая ошибка возникает при использовании конечных элементов MESH200 (с опцией 10 - 8-узловые, или с опцией 11 - 20-узловые)\nПри использовании расчётных элементов SOLID185 или SOLID186 появляется другая ошибка:\nКорень проблемы лежит в созданном в ANSYS Mechanical APDL файле .CDB. Такой файл включает в себя команды APDL, подобные стандартным исходным программам на языке APDL.\nПроблема импорта возникает из-за параметра UNBL в некоторых командах, например\nEN,UNBL,ATTR, -1, Такой параметр стал появляться в ANSYS Mechanical APDL версии 21 и выше.\nАналогичная команда при запуске этого же скрипта в более ранних версиях ANSYS Mechanical APDL выглядела следующим образом\nEN,R5.0,ATTR, -1, Если заменить параметр UNBL в подготовленном в 21 версии файле на R5.0, то ошибка исчезнет.\n","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_cfx_version_error/","summary":"","title":"Решение ошибки импортирования КЭ-сетки формата CDB в ANSYS CFX"},{"content":"Design Modeler - простая CAD-система, в которой можно построить геометрию модели, импортировать геометрию из другой CAD-системы, а также провести обработку этой геометрии для подготовки к генерации конечно-элеметной сетки.\nПринцип работы Design Modeler основан на создании дерева последовательных операций. Такая парадигма позволяет работать с отдельными шагами (операциями) построения модели, а именно:\nвносить изменения (размеры, типы операций, выбранные элементы геометрии) в существующие операции удалять операции выключать/включать операции без удаления добавлять операции внутри дерева Создание геометрической модели плиты перекрытия Добавим отдельный блок геометрии Geometry и назывём его \u0026ldquo;Плита\u0026rdquo;\nВаш браузер не поддерживает видео. откроем приложение Design Modeler\nВаш браузер не поддерживает видео. Размеры плиты В данном уроке мы построим модель плиты перекрытия.\nРазмеры плиты 1590х5650 мм.\nСоздавать геометрию будем методом \u0026ldquo;снизу-вверх\u0026rdquo;, т.е. построение будет начинаться с элементарных геометрических объектов - линий и точек, на основе которых будут построены области, из которых уже будут созданы объёмы.\nСоздание исходного скетча Двухмерная геометрия в Design Modeler создаётся с помощью инструмента Sketch. Откроем панель Scetching в плоскости XY\nВаш браузер не поддерживает видео. Зададим общий контур без точных размеров. Ввиду того, что геометрия симметрична относительно центральной плоскости, построим лишь половину сечения\nС помощью инструмента Line построим прямые линии.\nВаш браузер не поддерживает видео. При построении автоматически устанавливаются ограничения исходя из положения объектов, например ограничение на вертикальность линии в случае если линия строилась примерно вертикальной. В данном уроке мы рассмотрим ограничения отдельно, поэтому первоначальное построение произведено достаточно произвольным образом.\nИнструментом Arc by center создадим полуокружность центрального отверстия, а оставшиеся отверстия создадим инструментом Circle\nВаш браузер не поддерживает видео. Установка ограничений Добавим ограничения Constraints\nНа вертикальность и горизонтальность прямых линий: Ваш браузер не поддерживает видео. Для того, чтобы совместить точки между собой, а также привязать точки к осям, воспользуемся инструментом Coincident Ваш браузер не поддерживает видео. Инструментом Equal Radius добавим ограничения на одинаковость радиусов отверстий, а также с помощью инструмента Drag сместим отверстия внутрь контура сечения.\nВаш браузер не поддерживает видео. Инструментом Tangent обеспечим соответствие верхней части сечения отверстиям Ваш браузер не поддерживает видео. Расстановка размеров Добавим горизонтальные размеры сечения Ваш браузер не поддерживает видео. Добавим вертикальные размеры сечения Ваш браузер не поддерживает видео. Добавим ограничение диаметра отверстий Ваш браузер не поддерживает видео. Визуальная окраска в синий цвет говорит о том, что все нужные размеры заданы, геометрия скетча однозначна.\nВвод размеров Для удобства задания размеров перейдём в миллиметры\nВаш браузер не поддерживает видео. Зададим конкретные размеры модели:\nВаш браузер не поддерживает видео. На этом создание скетча закончено. Перейдём к созданию трёхмерной геометрии.\nЭкструзия Экструзия - \u0026ldquo;вытягивание\u0026rdquo; сечения вдоль некоторой траектории на заданную длину. Как правило, траектория является нормалью к сечению, однако она может быть направлена не только перпендикулярно относительно сечения, а общем виде может быть и криволинейной.\nПри экструзии области сечения вытянутся в объёмы, линии в области, а точки в линии.\nДля создания отдельной площадки для опирания плиты на ригель произведём экструзию в три шага:\nна 120 мм, но на 5410 мм, т.е. на величину длины пролёта: 5650 мм - 2 * 120 мм = 5410 мм, и ещё на 120 мм. Ваш браузер не поддерживает видео. В качестве настройки Operation мы выбрали Add Frozen, что делает создаваемое тело \u0026ldquo;замороженным\u0026rdquo;, такое тело автоматически не присоединяется к уже существующему телу.\nОтражение Данный вид модели подойдёт для расчётов с симметричной относительно плоскости YZ нагрузкой. Однако, если нагрузка будет несимметричной, необходимо будет добавить отраженные части. Для этого воспользуемся инструментом Mirror\nВаш браузер не поддерживает видео. Обратим внимание, что было создано 5 тел, а не 6, т.к. при отражении первого тела автоматически произошла операция объединения тел. Чтобы этого не произошло, предварительно добавим \u0026ldquo;замораживание\u0026rdquo; всех тел\nВаш браузер не поддерживает видео. Для того, чтобы отдельные тела работали совместно в рамках единого тела, необходимо обеспечить совместность их границ, для этого объединим тела в одну групп (part)\nВаш браузер не поддерживает видео. Если необходимо отключить, но не удалить, часть тел, воспользуемся методом supress\nЗадачи для самостоятельного решения Проведите расчёт напряженно-деформированного состояния опирающейся на ригели плиты. В качестве нагрузки используйте собственный вес конструкции, вес пола пола 0.5 кН/м^2 и временную распределённую нагрузку 10 кН/м^2. Свойства материала задайте в соответствии классом бетона B25.\nДобавьте второй скетч, представляющий собой 8 стержней продольной арматуры после экструзии стержней вычтите их из плиты с помощью инструмена Create-Boolean с настройками Operation: Subtract, Preserve Tool Bodies: Yes. Добавьте эти тела в группу Плита\n","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_design_modeler/","summary":"","title":"Создание геометрии в ANSYS Workbench Design Modeler"},{"content":"Рассмотрим расчёт простого кубика в приложении ANSYS Mechanical, запускаемом через оболочку Workbench.\nДля решения отдельной задачи в рамках общего проекта Workbench в проект добавляются различные блоки. Слева представлены все установленные и доступные по текущей лицензии блоки. Static Structural подходит для решения задач МДТТ в статической или квазистатической постановках Добавим блок расчёта Static Structural.\nВаш браузер не поддерживает видео. Материалы Материал представляет собой набор добавленных в него моделей (представлены слева в Engineering Data) и заданных значений характеристик. Также можно добавить готовые модели из библиотеки материалов (Engineering Data Sources). Добавим в блок новый материал:\nВаш браузер не поддерживает видео. Геометрия Геометрию можно создать в приложении Design Modeler, приложении SpaceClaim, или импортировать из другой CAD-системы. Создадим кубик с помощью приложения Design Modeler.\nВаш браузер не поддерживает видео. Конечно-элементная сетка Комплекс Mechanical включает в себя генератор конечно-элементных сеток, расчётный модуль и модуль просмотра результатов расчёта. Создадим конечно-элементную сетку:\nВаш браузер не поддерживает видео. Для различных тел модели можно назначить различные ранее добавленные материалы Назначим телу кубика созданный ранее материал:\nВаш браузер не поддерживает видео. Расчёт Запустим Mechanical и выберем единицы измерения:\nВаш браузер не поддерживает видео. Назначим граничные условия, соответствующие одноосному растяжению с учётом симметрии модели:\nВаш браузер не поддерживает видео. Запустим расчёт:\nВаш браузер не поддерживает видео. Зелёная галочка говорит о том, что расчёт был проведен успешно.\nПостпроцессинг Инструменты для просмотра результатов расчёта можно добавить до проведения расчёта или после него. Deformation – перемещения [м]. Добавим элементы результатов расчёта:\nВаш браузер не поддерживает видео. Рассмотрим результаты расчёта:\nВаш браузер не поддерживает видео. Проект Workbench Проект Workbench представляет собой директорию $name$_files и файл $name$.wbpj Проект можно переименовать в файловом менеджере изменив $name$ в имени файла и директории Для переноса проекта необходимо скопировать и директорию, и файл. Проверим файл и папку расчёта на диске:\nВаш браузер не поддерживает видео. если необходимо хранить пользовательские файлы (книги, изображения, текстовые документы, электронные таблицы и т.д.) вместе с проектом, то можно поместить их в подпапку user_files внутри директрии проекта. Если поместить файлы в любую другую подпапку проекта, то они будут автоматически удалены. внутри директории dp0 находятся папки, соответствующие добавленным в проект блокам. Названия блоков/папок можно найти в свойства (Properties) блоков в Workbench Задачи для самостоятельного решения Замените граничное условие - перемещение границы на распределённую силу, приложенную к этой же грани. Проведите расчёт. Проверьте влияние на результаты расчёта изменения степени дискретизации модели. Измените характеристики материала для бетона более высокого класса. Сравните результаты. ","permalink":"https://ilinyhgleb.github.io/posts/ansys/ansys_base_wb/","summary":"","title":"Простой расчёт в ANSYS Workbench Mechanical"}]