Как работать с функциями в R: от использования чужих, до создания своих! Функции Excel.Функция И(), ИЛИ()

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

  • таблица должна обязательно содержать заголовки столбцов. Эти заголовки должны располагаться строго в одной строке, не должны содержать объединенных и пустых ячеек.
  • таблица должна быть неделимая, т.е. не должна содержать полностью пустых строк и столбцов, а так же объединенных ячеек
  • в каждом столбце должна содержаться однотипная информация: если в столбце должны содержаться даты, значит кроме дат там не должно быть ничего другого; если в столбце числа(суммы, кол-во) - значит должны быть только числа. Не следует при отсутствии чисел оставлять ячейку пустой или ставить пробел. Вместо этого необходимо ставить 0.

Для разбора функции баз данных возьмем следующий пример таблицы:

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


Именно для этой таблицы будут приведены все примеры описаний функций. И критерии заданы следующие: отбирать из поля "Дерево" Яблони с высотой больше 3 и меньше 6 и Вишни, со значением в поле "Возраст" больше 8. Если посмотреть на таблицу данных(из которой будут отбираться данные и производится расчеты функциями), то этим критериям отвечают только две строки: строки 9 и 10 листа.
Как видно, в качестве критериев можно указывать выражение в виде: >6 , 0 (не равно нулю), >=7 , "Яблоня" .

