Студопедия

КАТЕГОРИИ:

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

Стандартные математические функции и процедуры Турбо-Паскаля




Лабораторная работа №1

Программирование линейных алгоритмов

   

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

Общие сведения:

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

Пример

Пример1: Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2)

Этапы решения задачи:

1. Математическая модель: расстояние на плоскости между двумя точками M1(x1,y1) и M2(x2,y2) высчитывается по формуле

 

2. Составим схему алгоритма

 


Уточним содержимое блока "Вычисление и печать расстояния"


Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.

program example1;

var x1, x2, y1, y2: integer;

d:real;

begin

write('x1= '); readln(x1);

write('y1= '); readln(y1);

write('x2= '); readln(x2);

write('y2= '); readln(y2);

d:=sqrt(sqr(x2-x1)+sqr(y2-y1));

writeln('d=',d);

end.

 

Доработаем программу, так чтобы она обладала некоторым интерфейсом:

program example1;

var x1, x2, y1, y2: integer;

d:real;

begin

writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');

writeln('Введите координаты двух точек:');

write('x1= '); readln(x1);

write('y1= '); readln(y1);

write('x2= '); readln(x2);

write('y2 ='); readln(y2);

d:=sqrt(sqr(x2-x1)+sqr(y2-y1));

writeln('d= ',d);

writeln('нажмите Enter для завершения работы программы');

readln;

end.

 

Контрольные вопросы:

1. Каковы назначение и возможности системы Borland Pascal?

2. Как запустить программу на трансляцию и выполнение?

3. Как записываются операторы начала и конца программы?

4. Из каких разделов состоит программа на языке Pascal?

5. В какой последовательности должны быть записаны разделы программы на языке Pascal?

6. Как записываются операторы вывода на экран в Pascal?

 

Задачи:



Задачи по вариантам

(выполнить все задачи)

 

1. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.

2. Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.

3. Определить время падения камня на поверхность земли с высоты h.

4. Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.

5. Треугольник задан координатами своих вершин. Найти:

o периметр треугольника;

o площадь треугольника.

6. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c.

7. Вычислить объем цилиндра с радиусом основания r и высотой h.

8. Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость V0

9. Вычислить площадь треугольника по формуле Герона, если заданы его стороны.

10. Определить координаты вершины параболы y=ax2+bx+c (a№0). Коэффициенты a,b,c заданы.

11. По данным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали.

 


 


Приложение: операции и стандартные функции

 

В Турбо-Паскале применяются следующие условные знаки и служебные слова для описания различных операций:

Приоритет операции Условный знак Выражение Название операции Тип переменных в выражении Тип результата выполнения опрации
     

ЛОГИЧЕСКИЕ ОПЕРАЦИИ

1 not not A Логическое "не" Логический целый Логический целый
2 and A and b Логическое "и" Логический целый Логический целый
3 or A or B Логическое "или" Логический целый Логический целый
3 xor A xor B Логическое исключающее "или" Логический целый Логический целый
     

МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ

2 * x*y Умножение Целый Целый при умножении
2 / x/y Деление Смешанный вещественный Целых чисел, иначе вещественный
2 div N div M Деление Цлый Целый
2 mod N mod M Остаток от деления Целый Целый
3 + x + y Сложение Целый вещественный Целый при операции с целыми числами, иначе вещественный
     

ОПЕРАЦИИ СРАВНЕНИЯ

4 = x=y Равно Число=число Логический
4 <> X<>y Не равно Строка=символ Логический
4 > x>y Больше Строка=символ Логический
4 < x<Y< td> Меньше Строка=символ Логический
4 >= x>=y Больше или равно Строка=символ Логический
4 <= x<=y Меньше или равно Строка=символ Логический

 

Отметим, что операции в скобках имеют высший приоритет, т. е. сначала выполняются операции в скобках, в том числе вычисление аргументов и значения функции. Операции одинакового приоритета выполняются слева направо, например a/c*b соответствует (a/c)*b.

Приоритет операции Условный знак Выражение Название операции Тип переменных в выражении Тип результата выполнения операции
     

СПЕЦИФИЧЕСКИЕ ОПЕРАЦИИ

