Табулирование функции паскаль примеры
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
Pascal: Занятие №3. Часть 3: Паскаль цикл for
Цикл со счетчиком в Паскаль (цикл for)
Цикл со счетчиком или, как он еще называется — цикл с параметром в Паскале служит для организации повторений (итераций) с заранее известным их количеством, т.е. когда точно известно, сколько раз должны выполниться операторы тела цикла.
Блок-схема, соответствующая циклу For:
Ну или если на простом примере:
Паскаль цикл For: синтаксис:
Прямое направление цикла (от меньшего значения к большему):
Обратное направление (от большего к меньшему):
Решение на Паскале:
Оператор в теле конструкции может быть одиночным или составным оператором.
Счетчик цикла или параметр цикла — это обычная переменная, которая может быть только порядкового (целочисленного, символьного, логического) или перечислимого типа.
При прямом направлении цикла счетчик в каждой итерации увеличивается на единицу, при обратном направлении — уменьшается на единицу.
Рассмотрим на решенном примере, как используется в Паскаль цикл for:
var i,n:integer; begin write (‘количество раз’); readln(n); for i:=1 to n do write(0); end.
Более детально цикл со счетчиком в Паскале рассмотрен в видеоуроке:
Решение в виде блок-схемы:
Решение на Паскале:
Решение:
Pascal: выход из цикла
Break и Continue
Для выхода из цикла предусмотрена процедура break в Паскале. Break досрочно прекращает выполнение циклов while , repeat и for .
Процедура Continue досрочно выходит из текущей итерации цикла, но, не завершая его, а переходя к следующей итерации.
Рассмотрим использование процедур выхода из цикла Continue и Break в Паскале (будем использовать цикл while ):
var a:integer; begin a:=1; while a a=64 происходит выход из текущей итерации ( continue ) и число не выводится на экран, а при a=256 выполнение цикла прерывается окончательно ( break ), так и не распечатав число 256.
Табулирование функции на отрезке с заданным шагом
* Следует учесть, что эта тема не обязательна для школьного курса информатики, в основном предполагается ознакомление студентами.
Алгоритм:
Для решения задачи в области определения функции вводится сетка – совокупность точек:
Тогда задача сводится к вычислению функции f в точках xi, то есть нужно вычислить:
var x, a, b, f, h: real; begin writeln(‘отрезок от . и до . ‘); readln(a, b); writeln(‘шаг’); readln(h); x := a; while x
var x, a, y, h: real; i:integer; begin writeln(‘ведите x’); readln(x); h:=0.22; a := 0.14*x; for i:=1 to 7 do begin y := (0.15*x + a)/(sqr(a)+sqr(x)); writeln(‘a =’, a, ‘ y = ‘, y); a := a + h; end end.
var xn, xk, yn, yk, f, hx, hy,x,y: real; begin writeln(‘отрезок для x от . и до . ‘); readln(xn, xk); writeln(‘отрезок для y от . и до . ‘); readln(yn, yk); writeln(‘шаг для x’); readln(hx); writeln(‘шаг для y’); readln(hy); x := xn; y := yn; while x Exit служит для завершения работы того программного блока, в котором она используется (условный оператор, цикл, процедура…). Если Exit вызывается внутри процедуры или функции, то завершается работа данной процедуры/функции. Если процедура Exit находится в основном блоке программы, то это приводит к ее завершению.
Процедура halt в pascal завершает работу программы.
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Лабораторная работа №3. Табулирование функций
Цель работы
— получение навыков в решении отдельных фрагментов инженерных задач с использованием Turbo-Pascal;
— получение навыков в использовании операторов цикла при решении практических задач;
— получение навыков в написании, отладке и тестировании программ.
Краткие теоретические сведения
При решении практических задач часто требуется вычислять значения функций, которых нет в списке стандартных, или требуется получить значение функции с заранее заданной точностью.
Пусть необходимо вычислить значения функции , если аргумент
изменяется на отрезке
с постоянным шагом h. Согласно условию задачи необходимо для значения аргумента
вычислить значение функции
, затем изменить аргумент
и снова вычислить значение функции
, затем изменить аргумент
и снова вычислить значение функции
и так до тех пор, пока значение аргумента не превысит значение
.
Описанная задача называется задачей табулирования функции.
При написании программы для решения подобных задач необходимо использовать оператор цикла.
Формат
Repeat
until ;
В данной структуре , , …, —выполняемые операторы, составляющие тело цикла; — булевское выражение, истинность которого проверяется в конце цикла.
Оператор цикла repeat . . . until называют оператором цикла с постусловием.
Оператор цикла repeat . . . until организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла, состоящее из операторов , , …, ,выполняется хотя бы один раз.Выход из цикла осуществляется при истинности булевского выражения[2].
Формат
while do ;
Оператор цикла while . . . do организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если булевское окажется ложным, т.е. примет значение логической константы False. Так как истинность булевского выражения проверяется в начале цикла, то тело цикла может не выполниться ни разу.
Оператор цикла while . . . do называют оператором цикла с предусловием.
Если в теле цикла необходимо выполнить два и более операторов, то они заключаются в операторные скобки begin . . . end; .
Пример программы на Pascal
Задача 3.
Вычислить значения функции для всех
, если значение аргумента изменяется с шагом
.
Program st3;
Var
x,y,x0,xk,h:real;
Begin
read(x0,xk,h);
writeln(’ x0=’,x,’ xk=’,xk,’ h=’,h);
x:=xo;
Repeat
y:=x*x;
writeln(‘x=’,x, ‘ y=’,y);
x:=x+h;
until x>xk;
End.
Задача 4.
Вычислить значения функции для всех
, если значение аргумента изменяется с шагом
.
Program st3;
Var
x,y,x0,xk,h:real;
Begin
read(x0,xk,h);
writeln(’ x0=’,x,’ xk=’,xk,’ h=’,h);
x:=xo;
while x 0 then
Begin
y:=1/x ;
writeln(‘x=’,x ,‘ y=’,y);
End
else write(‘решений нет’);
x:=x+h;
end;
End.
3.3. Содержание задания
Задание 3
— разработать блок-схему алгоритма циклической структуры для вычисления функции в соответствии с вариантом задания (см. приложение В, таб. В.1);
— написать и отладить программу в соответствии с блок-схемой;
— поставить программу на выполнение, отладить и протестировать ее;
— сравнить результаты ручного и машинного счета;
— задачи для самостоятельного решения представлены в приложении Д.
Содержание отчета
— блок-схема алгоритма решения задачи;
— результаты ручного и машинного счета;
3.5. Контрольные вопросы
- Что такое цикл. Приведите пример алгоритма циклической структуры.
- Объясните работу циклического оператора Pascal repeat . . . until. Дайте рекомендации по его использованию.
- Объясните работу циклического оператора Pascal while . . . do. В чем особенности его использования в программе.
- Объясните суть задачи табулирования функции.
Лабораторная работа №4. Обработка массивов
Цель работы
— изучение разделов “Операторы цикла”, “Структурированные типы данных. Массивы”;
— получение навыков в использовании операторов цикла;
— знакомство с основными типовыми алгоритмами обработки данных массива.
Табулирование функции одной переменной;
Циклы
Циклы применяются для решения самых разнообразных задач:
— определения экстремумов функций;
— вычисления сумм конечных и бесконечных рядов;
— вычисления определенных интегралов;
— решения алгебраических и трансцендентных уравнений численными методами;
— операций с матрицами;
— автоматизированный ввод и вывод данных.
Редкая вычислительная процедура обходится без использования циклов.
Под табулированием понимают конструирование или вычисление (составление) различных математических таблиц.
Наиболее широко этот метод использовался до появления вычислительной техники. Например, для вычисления значений тригонометрических функций, интегралов широко использовались таблицы, рассчитанные в научных центрах и представленные в виде таблиц. Табличные методы задания функций могут применяться и в малых вычислительных машинах для сокращения времени вычисления с использованием методов интерполяции и экономии памяти, необходимой для хранения сложных программ вычисления по точным формулам. Табулирование может применяться также для построения графиков функций.
Суть табулирования функции состоит в том, что весь диапазон изменения независимой переменной разбивают на равные интервалы и для каждого значения аргумента в граничных точках интервалов (узлах интерполяции) вычисляется значение функции одним из известных методов с требуемой точностью. Результаты расчетов представляются в виде таблицы, в одной из колонок которой приводятся значения аргумента, а в другой — соответствующее ему значение функции. Алгоритм расчета представляет собой цикл типа «До», так как число шагов обычно известно заранее, или сочетание циклов «До» и «Пока», если заданы требования к точности вычислений.
Пример 8.3.6. Составить таблицу значений функции y= x 2 +2x -4 для х, изменяющегося в диапазоне от 0 до 10 с шагом 0,5.
Решение. Введем обозначения: Xn – начальное значение аргумента, Xk – конечное значение аргумента, Dx – шаг приращения аргумента. Программа работает следующим образом (рис. 8.3.7):
Блок 1. Вводим исходные данные: Xn, Xk, Dx.
Блок 2. Присваиваем текущему значению аргумента х начальное значение Xn.
Блок 3. Вычисляем значение функции при текущем значении аргумента.
Блок 4. Выводим на экран или печать значения x и y.
Блок 5. Увеличиваем значение аргумента на величину шага.
Блок 6. Проверяем условие окончания цикла. Если условие выполняется, то есть текущее значение аргумента меньше конечного значения аргумента, то возвращаемся на блок 3 и повторяем вычислительную процедуру (блоки 3, 4, 5, 6).Если условие не выполняется, то конец программы.
Пример 8.3.7.Вычислить сумму и произведение чисел натурального ряда от 2 до 100.
Решение. Введем обозначение Xn – начальное значение аргумента, N – число членов ряда, Dx – шаг, S – сумма чисел, P – произведение чисел.
алг Вычисление суммы
В данном алгоритме (рис. 8.3.8) для вычисления суммы чисел переменной S до входа в цикл присваивается начальное значение нуль S=0, а для вычисления произведения переменной P присваивается начальное значение единица Р=1. В теле цикла проводится вычисление S: к текущему значению суммы прибавляется текущее значение переменной цикла S=S+i. Для вычисления произведения текущее значение произведения Р умножается на текущее значение переменной цикла – P=P*i.
Данный алгоритм не отвечает свойству массовости, так как не позволяет вычислять отдельно сумму четных или нечетных чисел. Чтобы обеспечит такую возможность, необходимо формировать запрос, что надо подсчитать. Кроме того, необходимо обеспечить контроль значения Xn, так как при вычислении произведения чисел Xn не может быть равным нулю, при вычислении суммы или произведения четных чисел начальное значение Xn должно быть четным, а при вычислении суммы или произведения нечетных чисел – нечетным.
Проверить четность числа можно с помощью функции MOD. Функция MOD вычисляет отношение двух целых чисел и возвращается значение 0, если остаток от деления равен нулю, то есть число четное, и возвращает значение один, если остаток от деления не равен нулю, то есть число нечетное. Например: 5 MOD 2, — результат 1).
Пример 8.3.8.Найти приближенное значение глобальных экстремумов функции y=F(x) на отрезке [A,B].
Решение. Задача решается путем табулирования функции с некоторым, достаточно малым шагом. На каждом шаге табулирования выполняется сравнение вычисленного значения функции с некоторой переменной, принятой за максимум и, если значение функции больше этой переменной, то переменной присваивается значение функции. Аналогично выполняется поиск минимума.
Введем две переменные YMax и YMin. В качестве начального значения для переменной YMax можно взять большое отрицательное число, например -1Е38, а для переменной YMin – большое положительное число — +1Е38. В качестве начальных значений переменных YMax и YMin можно принять также значение функции на одной из границ отрезка табулирования функции.
Присвоим переменным YMax и YMin значения, равные значению функции в точке А отрезка табулирования функции.
Алгоритм поиска минимума и максимума функции:
если y х для заданного значения х с точностью 0,0001.
Решение. Функцию e x , можно представить в виде ряда
, (8.3.3)
Данный ряд сходящийся. Под точностью в данном случае понимается значение отбрасываемого члена ряда. Полная ошибка может быть в несколько раз больше значения отбрасываемого члена ряда. Для знакопеременных рядов ошибка вычисления суммы сходящегося ряда не превышает значения отбрасываемого члена ряда.
Алгоритм вычисления функции реализуется с помощью цикла типа «Пока» (рис.8.3.9).
С точки зрения вычислительной математики блок 5 построен нерационально, так как на каждом шаге необходимо вычислять выражение x i /(i!), кроме того, при больших значениях i наступает переполнение разрядной сетки. Скорректируем математическую модель:
, (8.3.4)
В данной модели степень переменной x заменена ее произведением, а в числителе факториал заменен произведением ряда натуральных чисел от единицы до i. При такой модели значение текущего элемента будет равно значению предыдущего элемента умноженного на x и деленного на i.
Данный пример показывает, как от правильного построения математической модели зависит эффективность алгоритма.
Контрольные вопросы и упражнения
1. Назовите основные этапы жизненного цикла программы.
2. Охарактеризуйте основные этапы жизненного цикла программы.
3. Приведите определение алгоритма, назовите и поясните основные свойства алгоритма.
4. Что такое нисходящая разработка?
5. Что такое модуль, в чем заключается особенность модульного проектирования?
6. В чем состоит особенность структурного программирования?
7. Изобразите основные элементы схем алгоритмов.
8. Изобразите базовые схемы алгоритмов.
9. Опишите базовые структуры на алгоритмическом языке.
10. Изобразите структуру линейной программы.
11. Пусть S= -1, если x 0. Опишите решение задачи на алгоритмическом языке и с помощью схемы алгоритма.
12. Разработайте схему алгоритма для решения квадратного уравнения в области действительных чисел.
13. Протабулируйте функцию y=Sin(x)+1/x 2 на отрезке [-3,14; 3,14] и найти максимум функции. Описать решение задачи на алгоритмическом языке и с помощью схемы алгоритма.
14. Разработайте алгоритм для печати таблицы умножения.
15. Разработать алгоритм программы для суммирования штрафного времени при игре в хоккей.
16. Разработать схему алгоритма программы для печати результатов соревнования по плаванью. В заплыве плывут М спортсменов. На экран выводить список участников заплыва в порядке показанных результатов. На экран выводить также мировой и европейский рекорды, а также фамилии участников заплыва, превысивших эти рекорды.
17. Разработать схему алгоритма для определения дальности полета снаряда. Известна высота орудия, начальная скорость стрельбы и угол стрельбы.
Применение табулирования функции в Microsoft Excel
Табулирование функции представляет собой вычисление значения функции для каждого соответствующего аргумента, заданного с определенным шагом, в четко установленных границах. Эта процедура является инструментом для решения целого ряда задач. С её помощью можно локализовать корни уравнения, найти максимумы и минимумы, решать другие задачи. С помощью программы Excel выполнять табулирование намного проще, чем используя бумагу, ручку и калькулятор. Давайте выясним, как это делается в данном приложении.
Использование табулирования
Табулирование применяется путем создания таблицы, в которой в одной колонке будет записано значение аргумента с выбранным шагом, а во второй — соответствующее ему значение функции. Затем на основе расчета можно построить график. Рассмотрим, как это делается на конкретном примере.
Создание таблицы
Создаем шапку таблицы с колонками x, в которой будет указано значение аргумента, и f(x), где отобразится соответствующее значение функции. Для примера возьмем функцию f(x)=x^2+2x, хотя для процедуры табулирования может использоваться функция любого вида. Устанавливаем шаг (h) в размере 2. Граница от -10 до 10. Теперь нам нужно заполнить столбец аргументов, придерживаясь шага 2 в заданных границах.
- В первую ячейку столбца «x» вписываем значение «-10». Сразу после этого жмем на кнопку Enter. Это очень важно, так как если вы попытаетесь произвести манипуляцию мышкой, то значение в ячейке превратится в формулу, а в данном случае это не нужно.
Все дальнейшие значения можно заполнить вручную, придерживаясь шага 2, но удобнее это сделать с помощью инструмента автозаполнения. Особенно этот вариант актуален, если диапазон аргументов большой, а шаг — относительно маленький.
Выделяем ячейку, в которой содержится значение первого аргумента. Находясь во вкладке «Главная», кликаем по кнопке «Заполнить», которая размещена на ленте в блоке настроек «Редактирование». В появившемся списке действий выбираем пункт «Прогрессия…».
Открывается окошко настройки прогрессии. В параметре «Расположение» устанавливаем переключатель в позицию «По столбцам», так как в нашем случае значения аргумента будут размещаться именно в колонке, а не в строке. В поле «Шаг» устанавливаем значение 2. В поле «Предельное значение» вписываем число 10. Для того чтобы запустить прогрессию, жмем на кнопку «OK».
Теперь нужно заполнить столбец функции f(x)=x^2+2x. Для этого в первую ячейку соответствующей колонки записываем выражение по следующему шаблону:
При этом, вместо значения x подставляем координаты первой ячейки из столбца с аргументами. Жмем на кнопку Enter, чтобы вывести результат вычислений на экран.
Для того, чтобы произвести вычисление функции и в других строках, снова воспользуемся технологией автозаполнения, но в данном случае применим маркер заполнения. Устанавливаем курсор в нижний правый угол ячейки, в которой уже содержится формула. Появляется маркер заполнения, представленный в виде небольшого по размеру крестика. Зажимаем левую кнопку мыши и протягиваем курсор вдоль всего заполняемого столбца.
Таким образом, табуляция функции была проведена. На её основе мы можем выяснить, например, что минимум функции (0) достигается при значениях аргумента -2 и 0. Максимум функции в границах вариации аргумента от -10 до 10 достигается в точке, соответствующей аргументу 10, и составляет 120.
Построение графика
На основе произведенной табуляции в таблице можно построить график функции.
- Выделяем все значения в таблице курсором с зажатой левой кнопкой мыши. Перейдем во вкладку «Вставка», в блоке инструментов «Диаграммы» на ленте жмем на кнопку «Графики». Открывается список доступных вариантов оформления графика. Выбираем тот вид, который считаем наиболее подходящим. В нашем случае отлично подойдет, например, простой график.
Далее по желанию пользователь может отредактировать график так, как считает нужным, используя для этих целей инструменты Excel. Можно добавить названия осей координат и графика в целом, убрать или переименовать легенду, удалить линию аргументов, и т.д.
Как видим, табулирование функции, в общем, процесс несложный. Правда, вычисления могут занять довольно большое время. Особенно, если границы аргументов очень широкие, а шаг маленький. Значительно сэкономить время помогут инструменты автозаполнения Excel. Кроме того, в этой же программе на основе полученного результата можно построить график для наглядного представления.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Лабораторная работа №2 «Табулирование функции»
ЛАБОРАТОРНАЯ РАБОТА №2
Табулирование функции представляет собой достаточно простую по своей концепции математическую задачу, связанную с составлением некоторой таблицы, в которую заносят значения независимой переменной (аргумента) х и соответствующих им значения зависимой переменной (функции) у.
В качестве примера выполним табулирование функции следующего вида:
на множестве значений аргумента от 0 до 5 с шагом его изменения равным 0,5.
1. Выделите все ячейки ЭТ и установите ширину ее столбцов равной 9 единицам. Примените к ячейкам ЭТ шрифт «Times New Roman Cyr», начертание обычное, размер кегля 12 пунктов. Выберите масштаб отображения ЭТ равным 75%.
2. Введите в ячейку A1 строку «Лабораторная работа «Табулирование функции». В ячейки A3:A5 введите заголовки строк расчетной таблицы: «№ шага», «Аргумент» и «Функция» соответственно.
4. В ячейки B3:L3 введите методом автозаполнения номера шагов расчета от 1 до 11, а в ячейки B4:L4 – расчетные значения аргумента.
5. В ячейку B5 введите формулу расчета значения функции
=5*exp(-B4)*cos(5*B4) для значения аргумента, хранящегося в ячейке B4. Методом автозаполнения скопируйте эту расчетную формулу в правые соседние ячейки до L5 включительно.
6. Выполните форматирование заголовка таблицы, содержимого ячеек и их границ. Для этого:
6.1. Выделите ячейку А1 и примените к ней шрифт «Arial Cyr», начертание полужирное, размер кегля 12 пунктов. Выделите ячейки А1:L1 и выполните операцию центрирования заголовка по ширине таблицы, щелкнув мышкой по кнопке «Объединить и поместить в центре», расположенную на панели инструментов «Форматирование».
6.2. Выделите блоки ячеек А3:А5, B3:L3 и примените к ним шрифт «Times New Roman Cyr», начертание полужирное, размер кегля 12 пунктов.
6.3. Щелкните мышкой по стрелке расширения списка кнопки «Границы», расположенную на панели инструментов «Форматирование», и отбуксируйте панель «Границы» в поле ЭТ (для Вашего удобства работы с инструментами данной панели). Выделите блоки ячеек А3:L5 и примените к ним операции форматирования границ.
Правильный результат создания электронной таблицы, предназначенной для решения математической задачи, связанной с табуляцией средствами программы Excel функции указанного выше вида, представлен на рис.
Рис. Электронная таблица табулирования функции.
Выполните табулирование одного из вариантов функций на множестве значений аргумента от 0 до 5 с шагом его изменения равным 0,5.
Номер варианта должен совпадать с номером в списке вашей группы