Тема: Решение задач на работу с целым и вещественными типами данных.
Цель: Научиться применять основные операции над целым и вещественным типы данных.
Краткие сведения:
Таблица. Целые типы Pascal
Целочисленные типы данных
Тип данных
Диапазон значений
Формат чисел в памяти
Integer
-2 147 483 648-2 147 483 647
32 бита со знаком
Cardinal
0-4 294 967 295
32 бита без знака
Shortint
-128-127
8 битов со знаком
Smallint
-32 768-32 767
16 битов со знаком
Lohgint
-2 147 483 648-2 147 483 647
32 бита без знака
Int64
-2^63-2^63-1
64 бита со знаком
Byte
0-255
8 битов без знака
Word
0-65 535
16 битов без знака
Longword
0-4 294 967 295
32 бита без знака
Переменные целого типа могут принимать только целые значения. Такие переменные в программе описываются следующим образом: a, b, c: integer;
Здесь a, b, c… - имена переменных, integer – тип переменных. Транслятор, встретив такое описание переменных a, b, c, запоминает, что эти переменные могут принимать только целые значения и формирует соответственно этому команды программы.
Таблица. Операции над целыми типами, дающие в результате значение целого типа
Знак операции
Операция
+
Сложение
-
Вычитание
*
Умножение
div
Целочисленное деление (остаток отбрасывается). Деление без округления (целая часть частного).
mod
Деление по модулю (выделение остатка от деления). Остаток от деления: a mod b = a – ((a div b) * b).
Примеры работы некоторых операций и функций: Пример 1. Пусть a = 17, b = 5. Тогда a div b дает 3, a mod b дает 2 (остаток от деления),
sqr(b) дает 25. Пример 2. Пусть x = 4.7389. Тогда trunc(x) дает 4, round(x) дает 5. Пример 3. Выражение 4 * 21 дает результат целого типа, а 4 * 21.0 – вещественного, т.к. один из сомножителей вещественный.
Таблица. Вещественные типы в Pascal
Над действительными числами выполнимы операции сложения (+), вычитания (-), умножения (*) и деления (/). Результатом этих операций является также действительное число. Даже если хотя бы один из операндов вещественный, то результат этих операций также будет вещественным.
Операция деления (/) дает вещественный результат и в случае двух целых операндов. Например, 6 / 2 = 3.0.
Стандартная функция abs(x) – модуль x – от целого аргумента дает целый результат, а от вещественного – вещественный, как и sqr(x) – квадрат x.
Функции
sin(x) – синус x (x в радианах), cos(x) – косинус x (x в радианах), ln(x) – натуральный логарифм x, exp(x) – экспонента x, sqrt(x) – корень квадратный из x, arctan(x) – арктангенс x дают вещественный результат, как для вещественного, так и для целого аргумента.
Функция int возвращает в виде действительного значения целую часть аргумента, frac возвращает дробную часть аргумента.
Функции trunc и round возвращают результат целого типа. Первая отсекает дробную часть от аргумента, а вторая выполняет округление до ближайшего целого.
Функция random без аргументов возвращает равномерно распределенное случайное число от 0 до 1.
Не имеющая аргументов функция pi возвращает число Пифагора.
Задания:
Задание 1:
Какие из перечисленных идентификаторов являются недопустимыми и почему?
5Summa
Begin
D'Artanyan
Сумма
Summa Dohoda
A*B
Nomer.Doma
Задание 2.
Выберите для каждого значения наиболее подходящий тип данных из таблиц типов и укажите ниже.
'X'
'*'
-5
-999
'5'
'-5'
True
False
5.0
-5.0
Задание 3.
Предположим, что переменная R имеет вещественный тип, переменная I — целый, С - символьный и S — строковый. Определите результат операции.
a) R:=3.5 + 5.0 R=____ е) S:=C S=___
6) I:=2*5 I=_____ ж)C:=S C=___
в)С: = 'M' C=__________ з) R:=I R=____
г)S:=’Your name’ S=___________ u) I:=R I=____
d)R:=3+5 R=____ k)R:=10+I R=___
Задание 4.
Подберите подходящий тип данных:
Количество учеников в классе_______________________________
Площадь круга___________________________________________
Количество автомобилей в регионе___________________________
Количество автомобилей у одного владельца__________________
Первая буква фамилии_____________________________________
Количество жителей в государстве___________________________
Плотность населения в государстве___________________________
Произведение цифр двузначного числа________________________
Произведение цифр трехзначного числа_______________________
Фамилия сотрудника фирмы ________________________________
Заработная плата сотрудника фирмы_____________
Задание 5.
Записать выражение на языке программирования Pascal.
Задание 6.Найти значение выражения:
1) 25/2= _________________ 9) 220 div 10 mod 3 = ________
2) 25 div 2 = ______________ 10) 220 mod 10 div 3 = ________
3) 25 mod 2 = _________ 11) -16 mod 11 * 3 = __________
4) 15+21 div 2= ____ 12) 3 div (5+3) = __________
5) 2 div 3 = _______________ 13) 3 div 5 + 3 = _________
6) 2 mod 3 = __________ 14) (-19+9) div 5 -5 = ________
7) 11 mod 5 = _____________ 15) (16 mod 6) / (2 div 1) = ____
8) 14 mod (5 + 3) = ____ 16) 16 mod 6 / 2 div 1 __________