Типы величин. Алгоритмы работы с величинами

| Понятие о программировании

Уроки 24 - 25
Понятие о программировании
(§ 9. Алгоритмы работы с величинами)
Алгоритмы работы с величинами: константы, переменные, основные типы, присваивание, ввод и вывод данных





Компьютер как исполнитель алгоритмов

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

Компьютер-исполнитель работает с определенными данными по определенной программе. Данные - это множество величин .

Величины: константы и переменные

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

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

Значение величины - это информация, хранимая в этом поле памяти.

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

Числовые величины в программировании, так же как и математические величины, делятся на переменные и константы (постоянные). Например, в формуле (а 2 - 2аb + b 2) а, b - переменные, 2 - константа.

Константы записываются в алгоритмах своими десятичными значениями, например: 23, 3.5, 34. Значение константы хранится в выделенной под нее ячейке памяти и остается неизменным в течение работы программы.

Переменные в программировании, как и в математике, обозначаются символическими именами. Эти имена называют идентификаторами (от глагола «идентифицировать», что значит «обозначать», «символизировать»). Идентификатор может быть одной буквой, множеством букв, сочетанием букв и цифр и т. д. Примеры идентификаторов: А, X, B3, prim, r25 и т. п.

Система команд

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

Присваивание; ввод; вывод; обращение к вспомогательному алгоритму; цикл; ветвление.

Эти команды существуют во всех языках, поддерживающих структурное программирование: в Паскале, Си и др.

Команда присваивания

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

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

Значок «:=» читается «присвоить». Например:

Z:=X + Y

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

Если до выполнения этой команды содержимое ячеек, соответствующих переменным X, Y, Z, было таким:

Прочерк в ячейке Z обозначает, что начальное число в ней может быть любым. Оно не имеет значения для результата данной команды.

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

В частном случае арифметическое выражение в правой части оператора присваивания может быть представлено одной переменной или одной константой.

Например:

Y:= Х

Команда ввода

Значения переменных, являющихся исходными данными решаемой задачи, как правило, задаются вводом.

Команда ввода в описаниях алгоритмов выглядит так:

ввод <список переменных>.

Например:

ввод А, Б, С

Пользователю удобно, если ввод данных организован в режиме диалога, когда по команде ввода компьютер прерывает выполнение программы и ждет действий пользователя. Пользователь должен набрать на клавиатуре вводимые значения переменных и нажать клавишу <ВВОД>. Введенные значения присвоятся соответствующим переменным из списка ввода, и выполнение программы продолжится.

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

1. Память до выполнения команды:

2. Процессор компьютера получил команду ввод А, Б, С , прервал свою работу и ждет действий пользователя.

3. Пользователь набирает на клавиатуре:

и нажимает клавишу <ВВОД> ().

4. Память после выполнения команды:

5. Процессор переходит к выполнению следующей команды программы.

При выполнении пункта 3 вводимые числа должны быть отделены друг от друга какими-нибудь разделителями. Обычно это пробелы. Из сказанного выше можно сделать вывод:

Переменные величины получают конкретные значения в результате выполнения команды присваивания или команды ввода.

Если переменной величине не присвоено никакого значения (или не введено), то она является неопределенной. Иначе говоря, ничего нельзя сказать о том, какое значение имеет эта переменная.

Команда вывода

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

Команда вывода в алгоритмах записывается так:

вывод <список вывода>

Например:

вывод X1, Х2

По этой команде значения переменных X1 и Х2 будут вынесены на устройство вывода (чаще всего это экран).

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

Коротко о главном

Любой алгоритм работы с величинами может быть составлен из следующих команд: присваивание; ввод; вывод; обращение к вспомогательному алгоритму; цикл; ветвление.

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

Язык программирования - это фиксированная система обозначений для описания алгоритмов и структур данных.

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

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

Формат команды присваивания:

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

Сначала вычисляется выражение, затем полученное значение присваивается переменной.

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

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

Вопросы и задания

1. Что такое величина? Чем отличаются переменные и постоянные величины?

2. Чем определяется значение величины?

3. Какие существуют основные типы величин в программировании?

4. Как записывается команда присваивания?

5. Что такое ввод? Как записывается команда ввода?

6. Что такое вывод? Как записывается команда вывода?

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

8. Вместо многоточия впишите в алгоритм несколько команд присваивания, в результате чего должен получиться алгоритм возведения в четвертую степень введенного числа (дополнительные переменные не использовать).

Тип величины определяет множество допустимых значений ве­личины и множество применимых операций к ней, объем занимае­мой памяти, а также способ представления величины в памяти ЭВМ. Чаще всего требуется указать имена и типы данных - целый, вещественный, логический и символьный.

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

Логические переменные (Boolean) могут принимать значения истина (True) или ложь (False).

Значениями строковых переменных (String) являются последо­вательности символов.

Простейший способ задания типа переменной - это использо­вание в идентификаторе переменной определенного суффикса (спе­циального значка), который приписывается к имени переменной. Например, числовую переменную А целого типа (Integer) можно задать с помощью суффикса %, т. е. как А%, строковую перемен­ную типа String - как AS (здесь используется суффикс $).

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

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

<имя переменной> := <выражение> Оператор выполняется следующим образом. Вычисляется выра­жение в правой части команды присваивания. После этого перемен­ная, указанная в левой части, получает вычисленное значение. При этом тип выражения должен быть совместим по присваиванию с типом переменной, а значения всех переменных, входящих в вы­ражение, были определены.

Часто в программировании используется такая операция присва­ивания, когда слева и справа используется одна и та же переменная, например, i:= i+1. Заметим, что с точки зрения математики такое выражение просто бессмысленно, так как является тождественно ложным. Однако с точки зрения программирования такая запись. означает, что сначала должна быть выполнена операция сложения

(i + 1), а затем полученная сумма присвоена переменной i в каче­стве ее нового значения. При этом старое значение пропадает, «сти­рается». После выполнения этой операции переменная i будет иметь значение на единицу больше, чем перед ее выполнением. Свойства операции присваивания:


Пока переменной не присвоено значение, она остается неопре­деленной;

Значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующего присваивания этой переменной нового значения;

Новое значение, присвоенное переменной, заменяет ее преды­дущее значение.

Ввод и вывод величин

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

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

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

Обычно команда вывода имеет вид: вывод <список вывода>. По этой команде значения переменных, указанных в списке вывода, отображаются на экране или печатаются на принтере. Линейные алгоритмы работы с величинами Рассмотрим пример линейного алгоритма работы с величинами. Даны переменные A и В. Требуется произвести между ними обмен значениями: переменная А должна получить значение В, а В - значение А.

Задача аналогична такой «жизненной» ситуации. Имеются две клетки: в одной находится волк, в другой - заяц. Требуется поме­нять их местами, т. е. пересадить из одной клетки в другую. Ясно, что для этого понадобится еще одна клетка.(С=А;А=В;В=С)

1. Величины: константы, переменные, типы величин. Присваивание, ввод и вывод величин. Линейные алгоритмы работы с величинами.

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

Компьютер-исполнитель работает с определенными данными по определенной программе. Программа - это алгоритм записанный на каком-либо языке программирования. Данные - это множество величин.

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

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

У каждой переменной есть имя , тип и текущее значение . Имена переменных называют идентификаторами (от глагола «идентифицировать», что значит «обозначать», «символизировать»). В качестве имен переменных могут быть буквы, цифры и другие знаки. Причем может быть не одна буква, а несколько. Примеры идентификаторов: a, b5, x, y, x2, summa, bukva10...


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


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


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

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

    присваивание;

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

В языках программирования команда присваивания обычно обозначается либо «:=» (двоеточие и равно), либо «=» (равно). Значок «:=» (или «=») читается «присвоить ». Например:

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

Если до выполнения этой команды содержимое ячеек, соответствующих переменным x, y, z, было таким:

Прочерк в ячейке z обозначает, что начальное число в ней может быть любым. Оно не имеет значения для результата данной команды.

Если слева от знака присваивания стоит числовая переменная, а справа - математическое выражение, то такую команду называют арифметической командой присваивания, а выражение - арифметическим.

В частном случае арифметическое выражение может быть представлено одной переменной или одной константой.

Например:

Значения переменных, являющихся исходными данными решаемой задачи, как правило, задаются вводом. На современных компьютерах ввод чаще всего выполнятся в режиме диалога с пользователем. По команде ввода компьютер прерывает выполнение программы и ждет действий пользователя. Пользователь должен набрать на клавиатуре вводимые значения переменных и нажать клавишу <ВВОД>. Введенные значения присвоятся соответствующим переменным из списка ввода, и выполнение программы продолжится.

Команд ввода в описаниях алгоритмов обычно выглядит так:

ввод <список переменных>

ввод (<список переменных>)

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

1. Память до выполнения команды:

При выполнении пункта 3 вводимые числа должны быть отделены друг от друга какими-нибудь разделителями. Обычно это пробелы.

Следовательно, можно сделать вывод:

Переменные величины получают конкретные значения в результате выполнения команды присваивания или команды ввода.

Если переменной величине не присвоено никакого значения (или не введено), то она является неопределенной. Иначе говоря, ничего нельзя сказать, какое значение имеет эта переменная.

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

Команда вывода в описаниях алгоритмов обычно выглядит так:

вывод <список вывода>

вывод (<список вывода>)

Например: вывод (x1, х2) .

По этой команде значения переменных x1 и х2 будут вынесены на устройство вывода (чаще всего это экран).

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

Алгоритм Вычисление периметра треугольника
переменные a, b, c, p - целые
начало
ввод (а, b, c)
p:= a + b+ c
вывод (p)
конец

Сначала компьютер запросит значения переменных a, b, c у пользователя, затем произведет вычисления и выведет результат на экран.

Строка переменные a, b, c, p - целые - называется описанием переменных. Некоторые языки программирования требуют обязательного описания всех переменных до начала их использования в программе, некоторые - относятся более лояльно.

Полученный алгоритм имеет линейную структуру.


Скалярные величины:

    целые (цел),

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

    символьные (символ, строка символов)

    логические (лог)

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

В любом языке программирования имеется более обширный набор типов данных. Ряд языков позволяет также и программисту вводить свои типы данных. Такие языки называют языками с абстрактными типами данных. Язык Паскаль, который мы будем использовать в данном пособии, является именно таким языком.

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

2.2. Объявление величин в алгоритме

Константы. Константы любого типа в объявлении не нуждаются, они выражают значение своим написанием (видом).

В РАЯ числовые константы можно записывать так, как это делается в математике, а вот для записи символьных констант используются апострофы (верхние одинарные кавычки).

Тип символ используется для записи одиночных символов используемого в алгоритме алфавита – ‘a’, ‘D’, ‘2’, ‘&’ и т.п. Величины данного типа относятся к так называемым перечислимым типам данных (список возможных значений задается перечислением).

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

Логический тип определяет всего две константы – истина (TRUE) и ложь (FALSE).

Переменные.

Примеры объявления переменных

а) Скалярные переменные :

a, t, t12: цел {имена трех скалярных переменных целого типа}

w, q: вещ {имена двух скалярных переменных вещественного типа}

error: лог {скалярная переменная логического типа}

б) Массивы:

x : вещ {одномерный массив, в котором можно разместить от 1 до 12-ти элементов - вещественных чисел; запись в квадратных скобках называетсяграничной парой; она задает диапазон возможных значений для индекса; одномерный массив используется как аналог математического понятия вектора}

s : симв {двухмерный массив – таблица из четырех строк и шести столбцов, элементами которой являются отдельные символы; для указания на один элемент требуется поместить два индекса; запись S указывает на символ, находящийся во второй строке и четвертом столбце данного массива}.

в) Структуры:

Структура – это совокупность нескольких элементов, в общем случае неодинакового типа, которой сопоставляется одно имя. Элементы структуры называются полями. Структура считается абстрактным типом данных; она объявляется программистом, а ее состав задается в секции деклараций (объявлений) типов данных в программе. Для указания на элемент структуры используется специальная запись вида:

<переменная типа структуры>. <имя поля>

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

Например, если тип данных по имени ”TStudent” объявляется как структура

TStudent: структура

имя: строка

возраст: цел

адрес: строка

то для указания на поле имя вначале необходимо объявить переменную этого типа:

Студент: TStudent

и тогда указание на поле, содержащее имя студента, примет вид:

В языке Паскаль любая величина относится к какому-либо типу.

Тип величины определяет диапазон допустимых значений, принимаемых величинами этого типа; набор операций, допустимых над данной величиной и объем памяти, отводимой под эту величину.

Переменная –

для компьютера это поименованная ячейка памяти;

для программиста это величина, имеющая имя, тип и значение.


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

Пример описания переменных: Var D, C, N: Integer; LogPer: Boolean;

Оператор присваивания служит для изменения значения переменной и имеет такой вид:

Знак « := » называется «присваивание».

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

Например:


Упражнение 1: Вася прошел путь от дома до школы (1,5 км) за 20 мин. Составить алгоритм нахождения скорости движения в м/с. (блок-схема и программа)

Задача: изменить алгоритм, чтобы найти скорость движения Васи в км/ч

Домашние вопросы и задачи:

  1. Что определяет тип величины? Расскажите типах, приведите примеры.
  2. Как воспринимает переменную программист и компьютер?
  3. Когда и как определяется имя и тип переменной? Приведите примеры.
  4. Для чего предназначен и как работает оператор присваивания? Примеры.

Задачи:

№ 5. Запишите следующие числа по правилам записи чисел в языке Паскаль:

0,00237*10 5 -125,87 +79 87*10 10 10 3 257 200 000 0,1 0,4*10 -5 -10 -10

№ 6. Какие из приведенных ниже чисел определяют одно и то же значение:


з. 0.00000351E+8

и. 0.00000351E7

№ 7. Выполнить ручную прокрутку программы и определить значения переменных

№ 8. В переменные А и В записаны целые числа, например, А:=20; В:=13. Поменяйте числа в этих переменных местами. Будьте внимательны! Если записать А:=В, то вы потеряете число 20. Воспользуйтесь третьей переменной - С (см. рисунок)

№9 . Маша, двигаясь со скоростью 0,8 м/с, дошла от магазина до дома за 15 мин. Найти расстояние от магазина до дома. Составить блок-схему и программу.