Илюстриран урок Pascal онлайн
Онлайн урок Pascal
Типове данни
Структурата на разглежданата програма е следната:
Думите Програма, начало и край разграничават двете части на програмата - секцията за декларации и секцията за оператори. Такава структура е задължителна за всяка програма, което е следствие от строгите изисквания на езика: всеки нестандартен идентификатор, използван в изпълними оператори, трябва да бъде предварително деклариран в секцията за деклариране. (Стандартните идентификатори са свързани с предварително декларирани обекти и са част от стандартната библиотека на Turbo Pascal. Например идентификаторът WriteLn е един. Стандартните идентификатори, ако се използват в програмата, не е необходимо да се описват).
Изискването за предварително описание на идентификатори изглежда прекалено ограничаващо и прави езика по-малко свободен. Всъщност това показва тенденция в развитието на езиците за програмиране в посока повишаване на надеждността на създаваните програми. Тези, които са програмирали на Fortran или Basic (тези езици не изискват предварително описание на идентификаторите) знаят колко трудно понякога може да бъде откриването на погрешно въведен или пропуснат знак в идентификатор в голяма програма. Ако, например, променлива, наречена EPSILON, се използва в цялата програма и EPSLION е изписана неправилно на едно място, тогава програмата може да се компилира безопасно и дори да даде почти правдоподобен резултат за някои набори от данни, но в един момент ще започне да се държи странно. Задължителното предварително описание на идентификаторите в Turbo Pascal предпазва програмите от подобни грешки и повишава тяхната надеждност.
Описването на идентификатор означава указване на типа на програмния обект (константа или променлива), свързан с него. Понятието тип е едно отосновни концепции на Turbo Pascal. Глава 4 обсъжда подробно различните типове; За да изясним характеристиките на описания по-долу език, без да изпреварваме, посочваме, че типът определя, първо, начина, по който компютърът вътрешно представя обекта, и второ, действията, които могат да се извършват върху него.
Програмите, обсъдени по-късно в тази глава, ще се нуждаят от следните типове данни:
- INTEGER - целочислени данни, заемат 2 байта във вътрешно представяне; диапазон от възможни стойности - от -32768 до +32767; данните са представени точно;
- REAL - реални данни, заемат 6 байта; обхватът на възможните стойности на модула е от 2.9Е-39 до 1.7Е+38; точност на представяне на данните - 11,12 значещи цифри;
- CHAR - символ, заема 1 байт;
- STRING - низ от знаци, заема MAX+1 байта, където MAX е максималният брой знаци в низ;
- BOOLEAN - булев тип, заема 1 байт и има две стойности: FALSE (false) и TRUE (true).
Когато анализира този програмен фрагмент, компилаторът ще класифицира първата константа като INTEGER, втората като REAL, третата като CHAR, четвъртата като STRING и последната като BOOLEAN. Знак, който позволява една константа да бъде класифицирана като REAL или INTEGER, е наличието или отсъствието на десетична запетая в нейната стойност. Разбира се, константите C2 и C4 са от различни типове: C2 - до REAL (в константата има десетична запетая), и C4 - до STRING (константата е оградена с апостроф). Константата C3 ще се счита от компилатора за тип CHAR: единичен знак в апострофите е CHAR, докато множеството символи са STRING.
За разлика от константата, променливата назовава програмен обект, който може да променя своястойност по време на преброяването. При деклариране на променливи идентификаторът е последван от двоеточие и името на типа. Няколко променливи от един и същи тип могат да бъдат комбинирани в списък, разделени със запетаи. Разделът за деклариране на променливи трябва да започва със запазената дума VAR (VARiables - променливи). Например:
сигма :Реално; a,b,c,d :Char;
Както вече споменахме, типът данни определя дължината на вътрешното представяне на съответните променливи. По-специално, дължината на вътрешното представяне на променливи от тип STRING (символен низ) зависи от максималния брой знаци, които могат да съставляват низ. В горния пример променливата text l е декларирана с максималната си дължина (15 знака), докато максималната дължина не е посочена в декларацията на променливата text2, а компилаторът ще зададе максимално допустимата дължина в Turbo Pascal за нея - 255 знака.
Помислете за друга проста програма (Пример 2.2). Целта му е да въведете две цели числа от клавиатурата, да намерите резултата от деленето на първото число на второто и да изведете резултата на екрана.
и показва частното на 1-вото, делено на 2-рото>
Не могат да се влагат коментари с разделители от един и същи тип, т.е. последователности на формата
Последното обстоятелство изяснява привидно странното излишък на разделители: ако навсякъде в програмата се използват разделители от един и същи тип, тогава за да изключите временно всеки фрагмент от текста от програмата, достатъчно е да го поставите в разделители от друг тип.
работете както следва. Командата Write първо записва низ на екрана и оставя курсора в края на току-що отпечатания ред текст. Имайте предвид, че операторът
в пример 1, след като текстът беше показан, той извърши преместване на ред и постави курсора в началотоследващия ред на екрана. Именно в това просто действие (нов ред) е единствената разлика в работата на процедурата WriteLn от процедурата
След това операторът ReadLn извиква вградената процедура за въвеждане на данни и програмата спира да чака въвеждане. В този момент трябва да въведете желаното число от клавиатурата и да натиснете клавишаEnter. Веднага след това програмата ще продължи да работи: ще анализира въведеното число и ще премине към въвеждане на следващо число или ще изчисли резултата. Така сигналът за край на подготовката на следващото число е натискането на клавишаEnter, до този момент можете да изтриете всеки погрешно въведен символ с клавишаBackspace.
За изчисляване на отношението на въведените числа се използва един от основните оператори на Turbo Pascal - операторът за присвояване. Лявата му страна съдържа името на променливата, дясната страна е израз от същия тип като променливата. Двойката знаци ":=", свързваща лявата и дясната част на оператора за присвояване, означава "присвояване на стойност". Запомнете: в Turbo Pascal операторите за присвояване винаги използват символите ": =", докато в описанието на константите - един символ "=". От гледна точка на синтаксиса на езика двата знака ": =" се третират като един специален знак и трябва да се пишат заедно.
Операторът за присвояване се използва в почти всички езици за програмиране. В някои езици, като Fortran или BASIC, знакът за равенство е символът за присвояване, но начинаещ, свикнал със строгостта на математическите формули, може да бъде озадачен от типичната форма на оператора за присвояване на Fortran, например следното:
Вариант на запис на същия оператор в Turbo Pascal:,
в този смисъл изглежда по-логично. Разбира се, едва ли някойнякой ден ще ми хрумне да видя уравнения там, където ги няма и не може да съществува. Разбира се, и в двата случая се прилага едно и също алгоритмично действие: 1 се добавя към съдържанието на X и полученият резултат отново се присвоява на променливата X. Обърнете внимание на оператора за извеждане на резултата
В него като един от параметрите изрично е посочена константа от типа символен низ 'nl/n2 = '. Разбира се, константите (за разлика от променливите) не е необходимо да се декларират в секцията за деклариране, тъй като техният тип лесно се определя от компилатора от формата на константната нотация. Като се има предвид това, би било възможно да се напише програмата от пример 1 изключително стегнато:
begin WriteLn('Програмирам на Turbo Pascal'); край.