Типы данных. Преобразование типов данных.

advertisement
Типы данных.
Преобразование типов данных.
№26622 В пачке 500 листов бумаги формата А4. За неделю в офисе
расходуется 1200 листов. Какое наименьшее количество пачек бумаги
нужно купить в офис на 4 недели?
Program Zadacha26622;
uses crt;
var a,b,c,d: real;
begin
Write ('1 пачка');
Read(b);
Write('листы за неделю');
Read(a);
Write ('сколько недель');
Read(c);
d:= (a/b)*c ;
Writeln(‘количество пачек=',d);
end.
int
round
trunc
Проанализируйте и поясните приведенную ниже схему:
Арифметические
операции
+
*
/
+
*
mod
div
Операции
отношений
Логические
операции
Данные
числового
типа
Вещественные
числа
Целые числа
Данные
символьного
типа
=
<>
>
<
>=
<=
Данные
логического
типа
Not
Or
And
xor
В чем сходство и различие использования констант и
переменных в программе?
имя
КОНСТАНТА
тип
значение
ПЕРЕМЕННАЯ
В каком из примеров допущены ошибки и какие именно?
Var
A,B: real;
C,D: integer;
E, F: char;
G, H: Boolean;
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
C:=A+25;
C:=round(A+25);
A:=C+2*D;
A:=B+E;
G:=(A+25) or H;
G:=(A>25) or (not H);
G:=A>25 and H;
C:=D+sqrt(25);
E:=’&’;
E:=’&’+F;
H:= ord(E)>D;
Ошибки:
a, d, e, g, h, j.
Имя
abs
Описание
модуль
arctan
арктангенс угла
cos
косинус угла
вещественный
cos x записывается cos(x)
exp
экспонента
вещественный
exp записывается exp(x)
frac
Результат
вещественный
Пояснения
|x| записывается abs(x)
вещественный arctg x записывается arctan(x)
дробная часть аргумента вещественный frac(3.1) даст в результате 0.1
int
целая часть аргумента
вещественный frac(3.1) даст в результате 3.0
ln
натуральный логарифм
вещественный
pi
round
значение числа п
округление до целого
sin
синус угла
вещественный
sin x записывается sin(x)
sqr
квадрат
целый
x2 записывается sqr(x)
sqrt
trunc
квадратный корень
целая часть аргумента
logex записывается ln(x)
вещественный
3.1415926536
целый
round(3.1) даст в результате 3
round(3.8) даст в результате 4
вещественный
записывается sqrt(x)
целый
trunc(3.1) даст в результате 3
Стандартные функции и процедуры
К целым величинам можно применять стандартные функции и процедуры,
перечисленные ниже.
Имя
Описание
abs
arctan
модуль
арктангенс угла
cos
exp
ln
sin
sqr
sqrt
succ
косинус угла
экспонента
натуральный
логарифм
проверка на
четность
предыдущее
значение
синус угла
квадрат
квадратный корень
следующее значение
inc
инкремент
dec
декремент
odd
pred
Результат
Функции
целый
вещественный
вещественный
вещественный
вещественный
логический
целый
вещественный
целый
вещественный
целый
Процедуры
Пояснения
|x| записывается abs(x)
arctg x записывается
arctan(x)
cos x записывается cos(x)
ex записывается exp(x)
logex записывается ln(x)
odd(3) даст в результате
true
pred(3) даст в результате 2
sin x записывается sin(x)
x2 записывается sqr(x)
записывается sqrt(x)
succ(3) даст в результате 4
inc(x) - увеличить х на 1
inc(x, 3) - увеличить х на 3
dec(x) - увеличить х на 1
dec(x, 3) - увеличить х на 3
1) Найдите значения переменных, если это возможно. Учтите, что число 7.0
является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю.
Операции MOD и DIV можно выполнять только над целыми числами:
a) A:=21 DIV 5
b) A:= 2 MOD 3
B:= 20 MOD 5
B:= 36.0 MOD 6
C:= 14 DIV 6.0
C:= 81 DIV 0
D:= 14 MOD 0
D:= 38 DIV 6
E:= 5 MOD 13
E:= 3 DIV 2
2) Найдите значения переменных, если это возможно:
a) A:=SQR(100)
b) A:=sqrt(9)
B:=sqrt(100)
B:=SQR(9)
C:=SQR(-10)
C:=SQRT(-9)
D:=SQRT(-10)
D:=SQR(-9)
E:=SQR(0.9)
E:=SQRT(0.0)
F:=SQRT(0)
F:=SQR(0.1)
3) Найдите значения переменных, если это возможно:
a) A:=ROUND(6.9)
b) A:=ROUND(15.39)
B:=ROUND(6.48)
B:=ROUND(15.8)
C:=TRUNC(9.5)
C:=TRUNC(-39)
D:=FRAC(9.5)
D:=FRAC(39)
E:=INT(9.5)
E:=INT(39)
F:=TRUNC(-17)
F:=TRUNC(5.6)
G:=FRAC(17)
G:=FRAC(-0.3)
H:=INT(-17)
H:=INT(1.25)
Задача. Дано расстояние в сантиметрах. Найти число полных метров в нем.
Program prim_4;
Var a,b:integer;
Begin
Write('введите расстояние в сантиметрах');
Readln(a);
b:=a mod 100;
Writeln(b,' метров ');
Readln;
End.
Получить число, образованное при перестановке цифр заданного числа.
Program prim_6;
Var n,x1,x2,m:integer;
Begin
Write('введите двузначное число');
Readln(n);
X1:=n mod 10; {выделяем из числа единицы}
X2:=n div 10; {получает число десятков в числе}
M:=x1*10+x2; {число единиц умножаем на 10,
получаем десятки}
Writeln(m);
Readln
End.
Дано трехзначное число, надо определить среднюю цифру числа.
Пусть а=246
b:=a div 10 = 24
b:=b mod 10 = 4
Или одним выражением b:=(a div 10) mod 10
Или по другому:
b:=a mod 100 = 46
b:=b div 10 = 4
Или одним выражением b:=(a mod 10) div 10
Download