Стандартные функции Pascal. Процедуры и функции паскаль Функция дробная часть в паскале

ПРИМЕР: Напишем простую программу, обрабатывающую символьные величины.

VAR c: Char; n: Byte;

CONST Blank =" "; Space:Char =Blank;

BEGIN WRITE("введите какой-нибудь символ "); READ(c);

WRITELN("вы ввели символ",Space,c,Space,"его номер=",Ord(c));

WRITELN("соседние с ним символы:",Space,Pred(c),Space,

"и",Space,Succ(c));

WRITELN("UpCase(",c,")=",UpCase(c)); WRITELN;

Space:="""; WRITE("теперь введите число от 33 до 255 "); READ(n);

WRITELN("символ с номером ",n," - это ",Space,Chr(n),Space);

Для арифметических данных, т.е. для числовых констант, переменных и числовых функций определены шесть арифметических операций:

Сложение

Вычитание

* умножение

/ вещественное деление

DIV целая часть от деления

MOD остаток от деления

Первые четыре операции определены для любых операндов - как целых, так и вещественных, причем результат операции "/" всегда вещественное число, даже если оба операнда целые. Операции DIV и MOD определены только для целых операндов. Кроме того, выделяют унарную операцию "-", которая применяется не к двум, а к одному операнду, например: -x.

Вообще говоря, язык Паскаль запрещает использовать в одном выражении разнотипные операнды, однако для арифметических данных сделано исключение. Перед выполнением арифметической операции один или оба операнда автоматически приводятся к одному типу, а затем уже подставляются в выражение. Значение любого выражения всегда имеет определенный тип - такой же, как у операндов после приведения их к одному типу. Правила преобразования целочисленных типов приведены в таблице 2.

Таблица 2

Правила преобразования типов

Операнды Byte ShortInt Word Integer LongInt
Byte Integer Integer Word Integer LongInt
ShortInt Integer Integer LongInt Integer LongInt
Word Word LongInt Word LongInt LongInt
Integer Integer Integer LongInt Integer LongInt
LongInt LongInt LongInt LongInt LongInt LongInt

Если один операнд выражения имеет целочисленный тип, а второй - вещественный, то первый автоматически приводится к вещественному типу и значение выражения будет вещественным. Целые значения можно присваивать вещественной переменной, но вещественные значения присвоить целой переменной нельзя! Присваивая значение целочисленной переменной и константе, вы должны следить, чтобы это значение не выходило за пределы диапазона допустимых значений переменной. В языке Паскаль есть возможность явно преобразовать целочисленное значение к любому из целочисленных типов, для этого используются стандартные функции с именами Byte, ShortInt, Word, Integer и LongInt. Например, преобразуем переменную типа Word к типу Integer:

WRITELN(x," ",Integer(x));

WRITELN(x," ",Integer(x));

Программа выведет:

В первом случае преобразование происходит корректно, а во втором - с изменением значения.

Арифметическое выражение может содержать любое количество операндов и, соответственно, любое количество операций, которые выполняются в последовательности, определенной их приоритетом; приоритет операций *, /, DIV, MOD выше, чем операций + и -. Операции одного приоритета выполняются слева направо. Чтобы изменить порядок выполнения операций, вы можете использовать в выражении круглые скобки. Вычислим, например, частное от деления X на сумму A,B и C:

Набор встроенных математических функций в языке Паскаль невелик, он включает:

1. Abs(x) - абсолютная величина числа.

2. Int(x) - целая часть вещественного числа.

3. Frac(x) - дробная часть вещественного числа.

4. Trunc(x) - целая часть вещественного числа, преобразованная к типу LongInt.

5. Round(x) - округленное до целого вещественное число, преобразованное к типу LongInt.

6. Sqr(x) - квадрат числа.

7. Sqrt(x) - квадратный корень.

8. Exp(x) - экспонента.

9. Ln(x) - натуральный логарифм.

10. Pi - число пи.

11. Sin(x) - синус.

12. Cos(x) - косинус.

13. Arctan(x) - арктангенс.

Все остальные математические функции можно получить, пользуясь этим основным набором; например: десятичный логарифм - Ln(x)/Ln(10), тангенс - Sin(x)/Cos(x) и т.д. Аргументы функций могут быть любыми арифметическими выражениями и задаются в круглых скобках после имени функции, аргументы функций Sin и Cos выражаются в радианах. Вычислим квадрат синуса 70 градусов: Sqr(Sin(Pi/180*70))

Кроме перечисленных выше математических функций Паскаль предоставляет еще несколько полезных числовых функций и процедур разного назначения:

14. High (целый тип) - возвращает наибольшее возможное значение данного типа.

15. Low (целый тип) - возвращает наименьшее возможное значение данного типа.

16. SizeOf (тип)

SizeOf (переменная) - возвращает размер в байтах заданного типа или заданной переменной. Функция SizeOf применима к любому типу, в том числе и к структурированным типам - массивам, записям и некоторым другим, речь о которых пойдет ниже.

17. Random(Range:Word) - возвращает целое случайное число в диапазоне от 0 до Range-1.

18. Random - возвращает вещественное случайное число в из отрезка .

19. Randomize - процедура, инициализирующая генератор случайных чисел, используя текущее системное время

Выведем несколько случайных чисел в диапазоне от 0 до 99:

WRITELN(Random(100));

WRITELN(Random(100));

WRITELN(Random(100));

При первом запуске программы она вывела числа 13, 38, 48, при втором запуске - 63, 99, 6, при третьем запуске - 23, 87, 92. Это действие процедуры Randomize - поскольку при каждом запуске системное время, которое отсчитывает операционная система DOS, было различным, мы каждый раз получали различные последовательности случайных чисел. Теперь исключим из программы оператор Randomize; и запустим ее несколько раз - каждый раз мы будем получать тройку чисел 0, 3, 86.

Обратите внимание, что процедура используется в операторе вызова, а функция используется в выражении. Запись Random(100); неверна, поскольку Random - это функция, но также неверна и запись WRITELN(Randomize);. Можно считать, что различие между процедурой и функцией состоит в том, что процедура выполняет некоторую последовательность действий, а функция вычисляет некоторое значение. Заметим, что READ и WRITE - это тоже процедуры.

Для работы с внутренним двоичным представлением двухбайтовых целых чисел (типа Word или Integer) существуют функции:

20. Lo(x) - возвращает младший байт аргумента.

21. Hi(x) - возвращает старший байт аргумента.

22. Swap(x) - меняет местами младший и старший байты.

Сделаем отступление о двоичной системе счисления. Все данные в памяти компьютера хранятся закодированными в двоичной системе. Любая переменная занимает целое число байтов, а каждый байт есть последовательность из 8 двоичных цифр - битов. Например, значение переменной типа Byte, равное 11, хранится как последовательность битов 0000 1011, а если переменная имеет тип Word, то ее значение кодируется как 0000 0000 0000 1101. 1024 байта (или 2 в 10-й степени) имеют свое название - 1К байт, иногда эту величину также называют килобайт; 1024 К байт называют мегабайт. Пусть переменная t типа Word имеет значение 40000, или 1001 1100 0100 0000 в двоичной системе, тогда функция Lo(t) возвратит 64 (= 0100 0000), функция Hi(t) возвратит 156 (= 1001 1100) и функция Swap(t) возвратит 16540 (= 0100 0000 1001 1100).

Для целочисленных переменных определены процедуры:

Здесь x - имя переменной, d - любое целочисленное выражение. Процедура Inc увеличивает значение переменной на d, а процедура Dec - уменьшает на d; второй аргумент этих процедур можно не задавать, тогда он будет принят равным 1. Например, вместо операторов a:=a+3; b:=b-1; c:=c+a+b; мы могли бы написать Inc(a,3); Dec(b); Inc(c,a+b); , и такой способ записи был бы предпочтительней.

С.А. Григорьев

6. Символьный тип данных

Для хранения символьной информации в Паскале предусмотрен специальный тип данных Char. Допустимы переменные, нетипизированные и типизированные константы такого типа. Данные типа Char занимают 1 байт памяти. Неименованные символьные константы записываются в программе либо в виде "символ", либо в виде #номер. Все имеющиеся символы пронумерованы от 0 до 255, символы с 0-го по 31-й - невидимые, как правило, они не отображаются на экране, 32-й символ - это пробел. Приведем также номера некоторых других символов (хотя помнить эти номера нет никакой необходимости):

"0"..."9" - 48...57,

"A"..."Z" - 65...90,

"a"..."z" - 97...122,

"А"..."Я" - 128...159,

"а"..."п" - 160...175,

"р"..."я" - 224...239.

Некоторые из невидимых символов могут оказаться вам полезны: символ #7 - "звуковой сигнал", при выводе пищит; символ #10 - "конец строки", при выводе он перемещает текущую позицию вывода на одну строку вниз; символ #13 - "возврат каретки" - перемещает текущую позицию вывода в начало текущей строки. Запомните, что клавиша Enter генерирует два символа - #10 и #13, это может вам впоследствии пригодиться.

Символьные данные можно вводить и выводить процедурами READ и WRITE при вводе и выводе символьные значения изображаются без апострофов. Для символьных величин определены функции:

25. Ord(c) - возвращает номер символа.

26. Pred(c) - возвращает символ с номером, меньшим на 1.

27. Succ(c) - возвращает символ с номером, большим на 1.

Эти функция, однако, определены не только для символов, но для любого порядкового типа данных. Порядковым типом называется такой тип, все допустимые значения которого можно пронумеровать от 0 до некоторого N (в математике к этому понятию близко понятие счетного множества). Из известных нам типов порядковыми являются все целочисленные типы: Byte, ShortInt, Word, Integer, LongInt - и не являются порядковыми все вещественные типы. Значение функции Ord от числового аргумента равно самому этому аргументу, Pred(x) дает значение x-1, а Succ(x) - значение x+1. Функция

в некотором смысле обратна функции Ord: для заданного числового аргумента n она возвращает символ с соответствующим номером. Для символьных переменных (так же, как и для любых переменных порядкового типа) определены процедуры Inc и Dec. Еще одна специфически символьная функция:

Она преобразует значение аргумента, если это маленькая латинская буква, в соответствующую заглавную букву. К сожалению, функция не работает для русских букв.

31.01.2019 Learnpascal

Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.

Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?

Процедуры — мини-программы.

Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.

Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.

Program superpuper; var очень много буковок; procedure ampersand; begin write("&&&&&&&&&&&&&&&&&&&&"); end; begin суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; end.

Функции в Паскале — мега переменные.

Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.

Пример: a:=sqr(4).

Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!

Структура функции представлена на картинке ниже.

Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.

Математические функции

Имя Тип аргумента Результат вычисления Пример
Abs(x) Целый или Вещ. Модуль х Abs(-6) = 6
Sqrt(x) Вещественный Корень из х Sqrt(25)=5
Sqr(x) Целый и Вещ. Квадрат х Sqr(5)=25
Power(x, a) Вещественный Значение х а Power(5,3)=125
Frac(x) Вещественный Дробная часть х Frac(5.67)=0.67
Sin(x) Вещественный Синус х Sin(45)=0.8509
Cos(x) Вещественный Косинус х Cos(45)=0.5253
Arctan(x) Вещественный Арктангенс х Arctan(5)=1.3734
Int(x) Вещественный Целая часть х Int(5.67)=5.0
Random(x) Целый Случайное число (0..х-1) Random(5)=4
Succ(x) Порядковый Следующий Succ(10)=11
Pred(x) Порядковый Предыдущий Pred(‘Z’)=’Y’

Математические процедуры

Inc(x, a) Целый X:=X+A Inc(5)=6
Dec(x, a) Целый X:=X-A Dec(25,20)=5

Преобразование типов

Trunc(x) Вещественный Целая часть х Trunc(5.67)=5
Round(x) Вещественный Округление х до целого Round(5.67)=6
Важно! Если х = 5.5, то результат – 6, а если х = 6.5, то результат тоже 6!?

Операции div и mod.

Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.

Div

Для того, чтобы найти частное от деления, мы используем операцию div.

  • 25 div 20 = 1;
  • 20 div 25 = 0;
  • 39 div 5 = 7;
  • 158 div 3 = 52.

Mod

Для того, чтобы найти остаток от деления, мы используем операцию mod.

  • 25 mod 20 = 5;
  • 20 mod 25 = 0;
  • 39 mod 5 = 4;
  • 158 mod 3 = 2.

Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:

Задача 1. Найти сумму цифр двухзначного числа.

Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.

Блок-схема program Sumoftwo; var Number, Num1, Num2, Sum: integer; begin write("Введите двухзначное число: "); read(Number); { Возьмем число 25 } Num1:= Number div 10; { 25 div 10 = 2 } Num2:= Number mod 10; { 25 mod 10 = 5 } Sum:= Num1 + Num2; { 2 + 5 = 7 } write("Сумма двух чисел -- ", Sum); end.

Задача 2. Найти сумму цифр трехзначного числа.

Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.


Приоритет div и mod больше, чем приоритете + и -. Поэтому в данной программе можно обойтись без скобок. program Sumoftree; var Number, Sum: integer; begin write("Введите трехзначное число: "); read(Number); { Возьмем число 255 } Sum:= Number div 100 + Number mod 10 + Number div 10 mod 10; { 255 div 100 + 255 mod 10 + 255 div 10 mod 10 = 12 } write("Сумма трёх чисел -- ", Sum); end.

Вот и всё. На следующем уроке мы с вами начнём изучать особенности PascalABC.Net.

Стандартными функциями языка программирования Pascal приведены в табл. 1

Таблица 1:

Имя функции Выполняемая операция
ABS(X) Вычисляет модуль аргумента х, тип х – вещественный или целый, тип результата совпадает с типом аргумента
SQR(X) Вычисляет квадрат аргумента (х 2), тип х – вещественный или целый, результат совпадает с типом аргумента
SQRT(X) Вычисляет корень квадратный из аргумента х (х>0); тип х – вещественный или целый, тип результата вещественный
SIN(X) Вычисляет синус аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
COS(X) Вычисляет косинус аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
ARCTG(X) Вычисляет арктангенс аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
EXP(X) Возведение числа е=2,71828 в степень х (е х), тип х – вещественный или целый, тип результата вещественный

Эти функции содержатся в памяти среды программирования Pascal и являются подпрограммами вычисления наиболее используемых функций итерационными методами.

Примеры составления линейной программы

Пример 1 Найти среднее арифметическое трёх чисел - двух целых (X и Y) и одного вещественного (Z) и квадрат среднего арифметического.

Программа :

Program Midding;

X, Y: Integer;

Z, Midd, SqrMidd: Real;

WriteLn("Введите два целых числа X и Y:");

ReadLn(X,Y);

WriteLn("Введите вещественное число Z:");

ReadLn(Z);

Midd:=(X+Y+Z)/3;

SqrMidd:=SQR(Midd)

Writeln("Среднее арифметическое = ",Midd);

Write("Квадрат среднего арифметического = ",SqrMidd);

Описание программы

В заголовке указано имя программы - Midding (среднее), затем словом var открывается раздел описания переменных: X и Y – целые, Z – вещественная. Слово begin открывает основной блок программы, в котором:

▪ оператор WriteLn выводит на экран текст "Введите два целых числа X и Y:";

▪ оператор ReadLn(X,Y)считывает значения чисел, введённых с клавиатуры и присваивает их соответственно целым переменным X и Y;

оператор ReadLn(Z)считывает значение числа, введённого с клавиатуры и присваивает его вещественной переменной Z;

▪ затем оператор присваивания вычисляет среднее значение X,Y,Z и присваивает его переменной Midd, затем аналогично вычисляется квадрат этой величины и присваивается переменной SqrMidd;

▪ оператор Writeln выводит текст "Среднее арифметическое = ",

рассчитанное значение Midd и переводит курсор на новую строку;

▪ оператор Write выводит текст "Квадрат среднего арифметического = " и рассчитанное значение SqrMidd;

▪ оператор end. закрывает основной блок и завершает выполнение программы.

Пример 2 Вычислить площадь круга S и длину окружности L по заданному радиусу R.

Программа

Program KRUG;

const P=3.14159

R,S,L:Real;

Read(R);{ввод значения радиуса}

L:=2*P*R;

S:=P*SQR(R);

Writeln(Длина окружности = ",L,"см");

Write("Площадь круга = ",S,"кв.см");

Контрольные вопросы

1 Из каких разделов состоит любая программа на языке Pascal?

2 Формат и назначение оператора присваивания.

3 Формат и назначение операторов ввода данных.

4 Формат и назначение операторов вывода данных.

Задание

Найти площадь поверхности куба по формуле T=6a 2
Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянной скоростью v.
Вычислить:
В году примерно 3.156х10 7 сек. Написать программу, которая запрашивает возраст в годах и переводит его в секунды.
Вычислить:
Найти объем цилиндра по формуле: V=pR 2 H
Найти расстояние от точки с координатами (x,y) до начала координат.
Масса m одной молекулы воды примерно равна 3.0х10 -23 гр. Кварта воды равна примерно 950 гр. Написать программу, которая запрашивает количество воды в квартах и выводит число молекул в этом количестве воды.
Найти объем куба по формуле V=a 3 . (с использованием и без использования стандартных функций).
Вычислить:
Написать программу, которая запрашивает количество дней и переводит в недели и дни. Например, 18 дней = 2 недели и 4 дня.
Найти диагональ и площадь квадрата
Вычислить:
Найти площадь боковой поверхности шара: T=4pR 2
Вычислить:
Вычислить:

Для выполнения часто встречающихся операций и преобразований данных, относящихся к разным типам, существуют заранее определенные функции, которые называются СТАНДАРТНЫМИ. Для обращения к функции необходимо задать ее имя и в скобках список аргументов (параметров).

Прежде чем перейдем к стандартным функциям, сначала ознакомимся с правилами их использования:

  • 1. Имя функции записывается прописными буквами латинского алфавита.
  • 2. Аргумент функции записывается в круглых скобках после имени функции.
  • 3. Аргументом функции может быть константа, переменная, или арифметическое выражение того же типа

Теперь рассмотрим некоторые стандартные функции:

Функция Действие Тип Х Тип возвращаемого значения

SQRT(X) вычисляет квадратный корень из аргумента Х действительный действительный

SQR(X) вычисляет квадрат аргумента Х целый действи-тельный целый действи-тельный

RANDOM(X) возвращает случайное число, перед вызовом функции желательно использовать в программе оператор RANDOMIZE включающей случайную инициализацию генератора случайных чисел целый, положительный соответствует типу переменной принимающей значение

SIN(X) вычисляет синус аргумента Х действительный действительный

COS(X) вычисляет косинус аргумента Х действительный действительный

ABS(X) вычисляет абсолютное значение (модуль) аргумента Х целый действи-тельный целый действи-тельный

ODD(X) проверяет Х на четность длинное целое логический

ORD(X) определяет порядковый номер символа Х любой тип кроме действительного длинное целое

CHR(X) определяет символ стоящий по порядковому номеру Х byte символьный

PRED(X) определяет предыдущее значение по отношению к Х любой тип кроме действительного тот же тип

SUCC(X) определяет последующее значение по отношению к Х любой тип кроме действительного тот же тип

ARCTAN(X) вычисляет арктангенс аргумента Х действительный действительный

EXP(X) вычисляет экспоненту от аргумента Х действительный действительный

LN(X) вычисляет натуральный логарифм от Х действительный действительный

TRUNC(X) находит целую часть от Х действительный длинное целое

ROUND(X) округляет Х в сторону ближайшего целого действительный длинное целое

INT(X) возвращает целую часть аргумента Х действительный действительный

FRAC(X) возвращает дробную часть аргумента Х действительный действительный

DEC(X,N) уменьшает значение переменной Х на заданное число N любой тип кроме действительного тот же тип

INC(X,N) увеличивает значение переменной Х на заданное число N любой тип кроме действительного тот же тип

PI возвращает значение числа - действительный

  • 1. ORD(‘R’)=82; ORD(5)=5;
  • 2. CHR(68)=’D’; можно вызывать эту функцию через #, если аргумент функции константа (#68="D");
  • 3. PRED(‘N’)=’M’; PRED(87)=86;
  • 4. SUCC(‘S’)=’T’; SUCC(87)=88;
  • 5. PI=3.141592653897932385;
  • 6. ROUND(3.1415)=3;
  • 7. LN(1)=0.000;
  • 8. SQRT(36)=6.000;
  • 9. SIN(90*pi/180)=1.000.

Замечание:

В тригонометрических функциях аргумент должен быть задан только в радианной мере угла.

Процедуры ввода-вывода

Ввод-вывод связан с обменом информацией между оперативной памятью и внешними носителями информации (терминалом ввода-вывода, АЦПУ, ГМД (дискета), ЖМД (винчестер) и др. устройствами).

В языке Паскаль стандартным средством общения человека и ЭВМ являются предопределенные файлы Input u Output, которые по умолчанию являются пара­метрами программы. Программа получает входные данные из файла Input и поме­щает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, а файлу Output - экран терминала.

Различают следующие разновидности оператора ввода (процедуры чтения):

READ (A1,A2,A3,...,AN)

READLN (A1,A2,A3....AN)

где А - переменные, которым последовательно присваиваются вводимые значения.

Во время выполнения программы, как только встречается оператор READ (READLN), ЭВМ "останавливается" и ожидает ввода числовых, символьных зна­чений. Когда значения введены и нажата клавиша ввода Enter процесс выполнения программы продолжается. Клавиша ввода нажимается после набора данных для каждой процедуры чтения. Значения вводятся через (как минимум) один пробел после набора всей программы и запуска её на выполнение.

Оператор READLN (A1,A2,...AN) сначала вводит значения переменных, а затем в отличие от оператора READ (Al, ...,AN) осуществляет переход на новую строку.

Использование оператора ввода без параметров READLN просто осуществляет переход на новую строку ввода. Оператор READLN (A1....AN) равносилен исполь­зованию 2-х операторов READ (Al .....AN) и READLN.

Например:

1) VAR А, В. : REAL

С. D: INTEGER;

READ (А.В);

READ (C,D);

READLN (A,B);

READLN (C,D);

READ (A.B);

READ (C.D);

В первом случае после набора в одной строке каждой пары данных нажима­ется клавиша ввода Enter. Во втором случае процедура чтения аналогична. Отличие заключается в том, что после считывания значений А и В первой проце­дурой чтения, данные для следующей процедуры чтения будут считываться с начала новой строки, т.е. набор данных для переменных A,B,C,D для первого и второго случаев соответственно будут выглядеть следующим образом:

1) 4.83 Е - фЗ 35.71 Е + ф1Еnteг 51 2134 Enter

2) 4.83 Е - ф3 35.71 Е + ф1Еп1ег

Допускается вводить целые, действительные и символьные данные. Ввод символьных данных имеет особенности, поскольку пробел, как и любой символ языка Паскаль относится к символьным данным. Символьные данные вводятся сплошной строкой. Например:

VAR A.B.C.D: CHAR;

READ (A.B.C.D);

Набираем на клавиатуре КИЕВ и нажимаем клавишу ввода Enter. Перемен­ные получат следующие значения А-"К", В-"И", С-"Е", D-"B". Другая особенность ввода символьных данных заключается в том, что нажатие самой клавиши Enter воспринимается как символ пробела, поэтому для правильного ввода рекоменду­ется перед каждым оператором ввода символьных данных ставить оператор READLN, чтобы их ввод осуществлялся всегда с новой строки.



Различают следующие разновидности оператора вывода.

WRITE (A1,A2.....AN);

WRITELN (A1,A2,...,AN);

WRITELN;

В качестве параметров А1, А2,..., AN могут быть целые, вещественные, символьные (строковые) и логические переменные.

Допускается бесформатный вывод и вывод данных с форматами, определя­ющие ширину поля выбора.

При бесформатном выводе для выводимых значений переменных различных типов отводится стандартное (определённое для конкретного класса машин) количество позиций. Например для ПК ЭВМ ЕС, ПК IBM.

Общая длина поля для значения переменной вещественного Типа занимает 18 позиций, а сама дробная часть числа - 10 позиций.

Форматы для вывода в операторе вывода указываются через двоеточие после выводимой переменной. Для вещественных чисел формат может состоять из двух величин. Первая - обозначает общее поле выводимого значения, второе - поле дробной части. При этом общее поле включает в себя знак числа, десятичную точку и количество цифр в целой и дробной части.

Приведем несколько примеров вывода данных с форматами для выше приве­денных значений переменных.

При выводе значения вещественной переменной В в первом случае использу­ется формат с плавающей точкой (нормализованный формат) с использованием десятичного множителя - латинской буквы Е (которая отделяет мантиссу числа от порядка). Минимальная длина поля вывода 8 символов. Во втором случае значение В выводится в формате с фиксированной точкой.

Если поле формата выбрано больше, чем количество позиций, занимаемых числом, то перед целой частью будет отведено соответствующее количество пробе­лов, а после дробной части - соответствующее количество нулей.

Первая часть последнего замечания относится и к случаям вывода значений символьных, строковых и логических переменных

Функция Назначение Тип аргумента Тип функции
Abs (x) Вычисление абсолютного значения Х R, I R, I
Sin (x) Вычисление значения функции SIN арг. X R, I R, R
Cos (x) Вычисление значения функции COS арг. X R, I R, R
Arctan(x) Вычисление значения функции ARCTG арг. X R, I R, R
SQR(x) Вычисляет значение квадрата аргум. R, I R, I
SQRT (x) Вычисляет значение корня квадратного из X R, I R, R
EXP (x) Вычисление значения экспонен циальной функции аргумента. R, I R, R
ЕХР10 (х) Вычисление 10 в степени аргумента X R, I R, R
Ln (x) Вычисление значения ф-ции натурального логарифма аргумента. R, I R, R
LOG (x) Вычисление значения ф-ции десятичного логарифма аргумента R, I R, R
TRUNC (x) Нахождение целой части X R, I I, I
INT (x) Вычисление целой части аргумента R, R R, R
ROUND (x) Округление Х в сторону ближайшего целого. R, I I, I
FRAC (x) Вычисляет дробную часть аргумента R R
ODD (x) TRUE, если Х-нечётное число; FALSE, если Х - четное число; I B
ORD(x) 1. Нахождение номера величины перечислимого типа 2. Нахождение номера символа языка Паскаль (в десятичной системе счис.) Перечисл. C I I
CHR (x) Определение символа языка Паскаль по его порядковому номеру. I C

ОБЩЕЕ ЗАДАНИЕ

1. Изучить самостоятельно

а) построение простейшей структуры программы на Паскале;

б) типы данных, описание констант, переменных.стандартных функций;

в) правила записи арифметических выражений.

2. Познакомиться с общими сведениями и методическими ука­заниями данной лабораторной работы.

3. Составить алгоритм и программу решения предлагаемой задачи.

4. Отладить на ПЭВМ рабочую программу. Распечатать листинг прог­раммы, входные данные и результат счета.

Индивидуальные задания

Вычислить на ЭВМ:

  1. , при с=0.7; m=0.3´10 -2 ; a=5; n=1.2
  2. , при r=5; k=1.24´10 -7 ; t=0.1´10 -6 ;z=0.5´10 2
  3. ; , при a=0.1; b=1.4; a=0.02; z=3´10 -3 ; k=4.5
  4. ; , при a=3.4; b=1.1; c=9
  5. ; , при δ=0.8; b=1.5; a=3; a=0.394
  6. ; , при λ=0.1; b=0.6; c=2.4´10 -4 ; t=15
  7. ; , при a=0.1; b=88;; c=0.2´10 -6
  8. ; , при a=0.3; b=0.9; c=0.61
  9. ; , при a=38.9; b=-4.7; c=5; z=0.8
  10. ; , при a=15.123; b=9.563; z=0.717
  11. ; , при a=0.5; b=3.1; c=1.4
  12. ; , при a=4.4; b=0.57; c=6; z=0.054
  13. ; , при a=0.5; b=2.7; c=0.4;
  14. ; , при a=4.5´10 -4 ; b=-2´10 -5 ; c=25
  15. ; , при a=9.6; b=8.2; c=2; k=0.7
  16. ; , при a=1.256; b=-13.5; c=4
  17. ; , при a=1.256; b=3.5; c=0.53; z=7
  18. ; , при a=2.8; b=16.4; c=-5.4
  19. ; , при a=2.953; b=0.254; c=0.5
  20. ; , при a=4.125; b= -1.234; c=0.487
  21. ; , при a= -0.92; b= 0.58
  22. ; , при a=1.725; b=19; c= -2.153
  23. ; , при a=3.457; b= 3.1; c=2
  24. ; , при a=2.389; b= 3.1; c=17
  25. ; , при a=-0.5; b= 1.7; t=0.44
  26. ; , при a=0.816; b= 3.4; c=16.7
  27. ; , при a=1.1; b= 0.2; c=4´10 -3

Контрольные вопросы

1. Какие из приведенных ниже имен переменных допустимы или запрещены в Турбо Паскале?

KAFEDRA_SAPR HELP+ME
KAFEDRA SAPR help-me
KAFEDRASAPR ABC...XYZ
ОКТ16 FOR
160KT SIGMA
ABVGD SIGMA?
abvgd number1
A BVGD номер1
A.B.V.G.D. XXXXXXXXXXXX

2. Можно ли изменять значения констант в программе?

3. Какие из приведенных ниже операторов присваивания являются правильными, если переменные

I,J,K:INTEGER;

X,Y:REAL;

А,В:BOOLEAN

A:=(XK);

I:=I+K/I;

X:+I+J-B;

4. Допустимо ли использование величин разных типов в арифметических выражениях?

5. Какие из приведенных ниже записей являются правильными с точки зрения языка Паскаль?

"А"<"В" ; "А"<"В" AND 4<5;

TRUE>FALSE; ("C"<"D") OR (4<5);

"8"<"3" ;

6. Можно ли переменной целого типа присвоить выражение вещест­венного типа и наоборот, переменной вещественного типа - выра­жение целого типа?

7. Какие функции предназначены для преобразования значений ве­щественного типа в значения целого типа?

8. Найти ошибки в программе RM1 (если они есть) и исправить их.

PROGRAM;

(Программа для контроля)

VARY Х: INTEGERS, Y REAL X + 3: = Y ;

Y:=Y + 5.7;

Z:= 4X + 9Y

© 2024 mygj.ru
Компьютерные советы и хитрости