Урок 6
Тема: Введение в программирование на языке Pascal. Работа с величинами. Ввод-вывод. Присваивание.
Новый материал
Вопросы темы:
8. Операции целочисленного деления и нахождения остатка от деления.
Величина. Исходные (входные),выходные, промежуточные данные
Для программной обработки в ЭВМ данные представляются в виде величин и их совокупностей.
Величина — это элемент данных с точки зрения их семантического (смыслового) содержания или обработки. Смысловое (семантическое) разбиение данных производится во время постановки задачи и разработки алгоритма ее решения (входные, выходные и промежуточные). Исходные (входные) — это данные, известные перед выполнением задачи, из условия. Выходные данные — результат решения задачи. Переменные, которые не являются ни аргументом, ни результатом алгоритма, а используются только для обозначения вычисляемого промежуточного значения, называются промежуточными. Вместе с тем, архитектура ЭВМ, используемое программное обеспечение требуют указать имена и типы данных — целый, вещественный, логический и символьный.
Атрибуты величины: имя (идентификатор), тип, значение
Итак, с понятием величины связаны следующие характеристики (атрибуты):
· имя (идентификатор) — это ее обозначение и место в памяти;
· тип — множество допустимых значений и множество применимых операций к ней;
· значение — динамическая характеристика, может меняться многократно в ходе исполнения алгоритма. Во время выполнения алгоритма в каждый конкретный момент величина имеет какое-то значение или не определена.
Постоянная, переменная величина
Постоянной называется величина, значение которой не изменяется в процессе исполнения алгоритма, а остается одним и тем же, указанным в тексте алгоритма. Переменной называется величина, значение которой меняется в процессе исполнения алгоритма.
Тип выражения определяется типами входящих в него величин, а также выполняемыми операциями. В языке Pascal тип величины задают заранее, т.к. все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа.
Различают переменные следующих простых типов: целые (Integer, Byte, ShortInt, Word, LongInt), вещественные (Real, Comp, Double, Single, Extended), логический (Boolean), символьный (Char), перечисляемый, диапазонный.
Вообще, иерархия типов в языке Pascal следующая:
Объявления служат для компилятора источником информации о свойствах величин, используемых в программе, и установления связи между этими величина и их идентификаторами, фиксируя тем самым конкретный смысл, предписанный различным идентификаторам в программе. Согласно объявленным переменным и их количеству компилятор резервирует необходимый объем памяти для хранения значений величин, над которыми выполняются требуемые операции.
Описание переменной: имя переменной (идентификатор) : тип;
Пример описания:
Var D, C, N : Integer;
LogPer : Boolean;
A, B : Real;
K : Char;
Тип переменной определяет диапазон допустимых значений, принимаемых величинами этого типа; набор операций, допустимых над данной величиной и объем памяти, отводимой под эту переменную.
Каждый тип имеет свой идентификатор.
Идентификатор |
Длина, байт |
Диапазон (множество) значений |
Операции |
integer |
2 |
–32768..32767 |
+, –, /, *, Div, Mod, >=, <=, =, <>, <, > |
byte |
1 |
0..255 |
+, –, /, *, Div, Mod, >=, <=, =, <>, <, > |
word |
2 |
0..65535 |
+, –, /, *, Div, Mod, >=, <=, =, <>, <, > |
shortint |
1 |
–128..127 |
+, –, /, *, Div, Mod, >=, <=, =, <>, <, > |
longint |
4 |
–2147483648..2147483647 |
+, –, /, *, Div, Mod, >=, <=, =, <>, <, > |
real |
6 |
2,9*10–39 — 1,7*1038 |
+, –, /, *, >=, <=, =, <>, <, > |
single |
4 |
1,5*10–45 — 3,481038 |
+, –, /, *, >=, <=, =, <>, <, > |
double |
8 |
5*10–324 — 1,7*10308 |
+, –, /, *, >=, <=, =, <>, <, > |
extended |
10 |
3,4*10–4932 — 1,1*104932 |
+, –, /, *, >=, <=, =, <>, <, > |
Boolean |
1 |
true, false |
Not, And, Or, Xor, >=, <=, =, <>, <, > |
char |
1 |
все символы кода ASCII |
+, >=, <=, =, <>, <, > |
Обмен информацией с ЭВМ предполагает использование определенных средств ввода-вывода. В ЭВМ основным средством ввода является клавиатура, вывода — дисплея.
Процедура, которая в режиме диалога с клавиатуры присваивает значение для переменной величины, называется процедурой ввода.
В языке Pascal эта команда выглядит следующим образом:
Read(список переменных);
Например,
Var
A : Real; B : Integer; C : Char;
Begin
Read(A, B, C)
End.
Читается: “Ввести вещественную А, целую В и символьную С”.
Как только в программе встречается вызов процедуры Read, ЭВМ приостанавливает выполнение этой программы и ждет, пока пользователь введет с клавиатуры соответствующие значения, которые по очереди будут присваиваться переменным, перечисленным в списке ввода. Значения вводимых данных одновременно отображаются на экране дисплея. После нажатия клавиши enter, когда все переменные примут свои значения из входного набора данных, определенного пользователем, выполнение программы продолжается с оператора, следующего за Read.
В списке ввода значения разделяются между собой пробелом. Присваивание значений из входного потока выполняется слева направо в соответствии с порядком следования переменных в процедуре Read. Процедура ReadLn похожа на Read. Разница лишь в том, что ReadLn реагирует на конец строки, и в случае его обнаружения происходит сразу переход к следующей строке.
Примеры ввода данных с помощью процедуры ReadLn:
ReadLn(A, B, C);
ReadLn(X);
ReadLn(LogPer);
Процедура, которая выводит содержимое переменных на экран, называется процедурой вывода на экран.
В Pascal эта команда выглядит следующим образом
Write (список констант и/или переменных, разделенных запятой)
Например Write ('Выходное значение: ', C).
В списке вывода этих операторов может быть либо одно выражение, либо последовательность таких выражений, разделенных между собой запятыми.
Процедура Write осуществляет вывод значений выражений, приведенных в его списке, на текущую строку до ее заполнения. С помощью процедуры WriteLn реализуется вывод значений выражений, приведенных в его списке, на одну строку дисплея и переход к началу следующей строки.
Примеры вывода данных:
Write(A, B, C);
WriteLn('Корнем уравнения является ', X);
WriteLn(LogPer);
Для управления размещением выводимых значений процедуры Write и WriteLn используются с форматами. Под форматом данных понимается расположение и порядок кодирования отдельных полей элементов данных.
Процедура вывода с форматом для целого типа имеет вид:
WriteLn(A : N, B : M, C : L);
Здесь N, M, L — выражения целого типа, задающие ширину поля вывода значений.
При выводе вещественных значений оператор Write(R) без указания формата выводит вещественное R в поле шириной 18 символов в форме с плавающей запятой в нормализованном виде. Для десятичного представления значения R применяется оператор с форматами вида WriteLn(R : N : M). В десятичной записи числа R выводится M (0 M 24) знаков после запятой, всего выводится N знаков.
Примеры:
WriteLn(N : 4);
WriteLn(K : 10 : 5, S : 7 : 3);
Общая структура программы на Pascal такова:
Program имя программы; {заголовок}
Const Константа1 = значение; {объявление констант} {раздел описаний}
Константа2 = значение;
...
КонстантаN = значение;
Type ...; {объявление типов}
Var СписокПеременных1 : Тип; {описание переменных}
СписокПеременных2 : Тип;
...
СписокПеременныхN : Тип;
Label СписокМеток;
Function ...
Procedure ...
Begin
{раздел операторов}
End.
Оператор присваивания — один из самых простых и наиболее часто используемых операторов в любом языке программирования, в том числе и в Pascal. Он предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией. В общем виде оператор присваивания можно записать так:
переменная := выражение;
Оператор выполняется следующим образом. Вычисляется значение выражения в правой части присваивания. После этого переменная, указанная в левой части, получает вычисленное значение. При этом тип выражения должен быть совместим по присваиванию с типом переменной. Тип выражения определяется типом операндов, входящих в него, и зависит от операций, выполняемых над ними.
Примеры присваивания:
X := (Y + Z) / (2 + Z * 10) - 1/3;
LogPer := (A > B) And (C <= D);
Операции целочисленного деления и нахождения остатка от деления.
В Pascal есть операции целочисленного деления и нахождения остатка от деления. При выполнении целочисленного деления (операция DIV) остаток от деления отбрасывается.
Например, 15 div 3 = 5; 18 div 5 = 3; 123 div 10 = 12, 7 div 10 = 0.
С помощью операции MOD можно найти остаток от деления одного целого числа на другое.
Например, 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3, 7 mod 10 = 7.
1. Что такое величина?
2. Какие величины называют аргументами? результатами? промежуточными величинами? Приведите примеры.
3. Каковы атрибуты величины?
4. Какие величины называют постоянными? переменными? Приведите примеры.
5. Какие простые типы величин существуют в языке Pascal?
6. Что определяет тип величины?
7. Расскажите о простых типах данных и их атрибутах.
8. Как осуществляется ввод данных в языке Pascal? Приведите примеры.
9. Как осуществляется вывод данных в языке Pascal? Приведите примеры.
10. Какова общая структура программы в языке Pascal?
11. Расскажите об операторе присваивания и совместимости типов.
12. Что такое формат вывода?
13. Какой оператор предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией?
14. Чему равны значения переменных a и b после выполнения приведенной последовательности действий?
a:=15 DIV(16 MOD 7); b:=34 MOD a*5-29 MOD 5*2;
a:=4*5DIV 3 MOD 2; b:=5 DIV (3 MOD 2);
15. При обнаружении какого оператора происходит сразу переход к следующей строке?
16. Как будет выведена переменная К и S при данном формате вывода(K : 8 : 2, S : 6 : 4)?