06 июн 2024 · 18:21    
{"document": [{"text": [{"type": "string", "attributes": {}, "string": "Это небольшое пособие для тех, кто решал стать разработчиком (программистом, кодировщиком), но не очень уверен в своих силах и способностей, да и желаниях тоже. Ходят устойчивые слухи, что сегодня (июнь 2024) ситуация для программистов на рынке труда в России выгодна для искателей работы. Это, действительно, так. Об этом мне поведала "}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/pics/008/"}, "string": "Начальник Управления по борьбе с персоналом Вера Ивановна"}, {"type": "string", "attributes": {}, "string": ". "}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "title_00056_1000x960.jpg", "filesize": 155812, "height": 960, "pic_id": 868663, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2024/06/06/title_00056_1000x960.jpeg", "width": 1000}}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "***** С чего начать *****"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Прежде чем погрузиться в бесконечный океан программирования, давайте, на берегу слегка пощупаем воду."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Проведите самодиагностику. Вам в школе нравилась математика? Вы любите играть в шахматы? Если ответили «да» на оба вопроса, скорее всего, программирование - это ваше дело."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Ну и, конечно, ваше личное желание. Если вы хотите писать длинные коды программ, погружаться в спагетти программного кода неизвестного программиста, который писал этот код десять лет назад, а теперь сбежал от ответственности, то это очень хорошо. Вы рождены, чтобы стать разработчиком, программистом."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Добро пожаловать в семью. У нас тут очень хорошо, комфортно. Наш девиз «Gens Una Sumas». Мы все помогаем друг другу как можем. Вы тоже вполне можете рассчитывать на такую помощь."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "***** Javascript - начало всех начал *****"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Давайте, начнем с языка Javascript (Джаваскрипт, Яваскрипт). Вообще, разных языков программирования очень много: Питон, PHP, C++, Java и т. д."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Javascript имеет то огромное преимущество перед другими языками программирования, что он уже есть в вашем телефоне, планшете, компьютере. Он встроен в любой браузер. Мы можете немедленно написать первую программу прямо сейчас."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Следуя старым добрым традициям, напишем первую программу в стиле вывода значения строки «Hello, World!» "}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Текст программы «Hello, World!» "}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "console. log («Превед, Медвед!»);"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Скопируйте текст программы в буфер обмена, вставьте в консоль браузера (консоль открывается-закрывается по F12 или еще как-нибудь), нажмите «Enter»."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если вы ранее никогда не копипастели в консоль, то вполне возможно, консоль выдаст вам предупреждение."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Это важный момент. Браузер беспокоится о соблюдении простейших норм информационной безопасности. Не следует бездумно копипастить непонятный код, с интересом наблюдая, что из этого выйдет."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Текст программы «дважды два четыре» "}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "let x=2"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "let y=2"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "console. log («x*y=», x*y);"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Обратите внимание на интересную особенность языка Javascript: конец строки можно заканчивать символом;, но можно и опускать."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если все вы сделали правильно, то в консоли должна отобразиться информация, как на скриншоте ниже."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "pic002.jpg", "filesize": 67648, "height": 460, "pic_id": 868664, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2024/06/06/pic002.jpeg", "width": 660}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Теперь можно перейти к чуть более сложным задачам."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}, {"type": "string", "attributes": {"bold": true}, "string": "***** Факториал натурального числа *****"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Факториал, - это число, умноженное на «себя минус один», затем на «себя минус два», и так далее до 1. Факториал n обозначается как n!"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Текст программы «Факториал натурального числа» "}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "function fact_fun (n) {"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "// делаем рекурсию только если n больше 1"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "if (n > 1) {"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "return n * fact_fun (n - 1);"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "}"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "else {"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "return 1;"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "};"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "//"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "}; // function fact_fun (n) {"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "//"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "В этой функции fact_fun интересно то, что она вызывает саму себя. Такой прием, когда функция вызывает сама себя, называется Рекурсия."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Чтобы стало совсем все понятно, попробуем визуализировать эту абстракцию с помощью картинки."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/jpeg", "filename": "recursion.jpg", "filesize": 84295, "height": 540, "pic_id": 868665, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2024/06/06/recursion.jpeg", "width": 840}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Посмотреть, как работает эта программа, и получить коды программ можно "}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/soft/js/"}, "string": "здесь"}, {"type": "string", "attributes": {}, "string": "."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Теперь переход к чуть более сложной программе."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}, {"type": "string", "attributes": {"bold": true}, "string": "***** Найти наибольшее число в массиве, являющееся полным квадратом *****"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Описание работы алгоритма"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 1 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Вводим несколько чисел из формы HTML, в нашем примере: 49, 64, 77, 25, 99."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Формируем массив:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "temp_ar = [49, 64, 77, 25, 99];"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 2 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Проходим циклом по этому массиву от нулевого элемента до последнего:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "for (let x = 0; x < temp_ar. length; x++)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "При проходе выполняем пункт 3."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 3 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Определяем, является ли текущий элемент полным квадратом с помощью специальной функции: is_int_cur_kv_fun (temp_ar[x])"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если текущий элемент является полным квадратом, выполняем пункт 4."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 4 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Проверяем, является ли текущий элемент большим по значению, чем max_int (изначально let max_int = null;)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "if (temp_ar[x]>max_int)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если больше, то фиксируем:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "max_int = temp_ar[x];"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 5 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Для данного набора чисел получаем результат 64, с такой расшифровкой:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "1) 49 КВАДРАТ"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "2) 64 КВАДРАТ * Максимальный *"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "3) 77 НЕ квадрат"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "4) 25 КВАДРАТ"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "5) 99 НЕ квадрат"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Посмотреть, как работает эта программа и получить коды программ можно "}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/soft/js/"}, "string": "здесь"}, {"type": "string", "attributes": {}, "string": "."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "А здесь ограничимся скриншотом с этой страницы."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "pic003.png", "filesize": 24236, "height": 540, "pic_id": 868666, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2024/06/06/pic003.jpeg", "width": 660}}], "attributes": []}, {"text": [{"type": "string", "attributes": {"bold": true}, "string": "***** Для заданного числа N найти количество способов его записи в виде суммы положительных чисел *****"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Для заданного числа N найти количество способов его записи в виде суммы положительных чисел (само число N также считать одной из форм записей такой суммы, т. е. N = N)."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Эта задача популярна среди математиков. Например, герой рассказа Константина Оборотова "}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/story/00054/"}, "string": "«Осторожно, женщина!» "}, {"type": "string", "attributes": {}, "string": " использует эту задачу для объяснения, что такое математика."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Описание работы алгоритма"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 1 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Получаем число над которым будем работать из формы HTML:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "let task1_1 = jQuery ('#task1_1'). val ();"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 2 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Допустим, ввели число 4."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Разбиваем это число на массив temp_ar (4) [1, 1, 1, 1]"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Размерность массива temp_ar соответствует числу task1_1, все варианты разложения которого мы ищем."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 3 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Делаем цикл с условием while (temp_ar[0] < task1_1)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Т. е. проходим по циклу до тех пор, пока нулевой элемент массива temp_ar[0] не станет равным числу над которым работаем."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "При этом значение числа task1_1 остается неизменным, а над массивом temp_ar проводим манипуляции, описанные далее"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 4 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Проходим по массиву temp_ar от нулевого элемента до предпоследнего. При этом к минимальному элементу в текущем состоянии массива прибавляем 1"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "temp_ar[min1index] += 1;"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 5 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "При этом мы удаляем следующий элемент:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "temp_ar. splice (min1index+1);"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 6 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Дополняем массив необходимым количеством единиц на конце:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "temp_ar. push (1);"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Делаем это так, чтобы в любом текущем варианте состояния массива temp_ar, сумма его элементов всегда должна быть равна task1_1 (т. е. 4 в нашем примере)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "*** 7 ***"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "После завершения основного цикла, временный массив temp_ar будет содержать единственный элемент, равный по значению числу task1_1"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "temp_ar: [4]"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Всего для данного тестового примера получаем 5 вариантов:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "1) 1+1+1+1=4"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "2) 2+1+1=4"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "3) 2+2=4"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "4) 3+1=4"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "5) 4=4"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Посмотреть, как работает эта программа, и получить коды программ можно "}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/soft/js/"}, "string": "здесь"}, {"type": "string", "attributes": {}, "string": "."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "А здесь ограничимся скриншотом с этой страницы."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "pic004.png", "filesize": 12926, "height": 420, "pic_id": 868667, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2024/06/06/pic004.jpeg", "width": 600}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если вы догребли до этого места, если в процессе у вас появились идеи, как одну или несколько задач реализовать на вашем любимом языке программирования, значит, вы - разработчик. По меньшей мере, в душе."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Спасибо за внимание! Успехов в программировании, разработке и кодировании!"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Первоисточник: "}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}, {"type": "string", "attributes": {"href": "https://wpvi.ru/pages/story/00056/"}, "string": "https: //wpvi. ru/pages/story/00056/"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "#############"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "### Конец ###"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "#############"}], "attributes": []}], "selectedRange": [4769, 4790]}
Комментарии 0