→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Pascal Структурированный тип - множество 
Автор Сообщение
Администратор
Аватара пользователя

Регистрация: 03.11.2007
Сообщения: 559
Откуда: Украина
Специальность:

Репутация: 6 [ ? ]
Сообщение Pascal Структурированный тип - множество
Используя тип множество, напечатать в порядке уменьшения все целые числа в диапазоне 1÷4900, которые можно представить в виде n2+2k2, но нельзя представить в виде 7ij+j+3 (n,k,i,j>0).
Текст программы
program Prg8;
{ http://nataliya.kiev.ua }
uses crt;
type t=set of byte;
ar=array[0..20]of t;
var p,q,v:byte;
i,j,k,u,s,f:integer;
a:ar;
begin
u:=4900;
v:=u div 255;
for i:=1 to v do
a:=[];
for i:=1 to u do begin
j:=i; k:=i; p:=0; q:=0;
while s<=u do
begin
s:=sqr(i)+2*sqr(j);
q:=s div 255;
p:=s mod 255;
include(a[q],p);
inc(j);
end;
while f<=u do
begin
f:=7*i*k+k+3;
q:=f div 255;
p:=f mod 255;
a[q]:=a[q]-[p];
inc(k);
end;
end;
clrscr;
for i:=u downto 1 do
if i mod 255 in a[i div 255] then write(i,' ');
readkey;
end.
Результат работы программы
4609 4233 3873 3529 3201 2889 2593 2313 2049 1801 1569 1353 1153 969 801 649 513 393 289 201 129 73 33 9 3

Теория к программе
Структурированный тип - множество
Множество - предоставляется конечными наборами элементов, которые помещаются в квадратных скобках и перечисленные через запятую. Элементы множества неупорядочены
(неупорядоченный набор разных элементов одного из базовых типов)
Пример:
[5,3,9] ~ [3,5,9] ~ [9,3,5] и т.д.
[] - пустое множество
Тип множества - определяет все возможные значения, то есть мощность множества, для определенного перечислимого типа
TYPE <идентификатор типа> = SET OF <тип компонента>;
<тип компонента> - базовый тип, обязательно перечислимый, не может иметь более как 256 возможных значений. Порядковые номера верхней и нижней границ не могут выходить за диапазон 0..255. Поэтому из стандартных целочисленных типов базовым может быть только тип BYTE.
Определение значения переменной типа множество выполняется через оператор предоставления:
<переменная типа SET>:=<описание множества>;
[] - пустое множество
[<группа элементов через запятую>]
[<выражения через запятую>]
При определении переменной надо придерживаться правил:
1) все элементы множества должны быть одного типа,
2) тип пустого множества соединяется с любым другим типом множества,
3) группа элементов X..Y определяет элементами множества все значения, которые принадлежат диапазону X..Y. Если X>Y - пустое множество
Операции над множествами
1) * - срез множеств АВ
2) + - объединение множеств АВ
3) - - разность множеств А\В
4) Сравнение множеств - результат - BOOLEAN:
= - полное совпадение
<> - полное несовпадение
>= - проверка на подмножество
<= - проверка на подмножество
IN - проверка на принадлежность элемента множеству
<выражение или отдельный элемент> IN <множество>
Все выражения сравнения (типа 4), как и другие сравнения, могут использоваться в условных операторах и операторах цикла.

[i]


11.11.2007 18:57
Профиль ICQ
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»