- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
3.3. Константы и переменные
Константы- это неизменяемые в процессии программы величины
Const
Ch_=’A’;
1=50;
Имеются две разновидности констант:
-
Обычные константы, тип которых определяется их значением.
-
Типизированные константы, тип которых определяется их значением и типом.
Заранее определены const:
MAXINT=32767
MAXLONGINT=2147483647
TRUE, FALSE
NIL – пустой указатель
[]- пустое множество.
При изображении шестнадцатеричного целого числа используется $: $A0, $FFF.
Для изображения символов, не имеющих физ. изображения используется код с символ :
#7,#10.#13.
Для типизированных const задается ее тип и начальное значение.
Пример
Const
Y:real=0.5;
Ch:char=#7;
Основными объектами Турбо Паскаль явл. Переменная (var) и обращения к функциям с помощью знаков операции и скобок можно составить выражения. Операция имеющая более высокий приоритет выполняется первой Операции имеющие одинаковый приоритет выполняются с лева на право. В ТР нет возведения в степень но оно выполняется с помощью алгоритма а* ~ ехр (ln (a)*x)
3.4. Преобразование типов
В Турбо – Паскале почти невозможны неявные ( автоматические ) преобразования типов. Исключение сделано в отношении констант и переменных типа INTEGER, которые разрешается использовать в выражениях типа REAL.
Пример
Var
X:integer;
Y:real;
y:=x+2;{правильно}
x:=2.5;{не правильно}
Для преобразования REAL к INTEGER имеются две встроенные функции: Round(х) и Trunc(x). В 1-ом случае происходит округление до ближайшего целого, во 2-ом усекается число путем отбрасывания дробной части.
Пример
X:=y/x; {непр}
X:=trunc(y/x); {пр}
Просто осуществляется преобразование типов данных, если переменные имеют один и тот же размер. Для этого надо указать идентификатор типа, а за ним в скобках переменную исходного типа.
Имя типа (переменная или значение)
Пример
var
Ch:char;
By:byte;
Ch:=’1’;
By:=byte(ch); { by=49}
4. Операторы
4.1. Ввод данных
Операторы считывания обеспечивают ввод чисел, строк и символов:
Read (<список ввода>);
Readln (<список ввода>); –перевод на другую строку
список ввода - это последовательность из одной или более переменных типа char, string а также любого целого или вещественного числа.
При вводе с клавиатуры 2 числа считаются разделенными, если между ними есть хотя бы один пробел. После ввода данных следует нажать клавишу ENTER.
-----------------------------
Read(a,b); 123 1.23!
Или 123! 1.23! {a=123, b=1.23 }
При вводе символов нет разделителей!
Read(ch1,ch2); AB! {ch1=’A’, ch2=’B’}
A B { ch1=’A’, ch2=#13}
От смешанных списков вводе с клавиатуры лучше отказаться!
4.2. Вывод данных
Операторы для вывода и печати результатов
Write (<Список Вывода [:n[:m]];
Writeln(<Список Вывода [:n[:m]];
список вывода - это последовательность из одной или более переменных типа char, string, Boolean а также любого целого или вещественного числа. Можно выводить текстовые данные в апострофах.
N- кол-ва позиций при выводе на печать текста или целого числа.
У вещественных чисел можно задавать общее число выводимых знаков(включая знак, точку, букву Е) а число цифр, стоящих после запятой, цифрой M.
При необходимости вывода вещественных чисел в ЕХР формате надо задавать только одно значения N, а если n меньше чем длина параметра то n игнорируется!
Для вывода на принтер должно быть доступно устройство LST. Для этого надо подключить модуль PRINTER с помощью зарезервированного слова uses.
Пример
Uses Printer;
Var
------
BEGIN
Write(234); { выводится значение 234}
Write(A+B-2); { выводится результат выражения }
Write(Lst,’Результат вычислений’, Result); {результат выводится на принтер}
I:=123, rr=:123.456; B:=true;
Writeln(i:8); { 123} { выравнивается по правому краю}
Writeln(r:8:2); { 123.46}
Общая ширина поля дробная часть
Writeln(i,I,i); {123123123} { выравнивается по правому краю}
Writeln(r); {в поле шириной 17 символов выводится десятичное представление r в формате с плавающей точкой #.##########E*## +1.2345600000E+02}
Writeln(B:6,not B:7); { True False}
Найдите ошибки в программе:
CONST
A,B: integer;
Result: byte;
BEGIN
Write (‘Введите 2 числа:’ );
Readln(A,B);
Result:= A DIV B;
Writeln (‘Отношение равно:’ Result);
END.