Рейтинг@Mail.ru
Menu
Скачать картинки на телефон бесплатно.
Заставки для телефона, аватарки.
(Вырезать из фотографии)

Роза `Гренд Могул` Яхта `Алиса` Лесное озеро Музей `Пирогово` Белочка
Выберите рубрику (тему)

Тема: Структурированный тип - множество

Программа 8

Используя тип множество, напечатать в порядке уменьшения все целые числа в диапазоне 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[i]:=[];
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), как и другие сравнения, могут использоваться в условных операторах и операторах цикла.

Случайный анекдот

Решили инженеры выполнить мечту Билла Гейтса - поставили "Винды" на холодильник. Запустили - работает. Поставили внутрь кастрюлю борща. Глядь - сообщение:
- Обнаружено новое устройство "Кастрюля (4 л) красная". Будем устанавливать?
Дата: 20-11-2004   Автор: Admin   Подрубрика: Microsoft