→ Операции и стандартные функции pascal. Стандартные функции Pascal

Операции и стандартные функции pascal. Стандартные функции 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. Еще одна специфически символьная функция:

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

4.3. Стандартные функции в Turbo Pascal 7

В языке Паскаль существует ряд заранее разработанных подпрограмм-функций, которые можно использовать как готовые объекты. В Turbo Pascal их количество увеличено по сравнению со стандартом языка, и все они объединены в стандартные модули (см. п. 16). В данном разделе рассмотрены наиболее часто используемые стандартные функции. Стандартные функции ввода-вывода и динамического распределения памяти описаны в пп. 11 и 7 соответственно. Другие стандартные функции (работы со строками, указателями и адресами и т. д.), а также более подробное рассмотрение всех упомянутых выше функций, приведены в п. 16.

4.3.1. Арифметические функции

Арифметические функции можно использовать только с величинами целого и ипцественного типа. Их перечень приведен в табл. 4.

Таблица 4. Арифметические функции

Функция Назначение Тип результата
Abs(X) Абсолютное значение аргумента Совпадает с типом X
Arctan(X) Арктангенс аргумента Вещественный
Cos(X) Косинус аргумента Вещественный
Ехр(Х) е x Вещественный
Frac(X) Дробная часть числа Вещественный
Lnt(X) Целая часть числа Вещественный
Ln(X) Натуральный логарифм Вещественный
Pi Значение величины Pi=3.1415926535897932385 Вещественный
Sin(X) Синус аргумента Вещественный
Sqr(X) Квадрат аргумента Совпадает с типом X
Sqrt(X) Квадратный корень аргумента Вещественный

Примечание. Если функция используется с ключом компилятора {$N+}, то вместо величины типа Real она вычисляет величину типа Extended.

Пример.

{$N-}
begin
Р:= Pi {3.1415926536E+00}
end.

{$N-}
begin
Р:= Pi {3.1415926535897932385E+0000}
end.

4.3.2. Функции преобразования типа

Эти функции предназначены для преобразования типов величин, например (им иола в целое число, вещественного числа в целое и т. д. К ним относятся следующие функции:

Chr (X) - преобразование ASCII-кода в символ.

Аргумент функции должен быть целого типа в диапазоне (0..255). Результатом является символ, соответствующий данному коду.

High(X) - получение максимального значения величины.

Аргумент функции - параметр или идентификатор порядкового типа, типа-массива (см. п. 6.1), типа-строки (см. п. 6.2) или открытый массив (см. п. 10.3.5).

Результат функции для величины порядкового типа - максимальное значение этой величины, типа-массива - максимальное значение индекса, типа-строки -объявленный размер строки, открытого массива - количество компонент массива минус 1 (максимальный индекс, при начале нумерации с нуля).

Low(X) - получение минимального значения величины.

Аргумент функции - параметр или идентификатор порядкового типа, типа-массива (см. п. 6.1), типа-строки (см. п. 6.2) или открытый массив (см. п. 10.3.5). Результат функции для величины порядкового типа - минимальное значение этой величины, типа-массива - минимальное значение индекса, типа-строки или открытого массива - 0.

Ord(X) - преобразование любого порядкового типа в целый тип.

Аргументом функции может быть величина любого порядкового типа (логический, символьный, перечисляемый). Результатом является величина типа Longint.

Round (X) - округление вещественного числа до ближайшего целого.

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

Trunc(X) - получение целой части вещественного числа.

Аргумент функции - величина вещественного типа, а результат - целая часть этого числа. Тип результата - Longint. Если результат выходит за диапазон значений Longint, то во время выполнения программы возникает ошибка.

4.3.3. Функции для величин порядкового типа

Эти функции позволяют выполнить ряд действий над величинами порядкового i типа (найти предыдущий или последующий элемент, проверить число на нечетность) . К этим функциям относятся следующие:

Odd(X) - проверка величины X на нечетность.

Аргументом функции является величина типа Longint, результат равен True, если аргумент нечетный, и False - если четный.

Pred(X) - определение предыдущего значения величины X.

Аргументом функции является величина любого порядкового типа, результатом - предшествующее значение того же типа (например, Pred(2) равно 1). При применении функции к первому элементу последовательности возникает ошибка.

Succ(X) - определение последующего значения величины X.

Аргументом функции является величина любого порядкового типа, результатом - последующее значение того же типа (например, Succ(2) равно 3). При применении функции к последнему элементу последовательности возникает ошибка.

В программировании, как и в любой науке (хотя это и искусство также), с течением исторического времени накапливается опыт, методы решения различных задач. Решение многих задач является достаточно универсальным. Незачем каждый раз писать алгоритм для ее решения, если он уже был написан много лет назад и одобрен сообществом программистов. Такие алгоритмы оформляются в виде функций и модулей, а затем используются в программах, которые пишутся здесь и сейчас.

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

Ниже описаны стандартные (включенные в язык) функции языка программирования Паскаль.

Арифметические функции

Арифметические функции можно использовать только с величинами целого и вещественного типа.

Функция Назначение Тип результата
abs (x) абсолютное значение аргумента совпадает с типом аргумента
sqr (x) квадрат аргумента совпадает с типом аргумента
sqrt (x) квадратный корень аргумента вещественный
cos (x) косинус аргумента вещественный
sin (x) синус аргумента вещественный
arctan (x) арктангенс аргумента вещественный
exp (x) e x вещественный
ln (x) натуральный логарифм вещественный
int (x) целая часть числа вещественный
frac (x) дробная часть числа вещественный

Функции преобразования типов

Эти функции предназначены для преобразования типов величин, например, символа в целое число, вещественного числа в целое и т.д.

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

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

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

В Паскале можно выделить два типа подпрограмм:

  • Функции
  • Процедуры

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

Структура процедуры в Паскале представлена так:

Как и в формате описания функций, так и в формате описания процедур формальные параметры в заголовке функций и процедур представляются следующим образом:

var имя параметра: имя типа;

Формальные параметры разделяются запятыми; ключевое слово var в некоторых случаях может быть опущено. Когда параметры имеют одинаковый тип, то имена этих параметров перечисляют чрез запятую, указывая в конце после знака «:» имя соответствующего типа.

Когда описывают параметры, то можно пользоваться только стандартными именами типов, которые определены при помощи команды type. Процедуры вызываются с помощью оператора, имеющего следующую структуру:

имя процедуры(список фактических параметров);

В круглых скобочках указан список фактических параметров (их перечисление через «,»). Когда осуществляется вызов процедуры, то фактические параметры выступают в качестве формальных параметров, которые находятся на том же месте в заголовке процедуры. В результате передаются входные параметры, а затем происходит выполнение операторов исполняемой части, а после этого осуществляется возврат в вызывающий блок.

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

имя функции:=результат;

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

  1. количество формальных параметров = количество фактических параметров;
  2. фактические и формальные параметры должны обладать одним и тем же порядком следования и типом.

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

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

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

В языке Паскаль стандартным средством общения человека и ЭВМ являются предопределенные файлы 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

 

 

Это интересно: