Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Множество

Читайте также:
  1. Алмаз созерцательной молитвы имеет множество граней
  2. В храме располагалось также множество небольших, укромных помещений. В одно из них в половине десятого вошли напарники.
  3. Если у матери действительно не хватает молока, существует множество средств, чтобы увеличить его количество.
  4. Замечание 3.Ограниченное замкнутое множество Х называется компактным (компактом).
  5. И они стали подниматься вверх по лестнице – туда, откуда доносились музыка и множество голосов.
  6. Медитация — это драгоценный камень с множеством граней

В языке Паскаль типом-множеством называется множество-степень исходного множества объектов порядкового типа, т. е. множество всевозможных сочетаний объектов исходного множества. Число элементов исходного множества в Turbo Pascal не может быть больше 256, а порядковые номера элементов (т. е. значение функции Ord) должны находиться в пределах от 0 до 255.

Для задания типа-множества следует использовать зарезервированные слова set и of, а затем указать элементы этого множества, как правило, в виде перечисления или диапазона, например:

type

Alfa = set of 'A'..'Z';

Count = set of (Plus, Minus, Mult, Divid);

Ten = set of 0..9;

Number = set of '0'..'9';

Введя тип-множество, можно задать переменные или типизированные константы этого

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

var

CharVal: Alfa;

Operation: Count;

const

Index: Ten = [0, 2, 4, 6, 8];

Digit: Number = ['0'..'9'];

Примечание.

Так же как и для других структурированных типов, тип-множество можно ввести непосредственно при задании переменных или типизированных констант:

var

CharVal: set of 'A'..'Z';

Operation: set of (Plus, Minus, Mult, Divid);

const

Index: set of 0..9 = [0, 2, 4, 6, 8];

Digit: set of '0'..'9'=['0'..'9'];

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

Пример. Следующие структуры являются конструкторами множеств:

[Plus, Minus]

[1..К mod 12, 15]

[Chr(0)..Chr(31), 'A', 'В' ]

В каждое множество включается и т. н. пустое множество [ ], не содержащее никаких элементов.Конструктор множества можно использовать и непосредственно в операциях над множествами.

Для множеств определены следующие операции:

+ - объединение множеств;

- - разность множеств;

* - пересечение множеств;

= - проверка эквивалентности двух множеств;

<> - проверка неэквивалентности двух множеств;

<= - проверка, является ли левое множество подмножеством правого множества;

>= - проверка, является ли правое множество подмножеством левого множества;

in - проверка, входит ли элемент, указанный слева, в множество, указанное справа.

Результатом операции объединения, разности или пересечения является соответствующее

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

Пример.

Ввести строку символов, состоящую из латинских букв, цифр и пробелов.

Осуществить проверку правильности введенных символов.

program EXAMPLE13;

var

Str: string;

L: Byte;

Tru: Boolean;

begin

WriteLn('Введите строку');

ReadLn(Str);

L:= Length(str); {число введенных символов}

Tru:= L > 0; {true, если не пустая строка}

while Tru and (L > 0) do {проверка с конца строки}

begin

Tru:=Str[L] in ['0'..'9', 'A'.,'Z', 'a'..'z', ' '];

{проверка допустимости символа}

Dec(L) {предыдущий символ}

end;

if Tru then

WriteLn('Правильная строка') else

WriteLn('Неправильная строка')

end.

Файл

Тип-файл представляет собой последовательность компонент одного типа, расположенных на внешнем устройстве (в стандарте языка за основу взято расположение данных на магнитных лентах). Компоненты могут быть любого типа, за исключением типа-файла (или содержащего компоненты типа-файла) и типа-объекта. Число компонент в файле не объявляется. Для задания типа-файла следует использовать зарезервированные слова file и of, после чего указать тип компонент файла.

Пример.

type

Number = file of Integer; {тип-файл целых чисел}

Symb = file of 'A'..'Z'; {тип—файл прописных латинских букв}

Стандартный тип Text определяет тип-файл, содержащий символы, объединенные в строки. Следует иметь в виду, что тип Text в Turbo Pascal не эквивалентен типу file of Char. Введя файловый тип, можно определить переменные файлового типа:

var Fl, F2: Number; F3: Text; FF4: Symb;

В Turbo Pascal можно использовать файл без типа, при определении которого не указывается тип компонент. В этом случае работа с файлом осуществляется на физическом уровне в соответствии с внутренним форматом его данных. При этом реальные компоненты файла могут иметь и различный тип.

 

 

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

Язык программирования Pascal позволяет разделять программу на отдельные части, которые называются подпрограммами. Термин подпрограмма говорит о том, что она подобна и подчинена основной программе.

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

Подпрограммы решают три важные задачи, значительно облегчающие программирование:

избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты, т.е. сократить объём программы;

улучшат структуру программы, облегчая понимание при разборе;

уменьшают вероятность появления ошибок, повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.

Подпрограммы имеют структуру, аналогичную главной программе. Они содержат заголовок со специальным словом — признаком подпрограммы, имя и, при необходимости, списки передаваемых на обработку и получаемых из подпрограммы данных. Затем могут располагаться все имеющиеся в главной программе разделы описаний: меток, констант, типов и переменных. В этих разделах описываются данные, используемые только внутри подпрограммы и являющиеся промежуточными при её выполнении. Такие данные называются локальными. В подпрограмме могут участвовать переменные, описанные в главной программе. Эти данные называются глобальными, их значения и подпрограмма, и главная программа берут из общей памяти.

Подпрограммы могут быть стандартными, определёнными системой Pascal, и собственными, т.е. созданные отдельным пользователем.

Подпрограммы вызываются из определённого места программы, выполняют некоторые действия, после чего возвращают управление в место вызова.

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

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

Формат описания процедуры:

Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>?);

<Раздел описаний>

Begin

<Тело процедуры>

End;

Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы (описание процедур и функций - в том числе). Однако все описанные здесь объекты "видимы" лишь в этой процедуре. Они здесь локальны также, как и имена формальных параметров. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для использования.

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

Формат описания функции:

Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>?): <Тип результата>;

<Раздел описаний>

Begin

<Тело функции>

End;

В теле функции обязательно должна быть хотя бы команда присвоения такого вида: <Имя функции>:=<Выражение>;

Указанное выражение должно приводить к значению того же типа, что и тип результата функции, описанный выше.

Вызов процедуры представляет в программе самостоятельную инструкцию:

<Имя процедуры>(<Фактический параметр 1>, < Фактический параметр 2>?);

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

Приведем простейший пример использования подпрограммы.

Задача: "Найти максимальное из трех введенных чисел". Для решения воспользуемся описанием функции, принимающей значение максимального из двух чисел, которые передаются в нее в виде параметров.

Program Fn;

Var

A,B,C:Real;

Function Max(A,B:Real):Real; {Описываем функцию Max с формальными}

Begin {параметрами A и B, которая принимает }

If A>B Then Max:=A {значение максимального из них }

Else Max:=B {Здесь A и B - локальные переменные }

End;

Begin

Writeln('Введите три числа');

Readln(A,B,C);

Writeln('Максимальным из всех является ', Max(Max(A,B),C))

End.


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


<== предыдущая страница | следующая страница ==>
Строка типа string| Работа с файлами

mybiblioteka.su - 2015-2024 год. (0.011 сек.)