Переменных. Тип, имя и значение переменной. Переменные

В данных Методических указаниях излагаются основные понятия, операторы и конструкции языка программирования VisualBasic(VB). Во многом они повторяют элементы программирования языкаQBasic. Поэтому студенты, которые знакомы сQBasic, легко освоят или вспомнят изложенные элементы программирования.

Методические указания предназначены, прежде всего, тем, кто совершенно не знаком с программированием. Однако нужно уметь работать в операционной системе Windows, знать основные принципы устройства и функционирования компьютера.

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

Одновременно с изучением элементов программирования необходимо изучать основные понятия объектно-ориентированного языка программирования VisualBasic:элементы управления, их свойства, события, методы. Знать основы разработки интерфейса форм, настраивать свойства элементов управления и задавать им значения программным путем.

Написанию программы предшествует разработка алгоритма задачи. В Методических указаниях приводятся словесные описания алгоритмов и фрагменты программ основных типовых учебных задач программирования. Блок-схемы алгоритмов здесь вообще не приводятся. Но перед тем, как такие схемы строить, необходимо уметь словесно формулировать весь алгоритм или только его идею. Без этого нельзя осмысленно построить блок-схему алгоритма.

Алгоритм задачи можно разработать по аналогии с известной типовой задачей или просто догадаться. Но чтобы такая догадка была успешной, необходимо знание приемов программирования и свободное владение основными элементами программирования, которые перечислены выше. Нужно научиться мыслить операторами VB.

В конце Методических указаний, в разделе 10 на примере простой задачи показано, как знание элементов программирования позволяет выбирать, разрабатывать различные алгоритмы для решения задачи.

Основные элементы программирования

Знакомство с основными элементами программирования VisualBasicначинается с понятия переменной. Кто уже знаком с этим понятием из системы программированияQBasic, легко обнаружит отличия, которые переменные имеют вVisualBasic.

1. Переменные, оператор присваивания

В языках программирования одним из важнейших понятий является понятие переменной .

Определение переменной

Вспомним элементарную алгебру и решим простую задачу.

Задача . Вычислить функцию

при значениях коэффициентов и аргумента:

а = 3; b= - 4;c= 5; х = 2.

Без всякого программирования мы подставим значения а. b,c,xв формулу

Y= 3٠2 2 – 4٠2 + 5,

произведем соответствующие арифметические действия и получим в результате Y= 9.

При программировании этой задачи фрагмент программы будет выглядеть так:

Y = a*x^2 + b*x + c

Print “Y = “; Y

Здесь все вычисления закодированы в соответствие с правилами языкаVisualBasic. Чтобы было понятней, вспомним, чтокодирование это выражение одного типа данных через другой тип данных.

Эти же вычисления можно запрограммировать, закодировать и так:

Y = k1*x^2 + k2*x + k3

Print “Y = “; Y

Результат вычисления Yне изменится.

Оба варианта программы практически повторяют постановку задачи. Однако это только по внешнему виду. Так, знаки равенства в программе – это не знаки «равно», а операторы присваивания . С помощью них коэффициентам присваиваются численные значения, записанные справа от знака присваивания. Умножение, возведение в степень закодированы с помощью специальных символов* и^ .

Оператор Print выводит информацию на формы (или в графические поля). Все, что после оператораPrintзаписанов двойных кавычках, это текст .Он выводится без изменений , что записано, то и выводится.Если далее пишется переменная, то выводится ее значение . Поэтому на форме появится:Y= 9. В оператореPrintпосле текста стоит символ «точка с запятой» (;). Это разделитель. В этом случае значение переменной выводится сразу за текстом. Если же после текста поставить разделитель – запятую, то вывод значения переменной произойдет через 14 символов, считая от края формы.

Однако при вычислении Yодни слова, буквы перемножаются на другие (почти как в алгебраическом выражении), слова, буквы возводятся в квадрат и складываются тоже слова, буквы. Но если результат получается правильным, следовательно, на каком-то этапе выполнения программы происходит передача численных значений коэффициентов и аргумента Х в формулу. Происходит это в момент выполнения программы после ее перевода (трансляции) в машинные коды.

При программировании в машинных кодах выполнение простейшей арифметической операции над двумя числами требуется указать код операции, адреса ячеек оперативной памяти, где хранятся эти числа, и указать адрес ячеек памяти, где будет храниться результат операции. При выполнении такой программы по команде процессора данные передаются из этих ячеек на регистры процессора (так называются ячейки памяти процессора), где над ними и производится определенная операция. Иногда, согласно алгоритму задачи, результат может помещаться, записываться в ту же ячейку памяти, в которой хранилось одно из чисел, над которым выполнялась операция. В этом случае прежнее значение данных будет заменено новым.

В языках программирования высокого уровня аналогом этих ячеек памяти является переменная. Отсюда следующее определение.

Переменная это именованная область памяти ,где хранятся данные, с которыми производятся в программе определенные операции, действия и которые могут изменяться при выполнении программы.

Само название «переменная» предполагает ее изменчивость.

Важнейшее положение языков программирования:

После присвоения переменной некоторого значения вместо этого значения можно использовать переменную. Это равносильно использованию самих значений.

Именно в этом состоит основный смысл введения переменных в языках программирования.

В приведенном примере в первом варианте программы переменными являются: а, b,c, х,Y. Во втором варианте программы название некоторых переменных изменены и имеют имена:k1,k2,k3,x,Y. Только от программиста зависит, какие имена будут у переменных.

В расчетных задачах можно выделить переменные, являющиесяначальными данными , переменные для храненияпромежуточных результатов ирезультирующие переменные , для вычисления которых и формулируется задача.

Именно использование переменных в программе позволяет выполнять одну и ту же программу с различными начальными значениями переменных без изменения кода программы.

После трансляции программы в машинные коды каждой переменной в компьютере выделяется определенная область оперативной памяти со своим адресом. Делают это трансляторы при переводе кодов программы, написанной программистом, в машинные коды и операционная система.

Но при разработке программы программиста совершенно не волнует, какой будет адрес выделяемой память и величина этой памяти для хранения значений переменных. Главное, если программист каким-либо способом задал, присвоил переменным какие-то значения, то в любых выражениях программы, где будут встречаться эти переменные, их значения будут подставляться вместо переменных.

Переменные предназначены для хранения и обработки данных. Переменные задаются именами, определяющими области памяти, в которых хранятся значения переменных. Значениями переменных могут быть данные различных типов.

Используемые символы.

Прописные и строчные буквы латинского и русского алфавитов;

Цифры от 0 до 9;

Знаки: . , ; ‘(апостроф) “ ()

Символ пробела

Знаки арифметических операций: + - * / ^ < > = <=(меньше или равно) >= <>(не равно)

Знаки: @ (коммерческое “эт”, # (диез), $ (знак доллара), %, &(амперсанд или коммерческое “и”), \ (косая черта), _ (подчеркивание), ! , ?

Представление чисел.

Числа в VB представляют собой последовательность цифр со знаком + или -, например: +7, -18, 32. Если в числе имеется дробная часть, то она отделяется от целой части точкой. При этом, если целая часть равна нулю, то ее можно опустить, например: 0.5, -5.68, -.12. описанная форма записи чисел носит название основной.

Кроме основной, возможна запись чисел в экспоненциальной форме (в форме с порядком), например: число 0.0095 можно записать 9.5E-4 , число 52000000 можно записать 52E+6 или 52E6. Латинская буква E называется порядком, перед которым обязательно должно следовать число в основной форме.

Типы переменных.

Перед тем, как использовать переменную, ее необходимо описать при помощи оператора следующего вида:

Dim переменная

Dim – ключевое слово, свидетельствующее о том, что объявляется переменная

переменная – имя переменной, которая объявляется

As – служебное слово, используемое при обозначении типа данных для объявляемой переменной

тип – тип данных для указанной переменной

В одном операторе можно одновременно описать несколько переменных, указывая каждую последующую через запятую.

В языках программирования ключевыми (служебными) словами называются такие слова, которые используются только для описания операторов и не могут использоваться программистом в качестве имен переменных. Среда программирования VB6 настроена таким образом, что при написании текста программы в окне кода все используемые ключевые слова по умолчанию будут обозначаться синим цветом, в то время как весь остальной текст изображается черным. Таким образом, программист может легко определить являются ли слова, которые он планирует использовать, например, в качестве имен переменных, ключевыми словами VB6 или нет.

В VB6 каждый оператор пишется в отдельной строке. Количество пробелов и знаков табуляции между частями оператора не имеет значения. Справа от любого оператора можно записывать комментарии для него, поясняющие оператор. Перед началом комментария ставится апостроф ‘. В записи оператора строчные и прописные буквы равноценны, поэтому для повышения читаемости текста программы служебные слова обычно начинаются с прописной буквы, например: Dim n


Чтобы расположить несколько операторов в одной строке, между ними ставится символ: Например: a = 1: b = 3

В случае необходимости расположения одного оператора на нескольких строках следует в конце каждой строки ставить символ подчеркивания, отделяя его пробелом от последнего символа строки. Например:

And z<0 Then p=x+y+z

Когда программист выбирает имя для своей переменной, он имеет широкие возможности, например, переменную, которая будет использоваться в качестве счетчика циклов, можно назвать стандартным именем i, но это имя не несет никакой смысловой нагрузки. С другой стороны, можно назвать переменную длинным составным именем, например NumberOfSelectedElements (количество выбранных элементов), которое будет достаточно информированным, но на написание такого имени в различных местах программы будет уходить много времени, поэтому не следует давать переменным длинные имена.

Ограничения на имена переменных:

Имя должно начинаться только с латинской буквы;

В имени не должно быть точек;

Необходимо соблюдать уникальность имен в рамках одной процедуры;

Количество символов в имени не должно быть более 255.

Зачастую для повышения информативности используемых переменных программисты используют в именах так называемые префиксы, которые определяют принадлежность данных к определенному типу.

Префиксы типов данных в имени переменных

На алгоритмическом языке LibreOffice Basic и OpenOffice Basic, а также на языках объектно-ориентированного программирования Visual Basic и Gambas переменные используются для хранения и обработки данных в программах.

Переменные задаются именами, которые определяют области оперативной памяти компьютера, в которых хранятся их значения. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и т.д.).

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

Тип переменной. Тип переменных определяется типом данных, которые могут быть значениями переменных. Значениями переменных числовых типов Byte, Short, Integer, Long, Single, Double

являются числа, логического типа Boolean - значения истина True

или ложь False, строкового типа String - последовательности символов. Обозначения типов переменных являются ключевыми словами языка и поэтому выделяются.

Различные типы данных требуют для своего хранения в оперативной памяти компьютера различное количество ячеек (байт).

Типы переменных

Таблица 11.3

Занимаемая

Диапазон значений

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

от -32 768 до 32 767

от-2 147 483 648 до 2 147 483 647

от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Переменные с плавающей запятой

от -1,5x10 -45 до 3,4 x 10 38 , 7-8 значащих цифр

от-5,0 х 10- 324 до 1,7 х Ю 308 , 15-16 значащих цифр

от ±1,0 х 1 о- 28 до ±7,9 х 10 28 , 28-29 значащих цифр

Строковые переменные

количество

символов

от 0 до 65 535 знаков в кодировке Unicode.

(В языке Gambas 1 байт на символ в кодировке ASCII)

Логические переменные

True или False.

Имя переменной. Имена переменных определяют области оперативной памяти компьютера, в которых хранятся их значения. Имя каждой переменной (идентификатор) уникально и не может меняться в процессе выполнения программы. Имя переменной может состоять из различных символов (латинские и русские буквы, цифры и т.д.), но должно обязательно начинаться с буквы и не должно включать знак точка «.». Количество символов в имени не может быть более 1023, однако для удобства обычно ограничивается несколькими символами.

Объявление переменных. Необходимо объявлять переменные, для того чтобы исполнитель программы (компьютер) «понимал», переменные какого типа используются в программе.

Для объявления переменной используется оператор определения переменной Dim. С помощью одного оператора можно объявить сразу несколько переменных, например:

Dim A As Byte, В As Short, С As Single, D As String, G As Boolean.

Присваивание переменным значений. Переменная может получить или изменить значение с помощью оператора присваивания. При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства, получает значение, которое находится справа от знака равенства. Например:

D = «информатика»

Значение переменной может быть задано числом, строкой или логическим значением, а также может быть представлено с помощью арифметического, строкового или логического выражения.

Проанализируем процесс выполнения программы компьютером (для определенности, записанной на языке Visual Basic). После запуска проекта оператор объявления переменных Dim отведет в оперативной памяти для их хранения необходимое количество ячеек:

  • ? для целой неотрицательной переменной А - одну ячейку;
  • ? для целочисленной переменной В - две ячейки;
  • ? для переменной одинарной точности С - четыре ячейки;
  • ? для строковой переменной D - по две ячейки на символ;
  • ? для логической переменной G - две ячейки.

Таблица 11.4

Значения переменных в оперативной памяти

Имена переменных

Оперативная память

Номера ячеек

Значение переменой

информатика

Таким образом, в памяти для хранения значений переменных будет отведена 31 ячейка, например, ячейки с 1-й по 31-ю.

Контрольные вопросы

  • 1. В чем состоит разница между типом, именем и значением переменной?
  • 2. Какие основные типы переменных используются в языке программирования LibreOffice Basic, OpenOffice Basic? Visual Basic? Gambas?
  • 3. Почему рекомендуется объявлять переменные перед их использованием в программе?

4. Переменные: тип, имя, значение.

В объектно-ориентированном языке программирования Visual Basic переменные используются для хранения и обра­ботки данных в программах.

Переменные задаются именами , которые определяют об­ласти оперативной памяти компьютера, в которых хранятся значения переменных. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и т. д.).

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

Тип переменной . Тип переменных определяется диапа­зоном значений, которые могут принимать переменные, и допустимыми операциями над этими значениями. Значе­ниями переменных числовых типов Byte , Short , Integer , Long , Single , Double являются числа, логического типа Boolean - значения True («истина») или False («ложь»), строкового типа String - последовательности символов.

Различные типы данных требуют для своего хранения в оперативной памяти компьютера различное количество ячеек (байтов) (табл. 2.2).

Таблица 2.2. Некоторые типы переменных в языке Visual Basic 2 010

Тип

переменной

Возможные значения

Объем занимаемой памяти

Byte

Целые неотрицательные числа от 0 до 255

1 байт

Short

Целые числа от –32 768 до 32 767

2 байта

Integer

Целые числа от –2 147 483 648 до 2 147 483 647

4 байта

Long

Целые числа от –9 223 372 036 854 до

9 223 372 036 853

8 байтов

Single

Десятичные числа одинарной точности (7-8 значащих цифр) от –1,4·10 –45 до 3,4·10 38

4 байта

Double

Десятичные числа двойной точности (15-16 значащих цифр) от -5,0·10 –324 до 1,7·10 308

8 байтов

Boolean

Логическое значение True или False

2 байта

String

Строка символов в кодировке Unicode

2 байта

на символ

Date

Даты от 1 января 0001 года до 31 декабря 9999 года и время от 0:00:00 до 23:59:59

8 байтов

Имя переменной. Имена переменных определяют облас­ти оперативной памяти компьютера, в которых хранятся значения переменных. Имя каждой переменной (идентифи­катор) уникально и не может меняться в процессе выполне­ния программы. Имя переменной может состоять из различ­ных символов (латинские и русские буквы, цифры и т. д.), но должно обязательно начинаться с буквы и не должно включать знак точка «.». Количество символов в имени не может быть более 1023, однако для удобства обычно ограни­чиваются несколькими символами.

Объявление переменных. Необходимо объявлять пере­менные, для того чтобы исполнитель программы (компью­тер) «понимал», переменные какого типа используются в программе.

Для объявления переменной используется оператор Dim . С помощью одного оператора можно объявить сразу не­сколько переменных, например:

Dim A As Byte , В As Short , С As Single , D As String ,G As Boolean

Присваивание переменным значений. Переменная мо­жет получить или изменить значение с помощью оператора присваивания. При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства, получает значение, которое находится справа от знака ра­венства. Например:

А = 255

В = -32768

С = 3.14

D = "информатика"

G = True

Значение переменной может быть задано числом, стро­кой или логическим значением, а также может быть пред­ставлено с помощью арифметического, строкового или логи­ческого выражения .

Проект «Переменные». Создать проект, в котором объя­вить переменные различных типов, присвоить им значения и вывести значения в поле списка, размещенное на форме.

Создадим графический интерфейс (рис. 2.8).

1. Поместить на форму:

Поле списка ListBox 1 для вывода значений перемен­ных;

Кнопку Button 1 для запуска событийной процедуры.

Создадим событийную процедуру, реализующую присва­ивание значений переменным различных типов. Вывод зна­чений переменных в поле списка произведем с исполь­зованием метода Items . Add () , аргументами которого будут переменные.

2. Dim A As Byte , В As Short , С As Single , D As String , G As Boolean

Private Sub Button1_Click (...)

A = 255

В = -32768

С = 3.14

D = "информатика"

G = True

ListBox1.Items.Add(A)

ListBox1.Items.Add(B)

ListBox1.Items.Add(C)

ListBox1.Items.Add(D)

ListBox1.Items.Add(G)

End Sub

3. Запустить проект на выполне­ние. После щелчка по кнопке начнет выполняться событийная процедура, в которой будут вы­полнены операции присваива­ния (в отведенные переменным области оперативной памяти бу­дут записаны их значения).

Затем с помощью метода Items . Add () будет произведен вывод значений переменных в поле списка. В этом процессе значения переменных считываются из оперативной памяти и печатаются в столбик в поле спи­ска (см. рис. 2.8).


Рис. 2.8. Проект «Переменные»

Проанализируем процесс выполнения программы компьютером. После запуска проекта оператор объявления переменных Dim отведет в оперативной памяти для их хра­нения необходимое количество ячеек (табл. 2.3):

Для целой неотрицательной переменной А - одну ячейку;

Для целочисленной переменной В - две ячейки;

Для переменной одинарной точности С - четыре ячейки;

Для строковой переменной D - по две ячейки на сим­вол;

Для логической переменной G - две ячейки.

Таблица 2.3. Значения переменных в оперативной памяти

Имя переменной

Оперативная память

Номера ячеек

Значение переменной

32768

3,14

8-29

информатика

30-31

True

Таким образом, в памяти для хранения значений пере­менных будет отведена 31 ячейка, например, ячейки с 1-й по 31-ю.

Переменная

Переменная - это именованная область памяти для хранения данных, которые могут изменяться в процессе исполнения программы.

Переменная характеризуется:

  • Именем («обозначением ячейки памяти»)
  • Значением (данными, содержащимися в переменной в конкретный момент времени)
  • Типом (определяющим: а) какие значения может принимать переменная; б) какие операции можно производить с этими значениями; в) как данные представлены в памяти компьютера)

Имена и типы переменных указываются в разделе описаний и не могут изменяться в процессе выполнения программы.

Типы переменных

Простые типы

Дискретные (можно перечислить возможные значения):

  • целые (integer, longint)
  • символьный (char)
  • логический (boolean)
  • диапазон (часть значений стандартного дискретного типа, например, 1..100 )
  • перечисляемый (явно перечислены все допустмые значения)

Вещественные (real, double, extended) - служат для представления действительных чисел с ограниченной точностью.

Структурированные типы

  • Массив (фиксированное количество данных одного типа)
  • Строка
  • Запись (связанные данные, в общем случае, разных типов)
  • Множество
  • Файл (данные одного типа, хранящиеся на внешнем носителе)

Описание переменных

var
имена переменных : тип ;
...
имена переменных : тип ;

Например:

Var
a, b, c: real;
i, n: integer;
f: boolean;

Ввод и вывод

Для обмена информацией между компьютером, исполняющим программу, и пользователем служат операторы ввода и вывода (точнее, операторы вызова процедур ввода и вывода).

Оператор ввода нужен, чтобы компьютер получил исходные данные. В программе на Pascal он записывается следующим образом:

Read(переменные );

Readln(переменные );

При выполнении оператора программа будет приостановлена, пока пользователь не наберет на клавиатуре значения и не нажмет клавишу «Enter». Затем введенные значения будут помещены в переменные, указанные как параметры процедуры ввода. Например, при выполнении оператора

Read(a, b);

компьютер будет ожидать ввода двух значений, которые затем будут помещены в переменные a и b.

Операторы read и readln отличаются тем, что во втором случае после ввода данных будет переведена строка, т.е. последующие сообщения компьютера будут выводиться с новой строки.

Оператор вывода нужен, чтобы компьютер показал результаты работы программы или какие-либо вспомогательные сообщения. В программе на Pascal он записывается следующим образом:

Write(выражения );

Writeln(выражения );

При выполнении оператора вычисляются значения выражений, после чего эти значения выводятся на экран монитора. Например, при выполнении оператора

Write(a + b, c);

на экран будет выведена сумма переменных a и b, а также значение переменной c. Если нужно вывести на экран какое-либо текстовое сообщение, его нужно заключить в апострофы (одиночные кавычки):

Write("Нет решения");

Операторы write и writeln отличаются тем, что во втором случае после вывода данных будет переведена строка, т.е. последующие сообщения компьютера будут выводиться с новой строки.

Присваивание

Для того чтобы переменная получила или изменила свое значение, используется оператор присваивания. В Pascal он записывается следующим образом:

переменная := выражение ;

Тип переменной должен совпадать с типом выражения либо быть «более широким» совместимым (т.е. вещественной переменной можно присвоить значение целого выражения; строковой переменной можно присвоить значение символьного выражения).

Компьютер сначала вычисляет значение выражения в правой части оператора присваивания, затем помещает его в переменную, указанную слева от символа присваивания «:=».

Например, при выполнении оператора

X:= a + b;

переменная x получит значение суммы переменных a и b. При выполнении оператора

N:= n + 1

значение переменной n увеличится на единицу.

Запомните! При присваивании переменной нового значения старое будет потеряно безвозвратно. Например, после выполнения операторов a:= b;
b:= a;

обе переменные будут иметь одинаковые значения, равные тому, которое имела переменная b.

Простейшая программа

Рассмотрим, как составить простую программу, выполняющую какие-либо вычисления. Для этого нам нужно:

  1. Проанализировав условие задачи, выделить исходные данные и результаты. Выбрать для них имена переменных (если они не заданы в условии). Определить тип данных.
  2. Построить математическую модель задачи - описание в виде набора математических соотношений.
  3. Разработать (или подобрать из известных) алгоритм решения задачи - последовательность действий, приводящую от исходных данных к результатам за конечное число шагов. (Не забудьте, что сначала компьютер должен получить значения исходных данных, а после нахождения результатов - вывести эти результаты на экран).
  4. Если в процессе решения используются промежуточные данные, выбрать имена переменных и определить их тип.
  5. Записать программу в соответствии с правилами синтаксиса языка программирования (в нашем случае - Pascal).

Рассмотрим простейший пример.

Задача

Разработать программу, вычисляющую длину окружности и площадь круга по известному радиусу.

Решение

1) Определим исходные данные и результаты задачи. В данном случае они явно указаны в условии: исходная величина - радиус, результаты - длина окружности и площадь круга. Используем для них традиционные обозначения: R, L и S, соответственно. Все эти переменные могут принимать как целые, так и дробные числовые значения, поэтому следует использовать вещественный тип данных, например, Real.

2) Математически задача описывается известными формулами:

L = 2 ⋅ π ⋅ R
и
S = π ⋅ R 2 .

3) Алгоритм в данном случае предельно прост:

  1. Ввести значение радиуса.
  2. Вычислить длину окружности по формуле .
  3. Вычислить площадь круга по формуле .
  4. Вывести значения длины окружности и площади круга на экран.

4) При вычислениях нам (точнее, компьютеру) потребуется значение π. Вообще говоря, практически все реализации Pascal имеют встроенную константу PI , но мы объявим подобную константу самостоятельно.

5) Теперь запишем программу:

program circle; { Имя программы можно выбирать произвольно }
{ В фигурных скобках записываем