Типы переменных. Простые числовые операции и функции
Операторы ввода-вывода данных.
В Паскале используется несколько типов представления числовых значений, на начальном этапе будут рассмотрены лишь некоторые из них:
integer – целые числа в интервале от -2147483648 до 2147483647
real – вещественные (реальные) – целые и дробные положительные и отрицательные числа
Описания констант в декларативной части производится перед переменными, и предусматривают определенную форму записи чисел (дополнительно тип константы не оговаривается): если константа записана с точкой, тип константы считается real. При записи значения константы используется знак равенства.
Пример описания констант:
const
c1=3.14159265; // с1 имеет тип real
с2=2; // c2 имеет тип integer
Переменная – это вид объектов в программе, предназначенный для хранения информации во время выполнения программы. По правилам Паскаля каждая переменная должна быть объявлена, т.е. описана в декларативной части программы.
Переменная не имеет какого-либо конкретного значения до тех пор, пока компьютеру не будет дано точное предписание, поместить что-либо определенное в соответствующую ячейку памяти.
На Паскале такого рода предписание обычно выражается предложением назначения, имеющим вид:
имя_переменной:=выражение_или_значение
например: a:=25; или rt:=a+b;
Выполнение такого предложения начинается вычислением выражения, стоящего справа от символа назначения (:=). Полученное значение потом помещается в переменную (присваивается ей), указанную слева от =:
Описание переменных следует за описанием констант. В описании переменных после двоеточия указывается тип переменной:
var a,d,c : integer;
b,f : real;
В Паскале возможны следующие действия (группы операций записаны в порядке приоритета):
1) Операция возведения в степень (в стандартном Паскале отсутствует) – функция i:=power(x,y), где i - результат, x - основание, y - степень;
В пределах одной группы приоритета порядок выполнения операций, если нет скобок, определяется последовательностью записи.
Если хотя бы одна из переменных, используемых в операциях умножения, сложения, вычитания относится к типу real, результат операции будет типа real.
Результат операции деления всегда типа real. Результат операций div и mod - integer.
Пример записи математической операции:
y=(а:b+c2-d)*c
в программе на Паскале это будет выглядеть так:
y:=(a/b+sqr(c)-d)*c;
Примечание. Квадрат числа sqr(c) можно (и проще!) записать как с*с
Oбратите внимание на использование знака операции присваивания:=
При проведении математических операций следует учитывать, что вещественные числа (real) представляются с некоторым приближением.
Некоторые стандартные математические функции
При использовании стандартных функций необходимо контролировать тип аргумента (возможные типы указаны в скобках).
a:=random(x) – случайное число (если аргумент не указан, то результат real – число в интервале от 0 до 1, если x целое число от 0 до 65535, то результат случайное целое число в интервале от 0 до х-1;
a:=abs(x) – модуль (абсолютная величина) x (real или integer);
a:=int(x) – целая часть числа x (число real, результат integer), округление не проводится, дробная часть отсекается;
a:=frac(x) – дробная часть числа x (число и результат real),
a:=round(x) – целое число, полученное в результате округления числа x по правилам математики
a:=sqr(x) – квадрат числа x (real, integer);
a:=sqrt(x) – квадратный корень из числа x (real, x>0);
a:=sin(x) – синус x (x задается в радианах, real);
a:=cos(x) – косинус x (x задается в радианах, real);
a:=arctan(x) – арктангенс x (real);
а:=power(x,y) – степень числа
pi – число пи.
Наберите следующую программу и разберитесь в ее работе:
Вычислить сумму цифр трехзначного числа a, введенного с клавиатуры. В программе каждая цифра определяется как количество сотен, десятков и единиц с помощью арифметических операций.
program summa;
uses crt;
var a, s, d, e, o : integer;
begin
writeln('Сумма цифр трехзначного числа');
write('Введите целое трехзначное число ');
readln(a);
clrscr;
{первый способ}
s:= trunc(a/100); {количество сотен}
d:= trunc((a-s*100)/10); {количество десятков}
e:=a-s*100-d*10; {количество единиц}
writeln('Сумма цифр трехзначного числа=', s+d+e);
{второй способ}
s:=a div 100; {количество сотен}
o:=a mod 100;
d:=o div 10; {количество десятков}
e:=a-s*100-d*10; {количество единиц}
writeln('Сумма цифр трехзначного числа=', s+d+e);
end.
Задачи для самостоятельного решения
1. Составить программу, чтобы компьютер запросил имя пользователя и его год рождения, затем подсчитал количество лет, дней и минут, прожитых, примерно, этим человеком. Результаты вывести на экран.
2. Составить программу для того, чтобы компьютер, используя генератор случайных чисел, записал на экране случайное число, значение которого лежит в пределах от 5 до 6.
3. Составить программу для того, чтобы компьютер, используя генератор случайных чисел, записал на экране случайное число, значение которого лежит в пределах от 5 до 10.