Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
261.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Структурные операторы

Структурные (сложные) операторы представляют собой конструкции, содержащие простые операторы. К этой группе операторов относятся: составной оператор, оператор условного перехода, операторы цикла (For, repeat, while), оператор выбора, оператор присоединения в записях.

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

begin

  Оператор1;

  Оператор2;

...

 ОператорN;

end;

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

Полезные формулы

Вычисление степени числа: ax  =x*ln(a)=exp(x)*ln(a)); Таким образом, нельзя возвести в степень отрицательное число. Для этого можно использовать операторы циклов.

Для вычисления логарифма с основанием а используем: loga(x) = ln(x)/ln(a)

В  Turbo Pascal определены только три тригонометрические функции: sin, cos, arctg. Для вычисления остальных тригонометрических функций необходимо использовать известные соотношения:

  • tg(x)=sin(x)/cos(x);

  • ctg(x)=cos(x)/sin(x);

  • csc(x)=1*sin(x);

  • );

  • ;

  • .

Запись числовых констант, переменных и выражений

Целые числа в Паскале записываются в обычном виде, например: 0, +100,-56498. Вещественные числа в Паскале представляются в одной из двух форм, которые называются: запись числа с фиксированной точкой и запись с плавающей точкой. Первая из них – это запись числа в виде целой и дробной частей, разделенных точкой, например: -3.15 , 0.1 , +23.0125.

Вторая форма – с плавающей точкой – это запись числа с мантиссой и десятичным порядком, разделенными латинской буквой E. Такая запись означает, что мантисса (которая может быть целым числом или вещественным числом в форме с фиксированной точкой) умножается на 10 в степени, задаваемой порядком (который всегда должен быть целым числом), например -18.7Е+3 , 2.123Е4, 2.34Е-2 , 6Е-1.

В языке программирования Паскаль запрещается запись вещественных чисел в виде .5 или 5. Их необходимо записывать как 0.5 и 5.0 соответственно. Если в записи числа содержится точка, то по крайней мере одна цифра ей должна предшествовать и следовать за ней.

Основным требованием к записи выражений в Паскале является размещение всех его элементов в одной строке (на одном уровне). В выражениях допускается использовать константы (неизменяемый объект программы), переменные (объект программы, который может изменять свое значение), операции ( + , – ,  /  ,  *  ,  . . . ) и функции.

Пример 1.

Записать выражение на Паскале

.

Решение:

((6 – x) * x + 10 * (x * y – 6 * x * y * z)) / (x * y – y * z – z * x).

Пример 2.

Записать выражение

( Sqrt (Sin(x * x) + Cos(y * y ))) / Exp (Sqr( 2 * x – 5 ))

в общепринятой форме.

Решение:

.

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

  1. Укажите имена стандартных функций для вычисления .

  1. Чему равно числовое значение выражения при е = 4, ф = 3? E+sqrt(e)*1e1/2*a.

  1. Чему равно значение выражения (a and not b or c), где a,b,c – величины типа Boolean, имеющие значения true, false, false соответственно?

  1. Укажите допустимые способы записи выражения

