ПРОГРАМИРАНЕ С VISUAL BASIC

Алгоритми, променливи и константи


    Най-общо казано алгоритъм наричаме формално описание на определени дейности за постигане на определен резултат. Вече познавате и начините за описание на алгоритмите: словесно, графично, чрез алгоритмичен език за програмиране.

    Величините, които получават стойностите си чрез “въвеждане отвън” са входните данни. Целта на алгоритъма е да трансформира входните данни в изходни резултати.

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

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

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

    Всички езици за програмиране (или поне почти всички) предоставят механизъм за деклариране на променливите , които ще бъдат използвани в програмата. В много езици (като C /C++, C #, Pascal , Cobol …) декларирането на променливите е абсолютно задължително. Това означава, че ако не декларирате променлива не можете да я използвате в програмата. Декларирането на променливи кара компютъра ви да отдели място в оперативната си памет и да го свърже с името на променливата. Ако декларирате променлива, наречена Descriminanta, в която смятате да съхранявате резултата от изчисляването на дискриминантата при решаване на квадратно уравнение, то компютъра ще отдели съответното място в паметта и ще го използва само за това. Ако изчислите стойността на дискриминантата на конкретното уравнение (например 81) и го присвоите на променливата Descriminanta, тази стойност ще се запише точно на това място от паметта. Следващия път, когато се обърнете към променливата Descriminanta ще намерите и съхранените там данни (в случая 81). При езика за програмиране BASIC предварителното деклариране на променливи не е задължително. Възможно е да използвате променливи без да ги декларирате и тогава мястото за съхраняваните в тях данни в паметта се резервира “от движение” (ще наричаме това неявно деклариране на променливи). Това е една от многото причини, поради които BASIC е критикуван. Какво ще стане например, ако при изчисляването на дискриминантата от горния пример сте съхранили данните в променливата Discriminanta, а след това се опитвате (по погрешка) да ги прочетете от променлива с име Determinanta? В един нормален език за програмиране компилатора ще ви уведоми за грешката, като ви посочи, че променлива на име Determinanta не съществува. BASIC обаче тихомълком ще създаде новата променлива, в която може да се съдържа стойността 0, или да се съдържа случайна стойност. Ясно е какви са последствията за изчисленията ви от тук нататък, нали.

    Като наследник на BASIC , Vis ual Basic също позволява използването на недекларирани променливи. Това обаче се смята за лоша практика. Командата Option Explicit във Visual Basic забранява неявното деклариране на променливи.

    Доколкото съхранява данни, всяка променлива си има и тип на съхраняваните данни. Това се налага, тъй като самите данни, които можем да съхраняваме в паметта са различни и предполагат различно множество на допустимите с тях операции (спомнете си изучаваното в раздела “Формални езикови системи”). Така например съществува разлика между числото 123 и символния низ 123. Ако 23 и 56 са числа, то математическата операция

    23 + 56

    има за отговор числото 79. От друга страна, ако “23” и “56” са символни низове, то операцията

    “23” + “56”

    би била конкатенация и би имала за отговор друг символен низ – “2356”.

    Visual Basic 6 и Vis ual Basic for Application притежават разнообразни типове за данни. Във Visual Basic.NET те са съгласувани с цялостната концепция за .NET Framework . Тъй като нашите занимания в програмиране са в начален стадий ние ще се запознаем и ще използваме няколко основни типа данни:

    Тип

    Заемано място в паметта

    Съдържание

    Byte

    1 байт

    Числово, цели числа от 0 до 255

    Integer

    2 байта

    Числово, цели числа от -32768 до 32767

    Long

    4 байта

    Числово, цели числа от -2147483648 до 2147483647

    Single

    4 байта

    Числово, числа

    от -3,402823 Е 38

    до -1,401298 Е -45 за отрицателни стойности ;

    от 1,401298 Е -45

    до 3,402823 Е 38 за положителни стойности

    Double

    8 байта

    Числово, числа

    от -1,79769313486232 Е 308

    до -4,94065645841247 Е -324 за отрицателни стойности ;

    от 4,94065645841247 Е -324

    до 1,79769313486232 Е 308 за положителни стойности

    String

    10 байта плюс дължината на символния низ

    От 0 до около 2 милиона символа

    String (при фиксирана дължина на символния низ)

    Дължината на символния низ

    От 1 до около 65400 символа

    Boolean

    2 байта

    Логическо, Истина (True) или лъжа (False)

    съвет: Във Visual Basic съществува и тип Variant. За него е характерно, че може да съдържа данни от различни типове. Типа на данните се определя автоматично при присвояване на данни на променливата. Използването на тип Variant и изобщо отказа от строгата типизация на данните може да ви се струва удобно, но може да ви докара и много главоболия. В тази връзка не забравяйте, че ако не уточните типа на променлива или не я декларирате явно, то нейния тип ще бъде Variant.

    Остава в сила уговорката, че съдържанието на тези типове данни може да бъде различно в други среди за разработване (и наистина е различно, и то на моменти объркващо различно във Visual Basic . NET )!

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

    Във Visual Basic променливите се декларират със запазената дума Dim. Типа на променливата се определя след запазената дума As. Така например, ако искаме да декларираме променливата Discriminanta, в която ще съхраняваме стойността на изчислената дискриминанта на квадратното уравнение и сме избрали за нея тип Single, ще извършим декларирането по следния начин:

    Dim Discriminanta As Single

    Ако декларираме променливата Ime, в която ще съхраняваме име на конкретен ученик (например), бихме могли да я декларираме като символен низ с променлива дължина по следния начин:

    Dim Ime As String

    Ако обаче искаме да я обявим като символен низ с фиксирана дължина и преценим че името ще включва не повече от 25 символа, бихме могли да я обявим и така:

    Dim Ime As String * 25

    Използвайте втория начин само ако трябва да ограничите дължината на малки низове. От таблицата се вижда, че ако не обявите дължината на символния низ губите само 10 байта. Преценете дали си заслужава да използвате фиксирана дължина, за да ограничите низа си до 255 символа (например).

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

    Константите във Vis ual Basic се декларират със запазената дума Const , при което типа им може да се определи явно със запазената дума As . Така например, ако искате да декларирате константа, наречена Pi и съдържаща стойността на числото пи (за да я използвате в изчисленията по-късно в програмата), можете да го направите по следния начин:

    Const Pi As Single = 3,1415923

    В езици като Pascal и C декларирането на променливи и константи се извършва на строго определено място в програмата. Във Visual Basic можете да извършвате декларации на променливи и константи на произволно място. Това е едно от нещата за които Visual Basic е критикуван.

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


© 2005, ПГИ - Сливен, ХСГ