Eurotehnik.ru

Бытовая Техника "Евротехник"
6 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Численные методы. Метод половинного деления в VBA

Предназначение численных методов — упростить человеку решение математических задач. Существуют численные методы для решения интегралов, дифференциалов, линейных и нелинейных алгебраических уравнений и т.д. В основном в ВУЗ-ах изучают только перечисленные.

Под численными методами решения алгебраических уравнений подразумевают алгоритмы нахождения корней уравнения. Алгоритмы, в основном, отличаются скоростью нахождения корней с необходимой точностью, а также условием сходимости. Также, иногда встречается такая характеристика, как простота алгоритма.

Метод половинного деления(бисекции, дихотомии)

В отличие от большинства других методов, метод половинного деления сходится всегда, т.е. обладает безусловной сходимостью, поэтому применим для решения любых уравнений. Кроме этого он чрезвычайно прост. Основным недостатком такого метода является его скорость. С каждым шагом его погрешность уменьшается в два раза, поэтому его можно отнести к методам с линейной сходимостью.

Реализация метода половинного деления в VBA

Метод половинного деления

В интернете можно найти много разных реализаций данного метода как на C++, Matlab и других языках. Языков много, алгоритм один. Для лучшего понимания посмотрим на блок схему.
Распишем общий алгоритм:
Шаг 0. Задать концы отрезка a и b, функцию f, малое число e>0 (допустимую абсолютную погрешность корня или полудлину его промежутка неопределённости), малое q>0 (допуск, связанный с реальной точностью вычисления значений данной функции); вычислить f(a).

Шаг 1. Вычислить с:= 0.5(a+b).
Шаг 2. Если a-b Опубликовано в VBA

Метод половинного деления

Метод половинного деления известен также как метод бисекции. В данном методе интервал делится ровно пополам.

Такой подход обеспечивает гарантированную сходимость метода независимо от сложности функции — и это весьма важное свойство. Недостатком метода является то же самое — метод никогда не сойдется быстрее, т.е. сходимость метода всегда равна сходимости в наихудшем случае.

Метод половинного деления:

  1. Один из простых способов поиска корней функции одного аргумента.
  2. Применяется для нахождения значений действительно-значной функции, определяемому по какому-либо критерию (это может быть сравнение на минимум, максимум или конкретное число).

Метод половинного деления как метод поиска корней функции

Изложение метода

Перед применением метода для поиска корней функции необходимо отделить корни одним из известных способов, например, графическим методом. Отделение корней необходимо в случае, если неизвестно на каком отрезке нужно искать корень.

Будем считать, что корень функции отделён на отрезке . Задача заключается в том, чтобы найти и уточнить этот корень методом половинного деления. Другими словами, требуется найти приближённое значение корня с заданной точностью .

Пусть функция непрерывна на отрезке ,

и — единственный корень уравнения .

(Мы не рассматриваем случай, когда корней на отрезке несколько, то есть более одного. В качестве можно взять и другое достаточно малое положительное число, например, .)

