- •Алгоритмизация и программирование
- •Варианты домашних заданий
- •Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Порядок выполнения лабораторных работ
- •Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
Задание 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],
при x2,
где а=2.3 f= х при 0.3< x 2,
cos(x-a)
при x
,

3.
Для
x
[0,7],
(a+b)/(ex+cosx)
при
0
x2.3,
где a=-2.7,b=-0.27 z= (a+b)/(x+1) при 2.3 x5,
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
x3,
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,
1
0.
Дляx
[0,4],
e-bx
sin
bx
при x<2.3,
где
a=1,b=3. y= сos
bx при
2.3
,
e-ax
cos bx при
x![]()
1
1.Для
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

