Урок 3.
Типы данных. Функции.
Линейные программы.
Учитель: Смирнова Гузэль Хадиевна
Гимназия №122, г. Казань
Урок №3.
На предыдущем уроке вы познакомились с представителями вещественного и целого типов . На самом деле и тот и другой имеет несколько видов отличающихся диапазоном допустимых значений.
В следующей таблице приведены 5 стандартных целых типов
тип
значение
SHORTINT
формат
-128..127
INTEGER
-32768..32767
Знаковый
LONGINT
-2147483648.. –2147483647
Знаковый
BYTE
0..255
WORD
Знаковый
Беззнаковый
0..65535
Беззнаковый
Урок №3.
и 5 стандартных вещественных типов
тип
значение
REAL
Число значащих чисел
2.9*10 -39 ..1.7*10 38
SINGLE
1.5*10 -45 ..3.4*10 38
11..12
DOUBLE
7..8
5.0*10 -324 ..1.7*10 308
EXTENDED
3.4*10 -4932 ..1.1*10 4932
15..16
COMP
-2*10 63 +1..+2*10 63 -1
19..20
19..20
Арифметические выражения
Арифметические выражения строятся из имен переменных, констант, знаков операций и круглых скобок так, как это принято в математике. При вычислении их значений операции выполняются в порядке приоритета: *, /, DIV , MOD , а затем + и -. Операции одинакового старшинства выполняются слева направо.
Наряду с переменными и константами в арифметические выражения можно включать функции. При определении значения выражения прежде всего вычисляются значения входящих в него функций. В Паскале имеются следующие стандартные функции
Арифметические функции
функция
назначение
ABS ( X )
Тип результата
Абсолютное значение Х
ARCTAN ( X )
Арктангенс Х
COS ( X )
Тип аргумента
Вещественный
EXP ( X )
Косинус Х
е х
Вещественный
FRAC
( X )
Вещественный
Дробная часть Х
Вещественный
Арифметические функции
INT ( X )
Целая часть Х, обнуление дробной части
LN ( X )
Натуральный логарифм
PI
Вещественный
Значение PI =3.1415926535897932385
Вещественный
ROUND ( X )
Округление до ближайшего целого
SIN ( X )
Вещественный
Синус Х
Целый
SQR ( X )
Вещественный
SQRT ( X )
Квадрат Х
Квадратный корень Х
TRUNC ( X )
Тип арг-та
Вещественный
Отбрасывание дробной части
Целый
Арифметические операции.
В языке Pascal используется 6 арифметических операций.
а рифметическая операция ( а=14, b=4 ) результат
сложение (+) S:=a+b S=18
вычитание (-) S:=a-b S=10
умножение (*) S:=a*b S=56
деление (/) S:=a / b S=3.5
целочисленное деление S := a div b S =3
остаток от целочисленного деления S := a mod b S =2
Нет возведения в степень. Если степень целая, её заменяют умножением: а 3 ↔ S := a * a * a
Для возведения числа в произвольную степень используется следующее соотношение:
x y = ex р( y * ln ( x ))
Задача 1
Заданы два целых числа k и d . Используя только арифметические операции, найдите целую и дробную части от деления k на d .
program zadacha2_5;
var a,drobn:real;
k,d,cel:integer;
Begin
writeln(' введите два числа '); readln(k,d);
cel := k div d ; {целочисленное деление}
a := k / d ; {обычное деление}
drobn:=a-cel;
writeln(' целая часть - ',cel);
writeln ('дробная часть - ', drobn:0:2 );
Е nd .
Вызвать программу
Задача 2
Можно ли было в данной программе все переменные определить как integer или как real ? Попробуйте и проанализируйте.
Дано трёхзначное число. Чему равны его цифры?
Начало
Блок – схема
программы
Вывод
Введите число
ввод а
c1:=a div 100;c2:=(a mod 100) div 10;
c3:=a mod 10;
Вывод
С1 ,C 2, C 3
конец
Задача 3
program zadacha2_6;
var a,с1,с2,с3:integer;
Begin
writeln(' введите трёхзначное число '); readln(a);
c1:=a div 100;
c2:=(a mod 100) div 10; { или c2:=(a div 10) mod 10;}
c3:=a mod 10;
writeln(' первая цифра -',c1);
writeln ('вторая цифра -', c 2);
writeln ('третья цифра -', c 3);
Е nd .
Вызвать программу
Задача 4
Дано действительное число a . Используя только пять операций умножения получить a 15 .
program zadacha2_7;
var a,b,c,d,s:longint;
Begin
writeln(' введите число a'); readln(a);
b := a * a ; {вторая степень}
с:= b * b ; {4 степень}
d := c * a ; {5 степень}
s := d * d * d ; {15 степень}
writeln(' результат = ',s);
Е nd.
Вызвать программу
Задача 5
Заданы a , x , y . Вычислите S=| a | + x+ y 2
program zadacha2_8;
var a,x,y,s:real;
Begin
writeln('введите число x ');
readln(x);
writeln(' введите число y ');
readln(y);
writeln('введите число a ');
readln(a);
s:=abs(a)+sqrt(x+sqr(y));
writeln('s =',s);
End.
Начало
Блок – схема
программы
Вывод
Введите x,y,a
ввод x,y,a
s:=abs(a)+sqrt(x+sqr(y));
Вывод
s
Задача. Заданы a , x , y . Вычислите S=| a | + x+ y 2
конец
Вызвать программу
Задача 6
Задан радиус (целое число). Вычислить площадь круга и длину окружности.
program zadacha2_9;
var r:integer;
l,s: real; {подумайте, какой тип данных необходимо записать}
Begin
writeln('введите радиус окружности r ');
readln(r);
l:=2*pi*r;
s:=pi*sqr(r);
writeln('площадь круга = ',s,' длина окружности = ',l);
End.
Начало
Блок – схема
программы
Вывод
Введите радиус
ввод r
I:=2*pi*r
s:=pi*sqr(r)
Вывод
S,I
конец
Вызвать программу
Задача 7
Заменяя в программе функцию int() на функции trunc(), round(), frac() и правильно используя типы данных, заполните таблицу:
-3.7
I nt( x )
-3.2
Trunc( x )
-3
Round( x )
3.2
Frac( x )
3.7
3
Задача 7
program zadacha2_10;
var a:real;
d:real;
Begin
writeln(' введите число ');
readln(a);
d:=int(a);
writeln(' результат - ',d);
End.
Вызвать программу
Задача 8
Заданы x , y . Вычислите S = x y .
Воспользуемся формулой x y = ex р( y * ln ( x ))
program zadacha2_11;
var x,y:integer;s:real;
Begin
writeln(' Введите число ');readln(x);
writeln(' Введите степень ');readln(y);
s:=exp(y*(ln(x)));
writeln(x,' в степени ',y,' = ',s:9:3);
End.
Вызвать программу
Задания.
1. Запишите на Паскале следующие выражения
а)
с)
b)
e)
d)
f)
Задания.
2. Найдите значения переменных, если это возможно. Учтите, что число 7.0 является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю. Операции MOD и DIV можно выполнять только над целыми числами (Урок 2):
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
Задания.
3. Найдите значения переменных, если это возможно:
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)
Задания.
4. Найдите значения переменных, если это возможно:
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 )
5 . Запишите по правилам языка программирования следующие выражения:
Задания.
a )
d)
b )
g)
e)
c)
f)
h)
i)