{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Математик среди биологов: заметки с тегом вектор",
    "_rss_description": "Я немного умею складывать, но от вычитания у меня всегда кружится голова",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/antonlyakh.ru\/blog\/tags\/vektor\/",
    "feed_url": "https:\/\/antonlyakh.ru\/blog\/tags\/vektor\/json\/",
    "icon": false,
    "author": {
        "name": "Антон Лях",
        "url": "https:\/\/antonlyakh.ru\/blog\/",
        "avatar": false
    },
    "items": [
        {
            "id": "391",
            "url": "https:\/\/antonlyakh.ru\/blog\/all\/priemy-programmirovaniya-vernut-vektor\/",
            "title": "Приемы программирования. Вернуть вектор",
            "content_html": "<p>Иногда функция должна вернуть не одно, а несколько значений. Например флаг успеха или неудачи, несколько найденных параметров и массив. Фактически она возвращает векторный результат.<\/p>\n<p>Раньше для получения векторного результата я передавал несколько переменных по ссылке и ждал булево значение функции.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/\/ Здесь ожидаю два параметра и двумерный массив, а функция возвращает флаг успеха-неудачи.\r\nfunction navalniy( \r\n    source_data : TVector; var temperature : real; var blood_pressure : real; var spy_data : TVector\r\n) : boolean;<\/code><\/pre><p>Теперь я просто получаю один векторный результат.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">function navalniy( source_data : TVector ) : TVector;<\/code><\/pre><p>Первый компонент вектора содержит флаг успеха и вычисленные скалярные параметры, остальные — заполненный массив.<\/p>\n<pre class=\"e2-text-code\"><code class=\"cpp\">\r\nspy_data = navalniy( source_data );\r\nif (spy_data[0][0] == 0) {\r\n  alert(‘Явка провалена. Немедленно уходить!’);\r\n  exit();\r\n} else {\r\n  temperature = spy_data[0][1];\r\n  blood_pressure = spy_data[0][2];\r\n  list_of_comrades = (spy_data[1], …, spy_data[M]);\r\n  \/\/ Все в порядке, продолжаем готовить революцию\r\n  \/\/ …\r\n}\r\n<\/code>\n<\/pre>\n<p>Единственное, при таком подходе нужно следить, чтобы размерность второй координаты массива (resulted_array[•][×]) была не меньше размерности ожидаемых дополнительных параметров (param{i}). В противном случае параметры следует вернуть в нескольких начальных  компонентах ветора-результата.<\/p>\n<pre class=\"e2-text-code\"><code class=\"cpp\">\r\nspy_data = navalniy( source_data );\r\nif (spy_dat[0][0] > 0) {\r\n  temperature =spy_dat[0][1];\r\n  blood_pressure = spy_dat[0][2];\r\n  leukocytes = spy_datt[1][0];\r\n  hemoglobin = spy_dat[1][1];\r\n  erythrocytes = spy_dat[1][2];\r\n  \/\/ Возвращенный массив начинается с N-ой компоненты вектора-результата\r\n  list_of_comrades = (spy_dat[N], …, spy_dat[M]);\r\n  \/\/ …\r\n}\r\n<\/code>\n<\/pre>\n<p>Векторы — это сила.<\/p>\n",
            "date_published": "2020-09-16T18:29:33+03:00",
            "date_modified": "2020-09-16T18:29:20+03:00",
            "_date_published_rfc2822": "Wed, 16 Sep 2020 18:29:33 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "391",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3559,
    "_e2_ua_string": "E2 (v3559; Aegea)"
}