Программы линейной структуры.
Программы, рассмотренные в предыдущем разделе осуществляли вывод информации на экран компьютера. Теперь мы перейдем к задачам, в которых осуществляется не только ввод или вывод информации, но и ее обработка. Простейшим примером такой обработки информации являются арифметические вычисления, в ходе которых по имеющимся исходным данным подсчитывается результат. Составим программу, которая складывает два числа и выводит их сумму на экран компьютера. Для того, чтобы сложить эти числа , необходимо сперва присвоить их каким-либо переменным (например, a и b), а эти переменные предварительно описать. Затем следует присвоить результат арифметической операции сложения третьей переменной (c) и вывести результат на экран компьютера.
Итак, программа (см. рис. 9) будет выглядеть следующим образом : после заголовка программы – sum2 идет раздел описания переменных, который обязательно должен начинаться со служебного слова var (сокращение от английского variable – переменная). После служебного слова через запятую перечисляются сами переменные, используемые в программе и после двоеточия указывается тип этих переменных. В данном случае для упрощения задачи будем складывать только целые числа, поэтому все переменные будут относиться к одному типу – integer (то есть – целые). В разделе описания должны быть описаны все три переменные, используемые в данной программе
– a,b и с. Затем, в основной части программы переменным a и b должны быть присвоены значения с помощью оператора присваивания.
Общий вид оператора присваивания в языке Паскаль
x:=y
где x – имя переменной, которой присваивается значение;
y – присваиваемая величина, которая может быть числом или арифметическим выражением . Значение арифметического выражения в процессе выполнения программы вычисляется и присваивается стоящей в левой части оператора переменной.
В операторе присваивания после имени переменной обязательно должно стоять двоеточие. Если пропустить в записи оператора двоеточие, то получится не оператор присваивания, а операция сравнения. ( Операции сравнения мы будем изучать позже в разделе «Условные операторы»). Отличие этих двух записей можно наглядно проиллюстрировать на следующем примере:
Рис 9. Программа, складывающая два числа и результат ее работы.
запись x=x+5 является неверной;
запись x:=x+5 в Паскале является вполне допустимой. Эта запись означает, что переменной x присваивается новое значение, которое больше чем старое значение на 5. Например, если до выполнения операции присваивания значение x было равно 3, то после ее выполнения значение x станет равным 8.
В нашей программе мы присвоим переменной с значение выражения a+b, то есть в переменной c будет содержаться теперь значение суммы двух чисел. Теперь осталось вывести это значение на экран компьютера, что мы сделаем с помощью уже знакомого нам оператора writeln. Следует, однако, учесть, что когда с помощью данного оператора выводится значение переменной, то после служебного слова writeln указывается ее имя, и оно, в отличие от текста, не заключается в кавычки. Поэтому оператор вывода в программе будет записан следующим образом:
writeln(c);
В результате выполнения программы на экран будет выведен результат –
число 15.
Эта программа ( как и предыдущие) состоит из операторов, которые
выполняются последовательно друг за программами линейной структуры.
другом. Такие программы называются
Теперь попробуем усовершенствовать программу таким образом, чтобы она складывала любые два произвольных числа, которые пользователь введет с клавиатуры компьютера. Для этого, наряду с уже знакомыми нам операторами, нужно будет использовать также оператор ввода readln. Общий вид оператора readln похож на оператор writeln: он состоит из служебного слова readln и списка ввода, заключенного в скобки. В данной программе будут использованы
два оператора переменной:
readln, каждый из которых в списке ввода содержит по одной
readln(a); readln(b);
Переменным a и b и будут присвоены численные значения, введенные с клавиатуры. Теперь программу можно запускать на выполнение . После запуска программы появится пользовательский экран . Далее, можно вводить числовые значения. Для ввода какого-либо числа необходимо набрать его на
клавиатуре, а затем нажать клавишу Enter. После ввода второго числа на экране появится результат работы программы – сумма двух чисел.
Такая программа будет вполне работоспособна, но неудобна для пользователя, так как после ее запуска непосвященному человеку при виде
«черного» экрана непонятно, что же нужно дальше делать. Поэтому дополним программу (см. рис. 10). Перед операторами ввода поставим операторы вывода, которые будут выводить информацию, подсказывающие пользователю дальнейший ход его действий. Например, таким образом:
writeln ('введите 2 числа');
writeln ('после ввода каждого числа нажимайте клавишу Enter');
Теперь программа не только правильно работает, но и обеспечивает для пользователя дружественный интерфейс, то есть удобный способ общения человека с программой.
В конец программы внесены еще 2 дополнения. В список вывода оператора writeln вставлен еще один элемент – текст, поясняющий полученный результат. Кроме этого, после оператора вывода добавлен еще один «пустой» оператор ввода readln. Этот оператор приостанавливает окончание работы программы до тех пор, пока не будет нажата клавиша Enter, то есть у пользователя появляется возможность сразу ознакомиться с результатами выполнения программы, которые теперь не исчезают с экрана. (Не нужно будет потом специально открывать раздел меню Debug)
В вышеописанной программе использовалась только одна арифметическая операция – сложение. Но в языке Паскаль, естественно , используются и другие арифметические операции. Вот их перечень
+ сложение
- вычитание
* умножение
/ деление
div целочисленное деление
mod нахождение остатка от целочисленного деления
Первые 4 операции выполняются так же, как в обычной арифметике. Единственное, на что следует обратить внимание: знаки умножения и деления отличаются по написанию (вместо принятых в математике знаков ´ или × используется * , вместо : используется / ). Кроме того знак умножения между сомножителямя нельзя опускать, как это часто делается в математике. Что же
![]() |
Рис 10. Усовершенствованная программа сложения двух чисел и результат работы программы сложения.
касается целочисленного деления, то оно выполняется как обычное, но затем отбрасывается дробная часть получившегося при делении числа. Операции div и mod выполняются только над переменными и константами целого типа.
Пример использования действий div и mod :
значение выражения 91 div 8 равно 11
значение выражения 91 mod 8 равно 3
При вычислении значения арифметического выражения сперва выполняются действия, обладающие более высоким приоритетом. К ним относятся умножение,деление, целочисленное деление и нахождение остатка. Сложение и вычитание имеют более низкий приоритет. Если в выражении имеются действия с одинаковым приоритетом, то они выполняются слева направо по ходу выражения. Если необходимо изменить порядок действий в выражении, то следует использовать круглые скобки. Действия, заключенные в скобки обладают наиболее высоким приоритетом, то есть выполняются в первую очередь.
Составим программу, которая пересчитывает объем оперативной памяти компьютера, выраженный в мегабайтах, в килобайты, байты и биты (см. рис. 11). Между этими единицами измерения информации существуют следующие соотношения :
1 мегабайт = 1024 килобайта
1 килобайт = 1024 байта
1 байт = 8 бит
В программе будут использованы 4 переменные : mb – для объема в мегабайтах, kb – для килобайт, by – для байт, bit – для бит. При составлении данной программы можно столкнуться со следующей проблемой: результаты работы программы будут выражены достаточно большими числами, которые нельзя обработать с помощью переменных типа integer. Этот тип используется для представления чисел в диапазоне от –32768 до 32767. Поэтому для описания переменных используем другой целочисленный тип данных – longint, с помощью которого можно работать с числами в диапазоне от – 2147483648 до 2147483647. Тогда программа будет выглядеть следующим образом:
![]() |
Рис. 11. Программа, подсчитывающая объем оперативной памяти компьютера и результат ее работы.
Для решения ряда задач, в которых используются только целые числа, удобно бывает использовать действия div и mod. В качестве примера составим программу для работы банкомата (см. рис. 12) Банкомат должен выдавать клиенту требуемую сумму, но при этом расходовать наименьшее количество купюр. Пусть в банкомате имеются купюры по 100, 50 и 10 рублей. Тогда алгоритм решения данной задачи (то есть последовательность действий,необходимая для ее решения) сводится к следующему. В начале программа предлагает клиенту ввести требуемую сумму. (Для удобства работы банкомата попросим ввести сумму кратную 10). Затем эта сумма делится на
100. Результат целочисленного деления и будет минимальным количеством банкнот по 100 рублей. Остаток от деления разделим на 50 и получим соответственно минимальное требуемое количество банкнот по 50 рублей. Наконец, получившийся остаток при делении на 50 разделим на 10 и получим количество банкнот по 10 рублей.
При составлении программы нам понадобятся следующие переменные:
sum – вводимая клиентом сумма, k100 – количество купюр по 100 рублей, k50
– количество купюр по 50 рублей, k10 – количество купюр по 10 рублей, vspom – вспомогательная переменная, в которой содержится остаток, получающийся при делении. Программа будет выглядеть следующим образом:
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.