ПЕРЕМЕННЫЕ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ



ПЕРЕМЕННЫЕ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ

Очень часто приходится решать множество похожих задач. Например:

«У Васи 3 яблока, а у Пети – 4. Сколько достанется каждому, если они поделят их поровну?»

«У Васи 5 яблок, а у Пети – 2. Сколько достанется каждому, если они поделят их поровну?»

«У Васи 2 яблока, а у Пети – 8. Сколько достанется каждому, если они поделят их поровну?»

«У Васи 4 яблока, а у Пети – 1. Сколько достанется каждому, если они поделят их поровну?»

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

При этом возможны два случая:

– под переменной подразумевается одно единственное число;

– подразумевается, что соответствующая фраза верна для всех (разумных) значений этой переменной.

Пример: нарисоватьN шариков, причемi-ый шарик имеет координаты (20i;50)

ЗдесьN – первый случай, аi – второй.

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

Напомню: х – квантор всеобщности, означает «для любого х». х – квантор существования, означает «существует такой х, что…».

NB!В программированиитакой прием не применяется никогда! Т.е. переменная в операторе в каждый данный момент заменяетровно одно значение. Чтобы выполнить оператор с несколькими разными значениями переменной, необходимо организовать цикл.

Далее запишем одно очень важное высказывание:

«КДМ должно быть ПСЦ!»

Полагаю, все вы согласны, что это очень важно? Неужели нет? Боюсь, что даже обсуждать это невозможно, пока не расшифрованы использованные в этой фразе обозначения (КДМ и ПСЦ).

NB!Важный вывод:все использованные в программе обозначения обязательно должны быть расшифрованы.

Вот теперь я расшифрую одно из них:

КДМ – означает «Соединенные Штаты Америки».

Нравится ли вам такая расшифровка? Надеюсь, что нет, т.к. она является примером типичной ошибки, допускаемой неопытными или неаккуратными программистами:

Ошибка: существуют стандарты, по которым образуются сокращенные обозначения. Это сокращение (точнее, его расшифровка) не соответствует стандартам.

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

Расшифровка обозначений и использование стандартных обозначений соответствуют принципу черного ящика: они являются принципиально необходимой информацией, чтобы понять смысл формул и операторов без тщательного разбора остального текста.

Запрещенные способы описания переменных:

1. «Это просто переменная».

2. «Я для себя обозначил».

3. «Введена для удобства».

4. «введена для того, чтобы …».

5. «Эта переменная делает …».

Правильные способы описания переменных:

1. Записать в нескольких словах синоним обозначаемой величины. Пример:v– этоскорость движения собаки.

2. Указать вопрос, на который отвечает переменная. Этот способ является предпочтительным. Пример:v отвечает на вопрос: с какой скоростью двигается собака? (или короче:vэто с какой скоростью двигается собака)

3. На конкретном примере. Еслиv=15км/ч, то это значит, что собака двигается со скоростью 15км/ч.

NB: значения для примера надо выбирать не крайние.

4. Можно одновременно описывать несколько переменных: (x,y) – координаты центра шарика.

Определение:переменная – это буквенное обозначение, заменяющее неизвестную или изменяющуюся величину.

NB: «неизвестная» означает неизвестнаяпрограммисту! Исполнитель всегда должен знать значения переменных в выполняемых им операторах.

Вывод:до первого использования переменной, ей должно быть присвоено значение (начальное). Это делаетсяоператором присваивания:

переменная=формула

NB: в присваивании знак равенства нужно понимать как стрелку влево:

xy‘взять значение переменнойy и записать его в переменнуюx.

т.к. оно не является симметричной операцией, в отличие от сравнения на равенство.

Пример:a=b иb=a  имеют разный смысл: в первом случае меняетсяa, во втором –b.

Мнемоническое правило:налевоизмена (т.е. то, что слева –изменяется!)

Еще один вывод: Исполнитель для каждой переменной всегда заводит хранилище для данного – текущего значения этой переменной. В большинстве книг вы увидите, что авторы просто считают переменную и такое хранилище синонимами. С этой точки зрения использование присваивания – это приказ: «вычисли то, что справа и положи в то, что слева».

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

Отсюда

Правило трех действий:

Если вместо значения вам потребовалось использовать переменную, то надо:

  1. Описать смысл обозначения (т.е. описать величину, которую она заменяет).
    1. Выбрать само обозначение в соответствии с этим смыслом.
      1. Задать начальное значение переменной (до ее первого использования).
      2. Указать в какой момент (в каком месте программы) и по какой формуле вычисляется новое значение переменной.

NB: помимо описания смысла переменнойдля читателя в некоторых языках требуется (а в большинстве – рекомендуется) описать еедля исполнителя. Синонимы:объявить илитипизировать, т.е. задать тип значения переменной. ВVB это делается операторомDim:

DimпеременнаяAsтип

Например:

DimIasInteger

объявляет переменную «I» как целочисленную, т.е. предупреждает исполнителя, что любое значение этой переменной – целое число.

ТАБЛИЦА РУЧНОГО ПРОГОНА

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

Таблица состоит из следующих колонок:

1) Выполняемый оператор (указывается либо номером, либо просто переписывается строка).

2) По одной колонке на каждую используемую переменную. Заголовок – имя переменной.

NB: в случае использования массива (см. ниже) каждому элементу отвести одну колонку.

3) Проверяемое условие.

4) Результат проверки (да или нет).

5) Диапазон операторов, который надо выполнить/пропустить в связи с результатом проверки.

6) Выдаваемое на экран значение.

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

Пример:

ТРП

опер.

x

y

w

Ост

Усл.

Рез.

Диап.

Экран

64

48

1

x>y?

Да

Вып.: 2-4

2

48

3

64

4

48

5

x<>0?

Да

Вып.: 6-8

6

16

7

48

8

16

5

x<>0?

Да

Вып.: 6-8

6

0

7

16

8

0

5

x<>0?

Нет

Проп.: 6-8

9

16

ПЕРЕМЕННЫЕ С ИНДЕКСАМИ И МАССИВЫ

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

Пример:N студентам выдается стипендия, причемi-му студенту выдаетсяSi рублей. Сколько всего денег нужно получить старосте?

Построим численный пример:

(строка изкраткой записи ЧП)

Текст после замены

(строка изполной записи ЧП)

N=3

3 —ЗаменилиN на 3 студентам выдается стипендия, причем

i=1 —i заменяем последовательно на 1,2 и 3.

1-му выдаетсяS1Заменить надоВСЕi – в том числе и в индексах! рублей,

SЗаменяемS на 100… и что у нас получилось?=100

1-му выдается1001100 с индексом1– это явная бессмыслица! рублей,-???

S1Заменять надо было неS, аS1! То есть здесь переменной является неS, аS1!=100

1-му выдается 100 рублей,

i=2

2-му выдаетсяS2 рублей,

S2=120

2-му выдается 120 рублей,

i=3

3-му выдаетсяS3 рублей,

S3=150

3-му выдается 150 рублей,

ЗаменилиN на 3

i заменяем последовательно на 1,2 и 3.

Заменить надоВСЕi – в том числе и в индексах!

ЗаменяемS на 100… и что у нас получилось?

100 с индексом1– это явная бессмыслица!

Заменять надо было неS, аS1! То есть здесь переменной является неS, аS1!

Таким образом,переменная с индексом (илииндексированная переменная) – это тоже обозначение, состоящее из двух частей:

– имени

– индекса (т.е. номера)

NB:ВАЖНО отличать переменные с индексами и переменные в наименования которых включены цифры.

Пример:x1y2=5    – этоне переменная с индексом. Просто в ее имя входят цифры. (Вы ведь понимаете разницу между числом и цифрой?)

NB: следует помнить, что числа (в том числе – индексы) могут быть обозначены (т.е. заменены именем или формулой), а цифры (т.е. отдельные знаки) – нет!

Поэтому, если записать

i=1

j=2

xiyj=7

это не будет означать, что изменится значение переменнойx1y2.xiyj – это отдельная переменная,не связанная с переменнойx1y2, переменнымиi иj, а также индексированными переменнымиx1 иy2– даже если такие переменные есть в этой программе.

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

ВVB индекс берется в круглые скобки, вC++ и Паскале – в квадратные.

Набор одноименных переменных с разными индексами  называетсямассивом. Такие переменные называютсяэлементами этого массива. Они должны быть однотипны иобязательно (в отличие от переменной без индекса – "простой переменной") описываютсявсе вместе одним операторомdim:

DimимяПеременных(количествоПеременных)asтип

Для нашего примера:

DimS(5)assingle 'не забыли, что за тип данных –single?

NB: в скобках пишетсяколичество, а неномер (индекс)!

NB: в большинстве языков количество элементов может быть только константой, поэтому когда это количество переменное (например, неизвестно заранее), программист "заказывает" его с запасом: 1000 или 10000 – так, чтобы точно хватило в любом случае.

Описывать переменные с индексом для читателя (1е действие) достаточно на одном конкретном примере значения индекса. Такое значение надо выбирать не крайним (не самым малым и не самым большим). Например:

h(3) – высота 3-го дерева

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

ВVB и паскале несколько индексов пишутся в общих скобках через запятую, а в С++ - каждый индекс в своей скобке.

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

h(3,5) – высота 3-го дерева в 5-м ряду




Похожие работы, которые могут быть Вам интерестны.

1. Организация программирования в Word с использованием встроенного языка VBA. Организация программирования в таблице Excel с использованием встроенного языка VBA

2. Прозвища в башкирском, русском и китайском языках

3. ЛЕКСИКА, ОТРАЖАЮЩАЯ КРЕСТЬЯНСКИЙ БЫТ, В МОРДОВСКИХ ЯЗЫКАХ

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

5. АНАЛИЗ СКРИПТОВ ДЕЛОВЫХ ПЕРЕГОВОРОВ НА РУССКОМ И СЛОВАЦКОМ ЯЗЫКАХ

6. Значение слова Тайна в русском, немецком и английском языках

7. МЕЖДОМЕТИЯ В СЕРБСКОМ И АНГЛИЙСКОМ ЯЗЫКАХ: СЕМАНТИЧЕСКИЕ И ФУНКЦИОНАЛЬНЫЕ ХАРАКТЕРИСТИКИ

8. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ГЛАГОЛЬНОГО УПРАВЛЕНИЯ В МАРИЙСКОМ И ВЕНГЕРСКОМ ЯЗЫКАХ

9. ЗОО-ОНОМАТОПЫ В АНГЛИЙСКОМ, РУССКОМ, ИСПАНСКОМ И ЛИТОВСКОМ ЯЗЫКАХ: СРАВНИТЕЛЬНЫЙ АНАЛИЗ

10. СЕМАНТИЧЕСКОЕ ПОЛЕ СУФФИКСОВ ДЕЯТЕЛЯ В СОВРЕМЕННОМ ТУРЕЦКОМ И АНГЛИЙСКОМ ЯЗЫКАХ