- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Тема 5 Реализация линейных алгоритмов
Самый простой вариант программы для ЭВМ – линейный алгоритм. При выполнении такой программы последовательность действий от начала программы до ее конца никогда не изменяется. На практике такие алгоритмы являются фрагментами более сложных программ.
Следующая программа производит пересчёт температуры из шкалы Цельсия в шкалу Фаренгейта. Словесное описание алгоритма программы можно представить так:
получить с клавиатуры значение температуры в градусах Цельсия;
пересчитать температуру из шкалы Цельсия в шкалу Фаренгейта
вывести на экран вычисленное значение температуры в градусах Фаренгейта
Пересчёт основан на том, что температура (F) = температура (С)1.8+32;
ниже приведён текст программы:
Program Temperature;
Uses crt;
Var
t,f:real;
begin
Clrscr;
Writeln('Пересчёт температуры из шкалы Цельсия в шкалу Фаренгейта');
Writeln('Введите температуру в градусах Цельсия');
Readln(t);
f:=t*1.8+32;
Writeln('Температура в градусах Фаренгейта =',f:6:1);
Readln;
End.
Наберите текст программы, сохраните на диске в своей папке под именем Temper.pas, скомпилируйте программу и запустите её на выполнение. Выполните пересчёт для следующих значений температуры по Цельсию: -273.15; -42; -17.78; 0; +25, +100.
Сложные выражения
Выражение состоит из операндов и операторов. Операндами выражений могут быть константы и переменные. Операторы находятся между операндами и обозначают действия, выполняемые над операндами. Значения переменных должны быть определены до их появления в арифметическом выражении. В табл.3.1 перечислены операторы и математические функции, используемые в арифметических выражениях TurboPascal.
При записи выражений между операндом и оператором, за исключением операторов div и mod, пробел можно не ставить. Операторы имеют разный приоритет. Наивысший приоритет имеют функции, далее – умножение и деление, наименьший – сложение и вычитание. Приоритет операторов влияет на порядок их выполнения. При вычислении выражения сначала выполняются операторы с более высоким приоритетом. Если приоритет операторов в выражениях одинаковый, то сначала выполняется тот оператор, который находится левее. Выражение записывается в одну строку. Порядок вычислений можно изменить с использованием круглых скобок:
Y:=(R*T+25)/(a*(b+c*(d+f*(x+g))));
При записи выражений, содержащих скобки, должна соблюдаться парность скобок, т.е. число открывающих скобок должно быть равно числу закрывающих скобок.
При записи сложных выражений можно использовать вспомогательные переменные для хранения результатов промежуточных вычислений. Это позволяет проконтролировать результаты промежуточных вычислений.
Таблица 3.1.
Операторы и математические функции языка Turbo Pascal
Оператор, функция |
Действие |
Пример записи на языке Паскаль |
Тип результата |
+ |
Сложение |
y:=a+b |
Как у операндов |
- |
Вычитание |
y:=ab | |
* |
Умножение |
y:=a*b | |
/ |
Деление |
y:=a/b |
Real |
div |
Деление нацело |
y:=a div b |
Integer |
mod |
Вычисление остатка от деления |
y:=a mod b |
Integer |
Abs |
Абсолютное значение аргумента |
y:=Abs(x) |
Real |
Sqr |
Квадрат аргумента |
y:=Sqr(x) |
Real |
Sqrt |
Квадратный корень аргумента |
y:=Sqrt(x) |
Real |
Sin |
Синус аргумента |
y:=Sin(x) |
Real |
Cos |
Косинус аргумента |
y:=Cos(x) |
Real |
Arctan |
Арктангенс аргумента |
y:=Arctan(x) |
Real |
Exp |
Экспонента аргумента |
y:=Exp(x) |
Real |
Ln |
Натуральный логарифм аргумента |
y:=Ln(x) |
Real |
Int |
Целая часть аргумента |
y:=Int(x) |
Real |
Trunc |
Целая часть аргумента |
y:=Trunc(x) |
Integer |
Round |
Округление до ближайшего целого |
y:=Round(x) |
Integer |
Как видно из таблицы, в языке TurboPascalотсутствуют следующие математические выражения:y=lgx;y=ax;y=tgx.
Для вычисления этих величин можно использовать выражения: y:=ln(x)/ln(10); y:=EXP(x*ln(a)); y:=sin(x)/cos(x)соответственно.
Аргумент для тригонометрических функций задаётся в радианах. Для пересчёта из градусов в радианы используется соотношение
Радианы = градусы (180)
Например, чтобы вычислить sin45надо записатьsin(45*pi/180).