Реферати українською » Информатика, программирование » Поняття множини. Символьний тип


Реферат Поняття множини. Символьний тип

Страница 1 из 2 | Следующая страница

Міністерство сільського господарства Російської Федерації

>ФГОУВПО Воронезький Державний Аграрний Університет іменіК.Д. Глінки

Кафедра інформаційного забезпечення і моделюванняагроекономических систем

>Курсовой проект

На тему: Поняття безлічі.Символьний тип

Воронеж – 2010


Запровадження

 

Мова програмуванняPascal було розроблено на 1968-1971 рр.Никлаусом Віртом в Цюріхському Інституті інформатики (Швейцарія), й названовчестьБлеза Паскаля – видатного математика, філософа і фізика 17-го століття. Початкова мета розробки мови диктувалася потребою створення інструмента "на навчання програмування як систематичної дисципліни". Однак уже незабаром виявилася надзвичайна ефективність мовиPascal в різноманітних додатках, від рішення невеликих завдань чисельного характеру до розробки складних програмних систем - компіляторів, баз даних, операційними системами тощо. На цей часPascal належить до групи найпоширеніших і популярних світі мов програмування:

існують численні реалізації мови практично всім

машинних архітектур;

розроблено десятки діалектів і

проблемно-орієнтованих розширень мовиPascal;

навчання

програмування і науково-технічні публікації у значною мірою

базуються цією мовою.

Перевагою мови Паскаль є зокрема можливість використання широкого набору різних типів даних. Тип даних визначає можливі значення констант, змінних, функцій, висловів і операцій, що потенційно можуть виконуватися з них.

Типи даних поділяються на прості складні. Прості типи діляться на стандартні (визначені) типи і типи зумовлені користувачем (користувальні типи). Імена стандартних типів є ідентифікаторами і у будь-якій точці програми. Вони описані у стандартному модулі System. Також, як та інші ідентифікатори, імена стандартних типів може бути перевизначені у програмі. Проте залишається і можливість звернення до початкового змісту з допомогою кваліфікованого ідентифікатора із зазначенням імені модуля System.

До стандартним типам ставляться:

група цілих типів (>Shortint,Integer,Longint,Byte, Word);

група речовинних типів (>Single, Real,Double,Extended,Comp);

група логічних (>булевских) типів (>Boolean,ByteBool,WordBool,LongBool);

символьний тип (>Char);

>строковий тип (>String,Pchar);

вказівний тип (>Pointer);

текстовий тип (>Text).

>Символьний тип, цілі ібулевские типи належать до, так званим, порядковим типам.

>Порядковие типи характеризуються такими властивостями:

Безліч допустимих значень будь-якого порядкового типу є впорядковану послідовність , кожен елемент якої має власний порядковий номер.Порядковий номер представляється цілим числом. Перше значення будь-якого порядкового типу має номер 0, наступний номер 1 тощо. Виняток становлять порядкові типиInteger,Shortint,Longint, де порядковим номером значень цих типів є саме значення.

До будь-якого значенням порядкового типу можна використовувати функції повертають номер, попереднє чи наступне значення такого типу.

>Пользовательские типи – додаткові абстрактні типи, характеристики яких програміст може визначати самостійно. До користувальницьким типам ставляться:

•перечисляемий тип;

•интервальний тип;

• вказівні типи (крім стандартного типуPointer);

• структуровані типи;

• процедурний тип.

>Перечисляемий іинтервальний типи є порядковими.


Поняття безлічі. Операції над безліччю

>Множественний тип даних Паскаля нагадуєперечислимий тип даних. Разом про те множинний тип даних – набір елементів не організованих гаразд прямування.

У математиці множинний тип даних – будь-яка сукупність елементів довільній природи. Операції, які виробляються над множинами, сутнісно полягають у включенні природи і виключення елементів з багатьох.

Поняття безлічі у мові програмування значно вже математичного поняття.

УПаскале під множинним типом розуміється кінцева сукупність елементів, що належать деякому базовому типу даних.

Як базових типів можна використовувати:

>перечислимие типи;

символьний;

>байтовий;

>диапазонние з урахуванням перелічених вище.

Такі обмеження пов'язані з формою уявлення множинного типу даних вПаскале і може бути було зведено до тому, щоб функція >ord() для використовуваного базового типу лежала не більше від 0 до 255.

Потому, як тип заданий, сукупність значень відповідного множинного типу даних визначається автоматично. У неї входять всіх можливих безлічі, є довільними комбінаціями значень базового типу. Всі ці безлічі є окремими значеннями певного множинного типу даних.

