Используем встроенные функции Excel. Встроенные функции в Excel: основные данные, категории и особенности применения Готовая встроенная функция позволяющая создавать
Эра технологий - Информационный сайт
  • Главная
  • Интернет
  • Используем встроенные функции Excel. Встроенные функции в Excel: основные данные, категории и особенности применения Готовая встроенная функция позволяющая создавать

Используем встроенные функции Excel. Встроенные функции в Excel: основные данные, категории и особенности применения Готовая встроенная функция позволяющая создавать

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

Цель лекции : изучить подставляемые (встраиваемые) функции и перегрузки функций, научиться разрабатывать программы с использованием перегрузки функций на языке C++.

Подставляемые функции

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

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

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

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

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

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

Например:

/*функция возвращает расстояние от точки с координатами(x1,y1) до точки с координатами (x2,y2)*/ inline float Line(float x1,float y1,float x2, float y2) { return sqrt(pow(x1-x2,2)+pow(y1-y2,2)); }

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

Пример 1 .

#include "stdafx.h" #include using namespace std; inline int Cube(int x); int _tmain(int argc, _TCHAR* argv){ int x=2; float y=3; double z=4; cout<

Перечислим причины, по которым функция со спецификатором inline будет трактоваться как обычная не подставляемая функция :

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

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

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

Перегрузка функции

При определении функций в программах необходимо указывать тип возвращаемого функцией значения, а также количество параметров и тип каждого из них. Если на языке С++ была написана функция с именем add_values , которая работала с двумя целыми значениями, а в программе было необходимо использовать подобную функцию для передачи трех целых значений, то тогда следовало бы создать функцию с другим именем. Например, add_two_values и add_three_values . Аналогично, если необходимо использовать подобную функцию для работы со значениями типа float , то нужна еще одна функция с еще одним именем. Чтобы избежать дублирования функции, C++ позволяет определять несколько функций с одним и тем же именем. В процессе компиляции C++ принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой .

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

Перегрузка функций также называется полиморфизмом функций . "Поли" означает много, "морфе" – форма, то есть полиморфическая функция – это функция , отличающаяся многообразием форм.

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

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

Например, следующая программа перегружает функцию с именем add_values . Первое определение функции складывает два значения типа int . Второе определение функции складывает три значения типа int . В процессе компиляции C++ корректно определяет функцию, которую необходимо использовать:

#include "stdafx.h" #include using namespace std; int add_values(int a,int b); int add_values (int a, int b, int c); int _tmain(int argc, _TCHAR* argv){ cout << "200+801=" << add_values(200,801) << "\n"; cout << "100+201+700=" << add_values(100,201,700) << "\n"; system("pause"); return 0; } int add_values(int a,int b) { return(a + b); } int add_values (int a, int b, int c) { return(a + b + c); }

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

Использование перегрузки функции

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

