Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Program Sets;



Type

let='a'..'z';

Var

gl: set of let;

tx: string;

i: byte;

Begin

readln (tx); gl:=['a','e','i','o','u','y'];

i:=1;

Repeat

while tx[i] in gl do delete(tx,i,1);

tx[i]:=Upcase(tx[i]);

Inc(i)

until tx[i]='.';

Writeln(tx)

End.

2. Заполнить множество A путем ввода n значений

const n=20;

var

A: set of 1..200;

j, x: byte;

Begin

A:=[];

for j:= 1 to n

Do begin

Readln(x);

A:=A+[x]

End;

for x:= 1 to 200

Do if x in A then writeln(x);

End;

3. Вывести в порядке возрастания элементы множества. Пусть ввели последовательность 2,0,4,-2,1000,7,9,100,100,40.

const n=100;

const d:set of byte=[1]; – типизированная константа

type num=1..n;

Var

a, c: set of num;

b: set of 1..10;

x: integer;

i, k: byte;

Begin

k:= 10; {Заполнить множество a путем ввода k значений}

a:= [];

for i:= 1 to k

Do begin

Readln(x);

a:= a + [x]

End;

for x:= 1 to n do

If x in a then write(x);

Writeln;

End.

4. Что будет выведено на экран?

a:= [1,2,4,6,7]; b:= [1,2,4,7];

if a >= b then writeln('True');

a:= [1,4,7]; b:= [2,4,7,15];

c:= a * b;

a:= [1,2,4,6,7]; b:= [1,2,4,7];

c:= a+b;

a:= [1,2,4,6,7]; b:= [1,2,4,7,10];

c:=a-b; {соответствует логическому выражению A and not B}

с:=b-a; {соответствует логическому выражению B and not A }

Readln(x);

if x in [0..3,10..15,20..25] {Проверить принадлежность

then writeln('True'); одному из интервалов}

5. Проверить, является ли введенное с клавиатуры слово правильной записью идентификатора.

type letter= set of char;

Var

ident: letter;

wd: string[10];

I: byte;

fl: boolean;

Begin

Readln(wd);

fl:= false;

ident:= ['A'..'Z', 'a'..'z', '_'];

if not (wd[1] in ident)

then fl:= true {ошибка}

Else begin

ident:= ident + ['0'..'9'];

for i:= 2 to length(wd)

do if not (wd[i] in ident)

then fl:=true {ошибка}

End;

if fl then writeln('Неверный идентификатор!');

Readln

End.

Записи

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

Объявление типа записи выглядит следующим образом:

TYPE <имя типа>= RECORD <Список полей> End;

Здесь <имя типа> – правильный идентификатор; <Список полей> – список полей; представляет собой последовательность разделов записи, разделяемых точкой с запятой. Каждый раздел записи представляет собой один или несколько идентификаторов полей, отделяемых друг от друга запятыми. За идентификаторами ставится двоеточие и описание типа поля.

Как было указано в п. 3.1., запись может быть элементом массива.

П р и м е р:

Type

rec = record

a: integer;

b: real;

c: string[10]

End;

Var

elem: rec;

tabl: array[1..100] of rec;

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

Например, к полям вышеприведенной записи можно обратиться по именам:

elem.a, elem.b, elem.c, elem.c[5],

a к полям i -го компонента массива записей – по именам:

tabl[i].a, tabl[i].b, tabl[i].c, tabl[i].c[1].

Для сокращения обозначения полей записи (когда ведется работа с несколькими полями одной и той же записи) используется оператор присоединения:

WITH <переменная запись> DO <оператор>;

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

WIHT <переменная-запись_1>, …<переменная-запись_N> DO <оператор>;

П р и м е р ы





Дата публикования: 2014-10-25; Прочитано: 358 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...