- Пять задачек из тех, которые хорошо бы уметь решать
- Задачи
- Первая задача
- Вторая задача
- Третья задача
- Четвёртая задача
- Пятая задача
- Решения
- Задача первая
- Задача вторая
- Задача третья
- Задача четвёртая
- Задача пятая
- Вместо заключения
- Задачи по Python
- Простейшие арифметические операции (1)
- Високосный год (2)
- Квадрат (3)
- Времена года (4)
- Банковский вклад (5)
- Простые числа (6)
- Правильная дата (7)
- XOR-шифрование (8)
- Задачи по Python для начинающих от Tproger и GeekBrains
- Задачи по Python для начинающих от Tproger и GeekBrains
- Задача 1
- Задача 2
- Задача 3
- Задача 4
- Задача 5
- Задача 6
- Задача 7
- Задача 8
- Задача 9
- Задача 10
- Задача 11
- Задача 12
- Задача 13
- Решаем простые задачи на Python
- Найдены возможные дубликаты
- Программирование на python
- Правила сообщества
- План изучения программирования | Python | Часть 1
- Нельзя так просто взять и выбрать что-то одно.
- Полёт будет длиться вечно
- Мой код, когда решил в 3 часа ночи, что сейчас он заработает:
- Сколько нашли «багов» на последней картинке?
- Ну так можно быть экспертом в любом языке
- Ответ на пост «Отличная психотерапия»
- Отличная психотерапия
- «Но я должен разобраться!»
- Python, основы | что читать/смотреть(видео)
- Как программисты на Python видят другие языки:
- Когда случайно вместо «&&» написал «||»
- Блогерохвостый питон
- Список бесплатных курсов, чтобы стать python-разработчиком (по направлениям)
- От продавца до Big Data Scientist #13
Пять задачек из тех, которые хорошо бы уметь решать
Зачем я всё это написал? Дело в том, что я давно уже работаю программистом. Прошёл множество собеседований и сам провёл не мало. Видел самых разных разработчиков, наблюдал за ними… И сделал для себя некоторые выводы.
Так как многие спрашивают моего мнения, я решил написать его. Не чтобы кому-то навязать, просто, чтобы не рассказывать много раз.
Конечно, задачи сильно зависят от того, на какую ставку вы идёте и чем предполагаете заниматься. Но поверьте, если вашему работодателю достаточно того, что вы умеете плести цепочки вызовов на jQuery, знаете HTML, или SQL, то задумайтесь, — возможно, вас ждёт скучноватая работёнка.
Если же вашему работодателю не так уж важно на каком языке вам удобней выражать свои мысли. Если он больше обращает внимание на вашу эрудицию, — старайтесь получить эту работу. Вас, скорее всего, ждут разнообразные и интересные задачи.
Ладно, оставим разговоры. Сперва приведу задачи, а потом решения. Вы можете не проматывать до них и решить задачки самостоятельно. Если вы уложитесь в час, то ждём вас не собеседование ,-) Приступим.
Задачи
Первая задача
У вас есть массив чисел. Напишите три функции, которые вычисляют сумму этих чисел: с for-циклом, с while-циклом, с рекурсией.
Вторая задача
Напишите функцию, которая создаёт комбинацию двух списков таким образом:
Третья задача
Вычислите первые 100 чисел Фибоначчи. (Напишите код.)
Четвёртая задача
У вас есть массив чисел, составьте из них максимальное число. Например:
Пятая задача
У вас есть девять цифр: 1, 2, …, 9. Именно в таком порядке. Вы можете вставлять между ними знаки «+», «-» или ничего. У вас будут получаться выражения вида 123+45-6+7+89 . Найдите все из них, которые равны 100.
Постарайтесь решить эти задачи за час.
А теперь ответы
Решения
Я буду приводить решения на Python3. Кроме того, это те решения, которые можно написать за час. В чём-то они не идеальны, это повод поговорить и, возможно, взять дополнительное время.
Задача первая
Конечно, если вы рассказывайте про Python, то имеет смысл сказать и про функцию sum или reduce . Если речь идёт о других языках, будет не лишним упоминать возможности их библиотек. Но здесь интересно ваше решение.
В первой функции говорить особо не о чем. Спасибо Python.
Во втором случае уже можно порассуждать надо ли разрушать массив (вынимая из него элементы). Или пойти по тому пути, который выбрал я. Тут тоже можно обратить внимание на то, как эта функция невыгодно выглядит по сравнению с рекурсивной. Есть множество мест, где можно допустить ошибки.
Рекурсивная функция прекрасна.
Задача вторая
Тут нет ничего необычного, но можно порассуждать о библиотеках. Если речь про Python можно предложить решение типа sum(zip(a, b), ()) .
Задача третья
Я реализовал итератор. Этим можно было бы показать, что вы про них знаете и здесь их использование уместно.
Тут уже можно поговорить и о языке. Если ваш язык не Python, то, возможно, вам следует задуматься о типе и битности чисел, так как сотое число содержит 68 бит.
Кроме того, есть способ расчёта чисел Фибоначчи путём возведения в степень матриц. Он позволяет не рассчитывать все числа последовательности. Возможно, от вас хотят именно его.
Задача четвёртая
Код (не правильный):
Эта задача больше всего зависит от языка. Я её решил, используя возможности Python.
upd:
Этот код провисел на сайте года три, пока, некто Роман Парпалак не указал мне на ошибку.
Я сохраню интригу и не буду говорить в чём ошибка. Но код, дающий правильный результат я всё же приведу:
Да, тут Python2. В Python3 придётся сделать что-то вроде этого:
Зачем я сохранил неправильный код? По нескольким причинам.
Во-первых, удалить его было бы не честно с моей стороны. Я же декларировал, что решу задачи за час. За указанное время я дал именно это решение.
Во-вторых, чтобы читатель мог поискать ошибку, подумать, нет ли ошибок в его решении…
В-третьих, чтобы подчеркнуть, что все могут ошибаться. Решение задач на время всегда будет сопровождаться ошибками. Недавно я проходил очень интересное интервью. Будет время, — напишу про него отдельно. Но меня в нём поразило то, что олимпиадных задач не было, и спешки тоже не было. И мне кажется, что эти люди действительно хорошо понимают, кого ищут, и выстраивают интервью адекватно своему пониманию. Но это отдельная интересное история.
А тут я лишь скажу: спасибо, Роман. Интересно было бы узнать ваш вариант решения.
Задача пятая
Тут есть простор для творчества. Мой код таков:
Мне кажется, в таком виде его проще всего и писать и читать и тестировать. Тут у меня три функции: all_combinations — итератор, который выдает все числа для операций (в терминах задачи: вставляет пустые места); all_signs — выдаёт все возможные сочетания знаков + и — заданной длинны (для единообразия, это тоже итератор с рекурсией); perform_operations — выполняет операции.
Тут, конечно, просится решение, избавленное от if-ов и кодирования операций с помощью символов. Но это решение будет более громоздким, о нём можно рассказать, но и писать, и читать его дольше. Лично я вышел бы за рамки отведённого часа.
Наверняка вам по душе будет какое-то иное решение. Мой пример — лишь одна из возможных реализаций.
Вместо заключения
Где можно взять таких задачек? Можно начать с Project Euler. Там, правда, немного более математизированные задачки, но это и не плохо. И сложность задач расчёт очень быстро. Я решил восемьдесят.
Если вы знаете ресурсы с хорошими задачками — пожалуйста напишите мне.
upd: В моём решении пятой задачи Мерзляков Александр из Уфы нашел неточность. Спасибо! Я поправил. Получается, что я на эти решения потратил больше часа.
Источник
Задачи по Python
Каждому изучающему Python нужно писать код для закрепления. Вашему вниманию предлагаются несколько задач для реализации (не слишком простых (кроме первой) и не слишком сложных).
Для выполнения заданий крайне рекомендуется пройти самоучитель.
Также для этих задач есть репозиторий с тестами и моими решениями (чтобы проверить себя).
Для запуска тестов для вашей функции проще всего будет добавить код из папки с тестами в конец файла с функцией.
А теперь, собственно, задачи:
Простейшие арифметические операции (1)
Написать функцию arithmetic, принимающую 3 аргумента: первые 2 — числа, третий — операция, которая должна быть произведена над ними. Если третий аргумент +, сложить их; если —, то вычесть; * — умножить; / — разделить (первое на второе). В остальных случаях вернуть строку «Неизвестная операция«.
Високосный год (2)
Написать функцию is_year_leap, принимающую 1 аргумент — год, и возвращающую True, если год високосный, и False иначе.
Квадрат (3)
Написать функцию square, принимающую 1 аргумент — сторону квадрата, и возвращающую 3 значения (с помощью кортежа): периметр квадрата, площадь квадрата и диагональ квадрата.
Времена года (4)
Написать функцию season, принимающую 1 аргумент — номер месяца (от 1 до 12), и возвращающую время года, которому этот месяц принадлежит (зима, весна, лето или осень).
Банковский вклад (5)
Пользователь делает вклад в размере a рублей сроком на years лет под 10% годовых (каждый год размер его вклада увеличивается на 10%. Эти деньги прибавляются к сумме вклада, и на них в следующем году тоже будут проценты).
Написать функцию bank, принимающая аргументы a и years, и возвращающую сумму, которая будет на счету пользователя.
Простые числа (6)
Написать функцию is_prime, принимающую 1 аргумент — число от 0 до 1000, и возвращающую True, если оно простое, и False — иначе.
Правильная дата (7)
Написать функцию date, принимающую 3 аргумента — день, месяц и год. Вернуть True, если такая дата есть в нашем календаре, и False иначе.
XOR-шифрование (8)
Написать функцию XOR_cipher, принимающая 2 аргумента: строку, которую нужно зашифровать, и ключ шифрования, которая возвращает строку, зашифрованную путем применения функции XOR (^) над символами строки с ключом. Написать также функцию XOR_uncipher, которая по зашифрованной строке и ключу восстанавливает исходную строку.
Источник
Задачи по Python для начинающих от Tproger и GeekBrains
Задачи по Python для начинающих от Tproger и GeekBrains
Вместе с факультетом Python-разработки GeekUniversity собрали для вас несколько простых задач по Python для обучения и тренировки. Их можно решать в любом порядке.
Обратите внимание, что у любой задачи по программированию может быть несколько способов решения. Чтобы посмотреть добавленный нами вариант решения, кликните по соответствующей кнопке. Все приведённые варианты написаны на Python 3.
Задача 1
Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] .
Выведите все элементы, которые меньше 5 .
Самый простой вариант, который первым приходит на ум — использовать цикл for :
Также можно воспользоваться функцией filter , которая фильтрует элементы согласно заданному условию:
И, вероятно, наиболее предпочтительный вариант решения этой задачи — списковое включение:
print([elem for elem in a if elem
Задача 2
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] ;
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] .
Нужно вернуть список, который состоит из элементов, общих для этих двух списков.
Можем воспользоваться функцией filter :
Или списковым включением:
result = [elem for elem in a if elem in b]
А можно привести оба списка к множествам и найти их пересечение:
result = list(set(a) & set(b))
Однако в таком случае каждый элемент встретится в результирующем списке лишь один раз, т.к. множество поддерживает уникальность входящих в него элементов. Первые два решения (с фильтрацией) оставят все дубли на своих местах.
Задача 3
Отсортируйте словарь по значению в порядке возрастания и убывания.
Импортируем нужный модуль и объявляем словарь:
Сортируем в порядке возрастания:
И в порядке убывания:
Задача 4
Напишите программу для слияния нескольких словарей в один.
Допустим, вот наши словари:
Объединить их можно вот так:
А можно с помощью «звёздочного» синтаксиса:
О звёздочном синтаксисе можно прочитать в нашей статье.
Задача 5
Найдите три ключа с самыми высокими значениями в словаре my_dict = <'a':500, 'b':5874, 'c': 560,'d':400, 'e':5874, 'f': 20>.
Можно воспользоваться функцией sorted :
Аналогичный результат можно получить с помощью функции nlargest из модуля heapq :
Задача 6
Напишите код, который переводит целое число в строку, при том что его можно применить в любой системе счисления.
Второй аргумент функции int отвечает за указание основания системы счисления:
Задача 7
Нужно вывести первые n строк треугольника Паскаля. В этом треугольнике на вершине и по бокам стоят единицы, а каждое число внутри равно сумме двух расположенных над ним чисел.
Задача 8
Напишите проверку на то, является ли строка палиндромом. Палиндром — это слово или фраза, которые одинаково читаются слева направо и справа налево.
Тут всё просто, достаточно сравнить строку с её обратной версией, для чего можно использовать встроенную функцию reversed:
Того же эффекта можно добиться с помощью срезов:
Задача 9
Сделайте так, чтобы число секунд отображалось в виде дни:часы:минуты:секунды .
Задача 10
Вы принимаете от пользователя последовательность чисел, разделённых запятой. Составьте список и кортеж с этими числами.
Задача 11
Выведите первый и последний элемент списка.
Задача 12
Напишите программу, которая принимает имя файла и выводит его расширение. Если расширение у файла определить невозможно, выбросите исключение.
Задача 13
При заданном целом числе n посчитайте n + nn + nnn.
Источник
Решаем простые задачи на Python
Все решение на сегодняшние задачи будет ЗДЕСЬ
Я решил чуть-чуть отвлечься от обучения вас PyQt, углублением в ООП и магическими методами. Я подумал, что не все на таком уровне познании python как я, так что сегодня мы порешаем простые задачи на python.
Начнем с простой задачи на палиндром.
#1 Запись input_string[::-1] означает, что мы переворачиваем строку. Например если мы ввели привет, то при применение [::-1] получим тевирп.
reversed() — переворачивает слово и возвращает список.
Переходим к следующей задаче, она часто задается в школе учителем информатике.
В этом случае мы в цикле пробегаемся по строке, превращаем каждый символ строки в число и суммируем их.
Выдергиваем каждый символ из строки и превращаем его в число и суммируем.
Переходим к тяжелой артиллерии.
считаем четные дни days_odd, days_even считаем нечетные дни. Далее проверяем, что четных дней больше чем нечетных и выводим в зависимости от этого YES или NO. В последней строке мы разделяем четные, нечетные дни и (YES или NO) пробелами.
Решаем последнюю задачу.
Во первых мы преобразуем строку в числа ( input().split() — разбивает строку и превращает её в список). Далее находим сумму всех чисел > 0. Потом идет проверка меньшее число стоит перед большим или после большего. После идет цикл, с помощью которого мы считаем произведение чисел от меньшего к большему или от большего к меньшему.
Найдены возможные дубликаты
Программирование на python
179 постов 6.4K подписчиков
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
• уважение к читателям и авторам
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
Опять ты от незнания Python людей говнокоду учишь.
Зачем тут лишние list и lambda, если можно проще и изящнее?
Очевидно, что ты нихуя не знаешь как sum и map работают.
Я имхо проще эту задачу решил
s = list(filter(str.isalnum, s))
А где обработка пользовательского ввода? Вдруг юзер введёт «6р4ин37» ?
Зачем нужен этот пост с неэффективными решениями алгоритмических задач? На олимпиадах и собесах такие решения не катят.
Здесь у тебя алгоритмически сложно. Можно проще.
Сгольфил немного: ‘sorted’ короче, но медленнее. Лучше, конечно же, так:
> считаем четные дни days_odd, days_even считаем нечетные дни.
Опять какой-то жуткий говнокод.
Все же намного проще.
ТС, у тебя ошибка, odd —> нечетный, это когда остаток деления по модулю 2 равен 1, а у тебя наоборот.
Здесь я неправ, не прочитал до конца задание.
1. С точки зрения good practice нужно курить PEP8 — https://www.python.org/dev/peps/pep-0008/ .
2. С точки зрения читабельности — как у вас в команде принято, желательно с учетом PEP8.
3. Оптимизация по скорости не имеет смысла, пока не доказано, что нужно оптимизировать. [premature optimization is the root of all evil (or at least most of it) in programming. — D.Knuth]. Но и пессимизировать на ровном месте не стоит — не нужно использовать «пузырек», если доступен «quicksort» (см. О-нотация).
В данном случае я просто выебнулся в стиле code golf.
В продакшн коде лучше использовать «if else», имхо. Из соображений читабельности.
> Цитатку утащу, часто на разных курсах в коментах под решениями происходят баталии оптимизаций
Что-то мне подсказывает, что ты еще нестарый программист.
Эта «цитатка» (про «premature optimization») — баян баянов с 1974 года.
И ты, возможно, упускаешь вторую часть про пессимизацию.
«When items are appended or inserted, the array of references is resized. Some cleverness is applied to improve the performance of appending items repeatedly; when the array must be grown, some extra space is allocated so the next few times don’t require an actual resize.» — https://docs.python.org/3/faq/design.html#how-are-lists-impl.
Эта заметка , конечно, и рядом не валялась с четким стандартом С++, но можно предположить, что поведение python list похоже на c++ std::vector (и замечу, что мало что иного можно придумать, а в комитете по стандартизации с++ довольно неглупые профи сидят).
И если питоновский list.append() примерно равен плюсовому std::vector::push_back(), то сложность добавления элемента через list.append() = амортизированная константа = O(1).
А вот добавление через +[element] синтактически порождает новый список с резервированием памяти, а затем еще один, суммарный. Итого O(N).
Насколько интерпретатор питона (и какой из? CPython не одинок), способен соптимизировать эту конструкцию, я не знаю.
Если эта конструкция встречается незначительное число раз, то можно и забить, особенно, если +[element] выглядит понятнее в контексте.
> Остужать пыл работяг, которые в изначально очень высокоуровневый Пайтон пытаются вклинить свои низкоуровневые велосипеды в надежде на большее быстродействие
А так ответ универсальный: всегда нужно профилировать.
> Тут даже не стоило растекаться мыслью по древу, очевидно, что встроенные методы быстрее и предпочтительнее нативных операций в большинстве ситуаций,
В формулировке этого вывода я вижу непонимание.
Мой скромный совет: если ты сам не программер, то не нужно искать на непрофильных площадках аргументов для споров с профи. И вообще не нужно.
Пусть профи делают свое дело.
> встроенные методы быстрее и предпочтительнее нативных операций
А даже если ты и описался, и имел в виду другое, то учти, что даже в CPython есть JIT (хоть и частично) через Numba, если, конечно, понимаешь о чем я.
Решения у тебя крутые, спасибо 👍
Пожалуйста! Даже немного неловко за нелестные слова в твой адрес. Держись!
Да ничего, бывает).Мне интересно сколько ты программируешь?
Зачем извращения с list(map(lambda x: f(x), . ))), если есть [f(x) for x in . ]. Короче, понятнее и быстрее (нет лишней лямбды). Это же не курс по ФП в питоне, да?
Блин, а практических задачах reverse вообще используется?
> Блин, а практических задачах reverse вообще используется?
Да. ТС по незнанию не упомянул важный нюанс.
a[::-1] —> создает копию списка, т.е для списка в N элементов, тебе потребуется выделить дополнительно памяти на N элементов, скопировать их в обратном порядке, и только потом использовать. А теперь пусть N = 100500000000.
reversed(a) —> позволяет итерироваться от конца к началу по оригинальному списку. Никаких дополнительных затрат на память и копирование.
Вот объяснил так объяснил! Молодец! Все сразу так и поняли, что за магические map и lambda и как они работают.
План изучения программирования | Python | Часть 1
Приветствую, перевел еще один пост в видеоформат. Как-то начинал подобную серию постов, вот решил довести эту историю уже в видеоформате.
Текстовая версия(в видео все 3 части):
Нельзя так просто взять и выбрать что-то одно.
Полёт будет длиться вечно
Мой код, когда решил в 3 часа ночи, что сейчас он заработает:
Сколько нашли «багов» на последней картинке?
Ну так можно быть экспертом в любом языке
Интервьюер: Тогда напишите на нём «Hello World»
Ответ на пост «Отличная психотерапия»
Держите более правильную, православную версию этой картинки. О как же у меня горит от кривых платформ и конфигураций 1С. Почти ничто типовое, что они делают, без напильника не работает.
Отличная психотерапия
«Но я должен разобраться!»
Python, основы | что читать/смотреть(видео)
Приветствую, перевел еще один пост в видеоформат. Для меня эти видео в рамках такого, скорее эксперимента, поэтому критика очень приветствуется.
Как программисты на Python видят другие языки:
Когда случайно вместо «&&» написал «||»
Блогерохвостый питон
Специально для Telegram-канала @zen_of_python
Список бесплатных курсов, чтобы стать python-разработчиком (по направлениям)
Для тех, кто хотел стать программистом на python «с нуля», но не мог найти список курсов с более-менее внятной структурой. Мы попытались такой составить: ссылка на гугл документ.
Если коротко и одной картинкой, то получается примерно так (ссылки доступны в оригинальном гугл документе):
Предложенный план не говорит о том, что вы должны пройти все курсы, чтобы успешно устроиться в компанию. Вполне вероятно, что если вы отлично выучите язык и фреймворк (к примеру, Django), то вас с удовольствием возьмут в какую-либо фирму, однако в yandex вы вряд ли устроитесь. Таким образом, этот документ является скорее опорным планом для получения базовых знаний по своему направлению.
Материал подготовили админы и участники нашей группы изучения питон вк. В будущем материал будет дополняться.
От продавца до Big Data Scientist #13
Всем привет! Я живой 🙂 Честно говоря, мне очень стыдно писать спустя 3 месяца после последнего поста. Ща расскажу что случилось.
У меня появилась новая работа. Не считая ЗП прям работа мечты — работать приходится просто по минимуму, по сравнению с предыдущей. Я больше не продавец и моё присутствие на точке 8*6, как ранее, уже не требуется. Да что там, бывают дни, когда можно даже из дома не выходить. В общем, казалось бы, ну чего бы и не учиться? Даже с ещё большей интенсивностью. Да? А вот мои мозги решили иначе. Я впал в какую-то смесь депрессии и прокрастинации очень надолго. Я забросил вообще всё. Я не фотографировал, не занимался физическими упражнениями и, конечно же, я перестал кодить. Я ничего не делал. Днём работал или ездил по делам связанными с семьёй, а вечером тупил в сериальчики или анимешки. Кстати, уже много лет мы с женой (в прошлом заядлые анимешники) не смотрели ни одного тайтла. Но вот я уговорил посмотреть «Коносубу», ну и понеслось 🙂 За эти 3 месяца мы с десяток тайтлов просмотрели, как отличных, так и весьма посредственных. Примерно к началу января, я решил, что нужно что-то менять. Решено было возобновить физическую активность и записаться в зал, куда уже с пол года ходит супруга. Начал с индивидуальных занятий 2 раза в неделю. Постепенно вернулся некоторый интерес к своим прошлым увлечениям — провёл приятную съемку, начал снова постить фоточки (из старых), снова занялся обучением фотографии, подготовил программу обучения по обработке фотографий. В общем, жизнь закипела. Ну и как следствие, я собрал силы в кулак и решил попробовать вернуться в программирование. Ещё о этого в попытках вернуться я допрошёл тему «Регулярные выражения», но это было очень мучительно и не вызывало интереса для дальнейшего обучения. Поэтому было решено попробовать-таки написать программу, о которой я рассказывал ранее — агрохимический калькулятор. Друг мне прислал всю инфу ещё в середине декабря, и я приступил к её изучению где-то в конце февраля. Освежив в голове давно забытые термины и понятия, я начал наброску логики программы. Что делал в первые, я сначала в текстовом варианте прям пошагово написал как и что должно работать. В какой момент будут создаваться переменные, когда списки, когда прочее. Что откуда и как будет браться. В начале марта (да, я всё делал не спеша, с перерывами в пару дней) я решился и запустил пайчарм. Пайчарм встретил меня тем, что новый проект не создавал файла main.py и не привязывал интерпритатор к проекту. Кое как победив его я принялся за код.
За пару присестов я написал логическую часть с ручным вводом данных, но программа предполагала наличие интерфейса. Когда базовые функции заработали я принялся к знакомству с TKinter. Всё оказалось достаточно просто и доступно. Ещё через недельку появился простенький неказистый интерфейс. Далее привязал логическую часть, переписав дофига всего, что бы это заработало. Скинул другу видосик с примером работы. Друг похвалил и озадачил новой темой: нужно прилепить коэффициенты в зависимости от агрохимического анализа почвы, если такой имеется. Подумалось, что это на час делов, но вникнув в суть вопроса я приуныл. Нужно было как-то связать ещё 3 таблицы для просчёта коэффициентов. Я пошёл по самому тупому пути и просто накидал 150 строк If’ов. Сделав половину я понял, что можно было загрузить эти таблицы и потом сделать обход по этим таблицам, но к тому времени я чот прям устал и решил просто доделать как есть. К тому же вторая таблица повторяла коэффициенты, просто для них были другие диапазоны. Поэтому CTRL+C, CTRL+V, плюс час на исправление диапазонов. И всё заработало 🙂 После допилил некоторые вещи и всё стало работать как часики.
В общем допиливание этой программки до рабочего состояния и побудило меня к написанию этого поста. Мол, ребятки, я не сдался, я тут, я ещё что-то пишу!
Если кому интересно, могу в следующий раз сделать подробное описание логики программы 🙂
Собственно у меня остались вопросы. Как, например мне теперь сие чудо сделать экзешником и скинуть другу на пробу? Программа подтягивает инфу со сторонних файлов, можно ли сделать так что бы будучи скомпиленной она так же их и подтягивала, а не добавлять их в тело экзешника, как было у меня со скриптом для автоматического копирования. В общем, как сделать моё творение рабочим инструментом? Подскажите, если кто шарит 🙂
Источник