Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты с 1-12 по новому листку.docx
Скачиваний:
23
Добавлен:
09.02.2015
Размер:
95.39 Кб
Скачать

5. Операции с переменными и возвращаемый результат

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

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

Операция деления (/) вычисляет частное от деления первого операнда на второй. Real или integer

Операция остатка от деления (%) интерпретируется по-разному для целых, вещественных и финансовых величин. Если оба операнда целочисленные, результат операции вычисляется по формуле x - (x / y) * y. Всегда integer, деление нацело тоже всегда integer.

Сложение и вычитание

Операция сложения (+) возвращает сумму двух операндов.

Операция вычитания (-) возвращает разность двух операндов.

Операция умножения (*) возвращает результат перемножения двух операндов

Если один операнд real, то все integer.

Операции отношения и проверки на равенство

Операции отношения (<, <=, >, >=, ==, !=) сравнивают первый операнд со вторым. Операнды должны быть арифметического типа. Результат операции — логического типа, равен true или false.

Условные логические операции

Условные логические операции И (and) и ИЛИ (or) , отрицание (not) чаще всего используются с операндами логического типа. Результатом логической операции является true или false. Операции вычисляются по сокращенной схеме.

Результат операции логическое И имеет значение true, только если оба операнда имеют значение true. Результат операции логическое ИЛИ имеет значение true, если хотя бы один из операндов имеет значение true. Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется. Инверсия меняет true на false и наоборот.

Условные операторы. Условный оператор позволяет выбирать одно из двух действий, причем выбор осуществляется во время выполнения программы. Существует 2 вида условных операторов:

              1. If условие then действие.

              2. If условие then действие1 else действие2.

Здесь условие – выражение логического типа; действие1, действие2 – отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок begin и end. Такой оператор называется составным.

В программировании тип возвращаемого значения (англ. return type) или тип результата (англ. result type) определяет и накладывает ограничения на тип данных, возвращаемых методом или функцией. Во многих языках программирования (особенно это касается языков со статической типизацией, как например, Java, C++ и Си) возвращаемый тип должен быть явно указан при объявлении функции.

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

6. Условные операторы, структура, обозначение, возможные проблемы использования.

Условные операторы. Условный оператор позволяет выбирать одно из двух действий, причем выбор осуществляется во время выполнения программы. Существует 2 вида условных операторов:

              1. If условие then действие.

              2. If условие then действие1 else действие2.

Здесь условие – выражение логического типа; действие1, действие2 – отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок begin и end.

Такой оператор называется составным.

Над потоками должны быть указаны значения условия, при котором выполняются действия (на рисунке это «истина» и «ложь»).

              1. Для оператора первого типа, если выражение условие принимает значение true, выполняется действие, стоящее после ключевого слова then. Если же значение условие равно false, то действие не выполняется. Перед оператором else значок «точка с запятой» не ставится!

              2. В условном операторе выполняется только один оператор, стоящий после слов then или else. Если требуется выполнить несколько операторов, необходимо их поместить между операторными скобками begin и end.

Операторы, следующие после then или else, в свою очередь также могут быть условными операторами.

  1. Условный оператор первого типа – If условие then действие. При этом: если оператор действие является условным оператором первого типа ему соответствует конструкция:

If условие1 then

If условие2 then действие

В этом случае оператор действие определяется однозначно;

  • если оператор действие – условный оператор второго типа, то справедлива конструкция:

If условие1 then

If условие2 then действие1

else действие2.

Возникает вопрос: какому оператору then соответствует else? Для обеспечения однозначности в языке Паскаль принято соглашение о том, что каждому else соответствует предыдущий свободный then.

  1. Условный оператор второго типа – If условие then действие1 else действие2. Оператор действие1 – условный оператор первого типа, оператор действие2 не является условным оператором (рис. 2.4.). Получаем конструкцию:

If условие1 then

begin

If условие2 then действие1

end

else действие2.

Оператор выбора. Если при построении условного оператора известны большинство возможных значений условия, то необходимо использовать оператор выбора. В общем виде структура этого оператора следующая:

Case переменная of

Значение1 : Действие1;

ЗначениеN : ДействиеN;

else

ДействиеN1;

end;

где

Переменная – переменная перечисляемого типа (например: integer, char);

Значение1, …, ЗначениеNвозможные значения переменной;

Действие1, …, ДействиеNдействия, выполняемые при значении переменной, равном одному из значений Значение1, …, ЗначениеN;

ДействиеN1 – действие, выполняемое в случае, когда переменная не принимает ни одно из перечисленных значений (Значение1, …, ЗначениеN).

Также как и при использовании условного оператора, если Действие представляет собой несколько операторов, их нужно поместить в операторные скобки begin и end. Если при отсутствии значения переменной никакое действие не выполняется, схема оператора выбора будет следующей:

Case переменная of

Значение1 : Действие1;

7. Стандартные функции. Функции преобразования типов

Стандартные функции. Для выполнения часто встречающихся вычислений и преобразования данных в Object Pascal существуют стандартные функции.

Функция

Действие

Abs(n)

Абсолютное значение значения n

Sqr(n)

Число n в степени 2

Sqrt(n)

Корень квадратный из числа n

Sin(n)

Синус числа n

Cos(n)

Косинус числа n

ArcTan(n)

Арктангенс числа n

Exp(n)

Число е в степени n

Ln(n)

Натуральный логарифм числа n

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

Функция

Действие

Арифметические

Lnxp1(x)

Натуральный логарифм числа (x + 1)

(использовать при х, близких к 0)

Ceil(x)

Ближайшее большее число к х

Floor(x)

Ближайшее меньшее число к х

Frexp(x,m,e)

Мантисса m и порядок e числа х

IntPower(a,x)

а в целой степени х – ах

LdExp(x,p)

Число х, умноженное на 2 в целой степени рх×2р

Log10(x)

Десятичный логарифм числа х (lg(x))

Log2(x)

Двоичный логарифм числа х (lb(x))

LogN(n,x)

Логарифм по основанию n числа х (lognх)

Max(a,b)

Максимальное число из двух чисел а и b

Min(a,b)

Минимальное число из двух чисел а и b

Функция

Действие

Poly(x,C)

Степенной ряд с коэфф. С (массив) – с0 + с1х + с2х2+…+ сnxn

Power(a,x)

Число а в степени х (ах)

Тригонометр.

PI

Число p (p ≈3,1415926535897932385)

ArcCos(x)

Арккосинус х

ArcCosH(x)

Гиперболический арккосинус х

ArcSin(x)

Арксинус х

ArcSinH(x)

Гиперболический арксинус х

Функция

Действие

ArcTanH(x)

Гиперболический арктангенс х

CosH(x)

Гиперболический косинус х

Cotan(x)

Котангенс х (Cos(x) / Sin(x))

Hypon(a,b)

Гипотенуза прямоугольного треугольника -

SinCos(r,s,c)

Синус s и косинус с угла r в радианах

SinH(x)

Гиперболический синус х

Tan(x)

Тангенс х (Sin(x) / Cos(x))

TanH(x)

Гиперболический тангенс х

Перевод углов

CycleToRad(x)

Перевод периодов х в радианы (1 период соответствует 2p)

DegToRad(x)

Перевод градусов х в радианы (180° соответствует p)

RadToCycle(x)

Перевод величины x, представленной в радианах, в периоды

RadToDeg(x)

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

Статистич.расче.

RandG(m,sd)

Генерация случайного числа по распределению Гаусса, задается m – математическое ожидание, sd – стандартное отклонение

MaxIntValue(D)

Максимальное число из массива целых чисел D

MaxValue(D)

Максимальное число из массива чисел D

Mean(D)

Среднее число массива D

MeanAndStdDev

(D,m,sd)

Среднее число m и квадратичное отклонение sd массива D

MinIntValue(D)

Минимальное число массива целых чисел D

MinValue(D)

Минимальное число массива чисел D

StdDev(D)

Квадратичное отклонение массива D

Sum(D)

Сумма всех чисел массива D

SumInt(D)

Сумма всех целых чисел массива D

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

Функция

Значение

Chr(n)

Символ в стандарте ANSI с номером n

IntToStr(n)

Преобразование целого числа n в строку

FloatToStr(n)

Преобразование вещественного числа n в строку

FloatToStrF(n,f,l,m)

Преобразование вещественного числа n в строку с форматом f, длиной строки l и количеством m цифр после десятичной точки

StrToInt(s)

Преобразование строки s в целое число

StrToFloat(s)

Преобразование строки s в вещественное число

Функция

Значение

Round(n)

Ближайшее к n целое

Trunc(n)

Целая часть от n

Frac(n)

Дробная часть вещественного числа n

Int(n)

Целая часть вещественного числа n

8.Операторы цикла, структура, обозначение, возможные проблемы использования.

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

Если число повторений тела цикла заранее известно, то применяется оператор цикла с параметром.

Общий вид следующий:

For переменная := нач_значение to кон_значение do тело или

For переменная := нач_значение downto

кон_значение do тело

где переменная – параметр цикла, в качестве параметра может быть использована любая переменная перечисляемого типа (например, integer); нач_значение и кон_значение – выражения, задающие начальное и конечное значения параметра цикла соответственно;

тело – простой или составной оператор.

Тип начального и конечного значений цикла должен совпадать с типом параметра цикла. Выполнение оператора цикла начинается с проверки условия переменная <= конзн для цикла to и переменная >= конзн для цикла downto. Если оно не выполняется, то оператор тело не выполняется и управление передается следующему за циклом оператору. Если же условие истинно, то выполняется оператор тело, затем параметру цикла переменная присваивается следующее значение (цикл to) или предыдущее значение (цикл downto). Далее процесс повторяется. Если параметр цикла целого типа, то это означает его увеличение (цикл to) или уменьшение (цикл downto) на единицу при каждом вычислении расположенного в цикле оператора.

Если в цикле необходимо выполнить несколько операторов, то используется составной оператор.

Пример

S:=0;

For I:= 1 to 3 do

begin

S:= S + Sqr(I);

P := S + 1;

end;

Для принудительного выхода из цикла в Object Pascal используют команду Break.

Оператор цикла с параметром применим, если известно число повторений, шаг цикла равняется 1 или –1. В противном случае необходимо использовать 2 других типа цикла: с предусловием или постусловием. Оператор цикла с предусловием имеет вид:

while условие do тело;

где условие – выражение условного типа;

тело – простой или составной оператор.

Выполнение оператора начинается с вычисления значения выражения условие. Если это значение true, то выполняется оператор тело. Затем выполнение оператора цикла повторяется до тех пор, пока значение выражение условие не станет равным false. В этом случае управление передается оператору, стоящему за оператором цикла. Если значение выражения условие при первом входе в цикл равно false, то цикл не выполняется ни разу.

Оператор цикла с постусловием похож на оператор цикла с предусловием, но условие проверяется после выполнения операторов, составляющих тело цикла. Общий вид оператора:

repeat

тело;

until условие;

Оператор цикла с постусловием начинается с выполнения операторов внутри цикла. Затем вычисляется выражение условие. Если значение равно true, то осуществляется выход из цикла, а при значении false выполнение тела повторяется.

Выход из цикла с предусловием осуществляется при достижении ложности условия, а из цикла с постусловиемпри достижении истинности условия.

Любой тип оператора цикла может быть построен с помощью условного оператора. При построении такого цикла необходимо переслать информационный поток перед операторами цикла, используя метки и оператор безусловного перехода goto. Как и переменные, метки должны быть объявлены. Метки объявляются в разделе меток (label). При использовании метки необходимо указать её имя с двоеточием. Переход на метку осуществляется командой goto метка.