Практическая работа № 3
Тема: Типы данных, стандартные операции и функции Паскаля. Ввод и вывод информации.
Цель работы:
Формирование и отработка умений и навыков работы по вводу и выводу информации разного типа в среде Паскаль АВС.
Решение задач линейного типа, изучение стандартных функций и типов данных
Краткая теория
Типы данных
Тип | Диапазон значений | |
Целый | ShortInt | -128...127 |
Integer | -32768...32767 | |
Longint | -2147483648... 2147483647 | |
Byte | 0.... 255 | |
Word | 0... 65535 | |
Вещественный | Real | 2,9 10-39..... 1,7 1038 11..12 значащих цифр |
Single | 7..8 значащих цифр | |
Double | 15..16 значащих цифр | |
Extended | 19..20 значащих цифр | |
Comp | 19..20 значащих цифр | |
Логический | Boolean | TRUE, FALSE |
Символьный | Char | 1 символ |
Строковый | String | Массив символов, по умолчанию длина 256 символов |
Массивы | array | |
Записи | record | |
Множества | set | |
Файлы | File | |
Указатели | Pointer |
В Паскале в распоряжении пользователя имеются множество операций и функций. Вот некоторые из них:
Операции целочисленной арифметики:
Целочисленное деление Div - (при целочисленном делении операция Div возвращает целую часть частного (дробная часть отбрасывается))
11 div 4 = 2
7 div 3 = 2
26 div 5 = 5
Остаток от деления Mod - (остаток от деления (целая часть отбрасывается))
Mod 4 3
7 mod 3 = 1
26 mod 5 = 1
Обратите внимание: если Х Mod Y = 0, то Х кратно Y
если Х Mod 2 = 0, то Х четное число,
если Х Mod 2 = 1,то Х нечетное число
Стандартные функции Паскаля:
Обращение | Тип аргумента | Тип результата | Функция | Пример |
PI | R | Число π=3.1415926536Е+00 | A:=pi; | |
ABS(X) | I,R | I,R | Модуль аргумента Х | abs(-4)=4 |
ARCTAN(X) | I,R | R | Арктангенс Х(радианы) | |
COS(X) | I,R | R | Косинус Х (х в радианах) | |
EXP(X) | I,R | R | ех-экспонента | |
FRAC(X) | I,R | R | Дробная часть х | Frac(6.9)=0.90 |
INT(X) | I,R | R | Целая часть х | Int(6.9)=6.00 |
LN(X) | I,R | R | Натуральный логарифм Х | |
RANDOM | R | Случайное число в интервале [0..1] | A:=random; Write(a);{выйдет цифра 0.3} | |
RANDOM(X) | I | I | Случайное число в интервале [0..x-1] | |
ROUND(X) | R | I | Округление до ближайшего целого | |
SIN(X) | I,R | R | Синус Х(ч в радианах) | |
SQR(X) | I,R | I,R | Квадрат Х | |
SQRT(X) | I,R | R | Корень квадратный из Х | |
TRUC(X) | R | I | Ближайшее целое, не превышающее Х по модулю | Trunc(6.9)=7 Trunc(6.4)=6 |
В Паскале пользователь может вычислять значения сложных выражений, состоящих из многих переменных и функций, с использованием скобок. Любые выражения записываются в одну строку с использованием скобок, что позволяет менять очередность вычислений в сложных выражениях.
Пример выражения:
Y:= ((A+B)/(C+D*Cos(X))*2)/4 - Переменной Y присвоено значение выражения
Пример выражения.
Пример из математики
Пример: запишем по правилам Паскаля математическое выражение
На Паскале (2*a+Sqrt(0.5*Sin(x+y)))/(0.2*C-Ln(x-y))
На Паскале(1+y)*(2*x+sqrt(y)-(x+y))/(y+1/sqr(x)-4))
Для вычисления степенной функции используется следующая формула:xy=eyln(x) На Паскале Exp(y*Ln(x)).
Например это выражение на Паскале Exp(1/3*Ln(a+1))
При использовании операций и функций пользователю необходимо помнить о типах данных исходных и конечных значений, например частное от деления двух целых чисел может быть дробным числом, что естественно соответствующим образом должно быть объявлено в разделе переменных Var.
Оператор ввода
Read (<список переменных>);
Readln (<список переменных>);
После выполнения данного оператора программа останавливается и ждет ввода данных с клавиатуры. Если вводятся числовые данные, то их можно ввести через пробел друг за другом, а можно каждый отдельно нажимая в конце ввода Enter. Переменный в < списке переменных> разделяются запятой. Ln за словом Read означает, что после ввода следует перевести курсор на следующую строку.
Вводить с клавиатуры можно только значения переменных, но не выражения.
READLN(f,b,a);
read(s);
readln(w);
Оператор вывода
Write(‘комментарии’, <переменные>);
Writeln(‘ком - рии’, <переменные>);
Переменный в <списке переменных> разделяются запятой.
Форматированный вывод информации:
Операторы Write и Writeln выводят значения переменных и тексты на экран. Ве- щественные (дробные) числа выводятся в формате с плавающей точкой, например:
1.7480000000Е+02, что не совсем удобно и наглядно.
Решаем проблему с помощью форматированного вывода информации, где имеется возможность указать ширину поля вывода для переменной или выражения, например:
Var
A: string[15]; B,C: integer; D,Y: Real;
Begin
ReadLn(B,C); ReadLn(A);
D:= B Mod C; Y: =25.178;
Y:= Int(Y); WriteLn(Y:6:1);
WriteLn(‘ A = ‘, A:22); // Вывод значения текста А шириной в 22 символа WriteLn(B:6, C:4); // Вывод значений чисел В и С шириной 6 и 4 символа WriteLn(D:8:2); //Вывод дробного числа D шириной 8 с 2 знаками после запятой
End.
Форматированный вывод удобно использовать при выводе чисел и текста для выравнивания столбцов выводимой информации.
Задания к работе
1. Введите дробное число. Выведите отдельно на своей строке дробную и целую части.
2. Запиши программу вычисления выражения.
Значения Х и Y вводятся.
3. Запиши программу вычисления выражения.
Значения S, A, вводятся.
4. Запиши программу вычисления выражения.
Значения X, Y, Z вводятся.
5. Запиши программу вычисления суммы квадратов Синуса и Косинуса
(Sin(X))2 + (Cos(X))2
6. Напиши программу ввода А, В. Увеличить А в 20 раз, уменьшить В в 30 раз.
7. Напиши программу вычисления площади треугольника, если известны его стороны (формула Герона)
8. Найти значение функции при значениях аргумента Х=1,5 и введенных A B C
9. Напиши программу вычисления площади трапеции по введенным основаниям А и В, высоте h
10. Напиши программу вычисления площади окружности по введенному радиусу.