Тема: Стандартные функции и процедуры. Применение в простейших линейных программах 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема: Стандартные функции и процедуры. Применение в простейших линейных программах



Для решения задач нам понадобятся стандартные функции и процедуры.

Функция – это такая организация преобразования переданного ей значения, при которой это измененное значение передается обратно.

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

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

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

1) Abs(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет модуль (абсолютную величину) числа х;

2) Cos(x), где аргумент и результат являются переменными вещественного типа – вычисляет косинус х;

3) Sin(x), где аргумент и результат являются переменными вещественного типа – вычисляет синус х;

4) Frac(x), где аргумент и результат являются переменными вещественного типа – выделяет дробную часть числа х;

5) Int(x), где аргумент и результат являются переменными вещественного типа – выделяет целую часть числа х;

 

6) Pi, где результат является переменной вещественного типа – вычисляет значение

7) Random(x), где аргумент и результат являются переменными целого типа – генерирует случайное число в пределах от 0 до х включительно. Если параметр х не задан, то формируется вещественное число от 0 до 1. Перед использованием данной функции нужно инициализировать генератор случайных чисел при помощи процедуры Randomize (см. ниже);

8) Sqr(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет x2;

 

9) Sqrt(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет .

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

1) Chr(x), где аргумент типа Byte, а результат типа Char– возвращает символ, у которого код в таблице ASCII равен х;

2) Ord(x), где аргумент может быть любого порядкового типа, а результат типа LongInt – возвращает порядковый номер значения х при начале нумерации с нуля;

3) Round(x), где аргумент вещественного типа, результат типа LongInt – округляет число х до ближайшего целого;

4) Trunc(x), где аргумент вещественного типа, результат типа LongInt – выделяет целую часть числа х.

III Функции для порядковых типов

1) Odd(x), где аргумент типа LongInt, а результат логического типа – определяет, является ли число четным (результат false) или нечетным (результат true);

2) Pred(x), где аргумент и результат любого порядкового типа – получает предшествующее значение;

3) Succ(x), где аргумент и результат любого порядкового типа – получает последующее значение;

4) Upcase(x), где аргумент и результат типа Char – преобразует букву латинского алфавита в соответствующую ей заглавную (буква х может быть как строчной, так и заглавной).

IV Процедуры для порядковых типов

1) Dec(x), где аргумент любого порядкового типа – уменьшает значение переменной х на 1;

2) Dec(x,n), где х любого порядкового типа, а n типа LongInt – уменьшает значение переменной х на n;

3) Inc(x), где аргумент любого порядкового типа – увеличивает значение переменной х на 1;

4) Inc(x,n), где х любого порядкового типа, а n типа LongInt – увеличивает значение переменной х на n;

5) Randomize – инициализирует генератор случайных чисел.

Правила применения функций:

• чтобы воспользоваться функцией, нужно указать ее в правой части оператора присваивания;

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

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

• в одном выражении можно обратиться к нескольким функциям.

Правила применения процедур:

• для выполнения процедуры ее надо вызвать в программе в виде оператора;

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

Задача. Найти значения выражений:

a) (1+x)2 b) c) |a+ bx|

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

Теперь уже можно переходить к составлению программы.

Program Primer;

Uses

Crt;

Var

A: word; {так как подкоренное выражение должно быть положительно}

b, x, Rezult: integer;

Begin

ClrScr;

Writeln(‘Введите значения переменных (A-положительно)’);

Write(‘A=’);

Readln(A);

Write(‘b=’);

Readln(b);

Write(‘x=’);

Readln(x);

Result:= sqr(1+x);

Write (‘sqr(1+x)=’, Rezult);

Result:= sqrt((1+A)*5);

Write (‘sqrt((1+A)*5)=’, Rezult);

Result:= abs(A+b*x);

Write (‘abs(A+b*x)=’, Rezult);

Readln;

End.

Задание. Наберите программу, протестируйте, добавьте комментарий, сохраните файл и распечатайте листинг.


 

Занятие IV

Тема: Решение задач

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

1. Найти значение арифметического выражения, запросив значения переменных у пользователя:

 

2. По данным сторонам прямоугольника вычислить его периметр (P), площадь (S) и длину диагоналей (D) по формулам:

3. Запросите действительное число и найдите целую часть этого числа и округлите его до ближайшего целого.

4. Найти площадь круга (S) и длину окружности (L) заданного радиуса.

5. Выполнить целочисленное деление натурального числа х на натуральное число у и вывести на экран частное q и остаток r (см. формулы).

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

7. Вычислить рациональным способом, то есть за минимальное количество операций:

8. Найти значение выражения:

9.Вычислить объем (V) и площадь (S) полной поверхности прямоугольного параллелепипеда по длинам его ребер а, в, с.

V=abc; S=2ab+2bc+2ac

10. По данной высоте Н и диаметру основания D прямого кругового циллиндра вычислить его площадь полной поверхности (S) и объем (V).

11. По известному радиусу вычислите объем и площадь поверхности шара.

12. Составьте программу вычисления длин высот треугольника, у которого длины сторон a, b, c.

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

13. Составьте программу вычисления длин медиан треугольника, у которого длины сторон a, b, c.

Примечание. Медианой называется отрезок, соединяющий любую вершину треугольника с серединой противоположной стороны. Медиану, соединяющую вершину треугольника А с серединой стороны а, можно найти по формуле:

14. Составить программу вычисления давления столба жидкости плотностью высотой H на дно сосуда, пользуясь формулой

15. Составьте программу вычисления силы давления, действующей на пол со стороны стола массой m, если суммарная площадь (S) опоры ножек стола 100 см, пользуясь формулой , где

16. Составьте программу вычисления выталкивающей силы, действующей на тело объемом V, наполовину погруженное в жидкость плотностью p, пользуясь формулой F=pgV.

17. Составьте программу вычисления потенциальной энергии тела массой м на высоте h относительно Земли, пользуясь формулой E=gmh.

18. Составьте программу вычисления механической работы, когда тело равномерно движется под действием приложенной к нему силы, пользуясь формулой A=FS, где F – приложенная сила, а S – пройденный путь.

19. Ввести 4-значное число. Превратить его в 2-значное, отбросив первую и последнюю цифру.

20. С клавиатуры задается число К. Выбросить из записи К цифру, обозначающую сотни. Вывести полученное число на экран.

Приготовьте для проверки файлы и листинги с вашими программами. Будьте готовы ответить на следующие вопросы:

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

2) Почему на Паскале аргумент функции всегда записывают в скобках (например, ln(5), а не ln5)

3) Укажите символы, буквы, составные символы:

^, Y, <>, +, *, R, k, $,!, ф

4) Что в списке можно рассматривать как идентификаторы:

FIO, ФИО, 33719, X, Y, >=, $, &, Summa, _ Rezult

5) Какие идентификаторы удобнее использовать и почему:

klass1, Klass _ 1, summadohoda, SummaDohoda, nomerdoma, Nomer _ Doma

6) Найдите в следующем списке зарезервированные слова:

X, Program, Y, Summa, MyMoney, Произведение, Vova, begin, end, if, repeat, Read.

7) В каких случаях надо использовать переменные:

• если в программе используется какое-то число,

• если в вычислениях какой-то операнд постоянно меняет свое значение,

• если операнд в выражении хотя бы раз меняет свое значение.

8) Какая структура программы правильна:

a) Program MyProgram; b) Program MyFirst;

Begin Begin

WriteLn(‘Привет!’); X:=Y+100;

End. End.

9) Какой из перечисленных разделов обязателен в программе?

• раздел Var

• раздел Const

• раздел Type

• раздел Begin... End

• раздел Label

10) Для чего используется слово Uses?

11) В разделе процедур и функций описываются только стандартные процедуры?

• да,

• нет, только пользовательские,

• и стандартные, и пользовательские.

12) Найдите ошибки в программах:

a) Program Ошибки1;

Begin

Summa:=6+8;

End;

b) Program Ошибки2;

Begin

Var

X:integer;

X:=6+8;

Write(X);

End;

13) С чего начинается программа?

14) Как описываются переменные?

15) С чего начинается основная программа?

16) Как выглядит оператор вывода? Для чего он служит? Какое существует различие между выводом сообщения и выводом значения переменной? Можно ли с помощью оператора вывода выполнить два действия? Если – да, то какие?

17) Что собой представляет оператор ввода? Для чего он служит? Как можно его использовать, чтобы осуществить задержку экрана?

18) Как происходит присваивание переменной какого-либо значения? Как называется этот оператор?

19) Чем заканчивается программа?

20) Как сохранить программу на диске?

21) Как сохранить программу под другим именем? Зачем это бывает необходимо?

22) Как отрыть новый файл?

23) Как отрыть уже существующий файл?

24) Как выйти из программы?

25) Какие есть способы загрузки программы Турбо Паскаля в оперативную память?

26) Что такое процедура и чем она отличается от процедуры?

27) Что означает понятие "зарезервированное слово"?

28) Какие имена можно использовать в языке TurboPascal?

29) Из каких частей состоит программа, написанная на языке TurboPascal?

30) Для чего необходим в программе раздел описаний?

31) Какие стандартные типы вам известны?

32) Какие типы относятся к порядковым.?

33) В чем различия между данными действительного и целого типов?

34) Назовите функции горячих клавиш F1-F10.

35) С помощью какой клавиши можно выйти в главное меню?


 


Операторы условия и выбора

 

Занятие I

Тема. Разветвляющиеся алгоритмы. Оператор условия If.

Разветвляющиеся алгоритмы

До сих пор Вы использовали линейные алгоритмы, т.е. алгоритмы, в которых все этапы решения задачи выполняются строго последовательно. Сегодня Вы познакомитесь с разветвляющимися алгоритмами.

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

Признаком разветвляющегося алгоритма является наличие операций проверки условия. Различают два вида условий – простые и составные.

Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами), связанных одним из знаков:

< - меньше, чем...

> - больше, чем...

<= - меньше, чем... или равно

>= - больше, чем... или равно

<> - не равно

= - равно

Например, простыми отношениями являются следующие:

x-y>10; k<=sqr(c)+abs(a+b); 9<>11; ‘мама’<>‘папа’.

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

если х=25, у=3, то отношение x-y>10 будет верным, т.к. 25-3>10

если х=5, у=30, то отношение x-y>10 будет неверным, т.к. 5-30<10

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

а) k=5, a=1, b=-3, c=-8

b) k=65, a=10, b=-3, c=2

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

Примечание. Название “булевые” произошло от имени математика Джорджа Буля, разработавшего в XIX веке булевую логику и алгебру логики.

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

К:=True;

Flag:=False;

Second:=a+sqr(x)>t

Рассмотрим пример.

Задача. Вычислить значение модуля и квадратного корня из выражения (х-у).

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

Koren:=Sqrt(x-y);

Modul:=Abs(x-y).

В этом случае программа будет иметь вид:

Program Znachenia;

Uses

Crt;

Var

x, y: integer;

Koren, Modul: real;

Begin

ClrScr;

write (‘Введите значения переменных х и у через пробел ‘);

read (x, y);

Koren:=Sqrt(x-y);

Modul:=Abs(x-y).

write (‘Значение квадратного корня из выражения (х-у) равно ‘);

write (‘Значение модуля выражения (х-у) равно ‘);

readln;

End.

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

Поэтому наша программа имеет свою допустимую область исходных данных. Найдем эту область. Для этого запишем неравенство х-у>=0 и решив его получим х>=у. Значит, если пользователем нашей программы будут введены такие числа, что при подстановке значение этого неравенства будет равно True, то квадратный корень из выражения (х-у) извлечь можно. А если значение неравенства будет равно False, то выполнение программы закончится аварийно.

Задание. Наберите текст программы. Протестируйте программу со следующими значениями переменных и сделайте вывод.

а) х=23, у=5; б) х=-5, у=15; в) х=8, у=8.

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

Рассмотрим оператор If.

Для нашей задачи нужно выполить следующий алгоритм:

если х>=у,

то вычислить значение квадратного корня,

иначе выдать на экран сообщение об ошибочном введении данных.

Запишем его с помощью оператора If. Это будет выглядеть так.

if x>=y

Then

Koren:=Sqr(x-y)

Else

write (‘Введены недопустимые значения переменных‘);

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

В общем случае полная форма конструкции условного оператора имеет вид:

if <логическое выражение>

Then

<оператор 1>

Else

<оператор 2>

Условный оператор работает по следующему алгоритму.

Сначала вычисляется значение логического выражения, расположенного за служебным словом IF. Если его результат истина, выполняется <оператор 1>, расположенный после слова THEN, а действия после ELSE пропускаются; если результат ложь, то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется <оператор 2>.

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

Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки begin-end. Конструкция Begin... End называется составным оператором.

if <логическое выражение>

Then

Begin

оператор 1;

оператор 2;

...

End

Else

Begin

оператор 1;

оператор 2;

...

end;

Определение. Составной оператор - объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end).

begin

оператор 1;

оператор 2;

end;

С учетом полученных знаний преобразуем нашу программу.

Program Znachenia;

Uses

Crt;

Var

x, y: integer;

Koren, Modul: real;

Begin

ClrScr;

write (‘Введите значения переменных х и у через пробел ‘);

read (x, y);

if x>=y

Then

Begin

Koren:=Sqr(x-y)

Modul:=Abs(x-y)

write (‘Значение квадратного корня из выражения (х-у) равно ‘);

write (‘Значение модуля выражения (х-у) равно ‘);

End

Else

write (‘Введены недопустимые значения переменных‘);

readln;

End.

Составным оператором является и такой оператор

begin

S:=0;

end.

Cимвол “;” в данном случае разделяет оператор присваивания S:=0 и пустой оператор.

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

Например, составной оператор

begin

end.

включает лишь один пустой оператор.

Если Вы обратили внимание, программа на языке Паскаль всегда содержит один составной оператор – раздел операторов программы.

Внимание! Перед служебным словом Else разделитель (точка с запятой) не ставится.

Отметим, что большинство операторов в программах на языке Паскаль заканчиваются точкой с запятой, но после некоторых операторов точка с запятой не ставится. Сформулируем общие правила употребления точки с запятой:

1. Каждое описание переменной и определение константы заканчиваются точкой с запятой.

2. Каждый оператор в теле программы завершается точкой с запятой, если сразу за ним не следуют зарезервированные слова End, Else, Until.

3. После определенных зарезервированных слов, таких, как Then, Else, Var, Const, Begin, никогда не ставится точка с запятой.

Рассмотрим еще один пример.

Задача. Вывести на экран большее из двух данных чисел.

Program Example1;

Var

x, y: integer; {вводимые числа}

Begin

writeln(‘Введите 2 числа ‘); {вводим два целых числа через пробел}

readln(x,y);

if x>y

Then

writeln (x) {если х больше y, то выводим х}

Else

writeln (y) {иначе выводим y}

readln;

End.

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

Неполная форма условного оператора имеет следующий вид.

if <логическое выражение>

Then

<оператор>

Тогда если выражение, расположенное за служебным словом IF. в результате дает истину, выполняются действия после слова THEN, в противном случае эти действия пропускаются.

Задача. Составить программу, которая, если введенное число отрицательное меняет его на противоположное.

Program Chisla;

Var

x: integer; {вводимое число}

Begin

writeln(‘Введите число ‘); {вводим целое число}

readln(x);

if x<0

Then

x:=-x;

writeln (x);

readln;

End.

Выберите из предложенного ниже списка задачи для самостоятельного решения.

1. Если целое число М делится нацело на целое число N, то вывести на экран частное от деления, в противном случае вывести сообщение М на N нацело не делится.

2. Запишите условный оператор, в котором значение переменной с вычисляется по формуле a+b, если а – нечетное и a*b, если а – четное.

3. Вычислить значение функции:

4. Написать программу для подсчета суммы только положительных из трех данных чисел.

5. Даны три числа. Написать программу для подсчета количества чисел, равных нулю.

6. Напишите программу, упростив следующий фрагмент программы:

if a>b then c:=1;

if a>b then d:=2;

if a<=b then c:=3;

if a<=b then d:=4.

7. Каким будет значение переменной а после выполнения операторов:

a:=3;

if a<4

then

begin

Inc(a,2);

Inc(a,3);

end;

8. Найти количество положительных (отрицательных) чисел среди четырех целых чисел A, B, C, D.

9. Составьте программу, которая уменьшает первое введенное число в пять раз, если оно больше второго введенного числа по абсолютной величине.

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

Y=sin(x), если x >=1

Y=cos(x), если x < 1

11. Определить является ли введённое число чётным.

12. Компьютер спрашивает: "Что сегодня нужно всем?" и если получает ответ ЭВМ, то пишет "Ну, конечно ЭВМ!", иначе "Это тоже нужно всем, но нужнее ЭВМ!"

13. Написать программу, по которой компьютер приветствовал бы только своего хозяина, а при попытке ввести какое-либо другое имя спрашивал бы: "А где (например) Вася?"

14. Написать программу, определяющую, есть ли в введенном числе дробная часть.

15. Написать программу, рисующую круг в случае введения пользователем числа 1 и квадрат во всех других случаях.


 

Занятие II

Тема. Логический тип данных. Логические операции not, and, or. Нахождение значений логических выражений. Самостоятельная работа.

Переменные логического типа описываются посредством идентификатора Boolean. Они могут принимать только два значения – False (ложь) и True (истина). Описываются они также в разделе описания переменных.

Var

Flag: Boolean;

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

В языке Турбо Паскаль имеются логические операции, применяемые к переменным логического типа. Это операции not, and, or и хor. В этой теме Вы рассмотрите три логические операции. Обозначения и результаты этих операций приведены в таблице. Рассмотрите ее.

Значения операндов Результат операции
X Y not X X and Y X or Y
False False True False False
False True True False True
True False False False True
True True False True True

Операция not (не) имеет один операнд и образует его логическое отрицание. Результат операции not есть False, если операнд истинен, и True, если операнд имеет значение ложь. Так,

not True a False (неправда есть ложь)

not False a True (неложь есть правда)

Результат операции and (и) есть истина, только если оба ее операнда истинны, и ложь во всех других случаях.

Результат операции or (или) есть истина, если какой-либо из ее операндов истинен, и ложен только тогда, когда оба операнда ложны.

Задание. Попробуйте определить значение булевых операций для высказываний:

1. Школьник на зимних каникулах остается дома или уезжает куда-либо отдыхать.

2. Филипп Киркоров является певцом и комбайнером.

3. Школьниками являются мальчики и девочки.

Придумайте и запишите в тетрадь три подобных высказывания.

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

• not

• and, *, /, div, mod

• or, +, -

• операции отношения.

Примечание. Логическую операцию and еще называют логическим умножением, а логическую операцию or - логическим сложением.

Кроме того, порядок выполнения операций может изменяться скобками. Например, в логическом выражении расставим порядок действий

4 3 2 1

A or B and not (A or B)

Сначала выполняется заключенная в скобки операция or, а затем операции not, and, or. Если подставить вместо переменных А и В значения True и False, то, используя уже рассмотренный порядок действий, получим значение всего выражения равное True.

Задание. Запишите в тетрадь и вычислите значения выражений при a=10, b=20, c=true, d=false:

а) (a>5) and (b>5) and (a<20) and (b<30);

b) not (a<15) or not (b<30);

c) c or d and (b=20);

Внимание! В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write.

Например, после выполнения оператора write (5>2) на экран будет выведено True.

Самостоятельная работа

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

1. Вычислите значения выражения:

а) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

б) k mod 7 = k div5-1 при k=15;

в) odd(trunc(10*p)) при p=0.182;

г) not odd(n) при n=0;

д) t and (p mod 3=0) при t=true, p=101010;

е) (x*y<>0) and (y>x) при x=2, y=1;

ж) (x*y<>0) or (y>x) при x=2, y=1;

з) a or (not b) при a=False, b=True;

2. Записать на Паскале отношение, истинное при выполнении указанного условия и ложное в противном случае:

а) целое k делится на 7;

б) уравнение не имеет вещественных корней;

в) точка (х, у) лежит вне круга радиуса R с центром в точке (1,0);

г) натуральное число N является квадратом натурального числа;

д) 0<x<1;

е) x=max(x,y,z);

ж) (операцию not не использовать)ж

з) хотя бы одна из логических переменных а и b имеет значение True;

и) обе логические переменные а и b имеют значение True.

3. Указать порядок выполнения операций при вычислении выражений:

а) a and b or not c and d;

б) (x>=0) or not c and d.

4. Вычислить следующие выражения при a=True, b=False:

а) a or b and not a;

б) (a or b) and not a;

в) not a and b;

г) not (a and b)

5. Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) х принадлежит отрезку [0, 1];

б) х лежит вне отрезка [0, 1];

в)* х принадлежит отрезку [2, 5] или [-1, 1];

г)* х лежит вне отрезков [2, 5] и [-1, 1];

д) каждое из чисел х, у, z положительно;

ж) ни одно из чисел х, у, z не является положительным;

з) только одно из чисел х, у, z положительно;

и) логическая переменная а имеет значение True, логическая переменная b имеет значение False;

к)* год с порядковым номером у является високосным (год високосный, если его номер кратен 4, однако из кратных 100 високосными являются лишь кратные 400, например, 1700, 1800 и 1900 – невисокосные годы, 2000 – високосный).

6. Нарисовать на плоскости (х,у) область, в которой и только в которой истинно указанное выражение:

а)* (y>=x) and (y+x>=0) and (y<=1);

б) (sqr(x)+sqr(y)<1) or (y>0) and (abs(x)<=1);

в) (trunc(y)=0 and (round(x)=0);

г)* (abs(x)<=1)>(abs(y)>=1);

д) (sqr(x)+sqr(y)<=4)=(y<=x).

7) Имеется условный оператор:

if d<>10

then

writeln (‘ура!’)

else

writeln (‘плохо...’)

Можно ли заменить его следующими операторами:

а) if d=10 б) if not (d=10)

then then

writeln (‘ура!’) writeln (‘ура!’)

else else

writeln (‘плохо...’); writeln (‘плохо...’);

 

в) if not (d=10) г) if not (d<>10)

then then

writeln (‘плохо...’) writeln (‘плохо...’)

else else

writeln (‘ура!’); writeln (‘ура!’);

 

8) Какими будут значения переменных j, k после выполнения условного оператора:

if j>k

then

j:=k-2

else

dec (k,2);

если исходные значения переменных равны:

а) j=3, k=5;

b) j=3, k=3;

c) j=3, k=2.

Примечание. В результате выполнения оператора dec (k,2) значение переменной k уменьшается на 2.


 



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 600; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.252.87 (0.291 с.)