Basic Pascal Tutorial/Chapter 1/Assignment and Operations/bg

From Lazarus wiki
Jump to navigationJump to search

български (bg) Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆) (zh_CN)

 ◄   ▲   ► 

Присвояване и операции

(author: Tao Yue, state: unchanged)

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

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

variable_name := expression;

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

Изразът отдясно може да е стойност:

some_real := 385.385837;

или може да бъде аритметичен израз:

some_real := 37573.5 * 37593 + 385.8 / 367.1;

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

Оператор Операция Тип на аргументите Тип на резултата
+ Събиране или унарно положително real или integer real или integer
- Изваждане или унарно отрицателно real или integer real или integer
* Умножение real или integer real или integer
/ Дробно деление real или integer real
div Целочислено деление integer integer
mod Целочислен модул (остатък от деление) integer integer

div and mod работят единствено с integers. / работи с reals и integers но винаги дава real резултат. Останалите оператори работят с reals и integers. Когато се смесят integers и reals, резултатът винаги ще бъде real защото в противен случай може да се получи загуба на данни. Поради тази причина Pascal използва два различни оператора за дробно и целочислено деление. 7 / 2 = 3.5 (real), но 7 div 2 = 37 mod 2 = 1 защото това е остатъка от делението).

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

var
  some_int : integer;
  some_real : real;

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

some_int := 375;
some_real := some_int;

променливата some_real ще има стойност 375.0.

Промяната на един тип данни в друг се нарича typecasting. Съвременните компилатори на Pascal поддържат явната промяна на типа по подобие на езика C, но с малко по-различен синтаксис. Въпреки това, промяната на типа обикновено е нужна в ситуации на ниско ниво и във връзка с обектно-ориентирано програмиране и начинаещ студент по програмиране няма нужда да го използва. Още информация за typecasting от GNU Pascal manual.

В Pascal знакът минус може да се използва, за да се образува отрицателна стойност. Знакът плюс също може да се използва, но обикновено се пропуска, тъй като стойностите по подразбиране са положителни.

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

some_real := 37.5 * -2;

Това може да ви изглежда напълно логично, тъй като се опитвате да умножите по отрицателно -2. Паскал обаче ще бъде объркан - няма да знае дали да умножава или да изважда(Това не е вярно!). Можете да избегнете това, като използвате скоби, за да му изясните:

some_real := 37.5 * (-2);

Компютърът изпълнява операциите в ред, подобен на този, който следвате, когато правите аритметика. Умножението и делението ( * / div mod ) се извършват преди събиране и изваждане ( + - ) и скобите винаги имат предимство. Така например, стойността на: 3,5 * (2 + 3) ще бъде 17,5.

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

 ◄   ▲   ►