1 @ @x Адрес переменной Любой Указатель
2 ch1 y ch1 n Сдвиг влево Целый Целый
2 shr y chr n Сдвиг вправо Целый Целый
2 * c * D Пересечение Множество Множество
3 + c + d Обьединение Множество Множество
3 - c - d Вычитание Множество Множество
3 + s + t Сложение Строка, символ Строковый
4 in e in d Вхождение в множество Элемент множество Логический

 

Под смешанным типом переменных в выражении подразумевается операция с целым и вещественным типом переменных.

Стандартные математические функции и процедуры Турбо-Паскаля

Наименование Функции Тип аргумента Тип значения Результат вычисления
 

МАТЕМАТИЧЕСКИЕ ФУНКЦИИ

abs(x) Целый вещественный Целый вещественный Абсолютное значение "x"
sin(x) Вещественный Вещественный Синус"x"рад
cos(x) Вещественный Вещественный косинус"x"рад
arctan(x) Вещественный Вещественный арктангенс "х" ( -Pi/2 < y < td )< 2 Pi>
Sqrt(x) вещественный вещественный квадратный корень из "х"(Ц х, где x > 0)
Sqr(x) Целый вещественный Целый вещественный значение "х" в квадрате ( х2 )
Exp(x) вещественный вещественный значение "е" в степени "х" ( ех, где e= 2. 718282. . . )
Ln(x) вещественный вещественный натуральный логарифм "х" ( х > 0 )
Frac(x) вещественный вещественный дробная часть "х"
Int(x) Вещественный Вещественный целая часть "х"
Random - вещественный случайное число ( 0 < =y< 1 )
Random(x) Word Word случайное число ( 0 < =y< x )
Succ(c) Порядковый Порядковый следующий за "с" символ
Pred(c) Порядковый Порядковый предшествующий "с" символ

 

Наименование процедуры Тип аргумента Тип значения Результат вычесления
 

МАТЕМАТИЧЕСКИЕ ПРОЦЕДУРЫ

Inc(x) целый целый Увеличивает "х" на 1 ( x:=x+1; )
Dec(x) целый целый Уменьшает "х" на 1 ( x:=x-1; )
Inc(x, n) целый целый Увеличивает "х" на n ( x:=x+n; )
Dec(x, n) целый целый Уменьшает "х" на n ( x:=x-n; )
 

ПРОЦЕДУРЫ ПРЕОБРАЗОВАНИЯ ТИПОВ ПЕРЕМЕННЫХ

Str(x, s) x-целый или вещественный s-строковый Последовательность символов "s" из цифр числа "x"
Val(s, v, cod) s-строковый v-целый или вещественный cod- целый Двоичная форма числа "v"последовательности "s" cod=0 (код ошибки)
 

ФУНКЦИИ ПРЕОБРАЗОВАНИЯ ТИПОВ ПЕРЕМЕННЫХ

Trunc(x) вещественный LongInt целая часть "х"
Round(x) вещественный LongInt округление "х" до целого
Odd(x) целый логический возвращает True если "х" - нечетное число
Сhr(x) Byte Char Символ ASCII кода "х"
Ord(c) Char Порядковый Byte LongInt ASCII код символа "с" Порядковый номер символа "с"

 

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

При вызове функция возвращает значение, которое необходимо присвоить переменной. Например, запись Y:= Sin(x); позволяет вычислить значение синуса угла "х", которое присваивается переменной "Y". Функции имеют высший приоритет, т. е. в выражении сначала вычисляется значение функции, а затем выполняются другие операции. Например: в выражении Y:= 5 * Cos(Pi + x); сначала вычисляется значение аргумента, затем значение функции, которое умножается на пять.

При вызове процедура производит определенные действия и может возвращать значения параметров. Процедура может не иметь параметров, например, для инициализации распределения случайных чисел вызывается процедура Randomize;. Процедуры могут включать параметры, которые необходимо задать при вызове процедуры и параметры, которые возвращают значения после выполнения процедуры. Например, при вызове процедуры Str(x, s); параметр "x" должен быть задан, а параметр "S" возвращает строковый вид числа "x". В некоторых процедурах параметры изменяют свое значение, Например, процедура Inc(x); увеличивает значение "x" на единицу, т. е. возвращает новое значение "x", что соответствует оператору x:=x+1; Таким образом, при вызове процедуры необходимо знать назначение и тип задаваемых параметров.

 

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 159.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...