Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Операторы передачи управления




Варианты домашних заданий

Ф.И.О. номер задачи
А, Б 1
В, Г 2
Д, Е, Ж 3
З, И 4
К, Л 5
М, Н 6
О, П 7
Р, С 8
Т, У 9
Ф, Х, Ц 10
Ч, Ш, Щ 11
Э, Ю, Я 12

 

Лабораторная работа 1

Основы программирования в среде Турбо Паскаля.

Оператор присваивания, процедуры ввода- вывода

 

Оператор присваивания имеет вид <идентификатор>:=<выражение>;

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

SIN(X) - sin X;                                           COS(X) - cos X;

EXP(X) - ех;                                                 LN(X)  - Ln X;

SQR(X) - х2;                                                SQRT(X) - ;

ABS(X) - абсолютная величина X (|Х|);        ARCTAN(X) - arctan X;

ах программируется как EXP(x*LN(a));        lgX - как LN(X)/LN(10).

TRUNC(X) - выделение целой части числа;                     Pi=3.1415926535897932385;

ROUND(X) - округление Х до ближайшего целого.

Приоритет операций в выражении

№ п/п Арифметические Логические Отношения Другие
1 2 3 4   *, /, div, mod +,-   NOT аnd,shl,shr, оr, xor     <=,>=,<>,<,>,= @  адресное преобразование   in

 

Для реализации лабораторных работ необходима среда Borland Pascal версии 7.0. Ее запуск производится через файл bp.exe (BP7\BIN\bp.exe).

Пример 1. Вычислить площадь прямоугольника по размерам его сторон А и В. Обозначим площадь переменной S, тогда необходимо найти S=A*B.

Программа набирается в окне редактора и компилируется [F9]:

Program RECT;   {заголовок программы с именем RECT}

const                      {блок описания констант}

   A=2; B=3;                                               {определение констант А и В}

var                         {блок описания переменных}

  S:integer;                                 {определение переменной S целым типом}

begin                     {начало основного блока программы}

   S:=A*B;                                                               {оператор присваивания}

write('Площадь прямоугольника = ',S);                              {процедура вывода}

end.                       {конец основного блока}                  

В результате выполнения программы (Ctrl+F9) на экран выводится сообщение:

Площадь прямоугольника = 6.

Пример 2. Найти площадь равностороннего треугольника. Если сто­роны треугольника имеют размер А, то его площадь S = A2 sin(π/3)/2.           

 

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

Program TREUG;

var

A, S: real;

Begin

writeln('Введите A'); {процедура вывода текста}

read(A);                   {процедура ввода}

S: = SQR (A)*sin(PI/3)/2;                                    

writeln ('Результат: S=', S: 6: 2,' для A=', A);

readln {Задержка до нажатия клавиши <ENTER>}

End.

 

После выполнения программы на экран выводится сообщение:

Результат: S = 10.83       для А = 5.

 

     Предварительно рассчитанный на калькуляторе результат для А = 5 при подготовке к лабораторной работе составил S = 10.8253, что подтверждает верность программы.

 

Задание 1 (программа 1_1)

x1 x2 a b c Вычислить
1 2 3 4 5 6 7
1 1 2 1.5 2 -0.7
2 1 2 0.7 - 2.1
3 0 1.5 2 1.2 1
4 1 2 4.1 -2.3 -
5 -1 1 0.5 2 1.5
6 2 4 0.5 1.3 -
7 0 2 0.5 1 -
8 -1 1 2.7 1.7 -
9 0 π/2 2 0.7 0.5
10 1 0 0.5 2.9 1.5
11 1 2 1.5 -1.2 -
12 1 2 0.5 1.7 2

 

Лабораторная работа 2

Программирование разветвленных алгоритмов.

Операторы передачи управления

 

Структура условного оператора передачи управления:

IF <условие> THEN <оператор 1> ELSE <оператор 2>;

        (Если)              (то)                     (иначе) - ключевые слова,

где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE);

<оператор> - любой оператор языка Паскаль.

Сокращенная форма условного оператора:

IF <условие> THEN <оператор>;

Оператор безусловной передачи управления GOTO <метка> позволяет перейти к строке с идентификатором <метка>. В языке Турбо Паскаль до­пускается использовать в качестве меток также целые числа без знака [0 .. 9999].

Метка от оператора отделяется в программе двоеточием (':').

Все использованные в программе метки должны быть описаны в разде­ле описаний программы с указанием ключевого слова 'LABEL'.

Оператор выбора CASE позволяет в зависимости от значения ка­кой-либо переменной или выражения <ключа_выбора> выполнить те или иные операторы, помеченные соответствующими константами.

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

CASE <ключ_выбора> OF

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

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

. . .

<конст.выбораN>:<операторN>

    ELSE <оператор>

END;

где <ключ выбора> - выражение (переменная) любого порядкового типа;

<конст.выбора> - константа того же типа, что и <ключ.выбора>;

<оператор> - произвольный оператор ТП.

Пример. Составить программу для начисления зарплаты согласно следующе -му правилу: если стаж работы сотрудника менее пяти лет, то зарплата равна 50$, при стаже работы от пяти до 15 лет - 100$, свыше 15 лет зарплата повышается с каждым годом на 10$, причем при стаже превышающем 30 лет она составляет 300$.

 Для программирования решения этой задачи определим математичес­кую формулировку задачи:

       50,                       если ST < 5;

ZP=    100,                     если 5 ≤ST £ 15;

100+ (ST -15)*10, если 15 < ST≤ 30;

300,                      если ST > 30;

где ZP - зарплата, ST - стаж работы. 

 

Program zarplata;

var ST: byte;                           {ST - стаж (байтовый (целый) тип)}

ZP: real;                            {ZP - зарплата (вещественный тип)}

Begin

writeln ('введите стаж');

read(ST);                       ввод стажа

if ST<5 then ZP:=50     условный оператор

                  else if ST<15 then ZP:=100 вложенный условный оператор

                               else if ST>=30 then ZP:=300

                                                        else ZP:=100+(ST-15)*10;

    writeln ('зарплата=',ZP:10:2,' $')

End.

 

 Второй вариант реализации задачи:

Program zarplata2;

var  ST: byte;                               {стаж (байтовый) тип)}

ZP: real;                     {зарплата (вещественный тип)}

begin

writeln('введите стаж');

 read(ST);                                                        {ввод стажа}                                  

  case ST of                                                {выбор из }

1..4: ZP:=50;

5..15: ZP:=100;

16..29: ZP:=100+(ST-15)*10;

else ZP:=300

end;

writeln('зарплата=',ZP:10:2,' $');     {вывод результата}

end.                                                    

Задание 1 (программа 2_1)

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

1. Для t [0,3],                              at2lnt             при 1 ,

где a=-0.5,b=2                    z=     1                    при t<1,

                                                          eatcosbt          при t>2, 

 

2. Для x [0,4],                                                 при x>2,

где а=2.3                           f=     х                        при 0.3< x £ 2,

                                              cos(x-a)               при x ,

 


3. Для x [0,7],                  (a+b)/(ex+cosx)    при 0 £ x<2.3,

где a=-2.7,b=-0.27           z=    (a+b)/(x+1)         при 2.3£ x<5, 

                                                      ex+sinx                при 7 ,

 

4. Для i [7,12],                           ai4+bi                  при I< 10,

где a=2.2,b=0.3.              y=    tg(i+0.5)              при I= 10,

                                                      e2i+          при I>10,

 

 

5. Для x [0.9,5],                  x2-7/x2                     при x<1.3,

где a=1.5                         y=     ax3+7              при 1.3 £ x<3,

                                             lg(x+7 )            при x ,                                   

 

6. Для t [-1.4],                                   при t<0.1,

где a=2.1,b=0.37.             z=     at+b                  при 0.1£ t< 2,

                                                               при t ,

7. Для x  [0,6],                          a esinx+2.5  при x<0.3,

где a=1.5.                      y =  ecosx+a       при 0.3£ x<4,

(sin x)/(a+ex)    при x ³ 4,

 

8. Для x [1,2],                          a/x+bx2-c              при x ,

где a=1.8,b=-0.5, c=3.5   y= (a+bx)/        при x>1.2,  

  

                       

9. Для t [1,5],                      t          при t>a,

где a=2.5                          z=   t sin at         при t=a,

                                                     e-at cos at        при  t<a,

 

10. Для x [0,4],                             e-bx sin bx           при x<2.3,

где a=1,b=3.                     y=    сos bx                 при 2.3 ,

                                                       e-ax cos bx           при x

 

11. Для t [0.5,3],                       at2-b             при t<a,

где a=1.3,b=6.5                z=       a-b                      при a

                                                     a t2/3-           при t>b,

 


12. Для xÎ[0,2],                         |e-2x sin bx|          при x >1,

где b=-2.9                      y =  cos bx                 при x = 1,

 e-x cos bx            при x < 1,

 

 

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










Последнее изменение этой страницы: 2018-05-29; просмотров: 187.

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