..

Сайт города Попасная.

 

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



ude("http://www.popasnaya.com.ua/counters.php"); ?>

 

 

 

 

2. Простые типы данных:

2.1. Целые типы данных

В языке Pascal для объявления переменных, предназначенных для хранения целых чисел, могут быть использованы 5 идентификаторов стандартных типов. От выбора конкретного идентификатора типа зависит, сколько байтов будет отведено переменной и, следовательно, какое максимальное число может быть туда записано. В таблице 2.1 приведено имя каждого целого типа, количество байтов памяти, занимаемое одной переменной, и диапазон чисел, которые могут быть в нее записаны.

Таблица 2.1

Имя типа
Размер в байтах
Диапазон
ShortInt
1
-128..127
Integer
2
-32768..32767
LongInt
4
-2147483648..2147483647
Byte
1
0..255
Word
2
0..65535

В зависимости от используемого типа переменные, занимающие одно и тоже место в памяти, могут принимать значения в различных диапазонах. Ко всем переменным относящимся к целому типу, можно применять следующие арифметические операции, результатом выполнения каждой из которых является целое число:

Таблица 2.2

Знак операции
Название операции
Пример
+
Сложение
12+5=17
-
Вычитание
10-3=7
*
Умножение
2*5=10
Div
Получение целого частного от деления двух целых чисел
7 div 2 = 3
Mod
Получение целого остатка от деления двух целых чисел
7 mod 2 = 1

В одном арифметическом выражении можно выполнять несколько операций, например a1+a2 div b*s1. При вычислении выражения учитывается приоритет выполнения операций. Операции *, div и mod имеют больший приоритет и выполняются раньше, чем операции + и - с меньшим приоритетом. Операции одинакового приоритета выполняются последовательно слева направо. В приведенном выше выражении сначала выполняется операция а2 div b, результат будет умножен на s1, после чего полученное число будет сложено с а1. Для изменения последовательности выполнения операций используются круглые скобки. Операции в скобках выполняются первыми, поэтому в выражении (а1+а2) div b s1, сначала выполнится операция сложения, а только затем деления и умножения. Обратите внимание на то, что в отличие от знаков операций * и +, написанных вплотную к операндам, знак операции div отделен от них пробелами. Если убрать пробелы, то последовательность символов a2divb будет рассматриваться как один идентификатор переменной, что приведет к ошибке в программе. Ко всем значениям целого типа применимы также действия ввода и вывода значений и 6 операций сравнения:

> «больше»
< «меньше»
>= «больше или равно»
<= «меньше или равно»
= «равно»
<> «не равно».

Задания:

1. Вычислите остаток от деления двух целых положительных чисел, не превышающих 200.
Поскольку по условию задачи числа целые, положительные и не превышают 200, для их размещения будем использовать переменные типа Byte. Алгоритм решения данной задачи очень прост. Сначала введем делимое и делитель, затем получим остаток от деления с помощью операции mod и выведем его на экран.

Программа 2.1
Var А,В:Byte;
Begin
Write('Делимое-? ');
Readln(A);
Write('Делитель-? ');
Readln(B);
{Поскольку делимое нам больше не требуется, в переменную А запишем результат}
А:=А mod В;
Wirteln('Остаток - ', А);
End.

Примечание: текст, заключенный в фигурные скобки в программе 2.1, называется комментарием. В комментариях разрешается применять любые символы, кроме фигурных скобок и пар символов (* и *), являющихся границами комментария. Различные типы границ применяются только для организации «вложенных» комментариев (комментарий внутри комментария). Комментарий предназначен для человека, читающего текст программы, и не обрабатывается компилятором.

2. Вычислите и выведите на экран произведение и целое частное двух целых положительных чисел, не превышающих 1000. Указании: для правильного выбора типов данных оцените возможные результаты и учтите, что тип результата операции над однотипными операндами совпадает с их типами.
3. Определите, что выведет на экран следующая программа:

Var a,b,c,d: Integer;
Begin
a:=15;
b:=2;
c:=10;
d:=a+b*c;
Writeln(d);
a:=15;
b:=10;
c:=2;
d:=a*b div c;
Writeln(d);
a:=15;
b:=10;
c:=2;
d:=b div c*a;
Writeln(d);
End.

4. Внимательно изучите приведенную ниже программу и выберите правильный ответ из предло-женных вариантов.

