Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!