Поделим отрезок пополам. Получим точку и два отрезка .

  • Если , то корень найден ().
  • Если нет, то из двух полученных отрезков и надо выбрать один такой, что , то есть
    • , если или
    • , если .

    Для того, чтобы найти приближённое значение корня с точностью до , необходимо остановить процесс половинного деления на таком шаге , на котором и вычислить . Тогда можно взять .

    Реализация метода на С++ и числовой пример

    Решим уравнение методом половинного деления. Графическим методом находим отрезок , которому принадлежит искомый корень. Так как , то принимаем .

    Ниже приведен пример программы на Си++, которая решает поставленную задачу.

    Программа 1. Корень уравнения

    Искомый корень . Вычисления проводились с точностью .

    Промежуточные вычисления представлены в таблице ниже.

    nanbncnbn-cn
    110.50.5
    20.510.750.25
    30.7510.8750.125
    40.87510.93750.0625
    50.8750.93750.906250.03125
    60.8750.906250.8906250.015625
    70.8750.8906250.88281250.0078125

    Метод половинного деления как метод оптимизации

    Однопараметрическая оптимизация (поиск экстремумов функций одной переменной) является самостоятельной и часто встречаемой задачей. Кроме того, к ней сводится гораздо более сложная задача — поиск экстремума функции многих переменных.

    Рассмотрим метод половинного деления как простейший однопараметрический метод безусловной оптимизации. Данный метод является методом прямого поиска. В нем при поиске экстремума целевой функции используются только вычисленные значения целевой функции.

    Дана функция . Необходимо найти , доставляющий минимум (или максимум) функции на интервале с заданной точностью , т.е. найти

    Запишем словесный алгоритм метода.

    1. На каждом шаге процесса поиска делим отрезок пополам, — координата середины отрезка .
    2. Вычисляем значение функции в окрестности вычисленной точки , т.е.
      .
    3. Сравниваем и и отбрасываем одну из половинок отрезка (рис. 1).
      • При поиске минимума:
        • Если , то отбрасываем отрезок , тогда . (рис. 1.а)
        • Иначе отбрасываем отрезок , тогда . (рис. 1.б)
      • При поиске максимума:
        • Если , то отбрасываем отрезок , тогда .
        • Иначе отбрасываем отрезок , тогда .
    4. Деление отрезка продолжается, пока его длина не станет меньше заданной точности , т.е. .

    Схема алгоритма метода представлена на рис 2.

    При выводе – координата точки, в которой функция имеет минимум (или максимум), – значение функции в этой точке.

    Интегрированный урок (информатика и ИКТ + математика) «Графические и численные методы решения уравнений. Решение уравнений методом половинного деления». 11 класс

    Если скачивание материала не началось, нажмите еще раз «Скачать материал».

    • Информатика

    Цели урока:

    1. Обучающая – формирование новых знаний, умений и навыков по теме «Графические и численные методы решения уравнений. Решение уравнений методом половинного деления».
    2. Развивающая – развивать умение выделять главное; развивать мышление учащихся посредством анализа, сравнения и обобщения изучаемого материала за счет использования различных программных средств; развитие речи, эмоций, логического мышления учащихся.
    3. Воспитательная – формировать интерес к предмету, навыки контроля и самоконтроля; чувство ответственности, самостоятельность, деловые и коммуникативные качества учащихся. Активизация познавательной и творческой активности учащихся.

    Задачи урока:

    • начать изучение исследования математических моделей,
    • начать изучение приближенных методов решения уравнений,
    • познакомить учащихся с методом половинного деления,
    • сформировать представление о точности вычислений
    • сформировать умение приближенно решать уравнения с помощью электронных таблиц Excel,
    • разработать компьютерную модель нахождения корня уравнения в среде разработки Pascal,
    • разработать компьютерную модель нахождения корня уравнения в среде разработки Lazarus,
    • формировать у учащихся потребность использования информационных технологий в решении задач по математике,
    • развивать межпредметные связи.

    Содержание учебного материала:

    • Организационный момент. Объявление темы, цели и задач урока.
    • Актуализация знаний, необходимых для изучения нового материала:
    • Формирование знаний о методе половинного деления.
    • Закрепление навыков нахождения корня уравнения методом половинного деления:
      • Работа по блок-схеме.
      • Приближенное решение уравнений с помощью электронных таблиц Excel.
      • Приближенное решение уравнений с помощью среды разработки Pascal.
      • Анализ полученных результатов.
      • Приближенное решение уравнений с помощью электронных таблиц Excel. (Учебник «Информатика и ИКТ», автор Н.Д. Угринович, п. 1.3.4. стр.45)
      • Приближенное решение уравнений с помощью среды разработки Lazarus. (Учебник «Информатика и ИКТ», автор Н.Д. Угринович п. 1.3.3. стр.40)
      • Анализ полученных результатов. Проверка качества усвоения учебного материала.
      • Подведение итогов урока, домашнее задание, рефлексия учащихся.

      Этапы урока

      Что называется уравнением?

      Уравнение это равенство, содержащее переменную.

      Что называется корнем уравнения?

      Что значит «решить уравнение»?

      Найти его корень

      Какие способы решения уравнения вы знаете?
      Для каких уравнений они применимы и в чем их недостатки?
      На языке алгебры формальные модели записываются с помощью уравнений, точное решение которых основывается на поиске равносильных преобразований алгебраических выражений, позволяющих выразить переменную величину с помощью формулы.
      Точные решения существуют только для некоторых уравнений определенного типа (линейные, квадратные, тригонометрические), поэтому для большинства уравнений приходиться использовать методы приближенного решения с заданной точностью, графические или численные.
      Построение графиков функций может использоваться для грубо приближенного решения. Для уравнения вида f(x)=0, где f(x) – некоторая непрерывная функция, корень (или корни) этого уравнения являются точкой пересечения графика функции с осью ОХ.

      С помощью тождественных преобразований и графическим способом.

      Для уравнений определенного типа.

      При нахождении корня уравнения графическим способом вероятна большая погрешность.

      Какие способы мы можем применить на уроке информатики?

      Графический, с помощью электронных таблиц Excel.

      Кроме графического метода, есть численный метод, применяемый в информатике.
      Для решения уравнения с заданной точностью можно применить разработанные в вычислительной математике численные методы решения уравнений путем последовательных приближений.

      Изучение нового материала. (объяснение сопровождается презентацией)
      Метод половинного деления:
      Метод половинного является самым простым и надежным способом решения нелинейного уравнения.
      Идея метода состоит в выборе точности решения и сведении первоначального отрезка [А;В], на котором существует корень уравнения, к отрезку заданной точности. Процесс сводится к последовательному делению отрезков пополам точкой С=(А+В)/2 и отбрасыванию той половины отрезка ([А;С] или [С;В]), на котором корня нет.
      Выбор нужной половины отрезка основывается на проверке знаков значений функции на его краях. Выбирается та половина, на которой произведение значений функции на краях отрицательно, то есть где функция пересекает ось абсцисс. Переносится та граница, со стороны которой функция на половине отрезка знака не меняет.
      Процесс продолжается до тех пор, пока длина отрезка не станет меньше удвоенной точности. Деление этого отрезка пополам дает значение корня х=(А+В)/2 с заданной точностью.

      Этапы метода половинного деления:

      • Отделение корня:
      • Записать уравнение в каноническом виде: f(x)=0;
      • Найти отрезки (a;b), для которых выполняются следующие условия: функция f(x) непрерывна на отрезке (a;b) и на концах отрезка имеет разные знаки;
      • Поиск корня.
      • Делим исходный отрезок на две половины (a;c) и (c;b), где с=(a+b)/2;
      • Определяем, на какой из частей теперь находится корень уравнения, и берем соответствующую половинку в качестве нового исходного отрезка;
      • Далее повторяем те же действия до тех пор, пока длина полученного отрезка, на котором находится корень, не будет меньше заданной точности |b-a|<e.

      Работа с готовой блок-схемой.

      Найти решение уравнения на отрезке [0;1], с точностью e = 0,2.

      Два ученика реализуют решение уравнения с помощью электронных таблиц Excel и с помощью среды разработки Pascal (для проверки полученного результата)

      a = 0, b = 1.
      Проверяем: f(0)≠0, f(1)≠0; f(0)=-1, f(1)=1. Концы отрезка не являются корнями уравнения.
      f(0)•f(1)<0, следовательно, корень на интервале [0, 1] есть.

      Аналитическое решение некоторых уравнений, содержащих, например тригонометрические функции может быть получено лишь для единичных частных случаев. Так, например, нет способа решить аналитически даже такое простое уравнение, как cos x=x

      Численные методы позволяют найти приближенное значение корня с любой заданной точностью.

      Приближённое нахождение обычно состоит из двух этапов:

      1) отделение корней, т.е. установление возможно точных промежутков [a,b], в которых содержится только один корень уравнения;

      2) уточнение приближённых корней, т.е. доведение их до заданной степени точности.

      Мы будем рассматривать решения уравнений вида f(x)=0. Функция f(x) определена и непрерывна на отрезке [а.Ь]. Значение х 0 называется корнем уравнения если f(х 0 )=0

      Для отделения корней будем исходить из следующих положений:

      • Если f(a)* f(b] a, b существует, по крайней мере, один корень
      • Если функция y = f(x) непрерывна на отрезке [a, b], и f(a)*f(b) и f ‘(x) на интервале (a, b) сохраняет знак, то внутри отрезка [а, b] существует единственный корень уравнения

      Приближённое отделение корней можно провести и графически. Для этого уравнение (1) заменяют равносильным ему уравнением р(х) = ф(х), где функции р(х) и ф(х] более простые, чем функция f(x). Тогда, построив графики функций у = р(х) и у = ф(х), искомые корни получим, как абсциссы точек пересечения этих графиков

      Для уточнения корня разделим отрезок [а, b] пополам и вычислим значение функции f(х) в точке x sr =(a+b)/2. Выбираем ту из половин [a, x sr ] или [x sr ,b], на концах которых функция f(x) имеет противоположные знаки.. Продолжаем процесс деления отрезка пополам и проводим то же рассмотрение до тех пор, пока. длина [a,b] станет меньше заданной точности . В последнем случае за приближённое значение корня можно принять любую точку отрезка [a,b] (как правило, берут его середину). Алгоритм высокоэффективен, так как на каждом витке (итерации) интервал поиска сокращается вдвое; следовательно, 10 итераций сократят его в тысячу раз. Сложности могут возникнуть с отделением корня у сложных функций.

      Для приближенного определения отрезка на котором находится корень можно воспользоваться табличным процессором, построив график функции

      ПРИМЕР : Определим графически корень уравнения . Пусть f1(х) = х , a и построим графики этих функций. (График). Корень находится на интервале от 1 до 2. Здесь же уточним значение корня с точностью 0,001(на доске шапка таблицы)

      Алгоритм для программной реализации

      1. а:=левая граница b:= правая граница
      2. m:= (a+b)/2 середина
      3. определяем f(a) и f(m)
      4. если f(a)*f(m)
      5. если (a-b)/2>e повторяем , начиная с пункта2

      Точки графика функции на концах интервала соединяются хордой. Точка пересечения хорды и оси Ох (х*) и используется в качестве пробной. Далее рассуждаем так же, как и в предыдущем методе: если f(x a ) и f(х*) одного знака на интервале , нижняя граница переносится в точку х*; в противном случае – переносим верхнюю границу. Далее проводим новую хорду и т.д.

      Осталось только уточнить, как найти х*. По сути, задача сводится к следующей: через 2 точки с неизвестными координатами (х 1 , у 1 ) и (х 2 , у 2 ) проведена прямая; найти точку пересечения этой прямой и оси Ох.

      Запишем уравнение прямой по двум точках:

      В точке пересечения этой прямой и оси Ох у=0, а х=х*, то есть

      , откуда

      процесс вычисления приближённых значений продолжается до тех пор, пока для двух последовательных приближений корня х„ и х п _1 не будет выполняться условие abs(xn-x n-1 ) е — заданная точность

      Сходимость метода гораздо выше предыдущего

      Алгоритм различается только в пункте вычисления серединной точки- пересечения хорды с осью абсцисс и условия останова (разность между двумя соседними точками пересечения)

      Уравнения для самостоятельного решения: (отрезок в excel ищем самостоятельно)

      Доброго времени суток! Я решил разбавить наши стандартные статьи по программированию в VBA. Поэтому сегодня мы поговорим о численных методах решения нелинейных алгебраических уравнений, в целом и о каждом в отдельности.

      В Microsoft Excel деление можно произвести как при помощи формул, так и используя функции. Делимым и делителем при этом выступают числа и адреса ячеек.

      Способ 1: деление числа на число

      Лист Эксель можно использовать как своеобразный калькулятор, просто деля одно число на другое. Знаком деления выступает слеш (обратная черта) — «/».

        Становимся в любую свободную ячейку листа или в строку формул. Ставим знак «равно»(=). Набираем с клавиатуры делимое число. Ставим знак деления (/). Набираем с клавиатуры делитель. В некоторых случаях делителей бывает больше одного. Тогда, перед каждым делителем ставим слеш (/).

      Формула деления в Microsoft Excel

      Результат деления в Microsoft Excel

      После этого Эксель рассчитает формулу и в указанную ячейку выведет результат вычислений.

      Если вычисление производится с несколькими знаками, то очередность их выполнения производится программой согласно законам математики. То есть, прежде всего, выполняется деление и умножение, а уже потом — сложение и вычитание.

      Как известно, деление на 0 является некорректным действием. Поэтому при такой попытке совершить подобный расчет в Экселе в ячейке появится результат «#ДЕЛ/0!».

      Деление на ноль в Microsoft Excel

      Урок: Работа с формулами в Excel

      Способ 2: деление содержимого ячеек

      Также в Excel можно делить данные, находящиеся в ячейках.

        Выделяем в ячейку, в которую будет выводиться результат вычисления. Ставим в ней знак «=». Далее кликаем по месту, в котором расположено делимое. За этим её адрес появляется в строке формул после знака «равно». Далее с клавиатуры устанавливаем знак «/». Кликаем по ячейке, в которой размещен делитель. Если делителей несколько, так же как и в предыдущем способе, указываем их все, а перед их адресами ставим знак деления.

      Деление чисел в ячейках в Microsoft Excel

      Деление чисел в ячейках выполнено в Microsoft Excel

      Можно также комбинировать, в качестве делимого или делителя используя одновременно и адреса ячеек и статические числа.

      Способ 3: деление столбца на столбец

      Для расчета в таблицах часто требуется значения одного столбца разделить на данные второй колонки. Конечно, можно делить значение каждой ячейки тем способом, который указан выше, но можно эту процедуру сделать гораздо быстрее.

        Выделяем первую ячейку в столбце, где должен выводиться результат. Ставим знак «=». Кликаем по ячейке делимого. Набираем знак «/». Кликаем по ячейке делителя.

      Деление в таблице в Microsoft Excel

      Результат деления в таблице в Microsoft Excel

      Автозаполнение в Microsoft Excel

      Как видим, после этого действия будет полностью выполнена процедура деления одного столбца на второй, а результат выведен в отдельной колонке. Дело в том, что посредством маркера заполнения производится копирование формулы в нижние ячейки. Но, с учетом того, что по умолчанию все ссылки относительные, а не абсолютные, то в формуле по мере перемещения вниз происходит изменение адресов ячеек относительно первоначальных координат. А именно это нам и нужно для конкретного случая.

      Деление столбца на столбец в Microsoft Excel

      Урок: Как сделать автозаполнение в Excel

      Способ 4: деление столбца на константу

      Бывают случаи, когда нужно разделить столбец на одно и то же постоянное число — константу, и вывести сумму деления в отдельную колонку.

        Ставим знак «равно» в первой ячейке итоговой колонки. Кликаем по делимой ячейке данной строки. Ставим знак деления. Затем вручную с клавиатуры проставляем нужное число.

      Деление ячейки на константу в Microsoft Excel

      Результат деления ячейки на константу в Microsoft Excel

      Маркер заполнения в Microsoft Excel

      Как видим, на этот раз деление тоже выполнено корректно. В этом случае при копировании данных маркером заполнения ссылки опять оставались относительными. Адрес делимого для каждой строки автоматически изменялся. А вот делитель является в данном случае постоянным числом, а значит, свойство относительности на него не распространяется. Таким образом, мы разделили содержимое ячеек столбца на константу.

      Результат деления столбца на константу в Microsoft Excel

      Способ 5: деление столбца на ячейку

      Но, что делать, если нужно разделить столбец на содержимое одной ячейки. Ведь по принципу относительности ссылок координаты делимого и делителя будут смещаться. Нам же нужно сделать адрес ячейки с делителем фиксированным.

        Устанавливаем курсор в самую верхнюю ячейку столбца для вывода результата. Ставим знак «=». Кликаем по месту размещения делимого, в которой находится переменное значение. Ставим слеш (/). Кликаем по ячейке, в которой размещен постоянный делитель.

      Деление на фиксированую ячейку в Microsoft Excel

      Абсолютная ссылка на ячейку в Microsoft Excel

      Результат вычисления в Microsoft Excel

      Копирование формулы в Microsoft Excel

      После этого результат по всему столбцу готов. Как видим, в данном случае произошло деление колонки на ячейку с фиксированным адресом.

      Деление столбца на фиксированную ячейку в Microsoft Excel

      Урок: Абсолютные и относительные ссылки в Excel

      Способ 6: функция ЧАСТНОЕ

      Деление в Экселе можно также выполнить при помощи специальной функции, которая называется ЧАСТНОЕ. Особенность этой функции состоит в том, что она делит, но без остатка. То есть, при использовании данного способа деления итогом всегда будет целое число. При этом, округление производится не по общепринятым математическим правилам к ближайшему целому, а к меньшему по модулю. То есть, число 5,8 функция округлит не до 6, а до 5.

      Посмотрим применение данной функции на примере.

        Кликаем по ячейке, куда будет выводиться результат расчета. Жмем на кнопку «Вставить функцию» слева от строки формул.

      Перемещение в Мастер функций в Microsoft Excel

      Функция частное в Microsoft Excel

      Аргументы функции ЧАСТНОЕ в Microsoft Excel

      После этих действий функция ЧАСТНОЕ производит обработку данных и выдает ответ в ячейку, которая была указана в первом шаге данного способа деления.

      Результаты расчета функции ЧАСТНОЕ в Microsoft Excel

      Эту функцию можно также ввести вручную без использования Мастера. Её синтаксис выглядит следующим образом:

      Урок: Мастер функций в Excel

      Как видим, основным способом деления в программе Microsoft Office является использование формул. Символом деления в них является слеш — «/». В то же время, для определенных целей можно использовать в процессе деления функцию ЧАСТНОЕ. Но, нужно учесть, что при расчете таким способом разность получается без остатка, целым числом. При этом округление производится не по общепринятым нормам, а к меньшему по модулю целому числу.

      Метод секущих (метод хорд)

      Если x , x1 — приближенные значения корня уравнения f(x) = 0 и выполняется условие
      f(a)f(b)
      то последующие приближения находят по формуле
      Метод хорд
      Методом хорд называют также метод, при котором один из концов отрезка закреплен, т.е. вычисление приближения корня уравнения f(x) = 0 производят по формулам:
      Метод секущих
      Геометрическая интерпретация метода хорд:
      Метод хорд
      Реализация на C++
      В отличие от двух рассмотренных выше методов, метод хорд предполагает наличие двух начальных приближений, представляющих собой концы отрезка, внутри которого располагается искомый корень.

      Результат выполнения
      Реализация метода хорд

      Применение разработчиками

      На большом объеме данных тестировщик не ищет четкую границу, потому что это неразумно делать вручную. А вот разработчики применяют метод бисекционного деления в коде и всегда могут найти конкретное место падения. Ведь делить до победного будет система, а не человек!

      Например, у нас есть механизм загрузки данных в систему. Загружаться может как 10 тысяч, так и миллион. Но это не суть важно, так как загрузка идет пачками по 200 записей. Если что-то пошло не так, система сама проводит бисекционное деление. Сама. Пока не найдет проблемное место. В логах потом так и читаешь:

      • Получил 1000 записей
      • Обработал 200 записей
      • Обработал 400 записей
      • Упс, упал на пачке размером 200 записей!
      • Пробую обработать пачку размером 100
      • Пробую обработать пачку размером 50
      • Пробую обработать пачку размером 25
      • На таких-то идентификаторах ошибка: не заполнено обязательное поле Email
      • Обработал 600 записей

      Тут, конечно, дальнейшая логика тоже зависит от разработчика. Или обработка прекращается после того, как столкнулись с ошибкой, или идет дальше. Споткнулись на пачке в 200 записей? Доделились до того, чтобы найти узкое место, пометили запись как ошибочную, остальные 199 обработали, поехали дальше.

      А вот что делать, если вся пачка разваливается? Пометили запись как ошибочную, но оставшиеся 199 тоже не смогли обработать. Почему? Применяем все тот же метод, ищем новую проблему. Фишка в том, что всегда надо уметь вовремя остановиться.

      Если количество ошибок больше 10-50-100, то лучше остановить загрузку. Вполне возможно, что в исходной системе произошла ошибка выгрузки и мы получили миллион «кривых» данных. Если система будет каждую пачку в 200 записей делить пополам, а потом оставшиеся 199 делить, и так далее, то всем будет плохо:

      • Лог разрастается с привычных 15 мб до 3 гб и становится нечитаем;
      • Система может упасть на попытке генерации итогового сообщения об ошибках (я рассказывала о такой ситуации в разделе «Мнемоника БМВ» ) ;
      • Много времени тратится на поиск всех ошибок. Да, система делает это быстрее, чем человек, но если делить миллион пачками по 200 записей, это займет время.

      Резюме

      Метод бисекционного деления применяется для поиска точного места падения и локализации бага.

      Ищите число и начинайте делить его пополам:

      • длина строки;
      • размер файла;
      • вес файла;
      • количество строк / столбцов;
      • объем свободной памяти в мобильнике;
      • .

      Но помните — когда-то придется остановится! Не надо упарываться и искать точное число, если это потребует проведения тысяч дополнительных тестов. А вот минут 5-10 уделить локализации можно.

      PS — больше полезных статей ищите в моем блоге по метке «полезное»

      голоса
      Рейтинг статьи
      Читайте так же:
      Можно ли держать морозилку на балконе зимой
Ссылка на основную публикацию
Adblock
detector