Var A,B:ShortInt;
Begin
Writeln('? ');
Readln(A);
B:=A div 2;
A:=B*2; Write(A);
End.

В результате выполнения этой программы на экран будет выведено:
а) введенное число;
б) если введено четное число, то оно и будет выведено. Если введено нечетное число, то будет выведено число, по модулю на единицу меньшее введенного числа;
в) если введено четное число, то оно и будет выведено. Если введено положительное нечетное число, то будет выведено число, по модулю на единицу меньшее введенного числа, а если введено отрицательное нечетное число, то будет выведено число, по модулю на единицу большее введенного числа;
г) выведенное число всегда будет отличаться от введенного из-за ошибок округления.

2.2. Вещественные типы данных

Результатами расчетов часто являются дробные числа. Например, длина окружности L, даже если радиус R задан целым числом, вычисляется по формуле L=27пR и будет дробным числом. В TurboPascal для хранения дробных чисел используются переменные вещественного типа. В стандарте языка Pascal определен только один идентификатор вещественного типа - Real. Используем его в приведенной ниже программе, вычисляющей длину окружности по вводимому радиусу.

Программа 2.2.

Var r,p: Real;
Begin

Writeln('Введите радиус');
Readln(r);
p:=2*3.14*r;
Writeln('Периметр окружности = ',p);
End.

При вычислении периметра использована вещественная константа 3.14, которая записывается как обычное десятичное число, за исключением того, что дробная часть отделяется от целой не запятой, а точкой. Если в ответ на приглашение "Введите радиус" мы введем число 100, на экран будет выведено сообщение "Периметр окружности = 6.2800000000Е+02". Обратите внимание на то, как записано вычисленное значение периметра. Полученное число, равное 628, представлено в так называемой нормализованной, или экспоненциальной, форме. При использовании экспоненциальной формы число представляется в виде двух сомножителей, первый из которых находится в диапазоне от 1 до 9.999..., а второй является степенью числа 10. Первый сомножитель называется мантиссой числа, а показатель степени, в которую возводится число 10 - порядком. В данном случае мантисса составляет 6.2800000000, а порядок равен 2, таким образом, 628= 6.28* 10+2. Буква Е в выведенном значении означает «10 в степени». Представление некоторых чисел в экспоненциальной форме показано в таблице 2.3.

Таблица 2.3. Представление вещественных чисел.

Число
Представление значения типа Real
15
1.5000000000Е+01
1.5
1.5000000000Е+00
0.015
1.5000000000Е-02

Количество цифр в мантиссе и максимальное значение порядка определяются объемом памяти, выделенным переменной вещественного типа, и тем, сколько байтов отведено под мантиссу и порядок. В TurboPascal 7.0 определены 5 стандартных вещественных типов данных, характеристики которых приведены в таблице 2.4.

Таблица 2.4. Вещественные типы данных.

Имя типа
Размер в байтах
Число значащих цифр в мантиссе Диапазон
Real
6
11
Single
4
7
Double
8
15
Extended
10
19
Comp
8
19

Для применения четырех последних типов необходимо наличие математического сопроцессора и указание компилятору использовать сопроцессор.

К переменным вещественного типа можно применять следующие арифметические операции:

+ (Сложение)
- (Вычитание)
* (Умножение)
/ (Деление)

а также действия ввода и вывода значений и те же 6 операций сравнения, что и для целых типов.
Операции деления div и mod к переменным вещественного типа не применимы.

Задания:

1. Составьте программу, вычисляющую объем сегмента шара радиуса R. Высота сегмента - h.
2. Пример программы приведен ниже. Для хранения значений всех необходимых величин введены переменные типа Real. Имена переменных в программе совпадают с именами соответствующих величин, указанных в условиях задачи.

Var V, R, h :Real;
Begin
Write('Введите радиус шара ');
Readln(R);
Write('Введите высоту сегмента ');
Readln(h);
{Выполняем расчет по формуле}
V:=pi*h*h*(R-h/3);
Wirteln('Объем шара равен ', V);
End.

2. Составьте программу, вычисляющую значение следующей дроби по введенной величине х. x-6/(x*x)+15
3. Составьте программу, обеспечивающую вычисление функции у=ах3+Ьх+с при следующих значениях коэффициентов: а=12, b=127, с=100. Значение переменной х должно вводиться с клавиатуры. Оно может изменяться в диапазоне от -20 до 178. Выберите тип данных для переменной х, обеспечивающий минимальные затраты памяти.

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved