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

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

Цель лекции : изучить подставляемые (встраиваемые) функции и перегрузки функций, научиться разрабатывать программы с использованием перегрузки функций на языке 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); } // конец функции

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

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

Гораздо проще изменить или обновить код в функции (что делается один раз), нежели искать и изменять все части кода в функции 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. Компилятор всё сделает сам.

Встраиваемые функции

В C++ можно задать функцию, которая на самом деле не вызывается, а ее тело встраивается в программу в месте ее вызова. Преимуществом встраиваемых (in-line) функций является то, что они не связаны с механизмом вызова функций и возврата ими своего значения. Это значит, что встраиваемые функции могут выполняться гораздо быстрее обычных.

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

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

Для объявления встраиваемой функции просто впишите спецификатор inline перед определением функции.

Особенность использования встраиваемой функции: она должна быть задана до ее первого вызова. Если это не так, компилятор не будет знать, какой именно код предполагается встроить в программу с помощью встраиваемой функции. Поэтому функция even() была определена перед функцией main().

Любая функция может стать встраиваемой, включая функции -- члены классов. Например, функция divisible!) для ускорения ее выполнения сделана встраиваемой. Функция возвращает истину, если ее первый аргумент без остатка может делиться на второй.

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

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

Встраиваемая функция, вычисляющая объем сферы.

Создание встраиваемых функций зависит от директивы INLINE

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

Директива INLINE управляет созданием встраиваемых функций inline

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

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

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

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

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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

КУРСОВАЯ РАБОТА

по дисциплине «Информатика»

Введение

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

Одной из таких необходимых и труднозаменимых программ является офисная программа MS Excel.

MS Excel имеет много функциональных возможностей. На ней можно создавать как простейшей таблицы, например таблицы умножения, так и разрабатывать более сложные, в которых производится расчет НДС, простых и сложных процентов по вкладу, генерируется написание дат и сумм прописью. MS Excel помогает формировать и анализировать различные списки (например, с данными о сотрудниках, должностных окладах и т. д.), а также выполнять с их элементами разные операции: изменять должностные оклады, начислять премии, рассчитывать выплаты, связанные с временной нетрудоспособностью. Знание приемов работы со списками позволит проводить маркетинговые исследования, в частности анализировать объемы продаж товаров как отдельным клиентам, так и по регионам.

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

В практической части я решу ряд задач: создам и заполню таблицы, наглядно продемонстрирую действие одной из встроенных функций MS Excel, построю график.

Курсовая работа выполнена с использованием офисных программ MS Word 2003 и MS Excel 2003.

Теоретическая часть

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

Формула -- выражение, состоящее из операндов, которое используется для выполнения вычислений над имеющимися данными. Каждая формула начинается с символа «равно» (=). В качестве операндов могут быть: числа, логические значения, ссылки на адреса ячеек (диапазон ячеек), встроенные функции, которые соединяются с помощью символов операций -- сложения, вычитания, умножения.

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

1. Возведение в степень и выражения в круглых скобках.

2. Умножение и деление.

3. Сложение и вычитание.

Ввод формул

Адрес ячейки можно включить в формулу одним щелчком мыши. Например, вместо того, чтобы «вручную» набирать =C6+C7+..., можно сделать следующее:

§ ввести «=»;

§ щелкнуть мышью на ячейке C6 (ее адрес появится в формуле);

§ ввести «+»;

§ щелкнуть на C7 и т. д.

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

В учебной задаче мы вставляли суммы отдельно в каждую ячейку по строке 10 и по столбцу F. Однако Excel позволяет скопировать готовую формулу в смежные ячейки; при этом адреса ячеек будут изменены автоматически.

Выделите ячейку С10. Установите указатель мыши на черный квадратик в правом нижнем углу курсорной рамки (указатель примет форму черного крестика). Нажмите левую кнопку и смещайте указатель вправо по горизонтали, -- так, чтобы смежные ячейки D10 и E10 были выделены пунктирной рамкой. Отпустите кнопку мыши.

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

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

§ при копировании вверх (вниз) по вертикали смещение на одну ячейку уменьшает (увеличивает) каждый номер строки в формуле на единицу.

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

Абсолютные адреса

Чтобы запретить программе Excel механически изменять адрес ячейки, достаточно перед номером столбца и номером строки записать символ «$», т.е. вместо относительного указать абсолютный адрес (например, $F$10). Знак «$», указанный перед номером столбца, означает, что этот номер не будет изменяться при операциях копирования формул, вставки и удаления строк и столбцов. Знак «$», указанный перед номером строки, означает, что этот номер не будет изменяться при операциях копирования формул, вставки и удаления строк и столбцов.

Для быстрого изменения типа адресации используется функциональная клавиша F4.

Вместо абсолютной адресации мы можем воспользоваться именем ячейки. Например, если присвоить ячейке F10 имя Всего, вместо адреса F$10 можно указать: Всего.

При присвоении имен нужно учитывать следующее:

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

§ пробелы не допускаются;

§ прописные и строчные буквы воспринимаются одинаково;

§ можно использовать как латинский, так и русский регистр.

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

Проценты

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

Выделите столбец G и щелкните мышью на кнопке панели «Форматирование» с изображением %. Все доли будут умножены на 100 и помечены знаком «%».

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

Функция

В общем случае -- это переменная величина, значение которой зависит от значений других величин (аргументов). Функция имеет имя (например, КОРЕНЬ) и, как правило, аргументы, которые записываются в круглых скобках следом за именем функции. Скобки -- обязательная принадлежность функции, даже если у нее нет аргументов. Если аргументов несколько, один аргумент отделяется от другого запятой. В качестве аргументов функции могут использоваться числа, адреса ячеек, диапазоны ячеек, арифметические выражения и функции. Смысл и порядок следования аргументов однозначно определен описанием функции, составленным ее автором. Например, если в ячейке G6 записана формула с функцией возведения в степень =СТЕПЕНЬ(A4,2.3), значением этой ячейки будет значение A4, возведенное в степень 2.3.

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

Рис. 1.Мастер функций

Работая с функциями, помните:

1. функция, записанная в формуле, как правило, возвращает уникальное значение: арифметическое, символьное или логическое;

2. существуют функции, которые не возвращают значение, а выполняют некоторые операции (например, объединяют текстовые строки);

3. существуют функции без аргументов (например, функция ПИ() возвращает число П = 3.1415...).

В программе Excel можно использовать свыше400 функций, которые разделены на категории (тематические группы): математические, финансовые, статистические, ссылки и массивы, работа с базой данных, текстовые, логические, дата и временя, проверка свойств и значений.

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

Теперь рассмотрим, что представляет из себя каждая из этих категорий.

Финансовые функции

По типу решаемых задач финансовые функции Excel делятся на следующие условные группы:

* для анализа аннуитетов и инвестиционных проектов;

* для анализа ценных бумаг;

* для расчета амортизационных платежей;

* вспомогательные.

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

Например, функция ДДОБ (рис. 2).

ДДОБ(нач_стоимость,ост_стоимость,время_эксплуатации,период,

коэфициент)

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

Аргументы:

нач_стоимость - начальная стоимость имущества;

ост_стоимость - остаточная стоимость имущества;

время_эксплуатации - количество периодов, охватывающих промежуток времени, в течение которого имущество амортизируется (период амортизации);

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

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

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

Рис. 2. Диалоговое окно ввода аргументов функции ДДОБ

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

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

Например, функция ДЛСТР

ДЛСТР(текст)

Результат: Количество символов в текстовом аргументе текст.

Аргументы:

текст - текст, длину которого нужно определить. При вычислении длины текста учитываются пробелы.

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

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

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

Например, функция ИЛИ

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

Результат: Возвращает значение ИСТИНА, если хотя бы один из аргументов имеет значение ИСТИНА; возвращает значение ЛОЖЬ, если все аргументы имеют значение ЛОЖЬ.

Аргументы:

логическое_значение1, логическое_значение2,... - от 1 до 30 проверяемых условий, которые могут иметь значение либо ИСТИНА, либо ЛОЖЬ. Можно использовать функцию ИЛИ как формулу массива, чтобы проверить, имеются ли значения в массиве. Для того чтобы ввести функцию ИЛИ как формулу массива, нажмите клавиши .

Статистические функции

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

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

Целый ряд статистических функций Excel предназначен для анализа вероятностей.

Например, функция ДИСП

ДИСП(число1,число2, ...)

Результат: Дисперсия выборки. Аргументы рассматриваются как выборка из генеральной совокупности.

Аргументы:

число1, число2,... - не более 30 аргументов; текстовые, логические и пустые поля приводят к ошибке.

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

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

Например, функция КОРЕНЬ

КОРЕНЬ(число)

Результат: Корень квадратный числа.

Аргументы:

