Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор while






Оператор цикла while (до тех пор, пока) имеет структуру более простую, чем оператор for, и работает несколько иначе. Синтаксис этого оператора следующий:

while (условие)

{

код

}

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

Если сравнивать оператор while с оператором for, то особенность первого заключается в том, что выражение обновления записывается в теле оператора, а не в заголовке. Часто забывают указать это выражение, и в результате цикл не завершается (программа зависает).

В следующем примере оператор цикла просто изменяет значение своего счетчика, выполняя 10 итераций:

Рассмотрим довольно традиционный при изучении операторов цикла пример вычисления факториала числа. Факториал числа n в математике обозначают как n!. Для n, равного 0 и 1, n! равен 1. В остальных случаях n! равен 2*3*4*... *n. Поскольку возможны два варианта исходных данных, потребуется использовать оператор условного перехода. Код, решающий эту задачу, выглядит следующим образом:

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

function имя_функции (параметры)

{

код

}

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

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

function Srectangle(width, height)

{

S = width * height

return S

}

Здесь сначала вычисляется площадь путем умножения значений параметров width и height, полученное значение присваивается переменной S, а затем оператор return возвращает значение этой переменной.

Решение квадратного уравнения. Требуется найти два числа xl их x2 –.такие, чтобы при подстановке любого из них в выражение ах2 + bх + с результат его вычисления был бы равен 0. Такие х1 и х2 называются корнями уравнения. В программах для решения задач такого рода часто значительную долю кода занимают различные проверки и анализ исходных данных. Организация же вычислений по конечным формулам из справочника – не самое сложное. Так, в рассматриваемой задаче в зависимости от значений коэффициентов а, b и с возможны различные частные случаи. Корни могут быть комплексными и действительными. Допустим, нас интересуют только действительные корни. Тогда корней может и не быть совсем, или быть только один, или два, одинаковые или различные. Таким образом, прежде чем мы дойдем до применения формулы, придется проанализировать, с каким именно случаем имеем дело.

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

 

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

 

 

 

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

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

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

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

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

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

 

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.