Типове данни на езика за програмиране Pascal. Типове данни на Pascal

В Паскалпроменливите се характеризират със своите Тип... Типът е свойство на променлива, чрез което променливата може да приема различни стойности, разрешени от този тип, и да участва в различни операции, разрешени за даден тип.

Типът дефинира набора от валидни стойности, които променлива от даден тип приема. Той също така дефинира набора от допустими операции от променлива от този тип и определя представянето на данните в RAM на компютъра.

Например:

n: цяло число;

Pascal е статичен език, от което следва, че типът на променливата се определя по време на нейното описание и не може да бъде променян. Езикът Pascal има развита система от типове - всички данни трябва да принадлежат на предварително известен тип данни (или стандартен тип, създаден по време на разработването на езика, или дефиниран от потребителя тип, който се дефинира от програмиста). Програмистът може да създава свои собствени типове с произволна структура на сложност, базирана на стандартни типове или вече дефинирани от потребителя типове. Броят на създадените типове е неограничен. Дефинираните от потребителя типове в програмата се декларират в секцията ТИП по формат:

[име] = [тип]

Системата от стандартни типове има разклонена, йерархична структура.

Основни в йерархията са прости типове... Тези типове се срещат в повечето езици за програмиране и се наричат ​​прости, но в Pascal те имат по-сложна структура.

Структурирани типовесе изграждат по определени правила от прости типове.

Указателисе формират от прости типове и се използват в програми за задаване на адреси.

Процедурни видовеса нови за Turbo Pascal и позволяват на подпрограмите да се третират като променливи.

Обектисъщо са нови и са предназначени да използват езика като обектно-ориентиран език.

В Pascal има 5 типа целочислени типове. Всеки от тях характеризира диапазона от приети стойности и заетото им пространство в паметта.

Когато използвате цели числа, трябва да се ръководите от влагането на типове, т.е. типове с по-малък диапазон могат да бъдат вложени в типове с по-голям диапазон. Типът Byte може да бъде вложен във всички типове с дължина 2 и 4 байта. В същото време типът Short Int, който заема 1 байт, не може да бъде вложен в типа Word, тъй като няма отрицателни стойности.

Има 5 реални вида:

В компютър целочислените типове са представени абсолютно точно. За разлика от целочислените типове, стойността на реалните типове дефинира произволно число само с определена крайна точност, в зависимост от формата на числото. Реалните числа се представят в компютър с фиксирана или плаваща запетая.

2358.8395

0.23588395*10 4

0,23588395 * E 4

Специална позиция в Pascal заема типът Comp, всъщност това е голямо цяло число със знак. Този тип е съвместим с всички реални типове и може да се използва за големи цели числа. Когато се представят реални числа с плаваща запетая, десетичната запетая винаги се подразбира преди лявата или високата мантиса, но когато се действа с число, тя се измества наляво или надясно.

Редови типове

Редовните типове комбинират няколко прости типа. Те включват:

  • всички цели числа;
  • тип символ;
  • булев тип;
  • тип диапазон;
  • изброен тип.

Общи характеристики за редовите типове са: всеки тип има краен брой възможни стойности; стойността на тези типове може да бъде подредена по определен начин и определено число може да бъде свързано с всяко число, което е редно число; съседните стойности на редовите типове се различават с едно.

Функцията ODD (x) може да се приложи към стойности от пореден тип, който връща порядковия номер на аргумента x.

Функция PRED (x) - Връща предишната стойност на редовния тип. PRED (A) = 5.

SUCC (x) функция - Връща следващата стойност от редовния тип. SUCC (A) = 5.

Тип символ

Стойностите на типа символ са 256 знака от набора, разрешен от кодовата таблица на използвания компютър. Началната област на този набор, тоест диапазонът от 0 до 127, съответства на набора от ASCII кодове, в които се зареждат азбучни знаци, арабски цифри и специални знаци. Знаците в началната област винаги присъстват на клавиатурата на компютъра. Старшият район се нарича алтернативен, съдържа национални азбуки и различни специални знаци и псевдографични знаци, които не отговарят на ASCII кода.

Стойността на тип символ заема един байт в RAM. В програмата стойността е затворена в апострофи. Също така, стойностите могат да бъдат посочени под формата на неговия ASCII код. В този случай знакът # трябва да се постави преди числото с кода на знака.

C: = 'A'

Булев тип

Има две булеви стойности: True и False. Променливите от този тип се задават с БУЛЕВА служебна дума. Булевите стойности заемат един байт в RAM. Стойностите True и False съответстват на числовите стойности 1 и 0.

Тип диапазон

Има подмножество от неговия основен тип, който може да бъде произволен порядков тип. Диапазон-тип се дефинира от граници в основния тип.

[мин. стойност] ... [максимална стойност]

Типът на диапазона може да бъде указан в секцията Тип като конкретен тип или директно в секцията Var.

Когато определяте тип диапазон, е необходимо да се ръководите от:

  • лявата граница не трябва да надвишава дясната граница;
  • range-type наследява всички свойства на основния тип, но с ограничения, свързани с неговата по-ниска мощност.

Изброен тип

Този тип принадлежи към редовни типове и се посочва чрез изброяване на тези стойности, които може да изброи. Всяка стойност е именувана с някакъв идентификатор и се намира в списъка, поставен в скоби. Изброен тип е посочен в Тип:

Народи = (мъже, жени);

Първата стойност е 0, втората стойност е 1 и т.н.

Максимална мощност 65535 стойности.

Тип низ

Типът низ принадлежи към групата на структурираните типове и се състои от базовия тип Char. Типът низ не е пореден тип. Той дефинира набор от символни низове с произволна дължина до 255 знака.

В програмата типът низ се декларира с думата String. Тъй като String е основен тип, той се описва на езика, а променлива от тип String се декларира във Var. Когато декларирате променлива от тип низ зад String, е препоръчително да посочите дължината на низа в квадратни скоби. За обозначаване се използва цяло число от 0 до 255.

Fam: String;

Указването на дължината на низа позволява на компилатора да разпредели определен брой байтове в RAM за променливата. Ако дължината на низа не е посочена, компилаторът ще присвои максималния възможен брой байтове (255) за стойността на тази променлива.

Всички данни - константи, променливи, стойности на функциите се характеризират в Pascal от типа данни.

Нека дефинираме понятието тип данни... Както вече знаете, всички програмни обекти (променливи, константи и т.н.) трябва да бъдат описани.

Описанията информират преводача, първо, за съществуването на използваните променливи и други обекти, и второ, посочват свойствата на тези обекти. Например, описание на променлива, чиято стойност е число, показва свойствата на числата. Формално числата могат да бъдат цели числа и реални (дробни). В Pascal, както и в други езици за програмиране, числата са разделени на два вида: цяла(запазена дума цяло число) и истински(запазена дума истински).

Разпределянето на цели числа в отделен тип се обяснява с факта, че целите и реалните числа се представят по различен начин в компютър: цяло число може да бъде представено абсолютно точно, а реално число неизбежно с някаква крайна грешка, която се определя от свойствата на преводача.

Например, да предположим, че променливата x е от тип real и нейната стойност е равна на единица: x = 1. Съответната стойност в паметта на компютъра може да бъде 0,999999999, или 1,000000001, или 1,000000000. Но ако променливата x е декларирана като променлива от целочислен тип, тогава единицата в компютъра ще бъде представена абсолютно точно и променливата x няма да може да приема реални (дробни) стойности - в края на краищата беше описано като променлива от целочислен тип.

Така типът данни дефинира:

  • вътрешно представяне на данни в паметта на компютъра;
  • набор от стойности, които могат да приемат стойности от този тип;
  • операции, които могат да се извършват върху стойности от този тип.

Въвеждането на типове данни е една от основните концепции на езика Pascal, която е, че когато се извършва операция за присвояване на стойност на израз, променливата и изразът трябва да са от един и същи тип. Тази проверка се извършва от компилатора, което значително опростява търсенето на грешки и води до повишена надеждност на програмата.

Наборът от типове данни на езика Turbo Pascal може да бъде разделен на две групи:

  • стандартни (предварително дефинирани) типове ;
  • дефинирани от потребителя типове (персонализирани типове) .

Стандартните типове Turbo Pascal включват:

  • тип integer - цяло число;
  • реален тип - реален;
  • тип символ - char;
  • булев тип - булев;
  • тип низ - низ;
  • типът на показалеца е указател;
  • типът на текста е текст.

Персонализираните типове данни са различни комбинации от стандартни типове.

Персонализираните типове включват:

  • изброен тип;
  • тип интервал;
  • вид на показалеца;
  • структурирани типове;
  • процедурен тип.

Коментирайте... Възможна е друга класификация на типовете данни, според която типовете се делят на прости и сложни.

Простите типове включват: целочислен тип, реален тип, тип символ, булев тип, изброен тип и интервален тип.

Сложен тип е представен от различни комбинации от прости типове (масиви, записи, набори, файлове и др.)

Стандартни видове

Стандартният тип данни се дефинира от самия език Pascal. Когато използвате стандартни типове в програмата, достатъчно е да посочите подсекциите на необходимите типове (const, var) и след това да опишете константите и променливите, използвани в програмата. Не е необходимо да използвате подраздел Тип.

Например, ако програмата използва само променливи:

i, j - цяло число (цели числа);

x, y - реални (реални);

t, s - символ (знак);

a, b - булеви (логически),

тогава е необходим само подраздел от променливи - Var. Следователно в описателната част на програмата декларациите на променливи се записват, както следва:

Целочислени типове

Данните от този тип могат да приемат само цели числа. В компютър целочислените стойности са представени абсолютно точно. Ако променливата е отрицателна, тогава тя трябва да бъде предшествана от знак "-", ако променливата е положителна, тогава знакът "+" може да бъде пропуснат. Този тип е необходим в случаите, когато някаква величина не може да бъде представена приблизително - с реално число. Например броят на хората, животните и т.н.

Примери за запис на цели числа: 17, 0, 44789, -4, -127.

Диапазонът на промяна на данните от целочислен тип се определя от пет стандартни типа цели числа и е представен в таблицата:

Тип Обхват Размер в байтове
Shortint -128...+128 1
цяло число -32768...32767 2
Longint -2147483648...2147483647 4
байт 0...255 1
Word 0...65535 2

Последните два вида служат за представяне само на положителни числа, а първите три - както положителни, така и отрицателни числа.

В текста на програмата или при въвеждане на данни от целочислен тип стойностите се записват няма десетична запетая ... Действителни стойности на променливата не трябва да надвишава допустимите стойности от типа (Shortint, Integer, Longint, Byte, Word), който е бил използван за описание на променливата. Възможните превишавания по време на изчисленията не се контролират по никакъв начин, което ще доведе до неправилна работа на програмата.

Пример за използване на целочислена променлива

Var a: цяло число; б: дума; c: байт; Започнете a: = 300; (a е присвоена стойност 300) b: = 300; (b е настроен на 300) c: = 200; (c е зададено на 200) a: = b + c; (a се присвоява стойността 500) c: = b; (Грешка! Променливата c може да приема стойности не повече от 255. Тук на променливата c е присвоена стойност 500, което ще доведе до препълване на резултата.) Край.

Истински типове

Стойностите на реалните типове в компютъра са представени приблизително. Обхватът на промяна на данните от реален тип се определя от пет стандартни типа: реален (Real), с единична точност (Single), двойна точност (Double), с повишена точност (Extended), комплексен (Comp) и е представен в масата:

Тип Обхват Значими цифри Размер в байтове
Истински 2.9E-39 ... 1.7E + 38 11-12 6
Неженен 1.5E-45 ... 3.4E + 38 >7-8 4
Двойна 5E-324 ... 1.7E + 308 15-16 8
Разширено 3.4E-4951 ... 1.1E + 4932 19-20 10
Комп -2E + 63 + 1 ... + 2E + 63-1 19-20 8

Реалните числа могат да бъдат представени в два формата: фиксирана и плаваща запетая.

Форматът за запис на число с фиксирана точка е същият като обичайната математическа нотация за десетично число с дробна част. Дробната част се отделя от цялата част с помощта на точка, например

34.5, -4.0, 77.001, 100.56

Форматът с плаваща запетая се използва при писане на много големи или много малки числа. В този формат числото пред знака "E" се умножава по числото 10 до степента, посочена след знака "E".

1E-4 1*10-4
3,4574E + 3 3.4574*10+3
4,51E + 1 4.51*10+1

Примери за числа с плаваща запетая:

номер Запис на Pascal
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E + 4
124 0,124E + 3
124 1.24E + 2
124 12.4E + 1
124 1240E-1
124 12400E-2

Таблицата от 5 до 9 реда показва записа на същото число 124. Чрез промяна на позицията на десетичната запетая в мантисата (точката „плува“, откъдето идва и името „запис на число с плаваща запетая“) и в същото време променяйки стойността на поръчката, можете да изберете най-подходящите номера на записи.

Пример за описание на променливи от реален тип.

Тип символ

Знаковите стойности са знаци, които можете да въвеждате на клавиатурата на компютъра. Това ви позволява да представяте текст в програмата и да извършвате различни операции върху него: вмъкване, изтриване на отделни букви и думи, форматиране и т.н.

Типът на символа се обозначава със запазената дума Char и е предназначен да съдържа един знак. Символните данни заемат един байт в паметта.

Форматът за деклариране на символна променлива е:

<имя переменной>: Char;

Когато се дефинира стойността на символна променлива, символът се записва с апострофи. Освен това можете да посочите необходимия знак, като посочите директно неговата ASCII цифрова стойност. В този случай е необходимо да поставите знак # преди числото, обозначаващо ASCII кода на необходимия символ.

Пример за използване на променливи от символен тип:

Var c: char; (c - променлива от тип символ) Начало c: = 'A'; (символът 'A' се присвоява на променливата c) c: = # 65; (символът A също е присвоен на променливата c. Неговият ASCII код е 65) c: = ’5’; (на променливата c е присвоен знак 5, край. тук 5 вече не е число)

Булев тип

Логическият тип данни се нарича Boolean на името на английския математик Джордж Бул, създателя на областта на математиката – математическата логика.

Форматът за деклариране на променлива от булев тип:

<имя переменной>: булев;

Данните от този тип могат да приемат само две стойности:

  • Вярно вярно;
  • Невярно е невярно.

Булевите данни се използват широко за валидиране на определени условия и сравняване на стойности. Резултатът може да бъде верен или неверен.

За сравняване на данни се предоставят следните операции за връзки:

Пример за използване на релационни операции:

отношение 5> 3, резултатът е верен;

съотношение 5 = 3, резултатът е фалшив.

Пример за използване на променливи от булев тип.

Var a, b: булев; (a, b - променливи от булев тип) Начало a: = Вярно; (на променливата a се присвоява стойността "true") b: = false; (b е зададен на false) Край.

Константи

Като константи могат да се използват цели числа, реални числа, символи, символни низове, логически константи.

Константата трябва да бъде декларирана в описателната част с помощта на запазената дума const.

Формат на постоянна декларация

Конст<имя константы>= <значение>;

Ако в програмата се използват няколко константи, е позволена само една ключова дума Const, описанието на всяка константа завършва с точка и запетая. Блок от константи завършва с декларация на друг раздел или с декларация на блок от изпълними оператори.

Постоянна (декларация за постоянен раздел) година = 2003 г.; (константа от целочислен тип, тъй като в записа няма десетична запетая) време = 14,05; (константа от реален тип) N = 24; (константа от целочислен тип, тъй като в записа няма десетична запетая) P = 3,14; (константа от реален тип) A = вярно; (булева константа) str1 = '7'; (константа тип символ) str2 = 'A'; (константа тип символ) str3 = 'Turbo'; (константа тип низ) Var (декларация на секция на променлива) X, y: цяло число; (променливи от целочислен тип)

Персонализирани типове

От набора от дефинирани от потребителя типове, вземете предвид само

  • изброен тип;
  • тип интервал.

Тези два типа ще ни трябват, когато изучаваме масиви.

Изброен тип

Изброен тип данни описва нови типове данни, чиито стойности се определят от самия програмист. Изброен тип се посочва чрез изброяване на стойностите, които може да получи. Всяка стойност е именувана с някакъв идентификатор и се намира в списък, заобиколен от скоби. Изброеният тип е дефиниран от потребителя тип данни, така че декларацията на този тип започва с запазената дума TYPE.

Формат на изброен тип:

<имя типа>= (константа1, константа2, ..., константаN);

където
константа1, константа2, ..., константаN е подреден набор от стойности на идентификатор, третирани като константи.

Пример за описание на изброен тип:

Тип топка = (едно, две, три, четири, пет); var t: топка;

Където топка е името на изброения тип; едно, две, три, четири, пет - константи; t е променлива, която може да приеме всяка константна стойност.

В изброен тип константата е идентификатор, така че не е в кавички и не може да бъде число. По този начин, в изброен тип, константа се разбира като специален вид константи, които не могат да бъдат:

  • числови константи: 1, 2, 3, 4 и т.н.
  • константи от символен тип: "a", "s", "1", "3" и т.н.;
  • константи от низов тип: "първи", "втори" и т.н.

Освен това аритметичните операции и стандартните процедури за въвеждане и извеждане Read, Write не са приложими за стойности от този тип.

Пример за използване на изброени променливи:

Тип дни = (понеделник, вторник, сряда, четвъртък, петък, събота, неделя); Вар ден: дни; begin if day = Sunday then writeln („Днес е неделя!“); Край.

Елементите, включени в дефиницията на изброен тип, се считат за подредени в реда, в който са изброени. Номерирането започва от нула. Следователно в дадения пример дните от седмицата имат следните последователни номера

Функцията Ord () се използва за програмно определяне на порядъка.

В нашия пример поредните номера са:

Поръчка (понеделник) = 0;

Орд (събота) = 5;

Ред (неделя) = 6.

Тип интервал

Ако променливата не приема всички стойности от своя тип, а само стойностите, съдържащи се в определен диапазон, тогава този тип данни се нарича интервален тип. Тип интервал често се нарича ограничен тип и тип диапазон. Тип интервал се определя от границите на неговите стойности:

<минимальное значение>..<максимальное значение>

  • два знака ".." се третират като един знак, така че не се допускат интервали между тях;
  • лявата граница на диапазона не трябва да надвишава дясната му граница.

Типът на интервала е дефиниран от потребителя тип данни, така че декларацията на този тип започва със служебната дума TYPE.

Пример за описание на тип интервал:

Тип цифра = 1..10; месец = 1..31; lat = 'A' .. 'Z';

Във всяка програма трябва да определите вида и вида на количествата, които ще бъдат използвани за решаване на проблема. По външния си вид простите количества (в програмирането всички те се наричат ​​данни) се разделят на константи и променливи.

КонстантиТова са данни, чиито стойности не могат да бъдат променени по време на изпълнение на програмата. Въведен в блок const.

Като цяло, описанието на обикновена нетипизирана константа се прави по следния начин:

Име на константа = израз;

Въведените константи се описват като:

Име на константа: тип = израз;

Следното може да се използва в изрази:

· Числа или набор от знаци в апострофи;

· Математически операции;

· Операции с връзки и логически операции;

Функции abs (x), round (x), trunc (x);

· Функции chr (x), ord (x), pred (x), succ (x) и други.

Формат на описание на константите:

id = стойност;

1. Цело число – дефинирано с помощта на числа, записани в десетичен или шестнадесетичен формат, които не съдържат десетична запетая.

2. Реални - дефинирани чрез числа, записани в десетичен формат на данните.

3. Символичен - това е всеки знак на персонален компютър, затворен в апострофи.

4. Низ – дефиниран от поредица от произволни знаци, затворени в апострофи.

5. Логично е или фалшиво, или вярно.

Типът на константата не е посочен, но се определя автоматично по време на компилацията: стойностите на изразите се изчисляват незабавно и след това само се заменят вместо имена.

ПроменливиТова са данни, които могат да се променят по време на изпълнение на програмата. Всяка променлива има свое собствено именувано местоположение/местоположения на паметта. Тези. променливата е вид контейнер, в който можете да поставите някои данни и да ги съхранявате там. Променливите имат име, тип и стойност.

Име на променливата - трябва да започва задължително с буква, не може да съдържа интервали и може да съдържа само:

· Букви от латинската азбука;

· Долна черта.

Примери: A, A_1, AA, i, j, x, y и т.н. Невалидни имена: My 1, 1A. Имената на променливите могат да бъдат с дължина до 126 знака, така че се опитайте да изберете смислени имена на променливи. Компилаторът обаче разграничава първите 63 знака в имената. Но не прави разлика между малки и главни букви, както в имената на променливите, така и при писането на идентификатори на услуги.

Тип на променлива - трябва да бъде дефиниран в блока за деклариране на променлива VAR. Стойността на променлива е константа от същия тип.

Всяка програма работи с данни. Данните са, в широкия смисъл на думата, обекти, които програма обработва. Типът на даденост е неговата характеристика. Зависи от вида:

Как ще се съхраняват тези данни,

Колко клетки от паметта ще бъдат разпределени за неговото съхранение,

Каква е минималната и максималната стойност, която може да приеме,

· Какви операции могат да се извършват с него.

Някои прости типове данни на Pascal:

1. Целочислени типове (ShortInt, Integer, LongInt, Byte, Word).

2. Реални типове (Real, Single, Double, Extended, Comp).

3. Булева.

4. Характер (Char).

5. Типове низове (String, String [n]).

9. Безусловни оператори в Pascal. Описание и употреба.

Тип оператор

отивам<метка>;

Предназначение - прехвърляне на управлението в програмата на оператора, отбелязан с етикет<метка>... Етикетът може да бъде име (написано според правилата за имена на езици) или цяло число без знак, описано в инструкциите за описание на етикета statementLabel и стоящо преди маркирания израз, но само на едно място в програмата. Етикетът е отделен от оператора със символа “:.” Прескачането към етикет може да се случи няколко пъти в блок, но самият етикет може да се случи само веднъж. Ако няма прехвърляне на контрол към някакъв етикет, няма да има грешка.

