Выполнить оператор присваивания — КиберПедия 

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Выполнить оператор присваивания

2023-01-02 29
Выполнить оператор присваивания 0.00 из 5.00 0 оценок
Заказать работу

№ вар Запись оператора в Турбо Паскале Исх. данные Тип переменных
1 Y:= 3 * 7 DIV 2 MOD 7 / 3; - y-веществ.
2 a:= exp(trunc(m + 1/2)*ln(x+2.5E-2)); x=8.9 m=1 a,x-веществ. m-целая
3 k:= n + trunc (m + b); n=-6 b=0.8 m=2 k,n,m-целые b- веществ.
4 m:= a * a * c + trunc(b); a=45 b=0.8 c=2 a,c-целые b,m- веществ.
5 k:= exp(trunc(x * b) * ln(y)); x=1.2 b=2 y= -4 k,x- веществ. b,y-целые
6 d:= -a MOD b +a DIV d * c; a=5 b=2 c=3 a,b,c-целые d- веществ.
7 i:= trunc(k / n * n + a); k=99 n=100 a=5.871 i,k,n-целые a- веществ.
8 f:= a + trunc(b/c) - 64/sqr(a) + 1; a=4 b=0.8 c=2 f,b- веществ. a,c-целые
9 b:= 4*d*1E-2/cos(4*d-c) + frac(57.12); c=12 d=3 c,d-целые b- веществ.
10 k:= a * b / c + frac(12.7E-1); a=6 b=2 c=4 a,b,c-целые k1-веществ.
11 b:= exp(trunc(n/m) * ln(a+sqrt(a/m))); a=4 m=3 n=2 a,n,m-целые b-веществ.
12 m:= trunc(a*(b DIV c) + 0.57E1); a=6 b=1 c=4 m,a,b,c-целые
13 a:= exp(5 DIV 2 * ln(4)) - 2; - a-веществ.
14 z:=(a+sqrt(b+1)+24E-1*c)* trunc(b/4); a=4 b=1 c=10 a,b,c-целые z-веществ.
15 p:= trunc(abs(b-a)) DIV c – d MOD10; a=4.8 b=0.8 c=2 d=34 p,a,b-веществ. c,d-целые
16 a:=19 DIV 4 * 4 + trunc(5.4) MOD 4; - a-целая

 

Глава 5. Разветвляющиеся вычислительные

                               процессы

 

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

Логические выражения

Логические выражения строятся из операндов, отношений, логических операций и круглых скобок.

Результатом вычисления логического выражения является одно из двух логических значений: TRUE или FALSE.

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

                              Отношения

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

Операция отношения – это операция сравнения двух операндов: | < | <= | > | >= | = | <> |.

 

Примеры записи отношений в Турбо Паскале

Отношение Результат
5 > 3 TRUE
cos(x) > 1 FALSE
x*x + y*y < 1 TRUE для всех точек, лежащих внутри круга с единичным радиусом и центром в начале координат
а <> ’Y’ TRUE, если значение символьной переменной a не равно символу ’Y’

Следует помнить, что к операндам вещественного типа неприменима операция ‘=’ из-за неточного представления чисел в памяти компьютера. Поэтому для вещественных переменных  a и b отношение вида a=b надо заменить отношением         abs(a - b) < E, где Е - малая величина, определяющая допустимую погрешность.

                    Логические операции

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

Математическая запись Запись в Турбо Паскале Название операции
  NOT Отрицание
    AND Операция “И” (логическое умножение)
    OR Операция “ИЛИ” (логическое сложение)

Результаты выполнения логических операций приведены в таблицах истинности, в которых обозначено: a, b - логические операнды; T – TRUE, F – FALSE.

 

a NOT a   a b a AND b   a b a OR b
T F   T T T   T T T
F T   T F F   T F T
      F T F   F T T
      F F F   F F F

Порядок выполнения операций в логических выражениях

В бесскобочных логических выражениях операции выполняют слева направо в соответствии с их приоритетом:

1. NOT;

2. AND;

3. OR;

4. Отношения.

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

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

            -3 ³ 5 Ú  Ø 7 < 9 Ù 0 £ 3.

Запись в Турбо Паскале имеет вид:

          1    6  4     2    5      3                         

   (-3 >= 5) OR NOT (7 < 9) AND (0 <= 3)

Сверху над операциями проставлен порядок выполнения действий.

1) –3 >= 5 Þ F; 2) 7 < 9 Þ T; 3) 0 <= 3 Þ T;
4) NOT(T) Þ F; 5) F AND T Þ F; 6) F OR F Þ F.

Ответ: FALSE.

          Примеры записи логических выражений

Записать в Турбо Паскале логическое выражение, реализующее условие:

а) переменная принадлежит интервалу .

Ответ.  and

б) переменная не принадлежит интервалу .

Ответ. Данное условие можно записать в одном из двух вариантов:

а)   or ;

б) или воспользоваться операцией NOT.

not  and

Условные операторы

В Турбо Паскале различают два вида условных операторов: короткий и полный.

             Короткий условный оператор

Общий вид записи:

      IF <логическое выражение> THEN <P>;

 где P – любой оператор.

Работа оператора

Сначала вычисляется логическое выражение (ЛВ), и если оно имеет значение TRUE, то выполняется оператор P, стоящий за служебным словом THEN. В противном случае оператор P игнорируется.

Графическая интерпретация оператора

В блок-схемах короткому условному оператору соответствует структура ЕСЛИ – ТО.

 

 


Замечание. По определению в конструкцию короткого условного оператора может входить только один оператор P. Если по заданному условию необходимо выполнить несколько операторов, то их заключают в операторные скобки BEGIN... END, образуя таким образом единый составной оператор. Тогда запись оператора с использованием операторных скобок имеет следующий вид:

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

 begin

Составной оператор P
  <оператор 1>;

  ………………

  <оператор n>;

end;

Пример

Переменной y присвоить минимальное значение из трех различных чисел, т.е. y = min (a, b, c).

Блок-схема

 

 

                              

                              Программа

             Program P;

             Var

                   a, b, c, y: real;

            Begin

           writeln (‘Введите числа a, b, c’);

           read (a, b, c);

           y:= a;

           if b<y then y:= b;

           if c<y then y:= c;

           writeln (‘y =’, y:6:2);

            End.

                 Полный условный оператор

Общий вид записи:

IF <логическое выражение> THEN P1 ELSE P2;

 где P1, P2 – любые операторы.

Работа оператора

Вычисляется логическое выражение, и если оно имеет значение TRUE, то выполняется оператор P1, стоящий после служебного слова THEN. В противном случае выполняется оператор P2, стоящий после служебного слова ELSE.

Графическая интерпретация оператора

В блок-схемах полному условному оператору соответствует структура ЕСЛИ – ТО – ИНАЧЕ.

 

 

 


Замечание. Операторы P1 и P2 входят в конструкцию полного условного оператора как единственные. Если возникает необходимость выполнить в ветвях несколько операторов, то их заключают в операторные скобки BEGIN…..END. Вид записи условного оператора в этом случае следующий.

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

         begin

             <оператор 1>;

              ……………...                   P1

             <оператор n>;

          end

    ELSE

       begin

              <оператор 1>;

              ……………...                   P2

              <оператор m>;

          end;

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

        y =

Блок-схема

 

 


                             Программа

                         Program P_1;

                         Var

                             x, y: real;

                         Begin

                             writeln (‘Введите число x’);

                             read (x);

                             if x>0 then y:= ln(x) else y:= exp(x);

                             writeln (‘y =’, y:6:2);

                         End.

Пример 2. Вычислить корни полного квадратного уравнения ax2+bx+c=0. В программе предусмотреть проверку дискриминанта на знак. Если дискриминант окажется отрицательным, то вывести сообщение “Корни мнимые”.

                             Программа

                   Program P_2;

                   Var

                       a, b, c, d, x1, x2: real;

                   Begin

                       writeln(‘Введите коэффициенты уравнения’);

                               read (a, b, c);

                       d:= b*b – 4*a*c;

                       if d<0 then

                           writeln (‘Корни мнимые’)

                       else

                           begin

                              x1:= (-b + sqrt(d)) / (2*a);

                              x2:= (-b - sqrt(d)) / (2*a);

                              writeln(‘x1=’, x1:5:2, ‘ x2=’, x2:5:2);

                           end;

                   End.

  Вложенные структуры условных операторов

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

Пример. Вычислить значение y по одной из трех ветвей:

 

 

 

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

Вариант 1. (Без использования вложенной структуры).

                                 Блок-схема

 

 

 

 


                                                Программа

                   Program P_V1;

                   Var

                     x, y: real;

                   Begin

                       writeln(‘Введите число x’);

                   read(x);

                    if x>=1 then y:= sqrt(x)/2;

                    if (x>0) and (x<1) then y:= exp(1/3*ln(x))/3;

                       if x<= 0 then y:= exp(1/4*ln(abs(x)))/4;

                    writeln(‘y =’, y:6:2);

                   End.

Вариант 2. (Использование вложенной структуры).

                           Блок-схема

 


                         

                              Программа

                   Program P_V2;

                   Var

                   x, y: real;

                   Begin

                   writeln(‘Введите число x’);

                         read(x);

                       if x>=1 then

                      y:= sqrt(x)/2

                        else

                            if x>0 then

                          y:= exp(1/3*ln(x))/3

                              else

                          y:= exp(1/4*ln(abs(x)))/4;

                   writeln(‘y =’, y:6:2);

                   End.

Оператор выбора

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

Общий вид записи:

CASE <селектор> OF

      <список констант выбора 1>: <оператор 1>;

      ………………………………………………

     <список констант выбора n>: <оператор n>;

END;

Селектор – это выражение целого или символьного типа.

Константы выбора – всевозможные значения селектора. Константы выбора в списке перечисляются через запятую.

                  Работа оператора CASE

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

Пример 1. Написать оператор выбора для вычисления y.

                    

 

                  case n of

                        1: y:= x;

                    2, 3: y:= 2 * sqrt(abs(x));

                        4: y:= exp(x);

                  end;

Графическая интерпретация оператора

В блок-схемах оператору CASE соответствует структура ВЫБОР.

Для приведенного выше примера эта структура выглядит следующим образом:

 

Замечание. Если в строке выбора необходимо записать несколько операторов, то их заключают в операторные скобки BEGIN....END.

Пример 2. Вычислить значение y.

Если значение x не принадлежит рассматриваемым промежуткам, то вывести на экран соответствующее сообщение.

В задаче переменная x является вещественной и не может использоваться в качестве селектора оператора CASE. Введем новую переменную целого типа, которой присваивается целая часть значения x:

n:= trunc(x);

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

              Program P_2;

              Var

             x, y: real;

             n: integer;

             Begin

            writeln(‘Введите число x’);

            read (x);

            if (x<1) or (x>=5) then

                writeln(‘x не принадлежит ‘,

                            ‘рассматриваемой области’)

            else

                begin

                   n:= trunc(x);

                   case n of

                 1: y:= sin(x);

                      2: y:= exp(-x);

                      3: y:= ln(x);

                      4: y:= sin (x)/cos(x);

                  end;

                  writeln(‘y=’, y:6:2);

               end;

             End.

5.4. Контрольные задания

I. Записать в Турбо Паскале логические выражения.

а) Ø а Ú b;

б) –1 £ x £1 или 2 £ x £ 4;

в) переменная x находится вне интервала [a, b];

г) все точки на плоскости находятся выше оси абсцисс;

д) все точки на плоскости находятся либо в первом, либо в третьем квадрантах;

е) все точки на плоскости лежат выше прямой: y = 1 + x.

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

 

а)                                        б)

                                                                        

 

 

                                                                                                      

 

в)                                         г)           

 

x
                

 

д)                                         e)    

 

 

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

 

а) (x >= 0) and (y >= 0) and (y <= x) or (y <= -1);

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

в) (y >= x) and (y >= -x);

г) (y <= 2) and (x <= 2) or (x*y < 0);

д) (x*y >= 0) and (y <= x) and (x < 1) and (y >-1);

е) (x*x + y*y <= 4) and (y >= x*x).

 

IV. Записать в Турбо Паскале логические выражения и вычислить их при: i =5; j =2; k =2; a =TRUE; b =FALSE.

 

а) i ¹1Ú a Ù Ø (b Ù j > k);

б) (i £1Úa) Ù (b Ú j= k);

в) Ø(i = j2 + 1) Ú a Ù b;

г) i> j + k Ù a Ù Ø b;

д) a Ú b Ù (i*j > k2);

е) (a Ú Ø b Ù j2 = k2) Ù Ø b.

 

Глава 6. Циклические вычислительные

                       процессы

 

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

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

Операторы цикла с условием

Различают два вида операторов с условием:

1) оператор цикла WHILE (пока);

2) оператор цикла REPEAT (повторять до тех пор пока).

                       Оператор цикла WHILE

Общий вид записи:

WHILE < логическое выражение > DO < тело цикла>;

Тело цикла – единичный оператор, выполняемый в цикле.

Работа оператора

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

Графическая интерпретация оператора

В блок-схемах оператору цикла WHILE соответствует структура ЦИКЛ-ПОКА.

   

Пример 1. Алгоритм табулирования функции с одной переменной.

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

                       

при , изменяющемся в интервале [-0.5, 2.5] с шагом 0.1.

заданные вещественные числа.

В данной задаче переменная  является управляющей переменной цикла.

Блок-схема

 

 

 

 

 

 


Программа

 

                   Program TAB_1;

                   Var

                     a, b, x, y: real;

                     Begin

                  writeln(‘Введите исходные данные’);

                  read(a, b);

               writeln (‘    x               y(x)’);

                    x:= -0.5;

                  while x <= 2.5 do

                                      begin

               y:= ln(abs(x))/(a*a - b*b);

               writeln(x:8:1, y:8:1)

               x:= x + 0.1;

              end;

                       End.

 

                     Оператор цикла REPEAT

Общий вид записи:

             REPEAT

           <тело цикла>;

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

Работа оператора

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

Управляющая переменная, как и в случае оператора цикла WHILE, должна включаться в состав логического выражения и изменяться в теле цикла.

   Графическая интерпретация оператора

В блок-схемах оператору цикла REPEAT соответствует структура ЦИКЛ-ДО.

 

 


Выход из цикла

Пример 2. Решить предыдущую задачу табулирования функции с использованием оператора цикла REPEAT.

Программа

                             Program TAB_2;

                             Var

                               a, b, x, y: real;

                             Begin

                            writeln(‘Введите исходные данные’);

                             read(a, b);

                        writeln(‘  x           y(x)’);

                             x:= -0.5;

                             repeat

                           y:= ln(abs(x))/(a*a - b*b);

                           writeln(x:8:1, y:8:1)

                           x:= x + 0.1;

                             until x > 2.5;

                           End.

 


Блок-схема

 

 

Основные отличия оператора цикла WHILE

от оператора цикла REPEAT.

1. В теле цикла оператора WHILE может стоять только один оператор. Для выполнения в цикле нескольких операторов тело цикла должно заключаться в операторные скобки BEGIN … END.

В операторе REPEAT операторные скобки не ставятся, так как их целиком заменяют служебные слова REPEAT … UNTIL.

2. В операторе WHILE тело цикла может не выполняться ни разу, если логическое выражение сразу окажется ложным.

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


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.202 с.