Табулирование функции паскаль примеры

Формулировка задачи:

Дана формула w=a*sqr(x)+b*x+c. Даны значения a=2.8, b=-0.3, c=4. Дано условие: промежуток значений от 1 до 2 с шагом 0.05.

Суть решения мне понятна, но я уперся в шаг с которым мне надо шагать по циклу и выводить значения. Ведь i:=1 – Integer, а шаг z:=0,05 – double, и компилятор ругается на несовпадение типов данных в цикле (когда я пытаюсь увеличить шаг). Помогите пож. Заранее благодарен. п.с. небольшой набросок:

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

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

11.1. Алгоритм табулирования

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

В общем виде алгоритм можно описать так:

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

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

3. в конце шага цикла значение управляющей переменной (обозначим ее x) изменяется оператором вида x:=x+d;, где d — заданный шаг по управляющей переменной.

Читайте также:  Фото кавказских мужчин 40 45 лет

В качестве примера составим таблицу синусов в пределах от 0 до π с шагом по аргументу 0.25. Обозначим аргумент как x, значение синуса от x обозначим как y. В простейшем случае программа табулирования может выглядеть так:

Цель работы

– получение навыков в решении отдельных фрагментов инженерных задач с использованием Turbo-Pascal;

– получение навыков в использовании операторов цикла при решении практических задач;

– получение навыков в написании, отладке и тестировании программ.

Краткие теоретические сведения

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

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

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

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

Формат

Repeat

until ;

В данной структуре , , …, –выполняемые операторы, составляющие тело цикла; – булевское выражение, истинность которого проверяется в конце цикла.

Оператор цикла repeat . . . until называют оператором цикла с постусловием.

Оператор цикла repeat . . . until организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла, состоящее из операторов , , …, ,выполняется хотя бы один раз.Выход из цикла осуществляется при истинности булевского выражения[2].

Формат

while do ;

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

Читайте также:  Что означает support apple com iphone restore

Оператор цикла 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. Контрольные вопросы

  1. Что такое цикл. Приведите пример алгоритма циклической структуры.
  2. Объясните работу циклического оператора Pascal repeat . . . until. Дайте рекомендации по его использованию.
  3. Объясните работу циклического оператора Pascal while . . . do. В чем особенности его использования в программе.
  4. Объясните суть задачи табулирования функции.

Лабораторная работа №4. Обработка массивов

Цель работы

– изучение разделов “Операторы цикла”, “Структурированные типы данных. Массивы”;

– получение навыков в использовании операторов цикла;

– знакомство с основными типовыми алгоритмами обработки данных массива.

Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы

Оцените статью
Добавить комментарий

Adblock detector