Операторът за безусловен скок обикновено не е разрешен в структурното програмиране. Въпреки че ви позволява да съкратите текста на програмата, използването й в Pascal е ограничено от редица правила и насоки. Забранено е влизането вътре в съставен оператор, вътре или в началото на подпрограма и излизането от подпрограмата към програмата, която го е извикала. Не се препоръчва да се придвижвате извън границите на страницата (екранът) на текста на програмата, с изключение на прехода към крайните оператори на програмата. Всичко това се дължи на възможността за пропускане на важни изрази за правилното функциониране на програмата. Обикновено операторът за безусловен скок се използва само за връщане в началото на тялото на цикъла, ако цикълът е конструиран с помощта на условни и безусловни изрази.

Обърнете внимание, че операторът след goto също трябва да бъде маркиран с различен етикет (освен ако goto не е последният в групата на операторите). В противен случай няма начин да стигнете до следващия оператор след goto.

10. Оператори на разклоняване в Pascal. Описание и употреба.

Операторите, които ви позволяват да изберете само една от няколкото възможни опции за изпълнение на програма (клонове), включват

Тези. тези изрази ви позволяват да промените естествения ред на изпълнение на програмните оператори.

ако<условие>тогава< оператор 1 >

друго<оператор 2> ;

ако a> = b тогава Max: = a else Max: = b;

В оператора if само един оператор може да бъде изпълнен и в двата клона (тогава и друго)!

Пример за задача за разклоняващи оператори в Pascal. Въведете две цели числа и покажете най-голямото от тях.

Идея за решение: трябва да покажете първото число, ако е по-голямо от второто, или второто, ако е по-голямо от първото.

Характеристика: действията на изпълнителя зависят от някои условия (ако ... иначе ...).

var a, b, max: цяло число;

writeln ("Въведете две цели числа");

ако a> b тогава max: = a else max: = b;

writeln ("Най-голямо число", макс.);

Трудни условия

Сложното условие е състояние, състоящо се от няколко прости условия (отношения), свързани с логика

операции:

Не - НЕ (отрицание, инверсия)

И - И (логическо умножение, съюз,

едновременно изпълнение на условията)

Или - ИЛИ (логическо събиране, дизюнкция,

изпълнение на поне едно от условията)

Xor - изключително ИЛИ (само изпълнение

едно от двете условия, но не и двете)

Прости условия (отношения)

< <= > >= = <>

Ред за изпълнение (приоритет = старшинство)

Изрази в скоби

<, <=, >, >=, =, <>

Характеристика - всяко от простите условия трябва да бъде затворено в скоби.

Изявление за избор на казус

Изявлението на случая ви позволява да избирате между няколко опции.

Вариантният оператор се състои

Øот израз, наречен селектор,

Ø и списък с оператори, всеки маркиран с константа от същия тип като селектора.

Селекторът трябва да бъде само порядък тип данни, а не тип longint.

Селекторът може да бъде променлива или израз.

Списъкът с константи може да бъде определен или като изрично изброяване, или като интервал или тяхното обединение. Повтарянето на константи не е

позволен.

Типът на превключвателя и типовете на всички константи трябва да са съвместими.

Случай< выражение {селектор}>на

<список констант 1> : < оператор 1>;

< список констант K> : < оператор K>;

Декларацията се изпълнява, както следва:

1) се изчислява стойността на селектора;

2) полученият резултат се проверява за принадлежност към един или друг списък от константи;

3) ако бъде намерен такъв списък, тогава по-нататъшни проверки вече не се извършват, а съответният оператор

избрания клон, след което управлението се прехвърля на оператора, следващ ключовата дума end, което затваря цялото

конструкция на корпуса;

4) ако няма подходящ списък с константи, тогава се изпълнява операторът зад ключовата дума else; ако няма друг клон,

тогава нищо не се прави.

В оператора за разклоняване, само един оператор може да бъде изпълнен във всички разклонения!

Ако трябва да изпълните няколко, трябва да използвате операторните скоби begin-end.

дело Индекс мод 4 на

1: x: = y * y - 2 * y;

11.Оператор на опция (селекция) в Pascal. Описание и употреба.

Операторът за избор (опция, превключвател) реализира избора на една от възможните алтернативи, т.е. опции за продължаване на програмата.

Формат на запис:

Случай - избор, опция;

S - селектор, израз на порядков тип;

Ki - константи за избор, константа, чийто тип е същият като типа на селектора;

OPi - всеки оператор, включително и празен;

Операторът select изпълнява следната конструкция:

Изявление за избор на Pascal: Оценява израза на селектора. Изчислената стойност се сравнява последователно с константите на алтернативите и управлението се предава на константата за избор на оператор, която съвпада с изчислената стойност на селектора. Инструкцията се изпълнява и контролът се прехвърля извън оператора за избор. Ако изчислената стойност на селектора не съвпада с нито една от константите, тогава управлението се предава на клона Else, чието присъствие не е необходимо в този случай, контролът се прехвърля извън оператора за избор.

Блокова схема на оператора за избор.

Структурата на оператора select може да бъде реализирана с помощта на вложени условни изрази, но това влошава яснотата на програмата. Препоръчва се не повече от 2-3 нива на прикачване.

12. Видове оператори на цикъл в Pascal, тяхното предназначение.

5. Алгоритмични конструкции на цикли. Видове цикли.

Има три типа циклични алгоритми: цикъл на параметър (наречен аритметичен цикъл), цикъл с предусловие и цикъл след условие (те се наричат ​​итеративни цикли).

12.13 Аритметичен цикъл.В аритметичен цикъл броят на неговите стъпки (повторения) се определя еднозначно от правилото за промяна на параметъра, което се задава с помощта на началните (N) и крайните (K) стойности на параметъра и стъпката (h) на промяната му. Тоест на първата стъпка от цикъла стойността на параметъра е равна на N, на втората - N + h, на третата - N + 2h и т.н. В последната стъпка от цикъла стойността на параметъра не е по-голяма от K, но такава, че по-нататъшната му промяна ще доведе до стойност, по-голяма от K.

Контр циклите се използват, когато цикличната част от програмата трябва да се повтори фиксиран брой пъти. Такива цикли имат целочислена променлива, наречена брояч на цикъла.

Ако е необходимо програмен фрагмент да се повтори определен брой пъти, тогава се използва следната конструкция:

ЗА<имя счетчика цикла> = <начальное значение>ТОГАВА<конечное значение>НАПРАВЕТЕ<оператор>;

FOR, TO, DO - запазени думи (на английски: for, to, execute);

<счетчик (параметр) цикла>- променлива от типа INTEGER, която се променя на интервала от<начального значения>, увеличавайки се с едно в края на всяка стъпка от цикъла;

<оператор>- всеки (по-често комбиниран) оператор.

Има и друга форма на този оператор:

ЗА<имя счетчика цикла>:= <начальное значение>НАДОЛУ<конечное значение>НАПРАВЕТЕ<оператор> :

Замяната на TO с DOWNTO (на английски: down to) означава, че стъпката на промяна на параметъра на цикъла е равна на - 1, тоест се получава стъпка по стъпка намаляване на брояча с единица.

12.14 Цикъл с предварително условие.Броят на стъпките в цикъла не е предварително определен и зависи от входните данни на проблема. В тази структура на цикъла първо се проверява стойността на условния израз (условие), преди да се изпълни следващата стъпка от цикъла. Ако стойността на условния израз е вярна, тялото на цикъла се изпълнява. След това управлението отново се прехвърля към проверка на състоянието и т.н. Тези действия се повтарят, докато условният израз се оцени на FALSE. При първото неспазване на условието цикълът приключва.

Този най-често използван оператор за повторение е:

ДОКАТО<условие>НАПРАВЕТЕ<оператор>;

WHILE, DO - запазени думи (на английски: bye, to do);

<условие>- израз от логически тип;

<оператор>- произволен (евентуално комбиниран) оператор.

Характеристика на цикъл с предварително условие е, че ако първоначалният условен израз е фалшив, тогава тялото на цикъла няма да бъде изпълнено нито веднъж.

Циклите с предварително условие се използват, когато изпълнението на цикъла е свързано с някакво логическо условие. Инструкция за цикъл с предварително условие има две части: условие за изпълнение на цикъл и тяло на цикъл.

12.15 Цикъл с постусловие (итеративен цикъл).Както в цикъл с предварително условие, така и в цикъл с постусловие, броят на повторенията на тялото на цикъла не е предварително определен; зависи от входните данни на задачата. За разлика от цикъл с предварително условие, тялото на цикъл с постусловие винаги ще бъде изпълнено поне веднъж, след което условието се проверява. В тази конструкция тялото на цикъла ще бъде изпълнено, докато стойността на условния израз е false. Веднага след като стане истина, командата се прекратява.

Този оператор има формата:

ПОВТОРИТЕ<тело цикла>ДО<условие>:

REPEAT, UNTIL - запазени думи (на английски: repeat while);

<условие>- израз от логически тип, ако стойността му е вярна, тогава цикълът се излиза.

Трябва да се отбележи, че в тази конструкция последователността от изрази, дефиниращи тялото на цикъла, не е затворена в операторните скоби BEGIN ... END, тъй като те са двойката REPEAT ... UNTIL.

Циклите за посткондициониране са подобни на предварително кондиционираните цикли, но поставят условието след тялото на цикъла.

За разлика от цикъл с предварително условие, който може да завърши работата си, без изобщо да изпълни тялото на цикъла (ако условието за изпълнение е фалшиво по време на първото преминаване на цикъла), тялото на цикъла с постусловие трябва да бъде изпълнено поне веднъж , след което се проверява състоянието.

Един от операторите на тялото на цикъла трябва да повлияе на стойността на условието за изпълнение на цикъла, в противен случай цикълът ще се повтори безкраен брой пъти.

Ако условието е вярно, тогава цикълът се излиза, в противен случай операторите на цикъла се повтарят.

16. масиве набор от елементи от един и същи тип, обединени с общо име и заемащи определена област от паметта на компютъра. Броят на елементите в масива винаги е краен. Като цяло масивът е структуриран тип данни, който се състои от фиксиран брой елементи от един и същи тип. Масивите се наричат ​​редовен тип (или редове), защото комбинират елементи от един и същи тип (логически хомогенни), подредени (регулирани) от индекси, които определят позицията на всеки елемент в масива. Всеки тип данни може да се използва като елементи на масив, следователно е напълно легитимен за масиви от записи, масиви от указатели, масиви от низове, масиви и т.н. Елементите на масива могат да бъдат данни от всякакъв тип, включително структурирани данни. Типът на елементите на масива се нарича основен. Особеността на езика Pascal е, че броят на елементите на масива е фиксиран по време на описанието и не се променя по време на изпълнение на програмата. Елементите, които съставляват масива, са подредени по такъв начин, че всеки елемент да съответства на набор от числа (индекси), които определят местоположението му в общата последователност. Достъпът до всеки отделен елемент се осъществява чрез индексиране на елементите на масива. Индексите са изрази от всякакъв скаларен тип (най-често цяло число), с изключение на реални. Типът на индекса определя степента, до която стойностите на индекса се променят. Фразата масив на се използва за описание на масив.

Масивът се нарича колекция от данни, които изпълняват подобни функции и се обозначават с едно име. Ако на всеки елемент от масива е присвоен само един сериен номер, тогава такъв масив се нарича линеен или едномерен.

17... Едномерен масивТова е фиксиран брой елементи от един и същи тип, обединени с едно име, като всеки елемент има свой уникален номер, а номерата на елементите вървят в редица.

За да опишете такива обекти в програмирането, първо трябва да въведете подходящия тип в раздела за описание на типа.

Типът на масива е описан по следния начин:

Име на типа = Масив [тип индекс(и)] От тип елемент;

Име на променлива: име на типа;

Променлива от масив може да бъде описана директно в раздела за описание на променлива Var:

Променлива Име на променлива: масив [тип индекс(и)] От тип елементи;

Масив - служебна дума (в превод от английски означава "масив");

Of - служебна дума (в превод от английски означава "от").

Тип индекс - всеки порядков тип, с изключение на целочислени, longint типове.

Типът на самите елементи може да бъде всеки различен от типа на файла.

Броят на елементите в масива се нарича неговата измерение. Лесно е да се изчисли, че при последния метод за описание на набора от индекси, размерността на масива е равна на: максималната стойност на индекса - минималната стойност на индекса + 1.

Например:

mas = масив от реални;

Масив X е едномерен, състоящ се от двадесет елемента от реален тип. Елементите на масива се съхраняват в паметта на компютъра последователно един след друг.

Когато се използват променливи за обозначаване на индекс, техните стойности трябва да бъдат определени в момента на използване, а в случай на аритметични изрази техният резултат не трябва да надхвърля границите на минималните и максималните стойности на индексите на масива.

Индексите на елементите на масива могат да започват с всяко цяло число, включително отрицателни, например:

Тип bb = Масив [-5..3] Булев;

Масивите от този тип ще съдържат 9 булеви променливи, номерирани от -5 до 3.

18. Двуизмерен масив в Pascalтретира се като едномерен масив, чийто тип елемент също е масив (масив от масиви). Позицията на елементите в двумерните Pascal масиви се описва с два индекса. Те могат да бъдат представени като правоъгълна таблица или матрица.

Помислете за двуизмерен Pascal масив с размери 3 * 3, тоест той ще има три реда и всеки ред има три елемента:

Всеки елемент има свой собствен номер, като в едномерните масиви, но сега числото вече се състои от две числа - номера на реда, в който се намира елементът, и номера на колоната. По този начин номерът на елемента се определя от пресечната точка на реда и колоната. Например, 21 е елементът във втория ред и първата колона.

Описание на двуизмерен масив Pascal.

Има няколко начина за деклариране на двуизмерен масив Pascal.

Вече знаем как да опишем едномерни масиви, чиито елементи могат да бъдат от всякакъв тип и следователно самите елементи могат да бъдат масиви. Помислете за следното описание на типове и променливи:

Основни операции с двумерни Pascal масиви

Всичко, което беше казано за основните операции с едномерни масиви, важи и за матриците. Единственото действие, което може да се извърши върху матрици от същия тип като цяло, е присвояването. Тоест, ако нашата програма описва две матрици от един и същи тип, например,

матрица = масив от цяло число;

тогава по време на изпълнението на програмата можете да присвоите на матрицата a стойността на матрицата b (a: = b). Всички други действия се извършват елемент по елемент, докато върху елементите можете да извършите всички разрешени операции, които са дефинирани за типа данни на елементите на масива. Това означава, че ако масивът се състои от цели числа, тогава операциите, дефинирани за цели числа, могат да се извършват върху неговите елементи, но ако масивът се състои от символи, тогава операциите, дефинирани за работа със знаци, са приложими за тях.

21. Технологии за работа с текстови документи. Текстови редактори и процесори: предназначение и възможности.

По-усъвършенстваните текстови редактори (например Microsoft Word и OpenOffice.org Writer), понякога наричани текстообработващи програми, имат широк набор от възможности за създаване на документи (вмъкване на списъци и таблици, проверка на правописа, корекции на запис и т.н.).

За подготовка за публикуване на книги, списания и вестници в процеса на прототипиране на изданието се използват мощни програми за текстообработка - настолни издателски системи (например Adobe PageMaker, Microsoft Office Publisher).

Специализирани приложения (като Microsoft FrontPage) се използват за подготовка на уеб страници и уеб сайтове за публикуване в Интернет.

Текстовите редактори са програми за създаване, редактиране, форматиране, запазване и отпечатване на документи. Съвременният документ може да съдържа освен текст и други обекти (таблици, диаграми, картини и др.).

Редактирането е трансформация, която добавя, изтрива, премества или коригира съдържанието на документ. Редактирането на документ обикновено се извършва чрез добавяне, премахване или преместване на знаци или части от текст.

Форматирането е украсата на текста. В допълнение към текстовите знаци, форматираният текст съдържа специални невидими кодове, които казват на програмата как да го изведе на екрана и да го отпечата на принтер: какъв шрифт да използва, какъв стил и размер трябва да бъдат знаците, как се форматират абзаците и заглавията .

Форматираните и неформатираните текстове са малко различни по естество. Това разграничение трябва да се разбере. Във форматирания текст всичко е важно: размерът на буквите и тяхното изображение и къде свършва един ред и започва друг. Тоест форматираният текст е неразривно свързан с параметрите на листа хартия, върху който е отпечатан.

При проектирането на текстови документи често се изисква добавяне на нетекстови елементи или обекти към документа. Разширените текстови редактори ви позволяват да направите това - те имат широка възможност да вмъкват картини, диаграми, формули и т.н. в текста.

Документи на хартиен и електронен носител. Документите могат да бъдат хартиени или електронни. Хартиените документи се създават и форматират за най-добро представяне, когато се отпечатват на принтер. Електронните документи се създават и форматират за най-добро представяне на екрана на монитора. Постепенната замяна на хартиения документооборот с електронен е една от тенденциите в развитието на информационните технологии. Намаляването на консумацията на хартия е от полза за опазването на природните ресурси и намаляването на замърсяването на околната среда.

Форматирането на хартиените и електронните документи може да варира значително. За хартиените документи се приема така нареченото абсолютно форматиране. Отпечатан документ винаги е форматиран така, че да пасне на отпечатан лист с известен размер (формат). Например ширината на реда в документ зависи от ширината на хартията. Ако документът е подготвен за печат върху листове с голям формат, тогава той не може да бъде отпечатан на малки листове хартия - част от документа няма да се побере върху тях. С една дума, форматирането на отпечатан документ винаги изисква предварителен избор на лист хартия с последващо подвързване към този лист. За отпечатан документ винаги можете точно да назовете (във всяка мерна единица) размерите на шрифтовете, полетата, разстоянието между редовете или абзаците и т.н.

За електронните документи е възприето т. нар. относително форматиране. Авторът на документа не може да предвиди предварително на кой компютър, с какъв размер на екрана ще се гледа документът. Освен това, дори ако размерите на екраните са били известни предварително, все още е невъзможно да се предвиди какъв ще бъде размерът на прозореца, в който читателят ще види документа. Следователно електронните документи се изработват така, че да отговарят на текущия размер на прозореца и се форматират в движение.

Авторът на електронен документ също не знае какви шрифтове са налични на компютъра на бъдещия четец и следователно не може строго да посочи в какъв шрифт трябва да се показват текстът и заглавията. Но той може да посочи такова форматиране, че на всеки компютър заглавките ще изглеждат по-големи от текста.

Относителното форматиране се използва за създаване на електронни документи в Интернет (наречени уеб страници), а абсолютното форматиране се използва за създаване на печатни документи в текстообработващи програми.

22. Основните структурни елементи на текстов документ. Шрифтове, стилове, формати.

Форматиране на шрифта (знаци).

Символите са букви, цифри, интервали, препинателни знаци, специални знаци. Символите могат да се форматират (променят външния им вид). Сред основните свойства на символите са следните: шрифт, размер, стил и цвят.

Шрифтът е пълен набор от знаци в определен стил. Всеки шрифт има собствено име, например Times New Roman, Arial, Comic Sans MS. Единицата на шрифта е точка (1 pt = 0,367 mm). Размерите на шрифта могат да се променят в широк диапазон. В допълнение към нормалния (нормален) стил на знаците обикновено се използват получер, курсив и удебелен курсив.

Растерните и векторните шрифтове се различават по начина, по който са представени в компютъра. Методите за растерно изображение се използват за представяне на растерни шрифтове, символите на шрифта са групи от пиксели. Растерните шрифтове могат да бъдат мащабирани само чрез определени съотношения.

Във векторните шрифтове символите се описват с математически формули и е възможно произволното им мащабиране. Сред векторните шрифтове TrueType шрифтовете са най-широко използвани.

Можете също да зададете допълнителни параметри за форматиране на знаци: подчертаване на знаци с различни видове редове, промяна на външния вид на знаците (горен и долен индекс, зачертаване), промяна на разстоянието между знаците.

Ако планирате да отпечатате документ в цвят, можете да зададете различни цветове за различни групи знаци.

За проверка на правописа и синтаксиса се използват специални софтуерни модули, които обикновено са включени в текстообработващите програми и системите за публикуване. Такива системи съдържат речници и граматически правила за няколко езика, което ви позволява да коригирате грешки в многоезични документи.

24... База данние информационен модел, който ви позволява да съхранявате подредено данни за група обекти, които имат същия набор от свойства.

Има няколко различни типа бази данни: таблични (релационни), йерархични и мрежови.

Таблични бази данни.

Табличната база данни съдържа списък с обекти от един и същи тип, тоест обекти със същия набор от свойства. Удобно е да се представи такава база данни под формата на двуизмерна таблица.

В релационните бази данни всички данни се представят под формата на прости таблици, разделени на редове и колони, на пресечната точка на които се намират данните. Заявките към такива таблици връщат таблици, които сами по себе си могат да станат обект на допълнителни заявки. Всяка база данни може да включва множество таблици.

Основното предимство на таблиците е тяхната разбираемост. С таблична информация се занимаваме почти всеки ден. Погледнете например в дневника си: графикът на класа е представен там под формата на таблица. Когато пристигнем на гарата, гледаме разписанието на влаковете. Каква форма има? Това е маса! И след това е таблицата на футболното първенство. И дневникът на учителя, където той ви дава оценки, също е таблица.

Накратко характеристиките на релационната база данни могат да бъдат формулирани по следния начин:

1.Данните се съхраняват в таблици, състоящи се от колони ("атрибути", "полета") и редове ("записи");

2. Има точно една стойност в пресечната точка на всяка колона и ред;

3. Всяка колона има свое собствено име, което служи за нейно име и всички стойности в една колона са от един и същи тип.

4. Запитванията към базата данни връщат резултати под формата на таблици, които също могат да действат като обект на заявка.

5. Редовете в релационна база данни са неподредени - подреждането се извършва в момента на генериране на отговор на заявка.

6. По правило информацията в базите данни се съхранява не в една таблица, а в няколко взаимосвързани.

В релационни бази данни се извиква ред на таблица записи колоната е поле... Всяко поле в таблицата има име.

Полета- това са различни характеристики (понякога казват - атрибути) на обект. Стойностите на полета на един ред се отнасят за един обект.

Първичен ключв базата данни се извиква поле (или набор от полета), чиято стойност не се повтаря в различни записи.

Има още едно много важно свойство, свързано с всяко поле - тип поле... Типът на полето определя набора от стойности, които дадено поле може да приеме в различни записи.

Има четири основни типа полета, използвани в релационни бази данни:

Числова;

Символичен;

Логично.

25. Системи за управление на бази данни и принципи на работа с тях. Търсене, изтриване и сортиране на данни в базата данни. Условия за търсене (логически изрази); подреждане и сортиране на ключове.

Системи за управление на бази данни (СУБД).

За създаване на бази данни, както и за извършване на операции по търсене и сортиране, са предназначени специални програми - системи за управление на бази данни (СУБД).

По този начин е необходимо да се прави разлика между действителната база данни (DB) - подредени набори от данни, и системи за управление на бази данни (DBMS) - програми, които управляват съхранението и обработката на данни. Например приложението Access, което е част от пакета програми на Microsoft Office, е система за управление на база данни, която позволява на потребителя да създава и манипулира таблични бази данни.

Релационната база данни е по същество двуизмерна таблица. Запис тук означава ред от двуизмерна таблица, чиито елементи образуват колоните на таблицата. Колоните могат да бъдат числови, текстови или датирани, в зависимост от типа данни. Редовете на таблицата са номерирани.

Работата с СУБД започва със създаване на структура на база данни, т.е. с дефиницията:

броят на колоните;

имена на колони;

видове колони (текст/число/дата);

ширини на колоните.

Основните функции на СУБД:

Управление на данни във външна памет (на дискове);

Управление на данни в паметта;

Регистриране на промените и възстановяване на базата данни след повреди;

Поддръжка на езици за бази данни (език за дефиниране на данни, език за манипулиране на данни).

В командите на СУБД условието за избор се записва под формата на логически израз.

Булев израз, подобно на математически израз, се изпълнява (оценява), но резултатът не е число, а булева стойност: true или false.

Израз, състоящ се от една логическа стойност или една релация, ще се нарича прост логически израз.

Често има задачи, в които се използват не отделни условия, а набор от свързани условия (отношения). Например, трябва да изберете ученици, чието тегло е над 60 и височина е по-малко от 168.

Израз, съдържащ логически операции, ще се нарича сложен логически израз.

Обединяването на две (или повече) изявления в едно, използвайки обединението "и", се нарича операция на логическо умножение или конюнкция.

В резултат на логическо умножение (конюнкция) се получава истина, ако всички логически изрази са верни.

Обединението на две (или повече) изрази, използващи обединението "или", се нарича операция на логическо събиране или дизюнкция.

В резултат на логическо събиране (дизюнкция), вярно се получава, ако поне един логически израз е верен.

Прикачването на частица "не" към изявление се нарича операция на логическо отрицание или инверсия.

27. Електронни таблици, предназначение и основни функции.

Електронна таблицае програма за цифрова обработка на данни, която съхранява и обработва данни в правоъгълни таблици.

Електронната таблица се състои от колони и редове. Заглавията на колоните се обозначават с букви или комбинации от букви (A, G, AB и т.н.), заглавията на редове с цифри (1, 16, 278 и т.н.). Клетка е пресечната точка на колона и ред.

Всяка клетка в таблицата има свой собствен адрес. Адресът на клетка на електронна таблица се състои от заглавка на колона и заглавка на ред, например: A1, F123, R1. Клетката, с която се извършват някои действия, се маркира с рамка и се нарича активна.

Типове данни. Електронните таблици ви позволяват да работите с три основни типа данни: число, текст и формула.

Числата в електронните таблици на Excel могат да бъдат записани в обичайния числов или експоненциален формат, например: 195.2 или 1.952E + 02. По подразбиране числата са подравнени вдясно в клетка. Това се дължи на факта, че когато поставяте числа едно под друго (в колона на таблица), е удобно да имате подравняване по цифри (единици под единици, десетки под десетки и т.н.).

Формулата трябва да започва със знак за равенство и може да включва числа, имена на клетки, функции (математически, статистически, финансови, дата и час и др.) и знаци за математически операции. Например, формулата “= A1 + B2” събира числата, съхранени в клетки A1 и B2, а формулата “= A1 * B” умножава числото, съхранено в клетка A1 по 5. Когато въведете формула, клетката не показва самата формула и резултата от изчисленията с помощта на тази формула. Когато промените първоначалните стойности, включени във формулата, резултатът се преизчислява незабавно.

Абсолютни и относителни връзки. Формулите използват препратки към адреси на клетки. Има два основни типа връзки: относителни и абсолютни. Разликите между тях се появяват, когато копирате формула от активна клетка в друга клетка.

Относителна препратка във формула се използва за обозначаване на адрес на клетка, изчислен спрямо клетката, в която се намира формулата. Когато преместите или копирате формула от активната клетка, относителните препратки се актуализират автоматично въз основа на новата позиция на формулата. Относителните препратки са както следва: A1, B3.

Ако знакът за долар е пред буква (например: $ A1), тогава координатата на колоната е абсолютна, а координатата на реда е относителна. Ако знакът за долар е пред число (например A $ 1), тогава, напротив, координатата на колоната е относителна, а редовете са абсолютни. Такива връзки се наричат ​​смесени връзки.

Например, да предположим, че клетка C1 съдържа формулата = A $ 1 + $ J31, която, когато се копира в клетка D2, става = B $ 1 + $ B2. Относителните връзки се промениха при копиране, но абсолютните не.

Сортиране и търсене на данни. Електронните таблици ви позволяват да сортирате данните си. Данните в електронните таблици се сортират във възходящ или низходящ ред. Сортирането подрежда данните в определен ред. Можете да извършвате вложено сортиране, тоест да сортирате данните по няколко колони, като редът на сортиране на колоните е зададен.

В електронните таблици можете да търсите данни в съответствие с посочените условия - филтри. Филтрите се дефинират с помощта на думи за търсене (по-голямо от, по-малко от, равно и т.н.) и стойности (100, 10 и т.н.). Например, повече от 100. Търсенето ще намери онези клетки, които съдържат данни, които съответстват на посочения филтър.

Построяване на диаграми и графики. Електронните таблици ви позволяват да представяте цифрови данни под формата на диаграми или графики. Има различни видове диаграми (лентови, кръгови и др.); изборът на тип диаграма зависи от естеството на данните.

28. Технология на обработка на информация в електронни таблици (ЕТ). Структурата на електронната таблица.

Електронната таблица е програма за обработка на цифрови данни, която съхранява и обработва данни в правоъгълни таблици. Електронната таблица е съставена от колони и редове. Заглавията на колоните се обозначават с букви или комбинации от букви (A, G, AB и т.н.), заглавията на редове с цифри (1, 16, 278 и т.н.). Клетка е пресечната точка на колона и ред. Всяка клетка в таблицата има свой собствен адрес. Адресът на клетка на електронна таблица се състои от заглавие на колона и заглавие на ред, например: Al, B5, E7. Клетката, с която се извършват някои действия, се маркира с рамка и се нарича активна. Електронните таблици, с които потребителят работи в приложението, се наричат ​​работни листове. Можете да въвеждате и променяте данни в няколко работни листа едновременно и да извършвате изчисления въз основа на данни от множество листа. Документите с електронни таблици могат да включват множество работни листове и се наричат ​​работни книги.

29. Видове данни в електронни таблици (ЕТ): числа, формули, текст. Правила за писане на формули.

Типове данни.

Електронните таблици ви позволяват да работите с три основни типа данни: число, текст и формула.

Числата в електронните таблици на Excel могат да бъдат записани в обичайния числов или експоненциален формат, например: 195,2 или 1,952О + 02. По подразбиране числата са подравнени вдясно в клетка. Това се дължи на факта, че когато поставяте числа едно под друго (в колона на таблица), е удобно да имате подравняване по цифри (единици под единици, десетки под десетки и т.н.).

Текстът в електронните таблици на Excel е поредица от знаци, състояща се от букви, цифри и интервали, например „32 MB“ е текст. По подразбиране текстът е подравнен вляво в клетка. Това се дължи на традиционния начин на писане (отляво надясно).

Формулата трябва да започва със знак за равенство и може да включва числа, имена на клетки, функции (математически, статистически, финансови, дата и час и др.) и математически знаци: операции. Например, формулата "= A1 + B2" събира числата, съхранени в клетки A1 и B2, а формулата "= A1 * 5" умножава числото, съхранено в клетка A1, по 5. Когато въведете формула, самата формула е не се показва в клетката и резултатът от изчисленията, използващи тази формула. Когато промените първоначалните стойности, включени във формулата, резултатът се преизчислява незабавно.

Правила за писане на формули в електронни таблици

1. Формулите съдържат числа, имена на клетки, знаци за операции, скоби, имена на функции

2. Аритметични операции и техните знаци:

Име на операцията Символ Комбинация от клавиши

добавяне + (Shift + + =) или (+) на допълнителната клавиатура

изваждане - (-)

умножение * (Shift + 8) или (*) на допълнителна клавиатура

разделение / (Shift + | \) или (/) на допълнителна клавиатура

степенуване ^ (Shift + 6) на английски

3. Формулата се изписва на ред, символите се подреждат последователно един след друг, всички знаци за операции се изписват; се използват скоби.

4. На първо място се извършват операции в скоби, ако няма скоби, тогава редът на изпълнение се определя от приоритета на операциите. В низходящ ред на старшинството операциите са подредени в следния ред:

1.възвеждане в степен

2.умножение, деление

3.събиране, изваждане

Операциите със същия приоритет се изпълняват в реда, в който са записани отляво надясно.

5. Формули могат да се въвеждат в режим на изчисление на дисплея, т.е. Потребителят започва да пише формула в текущата клетка със знака = и след натискане на клавиша Enter, резултатът от изчислението на формулата се показва в клетката.

6. Формули могат да се въвеждат в режим на показване на формули, т.е. потребителят пише формула без знак = в текущата клетка и формулата се показва в клетката след натискане на клавиша Enter.

30. Основни вградени функции. Абсолютни и относителни препратки в електронни таблици (ET).

Относителна препратка във формула се използва за обозначаване на адрес на клетка, изчислен спрямо клетката, в която се намира формулата. Когато преместите или копирате формула от активната клетка, относителните препратки се актуализират автоматично въз основа на новата позиция на формулата. Относителните препратки са както следва: A1, OT.