.

  1. Какие выражения не содержат синтаксических ошибок:

    1. Sin(abs(0,6e3*yt).

    2. A div b / c*mod.

    3. $EF01*1.34E-02/_i7_17.

    4. 1_2i-exp(y)/2*t.

    5. Cos(3*x)+0.2.

  2. Выберите правильные утверждения:

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

    2. В разделе описания констант описываются константы, имеющие имя.

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

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

    5. Раздел описания констант должен располагаться перед разделом описания переменных.

  1. Выберите правильные ответы. Можно ли присвоить:

    1. Целую переменную вещественной.

    2. Вещественную переменную целой.

    3. Символьную переменную целой переменной.

    4. Целую переменную булевой переменной.

    5. Целой переменной целую константу.

  1. Выберите все правильные ответы. При использовании в программе оператора read требуется разделять числовые значения величин при вводе с помощью:

    1. Только одного пробела.

    2. Произвольного количества пробелов.

    3. Запятой.

    4. Нажатия клавиши ENTER.

    5. Нажатия клавиши Tab.

  1. Найдите операторы вывода, не содержащие синтаксических ошибок:

    1. Write(‘’’*’,x:4,k,y:k:2,’*’).

    2. Write(’*’,x,k,y*x*k:4:2,’*’).

    3. Write(‘k:4:2,y:4:2,’*’).

    4. Write(’*x-k’,,y:k:2,’*’).

    5. Write(‘*’,x,k:2,y:4:2,’*’:5:2).

  1. Что из перечисленных ниже вариантов будет выведено на экран в результате работы программы?

Var k:byte; x:real;

Begin

K:=2; x:=1;

Write(‘*’, ‘*’, x:3:1,k:k,’**’;

End.

  1. **1.0 2* *

  2. * *1.0 2**

  3. **1.02* *

  4. **1.02**

  5. **1.02* *.

  1. Записать следующие числа без десятичного порядка:

    1. -0.00027Е+4; 

    2. 666Е-3; 

    3. 1Е1.

  1. Указать неправильные записи чисел:

  1. 0006;

  2. - 0;   

  3. 7,0;  

  4. 7.;  

  1. + 0.3;

  2. .3;

  3. 2/3;   

  4. Е-1;   

  1. 8Е0;   

  2. 0Е-4;   

  3. 2*Е5;  

  4. е

  1. Есть ли разница (с точки зрения языка Паскаль) между числами 100 и 100.0, между 20 и 2Е1? По какому признаку (величине или форме записи) целые числа отличаются от вещественных?

  1. Почему при записи формул на Паскале их "вытягивают в линию"? Почему знак умножения всегда выписывают явно (например, пишут  a*t , а не  at )?

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

  2. Почему в Паскале факториал от 10 нельзя записать в виде 10! или  1* 2* 3* . . .* 10 ?

  1. Записать  на Паскале следующие формулы:

a)  ;   b)  ;   c) cos2x2;    d) tg(x);    e) x--2;

f)  ;    g)  ;    h) x100;    i)  ;  

j) log2x.

  1. Записать в общепринятой форме следующие выражения:

  1. (p + q) / (r + s)- p * q / (r * s) ;

  2. 1E3 + beta / (x2 – gamma * delta) ;

  3. (-b + sqrt ( sqr (b) – 4 * a * c)) / (2 * a) ;

  4. a / b * (c + d) – (a – b) / b / c + 1E – 8 ;

  5. x1 + arctan (y2 – alpha) / 2 * abs (x4 – ln (5) * y5) / exp(-1) ;

  6. (cos (sqrt (x + y))/sin (sqrt (x + y)) – exp( abs (y))) / x * 6 * y;

  7. (7E + 8 * y – 5E – 4 + sin (x) / cos (y)) / (5 – x) / (y – x). \

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

а) Trunc(6.9);    b) Round(6.9);   c) Trunc(6.2);    d) Round(6.2);    e) 20 Div 6; f) 20 Mod 6;    g) 3*7 Div 2 Mod 7/3 – Trunc(Sin(1)); h)  Sqr(x)+Sqr(y)<=4, при x=0.3, y=-1.6 ; i) k Mod 7 = k Div 5 – 1,

при k=15 ; j) Odd(Trunc(10*p)),    при p=0.182 .

  1. Выберите все правильные утверждения. В процедуре write для величин вещественного типа можно задавать формат вида А:К:М, где А – переменная или выражение,

    1. К – общее количество позиций, отводимое под А.

    2. К – количество позиций, отводимое под целую часть А.

    3. К и М могут быть только константами.

    4. К и М могут быть выражениями целого типа.

    5. К – количество позиций, отводимое под дробную часть А.

  1. Объяснить ошибки в следующих зяписях:

а) (9.0-3) Div 4 + x Mod 3,    при x=7.0 ;

b) Odd(Sqr(Trunc(7/2)))-5 ;

c) 5 Mod 2 <> 6 Div 5 Or Odd(7) .

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

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

б) (Sqr(x)+Sqr(y)>1) And y>0) And (Abs(x)<=1) .

24. Записать на Паскале выражение, зависящее от x и y, которое принимает значение  True, когда точка с координатами  x и y  принадлежит заштрихованной области.

a).      б).      в). 

25. Что будет выведено на экран программой?

Program pr;

    Var a : Integer;

    Begin

            a := 2;

            Writeln('a+1')

    End.

26. Что будет напечатано в результате работы следующего фрагмента:

  Write(1); Write(2); Writeln(3,4); Write(5,6);Writeln; Writeln(7,8).

27. Написать программу, которая для заданного целого числа a печатает следующую таблицу значений: 

.

28.Что будет выведено на экран программой, если для ввода заданы числа 1.5 и –0.8?

Program aba;     Var x : Real;         t : Boolean;     Begin             Read(x); t := x < Round(x);             Read(x); t := t And (x < Trunc(x));             Writeln(t)     End.