int day_of_week(int julian_day) { // операторы } int day_of_week(int month, int day, int year) { // операторы }

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

int имя_функции(int имя_аргумента); int имя_функции(int имя_аргумента); /*недопустимая перегрузка имени: аргументы имеют одинаковое количество и одинаковый тип*/

Преимущества перегрузки функции:

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

Пример 2 .

/*Перегруженные функции имеют одинаковые имена, но разные списки параметров и возвращаемые значения*/ #include "stdafx.h" #include using namespace std; int average(int first_number, int second_number, int third_number); int average(int first_number, int second_number); int _tmain(int argc, _TCHAR* argv){// главная функция int number_A = 5, number_B = 3, number_C = 10; cout << "Целочисленное среднее чисел " << number_A << " и "; cout << number_B << " равно "; cout << average(number_A, number_B) << ".\n\n"; cout << "Целочисленное среднее чисел " << number_A << ", "; cout << number_B << " и " << number_C << " равно "; cout << average(number_A, number_B, number_C) << ".\n"; system("PAUSE"); return 0; }// конец главной функции /*функция для вычисления целочисленного среднего значения 3-х целых чисел*/ int average(int first_number, int second_number, int third_number) { return((first_number + second_number + third_number)/3); } // конец функции /*функция для вычисления целочисленного среднего значения 2-х целых чисел*/ int average(int first_number, int second_number) { return((first_number + second_number)/2); } // конец функции

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

Логические функции

Категория Логические содержит семь функций, в том числе функции ЕСЛИ и ЕСЛИОШИБКА. Использование логических функций делает формулы более гибкими, а использование функции ЕСЛИ наделяет формулу способностью «принимать решения». Благодаря этому функция ЕСЛИ стала самой используемой логической функцией. Функция ЕСЛИОШИБКА имеется в библиотеке встроенных функций только в Excel 2010 (2007). Об этом необходимо помнить, если ваши рабочие книги используются в разных версиях Excel.

Текстовые функции

Текстовые функции предназначены для обработки текста, например если создаете информационную базу про бесплатные программы скачать . Например, с помощью функций ПРОПНАЧ или ДЛСТР можно изменить регистр или определить длину текстовой строки. Используя текстовые функции, можно объединить несколько строк в одну или, наоборот, разделить одну текстовую строку на несколько строк. Например, формула =СЦЕПИТЬ(A1;A2) объединяет две текстовые строки, содержащиеся в ячейках A1 и A2, в одну.

Функции категории Проверка свойств и значений

Функции этой категории часто называют информационными. Функция ЯЧЕЙКА этой категории позволяет получить информацию о ячейке. Другие информационные функции проверяют выполнение какоголибо условия и, в зависимости от результата, возвращают значение ИСТИНА или ЛОЖЬ (или числовое значение). Например, с помощью функции ЕЧИСЛО можно проверить, данные какого типа содержит ячейка. Если в ячейке содержится число, функция ЕЧИСЛО возвращает логическое значение ИСТИНА, в противном случае функция возвращает логическое значение ЛОЖЬ.

Функции Дата и время

Функции, принадлежащие к этой категории, предназначены для работы со значениями даты и времени. По сути, эти функции работают с числовыми значениями, потому что дата и время в Excel являются числами, к которым применен один из числовых форматов даты и времени. С помощью функции этой категории можно вычислить количество рабочих дней между двумя датами (функция ЧИСТРАБДНИ), преобразовать дату в год (функция ГОД), месяц (функция МЕСЯЦ) или день недели (функция ДЕНЬНЕД) и т.п.

Математические функции

Математические функции позволяют выполнять простые и сложные вычисления. В категорию Математические входят тригонометрические функции, например SIN, COS, ACOS; функции, выполняющие арифметические действия, например СУММ, ПРОИЗВЕД, ЧАСТНОЕ; и многие другие функции. К этой же категории относятся функции, позволяющие работать с массивами значений или матрицами, - МУМНОЖ, МОПРЕД и МОБР, а также функции АГРЕГАТ и ПРОМЕЖУТОЧНЫЕ.ИТОГИ, которые используются для получения итоговых значений (суммы, среднего арифметического, минимального или максимального значений и т.п.) в массивах данных или списках. Функция АГРЕГАТ доступна только в Excel 2010!

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

Суммирование. Одной из наиболее часто используемых операций является суммирование значений диапазона ячеек. Для этого необходимо выделить диапазон, причем для ячеек, расположенных в одном столбце или строке, достаточно для вызова функции суммирования чисел СУММ() щелкнуть по кнопке Автосумма å на панели инструментов Стандартная.

Степенная функция. В математике широко используется степенная функция у = хn, где х - аргумент, a n - показатель степени (например, у = х2, у = х3 и т. д.). Ввод функций в формулы можно осуществлять с помощью клавиатуры или с помощью Мастера функций, который предоставляет пользователю возможность вводить функции с использованием последовательностей диалоговых панелей.

Квадратный корень . Квадратный корень является степенной функцией с дробным показателем n = 1/2. Записывается эта функция обычно с использованием знака квадратного корня: у = Öx.

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

Заполнение таблицы можно существенно ускорить, если использовать операцию Заполнить. Сначала в первую ячейку строки аргументов вводится наименьшее значение аргумента (например, в ячейку В1 вводится число -4), а во вторую ячейку вводится формула, вычисляющая следующее значение аргумента с учетом величины шага аргумента (например, =В1+1). Далее эта формула вводится во все остальные ячейки таблицы с использованием операции Заполнить вправо.

31. Логические функции в ЭТ.

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

> Больше

< Меньше

>= Больше или равно

<= Меньше или равно

<> Не равно

Результатом логического выражения является логическое значение ИСТИНА (1) или Логическое значение ЛОЖЬ (0).

Функция ЕСЛИ

Функция ЕСЛИ (IF) имеет следующий синтаксис:

ЕСЛИ(логическое_выражение;значение_если_истина;значение_если_ложь)

Следующая формула возвращает значение 10, если значение в ячейке А1 больше 3, а в противном случае - 20:

ЕСЛИ(А1>3;10;20)

В качестве аргументов функции ЕСЛИ можно использовать другие функции. В функции ЕСЛИ можно использовать текстовые аргументы. Например:

ЕСЛИ(А1>=4;"Зачет сдал";"Зачет не сдал")

Можно использовать текстовые аргументы в функции ЕСЛИ, чтобы при невыполнении условия она возвращала пустую строку вместо 0.

Например:

ЕСЛИ(СУММ(А1:А3)=30;А10;"")

Аргумент логическое_выражение функции ЕСЛИ может содержать текстовое значение. Например:

ЕСЛИ(А1="Динамо";10;290)

Эта формула возвращает значение 10, если ячейка А1 содержит строку "Динамо", и 290, если в ней находится любое другое значение. Совпадение между сравниваемыми текстовыми значениями должно быть точным, но без учета регистра.

Функции И, ИЛИ, НЕ

Функции И (AND), ИЛИ (OR), НЕ (NOT) - позволяют создавать сложные логические выражения. Эти функции работают в сочетании с простыми операторами сравнения. Функции И и ИЛИ могут иметь до 30 логических аргументов и имеют синтаксис:

И(логическое_значение1;логическое_значение2...)

ИЛИ(логическое_значение1;логическое_значение2...)

Функция НЕ имеет только один аргумент и следующий синтаксис:

НЕ(логическое_значение)

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

логическое значение ИСТИНА, если аргумент имеет значение ЛОЖЬ, и логическое значение ЛОЖЬ, если аргумент имеет значение ИСТИНА.

Вложенные функции ЕСЛИ

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

ЕСЛИ(А1=100;"Всегда";ЕСЛИ(И(А1>=80;А1<100);"Обычно";ЕСЛИ(И(А1>=60;А1<80);"Иногда";"Никогда")))

Если значение в ячейке А1 является целым числом, формула читается следующим образом: "Если значение в ячейке А1 равно 100, возвратить строку "Всегда". В противном случае, если значение в ячейке А1 находится между 80 и 100, возвратить "Обычно". В противном случае, если значение в ячейке А1 находится между 60 и 80, возвратить строку "Иногда". И, если ни одно из этих условий не выполняется, возвратить строку "Никогда". Всего допускается до 7 уровней вложения функций ЕСЛИ.

Функции ИСТИНА и ЛОЖЬ

Функции ИСТИНА (TRUE) и ЛОЖЬ (FALSE) предоставляют альтернативный способ записи логических значений ИСТИНА и ЛОЖЬ. Эти функции не имеют аргументов и выглядят следующим образом:

32. Графическое представление данных в электронных таблицах (ЭТ).

Графическое представление данных в электронных таблицах

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

§ с помощью главного меню Вставка \ Диаграмма \ На одном листе или \На отдельном листе и далее вызывается мастер диаграмм

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

§ подтверждение или изменение блока данных (диапазона) для построения диаграммы

§ выбор типа диаграммы - двумерные (круговая, кольцевая, график, смешанная, точечная и т.п.) или трехмерные

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

§ элементы оформления диаграммы - вводится название диаграммы, легенда - каким цветом какие позиции обозначены, названия координатных осей

Диаграмма размещается в указанной области - на том листе, где таблица, или на отдельном листе.

При использовании панели «Диаграмма» - она имеет 1 поле для выбора типа диаграммы и 4 кнопки - создание диаграммы выбранного типа, мастер диаграмм (работает в два шага - выбор диапазона данных и ввод надписей), кнопка для построения горизонтальной сетки, кнопка встраивания легенды.

Диаграмма, построенная по табличным данным, связана с этими данными - при изменении числовых значений диаграмма автоматически изменяется вместе с ними.

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

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

Для редактирования также может быть использовано главное меню Вставка \ Название (легенды, оси...) или Формат \ Тип диаграммы и др.

При создании объемных диаграмм имеются дополнительные возможности редактирования (Формат \ Объемный вид): три основных операции

§ возвышение - изменение угла, под которым видна диаграмма

§ поворот относительно вертикальной оси

§ вид в перспективе - для его получения надо отменить перпендикулярность осей

На любой диаграмме могут использоваться текстовые надписи трех типов

§ связанные тексты - это наименования диаграммы, названия осей - их можно форматировать, перемещать, изменять текст

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

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

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

33. Этапы решения задач на компьютере.

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

Рассмотрим эти этапы на следующем примере: пусть требуется вычислить сумму двух целых чисел и вывести на экран результат.

Первый этап – постановка задачи. На этом этапе участвует человек.Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить подход к ее решению.

Второй этап – математическое или информационное моделирование. Цель этого этапа – создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать лучший. Для вышеописанной задачи данный этап сводится к следующему: введенные в компьютер числа запомним в памяти под именами А и В, затем вычислим значение суммы этих чисел по формуле А+В, и результат запомним в памяти под именем Summa.

Третий этап – алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.

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

Свойства алгоритма:При составлении и записи алгоритма необходимо обеспечить, чтобы он обладал рядом свойств.

Однозначность алгоритма - это единственность толкования исполнителем правил выполнения действий и порядка их выполнения.

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

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

Правильность алгоритма - это способность алгоритма давать правильные результаты решения поставленных задач.

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

Пятый этап – ввод программы и исходных данных в ЭВМ.

Шестой этап – тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок.

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

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

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

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

34. Состав пакета Microsoft Office.

1.Microsoft Office Word - текстовый процессор. Доступен под Windows и Apple Mac OS X. Позволяет подготавливать документы различной сложности. Поддерживает OLE, подключаемые модули сторонних разработчиков, шаблоны и многое другое. Основным форматом в последней версии является позиционируемый как открытый Microsoft Office Open XML, который представляет собой ZIP-архив, содержащий текст в виде XML, а также всю необходимую графику. Наиболее распространенным остается двоичный формат файлов Microsoft Word 97-2000 с расширением.doc. Продукт занимает ведущее положение на рынке текстовых процессоров, и его форматы используются как стандарт де-факто в документообороте большинства предприятий. Word также доступен в некоторых редакциях Microsoft Works. Главные конкуренты - OpenOffice.org Writer, StarOffice Writer, Corel WordPerfect и Apple Pages (только на платформе Mac OS), а также, с некоторыми оговорками AbiWord (в тех случаях, когда его возможностей достаточно, а малый объём и скорость работы при невысоких требованиях к ресурсам более важны).

2.Microsoft Office Excel - табличный процессор. Поддерживает все необходимые функции для создания электронных таблиц любой сложности. Занимает ведущее положение на рынке. Последняя версия использует формат OOXML с расширением «.xlsx», более ранние версии использовали двоичный формат с расширением «.xls». Доступен под Windows и Apple Mac OS X. Главные конкуренты - OpenOffice.org Calc, StarOffice, Gnumeric, Corel Quattro Pro и Apple Numbers (только на платформе Mac OS

3.Microsoft Office Outlook (не путать с Outlook Express) - персональный коммуникатор. В состав Outlook входят: календарь, планировщик задач, записки, менеджер электронной почты, адресная книга. Поддерживается совместная сетевая работа. Главные конкуренты почтового клиента - Mozilla Thunderbird/SeaMonkey, Eudora Mail, The Bat!. Главные конкуренты диспетчера персональных данных - Mozilla, Lotus Organizer и Novell Evolution. Доступен под Windows. Эквивалент для Apple Mac OS X - Microsoft Entourage, однако Microsoft в пакете Office for mac:2011 намерена заменить Entouragе и вернуть Outlook.

4.Microsoft Office PowerPoint - приложение для подготовки презентаций под Microsoft Windows и Apple Mac OS X. Главные конкуренты - OpenOffice.org Impress, Corel WordPerfect и Apple Keynote.

Microsoft Office Access - приложение для управления базами данных.

Microsoft Office InfoPath - приложение сбора данных и управления ими - упрощает процесс сбора сведений.

Microsoft Office Communicator - предназначен для организации всестороннего общения между людьми. Microsoft Office Communicator 2007 обеспечивает возможность общения посредством простого обмена мгновенными сообщениями, а также проведения голосовой и видеобеседы. Данное приложение является частью программного пакета Microsoft Office и тесно с ним интегрировано, что позволяет ему работать совместно с любой программой семейства Microsoft Office.

Microsoft Office Publisher - приложение для подготовки публикаций.

Microsoft Office Visio - приложение для работы с бизнес-диаграммами и техническими диаграммами - позволяет преобразовывать концепции и обычные бизнес-данные в диаграммы.

Microsoft Office Project - управление проектами.

Microsoft Query - просмотр и отбор информации из баз данных.

Microsoft Office OneNote - приложение для записи заметок и управления ими.

Microsoft Office Groove 2007 - приложение для поддержки совместной работы. Microsoft Office SharePoint Designer - инструмент для построения приложений на платформе Microsoft SharePoint и адаптации узлов SharePoint.

Microsoft Office Picture Manager - работа с рисунками.

Microsoft Office Document Image Writer - виртуальный принтер, печатающий в формат Microsoft Document Imaging Format Microsoft Office Diagnostics - диагностика и восстановление поврежденных приложений Microsoft Office

Использование функций имеет много преимуществ, в том числе:

Код внутри функции может быть повторно использован.

Гораздо проще изменить или обновить код в функции (что делается один раз), нежели искать и изменять все части кода в функции main() «на месте». Дублирование кода — хороший рецепт для ошибок и ухудшения производительности.

Упрощается чтение и понимание кода, так как вам не нужно знать реализацию функции, чтобы её использовать (предполагается наличие информативного названия функции и ).

В функциях поддерживается проверка типов данных для гарантии того, что передаваемые аргументы соответствуют параметрам функции.

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

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

C++ предлагает способ сочетания преимуществ функций со скоростью кода, написанного «на месте»: встроенные функции . Ключевое слово inline используется для запроса, чтобы компилятор рассматривал вашу функцию как встроенную. При компиляции вашего кода, все встроенные функции раскрываются «на месте», то есть вызов функции заменяется копией содержимого самой функции, и ресурсы, которые могли бы быть потрачены на вызов этой функции, сохраняются! Минусом является лишь увеличение компилируемого кода за счёт того, что встроенная функция раскрывается в коде при каждом вызове (особенно если она длинная и/или её вызывают много раз). Рассмотрим следующий фрагмент кода:

#include int max(int a, int b) { return a < b ? b: a; } int main() { std::cout << max(7, 8) << "\n"; std::cout << max(5, 4) << "\n"; return 0; }

#include

int max (int a , int b )

return a < b ? b : a ;

int main ()

std :: cout << max (7 , 8 ) << "\n" ;

std :: cout << max (5 , 4 ) << "\n" ;

return 0 ;

Эта программа дважды вызывает функцию max(), т.е. дважды расходуются ресурсы на вызов функции. Поскольку max() является довольно таки короткой функцией, то это идеальный вариант для её конвертации во встроенную функцию:

inline int max(int a, int b) { return a < b ? b: a; }

inline int max (int a , int b )

return a < b ? b : a ;

int main() { std::cout << (7 < 8 ? 8: 7) << "\n"; std::cout << (5 < 4 ? 4: 5) << "\n"; return 0; }

int main ()

std :: cout << (7 < 8 ? 8 : 7 ) << "\n" ;

std :: cout << (5 < 4 ? 4 : 5 ) << "\n" ;

return 0 ;

Такой код выполниться быстрее ценой несколько увеличенного объёма.

Из-за возможности подобного «раздувания», встроенные функции лучше всего использовать только для коротких функций (не более нескольких строк), которые обычно вызываются внутри циклов и не имеют . Также, обратите внимание, ключевое слово inline является лишь рекомендацией — компилятор может игнорировать ваш запрос на встроенную функцию. Подобное произойдёт, если вы попытаетесь сделать встроенной длинную функцию!

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

Лучшие статьи по теме