Абсолютна препратка във формула се използва за определяне на фиксиран адрес на клетка. Абсолютните препратки не се променят, когато преместите или копирате формула. В абсолютните препратки знак за долар (например $ A $ 1) се поставя пред неизменната стойност на адреса на клетката.

Ако символът на долара е пред буква (например: $ A1), тогава координатата на колоната е абсолютна, а координатата на реда е относителна. Ако знакът за долар е пред число (например A $ 1), тогава, напротив, координатата на колоната е относителна, а редовете са абсолютни. Такива връзки се наричат ​​смесени връзки. Да предположим, например, че формулата = A $ 1 + $ B1 е записана в клетка C1, която, когато се копира в клетка D2, става = B $ 1 + $ B2. Относителните връзки се промениха при копиране, но абсолютните не.

Федерална агенция за образование

абстрактно

"ВИДОВЕ ДАННИ В PASCAL"

1. Типове данни

Всякакви данни, т.е. константите, променливите, свойствата, стойностите на функциите или изразите се характеризират с техните типове. Типът дефинира набора от валидни стойности, които обектът може да има, както и набора от валидни операции, които са приложими към него. Освен това типът определя и формата на вътрешното представяне на данните в паметта на компютъра.

Като цяло езикът Object Pascal се характеризира с разклонена структура от типове данни (фиг. 1.1). Езикът предоставя механизъм за създаване на нови типове, поради което общият брой на използваните в програмата типове може да бъде толкова голям, колкото желаете.

Данните, обработвани в програмата, са разделени на променливи, константи и литерали:

Константи са данни, чиито стойности са зададени в секцията за декларация на константа и не се променят по време на изпълнение на програмата.

Променливи са декларирани в секцията за деклариране на променлива, но за разлика от константите, те получават своите стойности още по време на изпълнение на програмата и тези стойности могат да бъдат променени. Достъпът до константите и променливите е по име.

буквално няма идентификатор и е представен в текста на програмата директно от стойността.

Типдефинира набора от стойности, които елементите от данни могат да приемат, и набора от операции, разрешени върху тях.

Всички видове са описани подробно в тази и следващите четири глави.

1.1 Прости типове

Простите типове включват редови типове, реални типове и типове дата-време.

Редови типовесе различават по това, че всеки от тях има краен брой възможни стойности. Тези стойности могат да бъдат сортирани по определен начин (оттук и името на типовете) и следователно всяка от тях може да бъде свързана с някакво цяло число - поредния номер на стойността.

Истински типове, строго погледнато, също имат краен брой стойности, което се определя от формата на вътрешното представяне на реално число. Въпреки това, броят на възможните стойности на реалните типове е толкова голям, че не е възможно да се свърже цяло число (неговия брой) с всеки от тях.

Тип дата-часпредназначени за съхранение на дата и час. Всъщност той използва реален формат за тези цели.

1.1.1 Редови типове

Поредните типове включват (вижте Фигура 1.1) цяло число, булево, символно, изброимо и тип диапазон. Функцията Ord (x) е приложима за всеки от тях, която връща редната стойност на израза X.


Ориз. 1.1 - Структура на типа данни

За цялаот типове, функцията ord (x) връща стойността на самия x, тоест Ord (X) = x за x, принадлежащ на произволен цялаТип. Прилагане на заповед (x) към логично , символичен и изброимтипове дава положително цяло число в диапазона от 0 до 1 ( булев тип), от 0 до 255 ( символичен), от 0 до 65535 ( изброими). Тип диапазонзапазва всички свойства на основния порядков тип, така че резултатът от прилагането на функцията ord (x) към него зависи от свойствата на този тип.

Можете също да приложите функции към редовни типове:

пред (x)- връща предишната стойност на поредния тип (стойността, която съответства на порядковия номер ord (x) -1, тоест оrd (рred (х)) = оrd (х) - 1;

успех (x)- връща следващата стойност от пореден тип, която съответства на порядък номер ord (х) +1, т.е. оrd (Succ (х)) = оrd (х) + 1.

Например, ако програмата дефинира променливата

тогава функцията PRED (c) ще върне знака "4", а функцията SUCC (c) ще върне знака "6".

Ако си представим всеки порядков тип като подреден набор от стойности, нарастващи отляво надясно и заемащи определен сегмент на числовата ос, тогава функцията pred (x) не е дефинирана за ляво, а succ (x) - за десния край на този сегмент.

Целочислени типове ... Обхватът на възможните стойности за целочислени типове зависи от тяхното вътрешно представяне, което може да бъде един, два, четири или осем байта. Таблица 1.1 изброява имената на целочислените типове, дължината на вътрешното им представяне в байтове и диапазона от възможни стойности.

Таблица 1.1 - Целочислени типове

име Дължина, байтове Диапазон от стойности
кардинал 4 0. .. 2 147 483 647
байт 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Word 2 0...65 535
цяло число 4
Longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
LongWord 4 0. . .4 294 967 295

Видове LongWordи Int64бяха въведени за първи път във версия 4 и типовете Smallintи кардиналне се предлага в Delphi 1. Тип цяло числоза тази версия отнема 2 байта и има диапазон от стойности от -32768 до +32767, тоест е същото като Smallint .

Когато се използват процедури и функции с целочислени параметри, трябва да се ръководи от „влагането“ на типове, т.е. навсякъде, където може да се използва дума, използването е разрешено байт(но не обратното), в Longint"Включено" Smallintкоето от своя страна включва Shortint .

Списъкът с процедури и функции, приложими за целочислени типове, е даден в табл. 1.2. Буквите b, s, w, i, l означават съответно изрази от типа байт , Shortint, Word, Integer и Longint ,

x е израз на всеки от тези типове; буквите vb, vs, vw, vi, vl, vx означават променливи от съответните типове. Незадължителен параметър е посочен в квадратни скоби.

Таблица 1.2 – Стандартни процедури и функции, приложими за целочислени типове

Обжалване Тип резултат Действие
АБС (x) х Връща модула x
Chr (b) Char Връща символ по неговия код
dec (vx [, i]) - Намалява стойността на vx с i, а при липса на i - с 1
inc (vx [, i]) - Увеличава стойността на vx с i, а при липса на i с 1
Здравейте (w) байт Връща лъка от висок ред на аргумента
здравей (аз) Също Връща третия байт
Ло (i) Връща най-малко значимия байт на аргумента
ниска (w) Също
нечетно (л) булев Връща True, ако аргументът е нечетно число
произволен (w) Същото като параметър Връща псевдослучайно число, равномерно разпределено в диапазона 0 ... (w-l)
sqr (x) х Връща квадрата на аргумента
разменям (i) цяло число Разменя байтовете с една дума
разменям (w) Word също

При операции с цели числа типът на резултата ще съответства на типа на операндите, а ако операндите са от различни цели числа, на общия тип, който включва и двата операнда. Например, когато действате с съкратени думаобщ ще бъде типът цяло число... При настройката по подразбиране компилаторът на Delphi не генерира код, който контролира възможността за проверка дали дадена стойност е извън обхвата, което може да доведе до объркване.

Булеви типове ... Булевите типове включват Boolean, ByteBool, Bool, wordBoolи LongBool... В стандартния Pascal е дефиниран само типът булев, останалите булеви типове са въведени в Object Pascal за съвместимост с Windows: типове булеви ByteBoolзаемат по един байт всеки, Були WordBool- 2 байта всеки, LongBool- 4 байта. Булевите стойности могат да бъдат една от предварително декларираните константи False или True.

Тъй като булевият тип е пореден тип, той може да се използва в оператор на цикъл от преброим тип. В Delphi 32 for булевсмисъл

Ord (Вярно) = +1, докато за други типове ( Бул, WordBoolи др.)

Ord (True) = -1, така че този вид оператор трябва да се използва внимателно! Например, за Delphi 6, изпълнимият оператор showMessage ("---") в следния цикъл заняма да бъде изпълнен дори веднъж:

за L: = False to True направи

Покажи съобщение ("-);

Ако заменим типа на параметъра на цикъла L в предишния пример с булев, цикълът ще продължи и съобщението ще се появи два пъти на екрана. [За Delphi версии 1 и 2, ord (True) = + 1 за всеки булев тип.]

Тип символ ... Стойностите на типа символ са наборът от всички символи на компютъра. На всеки знак е присвоено цяло число в диапазона 0 ... 255. Това число служи като код за вътрешното представяне на символа и се връща от функцията ord.

Windows използва ANSI кода за кодиране (наречен на Американския национален стандартен институт - Американския институт по стандартизация, който предложи този код). Първата половина на компютърните символи с кодове 0 ... 127 съответства на таблица 1.3. Втората половина на знаци с кодове 128 ... 255 варира за различните шрифтове. Стандартните Windows шрифтове Arial Cyr, Courier New Cyr и Times New Roman за представяне на знаци на кирилица (без буквите "ё" и "Ё") използват последните 64 кода (от 192 до 256): "A" ... "Z" са кодирани стойности 192..223, “a” ... “i” - 224 ... 255. Символите "Ё" и "ё" имат съответно кодове 168 и 184.

Таблица 1.3 - Кодиране на знаци според стандарта ANSI

код символ код. символ код. символ код символ
0 NUL 32 BL 64 @ 96 "
1 ZON 33 ! 65 А 97 а
2 STX 34 66 V 98 б
3 ETX 35 # 67 С 99 с
4 EOT 36 $ 68 д 100 д
5 ENQ 37 % 69 Е 101 д
6 ACK 38 & 70 Ф 102 е
7 БЕЛ 39 " 71 Г 103 д
8" BS 40 ( 72 н 104 з
9 Ht 41 ) 73 аз 105 и
10 LF 42 * 74 Дж 106 j
11 VT 43 + 75 ДА СЕ 107 к
12 FF 44 Ф 76 Л 108 1
13 CR 45 - 77 М 109 м
14 ТАКА 46 78 н 110 н
15 SI 47 / 79 0 111 О
16 DEL 48 0 80 Р 112 П
17 DC1 49 1 81 В 113 q
18 DC2 50 2 82 Р 114 r
19 DC3 51 3 83 С 115 с
20 DC 4 52 4 84 T 116 T
21 NAK 53 5 85 У 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 У 119 У
24 МОГА 56 8 88 NS 120 х
25 ЕМ 57 9 89 Й 121 Имайте
26 SUB 58 : 90 З .122 z
27 ESC 59 ; 91 T 123 {
28 FS 60 < 92 \ 124 1
29 GS 61 = 93 ] 125 }
30 Rs 62 > 94 Л 126 ~
31 НАС 63 Ф 95 127 r

Символите с кодове 0 ... 31 се отнасят за сервизни кодове. Ако тези кодове се използват в символния текст на програмата, те се считат за интервали.

Да въведете charПриложими са операции за релации, както и вградени функции:

Сhar (в)- функция като char; преобразува израза в тип байткъм символ и го връща със стойността му;

горни букви (CH)- функция като char; връща главна буква, ако ch е малка латиница, в противен случай връща самия знак ch (за кирилица връща оригиналния знак).

Изброен тип ... Изброен тип се посочва чрез изброяване на стойностите, които може да получи. Всяка стойност е именувана с някакъв идентификатор и се намира в списък, заобиколен от скоби, например:

цветове = (червено, бяло, синьо);

Използването на изброени типове прави програмите по-ясни.

Съответствието между стойностите на изброения тип и поредните номера на тези стойности се установява по реда на изброяване: първата стойност в списъка получава ред 0, втората - 1 и т. н. Максималната мощност на изброеният тип е 65536 стойности, следователно, всъщност, изброен тип определя някакво подмножество от целочисления тип думаи може да се разглежда като компактна декларация на група от целочислени константи със стойности 0, 1 и т.н.

Използването на изброени типове повишава надеждността на програмите поради възможността да се контролират стойностите, които получават съответните променливи. Обратното преобразуване е разрешено в Object Pascal: всеки израз от типа Wordможе да се преобразува в изброена стойност, стига стойността на целочисления израз да не надвишава мощността на този тип. Това преобразуване се постига чрез използване на автоматично декларирана функция с името на изброен тип.

Тип диапазон ... Диапазон-тип е подмножество от неговия основен тип, който може да бъде всеки пореден тип, различен от тип диапазон.

Типът на диапазона се задава от границите на неговите стойности в основния тип:

<мин.знач.>..<макс.знач.>

Тук<мин. знач. >- минималната стойност на типа диапазон;<макс. знач. >- максималната му стойност.

Типът на диапазона не е необходимо да се описва в секцията тип, но може да бъде посочен директно при деклариране на променлива.

Когато определяте тип диапазон, трябва да се ръководите от следните правила:

два знака ".." се третират като един знак, така че не се допускат интервали между тях; лявата граница на диапазона не трябва да надвишава дясната му граница.

Типът на диапазона наследява всички свойства на своя базов тип, но с ограничения поради по-ниската си мощност. По-специално, ако е дефинирана променлива.

Стандартната библиотека Object Pascal включва две функции, които поддържат работа с типове диапазони:

високо (x)- връща максималната стойност на типа диапазон, към който принадлежи променливата x;

Ниско (x)- връща минималната стойност на типа диапазон.

1.1.2 Реални типове

За разлика от редовите типове, чиито стойности винаги се сравняват с редица цели числа и следователно са представени в компютъра абсолютно точно, стойностите на реалните типове определят произволно число само с известна крайна точност, в зависимост от вътрешен формат на реалното число.

Таблица 1.4 - Реални типове

В предишни версии на Delphi 1 ... 3 тип Истинскивзе 6 байта и имаше диапазон от стойности от 2,9 * 10-39 до 1,7 * 1038. Във версии 4 и 5 този тип е еквивалентен на типа Двойна... Ако е необходимо (от съображения за съвместимост) използвайте 6-байта Истински, трябва да посочите директивата на компилатора (SREALCOMPATIBILITY ON).

Както можете да видите от таблицата. 1.4, реално число в Object Pascal заема от 4 до 10 последователни байта и има следната структура в паметта на компютъра.

Тук s е знаковата цифра на числото; e - експоненциална част; съдържа двоичен ред; m е мантисата на числото.

Мантиса m има дължина 23 (за единичен) до 63 (за Разширено) от двоични цифри, което осигурява точност от 7 ... 8 for единичени 19 ... 20 за Разширенодесетични цифри. Десетичната точка (запетая) се подразбира преди левия (най-значим) бит на мантисата, но при манипулиране на число, позицията му се измества наляво или надясно в съответствие с двоичния ред на числото, съхранено в експоненциалната част, следователно операциите с реални числа се наричат ​​аритметика с плаваща запетая (запетая) ...

Имайте предвид, че аритметичният копроцесор винаги обработва числа във формата Разширено, а останалите три реални типа в този случай се получават чрез просто съкращаване на резултатите до желания размер и се използват главно за пестене на памет.

Типовете заемат специално място в Object Pascal. компи Валута, които се третират като реални числа с дробни части с фиксирана дължина: in компдробната част има дължина от 0 цифри, тоест просто отсъства, в валутадължината на дробната част е -4 знака след десетичната запетая. Всъщност и двата типа дефинират голямо цяло число със знак, което съхранява 19 ... 20 значими десетични цифри (вътрешно те заемат 8 последователни байта). В същото време в изразите компи валутаса напълно съвместими с всички други реални типове: всички реални операции са дефинирани над тях, могат да се използват като аргументи на математически функции и т.н. Най-подходящата област на приложение на тези типове са счетоводните изчисления.

1.1.3 Тип дата-час

Типът дата-час се определя от стандартен идентификатор TDateTimeи е предназначен за едновременно съхранение на дата и час. Във вътрешното представяне той заема 8 байта и е подобен валутае реално число с фиксирана дробна част: датата се съхранява в цялата част на числото, а времето се съхранява в дробната част. Датата се определя като броя на дните, които са изминали от 30 декември 1899 г., а времето се определя като част от деня от 0 часа, така че стойността 36444,837 съответства на датата 10/11/1999 и час 20:05ч. Броят на дните може да бъде отрицателен, но стойности по-малки от -693594 (съответстващи на датата 00.00.0000 от Рождество Христово) се игнорират от функциите за преобразуване от дата в низ.

По-горе данни като TDateTimeдефинират се същите операции като с реални числа, а константи и променливи от целочислен и реален тип могат да участват в изрази от този тип.

Тъй като вида TDateTimeсъвместим с формата на реалните числа, можете лесно да определите датата, която е няколко дни напред или назад от дадена дата: за това е достатъчно да добавите или извадите желаното цяло число от дадената дата, съответно.

1.2 Структурирани типове

Всеки от структурираните типове (а в Object Pascal има четири от тях: масиви, записи, набори и файлове) се характеризира с множеството елементи, които образуват този тип. Всеки елемент от своя страна може да принадлежи към структуриран тип, което ни позволява да говорим за възможното влагане на типове. Object Pascal позволява произволна дълбочина на влагане на типове, но общата дължина на всеки от тях във вътрешното представяне не трябва да надвишава 2 GB.

За съвместимост със стандартния Pascal, Object Pascal има право да предхожда декларация на структуриран тип с запазена дума опаковани, инструктирайки компилатора да запази колкото е възможно повече паметта, разпределена за обекти от структуриран тип; но компилаторът всъщност игнорира този намек: "опаковането" на данни в Object Pascal се извършва автоматично, когато е възможно.

1.2.1 Масиви

Масивите в Object Pascal са много подобни на подобни типове данни в други езици за програмиране. Отличителна черта на масивите е, че всички техни компоненти са данни от един и същи тип (евентуално структурирани). Тези компоненти могат лесно да бъдат поръчани и всеки от тях може да бъде достъпен, като просто посочите неговия сериен номер.

Описанието на типа масив се дефинира, както следва:

<имя типа>= масив [<сп.инд.типов>] на<тип>;

Тук<имя типа>- правилен идентификатор; масив, от- запазени думи (масив, от);<сп.инд.типов>- списък с един или повече типове индекси, разделени със запетаи; квадратните скоби около списъка са изискване за синтаксис;<тип>- всякакъв тип Object Pascal.

Като типове индекси в Object Pascal можете да използвате всякакви порядъчни типове, които имат мощност не повече от 2 GB (тоест, освен LongWordи Int64)

Дълбочината на влагане на структурирани типове като цяло и следователно на масиви е произволна, така че броят на елементите в списъка с типове индекси (измерение на масива) не е ограничен, но общата дължина на вътрешното представяне на който и да е масив не може надвишава 2 GB. В паметта на компютъра елементите на масива следват един след друг, така че при преминаване от по-ниски адреси към по-високи адреси, най-десният индекс на масива се променя най-бързо.

В Object Pascal можете да предавате всички елементи от един масив към друг масив от същия тип с един оператор за присвояване.

1.2.2 Записи

Записване е структура от данни, съставена от фиксиран брой компоненти, наречени полета за запис. За разлика от масива, компонентите (полета) на запис могат да бъдат от различни типове. За да може да се направи препратка към определен компонент на записа, полетата се наименуват.

Структурата на декларацията за типа на записа е както следва:

<имятипа>= запис<сп.полей>край;

Тук<имя типа>- правилен идентификатор; запис / край- запазени думи (запис, край);<сп.полей>- списък с полета; е последователност от секции на запис с точка и запетая между тях.

Всеки раздел на запис се състои от един или повече идентификатори на полета, разделени със запетаи.

Оферта Случай на, който отваря вариантната част, изглежда като съответния оператор за избор, но всъщност играе ролята само на вид служебна дума, обозначаваща началото на вариантната част. Ето защо в края на вариантната част не трябва да слагате крайкато двойка за Случай на... (Тъй като вариантната част винаги е последната в записа, тя все още е последвана от край, но само като двойка за запис). Ключ за избор в предложението Случай навсъщност се игнорира от компилатора: единственото изискване за него в Object Pascal е ключът да дефинира някакъв стандартен или предварително деклариран порядков тип.

Имената на полетата трябва да са уникални в рамките на записа, където са декларирани, но ако записите съдържат полета на записи, тоест те са вложени едно в друго, имената могат да се повтарят на различни нива на влагане.

1.2.3 Комплекти

Комплектите са набори от един и същи тип обекти, логически свързани един с друг. Естеството на връзките между обектите се подразбира само от програмиста и не се контролира от Object Pascal по никакъв начин. Броят на елементите, включени в набора, може да варира от 0 до 256 (набор, който не съдържа елементи, се нарича празен). Непостоянството на броя на техните елементи е това, което множествата се различават от масивите и записите.

Две множества се считат за еквивалентни тогава и само ако всичките им елементи са еднакви и редът на елементите в множеството е безразличен. Ако всички елементи на едно множество са включени и в друго, те говорят за включване на първото множество във второто. Във всеки друг е включен празен комплект.

Описанието на типа комплект е както следва:

<имя типа>= комплект от<базовый тип>;

Тук<имя типа>- правилен идентификатор; комплект, на- запазени думи (набор, от);<базовый тип>- основният тип на елементите на множеството, който може да бъде произволен порядък тип, освен Word, Integer, Longint, Int64 .

За дефиниране на множество се използва т. нар. конструктор на набор: списък със спецификации на елементите на множеството, разделени един от друг със запетаи; списъкът е заобиколен от квадратни скоби. Спецификациите на елементите могат да бъдат константи или изрази от основен тип, както и тип диапазон от същия основен тип.

Вътрешната структура на множеството е такава, че на всеки негов елемент се приписва една двоична цифра (един бит); ако елементът е включен в набора, съответният бит има стойност 1, в противен случай - 0. В същото време минималната единица памет е един байт, съдържащ 8 бита, така че компилаторът разпределя един байт на наборите и като в резултат кардиналността на всеки от тях стана 8 елемента. Максималната мощност на набор е 256 елемента. За такива набори компилаторът заделя 16 последователни байта.

И още един експеримент: променете диапазона на основния тип на 1..256. Въпреки че кардиналността на този тип е 256 елемента, когато се опитва да компилира програмата, компилаторът ще съобщи за грешка: Наборите могат да имат най-много 256 елемента (Наборите могат да имат не повече от 256 елемента), тъй като номерирането на елементите на набора започва от нула, независимо от долната граница, декларирана в програмата ... Компилаторът позволява да се използва като основен тип тип целочислен диапазон с минимална граница от 0 и максимум 255, или всеки изброен тип с не повече от 256 елемента (максималната мощност на изброен тип е 65536 елемента).

1.3 Струни

Следните типове се използват за текстообработка в Object Pascal:

къса линия shortStringили низ [n]където n<= 255;

дълга линия низ ;

широка струна WideString ;

низ с нулев край pchar .

Общото между тези типове е, че всеки низ се третира като едномерен масив от знаци, броят на знаците в който може да се промени в работеща програма: за низ [n] дължината на низа варира от 0 до n , за низи pchar- от 0 до 2 GB.

Стандартният Pascal използва само къси низове низ [n]... В паметта на такъв низ се разпределят n + i байта, като първият байт съдържа текущата дължина на низа, а самите знаци са разположени, започвайки от 2-ия байт. Тъй като в този случай един байт се разпределя за дължината на низа, максималната дължина на кратък низ не може да надвишава 255 знака. За деклариране на кратък низ с максимална дължина е предназначен стандартният тип Къса струна(еквивалентен низ).

Windows широко използва низове, завършени с нула, които са низове от знаци, разделени със знака # o. Максималната дължина на такъв низ е ограничена само от наличната памет и може да бъде много голяма.

Delphi 32-bit въвежда нов тип низсъчетавайки удобствата на двата вида. При работа с този тип паметта се разпределя според нуждите (динамично) и е ограничена от наличната памет, налична за програмата.

1.4 Указатели и памет на купчина

1.4.1 Динамична памет

Динамична памет- това е RAM паметта на компютъра, предоставена на програмата, когато тя работи. Динамичното разпределение на данни означава директно използване на динамична памет, докато програмата работи. За разлика от тях, статичното разпределение се извършва от компилатора на Object Pascal по време на компилацията на програмата. При динамично разпределение нито типът, нито количеството данни за разпределяне са известни предварително.

1.4.2 Указатели

PC RAM е съвкупност от клетки за съхранение на информация - байтове, всеки от които има свой номер. Тези числа се наричат ​​адреси, те ви позволяват да получите достъп до всеки байт памет. Object Pascal предоставя на програмиста гъвкав инструмент за управление на паметта - така наречените указатели. Указателят е променлива, която съдържа адреса на байта на паметта като своя стойност. Използвайки указатели, можете да разпределите всеки от известните типове данни в Object Pascal в heap. Само няколко от тях ( Byte, Char, ShortInt, Boolean) заемат един байт във вътрешното представяне, останалите - няколко последователни. Следователно всъщност указателят адресира само първия байт данни.

Обикновено указателят е свързан с някакъв тип данни. Ще наричаме такива указатели въведени. За да декларирате въведен указател, използвайте символа ^, който се поставя пред съответния тип.

В Object Pascal можете да декларирате указател и да не го свързвате с конкретен тип данни. За това се използва стандартният тип. показалец, например:

Указателите от този вид ще се наричат ​​нетипизирани. Тъй като нетипизираните указатели не са свързани с конкретен тип, е удобно да ги използвате за динамично разпределяне на данни, чиято структура и тип се променят в хода на програмата.

Както вече споменахме, стойностите на указателите са адресите на променливите в паметта, така че може да се очаква, че стойността на един указател може да бъде предадена на друг. Всъщност това не е вярно. В Object Pascal можете да предавате само стойности между указатели, свързани със същия тип данни.

1.4.3 Разпределяне и освобождаване на динамична памет

Цялата памет памет в Object Pascal се третира като масив от байтове, наречен хеп.

Паметта за всяка динамично разпределена променлива се разпределя от процедурата New. Параметърът за извикване на тази процедура е въведен указател. В резултат на повикването указателят придобива стойност, съответстваща на адреса, от който могат да бъдат поставени данните. Стойността, посочена от показалеца, т.е. действителните данни, разпределени в хийпа, се обозначават със символа ^, който се поставя непосредствено след показалеца. Ако зад показалеца няма символ ^, това означава адреса, където се намират данните. Има смисъл да помислим отново върху това, което току-що беше казано: стойността на всеки указател е адрес и за да посочим, че не говорим за адрес, а за данните, които се намират на този адрес, ^ се поставя зад показалеца (понякога това се нарича указател за дерефериране).

Динамично разпределените данни могат да се използват навсякъде в програмата, където е разрешено за константи и променливи от съответния тип

Динамичната памет може не само да бъде взета от купчината, но и върната обратно. За това се използва процедурата Dispose. Например операторите

Изхвърляне (pJ);

Изхвърляне (pR);

ще върне в купчината паметта, която преди това е била присвоена на указателите pJ и pR (вижте по-горе).

Обърнете внимание, че процедурата Dispose (pPtr) не променя стойността на указателя pPtr, а само връща паметта, която преди това е била свързана с този указател, в хийпа. Въпреки това, повторното прилагане на процедурата към свободен указател ще доведе до грешка по време на изпълнение. Програмистът може да маркира освободения указател със запазената дума nil.

1.5 Псевдоними на типа

За всеки тип можете да декларирате толкова псевдоними, колкото искате. Например:

TMyInteger = цяло число;

В бъдеще псевдонимът може да се използва по същия начин като основния тип:

Mylnt: TMyInteger;

Mylnt: = 2 * Кръгла (pi);

Тези видове псевдоними обикновено се използват, за да направят кода по-четлив. Въпреки това, в Object Pascal можете да декларирате силно въведени псевдоними, като добавите запазения тип дума пред името на основния тип:

TMyIntegerType = тип Integer;

MylntVar: TMyIntegerType;

От гледна точка на компилатора, въведените псевдоними са съвместими с основния тип в различни видове изрази, но всъщност те декларират нов тип данни, така че не могат да се използват като формални параметри на извиквания на подпрограма вместо основния тип. Ако например е декларирана процедура

функция MylntFunc (APar: цяло число): цяло число;

тогава такъв призив към нея

MylntFunc (MylntVar)

ще се счита за погрешно от компилатора.

Строго въведените псевдоними карат компилатора да генерира информация за типа по време на изпълнение (RTTI). Тази информация обикновено се използва от средата на Delphi за поддържане на функционирането на различни видове редактори.

3.2. Прости типове данни в Turbo Pascal 7

Прост тип дефинира подреден набор от стойности на параметрите. Turbo Pascal има следните групи прости типове:

  • целочислени типове;
  • булев тип;
  • тип символ;
  • изброен тип;
  • тип диапазон;
  • истински типове.

Всички прости типове, с изключение на реалните, се наричат ​​редови типове. За стойности на редовни типове са дефинирани стандартни процедури и функции: Dec, Inc, Ord, Pred, Succ (вижте клауза 13.1).

3.2.1. Целочислени типове

За разлика от Pascal, където е дефиниран единичен целочислен тип, Turbo Pascal има пет стандартни типа целочислени: Shortint, Integer, Longint, Byte, Word. Характеристиките на тези видове са дадени в табл. 2.

Таблица 2. Целочислени типове данни

Тип Обхват Форматиране Размер в байтове
Shortint -128 .. 127 Иконичен 1
цяло число -32768 .. 32767 Иконичен 2
Longint -2147483648 .. 2147483647 Иконичен 4
байт 0 .. 255 Неподписан 1
Word 0 .. 65535 Неподписан 2

3.2.2. Булев тип

Стандартният булев тип (размер - 1 байт) е тип данни, всеки елемент от който може да има само две стойности: True и False. В този случай са изпълнени следните условия:
Фалшива заповед (False) = 0
Ред (Вярно) = 1
Succ (False) = Вярно
Пред (Вярно) = Невярно

Turbo Pascal 7.0 добавя още три булеви числа ByteBool (размер 1 байта), WordBool (размер 2 байта) и LongBool (размер 4 байта). Те бяха въведени за унификация с други езици за програмиране и със средата на Windows. Те се различават от стандартния булев тип по действителната стойност на параметъра от този тип, която съответства на стойността True. За всички булеви типове стойността False съответства на числото 0, записано в съответния брой байтове. Стойността True за булевия тип съответства на числото 1, записано в неговия байт, а за други типове стойността True съответства на всяко число, различно от нула (въпреки че функцията Ord в този случай дава стойността 1).

3.2.3. Тип символ

Стандартният тип символи Char дефинира пълен набор от ASCII знаци. Функцията Ord от стойност от тип Char дава кода на съответния символ. Стойностите на символния тип се сравняват по техните кодове.

3.2.4. Изброен тип

Изброен тип не е стандартен и се дефинира от набор от идентификатори, с които стойностите на параметрите могат да съвпадат. Списъкът с идентификатори е посочен в скоби, идентификаторите са разделени със запетаи:

Тип
= ();)

Важно е в какъв ред са изброени идентификаторите при дефиниране на тип, тъй като на първия идентификатор е присвоен пореден номер 0, на втория - 1 и т. н. Същият идентификатор може да се използва при дефинирането само на един изброен тип . Функцията Ord дава поредния номер на своята стойност от изброена стойност.

Пример.Изброен тип.

тип Operat = (Plus, Minus, Mult, Divide);

Булевият тип е специален случай на изброен тип:

тип Boolean = (False, True);

3.2.5. Тип диапазон

Във всеки порядък тип можете да изберете подмножество от стойности, определени от минималната и максималната стойност, която включва всички стойности на оригиналния тип, които са в тези граници, включително самите граници. Такова подмножество дефинира тип диапазон. Типът на диапазона се посочва чрез посочване на минималните и максималните стойности, разделени от две точки:

тип =. ... ;

Минималната стойност при дефиниране на този тип не трябва да е по-голяма от максималната.

Пример.Дефиниране на видовете диапазони.

Тип
Дузина = 1..12; (числа от 1 до 12)
AddSub = Плюс..Минус; (операции за събиране и изваждане)

3.2.6. Истински типове

За разлика от езиковия стандарт Pascal, където е дефиниран само един реален тип, Turbo Pascal има пет стандартни реални типа: Real, Single, Double, Extended, Comp. За характеристиките на тези типове вижте таблицата. 3. Таблица 3. Реални типове данни

Тип Обхват Значими цифри Размер в байтове
Истински 2.9*10-39..1.7*1038 11-12 6
Неженен 1.5*10-45..3.4*1038 7-8 4
Двойна 5.0*10-324.-1.7*10308 15-16 8
Разширено 3.4*10-4932..1.1*104932 19-20 10
Комп -263+1..263-1 19-20 8

Типът Comp всъщност е целочислен тип с разширен диапазон, но не се счита за ординален.

Типовете Single, Double, Extended и Comp могат да се използват в програми само ако има аритметичен копроцесор или ако емулаторът на копроцесор е активиран (вижте раздели 17.5.8 и 17.7.1).