число - число, для которого вычисляется квадратный корень (если число отрицательное, то функция КОРЕНЬ возвращает значение ошибки #ЧИСЛО!).

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

Например, функция ВПР

ВПР(искомое_значение,инфо_таблица,номер_столбца,интервальный

Просмотр)

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

Аргументы:

искомое_значение - задает значение, которое функция ищет в первой колонке матрицы (если это значение не будет найдено, будет взято ближайшее меньшее; если меньшего не существует, возникнет ошибка #Н/Д);

инфо_таблица - таблица, содержащая искомые данные;

номер_столбца - колонка в найденной строке, из которой должно быть взято значение;

интервальный_просмотр - логическое значение, которое определяет характер поиска: точное или приближенное соответствие. Если этот аргумент имеет значение ИСТИНА или опущен, то возвращается приблизительно соответствующее значение. Если этот аргумент имеет значение ЛОЖЬ, то функция ВПР ищет точное соответствие. Если таковое не найдено, то возвращается значение ошибки #Н/Д.

Дата и время

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

Например, функция ВРЕМЯ

ВРЕМЯ(часы,минуты,секунды)

Результат: Значение времени в числовом формате, соответствующее введенным аргументам. Это десятичная дробь в интервале от 0 до 0,99999999, представляющая время суток от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера).

Аргументы:

часы - число от 1 до 24 (количество часов);

минуты - число от 1 до 59 (количество минут);

секунды - число от 1 до 59 (количество секунд).

Проверка свойств и значений

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

Например, функция ЕПУСТО

ЕПУСТО(значение)

Результат: Возвращает значение ИСТИНА в случае, если значение ссылается на пустую ячейку.

Аргументы:

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

Работа с базой данных

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

Например, функция БДДИСП

БДДИСП(база_данных,поле,критерий)

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

Аргументы:

база_данных - интервал ячеек, формирующих базу данных;

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

критерий - интервал ячеек, который содержит критерий поиска.

электронный таблица функция формула

Практическая часть

1. Запустить табличный процессор MS Excel.

2. Создать книгу с именем «Летучий голландец».

3. Лист 1 переименовать в лист с названием .

4. На рабочем листе Сведения о выполненных маршрутах MS Excel создать таблицу данных о выполненных маршрутах.

5. Заполнить таблицу данных о выполненных маршрутах исходными данными (рис. 1)

Рис. 1. Таблица «Данные о выполненных маршрутах»

6. Лист 2 переименовать в лист с названием Автомобили .

7. На рабочем листе Автомобили MS Excel создать таблицу, в которой будут содержаться технические характеристики автомобилей.

8. Заполнить таблицу с техническими характеристиками автомобилей исходными данными (рис. 2).

Рис. 2. Таблица «Технические характеристики автомобилей»

9. Лист 3 переименовать в лист с названием Рейсы .

10. На рабочем листе Рейсы MS Excel создать таблицу, в которой будут содержаться данные о протяженности рейсов.

11. Заполнить таблицу «Протяженность рейса» исходными данными (рис. 3).

Рис. 3. Таблица «Протяженность рейсов»

12. Выделить ячейки A2:C5 в таблице «Протяженность рейсов », находящейся на листе Рейсы , и присвоить им имя Рейсы .

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

Занести в ячейку F2 формулу:

ВПР(D2;Рейсы;2;1).

Размножить введенную в ячейку F2 формулу для остальных ячеек (с F3 по F8) данной графы (Рис. 4).

Рис. 4. Заполнение графы Протяженность рейса

14. Выделить ячейки B2:C4 в таблице «Технические характеристики автомобилей», находящейся на листе Автомобили , и присвоить им имя Автомобили .

15. Заполнить графу Расход топлива на 100 км таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Занести в ячейку G2 формулу:

ВПР(C2;Автомобили;2;1).

Размножить введенную в ячейку G2 формулу для остальных ячеек данной графы (с G3 по G8) (рис. 5).

Рис. 5. Заполнение графы Расход топлива на 100 км

16. Заполнить графу Израсходовано топлива таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Занести в ячейку H2 формулу:

=(G2/100)*(E2*F2).

Размножить введенную в ячейку H2 формулу для остальных ячеек (с H3 по H8) (рис. 6).

17. Заполнить графу Грузоподъемность таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Рис. 6. Заполнение графы Израсходовано топлива

Занести в ячейку I2 формулу:

ВПР(C2;Автомобили;3;1).

Размножить введенную в ячейку I2 формулу для остальных ячеек (с I3 по I8) (рис. 7).

Рис. 7. Заполнение графы Грузоподъемность

18. Заполнить графу Вес перевезенного груза таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Занести в ячейку J2 формулу:

Размножить введенную в ячейку J2 формулу для остальных ячеек (с J3 по J8) (рис. 8).

Рис. 8. Заполнение графы Вес перевезенного груза

19. Заполним графу ИТОГО таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Занести в ячейку F9 формулу:

СУММ(F2:F8).

Размножить введенную в ячейку F9 формулу для остальных ячеек (с G9 по J9) (рис. 9).

Рис. 9. Заполнение графы ИТОГО

20. Заполним графу В СРЕДНЕМ таблицы «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах следующим образом:

Занести в ячейку F10 формулу:

СРЗНАЧ(F2:F8).

Рис. 10. Заполнение графы В СРЕДНЕМ

Размножить введенную в ячейку F10 формулу для остальных ячеек (с G10 по J10) (рис. 10).

21. Ячейки F10:J10 с помощью Формата ячеек перевести в числовой формат, сократив число десятичных знаков до 2 (рис. 10).

22. Лист 4 переименовать в лист с названием Ведомость .

23. На рабочем листе Ведомость MS Excel создать ведомость расхода горючего каждым водителем за неделю (рис. 11).

24. Путем создания межтабличных связей заполнить созданную форму полученными данными из таблицы «Данные о выполненных маршрутах ».

Рис. 11. Ведомость расхода горючего

25. Для начала в таблице «Данные о выполненных маршрутах », находящейся на листе Сведения о выполненных маршрутах , расположить данные графы ФИО водителей в алфавитном порядке.

26. В этой же таблице выделить ячейки B2:J10 и присвоить им имя Маршруты .

27. Заполнить графу № рейса Ведомость , следующим образом:

Занести в ячейку D11 формулу:

ВПР(C11;Маршруты;3;1).

Размножить введенную в ячейку D11 формулу для остальных ячеек (с D12 по D17) (рис. 12).

Рис. 12. Заполнение графы № рейса

28. Заполнить графу Выполнено рейсов ведомости расхода горючего, находящейся на листе Ведомость , следующим образом:

Занести в ячейку E11 формулу:

ВПР(C11;Маршруты;4;1).

Размножить введенную в ячейку E11 формулу для остальных ячеек (с E12 по E17) (рис. 13).

Рис. 13. Заполнение графы Выполнено рейсов

29. Заполнить графу Израсходовано топлива ведомости расхода горючего, находящейся на листе Ведомость , следующим образом:

Занести в ячейку F11 формулу:

ВПР(C11;Маршруты;7;1).

Рис. 14. Заполнение графы Израсходовано топлива

Размножить введенную в ячейку F11 формулу для остальных ячеек (с F12 по F17) (рис. 14).

30. Заполнить графу ИТОГО ведомости расхода горючего, находящейся на листе Ведомость , следующим образом:

Занести в ячейку E18 формулу:

СУММ(E11:E17).

Размножить введенную в ячейку E18 формулу для ячейки F18 (рис. 15).

Рис. 15. Заполнение графы ИТОГО

31. Результаты расчета количества израсходованного топлива за неделю представить в графическом виде.

Рис. 16. Диаграмма результатов вычислений количества израсходованного топлива за неделю

Заключение

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

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

Список использованной литературы

1. Информатика в экономике: Учеб. Пособие / Под ред. проф. Б.Е. Одинцова, проф. А.Н. Романова. - М.: Вузовский учебник, 2008. - 478 с.

2. Компьютерные системы и сети: Учеб. Пособие / В.П. Косарева и др. / Под ред. В.П. Косарева и Л.В. Еремина. - М.: Финансы и статистика, 2009. - 464 с.: ил.

3. Шафрин Ю.А. Информационные технологии. - М.: Лаборатория Базовых Знаний, 2008 г. - 704 с.

4. Сайт Интернета - http://www.taurion.ru/excel/10 - Самоучитель MS Excel.

Размещено на Allbest.ru

Подобные документы

    Формулы. Использование ссылок и имен. Перемещение и копирование формул. Относительные и абсолютные ссылки. Понятие функции. Типы функций. Основным достоинством электронной таблицы Excel является наличие мощного аппарата формул и функций.

    реферат , добавлен 15.02.2003

    Вычисления в Excel. Формулы и функции: Использование ссылок и имен, перемещение и копирование формул. Относительные и абсолютные ссылки. Понятиеи и типы функций. Рабочая книга Excel. Связь между рабочими листами. Построение диаграмм в EXCEL.

    лабораторная работа , добавлен 28.09.2007

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

    контрольная работа , добавлен 05.07.2010

    Создание таблицы "Покупка товаров с предпраздничной скидкой". Понятие формулы и ссылки в Excel. Структура и категории функций, обращение к ним. Копирование, перемещение и редактирование формул, автозаполнение ячеек. Формирование текста функции в диалоге.

    лабораторная работа , добавлен 15.11.2010

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

    контрольная работа , добавлен 01.10.2011

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

    контрольная работа , добавлен 02.02.2015

    Табличный процессор Microsoft Excel - программа управления электронными таблицами общего назначения; встроенные функции: математические, текстовые, логические. Расчет выполненных маршрутов по перевозке грузов, формирование ведомости расхода горючего.

    курсовая работа , добавлен 07.07.2013

    Основные приемы работы в Excel. Селекция блока ячеек, ввод данных. Копирование формул, установка границ ячеек. Изменение ширины столбца. Решение транспортной задачи: ввод исходных данных, формирование элементов математической модели и целевой функции.

    курсовая работа , добавлен 30.01.2012

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

    контрольная работа , добавлен 27.05.2010

    Краткая история табличных процессоров. Интерфейс Microsoft Excel-2010. Документ Excel 2010. Типы данных в ячейках Excel. Диапазоны (массивы, блоки) в Excel. Текстовые и числовые данные. Формулы и ссылки на ячейки. Форматы представления числовых данных.

MS Excel 2003 содержит 320 встроенных функций. Для удобства функции в Excel 2003 разбиты по категориям (матем, финансовые, статистические и т.д.).

Обращение к каждой функции состоит из двух частей: имени функции и аргументов в круглых скобках.

Встроенные функции

Математические:

КОРЕНЬ(...) Вычисление квадратного корня

ABS(...) Вычисление абсолютного значения (модуля) числа

ЦЕЛОЕ(...) Округление числа или результата выражения, указанного в скобках, до ближайшего меньшего (!) целого

ПИ() * Значение математической константы «ПИ» (3,1415926...)

НОД(…) Наибольший общий делитель нескольких чисел

НОК(…) Наименьшее общее кратное нескольких чисел

СЛЧИС() * Вычисление случайного числа в промежутке между 0 и 1

Статистические

МИН(...) Определение минимального из указанных чисел

МАКС(…) Определение максимального из указанных чисел

СРЕДНЕЕ(...) Определение среднего значения указанных чисел

СУММ(...) Определение суммы указанных чисел

Дата и время

СЕГОДНЯ () * Значение сегодняшней даты в виде даты в числовом формате

МЕСЯЦ(дата) Вычисление порядкового номера месяца в году по указанной дате

ДЕНЬ(дата) Вычисление порядкового номера дня в месяце по указанной дате

ГОД(дата) Вычисление года по указанной дате

Логические

И(условие1; условие2;...)

Вычисление значения (ИСТИНА, ЛОЖЬ) логической операции И

ИЛИ (условие1; условие2;...)

Вычисление значения (ИСТИНА, ЛОЖЬ) логической операции ИЛИ

ЕСЛИ (условие; знач_ИСТИНА; знач_ЛОЖЬ)

Вычисление значения в зависимости от выполнения условия.

Виды ссылок:

Относительная (С3)

При копировании: Меняется в соответствии с новым положением ячейки

Технология ввода: Щелкнуть в ячейке

Абсолютная ($C$3)

При копировании: Не меняется

Технология ввода: Щелкнуть в ячейке и нажимать F4 до преобразования адреса к нужному виду

Смешанная

При копировании: (С$3) Не меняется номер строки

При копировании: ($C3) Не меняется имя столбца

Использование относительных ссылок в Excel аналогично указанию направления движения по улице - "идти три квартала на север, затем два квартала на запад". Следование этим инструкциям из различных начальных мест будет приводить в разные места назначения.

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

В Excel абсолютная ссылка на ячейку или область ячеек будет всегда ссылаться на один и тот же адрес строки и столбца. При сравнении с направлениями улиц это будет примерно следующее: "Идите на пересечение Арбата и Бульварного кольца". Вне зависимости от места старта это будет приводить к одному и тому же месту. Если формула требует, чтобы адрес ячейки оставался неизменным при копировании, то должна использоваться абсолютная ссылка (формат записи $А$1). Например, когда формула вычисляет доли от общей суммы, ссылка на ячейку, содержащую общую сумму, не должна изменяться при копировании.



Понравилась статья? Поделиться с друзьями: