Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4lab.docx
Скачиваний:
47
Добавлен:
12.06.2018
Размер:
339.11 Кб
Скачать

Федеральное агентство связи

Федеральное государственное бюджетное образовательное

учреждение высшего образования

Поволжский государственный университет

телекоммуникаций и информатики

Кафедра Информационных систем и технологий

Лабораторная работа №4

По дисциплине «Инструментальные средства информационных систем»

Тема: «Арифметические операции и подпрограммы в языке FreePascal»

Руководитель доцент к. т. н.

__________________ Никитин К.А.

Самара 2018

  1. Цель работы

Изучение арифметический операций в языке FreePascal.

Получение практических навыков создания программ с функциями и процедурами.

  1. Задание на выполнение работы

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 (ложь).

Соседние файлы в предмете Инфокоммуникационные системы и сети