Как пользоваться Поиском

поиск по сайту
логин

пароль

регистрация     
забыли пароль?

Помощь сайту

Лекции » Информатика, Логика

28.11.2011 в 23:13 Задачи к лекции
:
Pascal / Типы переменных

Типы переменных

Типы могут быть простыми (элементарными):

|Целые| |Символьные(Литерные)| |Вещественные|
а также сложными:
|Ограниченные| |Перечисляемые| |Булевские| |Строковые| Элементарные типы объявляются в разделе var. Сложные же объявляются в разделе types и используются для описания переменных в разделе var.

Целочисленные типы

 

Типы Диапазон допустимых значений
Shortint [-128, 127]
Integer [-32768, 32767]
Longint [-21 47483648, 21 47483647]
Byte [0, 255]
Word [0, 65535]

 

Выбор типа зависит от диапазона возможных значений переменной. Разнообразие поощряет разработку программ, экономно расходующих память. Это особенно важно в случае конструирования составных типов ( массивов, записей, файлов), состоящих из целочисленных компонент. Наверх


Ограниченные типы

 

Эти типы задаются самим программистом. Это во многих случаях повышает надежность программ. Пример:

type
Index = 1..25; 
var
i : Index; 
{переменная принимает значения}
{только в диапазоне от 1 до 25}
	

т.е. при попытке присвоения i : = 30 компилятор выдаст ошибку. Включение проверки на корректность - директива $R Наверх

 


Символьный (Литерный) тип

Представляют собой упорядоченное множество из 256 символов ASCII. Значение занимает 1 байт и представляет собой символ:

var
	c:char;
begin
	c:='c';
	c:=#100;
{т.е. равна 'd'если использовать}
{символы ASCII-таблицы}
end.
		

Наверх

 


Перечислимый тип

Некие константы последовательно нумеруются целыми числами, начиная с 0, и порядковый номер константы становится ее внутренним представлением.
Пример

Type Month=(January, February, 
March, April, May, June, July, 
August, September, October, 
November, December);
Var m: month;
...
for m:=September downto March do
 case m of
 March..May :...
 June, Septembr:...
 ...
 end;

Наверх

 


Булевский тип

Имеет 2 возможных значения - true и false. Для внутреннего представления используется число 0 (false) и 1 (true) размером 1 байт.

var
		f,t: byte;
...
t : = TRUE;
f : = (a mod 2);
{=TRUE,если a-четное число}
...		
	

Наверх

 


Вещественные типы

 

Типы Диапазон допустимых значений Значащие цифры
Real 2.9*10-39 .. 1.7*1038 11-12
Single 1.5*10-45 .. 3.4*1038 7-8
Double 5.0*10-324 .. 1.7*10308 15-16
Extended 3.4*10-4932 .. 1.1*104932 19-20
Comp -2*1063+1 .. 1.7*1063-1 19-20

Значения могут быть в привычном виде 0.234 или в виде мантиссы и порядка (если нет указания на форматирование представления):
3.141592=.3144592 E 01; 0.0001=.1 E -03; Тип real непосредственно обеспечивается компилятором Pascal. Доступ к другим типам обеспечивается через директиву {$N+} или {$E+}. Иначе будет выдаваться следующее сообщение - "Must be in 8087 mode to compile this". Первая включает режим обработки типа real сопроцессором, как extended; вторая - эмулирует работу сопроцессора. Пример ошибочного кода:

var
	R : single;
begin
	R : = 0.23;
end.

Наверх

 

Строковый тип

Данный тип сложный, может содержать текст, представляет собой набор литер.

var
 S1 : string[20];                 {S1 - строка длиной до 20 символов}
 S2 : string;                        {S2 - строка может содержать до 255 символов 
 один символ - служебный,   содержит информацию о длине строки
 идентична записи S: array[1..256] of char;}
...
 S1: = 'text';
 S2: = '2+2=4';
 ...
 S1: = '2002 год';
		

Данный тип может динамически изменять длину, имея похожую на массив структуру. См. раздел Пример

В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками.
- Length ( S : string ) : integer     Функция возвращает в качестве результата значение текущей длины строки-параметра.
- Concat ( si, [s2, ..., sn] : string ) : string      Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина результирующей строки превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция.
- Copy ( S : string;Index : integer; Count : integer ) : string Функция возвращает подстроку, выделенную из исходной строки S, длиной Count символов, начиная с символа под номером index.
- Delete ( var S : string; Index, Count : integer ) Процедура удаляет из строки-параметра S подстроки длиной Count символов, начиная с символа с номером Index. Insert ( Source : string;
- Insert ( Source : string; var S : string; Index : integer ) Процедура предназначена для вставки строки Source в строку s, начиная с символа Index этой строки.
- Роs ( Substr, S : string ) : byte Функция производит поиск в строке s подстроки Substr. Результатом функции является номер позиции подстроки в исходной строке.Наверх

 

  • Чтобы получить код внутреннего представления символьного, булевского или перечислимого типов, нужно к значению такого типа применить операцию преобразования. W := byte(S) ;

  • Несколько дополнительных замечаний по поводу перечислимых типов. Кроме операций сравнения, для значений перечислимых типов определены стандартные функции Pred и Succ. Они вызываются с одним операндом и возвращают значение, предшествующее значению операнда в множестве типа или следующее за ним. (Эти функции определены для всех дискретных типов, но для перечислимых они являются единственными допустимыми операциями). В версии 7.0 языка Turbo Pascal появились две новые стандартные функции Low и High, позволяющие получать граничные значения перечислимых (и некоторых других) типов. Эти функции очень удачно дополняют функции Pred и Succ.

(c) http://hosting.ulstu.ru/ip/

Комментарии к лекции (скрыть)

Комментариев нет.

Задачи к лекции

09.12.11 Написать программу "Вывод на экран дисплея: Ближайшей к солнцу планетой является Меркурий. Следующая......  Написать программу результатом выполнения которой будет следующий вывод на экран дисплея: Ближайшей...
комментариев: 1
03.12.11 Значение строковой переменной может иметь любую длину в процессе работы?...  В процессе работы текущее значение строковой переменной может иметь любую длину от 0 - пустая стр...
комментариев: 1
30.11.11 что будет результатом работы следующей программы?...  Результат сравнения двух различных вещественных типов не всегда очевиден.Это относится и к случаю...
комментариев: 1