Как сделать табулирование функции в c

Добавил пользователь Cypher
Обновлено: 05.10.2024

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

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

Пример табулирования функции одной переменной приведено на Листинге 6.3. Для выполнения операции табулирования необходимо:

- сгенерировать ряд значений аргумента на заданном интервале;

- записать в соседний столбец справа расчетную формулу зависимости функции от аргумента;

- скопировать расчетную формулу во все ячейки требуемого диапазона изменения аргумента.

Пример табулирование функции двух переменных приведен на Листинге 6.4.

Листинг 6.4. Табулирование функции двух переменных
А B C D E
Шаг 1-го аргумента 0,5 Шаг 2-го аргумента 0,2
0,1 B2+$D$1 C2+$D$1 D2+$D$1
2*$A3+B$2^2 2*$A3+C$2^2 2*$A3+D$2^2 2*$A3+E$2^2
A3+$B$1 2*$A4+B$2^2 2*$A4+C$2^2 2*$A4+D$2^2 2*$A4+E$2^2
A4+$B$1 2*$A5+B$2^2 2*$A5+C$2^2 2*$A5+D$2^2 2*$A5+E$2^2
A5+$B$1 2*$A6+B$2^2 2*$A6+C$2^2 2*$A6+D$2^2 2*$A6+E$2^2
A6+$B$1 2*$A7+B$2^2 2*$A7+C$2^2 2*$A7+D$2^2 2*$A7+E$2^2
A7+$B$1 2*$A8+B$2^2 2*$A8+C$2^2 2*$A8+D$2^2 2*$A8+E$2^2
A8 +$B$1 2*$A9+B$2^2 2*$A9+C$2^2 2*$A9+D$2^2 2*$A9+E$2^2

Порядок выполнения операции следующий:

- запишите в ячейку А3 начальное значение аргумента Х;

- запишите в ячейку В2 начальное значение аргумента Y;

- запишите в ячейки A4 и C2 формулы для генерирования рядов значений аргументов;

- скопируйте в ячейки А5:А9 формулу для вычисления аргумента Х из ячейки А4;

- скопируйте в ячейки D2:E2 формулу для вычисления Y из ячейки C2;

- запишите в ячейку В3 таблицы расчетную формулу с использованием смешанных адресов ячеек: У первого аргумента зафиксируйте столбец, а у второго аргумента - строку;

- скопируйте формулу во все ячейки блока.

Общее правило при копировании формул со смешанными адресами:

Если данные находятся в строке, то фиксируется номер строки, а если данные находятся в столбце то фиксируется номер столбца.

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

Пример 6.1. Протабулировать функцию SIN(x) на интервале от –ПИ/2 до ПИ/2 с шагом 0,5.

- введем в ячейки A1, А3, А5, С1 (Листинг 6.5) текст Ячейка ввода, Начальное значение, Шаг табуляции, Ячейка ввода формулы;

Листинг 6.5. Использование команды Таблица подстановки
A B C
Ячейка ввода Ячейка ввода формулы
SIN(a2)
Начальное значение -1,5708 -1
-1,5708 -1,0708 -0,87758
Шаг табуляции -0,5708 -0,5403
0,5 -0,0708 -0,07074
0,429204 0,416147
0,929204 0,801144
1,429204 0,989992
1,929204 0,936457

- введем в ячейку ввода А2 произвольное число, например 0

- (это число не влияет на результат табулирования);

- ведем в ячейку А4 начальное значение аргумента х - -ПИ/2. Для ввода этого числа используем функцию ПИ();

- введем в ячейку А6 значение шага - 0,5;

- введем в ячейку С2 формулу SIN(A2). В качестве аргумента указывается адрес ячейки ввода;

- сгенерируем в столбце В, начиная с ячейки В3, ряд значений аргумента;

- выделим область В2:С10 и введем команду Данные, Таблица подстановки;

- в диалоговом окне Таблица подстановки (рис. 6.11) введем в окно ввода “Подставлять значения по строкам в. ” номер Ячейки ввода А2 и щелкнем кнопку ОК. (Для ввода номера ячейки достаточно активизировать окно ввода щелчком мыши и щелкнуть по ячейке А2). Работа завершена.

Пример 6.2. Протабулировать функцию 2х+у 2 при х, изменяющимся от 0 до 1 с шагом 0,2, и у изменяющимся от 1до 4 с шагом 1.

Решение:

- обозначим ячейку А2 как ячейку ввода по строкам, а ячейку А4 как ячейку ввода по столбцам для этого внесем соответствующие записи в ячейки А1 и А3 (см. рис. 6.11);

- внесем в столбец В, начиная с ячейки В2 значения аргумента х;

- внесем в строку 1, начиная с ячейки С1 значения аргумента у;

- внесем в ячейку В1 (ячейка на пересечении первого столбца и первой

Листинг 6.6. Табулирование функции двух переменных
A B C D E F
По строкам 2*х+у 2
По столбцам 0,2 1,4 4,4 9,4 16,4
0,4 1,8 4,8 9,8 16,8
0,6 2,2 5,2 10,2 17,2
0,8 2,6 5,6 10,6 17,6

- строки будущей таблицы) формулу 2*х+у^2 или, с ссылками на номера ячеек, 2*A2+A4^2;

- выделим область В1:F7 и введем команду Данные, Таблица подстановки;

- внесем в строку ввода Подставлять значения по столбцам в…: номер ячейки А4, а в строку ввода Подставлять значения по строкам в …: номер ячейки А2 и щелкнем кнопку ОК. Работа завершена.

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

2. Как сгенерировать ряд чисел с арифметической или геометрической прогрессией?

3. Как протабулировать функцию одной переменной?

4. Как протабулировать функцию двух переменных?

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

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

электронной таблицы

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

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

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

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

Первое диалоговое окно позволяет выбрать тип диаграммы и ее вид. Мастер диаграмм позволяет использовать 14 стандартных и 20 нестандартных типов диаграмм. Для построения графиков функций необходимо использовать “Точечную” диаграмму. Тип “График” целесообразно использовать для построения линейных диаграмм. Это связано с тем, что график строится отрезками прямых, поэтому при большом шаге табулирования функции будет наблюдаться ступенчатость графика. Выбранный вид диаграммы отображается на экране.


Второе диалоговое окно позволяет ввести диапазон значений для построения диаграммы, а также установить порядок чтения данных: по строкам или столбцам (рис. 6.12). Если диалоговое окно закрывает часть экрана нужную для выделения области, щелкните кнопку в конце строки ввода диапазона. Окно диалога убирается с экрана, кроме самой строки ввода. Для восстановления диалогового окна после выделения требуемой области снова щелкните кнопку в конце строки ввода диапазона. Вкладка Ряд этого диалогового окна позволяет добавлять данные на диаграмму или удалять данные (рис.6.13). На этой вкладке имеется окно “Ряд”, окно просмотра графика и две или три строки ввода (в зависимости от типа графика). Окно “Ряд” служит для отображения списка графиков. Оно позволяет также добавлять или удалять графики с диаграммы. В строке Имя вводится название графика или адрес ячейки, в которой он находится. В строках Значения Х, Значения Y указывается диапазон ячеек, в которых содержатся соответствующие данные.

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

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

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

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

Построить графики функций Sin(x) и Cos(x) на отрезке от -ПИ до ПИ. Отрезок разделить на десять равных частей. Пример построения графика приведен на Листинге 6.7.

ИНСТРУКЦИОННАЯ КАРТА № 9

На выполнение практического занятия по учебной практике

Тема: Циклический алгоритм. Табулирование функции и поиск экстремумов.

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

- определить максимальное и минимальное значения в заданном диапазоне методом перебора.

Норма времени: 2 часа.

Оснащение рабочего места:

Инструкционные карты, конспект, ПК, среда Delphi.

ХОД РАБОТЫ

I. Теоретические сведения

Алгоритм циклической структуры – это вычислительный процесс,

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

Каждый алгоритм циклической структуры содержит такие элементы:

А) подготовка цикла – определение начальных значений параметров цикла;

Б) тело цикла – действия, что повторяются многократно для разных значений параметров цикла;

В) модификация цикла – смена значений параметров цикла;

Г) управление циклом – проверка условия выхода из цикла.

Табулирование функции – это формирование и вывод на экран или принтер таблицы значений функции для значений аргумента (х), изменяющихся от некоторого начального значения (хn) до конечного (хк) с некоторым шагом (h). Для этого используется цикл. При подготовке цикла аргументу присваивается начальное значение (х = хn), в теле цикла вычисляются и выводятся значения функции для текущего значения аргумента х.

Модификация заключается в увеличении аргумента на величину h (х:= х + h). Цикл завершается, когда после очередного изменения значение аргумента превысит конечное значение (х>хк).

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

Компонент Таблица строк (TStringGrid)

Результат табулирования функции представляет собой некоторую

Таблицу, состоящую из двух колонок: значения аргумента (х) и соответствующего ему значения функции (y). Количество строк в таблице определяется интервалом (xk - xn) и шагом (h) табулирования. Для оформления такой таблицы удобно использовать компонент типа TStringGrid (таблица строк) из страницы Additional.

Этот компонент предоставляет мощные средства создания и обслуживания табличных структур данных (сеток), обеспечивает двумерное представление данных, упорядоченных по строкам и столбцам. В ячейках создаваемых таблиц могут располагаться произвольные текстовые строки. Таблица делится на две части: фиксированную (может отсутствовать) и рабочую. Фиксированная служит для показа заголовков. Если рабочая область не помещается на экране – появляются полосы прокрутки. При прокрутке фиксированная область не исчезает, изменяется только ее содержимое. Ячейки фиксированной области выделяются цветом.

Основные свойства компонента типа TstringGrid:

Cells [ACol, ARow: integer] – двумерный массив, определяющий содержимое ячейки с табличными координатами (ACol, ARow). Это свойство позволяет обращаться к содержимому ячеек и изменять их содержимое.

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

ColCount, RowCount – задают, соответственно, общее количество столбцов и строк в таблице.

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

FixedColor – определяет цвет фиксированной зоны. Это свойство имеет тип TColor.

DefaultColWidth, DefaultRowHeight – задают, соответственно, умалчиваемую ширину колонок и высоту столбцов в пикселях. Значения этих свойств распространяются на все ячейки таблицы, кроме тех, для которых установлены свои значения.

ColWidths[i] – содержит ширину конкретного i-го столбца. Это массив, хранящий ширину в пикселях каждого столбца. Установка этого свойства для любого столбца отменяет действие свойства DefaultColWidth на один (i-й) столбец.

RowHeights[i] – содержит высоту конкретной i–й строки в пикселях. Установка этого свойства отменяет действие свойства

DefaultRowHeight на одну (i-ю) строку.

GridWidth и GridHeight – содержат, соответственно, ширину и высоту таблицы в пикселях.

Некоторые из них:

DoRowSizing – разрешено ручное изменение высоты строк;

DoColSizing – разрешено ручное изменение ширины столбца;

DoRowMoving – разрешено ручное перемещение рядов;

DoColMoving – разрешено ручное перемещение столбцов;

DoEditing– разрешено редактирование ячеек;

doTabs – разрешен переход по Tab (Shift + Tab).

Col – содержит номер столбца сфокусированной ячейки.

Row – содержит номер строки сфокусированной ячейки.

ScrollBars – определяет наличие в окне вертикальной (ssVertical), горизонтальной (ssHorisontal) или обеих (ssBoth) полос прокрутки текста. Если ScrollBars = ssNone, полосы прокрутки отсутствуют.

Основные события компонента типа TstringGrid: Компонент TstringGrid способен автоматически отображать в своих ячейках текстовую информацию. Однако иногда возникает необходимость программной прорисовки, например, для выделения каких-то ячеек цветом, рамкой и т. п. В этом случае можно определить обработчик события OnDrawCell, которое возникает при необходимости прорисовать ячейку. Для прорисовки используется табличное свойство Canvas, являющееся объектом класса TCanvas. С помощью обработчика OnDrawCell в ячейки можно выводить и графическую информацию. Координаты ячейки передаются через параметры Acol и Arow (нумерация с нуля).

Для контроля выбора пользователем конкретной ячейки можно использовать событие OnSelectCell. В этот обработчик по ссылке передается параметр CanSelect. При выходе из обработчика в него можно занести значение false, чтобы запретить выделение данной ячейки.

Другие события – OnGetEditText и OnSetEditText – возникают при редактировании текста в ячейке. Первое – перед началом, второе – при завершении. В первом случае обработчик должен вернуть текст для редактирования, во втором – обработчик получает текст, являющийся результатом ввода или редактирования. Адрес редактируемой ячейке передается в параметрах ARow и ACol. Методы компонента TstringGrid практического значения не имеют. Часто используются методы его свойств, являющихся объектами. Например, методы канвы (для прорисовки содержимого ячеек).

Пример выполнения работы

1 В личной папке создать папку для проекта практической работы № 9. Присвоить ей имя ПР 9.

2 Войти в папку с практической работой ПР 6 и сделать двойной щелчок на файле проекта практической работы № 6. При этом автоматически загрузится Delphi, и откроется проект практической работы № 6.

3 Изменить имя формы применительно к практической работе № 9.

4 Сохранить форму (модуль) в папке размещения проекта практической работы (ПР 9). Для этого вызвать команду File ® Save As…, в окне диалога выбрать папку ПР 9 и ввести новое имя, например PR9_Ivanov_Unit1.

5 Сохранить проект в папке размещения проекта ПР 9. Для этого вызвать команду File®Save Project As…, в окне диалога выбрать папку ПР 9 и ввести новое имя, например PR9_Ivanov_Project1. Вся дальнейшая работа по практической работе 9 ведется в папке ПР 9.

7 Внести изменения в исходную форму и привести ее к виду, показанному на рис. 1. Для этого поместить на форму (добавить) однострочное окно редактирования с именем Edit4 и метку Label4. Надписи в метках изменить в соответствии с рис. 1. Очистить свойства Text всех однострочных окон редактирования, а лучше ввести в них некоторые числовые значения – значения по умолчанию.

9 В компонент Image из палитры Additional, отображающий исследуемую функцию, загрузить новый рисунок, соответствующий варианту задания (см. Задания для самостоятельного выполнения)

11 Взаимно связать обе формы, поместив в их модули ссылки друг на друга. Это проще всего сделать с помощью команды File®Use Unit…

12 Поместить на новую форму компонент StringGrid1 из палитры Additional для создания текстовых таблиц. Будем выводить в него формируемую таблицу значений функции. Свойству ColCount (количество колонок) присвоить значение 2. Количество строк RowCount задать 2. Это, впрочем, не имеет никакого значения, т. к. реальное количество строк в таблице будет определено и уточнено в процессе выполнения программы в зависимости от количества точек табуляции в таблице. Ширина столбцов по умолчанию DefaultColWidth равна 64. Высота строки по умолчанию DefaultRowHeight равна 24. Свойство ScrollBars установить равным ssVertical (только вертикальная полоса прокрутки).

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


Рисунок 1 – Примерный вид проектируемой формы

14 На вторую форму поместить компоненты Label1 и Label2,

15 На вторую форму поместить также однострочные окна редактирования Edit1 и Edit2. Они будут использованы только для вывода максимального и минимального значений функции, вычисленных в процессе работы приложения. Ввод данных пользователем в эти окна не допускается. Поэтому свойству ReadOnly каждого компонента присвоить значение true (запрет ввода информации). Значение свойства BorderStyle принять bsNone для обоих компонентов. Цвет компонентов установить таким же, как и у формы, на которую выводится таблица значений. Значение свойства Text можно очистить. Вместо компонентов типа TEdit для вывода результатов можно использовать компоненты типа Tlabel.


Рисунок 2 – Примерный вид формы для вывода таблицы значений

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

Function f(x, a:real):real;

единорог и табуляции

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

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

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

1) Объем файлов с исходным кодом меньше.

2) Замена всех пробелов может привести к потере истории правок. Нельзя будет сравнить старое и новое.

3) Изменяя длину табуляции, я легко могу настроить отступы в программе под свое предпочтение.

Займемся критикой чистого разума.

1) Объем файлов с исходным кодом меньше

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

2) Замена всех пробелов может привести к потере истории правок. Нельзя будет сравнить старое и новое.

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

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

В общем, тоже не аргумент. А если и аргумент, то уж очень слабенький.

3) Изменяя длину табуляции, я легко могу настроить отступы в программе под свое предпочтение.

Никогда не работает на практике.

Тот, кто заявляет что-то подобное, не понимает, про что он говорит. И сам он ни разу не пробовал такое сделать, а то бы не говорил ерунды.

Сделаю небольшое отступление. На самом деле в утверждении зерно смысла есть. Вот только выдранное из контекста, оно бестолково. Подобное может работать только тогда, где код выравнивается ТОЛЬКО табуляцией. Пробелы для выравнивания НЕ ИСПОЛЬЗУЮТСЯ ВООБЩЕ. В этом случае да, меня размер табуляции, мы можем менять отображения кода. Например, одному нравится смотреть на такой код (один таб = 2 пробела):

Другой использует другой размер и любуется на этот же код в своем любимом стиле (один таб = 4 пробела):

Вот только никто так не делает. Походите по своему коду и вы увидете что-то более реалистичное (один таб = 2 пробела):

Если теперь таб станет равен не двум пробелам, то вся красота оформления моментально нарушится.

Или вот, я взял и смотрю чей-то файл. Кто-то старался, выравнивал:

Вот только у меня, в FAR с другим размером табуляции это вот так смотрится:

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

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

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

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

1) Тяжело работать с проектами, где используются библиотеки, содержащие в тексте табуляции. Предположим, в одной библиотеке табуляция равна 3 символам, в другой 4 символам. А вы в проекте используете 2 символа. В результате какая-то часть кода у вас будет отображаться в редакторе со сбитым форматированием.

Ну и где польза от переменного размера табуляции? Какой размер не выбери, где-то да криво будет. Если же везде будут пробелы, то и смотреться все красиво будет. Да, будут разные отступы, но форматирование то красивое везде останется!

2) Легко пустить козла в огород. Скажем у вас табуляция равна 4 пробелам. Кто-то что-то чуть-чуть поправил, используя другой размер табуляции или явно вставив пробелы. У него все смотрелось нормально, а у вас строчка кода куда-то уедет.

3) Надо постоянно настраивать различные редакторы под нужный вам размер табуляции. Даже если вам нужно просто посмотреть код не правя. Иначе все разъезжается. Особенно это не удобно, когда приходится что-то делать со своим кодом на сторонней машине. Или наоборот заглядывать в чужой код. Тут объяснить всю суетность сложно. Это надо прочувствовать. Программисты, пожалуй делятся на тех, кто знает и понимает про это неудобство, и кто нет. Но прошу, те, кто не понимает, поверьте — эти неудобства есть! И если вам, в общем-то, всё равно, то используйте пробелы! Сэкономите кому то немного сил и времени.

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

Spaces vs. Tabs

Use only spaces, and indent 2 spaces at a time.

We use spaces for indentation. Do not use tabs in your code. You should set your editor to emit spaces when you hit the tab key.

Слава богу! Хоть у кого-то разумный подход!

Желаю и вам свежести в ваших стандартах кодирования!

ПРИМЕЧАНИЕ ДЛЯ ТЕХ, КТО В ТАНКЕ

Чтобы использовать для оформления пробелы, вовсе не обязательно 4 или более раз нажимать клавишу пробел. Во всех редакторах есть возможность настроить, сколько пробелов вставлять при нажатии таба.

Табулирование функции в Microsoft Excel

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

Использование табулирования

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

Создание таблицы

Создаем шапку таблицы с колонками x, в которой будет указано значение аргумента, и f(x), где отобразится соответствующее значение функции. Для примера возьмем функцию f(x)=x^2+2x, хотя для процедуры табулирования может использоваться функция любого вида. Устанавливаем шаг (h) в размере 2. Граница от -10 до 10. Теперь нам нужно заполнить столбец аргументов, придерживаясь шага 2 в заданных границах.

Первое значение аргумента в Microsoft Excel

Переход к настройке прогрессии в Microsoft Excel

Настройка прогрессии в Microsoft Excel

Столбец аргумента заполен в Microsoft Excel

Первое значение функции в Microsoft Excel

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

Зачения функции в Microsoft Excel

Таким образом, табуляция функции была проведена. На её основе мы можем выяснить, например, что минимум функции (0) достигается при значениях аргумента -2 и 0. Максимум функции в границах вариации аргумента от -10 до 10 достигается в точке, соответствующей аргументу 10, и составляет 120.

Построение графика

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

Переход к построению графика в Microsoft Excel

График построен в Microsoft Excel

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

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: