ЗНАЙ ИНТУИТ, Лекция, Видове променливи

Типове променливи

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

Целочислени променливи

Целочисленият тип е основен за всеки алгоритмичен език. Това се дължи на факта, че съдържанието на клетка памет или регистър на процесора може да се разглежда като цяло число. Адресите на елементите на паметта също са цели числа, с тяхна помощ се изписват инструкции на машината и т.н. Символите са представени в компютъра като цели числа - техните кодове в определено кодиране. Изображенията също са посочени като масиви от цели числа: за всяка точка на цветно изображение се съхраняват интензитетите на неговите червени, зелени и сини компоненти (в повечето случаи в диапазона от 0 до 255). Както казват математиците, целите числа са дадени отгоре, всичко останало е конструирано от тях от човека.

Общоприетият програмен термин „цяло число” или „цяло число променлива”, строго погледнато, не е съвсем правилен. Има безкрайно много цели числа, десетично или двоично представяне на цяло число може да бъде толкова дълго, колкото искате и не се побира в областта на паметта, разпределена за една променлива. Целочислена променлива в компютър може да съхранява само ограничен набор от цели числа в определен диапазон. В съвременните компютри се разпределят 4 байта за целочислена променлива, т.е. 32 бита. Той може да съхранява числа от нула до 2 до 32-ра степен минус 1.

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

Пръстен за остатъци по модул m

Целочисленият тип компютър точно отговаря на най-важната концепция на математиката - концепцията за пръстен на остатъци по модул m. Числото 2 32 = 4294967296 се използва като m. В математиката пръстенът Zm се определя, както следва. Целият набор от цели числа Z е разделен на m класове, които се наричат ​​класове на еквивалентност. Всеки клас съдържа числа, чиято двойна разлика се дели на m. Първият клас съдържа числа

Елементите на пръстена Zm са класове на еквивалентност. Има точно m от тях, така че за разлика от множеството от цели числа Z, пръстенът Zm съдържа краен брой елементи. Операциите с класове се извършват по следния начин: трябва да вземете по един представител от всеки клас, да извършите операцията и да определите в кой клас попада резултатът. Този клас ще бъде резултат от операцията. Лесно е да се покаже, че това не зависи от избора на представители.

Всички числа, принадлежащи към един и същ клас на еквивалентност, имат еднакъв остатък, когато са разделени на m. По този начин класът на еквивалентност се определя еднозначно от остатъка от делението на m. Традиционно остатъкът е избран да бъде неотрицателен, в диапазона от 0 до m-1. Остатъците се използват за обозначаване на класове с помощта на квадратни скоби. И така, изразът [5] означава клас на еквивалентност, състоящ се от всички числа, остатъците от които, когато са разделени на m, са равни на пет. Целият пръстен Zm се състои от елементи

например пръстен Z5 се състои от елементи

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