русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Пользовательские типы данных.


Дата добавления: 2015-07-23; просмотров: 2362; Нарушение авторских прав


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

    1. Перечислимый типданных задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. При описании отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Например,
      Var Season: (winter,spring,summer,autum );
      Temp: (23,24,25,26);
    2. Интервальный типпозволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например, Var S:1..30;
      Сh:’a’..’f’;
    3. Указательный типыих значениями являются адреса памяти. В отличие от стандартного указательного типа Pointer, пользовательский тип определяет множество значений, которые указывают на динамические переменные опеределенного типа , называемого базовым типом. Указатель на какой-либо тип может быть описан до обьявления самого типа:
      Type PtStack=^Stack;
      Stack=array[1..40] of real;
    4. Процедурный типпозволяет обьявлять переменные, которым допускается присваивание имен процедур, функций и методов, а ткже передавать такие переменные и имена в качестве параметров. Описание процедурных типов имеет такой же синтаксис, как и обьявление процедур и функций:
      Type Tproc1=procedure (var x,y:real);
      Tproc2=function ( x:real):real;

Структурированные типы данных.
Составные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. К структурированным типам данных в Turbo Pascal относят: тип-массив (array), тип-множество (set), тип-запись (record), файловый тип (file), объектный тип (object), строковый тип (string);



Оператор присваивания :
Этот оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой расположено в левой части. Например, A:=В+0.5
Оператор безусловного перехода (goto).
Применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а другой, отмеченный меткой. Тогда в программе, перед оператором к которому нужно перейти ставится один или несколько символов (метка, которая должна быть описана в разделе описания меток).

Процедура ввода-вывода.
Процедура чтения Read и Readln обеспечивает ввод данных (чисел, символов, строк и т.д.) в программу во время её работы.
Процедура записи Write и Writeln обеспечивает вывод данных (чисел, символов, строк и т.д.) из программы на экран, принтер или во внешний файл.
Операторы Readln и Writeln осуществляют соответственно ввод и вывод с пропуском строки.

Условные операторы :
(Предназначены для изменения порядка выполнения инструкций программы, в соответствии с некоторым условием)
1.Оператор условия IF.
Он может принимать одну из следующих форм:

IF условие THEN оператор ;(неполная форма)

Условие задаётся переменной и её соотношением с некоторой константой или значением выражения. Если условие выполняется , то будет выполнен указанный оператор.

 

 

IF условие THEN оператор1 ELSE оператор2;(полная форма)

Добавление к конструкции служебного слова ELSEпозволяет выполнить определенные действия в случае, когда условие не выполняются.

 

2.Операторы цикла
Используется для повторения группы операторов определенное число раз.

Оператор цикла FOR..DO.

FORпеременная цикла:= начальное значениеТОконечное значение DO оператор;
Переменная цикла – всегда целого типа, указывает сколько раз должны повторятся операторы. Этот цикл будет повторен фиксированное число раз, причем первый раз с начальным значение переменной цикла, а в последний -с конечным её значением.
Пример, FOR I:=1 TO 3 DO I:=I+0.5

 

 

Оператор цикла REPEAT..UNTIL(с проверкой условия в конце цикла).

Применяется тогда, когда группа операторов должна выполнятся до тех пор, пока не выполнится некоторое условие.

REPEATгруппа операторов UNTILусловие;

 

 

ОператорциклаWHILE..DO(с проверкой условия в начале цикла).

WHILE условиеDOгруппа операторов;
Этот оператор выполняется так: проверяется условие, и если оно истинно, то выполняется оператор (или несколько операторов).

 

3.Оператор выбора case.
Позволяет сделать выбор из произвольного числа вариантов. Для этого используется переключатель, вычисленное значение которого определяет какой из операторов должен быть выполнен. Если ни одно из значений не верно, будет выполнен оператор следующий за служебным словом else.
caseпереключатель of
список1:оператор1;
список2:оператор2;

elseоператор;
end;

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

Процедуры:
Состоят из группы операторов, реализующих некоторую часть задачи и вызываемых по имени при необходимости в любом месте программы.
Procedure <имя> {формальные параметры};
“раздел описаний”
Begin
<основная часть процедуры– раздел операторов >
End;
Описание процедуры включает заголовок - <имя> и тело процедуры -<основная часть процедуры>. Заголовок состоит из зарезервированного слова Procedure , идентификатора (имени) процедуры и необязательного списка формальных параметров, с указанием типа каждого параметра.
Например,
Procedure Korrect; (процедура без формальных параметров)
Procedure Sort (a:integer); (а – формальный параметр)
Имя процедуры – идентификатор, уникальный в пределах конкретной программы. Тело процедуры представляет собой блок, по структуре аналогичный блоку обычной программы. Раздел операторов всегда начинается зарезервированным словом Begin, далее следуют операторы,отделенные “;”. Завершает раздел зарезервированное слово End и точка “;”.
Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в скобки.
Имя процедуры (список фактических параметров);

Функции:
Функция, определяемая в программе, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, идентификатор (имя) функции и необязательный список формальных параметров с указанием типа каждого параметра а также тип возвращаемого функцией значения:

Function имя (формальные параметры): тип результата;
Например:
Function Prov(x,y,t:integer):integer;
Function Logic:boolean;
Имя функции - уникальный в пределах программы идентификатор. Возвращаемый результат может иметь любой скалярный тип. Тело функции представляет собой блок, по структуре аналогичный блоку обычной программы:
Function имя (формальные параметры):тип результата;
раздел описаний
begin
раздел операторов
end;

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

Примеры программ.
Данная программа проверяет принадлежат ли два адреса одному городу и одной улице. Используется переменная типа запись с 4 полями: город, улица, дом, квартира.
Program test(input,output);
Type
adress=record
city:array [1..16] of char;
street:array [1..16] of char;
number:integer;
flat:integer;
end;
Var
adr1,adr2:adress;
Begin
{ввод данных}
read(adr1.city,adr1.street, adr2.city,adr2.street);
if (adr1.city=adr2.city) and (adr1.street=adr2.street) then
write(‘город и улица совпадают’);
else(‘город и улица несовпадают’);
End.

2. Пример программы ,
в которой вычисляется наименьшее общее кратное двух чисел А и В. Главная программа описывает массив чисел С, вводит исходные данные ,затем обращается к функции для вычисления НОК(наименьшего общего кратного). Которая вычисляет нужное значение используя формулу:
НОК(А,В)=A*B/ HOD(A,B)
где, обращается к другой функции вычисления НОД (наибольшего общего делителя).

Program test2(input,output);
Const N = 5;
Var
С: array[1..5] of integer;
A,B:integer;
function HOК (A, В:integer):integer;
begin
HOK:=A*B/ HOD(A,B);
end;
function НОD(А, В:integer):integer;
var
X,Y:integer;
begin
X:= A; Y: = В;
1:IF X = Y THEN HOD:=X;
IF X > Y THEN begin
X:= X – Y;goto 1;
end;
IF Y > X THEN begin
Y:= Y – X;goto 1;
end;
end;
Begin
FOR i= 1 ТО N READ (C[i]);
A:= С ([l])
FOR i = 1 TO N–1 begin B:=С[i + 1];
A:= HOK(A,B);
end;
writeln ("HOK="; A);
end.

 

 

8. Стандартные процедуры и функции и операции, применимые к целым типам данных

 

Операции: Сложение, вычитание, деление, умножение

Стандартные Функции: div целое деления и mod остаток от деления

 

 

9. Стандартные процедуры и функции и операции, применимые к символьным типам данных.

 

 

Символьный тип. Значениями символьного типа является множество всех символов клавиатуры компьютера.

Каждому символу приписывается целое число в диапазоне 0…255.

Фукции: Succ возвращает следующий символ

Pred возвращает предыдущий символ

Chr возвращает значение кода литеры

Ord возвращает значение литеры ( множество символов) по коду

Таблица кодов

10. Стандартные процедуры и функции и операции, применимые к порядковым типам данных.

К порядковым типам относятся целые, логические, символьный, перечисленный

 

Множество допустимых значений любого порядкового типа представляет собой упорядоченную последовательность , каждый элемент которой имеет свой порядковый номер. Порядковый номер представляется целым числом. Первое значение любого порядкового типа имеет номер 0, следующий номер 1 и т.д. Исключение составляют порядковые типы Integer, Shortint, Longint, где порядковым номером значений этих типов является само значение.

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

Сначала рассмотрим функции:

ord(x) -возвращает порядковый номер значения переменной x (относительно того типа, к которому принадлежит переменная х).

pred(x)-возвращает значение, предшествующее х (к первому элементу типа неприменима).

succ(x) -возвращает значение, следующее за х (к последнему элементу типа неприменима).

Теперь процедуры:

inc(x) – оператор инкремента, возвращает значение x:=x+1

inc(x,k) -возвращает значение x:=x+k.

dec(x) – оператор декремента,возвращает значение x:=x-1.

dec(x,k) -возвращает значение x:=x-k.

 

Для всех порядковых типов в Object Pascal существует операция задания типа для преобразования целых значений в значения соответствующих порядковых типов. Если Т — имя порядкового типа, а Х — целое выражение, то Т (X) воз-вращает значение Т с порядковым номером X.

 



<== предыдущая лекция | следующая лекция ==>
Строковый тип | КОТАНГЕНСЫ МАЛЫХ УГЛОВ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.504 сек.