- •4.1. Алфавит языка FreePascal.
- •4.2. Операции и идентификаторы в языке FreePascal.
- •4.3. Типы данных.
- •4.4. Структура программы консольного приложения.
- •4.5. Где описываются константы, переменные, метки и типы данных?
- •4.6. Стандартные функции. Арифметические функции
- •Функции преобразования типов
- •4.14. Что такое подпрограмма? Ее назначение.
Федеральное агентство связи
Федеральное государственное бюджетное образовательное
учреждение высшего образования
Поволжский государственный университет
телекоммуникаций и информатики
Кафедра Информационных систем и технологий
Лабораторная работа №4
По дисциплине «Инструментальные средства информационных систем»
Тема: «Арифметические операции и подпрограммы в языке FreePascal»
Руководитель доцент к. т. н.
__________________ Никитин К.А.
Самара 2018
Цель работы
Изучение арифметический операций в языке FreePascal.
Получение практических навыков создания программ с функциями и процедурами.
Задание на выполнение работы
5.1. Вычислить значения переменных в соответствии с вариантами задания. Вывести значения вводимых исходных данных и результаты, сопровождая их вывод именами выводимых переменных.
5.2. Повторить задание 1 выполняя расчёт выражения в подпрограмме – процедуре.
№ |
Расчетные формулы |
Данные |
5 |
a = 16.5 b = 3.4 x = 0.61 |
5.1.
program prg_2_1; //название программы
uses SysUtils; //подключение модуля, содержащего функции разного назначения
label 10; //метка
var a,b,x,s,g: real; //блок описания переменных
proba:integer;
begin //начало исполняемой части программы
10: writeln('Введите a, b, x'); //вывод на экран. Данные метки
readln(a, b, x); //считывание введенного с клавиатуры
//writeln;
writeln('Вы ввели');
writeln('a= ',a:8:3,' b= ',b:8:3,' x= ',x:8:3);
//writeln;
writeln('Введите 1, если правильно');
readln(proba);
if proba<>1 then //условный оператор if . <> не равно
begin
//writeln;
goto 10; //переход к метке
end;
//writeln;
s:=sqr(x)*x*(sqr((sin(sqr(x+b)))/(cos(sqr(x+b)))))+(a/(sqrt(x+b)));
g:=(b*sqr(x)-a)/(exp(a*x)-1);
writeln('Результат');
writeln('s=',s:8:3,' g=',g:8:3);
readln;
end. //конец программы
5.2. program prg_2_2; //название программы
label 10; //метка
var //блок описания переменных
a,b,x,s,g: real;
proba:integer;
procedure f1(k,m,n:real; var rez1:real); //определение процедуры
begin //начало исполняемой части программы
rez1:=power(n,3)*(sqr(tan(sqr(n+m))))+(k/(sqrt(n+m)));
end;
procedure f2(o,p,r:real; var rez2:real);
begin
rez2:=(p*sqr(r)-o)/(exp(o*r)-1);
end;
begin
10: writeln('Введите a, b, x'); //вывод на экран. Данные метки
readln(a,b,x); //считывание введенного с клавиатуры
writeln;
writeln('Вы ввели');
writeln('a= ',a:8:3,' b= ',b:8:3,' x= ',x:8:3);
writeln;
writeln('Введите 1, если правильно');
readln(proba);
if proba<>1 then //условный оператор if . <> не равно
begin
writeln;
goto 10; //переход к метке
end;
writeln;
f1(a,b,x, s); //вызов процедуры
f2(a,b,x,g);
writeln('Результат');
writeln('s=',s:8:3,' g=',g:8:3);
readln;
end.
Контрольные вопросы
4.1. Алфавит языка FreePascal.
Программа формируется из предложений, состоящих из лексем и разделителей, которые в свою очередь формируются из конечного набора литер, образующих алфавит языка Pascal. Этот язык состоит из букв латинского алфавита (прописных – А, В, С, D ... X, Y, Z, строчных – а, b, с ... x, у, z), арабских цифр (0, 1, 2, 3,4, 5, 6, 7,8,9) и специальных символов.
4.2. Операции и идентификаторы в языке FreePascal.
Стандартные идентификаторы используются для обозначения определенных разработчиками языка функций, констант. Например: sqrt, abs и др.
Идентификаторы пользователя применяют для обозначения имён программ, переменных, констант и других объектов, определенных в программе. Имя может состоять из любого количества букв или цифр (максимальная длина – 127 символов), но должно начинаться с буквы или символа подчёркивание.
В таблице приведены основные математические операции Турбо Паскаль.
Символ операции |
Название операции |
Пример |
* |
умножение |
2*3 (результат: 6) |
/ |
деление |
30/2 (результат: 1.5E+01) |
+ |
сложение |
2+3 (результат: 5) |
- |
вычитание |
5-3 (результат: 2) |
div |
целочисленное деление |
5 div 2 (результат: 2) |
mod |
остаток от деления |
5 mod 2 (результат: 1) |
Логические операции
NOT - логическое отрицание ("НЕ")
AND - логическое умножение ("И")
OR - логическое сложение ("ИЛИ")
XOR - логическое "Исключающее ИЛИ"
Операции отношения
> - больше
< - меньше
= - равно
<> - не равно
>= - больше или равно
<= - меньше или равно
4.3. Типы данных.
Тип данных integer может содержать целые числа от -32768 до 32767. Это знаковый диапазон, который может быть сохранён в 16-битном слове. Для обратной совместимости 32-битный знаковый integer является longint и может содержать гораздо больший диапазон значений.
Тип данных real имеет диапазон от 3.4x10-38 до 3.4x1038, в дополнение к такому же диапазону в отрицательной области. Вещественные значения хранятся внутри компьютера сходно с научной нотацией - с мантиссой и экспонентой, с некоторыми усложнениями.
Тип данных char содержит символы. Стандартный Pascal использует 8-битные символы, а не 16-битные.
WideChar - это двухбайтный символ и может содержать юникодный символ.
PChar определён как указатель на тип Char, но позволяет дополнительные операции. переменная типа PChar является указателем, который указывает на массив типа Char, завершающийся нулевым символом (#0). Free Pascal поддерживает инициализацию типизированных констант PChar, или прямое присваивание.
String, последовательность символов с необязательным указанием размера.
Предопределённый тип ShortString определён как строка длиной 255.
AnsiString - строки, которые не имеют ограничения по длине. Это строки с подсчётом ссылок и гарантированно завершающиеся нулевым символом. Внутренне ansistring рассматривается как указатель: реальное содержимое строки хранится в куче, в которой выделяется столько памяти, сколько необходимо для хранения содержимого строки.
Тип Widestring используется для представления строк юникодных символов.
Тип данных boolean может иметь только два значения: TRUE (истина) и FALSE (ложь).