Все функции из категории баз данных имеют три одинаковых аргумента:
Функция(база_данных; поле; критерий)
база_данных - ссылка на ячейки данных таблицы, включая заголовок(A6:E12).
поле - в данном аргументе можно записать как непосредственно текст с названием столбца в кавычках ("Дерево", "Возраст" или "Урожай"), так и число, задающее положение столбца в таблице: 1 - для первого поля(столбца) в таблице "Дерево", 2 - для второго поля "Высота", 3 - для третьего поля "Возраст" и так далее.
критерий - ссылка на диапазон ячеек с условиями отбора(A1:F3). Функция отберет данные из таблицы, которые удовлетворяют условиям, указанным в ячейках критериев. В ссылке на критерии обязательно должны быть включены названия столбцов, для которых выполняется отбор данных.

  • ДСРЗНАЧ (DAVERAGE) - Вычисляет среднее значение выбранных записей базы данных:
    =ДСРЗНАЧ(A6:E12 ;5; A1:F3)
    =ДСРЗНАЧ(A6:E12 ;"Прибыль"; A1:F3)
    =DAVERAGE(A6:E12 ,5, A1:F3) вернет значение 90 000р. , т.к. сумма прибыли отобранных записей равна 180 000р., а всего отобрано 2 записи. 180 000/2 = 90 000 .
  • БСЧЁТ (DCOUNT) - Подсчитывает количество числовых ячеек в базе данных:
    =БСЧЁТ(A6:E12 ;5; A1:F3)
    =БСЧЁТ(A6:E12 ;"Прибыль"; A1:F3)
    =DCOUNT(A6:E12 ,5, A1:F3) вернет число 2 , т.к. только две строки в таблице отвечают критериям
  • БСЧЁТА (DCOUNTA) - Подсчитывает количество непустых ячеек в базе данных:
    =БСЧЁТА(A6:E12 ;4; A1:F3)
    =БСЧЁТА(A6:E12 ;"Прибыль"; A1:F3)
    =DCOUNTA(A6:E12 ,4, A1:F3) вернет 2, т.е. подсчитает в отвечающих критериям строках количество непустых ячеек в столбце "Прибыль"
  • БИЗВЛЕЧЬ (DGET) - Извлекает из базы данных одну запись, удовлетворяющую заданному условию:
    =БИЗВЛЕЧЬ(A6:E12 ;5; A1:F3)
    =БИЗВЛЕЧЬ(A6:E12 ;"Прибыль"; A1:F3)
    =DGET(A6:E12 ,5, A1:F3) для заданных условий вернет значение ошибки #ЧИСЛО! (#NUM!) , т.к. этим условиям отвечает более одной записи. Если же указать диапазон для критерия как:
    =БИЗВЛЕЧЬ(A6:E12 ;5; A1:F2) то функция вернет значение 75 000р. , т.е. единственную запись о прибыли для Яблонь с высотой больше 3 и меньше 6 (в данный промежуток попадает лишь строка 10 - Яблона, высота 5)
  • ДМАКС (DMAX) - Находит максимальное значение среди выделенных записей базы данных:
    =ДМАКС(A6:E12 ;5; A1:F3)
    =ДМАКС(A6:E12 ;"Прибыль"; A1:F3)
    =DMAX(A6:E12 ,5, A1:F3) вернет сумму 105 000р. , т.к. это максимальная прибыль из всех отвечающих критериям строк.
  • ДМИН (DMIN) - Находит минимальное значение среди выделенных записей базы данных:
    =ДМИН(A6:E12 ;5; A1:F3)
    =ДМИН(A6:E12 ;"Прибыль"; A1:F3)
    =DMIN(A6:E12 ,5, A1:F3) вернет сумму 75 000р. , т.к. это минимальная прибыль из всех строк, отвечающих критериям
  • БДПРОИЗВЕД (DPRODUCT) - Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию:
    =БДПРОИЗВЕД(A6:E12 ;3; A1:F3)
    =БДПРОИЗВЕД(A6:E12 ;"Возраст"; A1:F3)
    =DPRODUCT(A6:E12 ,3, A1:F3) вернет 210 , т.к. будут перемножены все значения столбца "Возраст", отвечающие критериям(14*15=210)
  • ДСТАНДОТКЛ (DSTDEV) - Оценивает стандартное отклонение по выборке из выделенных записей базы данных:
    =ДСТАНДОТКЛ(A6:E12 ;4; A1:F3)
    =ДСТАНДОТКЛ(A6:E12 ;"Урожайность"; A1:F3)
    =DSTDEV(A6:E12 ,4, A1:F3) вернет 0,707107 , т.е. оценку стандартного отклонения урожайности по указанным критериям.
  • ДСТАНДОТКЛП (DSTDEVP) - Вычисляет стандартное отклонение по генеральной совокупности из выделенных записей базы данных:
    =ДСТАНДОТКЛП(A6:E12 ;4; A1:F3)
    =ДСТАНДОТКЛП(A6:E12 ;"Урожайность"; A1:F3)
    =DSTDEVP(A6:E12 ,4, A1:F3) вернет 0,5 , т.е. точное стандартное отклонение урожайности по указанным критериям, если считать, что данные в базе данных описывают генеральную совокупность всех деревьев в саду.
  • БДСУММ (DSUM) - Суммирует числа в поле для записей базы данных, удовлетворяющих условию:
    =БДСУММ(A6:E12 ;5; A1:F3)
    =БДСУММ(A6:E12 ;"Прибыль"; A1:F3)
    =DSUM(A6:E12 ,5, A1:F3) вернет сумму прибыли всех строк, отвечающих критериям, т.е. 180 000р.
    =БДСУММ(A6:E12 ;5; A1:A2)
    =DSUM(A6:E12 ,5, A1:A2) вернет сумму прибыли от всех Яблонь, т.е. 225 000р.
  • БДДИСП (DVAR) - Оценивает дисперсию по выборке из выделенных записей базы данных:
    =БДДИСП(A6:E12 ;4; A1:A2)
    =БДДИСП(A6:E12 ;"Урожайность"; A1:A2)
    =DVAR(A6:E12 ,4, A1:A2) вернет 0,5 , что будет оценкой дисперсии урожайности по указанным критериям, если считать, что данные в таблице являются выборкой из генеральной совокупности всех деревьев в саду
  • БДДИСПП (DVARP) - Вычисляет дисперсию по генеральной совокупности из выделенных записей базы данных:
    =БДДИСПП(A6:E12 ;4; A1:A2)
    =БДДИСПП(A6:E12 ;"Урожайность"; A1:A2)
    =DVARP(A6:E12 ,4, A1:A2) вернет 10,66667 , т.е. точную дисперсию урожайности Яблонь и Вишень, если считать, что данные в базе данных описывают генеральную совокупность всех деревьев в саду

Функции в программе Excel позволяют выполнять различные, довольно сложные действия вычислительного характера буквально в несколько кликов. Ещё больше упрощает работу с ними такой удобный инструмент, как «Мастер функций» . Давайте рассмотрим, как он устроен и что с его помощью можно делать.

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

Переход в Мастер функций

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

Проще всего перейти в него, нажав на кнопку «Вставить функцию» , расположенную слева от строки формул. Этот способ хорош тем, что им воспользоваться можно, находясь в любой вкладке программы.

Кроме того, нужный нам инструмент можно запустить, перейдя во вкладку «Формулы» . Затем следует нажать на самую крайнюю слева кнопку на ленте «Вставить функцию» . Она располагается в блоке инструментов «Библиотека функций» . Это способ хуже предыдущего тем, что если вы не находитесь во вкладке «Формулы» , то придется выполнять дополнительные действия.

Можно также кликнуть на любую другую кнопку блока инструментов «Библиотека функций» . При этом, в выпадающем меню появится список, в самом низу которого есть пункт «Вставить функцию…» . Вот по нему и нужно кликнуть. Но, данный способ является ещё запутаннее предыдущего.

Очень простым способом перехода в режим Мастера является нажатие комбинации горячих клавиш Shift+F3 . Этот вариант предусматривает быстрый переход без дополнительных «телодвижений». Главный недостаток его состоит в том, что далеко не каждый пользователь способен удержать у себя в голове все комбинации горячих клавиш. Так что для новичков в освоении Excel этот вариант не подходит.

Категории элементов в Мастере

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

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

Все функции разделены на следующие 12 категорий:

  • Текстовые;
  • Финансовые;
  • Дата и время;
  • Ссылки и массивы;
  • Статистические;
  • Аналитические;
  • Работа с базой данных;
  • Проверка свойств и значений;
  • Логические;
  • Инженерные;
  • Математические;
  • Определенные пользователем;
  • Совместимость.

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

Кроме того, в этом же списке находятся две дополнительные категории: «Полный алфавитный перечень» и . В группе «Полный алфавитный перечень» располагается полный список всех функций в независимости от категории. В группе «10 недавно использовавшихся» находится список десяти последних элементов, к которым пользователь прибегал. Этот перечень постоянно обновляется: использовавшиеся раньше элементы убираются, а новые добавляются.

Выбор функции

Для того, чтобы перейти к окну аргументов, прежде всего необходимо выбрать нужную категорию. В поле «Выберите функцию» следует отметить то наименование, которое требуется для выполнения конкретной задачи. В самой нижней части окна находится подсказка в виде комментария к выделенному элементу. После того, как конкретная функция выбрана, требуется нажать на кнопку «OK» .

Аргументы функции

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


Выполнение функции

После того, как вы нажали на кнопку «OK» Мастер закрывается и происходит выполнение самой функции. Результат выполнения может быть самый разнообразный. Он зависит от тех задач, которые ставятся перед формулой. Например, функция СУММ , которая была выбрана в качестве примера, производит суммирование всех введенных аргументов и показывает результат в отдельной ячейке. Для других вариантов из списка Мастера результат будет абсолютно иным.

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

Которые позволяют оптимизировать работу в MS Excel. А сегодня хотим предложить вашему вниманию новую порцию советов для ускорения действий в этой программе. О них расскажет Николай Павлов - автор проекта «Планета Excel», меняющего представление людей о том, что на самом деле можно сделать с помощью этой замечательной программы и всего пакета Office. Николай является IT-тренером, разработчиком и экспертом по продуктам Microsoft Office, Microsoft Office Master, Microsoft Most Valuable Professional. Вот проверенные им лично приёмы для ускоренной работы в Excel. ↓

Быстрое добавление новых данных в диаграмму

Если для вашей уже построенной диаграммы на листе появились новые данные, которые нужно добавить, то можно просто выделить диапазон с новой информацией, скопировать его (Ctrl + C) и потом вставить прямо в диаграмму (Ctrl + V).

Эта функция появилась только в последней версии Excel 2013, но она стоит того, чтобы обновиться до новой версии досрочно. Предположим, что у вас есть список полных ФИО (Иванов Иван Иванович), которые вам надо превратить в сокращённые (Иванов И. И.). Чтобы выполнить такое преобразование, нужно просто начать писать желаемый текст в соседнем столбце вручную. На второй или третьей строке Excel попытается предугадать наши действия и выполнит дальнейшую обработку автоматически. Останется только нажать клавишу Enter для подтверждения, и все имена будут преобразованы мгновенно.

Подобным образом можно извлекать имена из email’ов, склеивать ФИО из фрагментов и т. д.

Копирование без нарушения форматов

Вы, скорее всего, знаете про «волшебный» маркер автозаполнения - тонкий чёрный крест в правом нижнем углу ячейки, потянув за который можно скопировать содержимое ячейки или формулу сразу на несколько ячеек. Однако есть один неприятный нюанс: такое копирование часто нарушает дизайн таблицы, т. к. копируется не только формула, но и формат ячейки. Этого можно избежать, если сразу после протягивания чёрным крестом нажать на смарт-тег - специальный значок, появляющийся в правом нижнем углу скопированной области.

Если выбрать опцию «Копировать только значения» (Fill Without Formatting), то Microsoft Excel скопирует вашу формулу без формата и не будет портить оформление.

В последней версии Excel 2013 появилась возможность быстро отобразить на интерактивной карте ваши геоданные, например продажи по городам и т. п. Для этого нужно перейти в «Магазин приложений» (Office Store) на вкладке «Вставка» (Insert) и установить оттуда плагин Bing Maps. Это можно сделать и по прямой ссылке с сайта , нажав кнопку Add. После добавления модуля его можно выбрать в выпадающем списке «Мои приложения» (My Apps) на вкладке «Вставка» (Insert) и поместить на ваш рабочий лист. Останется выделить ваши ячейки с данными и нажать на кнопку Show Locations в модуле карты, чтобы увидеть наши данные на ней.

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

Если в вашей книге количество рабочих листов перевалило за 10, то ориентироваться в них становится трудновато. Щёлкните правой кнопкой мыши по любой из кнопок прокрутки ярлычков листов в левом нижнем углу экрана.

Вы когда-нибудь подбирали входные значения в вашем расчёте Excel, чтобы получить на выходе нужный результат? В такие моменты чувствуешь себя матёрым артиллеристом, правда? Всего-то пара десятков итераций «недолёт - перелёт», и вот оно, долгожданное «попадание»!

Microsoft Excel сможет сделать такую подгонку за вас, причём быстрее и точнее. Для этого нажмите на вкладке «Вставка» кнопку «Анализ „что если“» и выберите команду «Подбор параметра» (Insert - What If Analysis - Goal Seek). В появившемся окне задайте ячейку, где хотите подобрать нужное значение, желаемый результат и входную ячейку, которая должна измениться. После нажатия на «ОК» Excel выполнит до 100 «выстрелов», чтобы подобрать требуемый вами итог с точностью до 0,001.

Если этот подробный обзор охватил не все полезные фишки MS Excel, о которых вы знаете, делитесь ими в комментариях!

Для чего нужны функции в C?

Функции в Си применяются для выполнения определённых действий в рамках общей программы. Программист сам решает какие именно действия вывести в функции. Особенно удобно применять функции для многократно повторяющихся действий.

Простой пример функции в Cи

Пример функции в Cи:

#include #include int main(void) { puts("Functions in C"); return EXIT_SUCCESS; }

Это очень простая программа на Си. Она просто выводит строку «Functions in C». В программе имеется единственная функция под названием main. Рассмотрим эту функцию подробно. В заголовке функции, т.е. в строке

int – это тип возвращаемого функцией значения;

main - это имя функции;

(void) - это перечень аргументов функции. Слово void указывает, что у данной функции нет аргументов;

return – это оператор, который завершает выполнение функции и возвращает результат работы функции в точку вызова этой функции;

EXIT_SUCCESS - это значение, равное нулю. Оно определено в файле stdlib.h;

часть функции после заголовка, заключенная в фигурные скобки

{
puts("Functions in C");
return EXIT_SUCCESS;
}

называют телом функции.

Итак, когда мы работаем с функцией надо указать имя функции, у нас это main, тип возвращаемого функцией значения, у нас это int, дать перечень аргументов в круглых скобках после имени функции, у нас нет аргументов, поэтому пишем void, в теле функции выполнить какие-то действия (ради них и создавалась функция) и вернуть результат работы функции оператором return. Вот основное, что нужно знать про функции в C.

Как из одной функции в Cи вызвать другую функцию?

Рассмотрим пример вызова функций в Си:

/* Author: @author Subbotin B.P..h> #include int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; }

Запускаем на выполнение и получаем:

В этом примере создана функция sum, которая складывает два целых числа и возвращает результат. Разберём подробно устройство этой функции.

Заголовок функции sum:

int sum(int a, int b)

здесь int - это тип возвращаемого функцией значения;

sum - это имя функции;

(int a, int b) - в круглых скобках после имени функции дан перечень её аргументов: первый аргумент int a, второй аргумент int b. Имена аргументов являются формальными, т.е. при вызове функции мы не обязаны отправлять в эту функцию в качестве аргументов значения перемнных с именами a и b. В функции main мы вызываем функцию sum так: sum(d, e);. Но важно, чтоб переданные в функцию аргументы совпадали по типу с объявленными в функции.

В теле функции sum, т.е. внутри фигурных скобок после заголовка функции, мы создаем локальную переменную int c, присваиваем ей значение суммы a плюс b и возвращаем её в качестве результата работы функции опрератором return.

Теперь посмотрим как функция sum вызывается из функции main.

Вот функция main:

Int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; }

Сначала мы создаём две переменных типа int

Int d = 1; int e = 2;

их мы передадим в функцию sum в качестве значений аргументов.

int f = sum(d, e);

её значением будет результат работы функции sum, т.е. мы вызываем функцию sum, которая возвратит значение типа int, его-то мы и присваиваем переменной f. В качестве аргументов передаём d и f. Но в заголовке функции sum

int sum(int a, int b)

аргументы называются a и b, почему тогда мы передаем d и f? Потому что в заголовке функций пишут формальные аргументы, т.е. НЕ важны названия аргументов, а важны их типы. У функции sum оба аргумента имеют тип int, значит при вызове этой функции надо передать два аргумента типа int с любыми названиями.

Ещё одна тонкость. Функция должна быть объявлена до места её первого вызова. В нашем примере так и было: сначала объявлена функция sum, а уж после мы вызываем её из функции main. Если функция объявляется после места её вызова, то следует использовать прототип функции.

Прототип функции в Си

Рассмотрим пример функциив Си:

/* Author: @author Subbotin B.P..h> #include int sum(int a, int b); int main(void) { puts("Functions in C"); int d = 1; int e = 2; int f = sum(d, e); printf("1 + 2 = %d", f); return EXIT_SUCCESS; } int sum(int a, int b) { int c = 0; c = a + b; return c; }

В этом примере функция sum определена ниже места её вызова в функции main. В таком случае надо использовать прототип функции sum. Прототип у нас объявлен выше функции main:

int sum(int a, int b);

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

int f = sum(d, e);

а ниже функции main определяем функцию sum, которая предварительно была объявлена в прототипе:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

Чем объявление функции в Си отличается от определения функции в Си?

Когда мы пишем прототип функции, например так:

int sum(int a, int b);

то мы объявляем функцию.

А когда мы реализуем функцию, т.е. записываем не только заголовок, но и тело функции, например:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

то мы определяем функцию.

Оператор return

Оператор return завершает работу функции в C и возвращает результат её работы в точку вызова. Пример:

Int sum(int a, int b) { int c = 0; c = a + b; return c; }

Эту функцию можно упростить:

Int sum(int a, int b) { return a + b; }

здесь оператор return вернёт значение суммы a + b.

Операторов return в одной функции может быть несколько. Пример:

Int sum(int a, int b) { if(a > 2) { return 0;// Первый случай; } if(b < 0) { return 0;// Второй случай; } return a + b; }

Если в примере значение аргумента a окажется больше двух, то функция вернет ноль (первый случай) и всё, что ниже комментария «// Первый случай;» выполнятся не будет. Если a будет меньше двух, но b будет меньше нуля, то функция завершит свою работу и всё, что ниже комментария «// Второй случай;» выполнятся не будет.

И только если оба предыдущих условия не выполняются, то выполнение программы дойдёт до последнего оператора return и будет возвращена сумма a + b.

Передача аргументов функции по значению

Аргументы можно передавать в функцию C по значению. Пример:

/* Author: @author Subbotin B.P..h> #include int sum(int a) { return a += 5; } int main(void) { puts("Functions in C"); int d = 10; printf("sum = %d\n", sum(d)); printf("d = %d", d); return EXIT_SUCCESS; }

В примере, в функции main, создаём переменную int d = 10. Передаём по значению эту переменную в функцию sum(d). Внутри функции sum значение переменной увеличивается на 5. Но в функции main значение d не изменится, ведь она была передана по значению. Это означает, что было передано значение переменной, а не сама переменная. Об этом говорит и результат работы программы:

т.е. после возврата из функции sum значеие d не изменилось, тогда как внутри функции sum оно менялось.

Передача указателей функции Си

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

/* Author: @author Subbotin B.P..h> #include int sum(int *a) { return *a += 5; } int main(void) { puts("Functions in C"); int d = 10; printf("sum = %d\n", sum(&d)); printf("d = %d", d); return EXIT_SUCCESS; }

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

printf("sum = %d\n", sum(&d));

в функцию sum передается не значение переменной d, равное 10-ти, а адрес этой переменной, вот так:

Теперь посмотрим на функцию sum:

Int sum(int *a) { return *a += 5; }

Аргументом её является указатель на int. Мы знаем, что указатель - это переменная, значением которой является адрес какого-то объекта. Адрес переменной d отправляем в функцию sum:

Внутри sum указатель int *a разыменовывается. Это позволяет от указателя перейти к самой переменной, на которую и указывает наш указатель. А в нашем случае это переменная d, т.е. выражение

равносильно выражению

Результат: функция sum изменяет значение переменной d:

На этот раз изменяется значение d после возврата из sum, чего не наблюдалось в предыдущм пункте, когда мы передавали аргумент по значению.

C/C++ в Eclipse

Все примеры для этой статьи я сделал в Eclipse. Как работать с C/C++ в Eclipse можно посмотреть . Если вы работаете в другой среде, то примеры и там будут работать.

" была рассмотрена работа со встроенной функцией ЕСЛИ(). Все бы хорошо, но возникают такие ситуации, и довольно часто, когда вложенностью условия в условие не обойтись. Например, элементарно необходимо проверить следующее: 1 больше или равно x и x меньше или равно 5 . Реализовать такое условие несколькими ЕСЛИ довольно громоздко и проблематично, а в некоторых ситуациях - вообще невозможно. Для расширения функционала ЕСЛИ и облегчения составления формул с условием, в Excel имеются еще пара полезных функции - И() и ИЛИ().

Функция И()

Функция И() Условие 1 И Условие 2 . При этом все условия должны быть истинными. Результатом работы данной функции является ИСТИНА или ЛОЖЬ (TRUE / FALSE). Пример: ЕСЛИ а = b И а=с ТОГДА значение 1 ИНАЧЕ значение 2.
Как видно из примера, значение 1 будет только в том случае, если все условия верны.

Функция ИЛИ()

Функция ИЛИ() используется тогда, когда необходимо проверить несколько условий следующим образом - Условие 1 ИЛИ Условие 2 . Результат функции будет истинным, если хотя бы одно из условий истинно. Пример: ЕСЛИ а = b ИЛИ а=с ТОГДА значение 1 ИНАЧЕ значение 2.

Синтаксис функций И() и ИЛИ() одинаков: Функция(Условие 1; Условие 2; Условие 3 и до 30-ти условий). Результат ИСТИНА или ЛОЖЬ.

Примеры использования функции И и ИЛИ

Все вышесказанное сложно к пониманию и относится к разделу Мат. логики и Дискретной математики. Попробую это все изложить на понятном языке. Разберем несколько примеров. Скажу сразу, все примеры будут с использованием функции ЕСЛИ.

Пример 1.
Столбец А, начиная с первой строки, содержит 56, 55, 88, 6, 74. Столбец В - 52, 55, 88, 4, 25. Столбец С - 53, 55, 88, 6, 25. С помощью функций ЕСЛИ и И необходимо определить строки, значения которых равны следующим образом А=В и В=С.

Переходим в ячейку D1 и с помощью мастера функций вводим следующее

Формула будет выглядеть так: “ =ЕСЛИ(И(A1=B1;B1=C1);"Все значения равны";"Значения не равны") “

Результат работы:

Пример 2.

Теперь пример на функцию ИЛИ. Те же столбцы, те же значения, условие следующее: с помощью функций ЕСЛИ и ИЛИ необходимо определить строки, в которых есть совпадающие значения А=В или В=С или А=С.

Мастер функций выглядит так:

Формула: “ =ЕСЛИ(ИЛИ(A1=B1;B1=C1;A1=C1);"Есть равные значения";"Нет равных значений")”

Результат:

Вот и все. Функции не сложны. Применяйте их там, где встречаются условия и произносится И и ИЛИ. Так же, всеми выше перечисленными функциями можно сравнивать текстовые значения.

И напоследок рассмотрим еще один пример с функцией И и ИЛИ из реальной жизни.

Пример 3.

В таблицу занесены процент выполнения заданий, необходимо проценты перевести в пятибалльную систему следующим образом:

1 – от 0% до 10%
2- от 11% до 30%
3- от 31% до 40%
4- от 41% до 75%
5-от 76% до 100%

Таблица следующего вида.