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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: Alexa [Bot]


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

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