Математический факультет

Вид материалаДокументы

Содержание


1.2 Простые типы
Целые типы.
Символьные типы.
Подобный материал:
1   2   3   4   5   6   7   8

Программа в примере 1 содержит раздел описания переменных var и раздел операторов. Слово real, используемое для описания переменных x, y, z означает, что значения этих переменных должны быть вещественными числами.


Раздел операторов начинается со слова begin и заканчивается словом end, после которого стоит точка. Оператор writeln(Enter x,y); выводит на экран строку символов, расположенных между апострофами. При выполнении процедуры readln(x,y); после введения, например, чисел 2.3 и -5.41, переменным x и y будут присвоены значения: x=2.3 y=-5.41. Затем осуществляется переход к следующей строке экрана.

Оператор z:=(2*x–7.5)/(8*y+3.1) – 16.9; называется оператором присваивания. Этот оператор вычисляет значение выражения, стоящего справа от знака := , и присваивает вычисленное значение переменной, стоящей слева от знака := ( в данном случае переменная z получает значение -16.8278 )

Оператор writeln(' z= ',z:9:4); выводит на экран строку из двух символов z= , а затем вычисленное значение z. Формат вывода z:9:4 определяет, что на вывод всего числа на экране отводится 9 позиций, из них 4 позиции на вывод дробной части.

Оператор readln приостанавливает работу программы до нажатия клавиши Enter. Это нужно для того, чтобы просмотреть на экране результат работы программы. После просмотра нужно нажать клавишу Enter для завершения работы программы.

После успешной компиляции и запуска программы на выполнение (клавиша F9) на экране появится стандартное окно DOS, в котором вводятся исходные данные и выводится результат выполнения программы. В нашем примере содержимое окна DOS будет выглядеть следующим образом:

Enter x,y
    1. -5.41

z= -16.8278

Текст написанной нами программы после сохранения содержится в файле с расширением .dpr . Этот файл называют файлом проекта. В примере 1 это файл p1.dpr . Файлы с расширением .cfg и .dof, содержащие установки и опции проекта, создаются автоматически. Файл с расширением .exe – файл приложения или исполняемый файл. Он будет создан компилятором, если в процессе компиляции не обнаружено синтаксических ошибок. Исполняемый файл является автономным исполняемым файлом, т.е. для его работы не требуются какие-либо другие файлы. Его можно запустить на выполнение, осуществив команду Открыть в окне Проводника.


Задачи.

Составить программу для вычисления значения переменной y по формуле ( x – вводимое с клавиатуры вещественное число):

1. 2.


3. 4.


5. 6.


7. Найти площадь треугольника, если известны три его стороны a, b, c. (Значения a, b, c вводятся с клавиатуры).

8. Даны координаты двух точек на плоскости A(x1,y1) и B(x2,y2). Найти длину отрезка AB. (Значения x1, y1, x2, y2 вводятся с клавиатуры).


1.2 Простые типы

Простыми являются порядковые, вещественные типы и тип дата-время.

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

 ord(x) – возвращает порядковый номер значения данного выражения. Для целых типов возвращает само значение x, для логического 0 или 1, для символьного – значение в диапазоне от 0 до 255, для перечислимого – значение в диапазоне от 0 до 65535. Для типа­-дипазона результат зависит от свойств базового порядкового типа.

 pred(x) – возвращает значение, предшествующее значению данного выражения x.

 succ(x) – возвращает значение, следующее за значением данного выражения x.

 high(x) – возвращает максимальное возможное значение для аргумента x.

 low(x) – возвращает минимальное возможное значение для аргумента x.


Целые типы.

Тип

Диапазон значений

Размер (в байтах)

integer

-2147483648..2147483647

4

cardinal

0..4294967295

4

shortint

-128..127

1

smallint

-32768..32767

2

longint

-2147483648..2147483647

4

int64

-263..263-1

8

Byte

0..255

1

word

0..65535

2

longword

0..4294967295

4

Целые типы данных предназначены для представления целых чисел. Наибольшая производительность процессора и операционной системы достигается при использовании типов integer и cardinal.

К переменным целого типа можно применять операции целочисленного деления div и mod. Если a и b – переменные целого типа, то

a div b – это целая часть частного от деления a на b;

a mod b – это остаток от деления a на b.

Например, 9 div 2 = 4 9 mod 2 = 1

При применении к данным целого типа операций

* div mod + –

полученный результат будет также целого типа. То же можно сказать и о стандартных функциях abs и sqr. Операция деления / над целочисленными операндами даёт результат вещественного типа. Если в арифметическом выражении используются значения только какого-нибудь одного из целых типов, то результат выражения будет иметь такой же тип. Если же в выражении используются значения разных типов, то результат будет иметь тип integer. Для данных целого типа определены процедуры:

inc(i, k) – увеличивает значение i на k единиц; если k не задано, то на 1;

dec(i, k) – уменьшает значение i на k единиц; если k не задано, то на 1.

Пример 2. Дано целое четырёхзначное число n, введённое с клавиатуры. Найти сумму его первой и последней цифр.

program p2;

{$APPTYPE CONSOLE}

uses SysUtils;

var n : integer; s : byte;

begin

readln(n);

s:=n div 1000 + n mod 10 ;

writeln(' s= ',s); readln

end.


Задачи.

9. Найти сумму цифр данного целого трехзначного числа n.

10. Найти сумму цифр данного целого четырёхзначного числа n.

11. Дано двузначное число n. Получить число m, образованное перестановкой цифр исходного числа n. ( 39  93 ).

12. Дано двузначное целое число n. Получить число m, образованное приписыванием единицы в начале и в конце числа n. ( 65  1651 ).

13. Дано двузначное целое число n. Получить число m, образованное вписыванием цифры единица между цифрами числа n. ( 75  715 ).

14. Дано трёхзначное целое число n. Получить число m, образованное перестановкой цифр сотен и десятков числа n. ( 182  812 ).

15. Дано трёхзначное целое число n. Получить число m заменой на ноль средней цифры числа n. ( 973  903 ).


Символьные типы.

Тип

Размер (в байтах)

ANSIchar

1

Widechar

2

Char

1

Переменные символьного типа предназначены для хранения одного символа. Тип ANSIChar представляет собой так называемые Ansi-символы. Это символы, которые используются в операционных системах семейства Windows. Каждому символу соответствует число – код ANSI, что расшифровывается как American National Standard Institute. Из 256 имеющихся Ansi-символов первые 32 являются служебными, т.е. предназначены не для отображения информации, а для управления отображением информации. Код любого символа можно получить с помощью функции ord(x). Например, ord(Z)=90 ord(z)=122. Тип WideChar предназначен для хранения так называемых Unicode-символов, которые в отличие от Ansi-символов занимают два байта. Это позволяет кодировать символы числами от 0 до 65535. Первые 256 символов в стандарте Unicode совпадают с символами Ansi. Тип Char в Delphi5 эквивалентен типу AnsiChar и обеспечивает наибольшую производительность.

Стандартная функция chr(i) возвращает символ с порядковым номером i. Вместо chr(i) можно использовать оператор #. Например, chr(72) эквивалентно #72.

К значениям символьного типа можно применять операции отношения ( по коду) : < , > , <= , >= , <> , = . Например, z > Z .

Консольное приложение создаётся в операционной системе Windows, а выполняется под управлением операционной системы MS DOS, в которой используется таблица кодировки символов ASCII, отличающаяся от ANSI, начиная с 128 символа. В этой части таблицы находятся русские буквы. Поэтому вывести сообщение на русском языке в консольном приложении не удаётся. ( Для устранения этой проблемы в дальнейшем, накопив достаточно знаний, мы сможем написать функцию для перекодировки символов.)

Пример 3. Даны числа k1, k2, k3 из интервала [97, 122]. Напечатать слово, состоящее из символов с этими номерами.

program p3;

{$APPTYPE CONSOLE}

uses SysUtils;

var k1, k2, k3 : byte; c1, c2, c3 : char;

begin

readln(k1, k2, k3);

c1:=chr(k1); c2:=chr(k2); c3:=chr(k3);

writeln(c1, c2, c3);

readln

end.


После введения чисел 100 111 103 и нажатия клавиши Enter на экран будет выведено слово dog .