ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Безліч
         

     

    Інформатика, програмування

    Безліч

    Поняття множини в Паскалі дуже близько до математичного визначення: безліч - це сукупність однотипних неіндексірованних об'єктів. Безліч описуються в вигляді:

    SET OF тип,

    де тип - базовий для цього безлічі тип, тобто тип елементів множини. Базовий тип повинен бути порядковим типом потужністю не більше 256 (тобто допускаються не більше 256 різних значень), причому порядкові номери (згадаймо функцію ORD) найменшого та найбільшого значень повинні лежати на відрізку [0,255]. Таким чином, базовим типом для безлічі можуть бути: типи Char, Boolean, Byte і все похідні від Byte інтервальні типи. Розмір об'єкту типу "багато" можна визначити за формулою: розмір = (потужність-1) DIV 8 + 1, тобто множини -- досить компактні об'єкти, найбільше безліч має розмір 32 байти. Неіменованние константи типу безліч записуються у вигляді:

    [підмножина, підмножина, ... ],

    де підмножина - це або окреме значення, або діапазон. Діапазон записується як початкове значення .. кінцеве значення. Будь-яке зі значень може бути як константою, так і вираженням відповідного типу. Запишемо, наприклад, константу-безліч, що містить числа 0, 1, 2, 3, 4, 8, 12, 13, 14, 15, 16, 22:

    [0,1,2,3,4,6,12,13,14,15,16,22]

    або

    [0 .. 4,6,12 .. 16,22]

    або

    [0 .. 2,3 .. 4,6 .. 6,12,13 .. 16,22]

    або

    [22,13 .. 15,1 .. 6,0,12,16]

    Всі ці константи повністю еквівалентні, порядок запису елементів абсолютно довільний. Допускаються порожні множини, вони записуються так: []. Опишемо кілька змінних і типізованих констант:

    TYPE MySet = SET OF 0 .. 111;

    VAR a: SET OF Char;

    b: MySet;

    CONST c: MySet = [];

    d: SET OF Char = [ 'А' .. 'Я'];

    e: SET OF Boolean = [FALSE];

    До множинам застосовні наступні операції:

    -- безлічі можна привласнити безліч того ж типу;

    -- операція об'єднання +

    -- операція доповнення -

    -- операція перетин *

    -- операція еквівалентність =

    -- операція не еквівалентність <>

    -- операція включення <= і> =

    Останні три операції дають значення логічного типу - TRUE або FALSE. Нехай безліч A = [1 .. 20], B = [2 .. 9,15 .. 20], C = [3 .. 22], тоді A + B = [1 .. 20], A + C = [1 .. 22], AC = [1,2], CA = [21,22], A * B = [1 .. 20], A * C = [3 .. 20], B * C = [3 .. 9,15. .20], A = B = FALSE, A <> C = FALSE, B <= A = TRUE, A> = C = FALSE.

    Існує ще одна операція, пов'язана з множинами, - операція IN, вона застосовується до скалярною величиною і безлічі:

    вираз IN безліч

    Тут вираз - будь-який вираз базового для даної множини типу, результат операції - TRUE, якщо такий елемент є в множині, і FALSE - в іншому випадку.

    Для множин визначені дві стандартні процедури:

    Include (безліч, вираз)

    Exclude (безліч, вираз)

    Процедура Include додає елемент, що дорівнює значенню виразу в множина, а процедура Exclude видаляє такий елемент з безлічі.

    Тепер, коли ми знаємо всі можливості множин, запишемо програму, що знаходить все прості числа на відрізку [1,255]:

    (програма використовує алгоритм "решето Ератосфена ")

    TYPE NumSet = SET OF 1 .. 255;

    CONST N: NumSet = [2 .. 255]; (виключили 1 як що не є простим числом)

    VAR MaxDivider, d: Byte; k: Word;

    BEGIN MaxDivider: = Round (SQRT (255 ));

    d: = 2;

    WHILE d <= MaxDivider DO BEGIN

    k: = 2 * d;

    WHILE k <= 255 DO BEGIN Exclude (N, k); INC (k, d); END;

    INC (d);

    END;

    WRITELN ( 'Прості числа :');

    FOR k: = 1 TO 255 DO IF k IN N THEN WRITE (k: 4);

    END.

    Вирішимо ще одне завдання: ввести масив символів і підрахувати, скільки в ньому російських і латинських літер.

    TYPE Letters = SET OF Char;

    CONST Lat = [ 'a' .. 'z', 'A' .. 'Z']; Rus = [ 'А' .. 'п', 'р' .. 'я', 'А' .. 'Я'];

    VAR c: Char;

    CONST RSum: Word = 0; LSum: Word = 0;

    BEGIN WRITE ( 'Введіть масив символів, потім натисніть Enter');

    REPEAT READ (c);

    IF c IN Lat THEN INC (LSum) ELSE IF c IN Rus THEN INC (RSum);

    UNTIL c = # 10;

    WRITELN ( 'латинських букв', LSum, 'російських букв', RSum);

    END.

    Зверніть увагу, що в цьому завданні немає необхідності заздалегідь знати, скільки символів міститься в масиві (більш того, у програмі ніякого масиву і немає!), достатньо лише пам'ятати, що клавіша Enter генерує символ # 10.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://elib.albertina.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status