1. Имя функции записывается латинскими буквами.
2. Аргумент функции записывается в круглых скобках после имени функции.
3. Аргументом функции может быть: константа, переменная или арифметическое выражение.
Например:
ax2 + bx + c записывают так a*x*x +b*x + c
записывают так sqrt(b*b – 4*a*c)
записывают так (a + c – 2*b)/(3-x)
Рассмотрим примеры использования арифметических действий:
Правильно:
VAR a,b: integer;
r,s: integer;
............................
r:=a div b; {r=3 при a=7, b=2}
r:= a mod b; {r=1 при a=7,b=2}
s:=a*b;
s:=a div b;
Неправильно:
VAR a,b: integer;
r: integer;
r:=a/b; {если результат объявлен как целочисленный, нельзя использовать наклонную черту деления}
VAR a,b: real;
r: integer;
.................
r:=a div b; { нельзя использовать операцию div для вещественных чисел}
r:=a mod b; { операция mod используется только по отношению к целым числам}
VAR a,b: integer;
r: real;
....................
r:=a div b; {r должно быть целым}
Слева по отношению к оператору присваивания должен стоять более широкий тип.
VAR a: integer;
b: real;
c: real;
...........
c:=a+b {правильно}
a:=c+b; {неправильно}
Примеры: 23 div 5 = 4 23 mod 5 = 3
|
|
16 div 4 = 4 16 mod 4 = 0
5 div 8 = 0 5 mod 8 = 5
37 div 10 = 3 37 mod 10 = 7
Определить количество слив, если их делили на 5 человек:
write (‘Кол-во слив = ');
readln (a);
b:= a mod 5;
writeln(‘Осталось ‘,b,’ слив’);
Определить сколько попугаев уберется на удаве, если длина удава b, а длина попугая а.
write ('a='); readln (a);
write ('b='); readln (b);
c:= b div a;
writeln ('Поместится', с, ‘попугаев');
В любом выражении, если один или более операндов имеют вещественный тип, то результат будет так же вещественного типа. Операнды операторов div и mod всегда должны быть целого типа.
При вычислении выражений принят следующий приоритет: 1) *, /, div, mod; 2) +, -. порядок выполнения операций регулируется с помощью скобок. В Turbo Pascal нет операции возведения в степень.
Задание: Внести в программу составленную ранее необходимые изменения для высчитывания целой части от деления и остатка от деления первого числа на второе и вывода этих результатов на экран. а так же вывода на экран информации вида: a=b*c +r, где a – первое число, b – второе число, c – частное, r – остаток.
Целочисленное деление.
Задачи:
1. Дано расстояние в сантиметрах. Найти число полных метров в нем.
2. Дана масса в килограммах. Найти число полных тонн в ней.
3. Дан прямоугольник с размерами 543×130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него.
4. С клавиатуры вводится двухзначное число, вычислить сумму его цифр.
5. С клавиатуры вводятся трехзначное (четырехзначное, пятизначное, шестизначное) число, вычислить сумму его цифр.
6. С клавиатуры вводится трехзначное число, необходимо получить новое число приписав к исходному справа число 45.
7. С клавиатуры вводится четырехзначное число, необходимо получить новое число приписав к нему слева цифру 9. Найти остаток от деления полученного числа на 3.
|
|
8. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в начале. Найти полученное число.
9. Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа.
10. Дано число а1а2а3а4а5а6. Получить новое число следующего вида: а6а4а2а1. для полученного числа найти целую часть от деления на 8 и остаток от деления на 111.
11. Даны трехзначное и четырехзначные числа: а1а2а3 и b1b2b3b4. Получить новое число вида: b1a1b2a2b3a3b4. У нового числа найти целую часть и остаток от деления на число 35.
Операции отношений:
< - меньше;
> - больше;
= - равно;
<> - не равно;
>= - больше или равно;
<= - меньше или равно.
Функции:
Арифметические функции:
abs (x) – модуль числа х, тип результата совпадает с типом аргумента;
sqr (x) – квадрат числа х, тип результата совпадает с типом аргумента;
sqrt (x) – квадратный корень из числа х, аргумент и результат должны иметь вещественный тип;
Пример: вычислить гипотенузу прямоугольного треугольника, если длина катетов a и b.
write ('a='); readln (a);
write ('b='); readln (b);
c:= sqrt (sqr(a) + sqr(b));
writeln ('c=', с:5:2);
Вычислить модуль разности чисел a и b.
write ('a='); readln (a);
write ('b='); readln (b);
c:= abs (a - b);
writeln ('модуль=', с);
Тригонометрические функции:
sin (x) – синус числа х, выраженного в радианах, аргумент и результат должны иметь вещественный тип;
cos (x) – косинус числа х, выраженного в радианах, аргумент и результат должны иметь вещественный тип;
arctan (x) – арктангенс числа х, результат будет выражен в радианах, аргумент должен быть вещественного типа;
Пример: вычислить синус, косинус, тангенс и котангенс угла 30°.
a:=Pi/180*30;
s:=sin(a); c:=cos(a);
t:=s/c; ct:=c/s;
Экспонента и логарифм:
exp (x) – ех, аргумент и результат должны иметь вещественный тип;
ln (x) – натуральный логарифм числа х, аргумент и результат должны иметь вещественный тип;
exp (b*ln(a)) – степень числа, где а основание, а b показатель степени, т.е. ab.
Примеры вычисления степени:
(x-3)7 exp(7*ln(x-3))
2x exp(x*ln2)
exp(1/3*ln(x))
Преобразование типов:
Round (x) – перевод дробного числа в целое с округлением;
Tranc (х) – перевод дробного числа в целое отбрасыванием дробной части.
Примеры преобразования типов:
a1:=Round(2.34); а1=2
a2:=Trunc(2.34); а2=2
b1:=Round(8.51); b1=9
b2:=Trunc(8.51); b1=8
c1:=Round(-3.7); c1=-4
int (x) – целая часть числа х, аргумент и результат должны иметь вещественный тип;
frac (x) – дробная часть числа х, аргумент и результат должны иметь вещественный тип;
Изменение аргумента:
inc (x) – увеличение числа х на единицу, аргумент и результат должны быть целого типа;
inc (x, a) – увеличение числа х на число а, оба аргумента и результат должны быть целого типа;
dec (x) – уменьшение числа х на единицу, аргумент и результат должны быть целого типа;
dec (x, a) – уменьшение числа х на число а, оба аргумента и результат должны быть целого типа.
Генерация случайных чисел:
Randomize – установка датчика случайных чисел в исходное состояние;
Random - формирование случайного дробного числа из диапазона от 0 до 1.
Примеры получения дробных случайных чисел:
a:=Random; 0<a<1
x:=Random+10; 10<x<11
y:=5*Random; 0<y<5
c:=10*Random-5; -5<c<5
b:=7*Random-3;
-3<b<4
Random (n) – формирование случайного целого числа из диапазона от 0 до n-1, где n – натуральное число.
Примеры получения целых случайных чисел:
a:=Random(3); 0, 1, 2
x:=Random(10); 0, 1, 2,…,9
y:=Random(5)+3; 3, 4, 5,…,7
c:=Random(8)-5; -5, -4,…,2
Смоделировать 5-кратное бросание игрального кубика:
randomize;
for i=1 to 5 do begin
x:=random(6)+1;
writeln(i,‘ бросок: ',x,’очков’);
end;
Смоделировать 10-кратное бросание монеты:
randomize;
for i=1 to 10 do
if random(2)=0
then writeln(’орел’)
else writeln(’решка’);
Приоритетность выполнения действий:
1.Выражение в скобках
2.Функции
3.Знак числа (+,-), not, @
4.*, /, div, mod, and, shl, shr
5.+, -, or, xor
|
|
6.=, <>, <, >, <=, >=, in
Задание: Составить программу, которая по введенным значениям чисел а и b, высчитывала бы и выводила бы на экран значения следующих функций:
a) y = 7a2 – 3 a + 6;
b) ;
c) y = a3 – 2,5ab + 1,78a2 – 12,5b + 1;
d) y = 3,56(a + b)3 – 5,8b2 + 3,8a – 1,5;
e) ;
f) ;
g) .
Вывод на экран организовать в следующем виде: у1(1.22, 0.45)=…и т.д.