Опис множинного типу даних:

 

Type <>имя_типа>= set of <>базовий_тип>


Приклад множинного типу даних:

 

>Type symbol= >set of char; {описаний множинний типsymol з літер} >Var letter, digits, sign: symbol; {описані три перемінні множинного типу}

 

Щоб надати перемінної множинного типу значення, використовують конструктор безлічі – перерахування елементів безлічі через кому в квадратних дужках. Наприклад,

 

sign:= [‘+’, ‘-‘];

 

Конструктор безлічі може містити діапазон значень базового типу. Тоді у безлічі охоплюють усі елементи діапазону. Наприклад,

 

digits:= [‘0’ .. ‘9’];

letter:= [‘a’ .. ‘z’];

 

Обидві форми конструювання множин можуть поєднуватися. Наприклад,

 

letter:= [‘a’ .. ‘z’, ‘A’ .. ‘Z’];

 

Конструктор виду [] позначає порожні безлічі.

У конкурсній програмі можна використовувати безліч тип як константи, у разі їх визначають наступним способом:

 

Const YesOrNo= [‘Y’, ‘y’, ‘N’, ‘n’];

 

Можна множинний тип з'ясувати, як типізовану константу:


>Const digits: >set of char= [‘0’ .. 9’];

 

При описі множинного тип як констант припускається використання знака “+” (злиття множин). Наприклад,

 

Const Yes= [‘Y’, ‘y’]; No= [‘N’, ‘n’];

YesOrNo= Yes+ No;

 

З множинними типами Паскаля можна виконувати дії об'єднання, винятку та пересічення.

Об'єднання багатьох типів містить елементи, які належать хоча б одному безлічі, у своїй кожен елемент входить до об'єднання лише одне раз. Операція об'єднання множин позначається знаком ‘+’.

Приклад об'єднання багатьох типів:

 

>Type symbol= >set of char;

>Var small, capital, latin: symbol; ……………… small:= [‘a’ .. ‘z’]; capital:= [‘A’ .. ‘Z’]; latin:= small + capital; {утворені безлічі латинських літер шляхом об'єднання множинsmall іcapital}

 

Можливо об'єднувати множинні типи й окремі елементи. Наприклад,

 

small:= [‘c’ .. ‘z’];

small:= small + [‘a’] +[‘b’];

 

Виняток окреслюється різницю багатьох типів, у якому з зменшуваного виключаються елементи, що входять до від'ємник. Якщовичитаемом є елементи, відсутні вуменьшаемом, всі вони неможливо впливають на результат. Операція винятку позначається знаком ‘-‘. Приклад винятку багатьох типів Паскаля

letter:= [‘a’ .. ‘z’]; {безлічі літер латинського алфавіту} glasn:= [‘a’, ‘e’, ‘o’, ‘u’, ‘i’, ‘y’]; {безлічі гласних літер} soglasn:= letter-glasn; {створено безлічі згодних літер шляхом винятки з безлічі всіх літер безлічі гласних літер}

 

>Пресечение багатьох типів– безлічі, містять елементи, одночасно що входять до обидва безлічі. Операція перетину множин позначається знаком ‘*’.

Приклад перетину багатьох типів

Type chisla= set of byte; Var z,x,y: chisla; ……….. x:= [0..150]; y:= [100..255]; z:= x*y {получено множества чисел из диапазона 100..150 в результате пересечения двух множеств}

 

Операції відносини багатьох типів Поруч із розглянутими вище операціями, над значеннями множинного типу визначено й деякі операції відносини.Операндами операцій над множинними значеннями у випадку є множинні висловлювання. Серед операцій відносини над значеннями множинного типу окреме місце посідає спеціальна операція перевірки входження елемента у безлічі, позначена службовим словом in. На відміну від інших операцій відносини, у яких значення обохоперандов ставляться одного й тому множинному типу значень, в операції in перший операнд має належати базовому типу, а другий – множинному типу значень, побудованому з урахуванням цього базового типу. Результатом операції відносини, звісно ж, є логічне значення (>true чиfalse).

Операція порівняння на рівність багатьох типів. Сили-силенної вважаються рівними (еквівалентними), коли всі елементи одного безлічі є у ще й навпаки. Для операції порівняння на рівність чи нерівність використовуються символи ‘=’ і ‘<>’. A:= [2,1,3]; D:= [1,3,2];

Тоді операціяA=D має значенняtrue, а операціяA<>D має значенняfalse.

Перевірка включення. Одне безліч вважається включеною у інше (одне безліч є підмножиною іншого), коли всі його елементи містяться у другому безлічі. Протилежне твердження може бути несправедливим. Операції перевірки включення позначаються ‘<=’ і ‘>=’.

 

letter >= glasn; soglan <= letter;

 

Слід зазначити, що "застосування операцій < і > надоперандами множинного типу неприпустимо.

>Символьний тип даних. Опис символьного типу

>Символьний тип.CHAR – займає 1 байт.Значением символьного типу є безліч всіх символів ПК. Кожному символу присвоюється ціла кількість буде в діапазоні 0…255. Ця кількість служить кодом внутрішнього уявлення символу. Для кодування використовується кодASCII (American StandartCodefor InformationInterchange – американський стандартний код обмінюватись інформацією). Це7-битний код, тобто. з його допомогою ми можна закодувати лише 128 символів буде в діапазоні від 0 до 127. У той самий час у8-битном байті, відведеному для зберігання символу на ТурбоПаскале, можна закодувати у майже удвічі більше символів буде в діапазоні від 0 до 255. Першу половину символів ПК з кодами 0…127 відповідає стандартуASCII. Друга половина символів з кодами 128…255 не обмежена жорсткими рамками стандарту може змінюється на ПК різних типів. Символи з кодами 0…31 ставляться до службовим кодам. Якщо такі коди залучити до символьному тексті програми, вони вважаються прогалинами.

Фундаментальна обізнаність із символьними перемінними У TurboPascal 7.0 до роботи з символами використовуються два типу змінних:

символьний тип даних;

>строковий тип даних.

Стандартні функції до роботи з символьними величинами:

Операція складання символьних величин.

Операція складання дозволяє робити з двох символьних рядків третю, які з символів першої, яку йдуть символи другий. Позначається війни операція знаком "+".Наример:

>Описиваемстроковие перемінні.

 

>var >s1, >s2, >s3: >string;

>Присваиваемое значення рядки залежить від апострофи.Присвоим першим двом такі значення, а третя дорівнюватиме їх склеюванню:

 

>s1: = ' Тихіше води, ';

>s2:= 'нижче трави’;

>s3:=s1+’’+s2;

>Строка >s3 має значення 'Тихіше води, нижче трави'.

Довжина рядки

Під довжиною рядки розуміється кількість запроваджених символів, але він неспроможна перевищувати максимально можливої довжини (в описової частини). Це значення можна визначити з допомогою функції, результат якої ціла кількість, однакову кількості символів.


Наприклад:

>s1:='12345'; >s2:= 'Семеро одного не чекають’; >k1:=>Length(>s1); >k2:=>Length(>s2).

 

Через війну значення цілих змінних дорівнюватимуть:kl=5,k2=21.

Копіювання

Функціяcopy(str,n,m) в TurboPascalкопіюють т символів рядки >str, починаючи з n-го символу, у своїй вихідна рядок не змінюється. Можна результат цієї функції присвоювати інший рядку або відразу виводити його за екран. Наприклад:

 

>s1:='паровоз';s2:='123456';s3:=copy(s1, 5, 3);writeln(s3);writeln(copy(s2, 3, 2));

 

Значення перемінноїs1=’воз’. На екрані виведуть такі рядки: віз, і 34.

Видалення

У TurboPascal при цьому використовується процедура >Delete(str,n,m), яка вирізує з рядки >strm символів, починаючи з n-го. в такий спосіб сама рядок змінюється. Наприклад:

Дан фрагмент програми:

 

>s:='123456';  >delete(>s, 3, 2); >writeln(>s);

 

По виконанні цих операторів з рядки будуть віддалені два символу, починаючи з третього, тобто буде таке: >s = '1256'.

Заміна (Вставка)

У TurboPascal можна зробити, застосовуючи процедуру I>nsert(s1,s2,n) – вставка рядкиs1 в рядокs2, починаючи з п-го символу, у своїй перший рядок залишається той самий, як і було, а друга отримує нового значення. Наприклад:

 

>s1;='34': >s2:='1256';  >insert (>s1, >s2, 3);

У виконання даної процедури рядок буде таке

>s2='123456'.

 

>Числа і рядки

Слід зазначити, що кількість 25 і рядок 25 – це один і той ж. Робота з числами і рядками в TurboPascal застосовуються дві процедури.

>Str(n,s1) – переводить числове значення n встроковое і привласнює результат рядкуs1, причому можна переводити як цілі числа, і речові. Наприклад:

 

>n:=12;str(n,s1); - після виконанняs1 ='12'

 

Існує зворотна операція, яка переводитьстроковое значення в числове.

Функціяval(s, n,k) – переводитьстроковое значення в числове, якщо дана рядок справді є записом числа (цілого чи речовинного), ті значенняk=0, а n – їх кількість, інакшеk дорівнюватиме номера символу, у якому зустрічається перше порушення записи числа n. Наприклад:

 

>val(‘1234',n,k) >п=1234,k=0;

Функції перетворення типів

Іноді програми виникла потреба за кодом визначити символ і, навпаки, по символу визначити її код. І тому використовують функцію: >CHR(x).

Ця функція повертає символ, відповіднийASCII-коду числа x. Наприклад:

 

>for і = 0 to 255dowriteln( і,' ',chr(i));

 

Для визначення коду по символу використовують функцію >ORD. Наприклад:

 

>readln(s);writeln(ord(s));

 

>Комбинированний тип даних (записи)

Запис - тип даних, що з фіксованого числа компонентів (званих полями) однієї чи кількох типів.

Наведемо приклади описи типу запис:

>typePoint=RECORDx,y: Real

>END;

>Dates=RECORDday : 1..31;mon :String[3];year: 1..3000

>END;

>varp,r: Point;

>dt: >Dates;

Можна визначити масив записів, поля яких є масивами:

>typeStudent=Array [>1..N] ofRecordfam :String[15];birth:Dates; man :Boolean;marks:Array[1..10] of 0..5

end;

>var Group: >Student;

>Идентификатор Group можна використовуватиме зберігання інформації компанію студентів (прізвище, дата народження, підлогу та оцінки за 10 предметів).

Звернення до значенням поля записи відбувається з допомогою складеного імені, що містить ідентифікатор перемінної й ім'я поля, розділені точкою. Наприклад,p.x,dt.mon,group[1].man,group[2].marks[1].

>Составное ім'я можна використовувати скрізь, де припустимо застосування ідентифікатора типу поля: у висловлюваннях, операторах вводу-виводу, присвоювання, як фактичних параметрів.

Звернення від поля запису із допомогою складеного імені може мати громіздкий вид. ОператорWITH, вирішальний цієї проблеми, має такий вигляд:

 

>WITH <>Переменная типу запис>DO <Оператор>

 

Якщо після словаWITH поставити ім'я записи, то операторі, наступним заDO, для доступу від поля можна вказувати лише ім'я поля без імені перемінної.

Записи з варіантами

Записи може мати варіанти. Як приклад наведемо дослідження для перевірки якості деякого ліки. Якщо перевірки немає, то єдині дані, які нас цікавлять, - це застосовував цей пацієнт раніше дане ліки. Якщо ж виробляється перевірка, необхідно зібрати інформацію про великому числу даних щодо головного болю, лихоманки і нудоти.


Ми використовуємо дві структури даних типу запис:

>Nomer
>Proverka
>Prinimal

>Nomer
>Proverka
>GolovBol
>Lihoradka
>Toshnota

Що зробити з описами змінних, аби ми могли працювати разом з обома структурами? І тому описання записи можна застосувати спеціальний перемикач Case. Після можливого результатуProverka в дужках наводиться опис відповідних полів. Це ілюструється нижче:

>typeEffect=RecordNomer:Integer; CaseProverka:Boolean of

>FALSE: (>PrinimalRanee:Boolean);

>TRUE : (>GolovBol,Lihoradka,Toshnota:Boolean)

end;

>varNekto:Effect;

 

>Переключатель Case використовується тут для описи змінних і від оператора Case: в перемикачі Case використовуються дужки немає взагалі службове слово end, обов'язкову кінці "звичайного" Case.

Частина, що зустрічається на обох структурах, називається фіксованою частиною. Частина, що зустрічається тільки у з, називається варіантної частиною, а полі, що є важливим продовжити подальшої структури, називається загальним вузловим полем (читегом).

Що стосується, коли один варіантів зовсім позбавлений полів (тобто. список полів порожній), в дужках після відповідної константи щось пишуть, наприклад:


>TypePogoda=RecordTemperatura:Integer;Vlagnost :Integer; CaseVeter:Boolean ofTRUE : (>Napravlenie: (>S,N,V,O);Skorost :Integer);FALSE: ()

end;

 

Зауваження:

Після варіантної частини записи поля з'являтися що неспроможні.

Імена полів, які використовуються описання різних варіантів, нічого не винні

Страница 1 из 2 | Следующая страница

Схожі реферати:

Нові надходження

Замовлення реферату

Реклама

Навігація