Типове данни на Pascal. Прости типове данни

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

t,s - char (знак);

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

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

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

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

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

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

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

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

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

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

var a:integer; б: дума; 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
Comp -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

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

Номер Писане на Паскал
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 кода на необходимия символ, да поставите знак #.

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

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

булев тип

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

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

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

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

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

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

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

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

релация 5>3 , резултат true (вярно);

релация 5=3 , резултатът е невярно (false).

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

var a,b:boolean; (a,b са булеви променливи) Begin a:=True; (променлива a е зададена на true) b:=false; (променлива b е зададена на false) Край.

Константи

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

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

Константен формат на декларация

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

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

Const (декларация за постоянен раздел) year=2003; (константа от целочислен тип, тъй като в записа няма десетична точка) time=14.05; (реален тип константа) N=24; (константа от целочислен тип, тъй като в записа няма десетична точка) P=3.14; (реален тип константа) A=вярно; (булева константа) str1='7'; (символен тип константа) str2='A'; (символен тип константа) str3='Турбо'; (константа тип низ) Var (декларация на променлива секция) X,y:integer; (променливи от целочислен тип)

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

От набора персонализирани типове ще разгледаме само

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

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

Изброен тип

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

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

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

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

Пример за декларация на изброен тип:

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

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

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

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

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

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

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

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

За да определите програмно поредния номер, използвайте функцията Ord().

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

Ord(понеделник) = 0;

Ord(събота) = 5;

Орд (неделя) = 6.

интервален тип

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

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

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

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

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

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

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

Описание на числови типове данни (цели числа) Pascal

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

С цял числови типове данниПаскал може да извършва следните операции:

  • аритметика:
    добавяне(+);
    изваждане (-);
    умножение(*);
    остатък от деление (mod);
    степенуване;
    унарен плюс (+);
    унарен минус (-).
  • Операции за връзка:
    отношение на равенство (=);
    отношение на неравенство (<>);
    съотношение по-малко (<);
    съотношение по-голямо от (>);
    съотношение не по-малко от (>=);
    съотношение не повече (<=).

При действие с цели числови типове даннитипът на резултата ще съответства на типа на операндите, а ако операндите са от различни цели числа, на типа на операнда, който има максимална кардиналност (максимален диапазон от стойности). Евентуалното препълване на резултата не се контролира по никакъв начин (важно е!) , което може да доведе до грешки.

Особено внимание трябва да се обърне на операцията за деление на цели числови типове данни. В Паскал са разрешени две операции за деление, които съответно се обозначават "/" И див. Трябва да знаете, че резултатът от разделянето на "/" не е цяло число, а реално число(това е вярно дори ако разделите 8 на 2, т.е. 8/2=4,0). Разделението div е целочислено деление, т.е. целочислен тип резултат.

Описание на числови типове данни (реални) Pascal

Реалният числов тип данни се отнася до подмножество от реални числа, които могат да бъдат представени в така наречения формат с плаваща запетая с фиксиран брой цифри. С плаваща запетая всеки числов тип данни се представя като две групи цифри. Първата група цифри се нарича мантиса, втората - ред. Като цяло числов тип данни във форма с плаваща запетая може да бъде представен по следния начин: X= (+|-)MP (+ | -) r , където M е мантисата на числото; r е редът на числото (r е цяло число); P е основата на бройната система. Например, за десетична основа представянето на 2E-1 (тук E е основата на десетичната бройна система) ще изглежда така: 2*10 -1 =0,2, а представянето на 1,234E5 ще съответства на: 1,234* 10 5 =123400,0.

Pascal използва следните типове реални числа, които дефинират произволно число само с известна крайна точност, в зависимост от вътрешния формат на реалното число:

Когато описвате реална променлива от реален тип, в паметта на компютъра ще бъде създадена 4-байтова променлива. В този случай 3 байта ще бъдат дадени под мантисата и един - под поръчката.

Можете да извършвате следните операции върху реални числови типове данни:

  • аритметика:
    добавяне (+);
    изваждане (-);
    умножение(*);
    деление (/);
    степенуване;
    унарен плюс (+);
    унарен минус (-).
  • Операции за връзка:
    отношение на неравенство (<>);
    съотношение по-малко (<);
    съотношение по-голямо от (>);
    съотношение не по-малко от (>=);
    съотношение не повече (<=).

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

Специално място в Pascal заема числовият тип данни. комп, което се третира като реално число без експоненциални и дробни части. Всъщност, компе "голямо" цяло число със знак, което съхранява 19..20 значими десетични цифри. В същото време числовият тип данни компв изрази, той е напълно съвместим с други реални типове: върху него са дефинирани всички реални операции, може да се използва като аргумент на математически функции и т.н.

Относно конвертирането на числови типове данни в Pascal

Неявните (автоматични) преобразувания на числови типове данни са почти невъзможни в Pascal. Изключение се прави само за вида цяло число, което е разрешено да се използва в изрази като истински. Например, ако променливите са декларирани по следния начин:

VarX: цяло число; Y: истински

След това операторът

ще бъде синтактично правилен, въпреки че изразът за цяло число е отдясно на знака за присвояване, а реалната променлива е отляво, компилаторът ще извърши автоматично преобразуването на числови типове данни. Обратното преобразуване е автоматично тип истинскиза вид цяло числоне е възможно в Pascal. Нека си спомним колко байта са разпределени за променливи като цяло числоИ истински: под целочислен типданни цяло числоЗаделят се 2 байта памет, а под реална - 6 байта. За преобразуване истински V цяло числоима две вградени функции: кръгъл(x) закръгля реално x до най-близкото цяло число, trunc(x) съкращава реално число чрез изхвърляне на дробната част.

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

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

Например, стойностите 1 и 2 са от целочислен тип, могат да се събират, умножават и да се извършват други аритметични операции. Значенията "монитор" и "Паскал" са лингвистични по природа, те имат свой собствен набор от валидни операции. В повечето често използвани езици могат да се използват само добре дефинирани, известни типове. Pascal, заедно със стандартните типове, открити в други езици на високо ниво, позволява на програмиста да създава свои собствени типове.

Всички типове, разрешени в езика Pascal, са разделени на две големи групи: прости и сложни (структурирани).

Тип Обхват Мантиса, знаци Необходима памет (байтове)
ИСТИНСКИ 2.9*10E-39..1.7*10E38 11-12
ЕДИНЕН 1.5*10E-45..3.4*10E38 7-8
ДВОЙНО 5.0*10E-324..1.7*10E308 15-16
РАЗШИРЕН 1.9*10E-4951..1.1*10E4932 19-20
COMP -2Е+63+1..2Е+63-1 10-20

Ефективното използване на типовете SINGLE, DOUBLE, EXTEND, COMP е възможно само когато е включена директивата ($N+). По подразбиране е в изключено състояние. За решаване на инженерни и икономически проблеми са достатъчни стойности от типа REAL.

Пример

Var Res, Summa, Itog: истински;

Булевскитипът данни се описва от идентификатора BOOLEAN. Променливите и константите от този тип могат да приемат само една от двете стойности: TRUE (истина) или FALSE (false).

Пример

Var Sel1, Sel2: булево;

A,B,C,D: булево;

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

Литерал (символ)типът се описва със стандартния идентификатор CHAR. Константите и променливите от този тип могат да приемат една от стойностите на ASCII кодовата таблица. Стойността на константа или променлива от този тип е оградена с апостроф.

Например, Var Bukva, Znak, Символ: char;

Буква:='A'; Знак:='+'; Символ:='!'

Променливите от символен тип заемат 1 байт в паметта. Използването на данни от тип char в аритметични изрази е забранено. Операциите за сравнение могат да се прилагат към литерални стойности, резултатът от които зависи от номера на литералната променлива или константа в кодовата таблица.

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

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

формат

Тип<имя типа>=(<значение1, значение2, ..., значениеN>);

вар<идентификатор, ...>: < имя типа>;

Пример

Тип Сезон =(Пролет, Лято, Есен, Зима);

Var S1, S2: Сезон;

Есен: (септември, октомври, ноември);

В този пример е показан изрично декларираният тип данни на потребителя Season. Определени са техните значения – обозначенията на сезоните. Променливите S1 и S2 могат да приемат само една от изброените стойности. Опитът да им се присвои друга стойност ще доведе до софтуерно прекъсване. Третият тип изброяване е анонимен (няма име) и се определя чрез изброяване на стойности в секцията Var. Есента е променлива от този тип и може да приема стойностите септември, октомври, ноември. Така може да се даде всякакъв вид, но това не винаги е приемливо. Първият начин със сигурност е по-разбираем и по-в съответствие с естеството на езика Pascal.

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

формат

Тип<имя типа> = <константа1> .. <константа2>;

вар<идентификатор>: < имя типа>;

Пример

Тип Дни = 1.. 31;

Var Work_d, Free_d: дни;

В този пример променливите Работа_d, Свободен_dса от тип днии може да приема произволна стойност от диапазона 1. . 31.

Извън обхвата задейства софтуерно прекъсване.

Можете да дефинирате тип интервал, като посочите границите на диапазона не чрез постоянни стойности, а чрез техните имена:

Const Min = 1; max=31;

Тип Дни = Мин .. Макс;

Var Work_d, Free_d: дни;

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

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

масив -структуриран тип данни, състоящ се от фиксиран брой елементи от един и същи тип, достъпни чрез индекс ;

няколко -набор от обекти, избрани по някакъв признак или група от признаци, които могат да се разглеждат като едно цяло;

запис -набор от фиксиран брой компоненти от различни видове;

файл- последователност от компоненти от един и същи тип и еднаква дължина.

Още два структурирани вида - процедурни и тип обект(обективно) - трудно е да се съпоставят данните в обичайното представяне.

Снимка 1- Набор от основни типове на езика Pascal

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

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

Например:

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

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

[име] = [тип]

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

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

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

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

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

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

В 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 (True) и False (False). Променливите от този тип се определят от служебната дума BOOLEAN. Булева стойност заема един байт в RAM. Стойностите True и False съответстват на числовите стойности 1 и 0.

Тип-обхват

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

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

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

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

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

Изброен тип

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

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

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

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

тип низ

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

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

Fam: низ;

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

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

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

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

Нека да разгледаме най-често срещаните Типове Паскалданни.

Целочислени типове данни в Pascal

Тип Обхват Необходима памет (байтове)
байт 0..255 1
shortint -128..127 1
цяло число -32768.. 32767 2
дума 0..65535 2
longint -2147483648..2147483647 4

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

Примери за това как променливите се описват (декларират) в Pascal:

програма a1; varx,y:цяло число; (цяло число) myname:string; (тип низ) begin x:=1; y:=x+16; myname:="Петър"; writeln ("име: ",моето име, ", възраст: ", y) край.

Резултат:
име: Петър, възраст: 17г

Коментари на Паскал

Обърнете внимание как Използват се коментари на Pascal. В примера коментарите, т.е. служебният текст, който „не се вижда“ за компилатора, е ограден във фигурни скоби. Обикновено коментарите се правят от програмисти, за да се изяснят кодовите фрагменти.

Задача 3.Населението на Москва е a = 9 000 000 жители. Населението на Нови Васюков е равно на b=1000 жители. Напишете програма, която определя разликата в броя на жителите на два града. Използвайте променливи

Реални типове данни в Pascal

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

Тип Обхват Необходима памет (байтове)
истински 2.9*10E-39..1.7*10E38 6
единичен 1,5 * 10 E-45 .. 3,4 * 10E38 4
двойно 5*10E-324..1.7*10E308 8
удължен 1.9 * 10E-4951 .. 1.1 * 10E4932 10

Реалният тип в Паскал е най-често използваният от реалните типове.

По-горе бяха представени прости типове данни в Pascal, които включват:

  • Пореден номер
  • цяло
  • главоблъсканица
  • Символично
  • изброени
  • Интервал
  • истински

За извеждане на стойностите на променливи от реален тип обикновено се използва форматиран изход:

  • форматът използва или едно число, което означава броя на позициите, присвоени на това число в експоненциална форма;
  • р:=1234.6789; WriteIn(p:6:2); (1234,68)

    Наред с простите типове езикът използва и структурирани типове данни и указатели, което ще бъде предмет на следващите уроци по Pascal.

    Константи в Паскал

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

    Декларирането на константа в Pascal се извършва преди декларирането на променливи (преди служебната дума var) и изглежда така:

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

    1 2 3 4 5 6 const x= 17; var myname: низ; begin myname: = "Петър" ; writeln ("име: ", моето име, ", възраст: ", x) край.

    const x=17; varmyname:низ; begin myname:="Петър"; writeln ("име: ", моето име, ", възраст: ", x) край.

    „Красив“ изход на цели и реални числа

    За да оставите отстъпи след изхода на стойностите на променливите, така че стойностите да не се „сливат“ една с друга, обичайно е да се посочи чрез двоеточие колко знака трябва да бъдат предоставени за изхода от стойността:


    Аритметични операции в Pascal

    Ред на операциите

    1. оценка на изрази в скоби;
    2. умножение, деление, div, mod от ляво на дясно;
    3. събиране и изваждане отляво надясно.

    Стандартни аритметични процедури и функции на Pascal

    Тук си струва да се спрем по-подробно на някои аритметични операции.

    • Операторът inc в Pascal, произнасян като увеличение, е стандартната процедура на Pascal, което означава увеличение с единица.
    • Пример за работа на Inc:

      x:=1; inc(x); (Увеличава x с 1, т.е. x=2) writeln (x)

      По-сложно използване на процедурата inc:
      Inc(x,n), където x е порядъчен тип, n е цяло число; процедурата inc увеличава x с n.

    • Процедурата Dec в Pascal работи по подобен начин: Dec(x) - намалява x с 1 (декремент) или Dec(x,n) - намалява x с n.
    • Операторът abs представлява модула на число. Работи така:
    • а: =- 9; b:=abs(a); (b=9)

      а:=-9; b:=abs(a); (b=9)

    • Операторът div в Pascal е често използван, тъй като редица задачи са свързани с целочисленото действие за деление.
    • Остатъкът от делението или операторът mod в паскал също е незаменим за решаването на редица проблеми.
    • Забележително е стандартна функция odd Pascal, който определя дали дадено цяло число е нечетно. Тоест връща истина (true) за нечетни числа, false (false) за четни числа.
    • Пример за използване на странната функция:

      varx:цяло число; beginx:=3; writeln(sqr(x)); (отговор 9) край.

    • Операция степенуване в Pascalлипсва като такъв. Но за да повдигнете число на степен, можете да използвате функцията exp.
    • Формулата е: exp(ln(a)*n) , където a е число, n е степен (a>0).

      Въпреки това, в компилатора паскал abcстепенуването е много по-лесно:

      varx:цяло число; beginx:=9; writeln(sqrt(x)); (отговор 3) край.

    Задача 4.Размерите на кибритена кутия са известни: височина - 12,41 см, ширина - 8 см, дебелина - 5 см. Изчислете основната площ на кутията и нейния обем
    (S=ширина * дебелина, V=площ*височина)

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

    Задача 6.Известно е, че хкг сладкиши арубли. Определете колко гкг от тези сладки, както и на колко килограма сладки могат да бъдат закупени крубли. Всички стойности се въвеждат от потребителя.



    Зареждане...
    Връх