Пример использования условного оператора



Задание. Определите номер квадранта нахождения точки на плоскости по заданным координатам X и Y.

Условие задачи опишем следующим образом:

Составим один из вариантов алгоритма и программы с использованием условного оператора краткой формы.

 

Текст программы, реализующей задание:

 

Program Uslovie ;

Var N:byte;

  X,Y:real;  

Begin

Writeln ('Введите координаты точки');

Write ('X='); Readln(X);

Write ('Y='); Readln(Y);

N:=1;

If (X>=0) and (Y<0) then N:=4;

If (X<0) and (Y<0) then N:=3;

If (X<0) and (Y>=0) then N:=2;

Writeln ('Точка находится в ', N ,'-квадранте');

End .

Задание.

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

Индивидуальные задания выбрать из табл.2 по вариантам.

Таблица 2

      Функция            Функция
  1       x ,если 1< x <2, F={ 4x, если       x =1,       |x| в остальных случаях   13     , если 0  < 10, F={ -1 , если х = -1,       в остальных случаях
  2       3x , если 0  x  1.5, F={ |x| , если    x -1 ,       2 в остальных случаях   14       если 0 < x < 1, F={ cos x ,  если х = 0,     +1 в остальных случаях
  3       2|x| , если -1 x 0, F={ -x , если  x = -1,       0 в остальных случаях                 15      , если F={ x , если 0 <     -2 в остальных случаях
  4       x-1 , если 0  x 1, F={ x , если  x = 1,       в остальных случаях   16      , если 0 < F={ 1 , если х = 0,      | x | в остальных случаях
  5       | | , если -1  x 1, F={ 0 , если    x =1,        в остальных случаях   17      | x | , если F={  , если 0 < x < 1,      3 в остальных случаях
  6       , если 0 , F={ , если  3,       |x| в остальных случаях     18      х + 1 , если F={ | x | , если -1 < x < 0,        в остальных случаях
  7        если 0 F={ 1, если х = 0,       -x в остальных случаях   19        , если 0 < F={  , если х = 0,      -х в остальных случаях
    8       1/x, если x < 0, F={ 0, если  < 1,        в остальных случаях       20        1/x , если 1 < F={ 2 , если х = 0,      | x | в остальных случаях
  9     -2х, если 0 < x, F={ -4 , если -1 <     |x| в остальных случаях   21         , если -1  < 0, F={ 1, если х = 3,        в остальных случаях
  10      , если –10  х < 0, F={ 3,  если х = 0,        в остальных случаях       22         Х , если -1 F={ | x | , если х = -10,       в остальных случаях
  11         , если 1 < F={ -x , если  x = 0,       0 в остальных случаях   23            , если х = 0, F={ | x | , если 0 <          в остальных случаях
  12        , если –10 < F={ 2 , если         х = 0,       x-1 в остальных случаях   24           , если 0.5 < F={ 5 , если х = 0,        x +1 в остальных случаях

 

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

1) Условный оператор If. Краткая форма.

2) Условный оператор If. Полная форма.

3) Укажите ошибки, если они есть, в следующих записях:

(здесь А, В и С переменные типа Boolean, x,y вещественного типа)

a) If x<-100 and 0.5=>y then …

б) If A or B and not C then … 

в) If A=True and x<1e-6 then …

4) Допустима ли такая запись в Паскале:

If x<20 then else y:=8;

5) Укажите ошибки в программе:

var A:bolean;  x:real;  y:integer;

begin

writeln ('Введите два числа'); readln (x,y)

if x<y then writeln (y+x); A=True;

else writeln (x:5:2,'>',y);

if A then writeln(x:5:2,'<',y);

end.


 Лабораторная работа № 3.

Организация циклических вычислительных процессов

 

Цель работы: Получение практических навыков в организации циклических вычислительных процессов.

 

Основные сведения.

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

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

     1.1. Оператор цикла с параметром FOR . В зависимости от шага изменения параметра цикла различают две конструкции оператара цикла FOR. Структура оператора цикла For с шагом +1 выглядит следующим образом:

      For I := m 1 to m 2 do <оператор>; где I — параметр цикла, переменная любого порядкового типа, m1, m 2 - начальное и конечное значение — выражение того же типа, что и параметр цикла.

Слово "For" в переводе с английского означает "для", "to" — "до", "do" — "выполнить".

Таким образом, оператор цикла For осуществляет повторение одного оператора заранее заданное число раз. Цикл будет повторяться ровно столько раз, сколько раз будет изменяться переменная цикла. Во время работы цикла значение переменной цикла можно использовать, но нельзя ее изменять. Приращение переменной цикла идет на единицу (+1). Начальное значение должно быть меньше конечного значения, иначе цикл не будет выполняться. Если начальное значение=конечному значению, то цикл выполнится один раз.

Например:

1) For n:=1 to 5 do оператор1; здесь n целого типа

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

2) For n:='A' to 'F' do…    здесь n типа char

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

      For I := m 1 downto m 2 do <оператор>;

Здесь переменная цикла каждый раз уменьшается на 1. Начальное значение m1 должно быть больше конечного значения m2, иначе цикл не будет выполняться.

Например: For n:=5 downto 1 do Write (n);

 

Блок-схема цикла For.

 

 

 


                                               

     1.2. Оператор цикла с предусловием While .

     Структура оператора:

     While b do <оператор>; Здесь b — выражение логического типа (условие).

Опреатор цикла While осуществляет повторение одного оператора заранее неизвестное число раз.

Цикл работает следующим образом: пока условие истинно (True), выполняется оператор цикла, как только условие становится ложным (False), то выполняется следующая за циклом While оператор программы.

Например:

 

     Program 1to5;

     Var n:real;

     Begin

n:=0;

     while n<=0.5 do

begin

                   n:=n+0.1;

write(n:2:1,' ');

              end;

     end.

 

Программа выведет на экран цифры от 0.1 до 0.6.

В While-цикле нет переменной цикла, которую нельзя менять. В данном примере переменная n только используется в условии работы цикла, поэтому ее можно менять в теле цикла. Для While-цикла важно следующее: перед началом его работы необходимо корректно задать условие (в примере это строчка " n:=0; "), так как цикл всегда начинается с проверки условия.

     1.3.Оператор цикла с послеусловием Repeat. Структура такой конструкции следующая:

Repeat

                        <Оператор_1>;

                        <Оператор_2>;                 {Список операторов цикла}

                        …

                        <Оператор N>;

              Until b;

Здесь b — выражение логического типа (условие).

Цикл работает следующим образом: пока условие ложно (False), выполняется список операторов цикла, как только условие становится истинным (True), то выполняется следующая за циклом Repeat команда программы. Заметьте, что для списка операторов цикла не нужно ставить операторные скобки begin-end, ими уже являются слова Repeat и Until.

Например:

 

     Program 1to5;

     Var n:real;

     n:=0;

repeat

              n:=n+0.1;

write(n:2:1,' ');

     until n>0.5;

     end.

 

 

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

Отличие в конструкциях цикла repeat и while в том, что

1) В конструкции While..do проверка условия выхода выполняется в начале, а не в конце цикла, поэтому, если условие не удовлетворяется до начала выполнения цикла, то тело цикла игнорируется и выполняется оператор, стоящий сразу же после окончания тела цикла.

2) Repeat…until цикл обязательно, хотя бы один раз, выполнится, потому что условие выхода проверяется в конце цикла.

3) В конструкции While…do условие выхода удовлетворяется, если выражение, определяющее условие выхода, ложно, а в конструкции repeat…until — если это выражение истинно.

 

                   

Пример. Протабулировать функцию F двумя способами: первый раз вычислять F изменяя х от 0.1 до 0.5 с шагом 0.1 при А=const; второй раз изменяя А от 1 до 3 с шагом 1при фиксированном значении х. Первый цикл оформить в виде Repeat-цикла, второй — For-цикла,.

            

 

Текст программы:


Program tabulation;

Uses Crt;

     Var A:integer; F,x:real;

     Begin Clrscr; {Очистка экрана}

     Writeln(‘Таблица функции при А=1’);

x:=0; A:=1;

Repeat

  x:=x+0.1;

  F:=sin(3*x)*exp(A);

writeln('x=',x:2:1,' F=',F:5:3);           

until (x>=0.5);

x:=2;

Writeln;

Writeln(‘Таблица функции при Х=2’);

     For A:=1 to 3 do

begin

        F:=sin(3*x)*exp(A);

  writeln('A=',A:2:1,' F=',F:5:3);        

end;

end.

 

3. Задание. В соответствии с вариантом вычислите значение функции F в первом цикле при изменяющемся A и фиксированном х, а во втором – наоборот. Интервалы изменения переменных и шаг выбирать произвольно исходя из области существования функции и, чтобы число повторений циклов было не менее 5..7. Предусмотреть в программе ввод начальных и конечных значений переменных с клавиатуры. Каждое значение функции F выводить с указанием текущих значений A и x. Все вещественные переменные выводить в форматированном виде. Проверить значения функции с помощью калькулятора.

Варианты заданий:

Вариант Функция Первый цикл Второй цикл
1 F = (A2+3)×cos(x)-sin(x) For While
2 F = 0.8×A+tg(x)/A While Repeat
3 F = Sin(0.3x)×eA-cos(A×x) Repeat For
4 F = 0.2sin2(x)×Ln(A-10) For Repeat
5 F = A×cos(x)×sin3(p-x) While For
6 F = x×cos3(A)/(1-ctg(A×x)) Repeat While
7 F = x2cos(A0.5×3x) For While
8 F = 2A-xsec(ctg(3p-2x)) While Repeat
9 F = Lg(3x)×cos(A×p) Repeat For
10 F = Ln|1+Acos(x-p)| For Repeat
11 F = x|A-5|×tg(ln(3x)) While For
12 F = e-2xcosec(A-3p/4) Repeat While
13 F = 0.5×lg(A-4×tg(4x)) For While
14 F = sin3(x-A)-ln(A4) While Repeat
15 F = lg|A-x×x-A| Repeat For
16 F = tgA(sin(p-x))+A0.5 For Repeat
17 F = sin(pA/x)eAx While For
18 F = A×lg(5x)+x/sin(A) Repeat While
19 F = -ctg(px)/e2A For While
20 F = [tg(x)ctg(2x)]-A While Repeat
21 F = ecos(3x)×(3-ln(A/5)) Repeat For
22 F = 4A-1/2cosec(2x) For Repeat
23 F = A×[tg(x)+tg3(x)+tg5(x)] While For
24 F = ln(A-3e-x/px) Repeat While
25 F = ctg(A×lg(sin(px))) For While
26 F = -Aexcos(x)/lg(3-eA) While Repeat
27 F = sec(Ax)/ln(x-3A/4) Repeat For
28 F = A×e3xlnï(cosec(x/2))| For Repeat
29 F = Aln(x)ex/5 While For
30 F = (3e3x-ln(A))/sin(3p/4+x) Repeat While

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

1) Конструкция For цикла.

2) Конструкция цикла с предусловием.

3) Конструкция цикла с постусловием.

4) Что общего и в чем различие между While и Repeat циклами?

5) Укажите ошибки (если они есть) в следующих оформлениях цикла:

Здесь n вещественного типа, i — целого, с — символьного.

1. for n=1 to 15 do …

2. for c:='h' downto 'b' do…

3. for i:=20.5 to 40.5 do…

4. for i=60 downto 40 do…

 

 

Лабораторная работа № 4.


Дата добавления: 2018-11-24; просмотров: 660; Мы поможем в написании вашей работы!

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






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