Стандартные функции pascal
Сначала выполняется значение выражения, указанного в правой части оператора, а затем его результат записывается в область памяти, имя которой указанно слева.
Оператор ввода
Останавливает работу программы и ждет пока пользователь введет данные с клавиатуры.
read (а) read (а,b)
readln (а,b) readln (а)
Оператор вывода
Выводит необходимую информацию на экран монитора
write (а) write (а)
writeln (а) writeln (а,b)
При выводе данных вещественного типа ширина поля определяет количество отображаемых разрядов чисел. При этом значение выводится в экспоненциальном формате.
Если необходимо вывести вещественное значение в формате с фиксированной точкой, то используется еще одна, расширенная конструкция:
Writeln(значение: ширина_поля_вывода : ширина дробной части);
Составной оператор
Если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор.
Составной оператор начинается ключевым словом begin и заканчивается словом end. Между этими словами помещаются составляющие операторы, которые выполняются в порядке их следования. После end ставится точка с запятой, а после begin – только пробелы (либо комментарий).
Слова begin и end играют роль операторных скобок.
Clrscr – очистка экрана
ЦЕЛОЧИСЛЕННЫЕ АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
Целочисленная арифметика языка Паскаль основана на использовании пяти стандартных целых типов: Byte, Word, ShortInt, Integer, LongInt.
Cо всеми целыми типами связан набор из пяти основных арифметических операций: +, -, *, div, mod.
— условие делимости целого A на целое B.
— условие чётности целого A.
— значение последней цифры в десятичной записи целого А (например, 1234 mod 10 = 4).
число, десятичная запись которого получится отбрасыванием последней цифры в десятичной записи целого числа А (например, 1234 div 10 =123).
— значение последней цифры в p-ичной записи целого А (например, при p=2, A mod 2 — последняя цифра записи А в двоичной системе счисления);
— число, p-ичная запись которого получится отбрасыванием последней цифры в p-ичной записи целого числа А (например, 510=1012; 510 div 2 =210=102; т.е. из 1012 получили 102);
Вывести на экран сумму и произведение цифр двухзначного числа.
var ab, b, s, p, a: integer;
readln(ab); //ввод двузначного числа
a:=abdiv10; //вывод первой цифры числа
b:=abmod10; // вывод второй цифры числа
s:=a+b; //сумма цифр числа
p:=a*b; //произведение цифр числа
writeln(s); //вывод суммы
writeln(p); //вывод произведения
Поменять местами первую и третью цифры трехзначного числа.
var abc,a,b,c,cba: integer;
a:=abc div 100; //первая цифра числа
b:=(abcdiv10)mod10; //вторая цифра числа
c:=abcmod10; //третья цифра числа
Даны две переменных с разными значениями. Поменять местами значения переменных.
vara,b,c:integer; //вводим дополнительную переменную для промежуточного хранения данных
Вывести на экран среднее арифметическое цифр трехзначного числа
readln(х); //ввод трехзначного числа
sr:=((хdiv100)+((хdiv10)mod10)+(хmod10))/3; //среднее арифметическое цифр числа
УСЛОВНЫЙ ОПЕРАТОР IF…THEN…ELSE
Условный оператор if служит для организации процесса вычислений в зависимости от какого-либо логического условия. Оператор имеет вид:
if <условие> then <оператор_1> else <оператор_2>;
Если условие истинно, то выполняется оператор (простой или составной), следующий за словом then. Но если условие ложно, то будет выполняться оператор, следующий за словом else.
Если в задаче требуется, чтобы в зависимости от значения условия выполнялся не один оператор, а несколько, то ставятся операторные скобки begin …end
if <условие> then
begin
<оператор_1>; <оператор_2>;
begin
<оператор_3>; <оператор_4>;
Альтернативная ветвь else может отсутствовать, если в ней нет необходимости. В таком «усеченном» операторе в случае невыполнения условия ничего не происходит, и управление передается следующему оператору
if <условие> then <оператор_1>
Для сравнения переменных в условных выражениях применяются операции отношения
Если введенное с клавиатуры число положительное, то увеличить его на два, иначе увеличить его в 2 раза.
Найти минимальное из трех чисел, введенных с клавиатуры.
vara,b,c,min:integer; //вводим дополнительную переменную для хранения значения минимума
if a<b then //если a<b то
min:=a//minприсваиваем значение а
min:=b; //minприсваиваем значениеb
ifc<minthen//сравниваем оставшееся число сmin, и если оно меньше, то
min:=c; //minприсваиваем значение с
Определить будет ли введенное с клавиатуры число, увеличенное в 7 раз, четным.
if a mod 2=0 then
writeln (‘четное’)
writeln (‘нечетное’);
Дано двузначное число. Определить:
— является ли сумма его цифр четным числом; — является ли сумма его цифр двузначным числом;
var ab, a, b: integer;
if s mod 2=0 then
writeln (‘четное’)
writeln (‘нечетное’);
if (s >9) and (s<100) then
writeln (‘двузначное’)
writeln(‘недвузначное’);
Логические операции
Над логическими аргументами в Турбо Паскаль определены следующие операции:
NOT — логическое отрицание («НЕ»)
AND — логическое умножение («И»)
OR — логическое сложение («ИЛИ»)
XOR — логическое «Исключающее ИЛИ»
Результаты выполнения этих операций над переменными А и В логического типа приведены в таблице истинности.
Операции отношения
К операциям отношения в Турбо Паскаль относятся такие операции, как:
<> — не равно
>= — больше или равно
<= — меньше или равно
В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.
Приоритет операций
Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:
унарная операция not, унарный минус -, взятие адреса @
операции типа умножения: * / div mod and
операции типа сложения: + — or xor
операции отношения: = <> < > <= >= in
Порядок выполнения операций переопределить можно с помощью скобок. Например 2*5+10 равно 20, но 2*(5+10) равно 30.
ОПЕРАТОРЫ ЦИКЛА
Цикл – это повторение одних и тех же действий.
Последовательность действий, которые повторяются в цикле, называются телом цикла.
Один проход цикла называют шагом или итерацией.
Итерация – это организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя.
Переменные, которые изменяются внутри цикла и влияют на его окончание, называются параметрами цикла.
При написании циклов необходимо помнить:
цикл когда-нибудь закончится, содержимое его тела должно влиять на условие цикла;
условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.
Операторы завершения цикла
Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.
Определены стандартные процедуры:
Break
Continue
Процедура Break выполняет безусловный выход из цикла.
Процедура Continue обеспечивает переход к началу новой итерации цикла.
Паскаль – Типы переменных
Переменная – это не что иное, как имя, данное области памяти, которой могут манипулировать наши программы. Каждая переменная в Паскале имеет определенный тип, который определяет размер и расположение памяти переменной; диапазон значений, которые могут быть сохранены в этой памяти; и набор операций, которые могут быть применены к переменной.
Имя переменной может состоять из букв, цифр и символа подчеркивания. Он должен начинаться либо с буквы, либо с подчеркивания. Паскаль не чувствителен к регистру , поэтому заглавные и строчные буквы здесь означают одно и то же. Основываясь на базовых типах, описанных в предыдущей главе, будут следующие базовые типы переменных:
Основные переменные в Паскале
Обычно один октет (один байт). Это целочисленный тип.
целое число
Наиболее натуральный размер целого числа для машины.
Значение с плавающей запятой одинарной точности.
Указывает истинные или ложные логические значения. Это также целочисленный тип.
Перечислимый
Определяет пользовательский список.
Поддиапа- зон
Представляет переменные, значения которых лежат в диапазоне.
Хранит массив символов.
Обычно один октет (один байт). Это целочисленный тип.
целое число
Наиболее натуральный размер целого числа для машины.
Значение с плавающей запятой одинарной точности.
Указывает истинные или ложные логические значения. Это также целочисленный тип.
Перечислимый
Определяет пользовательский список.
Поддиапа- зон
Представляет переменные, значения которых лежат в диапазоне.
Хранит массив символов.
Язык программирования Pascal также позволяет определять различные другие типы переменных, которые мы рассмотрим в следующих главах, таких как Pointer, Array, Records, Sets, Files и т. Д. В этой главе мы изучим только основные типы переменных.
Объявление переменных в Паскале
Все переменные должны быть объявлены до того, как мы используем их в программе Pascal. Все объявления переменных сопровождаются ключевым словом var . Объявление определяет список переменных, за которыми следует двоеточие (:) и тип. Синтаксис объявления переменной –
Здесь тип должен быть допустимым типом данных Pascal, включая символьные, целые, действительные, логические или любые другие определяемые пользователем типы данных и т. Д., А variable_list может состоять из одного или нескольких имен идентификаторов, разделенных запятыми. Некоторые действительные объявления переменных показаны здесь –
В предыдущем уроке мы обсуждали, что Pascal позволяет объявлять тип. Тип может быть идентифицирован по имени или идентификатору. Этот тип может использоваться для определения переменных этого типа. Например,
Теперь определенные типы могут использоваться в объявлениях переменных –
Обратите внимание на разницу между объявлением типа и объявлением var . Объявление типа указывает категорию или класс типов, таких как целое число, вещественное и т. Д., Тогда как спецификация переменной указывает тип значений, которые может принимать переменная. Вы можете сравнить объявление типа в Pascal с typedef в C. Самое главное, имя переменной относится к области памяти, где будет храниться значение переменной. Это не так с объявлением типа.
Инициализация переменной в Паскале
Переменным присваивается значение с двоеточием и знаком равенства, за которым следует постоянное выражение. Общая форма присвоения значения –
По умолчанию переменные в Паскале не инициализируются с нуля. Они могут содержать мусорные значения. Поэтому лучше инициализировать переменные в программе. Переменные могут быть инициализированы (им присвоено начальное значение) в их объявлении. За инициализацией следует ключевое слово var, а синтаксис инициализации следующий:
Вот некоторые примеры:
Давайте посмотрим на пример, который использует различные типы переменных, которые обсуждались до сих пор –
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Перечисляемые переменные
Вы видели, как использовать простые типы переменных, такие как integer, real и boolean. Теперь давайте посмотрим переменные перечислимого типа, которые можно определить как –
Когда вы объявили перечислимый тип, вы можете объявить переменные этого типа. Например,
Следующий пример иллюстрирует концепцию –
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Переменные поддиапазона
Переменные поддиапазона объявляются как –
Примеры поддиапазонных переменных:
Следующая программа иллюстрирует концепцию –
Когда приведенный выше код компилируется и выполняется, он дает следующий результат –
Процедуры STR и VAL.
В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры STR и VAl.
Например, возьмем 2 числа: 125 и 347. Если эти числа записаны в строковых переменных, то с ними можно производить те действия, которые производятся над строками. Например, в результате операции сцепления 125+347 получится 125347. Если же данные числа будут записаны в переменных типа Integer или Real, то над ними можно производить операции, предусмотренные для чисел (сложение, вычитание умножение, деление, DIV, MOD и т.д.). Например, в результате операции сложения 125+347 получится 472.
В языке программирования Pascal предусмотрена возможность преобразования чисел в их символьное представление и наоборот.
Процедура STR преобразует число целого или вещественного типов в его строковое представление. Процедура имеет 2 параметра: STR (X, ST), где «X» — это число, а ST – его строковое представление. Также, можно указывать формат преобразования: STR(X:A:B, ST), где «A» задает ширину всего поля, которое выделяется для строкового представления числа, а «B» — количество символов в дробной части (последний параметр имеет значение в том случае, если преобразуется вещественное число). Процедура STR делает с числом то же, что и оператор Writeln перед тем как вывести число на экран (преобразует число в символ).
Процедура VAL преобразует строковое представление числа в само число, которое можно записать в целочисленную или вещественную переменную. Процедура имеет 3 параметра: VAL (ST, X, CODE), где ST – строка, которую необходимо преобразовать в число, X – вещественная или символьная переменная, в которую записывается это число, CODE – необязательный параметр, который, в случае ошибки будет содержать номер позиции, в которой обнаружен ошибочный символ.
Использование процедуры STR.
Строка №3. Создаем 3 строковые переменные.
Строка №4. Создаем 3 целочисленные переменные.
Строка №7. В 1-ую переменную типа Integer записываем число 1234.
Строка №8. Во 2-ую переменную типа Integer записываем число 5678.
Строка №9. Складываем эти числа, результат записываем в 3-ю переменную.
Строка №10. Выводим результат на экран.
Строка№11. Переводим 1-ое число в его строковое представление, результат сохраняем в переменной «stroka1».
Строка №12. Переводим 2-ое число в его строковое представление результат сохраняем в переменной «stroka2».
Строка №13. Производим над строками операцию сцепления и записываем результат в переменную «stroka».
Строка №14. Выводим результат на экран.

О процедуре STR также можно прочитать в разделе, посвященному графике в Pascal.
Использование процедуры VAL.
Напишем программу, в которой строковой переменной будет присвоено значение, определяющее дату, например, 23.02.1965. Пусть эта дата обозначает год вашего рождения. Программа, должна подсчитать, сколько вам лет на текущий момент. Текущим моментом будем считать 2012 год.
Строка №7. В переменную «stroka1» записываем дату рождения.
Строка №8. В переменную «stroka2» копируем из переменной «stroka1» последние 4 символа, 1965.
Строка №9. Преобразовываем эти 4 символа в число и записываем это число в целочисленную переменную «rog».
Строка №10. В целочисленную переменную «let» записываем значение, которое получится при вычитании из числа 2012 числа 1965.
Программирование. Строки и символы Pascal-Паскаль
Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:
- Общая длина строки, которая характеризует размер памяти, выделяемый строке при описании;
- Текущая длина строки (всегда меньше или равна общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени.
Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.
Код ASCII (American Code for Information Interchange – Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение. Основной стандарт использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта используются символы псевдографики и буквы национальных алфавитов.
Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например, ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (») обозначают пустую строку, т.е. строку с нулевой длиной.
Описание строковой переменной Паскаля
Для описания строковых переменных в Паскале существует предопределенный тип string.
В общем виде описание строковой переменной будет выглядеть следующим образом:
Пример описания строковой переменной в Паскале:
В приведенном выше описании строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..
Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер, так же как это делается в одномерных массивах. Например, s1[2] позволяет обратиться ко второму символу в строке s1, при этом мы можем поменять это значение, выполнив оператор присваивания s1[2]:= ‘r’, можем вывести на экран это значение или присвоить его другой переменной.
Действия со строками в Паскале
Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.
Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). В результате сравнения двух строк получается логическое значение (true или false). Сравнение строк производится слева направо посимвольно до первого несовпадающего символа, большей считается та строка, в которой первый несовпадающий символ имеет больший код в таблице кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше. Строки равны, если они имеют равную длину и соответствующие символы совпадают.
Пример действий со строками в Паскале:
‘строка'<>’строки’ (верно, т.к. не совпадают последние символы);
‘Abc'<‘abc’ (отношение истинно, т.к. код символа ‘A’ равен 65 в десятичной системе счисления, а код символа ‘a’ – 97);
‘год’>’век’ (отношение верно, т.к. буква ‘г’ в алфавите стоит после буквы ‘в’, а, следовательно, имеет больший код).
Стандартные функции для работы со строками в Паскале
Copy (S, poz, n) выделяет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – любое строковое выражение, poz, n – целочисленные выражения.
| Значение S | Выражение | Результат |
| ‘строка символов’ | Copy(S,3,3) | рок |
Concat (s1, s2. sn) выполняет слияние строк s1, s2. sn в одну строку.
| Выражение | Результат |
| Concat(‘язык’, », ‘Pascal’) | ‘язык Pascal’ |
Length(S) определяет текущую длину строкового выражения S. Результат – значение целого типа.
| Значение S | Выражение | Результат |
| ‘(а+в)*с’ | Length(s) | 7 |
Pos(subS, S) определяет позицию первого вхождения подстроки subS в строку S. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.
| Значение S | Выражение | Результат |
| ‘предложение’ | Pos(‘е’, S) | 3 |
| ‘предложение’ | Pos(‘a’, S) | 0 |
Стандартные процедуры для работы со строками в Паскале
Delete (S, poz, n) удаляет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – строковая переменная (в данном случае нельзя записать никакое другое строковое выражение, кроме имени строковой переменной, т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения.
| Исходное значение S | Оператор процедуры | Конечное зн-е S |
| ‘abcdefg’ | Delete(s, 2, 3) | ‘aefg’ |
Insert(subS, S, poz) вставляет в строку S, начиная с позиции poz, подстроку subS. Здесь subS – любое строковое выражение, S – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение.
| Исходное значение S | Оператор процедуры | Конечное зн-е S |
| ‘рис. 2’ | Insert(‘№’, S, 6) | ‘рис. №2’ |
Процедуры преобразования типов в Паскале
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.
| Оператор процедуры | Значение S |
| Str (sin(1):6:4, S) | ‘0.0175’ |
| Str (3456, S) | ‘3456’ |
Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.
| Тип X | Оператор процедуры | Значение X | Значение kod |
| Real | Val(‘12.34’, x, kod) | 12.34 | 0 |
| Integer | Val(‘12.34’, x, kod) | 12 | 3 |
Программирование
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту