- •Конспект лекций
- •1.4 Общая структура программы
- •1.5 Стандартные процедуры и функции
- •1.6 Процедуры ввода/вывода
- •2. Простые типы данных
- •2.1 Целые типы
- •2.2 Вещественные типы
- •2.3 Cимвольный тип данных
- •2.4 Логический тип данных.
- •2.5 Ограниченные типы
- •2.6 Перечислимые типы
- •2.7 Описание типов
- •2.8 Преобразование типов
- •2.9 Порядок вычисления выражений
- •3. Операторы языка Паскаль
- •3.1 Оператор присваивания
- •3.2 Составной оператор
- •3.3 Условный оператор
- •3.4 Оператор выбора case
- •3.5 Оператор цикла с параметром (цикл for)
- •3.6 Оператор цикла с предусловием (цикл while)
- •1 Вариант:
- •2 Вариант:
- •3 Вариант:
- •3.7 Оператор цикла с постусловием (цикл repeat)
- •3.8 Вложенные циклы
- •3.9 Оператор перехода goto
- •4. Массивы
- •4.2 Сортировка элементов массива
- •4.3 Многомерные массивы
- •5. Подпрограммы (процедуры и функции)
- •5.1 Процедуры
- •5.2 Функции
- •5.3 Области действия имен
- •5.4 Параметры процедур и функций
- •5.5 Побочные эффекты при использовании подпрограмм
- •5.6 Передача массивов в подпрограммы
- •5.7 Параметры-костанты
- •5.8 Массивы открытого типа
- •5.9 Рекурсия в подпрограммах
- •6. Строковый тип данных
- •6.1 Описание строк
- •6.2 Операции со строками
- •6.3 Процедуры и функции для работы со строками
- •7. Стандартные модули Турбо-Паскаля
- •7.1 Модули турбо3 и graph3
- •7.2 Модуль overlay
- •7.3 Модуль dos
- •7.4 Модуль system
- •7.5 Модуль printer
- •7.6 Модуль crt
- •7.7 Модуль graph
- •8. Записи
- •8.1 Определение записи
- •8.2 Оператор над записями
- •8.3 Вложенные записи
- •8.4 Массив записей
- •8.5 Записи с вариантами
- •9. Файлы
- •9.1 Определение файла
- •9.2 Процедуры и функции для работы с файлами
- •9.3 Нетипизированные файлы
- •10. Интегрированная среда Турбо Паскаля
- •10.1 Как начать работу с Турбо Паскалем
- •10.2 Ваша первая программа
1.5 Стандартные процедуры и функции
В Паскале существует ряд заранее разработанных подпрограмм, которые можно использовать в своих программах.
Арифметические функции
y := abs(x); y = |x|
y := sin(x); y = sin x
y := cos(x); y = cos x
y := arctan(x); y = arctg x
y := exp(x); y = ex
y := ln(x); y = ln x
y := sqr(x); y = x2
y := sqrt(x); y = √x
y := pi ; y = π
y := frac(x); дробная часть числа frac(3.9)=0.9
y := int(x); целая часть числа int(3.9)=3.0
Арифметические функции можно использовать только с величинами целого или вещественного типа. Результат арифметических функций (кроме sqr и abs) – вещественный. У sqr и abs тип результата совпадает с типом аргумента.
В Паскале нет функции возведения в степень, эта функция вычисляется с использованием функций exp и ln следующим образом:
yx = exp(x*ln(y));
Некоторые другие функции и процедуры
y := round(x); округление вещественного числа до ближайшего целого:
round(4.7)=5; round(3.2)=3; round(2.5)=2
y := trunc(x); целая часть вещественного числа: trunc(4.7)=4
y := odd(x); проверка величины х на нечетность: true, если х нечетный, иначе false
Например, odd(3) = True; odd(2) = False;
write(x); вывод значения х на экран
writeln(x); вывод значения х на экран с последующим переводом курсора на новую строку
read(x); ввод значения х с клавиатуры
readln(x); ввод значения х с клавиатуры с последующим переводом строки
clrscr; очистка экрана, перевод курсора в его левый верхний угол
Чтобы использовать эту процедуру, надо подключить к программе модуль CRT: uses crt;
delay(msec); задержка экрана, msec – число в микросекундах
Random(n); генератор случайных целых чисел - в каждый момент времени выдает одно
случайное целое число из диапазона от 0 до n-1 включительно.
Random; генератор случайных чисел без параметра - генерирует вещественное число
из диапазона от 0 до 1.
Randomize; процедура инициализации (первоначальная настройка) генератора случайных чисел. Всегда вызывается до использования random. Если не использовать Randomize, то при каждом новом запуске программы на выполнение, генератор случайных чисел будет выдавать одну и ту же первоначально выданную последовательность случайных чисел.
Пример:
x:=random(10); {случайное целое число из диапазона от 0 до 9}
x:=random(100)-50; { random(100) - случайное целое число из диапазона от 0 до 99,
минимально возможное значение x = 0 – 50 = -50;
максимально возможное значение x = 99 – 50 = 49; }
y:=random*10; { случайное вещественное число из диапазона от 0 до 9}
z:=random*10-10; { случайное вещественное отрицательное число из диапазона от 0 до 9}
Пример: программа вычисления площади круга S= πr2.
Uses Crt; {подключение модуля Crt - в нем описана процедура Clrscr – очистка экрана }
Var s,r: real; {раздел описания переменных–описаны 2 переменные вещественного типа}
Begin
Clrscr; { очистка экрана }
Write(‘Введите радиус r = ’); {выведет на экран текст: Введите радиус r = }
Readln(r); {приостановит работу программы до ввода какого-либо (одного) числа: надо
набрать на клавиатуре число и нажать клавишу Enter. После этого введенное число
автоматически запишется в переменную, указанную в скобках }
s:=pi*r*r; {вычислит значения выражения и запишет результат в s; pi ≈ 3,14…}
writeln(‘Площадь круга S =’, s:10:5); {выведет на экран текст из апострофов и значение s}
delay(10000); {задержит результат на экране в течении 10 секунд, затем вернется к
исходному тексту программы}
End.
При работе с целыми числами могут оказаться полезными две процедуры (в квадратных скобках указываются необязательные параметры):
dec (x [, N]) - уменьшает содержимое переменной x на значение выражения N (если N не задано, то на 1); тип переменной x и выражения N - INTEGER (точнее, любой целый тип: см.п.2.1);
inc (x [, N]) - увеличивает значение x на N (если N не задано, то на 1).
Например, a:=6; b:=4; x:=7; y:=0;
dec(a,3); inc(b,3); dec(x); inc(y);
write(‘a=’,a,’ b=’,b,’ x=’,x,’ y=’,y);
В результате выполнения данного фрагмента программы, на экране увидим следующее:
a=3 b=7 x=6 y=1